Hugging Face 创始人亲述:一个 GitHub 史上增长最快的 AI 项目
来源|Gradient Dissent
翻译|贾川、胡燕君
Hugging Face,这家以 emoji“抱抱脸”命名的开源创业公司,以一种连创始团队不曾预料的速度成为了 AI 开源社区的顶级“网红”。目前,Hugging Face 模型库在 Github 上获得了超过 62,000 个 Star,14,000 次 forks,代码贡献者超 1200 人,每月被安装超 100 万次。
就在 5 月 10 日,Hugging Face 宣布 C 轮融资筹集了 1 亿美元,由 Lux Capital 领投,红杉资本、Coatue、Betaworks、NBA 球星 Kevin Durant 等参与投资,目前估值达到 20 亿美元。由此,Hugging Face 进一步在业内引发强烈反响。
很多人好奇 Hugging Face 为何能一炮而红?凭什么受到资本青睐?
故事还要从 2016 年说起,法国连续创业者 Clément Delangue(曾创办笔记平台 VideoNot.es,媒体监测平台 mention 以及被 Google 收购的移动开发平台 Moodstocks 等项目)和 Julien Chaumond、Thomas Wolf 一起创办了 Hugging Face,并从 Betaworks 和 NBA 球星杜兰特等拿到天使融资,他们最开始的方向是做对话机器人,但跟当时很多做类似方向的创业公司一样,一直没有起色。
直到 2019 年,为了训练聊天机器人的 NLP 能力,他们在 GitHub 开源了一个 Transformers 库,令人意外的是,在机器学习社区迅速流行起来,成为 GitHub 史上增长最快的机器学习库。无心插柳柳成荫,运气,有时就是这么邪门儿。
不止于 NLP 库,Hugging Face 也在逐渐变成机器学习领域的 ModelHub 中心。如今,Hugging Face 已经共享了超 100,000 个预训练模型,10,000 个数据集,涵盖了 NLP、计算机视觉、语音、时间序列、生物学、强化学习等领域,以帮助科学家和相关从业者更好地构建模型,并将其用于产品或工作流程。现在,他们发起的 BigScience 项目,吸引了超 1000 名研究者共同训练超大规模模型。
作为一家商业公司,Hugging Face 也从去年的 30 人扩张到了 120 多人,有超过 10,000 家公司在使用他们的产品和服务,其中付费用户超过 1000。
Clément 认为,取得这些成绩的主要原因在于,Hugging Face 弥补了科学与生产之间的鸿沟,通过搭建平台为开源界和科学界赋能,所产生的价值比通过搭建专有工具产生的价值要高上千倍,而很多开源软件和公司都没有做到这一点。某种程度上,Hugging Face 是在构建机器学习领域的“GitHub”,让其成为一个由社区开发者驱动的平台。
2021 年 6 月,在机器学习播客《Gradient Dissent》中,Lukas Biewald 与 Hugging Face 的 CEO 兼联合创始人 Clément Delangue 聊了聊 Hugging Face Transformers 库兴起的背后故事,揭示了 Hugging Face 快速增长的缘由,后者也分享了他对 NLP 技术发展的见解。
以下为对话内容,OneFlow 社区做了不改变原意的编译。
1、Transformers 库的源起
Lukas:2019 年,是什么启发你们要搭建这样的 Transformers 开源库?
Clément:真实情况是,并没有考虑太多。当时我们使用开源库有一段时间了,在这个领域,总感觉我们是站在巨人的肩膀上在前进,许多人在从事科学研究时,已习惯了这样的方式。比如当你发表关于机器学习的研究时,可能更倾向于以开源而不是论文的形式发表。因此,从研发 Hugging Face 的第一天开始,我们就在开源库中进行共享。
至于 Transformers,它始于我们发布的 TensorFlow 版本的 BERT。但联合创始人兼首席科学家 Thomas 说,我们也需要发布 PyTorch 版本的 BERT。因此,很快,我们又开源了 PyTorch 版本的 BERT,实际上那个仓库一开始的名字就叫 PyTorch-BERT。
渐渐地,使用它的人越来越多。几周后我们又发布了一个新模型,也许是 GPT 的初版,但它也是 TensorFlow 版本的,所以我们就想不如将它也添加进来,因为这两个模型的功能不同,擅长领域也不同,这样一来,人们能更好地试用两个模型。
后来,我们又开始思考,如何才能让人们更容易地使用它们,就像现在一样有机性地发展。有研究人员会问,想发布一个新的模型,可以使用 Transformers 库发布吗?当然,我们很欢迎。渐渐地,这个库就像雪球一样越滚越大,并成就了现在的我们。
Lukas:按你所说,人们都可以在这个平台上使用别人的模型,以及发布模型?
Clément:没错。我们采用混合方法来构建技术,拥有用户需要开源的扩展性和像用户界面这样的实用性。我们支持的范围很广泛,不用申请就能在开源代码中做所有你想做的事,你甚至都不用去 Hugging Face 官网,直接可以在 Python 中用 pip 安装 Transformers。
如果你想要实现更多功能,可以来我们的平台寻找适合自己的模型。更棒的是,如果你是一名软件工程师、NLP 新手或机器学习的新手,可以使用我们的训练和推理 API 来训练和运行模型,并且我们会主导这个过程,让你很容易就能上手 SOTA 模型。
Lukas:一开始为什么要发布一些 PyTorch 版本的模型?你们是不是更喜欢 PyTorch?
Clément:是因为用户群体不同吧。我们一直热衷于将那些难以理解的、小众的东西推广给更多的人使用。所以我们认为,只有将那些少数人掌握的技术推广给更多人使用,才能真正最大程度地发挥技术作用,这也是我们的主要目标。
现在有人使用 TensorFlow,也有人用 PyTorch,对我们来说,相比之下使用 PyTorch 的情况要多一点,PyTorch 是一个很好的平台,我们想让它得到更广泛地使用。
慢慢地,有时人们开始称我们为“PyTorch-Transformers 库",觉得这对使用其他框架的用户太不公平。于是,我们又将 Transformers 扩展到 TensorFlow 上,并去掉“PyTorch-Transformers"名称中的 PyTorch,使其可以同时在两个平台上使用。
如果你使用过我们集成 PyTorch 和 TensorFlow 后的版本,你会发现现在的功能比之前分别在两个平台上时更全面。实际上,你可以在相同类型的机器学习工作平台中,分别利用其优势来完成你的任务。
比如,当你想做架构工作时,PyTorch 是个很好的选择,而当你想做某种部署服务时,你可以选择 TensorFlow,因为它集成了很多在行业中经常使用的工具。在同一工作流程中,你可以先在 PyTorch 中建模,然后在 TensorFlow 中使用,充分利用不同平台的优势,同时规避它们的不足。
Lukas:你们还有需要用到自己软件的时候吗?现在还会做 Hugging Face 自己的应用还是仅仅为他人研发这类工具?
Clément:我经常使用我们自己的工具。我们研发的最受欢迎的应用是 Write with Transformers 文本编辑器,它由一些流行的 Transformers 模型提供技术支持。这有点像你在 Gmail 里写东西时的自动补全功能,但它更简单,更有新意,它现在的文本产出量应该相当于 1,000 本书。当你不知道该写些什么,用这个软件准没错。
2、那些流行的 NLP 架构
Lukas:根据你的观察,目前最流行的 NLP 架构是什么?NLP 架构至今发生了哪些变化?
Clément:通过观察下载量、模型的容量等等,就可以看出模型的发展状况如何。当一个新模型发布时,我们可以通过它的用户使用情况来判断它是否取得了成功。实际上,目前 Github 下载量排名第一的模型是 DistilBERT(Hugging Face 的 Transformer 模型之一)。DistilBERT 是通过知识蒸馏从 BERT 中提取出来的模型,但在用途方面有很多不同。
虽然它们仍然是一种通用预训练语言模型,但现在这些模型的发展越来越专用化,新发布的模型都在之前的基础上有了优化,性能变得更好。比如,该模型是针对短文本还是长文本?专注于生成任务还是分类任务?面向的是单语言还是多语言?
你会发现,越来越多的专用模型正在出现。现在,人们不再判断哪种模型最好,而是根据自己的需求、针对不同任务来选择最适合的模型。
Lukas:BERT 和 OpenAI 的 GPT 有什么区别?
Clément:GPT 和 BERT 都是基于 Transformer 的模型,只是使用场景和架构略有不同。譬如,BERT 做的是 mask filling(遮罩词填充,即遮罩句子中的某些词语,令机器预测哪些词可以替代被遮罩的词语),而 GPT 做的是语言模型,预测句子中的下一个词语,这也解释了为什么 GPT 的文本生成能力比 BERT 更强。但 GPT 也有它的局限性,比如要做文本分类,GPT 就不太合适。
Lukas:你是否认为 OpenAI 没有完全公布 GPT 的权重?
Clément:OpenAI 让更多人能受益于 NLP,我非常感激他们所作的贡献。我记得 GPT 和 GPT-2 中间还有几个开源的版本,这些都是基于 Transformers 的模型,很多公司都在使用。GPT-3 是一个很好的模型,在文本生成方面非常有用,但现在大家用得更多的可能是 GPT-2 而不是 GPT-3。
也有团队正在复刻 GPT,Eleuther 团队发布了 GPT-Neo,它和 GPT-3 的架构是一样的。GPT-Neo 的模型大小跟 OpenAI 通过 API 提供的 GPT-3 差不多,GPT-Neo 运行结果也不错。
不少人也意识到,有了 OpenAI 的分享,大家能用 NLP 做的事情就更多,而且也能推动行业生态的发展,让更多人关注 NLP。越来越多公司也开始使用 GPT-3,但它一方面很烧钱,另一方面可拓展性比较低,不能根据自己的使用需求对它进行调整。如果使用别人开发的 API,就很难在这上面建立自己的技术优势。
我们自己的目标也是让 NLP 惠及更多人,很多公司先是用 GPT-3 来探索 NLP,然后又转而使用我们的工具。但我相信也有不少公司是反过来的,一开始先用我们的开源工具,后来决定还是用一些更现成的工具,比如 GPT-3、Google NLP 服务、AWS Comprehend 等。现在也有一些服务能让这些公司获得 NLP API。
总之,开源社区的能力是巨大的,我们都是这个不断壮大的生态中的一员,一切都欣欣向荣。
3、NLP 技术的应用
Lukas:过去几年,你见证了 NLP 前沿技术的发展。随着模型越来越强大,越来越好用,你觉得它们的使用场景有变化吗?比如,有没有一些大家现在正在做,但几年前还没有做或者做不到的事?
Clément:在现在使用 Transformers 的 5000 家公司里,大部分都把 Transformers 运用到实际生产中,这在 5 年前还没有做到。很多应用场景都是新的,要么是以前机器做不到的,由人工来做的,比如内容审核,还有机器的客户服务分类功能可以取代大量劳动力。Gmail 的自动补全功能也非常厉害,它极大提高了工作效率,过去几个月里,这个功能让我写邮件时的工作量减少了一半。
现在大部分的搜索引擎都依赖 NLP 技术和 Transformer 模型,改变了很多产品的构建方式。GPT-3 模型把 NLP 技术推广到了创业领域,很多公司也开始利用 NLP 技术从零开始做产品。Google 搜索可能是 NLP 技术应用得最广为人知的产品。
我常常设想,今天的任意一家公司在当初创业时如果能拥有今天的 NLP 技术基础,情况会怎样?这些公司可以在很多地方做得不一样。比如 DocuSign(电子签名企业,提供在不同地方通过不同设备对文件进行电子签名的服务)可以运用现在的 NLP 文档分析技术,它就可以对文件进行多种分析,可以自动生成一个“太长不看版”,会将合同里提到金额的部分标绿或标红。
如果 Twitter 运用现在的 NLP 技术,它的推送信息流可以很不一样。它不会只给你推送当下的热点消息,而是会根据使用记录来呈现你可能感兴趣的信息,希望这样有助于减少偏见、暴力、种族歧视等其他不良行为。
Lukas:大概在 15 年前,我接触到文本生成和 NLP 技术,有一点很奇怪,即便 NLP 技术这么先进,但实际应用还很少。我记得图灵测试是这样的:人类跟机器对话 10 分钟,通过机器的表现判断它是人还是机器,或许这就是 AGI(通用人工智能)的表现。现在 AGI 也衍生出很多变体,我总觉得,有了 GPT-3 等文本生成模型之后,机器就能更成功地伪装成人类,但实际上,我没看到 NLP 应用到更多领域。
Clément:我不太同意这一点。一说到 NLP,大家想到的是 Siri、Alexa 等智能语音助手或者机器人聊天界面这种比较直观的场景,但在很多我们看不见的地方,NLP 也发挥着作用。比如 Google 搜索,你可能不会察觉到现在的搜索结果和以前有什么不同,但它背后使用的 NLP 和 Transformers 技术,“润物细无声”地改善了用户体验。
当然,目前的聊天机器人技术不够成熟,不能真正地帮人类解决实际问题。我也发现,人们对 NLP 的应用态度变得更加审慎和循序渐进了。
Lukas:你看好机器人聊天未来的发展吗?
Clément:看好。Hugging Face 一开始想做一个可以跟人聊天的有趣的 AI 朋友,当时我们特别痴迷于 NLP 技术,想攻克这方面最难的问题,于是决定做开放域的对话型 AI,让 AI 可以与人谈天说地,从体育比赛聊到感情问题等等,但没有成功。
我想原因是时机尚未成熟,以现有的技术做开放域对话 AI 实在太难了。“跟人聊天”应该属于 NLP 的终极目标,因为这个过程需要同时进行很多个 NLP 进程,比如提取信息、理解信息、识别对话者意图、分析语句含义、理解对话者情绪,还要给这些进程排序等等。如果对话者的音调、语气变了,那又要分析其隐藏含义。
现在的客服聊天机器人已经能很好地解决一些垂直领域的问题,但还需要相当长的时间才能让机器人做到像人类一样无所不谈,到那时,用户会深刻地感受到面前的机器人和以往不一样,仿佛有血有肉。最终,我们会成功做出更好的对话型 AI。
Lukas:NLP 领域有没有被低估的话题?如果不做现在的工作,那你会从事哪个领域?
Clément:这是一个好问题。前几周(2021 年 6 月)我正在研究语音和文本的相互转换,这应该是几年前兴起的技术,但近来好像变成了一个小众而略显无聊的研究领域。好在,最近有一些研究团队给它注入了新的生命力,特别是 Facebook 人工智能实验室(FAIR)的 Alexis Conneau 团队研发了 wav2vec,给 Transformer 模型带来了新进展。
我对此特别激动,他们提升了语音和文本转换的质量,而且从英语扩展到了其他语言。如果能将 NLP 和语音文本转换结合起来,就可以颠覆很多产品。比如,如果 Zoom 能利用 NLP 技术推出语音转文本功能,就可以实现线上会议“自动鼓掌欢呼”;或者当 Zoom 识别到参会者说出“万岁/太棒了”这种词时,屏幕上就会自动洒落大量表示“欢呼”的表情符号。
几周前,我们在 Hugging Face 办了一个活动,有 300 多位参与者为语音文本转换模型做出了贡献,涉及 100 种稀缺的语言语料。我相信,语音领域会有更多新突破,为我们解锁新的应用场景,建议多多关注这个领域。
4、Hugging Face 流行的背后
Lukas:在你看来,是什么促成了 Hugging Face 的成功?
Clément:回头看看那些最流行的开源项目,你会发现它们都经历了很长时间的沉淀。我们在两年半前才发布了第一个版本,现在仍处于婴儿期,但 Hugging Face Transformers 绝对是 GitHub 上增长最快的机器学习库。
现在,它在 Github 上已经获得了超过 42,000 个 Star,每月被安装超 100 万次,有 800 人为 Transformers 贡献了代码(译者注:截止 2022 年 5 月,该库已获得超 62,000 个 Star,代码贡献者超 1200 人),取得这些成绩的主要原因在于,它弥补了科学与生产之间的鸿沟,很多开源软件和公司都没有做到这一点。
我觉得,与软件工程 1.0 或计算机科学相比——尽管计算机科学在名义上有“科学”二字,但它实际上并不是一个科学驱动的主题,看看那些优秀的软件工程师,并不会真正地去阅读、研究论文,也不会在计算机科学的“科学”方面循规蹈矩。而机器学习属于真正意义上由科学驱动的领域,这一切都源于世界各地几十个非常出色的 NPL 团队创建了 BERT、T5 和 RoBERTa 等很多模型。
我们的 Transformers 库就是为这些研究者提供一个平台,去展示那些他们想要分享的模型,以及测试他人的模型,以此来深入研究这些模型的内部架构。同时,Transformers 库旨在创建一个很简单的抽象体,让所有 NLP 领域的参与者都能够在研究人员发布模型后的几个小时内使用这些模型。
每当研究者在 Transformers 库中发布新模型,就会产生神奇的网络效应。人们都关注着这些模型,谈论着这些模型,并在 Transformers 中测试这些模型。他们将其用于工作,投入生产,尽其所能支持这些模型。
对于科学家来说,他们也很乐意看到自己的研究被看到、使用,影响着整个社会,反过来也会驱动他们想要创造和分享更多模型。这种良性循环会使我们的项目比传统的开源项目发展得更快,并且已经引起了市场和机器学习领域的共鸣。
Lukas:一个模型从最初构想到最终投入生产应用,其中最意想不到的挑战是什么?用户使用你们的平台时还有没有什么困难需要解决,还是说这个平台可以开箱即用?
Clément:机器学习模型与传统的软件工程有很大不同,很多公司都很难从后者过渡到前者。由于机器学习模型缺乏可解释性,所以很难预测模型的输出结果,也很难对模型进行调整;而软件工程师一直以来习惯了可以非常明确地界定他们想要的结果,因此,对他们来说这种思维转变非常不容易。我认为,对机器学习的理解是最难的部分,甚至比技术性问题还要难。
从技术层面讲,很高兴看到模型做得越来越大,但投入生产应用还需要更多技巧和更大努力。我记得 Roblox 发表过一篇很好的文章(http://blog.roblox.com/2020/05/scaled-bert-serve-1-billion-daily-requests-cpus/),阐述了他们如何利用 DistilBERT 在一天内处理超过 10 亿次推理,但挑战依然存在,还需要提升基础设施能力。
Lukas:你怎么看待这个领域所存在的竞争?
Clément:我始终秉持的一个观点是:在 NLP 或者机器学习领域,最坏的情况就是要与整个科学界和开源界竞争。
我以前就是这样过来的。我是法国人,曾在巴黎一家创业公司做计算机视觉工作。在机器学习这么一个日新月异的领域,要与整个科学界和开源界竞争非常艰难。巨头公司或者大学里有上百个研究实验室,虽然可能不是每个实验室都比我们做得好,但竞争对手实在太多,压力巨大。你或许可以在一段时间内超越对手,风光一两天,但过不了多久可能就会被赶超。
所以,我们现在不再试图竞争,转而选择为开源界和科学界赋能。通过开源模型,可以为架构和数据库的改进提供灵感。Elastic 和 MongoDB 就是很好的例子,它们的事迹表明,初创公司可以通过某种方式为社区赋能,此种方法产生的价值比通过搭建一个专有工具产生的价值高出上千倍。
你也不需要从创造的价值中获取 100%的红利,而是可以只将其中 1%的价值变现,维持公司的经营。但即便只是 1%,也足够让你成为一家高市值的公司,MongoDB 就是一个例子。
Elastic 和 MongoDB 都是以开源为核心,也都成功发展起来了,并且还能在市场中活下去。我相信,在机器学习领域也可以复制它们的模式,机器学习技术还处于早期发展阶段,但我相信很快要迎来它的春天,在未来 5 到 10 年,会有 1 到 10 家开源机器学习公司崛起。
(本文已获得编译授权,原视频:https://www.youtube.com/watch?v=SJx9Fsnr-9Q)
其他人都在看
欢迎下载体验 OneFlow v0.7.0 最新版本:https://github.com/Oneflow-Inc/oneflow/
版权声明: 本文为 InfoQ 作者【OneFlow】的原创文章。
原文链接:【http://xie.infoq.cn/article/acc5f7b0923fd81ca6c3ea0ab】。文章转载请联系作者。
评论