Huggingface 超详细介绍
Hugging face 起初是一家总部位于纽约的聊天机器人初创服务商,他们本来打算创业做聊天机器人,然后在github上开源了一个Transformers库,虽然聊天机器人业务没搞起来,但是他们的这个库在机器学习社区迅速大火起来。目前已经共享了超100,000个预训练模型,10,000个数据集,变成了机器学习界的github。
其之所以能够获得如此巨大的成功,一方面是让我们这些甲方企业的小白,尤其是入门者也能快速用得上科研大牛们训练出的超牛模型。另一方面是,这种特别开放的文化和态度,以及利他利己的精神特别吸引人。huggingface上面很多业界大牛也在使用和提交新模型,这样我们就是站在大牛们的肩膀上工作,而不是从头开始,当然我们也没有大牛那么多的计算资源和数据集。
在国内huggingface也是应用非常广泛,一些开源框架本质上就是调用transfomer上的模型进行微调(当然也有很多大牛在默默提供模型和数据集)。很多nlp工程师招聘的条目上也明摆着要求熟悉huggingface transformer库的使用。简单介绍了他们多么牛逼之后,我们看看huggingface怎么玩吧。因为他既提供了数据集,又提供了模型让你随便调用下载,因此入门非常简单。你甚至不需要知道什么是GPT,BERT就可以用他的模型了(当然看看我写的BERT简介还是十分有必要的)。下面初步介绍下huggingface里面都有什么,以及怎么调用BERT模型做个简单的任务。
1.我们能从huggingface获得什么
huggingface的官方网站:http://www.huggingface.co. 在这里主要有以下大家需要的资源。
-
- Datasets:数据集,以及数据集的下载地址
-
- Models:各个预训练模型
-
- course:免费的nlp课程,可惜都是英文的
-
- docs:文档
下图是一张来自于官网的Transformers发展谱系图,短短3,4年就发展出了庞大家族。如果你不是学术界的代表,你无需详细搞懂他们的原理,就可以直接使用这些科研界最先进的模型,下一章我们来介绍如何简单的拿这些模型进行nlp任务。
一个有趣的现象
在NLP领域,在hugging face上面数据集和预训练模型的数量以英语为最为众多,远超其他国家的总和(见下图)。就预训练模型来说,排名第二的是汉语。就数据集来说,汉语远远少于英语,也少于法,德,西班牙等语言,甚至少于阿拉伯语和波兰语。这严重跟我想象中的AI超级大国及其不匹配。我想一方面因为数据集的积累都需要很多年,中文常用的(PKU,MSRA)数据集都是十几年前留下的,而我们AI和经济的崛起也不过是最近十年的事情。另一方面,数据集都是大价钱整理出来的,而且可以不断的利用他产生新的模型,这样的大杀器怎可随意公布。发布预训练模型可以带来论文,数据集可啥也带不来,基本上中日韩等的数据集明显偏少。
2.小试牛刀
接下来的内容参考了下面的内容,初步带你入门huggingface,简单了解如何调用BERT模型:
dxzmpk写的教程 https://www.cnblogs.com/dongxiong/p/12763923.html
huggingface官方教程:https://huggingface.co/docs/transformers/model_doc/bert
有必要阅读的论文:
https://arxiv.org/abs/1706.03762
https://arxiv.org/abs/1706.03762
如果看英文论文太费劲,可以参考我写的学习笔记:
attention与sef-attention介绍 https://zhuanlan.zhihu.com/p/526155983
transformer模型结构介绍 https://zhuanlan.zhihu.com/p/526694027
Bert简单介绍 https://zhuanlan.zhihu.com/p/528867839
安装
transformers库github地址在:https://github.com/huggingface/transformers
安装方法,在命令行执行(conda的话在anaconda propmt):
pip install transformers # 安装最新的版本
pip install transformers == 4.0 # 安装指定版本
# 如果你是conda的话
conda install -c huggingface transformers # 4.0以后的版本才会有
测试下安装是否成功
from transformers import pipeline # 引入一个pipeline试试看,如果不报错说明安装成功
# 因为NLP通常是多个任务顺序而成,所以通常使用pipeline,流水线工作
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)