2016年,两位法国人怀揣着对聊天机器人(chatbot)行业未来的美好向往,创立了Hugging Face 🤗,次年推出了一款和公司同名的机器人聊天App。最初,他们只是想为无聊的年轻人提供一个打发时间的地方,"Its entire purpose is to be fun" 可是不论是从技术难度还是商业模式上看,在2016年的时间点选择做开放领域的闲聊机器人,都不是一个明智选择。 时间来到了2018年10月29号,这一天公司首席科学家Thomas Wolf在GitHub上创建了一个名为pytorch-pretrained-BERT的项目,提交了第一个commit,这个项目最初的目的是如此简单,将Google基于tensorflow实现的BERT模型用pytorch进行了重写,并且可以加载Google公开的模型参数。但是,项目的火热程度超出了所有人的预期,Hugging Face也在开源模式中一路高歌猛进,顺利完成了公司转型,成为了当下NLP领域最火的创业公司(之一)。

入局聊天机器人

现在当你打开Hugging Face的官网,映入眼帘的都是"AI community"、“SOTA models”、“Open Source"等词汇,或许很多人都不知道,这曾经是一家做聊天机器人(chatbot)的公司,而且做的还是开放领域(open domain)的闲聊机器人,对,就是类似微软小冰,让我们把时间线拨回2016年。

Clem Delangue1和Julien Chaumond2一起参加了风投机构Betaworks举办的Botcamp加速器项目,专门为聊天机器人创业公司提供指导,在此期间(或者更早?)他们俩创立了Hugging Face3,研发一款为青少年打发时间找点乐子的陪聊型机器人,不论是公司名字(来自于emoji表情)还是产品,画风都既不商业(Enterprise)也不严肃,从这段时间的PR来看,他们坚信AI friend是大有未来的,We really have this vision where we think everyone will have an AI friend and everyone will discuss things every day with Hugging Face, so that’s really what we’re focused on right now and for the next few years4

左边 是CTO Julien Chaumond,右边 是CEO Clem Delangue

在2017年3月9号,他们在iOS App Store正式推出了Hugging Face App,产品的界面是这样的:

当然,从日后来看,这段时间更重要的事情是Anthony MOIThomas Wolf的加入以及$1.2M的融资5,投资机构包括Betaworks、SV Angel以及NBA球星杜兰特:)

🤗 App貌似还是挺受欢迎的,仅内测期间的聊天内容就超过了100万条6,后续产品又集成在Kik平台,截止到2018年5月份,🤗 已经收到了超过1亿条消息,并且每天处理的消息数量达到了1百万,在5月份他们拿到了由a_capital领投的$4M7

虽然定位不是乍听上去高大上的高科技公司,但是🤗 保持了对NLP技术的投入,18年上半年也有两篇论文的产出:meta-learning a dynamic language modelContinuous Learning in a Hierarchical Multiscale Neural Network.

更为重要的是,公司内部营造了一种良好的开源氛围,早在2017年7月份,🤗 便开源了一个颇具影响力的指代消除(coreference resolution)项目:NeuralCoref (2.5k Stars),以及17年11月份用PyTorch重写了DeepMoji(官方是Keras实现)。此外,作为🤗 首席科学家的Thomas Wolf还在Medium上发表了几篇传播比较广泛的文章8

无心插柳柳成荫

2018年10月份,Google的Jacob Devlin等人发表了BERT论文,BERT模型的影响力这里就不需要多说了,千呼万唤始出来,终于在10月底,Jacob Devlin公布了BERT的官方实现(基于tensorflow)和预训练模型参数,同样在10月29号,Thomas Wolf创建了一个名为pytorch-pretrained-BERT的项目,提交了第一个commit,11月5号,基于pytorch的重新实现已经完成,并且可以读取预训练模型,

不论是Thomas本人,还是🤗 的两位联合创始人,谁都没想到这个利用几天时间完成的“小项目”竟然受到了强烈的反响,根据Thomas的推特,我们再来回顾下当时的状况:

  • 10月31号,Google开源了BERT实现和预训练模型
  • 11月5号,Thomas完成了pytorch的实现,并且可以读取预训练模型,还增加了梯度累积、多卡训练的设置
  • 11月12号,支持FP16训练
  • 11月17号,支持pip安装,包含了多种模型结构
  • 12月1号,发布v0.3.0版本
  • 12月14号,发布v0.4.0版本,这个版本包含了诸如NVIDIA等众多contributor的贡献

从其他公开资料推测,BERT开源前的那段时间,Thomas等人的工作重点一是赢得了NeurIPS 2018的ConvAI2比赛,二是一篇多任务学习的工作HMTL中了AAAI 2019。但是就是这么无心插柳柳成荫,pytorch-pretrained-BERT彻底火了。

显然这也超出了公司的预期,毕竟🤗 在19年2月份还推出了一款支持语音闲聊的App: Voice Boloss9,而到了4月1号,pytorch-pretrained-BERT已经达成了5k Star成就,我想,此时再固执的公司管理层也会对这种意料之外的成功有所心动吧?而这仅仅是开始,到了7月17号,pytorch-pretrained-BERT项目被正式更名为Pytorch-Transformers,此时它的Star数量已经超过了1万。

此时,pytorch已经不太能容的下transformers的野心了,在9月26号,项目正式命名为Transformers,同时支持pytorch和tensorflow 2.0。

在19年12月17号,Lux Capital对外宣布领投了🤗 的A轮融资$15M,正如他们在PR中写的

仅仅在1年前,🤗 开发了Transformers,很快就成为NLP领域最耀眼的开源项目,帮助工程师和研究人员构建SOTA的NLP技术,已经有超过1000家公司在生成环境应用了Transformers。

你还能找到聊天机器人的字眼吗?

如今的Hugging Face 🤗

在All in开源之后,🤗 给自己的定位是"We are the AI community building the future.” 我理解就是做好AI社区的服务,考虑到AI社区既包含学术界的研究人员又包含工业界的工程师,简单来说就是做到加快学界研究进展同时让工业界享受到研究红利。如果这一点达成共识,我们就比较容易理解 的一系列产品和动作。

Transformers

Transformers作为🤗 的头号产品,集成了当今大量SOTA模型的实现,一是降低了预训练模型甚至NLP领域的学习门槛,二是方便研究人员和工程师进行魔改二次开发,加速研究进展。只有把行业蛋糕做大,作为公司才可能会有更好的钱景。

宁愿吃一个大蛋糕的1%也不愿意吃一个100%的小蛋糕。

Tokenizers

数据预处理阶段必不可少的分词,这里主要指subword,🤗 用Rust将常用的算法进行了统一实现,为了给大家提供统一的高性能API,这些脏活累活🤗 愿意去做。

ps: 该项目主要开发者是🤗 的第一位员工Anthony MOI.

Hugging Face Hub

托管了38k+的模型和2.6k的数据集,作为模型和数据集版本的"Github",为大家提供便利的同时也完成了更深层次的用户绑定。

Hugging Face Space

Demo在产品研发过程中非常重要,机器学习项目也不例外,目前有两个比较好用的机器学习Demo工具:Streamlit和Gradio,后者已经被🤗 在21年12月份收购,而前者则在今年3月份被Snowflake以$800M的价格收购10

Space可以看作是demo托管平台,demo版本的"GitHub"。

accelerate && optimum

除了模型多而全,如何加速训练和预测,也是用户体验的关键点,🤗 自然不会放过,这两个项目就是内部优化团伙的工作,其实,🤗 及其注重性能,从招聘信息11就能看出来,他们很希望transformers能够支持各种模型训练和精调的新技术(比如DeepSpeedfaircale以及各种模型并行)以及适配新的AI加速硬件(比如Graphcore)。

Inference API && Infinity && Expert Support

🤗 终归是要想办法赚钱的,这是目前的三种商业途径,前两种都侧重模型Inference加速,如果你的业务量比较小并且团队也不大,没有精力自己部署模型更别提做性能优化了,那就可以选择Inference API,即通过HTTP的方式调用🤗部署的模型,低成本享受NLP SOTA技术的红利,如果你的业务规模比较大可以自己部署模型,那也可以使用🤗 提供的基于容器的Inference加速方案:Infinity。当然,🤗 也提供机器学习流程的专家指导,这钱花的值不值,我就不清楚了:)

BigScience

GPT-3很令人激动,但是无奈OpenAI选择了不开源,🤗 已经牵头启动了一项大规模语言模型的训练工作,以一种更加open的方式提供给社区,后面我会专门写一篇文章介绍BigScience项目.

此外,🤗 也积极和云服务商合作12来扩大ecosystem。

总结

一家做闲聊机器人的公司缘何All in开源,成为了NLP领域乃至ML领域的今日之星?在完成对Hugging Face的调研后,也有几点感触:

  • 机遇和运气很重要,BERT这样的机遇和Thomas的无心插柳,这个结果是谁都没想到的,但是事后诸葛一下,为什么是Hugging Face 🤗 抓住了这个机遇?自然离不开Hugging Face对技术的投入,以及更重要一点,拥抱开源,而这又离不开优秀的人。
  • Hugging Face做的事情技术难度很高,很高大上吗?我感觉并没有,但是为什么这么成功?因为它把很多脏活累活替我们做了,tensorflow模型转pytorch?或者转onnx?或者tokenizer?以及各种最新的SOTA实现,当这些点点滴滴的杂活积攒在一起,就能产生足够大的影响力。这一点很类似AWS,其实对于AWS客户来说,它很大一部分作用替代的是原来的运维团队,做的都是脏活累活,但是用户体验就是很爽,不妨碍让它成为云行业巨头。
  • 不是每一家成功的企业都能在创业初期就幸运的找到日后成功的方向,有的在创业初期就坚信一个方向,好比看到了黑夜中的斑点星光,而大多数人只是听到了一个模糊的声音,模糊到声音来自哪个方向都需要去探索,幸运的是,Hugging Face只探索了一次。

  1. https://www.linkedin.com/in/clementdelangue/ ↩︎

  2. https://www.linkedin.com/in/julienchaumond/?originalSubdomain=fr ↩︎

  3. Julien Chaumond在2016年7月22号发了一条"Oh, Hi #HuggingFace"的推文 https://twitter.com/julien_c/status/756238579974668288 ↩︎

  4. https://venturebeat.com/2017/03/09/hugging-face-launches-app-to-be-your-ai-friend/ ↩︎

  5. https://angel.co/company/hugging-face/funding ↩︎

  6. https://www.producthunt.com/posts/hugging-face ↩︎

  7. https://techcrunch.com/2018/05/23/hugging-face-raises-4-million-for-its-artificial-bff/ ↩︎

  8. https://medium.com/@Thomwolf ↩︎

  9. https://www.producthunt.com/posts/voice-boloss ↩︎

  10. https://techcrunch.com/2022/03/02/snowflake-acquires-streamlit-for-800m-to-help-customers-build-data-based-apps/ ↩︎

  11. https://apply.workable.com/huggingface/j/E48E7ED541/ ↩︎

  12. https://huggingface.co/blog/the-partnership-amazon-sagemaker-and-hugging-face https://huggingface.co/blog/the-partnership-amazon-sagemaker-and-hugging-face ↩︎