机器学习专家 - Lewis Tunstall

发布于2022年4月13日
在 GitHub 上更新

🤗 欢迎来到机器学习专家——Lewis Tunstall

嗨,朋友们!欢迎来到机器学习专家。我是主持人Britney Muller,今天的嘉宾是Lewis Tunstall。Lewis是Hugging Face的机器学习工程师,他致力于应用Transformers来自动化业务流程并解决MLOps挑战。

Lewis曾为初创公司和企业构建NLP、拓扑数据分析和时间序列领域的ML应用。

您将听到Lewis谈论他的新书、Transformer、大规模模型评估、他如何帮助ML工程师优化以实现更快的延迟和更高的吞吐量等等。

在之前的人生中,Lewis是一名理论物理学家,工作之余喜欢弹吉他、越野跑,并为开源项目做贡献。

非常高兴向大家介绍这一有趣而精彩的节目!以下是我与Lewis Tunstall的对话。

注意:为提供最佳阅读体验,文字稿已稍作修改/重新排版。

欢迎,Lewis!非常感谢你从百忙之中抽出时间来和我聊聊你出色的工作!

Lewis:谢谢你,Britney。很高兴来到这里。

好奇你是否能简单地自我介绍一下,并重点说明是什么让你来到了Hugging Face?

Lewis:把我带到Hugging Face的是Transformers。2018年,我在瑞士的一家初创公司使用Transformers。我的第一个项目是一个问答任务,你可以输入一些文本并训练一个模型来尝试在文本中找到问题的答案。

那时候这个库叫做:pytorch-pretrained-bert,它是一个非常集中的代码库,包含几个脚本,那是我第一次使用Transformers。我完全不知道发生了什么,所以我读了最初的《Attention Is All You Need》论文,但我无法理解。于是我开始寻找其他资源来学习。

在这个过程中,Hugging Face的库发展壮大,包含了许多架构,我开始对为开源软件做出贡献感到非常兴奋。所以大约在2019年,我萌生了一个有点疯狂的想法,想写一本关于Transformers的书,因为我觉得存在一个信息空白。于是我与我的朋友Leandro(von Werra)合作,我们突然给Thom(Wolf)发了一封不请自来的邮件,说:“嘿,我们要写一本关于Transformers的书,你感兴趣吗?”我当时没指望能得到回复。但出乎我们意料的是,他回复说:“是的,当然,我们聊聊吧。”大约1.5年后,这就是我们的书:《用Transformers进行自然语言处理》

这次合作播下了我和Leandro最终加入Hugging Face的种子。我现在在这里已经大约九个月了。

这太不可思议了。手里拿着你的书,感觉如何?

Lewis:我得说,我大约一年半前刚为人父,那种感觉有点像我儿子的诞生。你手里拿着这个你创造的东西。

这是一种相当令人兴奋的感觉,而且实际拿着它(与阅读PDF相比)非常不同。它证实了这本书是真实的,而不是我只是做梦。

没错。祝贺你!

想简单读一段我非常喜欢的对这本书的推荐语:

“_化繁为简。这是一本关于NLP、Transformer及其Hugging Face日益壮大的生态系统的稀有而珍贵的书籍。无论这些对你来说是流行词还是你已经对此有扎实的理解,作者都将以幽默、科学严谨和大量的代码示例,引导你深入了解最酷技术的秘密。从“开箱即用的预训练”到“从零开始的自定义”模型,以及从性能到缺失标签问题,作者几乎解决了机器学习工程师遇到的每一个现实挑战,并提供了最先进的解决方案,注定这本书将在未来多年内成为该领域的标准。_”——Luca Perrozi 博士,埃森哲数据科学与机器学习副经理。

查看《使用Transformers进行自然语言处理》

你能谈谈你在Transformers库方面所做的工作吗?

Lewis:我在Hugging Face之前的工作经历中,遇到的一大挑战是如何将这些模型部署到生产环境中;这些模型在参数数量方面非常庞大,这给您的需求增加了许多复杂性。

举例来说,如果你想构建一个聊天机器人,你需要这个模型非常快速且响应灵敏。而大多数情况下,如果你只是简单地使用一个现成的模型进行训练,然后尝试将其集成到你的应用程序中,这些模型会有点慢。

因此,在过去的几个月里,我在Transformers库上一直致力于提供将这些模型导出为某种格式的功能,这种格式可以让您使用我们在Hugging Face拥有的工具,以及开源生态系统中的通用工具,更高效地运行它们。

在某种程度上,Transformers库的理念是编写大量的代码,以便用户不必编写这些代码。

在这个特定的例子中,我们谈论的是一种名为ONNX的特殊格式。它是一种在工业中使用的特殊格式,您可以在其中拥有一个用PyTorch编写的模型,但随后可以将其转换为TensorFlow,或者在某些非常专用的硬件上运行它。

如果你真正看一下在Transformers库中实现这种转换所需的东西,它相当复杂。但我们让它变得如此简单,你只需要运行一行代码,库就会为你搞定一切。

所以,这个想法是,这个特定功能可以让机器学习工程师甚至数据科学家获取他们的模型,将其转换为这种格式,然后优化它以获得更低的延迟和更高的吞吐量。

那真是太酷了。Transformer有没有什么突出的应用?

Lewis:我认为有几个。其中一个可能比较感性或个人化,例如我们很多人在OpenAI发布GPT-2时,这个非常著名的能够生成文本的语言模型。

OpenAI实际上在他们的博客文章中提供了一些这个模型创建的论文的例子。其中一篇非常有趣。其中一篇是关于为什么我们不应该回收或为什么回收是不好的论文。

然后这个模型写了一篇很有说服力的关于为什么回收不好的论文。我和Leandro当时正在一家初创公司工作,我把它打印出来,贴在办公室的回收箱上方,当作一个笑话。人们都说:“哇,这是谁写的?”我说:“一个算法。”

我认为这有点奇怪的人性化,对吧?当我们看到生成的文本时,如果它看起来像我(或另一个人)可能写的东西,我们会感到更惊讶,而不是像分类文本或更传统任务那样发生的其他应用程序。

那真是令人难以置信。我记得他们发布GPT-2的那些例子时,我最喜欢的一个(几乎让我有一种“呼,我们还没到那一步”的感觉)是一些更不准确的说法,比如“水下火灾”。

Lewis:没错!

Britney:但是,第二年发生了石油泄漏事故,竟然真的有水下火灾!我立刻想起了那段文字,并想,也许人工智能已经发现了我们尚未意识到的东西?

你和Hugging Face的其他专家一直在Hugging Face课程上努力。这个课程是如何产生的?它未来会走向何方?

Lewis:当我加入Hugging Face时,SylvianLysandre,作为Transformers库的两位核心维护者,正在开发一门课程,旨在弥合软件工程师和对自然语言处理,特别是对正在发生的Transformers革命感兴趣的人之间的差距。因此,我与他们以及开源团队的其他成员合作,创建了一门名为Hugging Face课程的免费课程。这门课程旨在真正帮助人们从对机器学习知之甚少到能够训练处理许多不同任务的模型。

而且,我们已经发布了这门课程的两部分,并计划在今年发布第三部分。我对我们目前正在开发的下一部分感到非常兴奋,我们将探索Transformer真正强大的不同模态。大多数时候我们认为Transformer用于自然语言处理,但实际上,Transformer的使用范围已经爆炸式增长,被用于音频或计算机视觉等领域,我们将详细研究这些。

你对哪些Transformer应用感到兴奋?

Lewis:一个很有趣的应用是,去年我们举办了一场活动,让社区成员利用课程材料构建应用程序。

其中一位参与者创建了一个求职信生成器。这个想法是,当你申请工作时,总会遇到一件烦人的事:你必须写一封求职信,而且总是要写得巧妙。所以这个家伙创建了一个求职信生成器,你提供一些关于你自己的信息,然后它会根据这些信息生成求职信。

他实际上用它来申请Hugging Face。

不可能吧?!

Lewis:他正在作为实习生加入“大科学”团队。所以。我的意思是这真是太酷了,对吧?你学到了一些东西,然后用它来申请,我觉得这太棒了。

你希望在哪些领域看到更多的机器学习应用?

Lewis:所以我个人认为,最让我兴奋的领域是机器学习在自然科学中的应用。这部分是由于我的背景。我以前是个物理学家,但我觉得这里非常令人兴奋的是,在很多领域。例如,在物理学或化学中,你已经知道潜在的定律是什么,可以用方程写下来,但事实证明,你感兴趣研究的许多问题通常需要模拟。或者它们通常需要非常硬核的超级计算机来理解和解决这些方程。对我来说最令人兴奋的事情之一是深度学习与科学家们积累的先验知识相结合,从而实现以前不可能实现的突破。

我认为一个很好的例子是DeepMind的AlphaFold模型,用于蛋白质结构预测,他们基本上是将Transformer与一些额外信息结合起来,生成蛋白质预测,我认为以前需要几个月的时间,现在他们可以在几天内完成。

所以这以一种非常强大的方式加速了整个领域。我可以想象这些应用最终有望为人类带来更美好的未来。

你如何看待模型评估领域的发展?

Lewis:这是一个很好的问题。在Hugging Face,我一直致力于构建基础设施和工具,以实现我们所说的“大规模评估”。你可能知道Hugging Face Hub拥有数千个模型和数据集。但如果你想在这个领域中导航,你可能会问自己:“我对问答感兴趣,我想知道这个特定任务上的前10个模型是哪些?”

目前,要找到这个答案很难,不仅在Hub上,在机器学习领域普遍都很难。你通常需要阅读论文,然后手动测试这些模型,这非常耗时且低效。

因此,我们一直在努力开发一种方法,让您可以直接通过Hub评估模型和数据集。我们仍在尝试探索方向。但我希望我们今年晚些时候能展示一些很酷的东西。

这还有另一方面,那就是衡量机器学习进展的一个重要部分是使用基准。这些基准传统上是一组带有某些任务的数据集,但可能缺少的是,很多研究人员对我们说:“嘿,我对一个基准有一个很酷的想法,但我真的不想实现所有提交、维护等繁琐的基础设施。”

因此,我们一直与一些非常优秀的合作伙伴合作,直接在Hub上托管基准。这样研究界的人就可以使用我们提供的工具,然后简化这些模型的评估。

这非常有趣且强大。

Lewis:也许要提一点的是,整个评估问题非常微妙。我们从以前的基准测试中得知,例如SQuAD,一个衡量模型问答能力优劣的著名基准,许多Transformer模型都擅长走捷径。

嗯,这正是目标,但事实证明,许多Transformer模型非常擅长走捷径。所以,他们实际做的就是在一个基准上获得非常高的分数,但这并不一定能转化为你真正感兴趣的问答能力。

而且你还会遇到各种微妙的失败模式,比如模型可能会给出完全错误的答案,或者根本不应该回答。所以目前在研究社区中,关于基准在衡量进展方式中所扮演的角色,以及这些基准如何编码我们社区的价值观,正在进行非常积极和激烈的讨论。

但是,Hugging Face 还能为社区提供什么呢?那就是实现价值空间的多样化,因为传统上大多数研究论文都来自美国,这是一个伟大的国家,但它只是人类经验的一小部分,对吧?

机器学习工程师或团队常犯的错误有哪些?

Lewis:我或许可以告诉你我犯过的那些错误。

可能可以很好地代表其他事情。所以我认为我刚开始从事这个领域时学到的最大教训是,在开始时要使用基线模型。我曾经犯过一个常见的错误,后来也看到其他初级工程师犯过,那就是追求最花哨的最先进模型。

虽然这可能奏效,但很多时候会发生的是,你会给问题引入大量的复杂性,而且你的最先进模型可能存在一个bug,你却不知道如何修复它,因为模型太复杂了。在工业界,尤其是在自然语言处理领域,这是一个非常常见的模式,那就是你实际上可以通过正则表达式和线性模型(如逻辑回归)走得很远,这些东西会给你一个好的开始。然后,如果你能构建一个更好的模型,那就太棒了,你应该这样做,但有一个参考点是很重要的。

然后我认为我在构建许多项目中学到的第二个重要教训是,你可能会对问题的建模部分有点痴迷,因为那是你做机器学习时最令人兴奋的部分,但却存在一个完整的生态系统。特别是如果你在一个大公司工作,你的应用程序周围会有一个完整的服务和事物生态系统。

所以,这里的教训是,你真的应该尝试构建一个端到端的东西,甚至可能根本不包含任何机器学习。但它是你可以构建系统其余部分的基础,因为你可能会花所有时间训练一个很棒的模型,然后你发现,哦,糟糕。

它不符合我们应用程序中的需求。然后你就浪费了所有的时间。

这说得好!不要过度设计。我总是努力记住这一点。

Lewis:没错。我认为作为人类,尤其是如果你是个书呆子,你会很自然地想找到最有趣的方法来做某事,但大多数时候,简单才是最好的。

如果可以回到机器学习职业生涯的开端,你会做一件不同的事情是什么?

Lewis:哦,哇。这可真是个难题。嗯。之所以这个问题很难回答,是因为我现在在Hugging Face工作,这是我一生中做过的最充实的工作。问题是,如果我一开始就改变了什么,也许我就不会在这里了,对吧?

从这个意义上讲,这是一件很棘手的事情。我想我可能唯一会做一点点不同的事情是,当我开始做数据科学家时,你往往会发展出将业务问题映射到软件问题或最终的机器学习问题的技能。

这确实是一项很棒的技能。但我后来发现,我真正的热情在于开源软件开发。所以,我可能唯一会做不同的事情就是早得多地开始这项工作。因为归根结底,大多数开源项目都是由社区成员推动的。

所以那可能是我将这条道路缩短为全职工作的一种方式。

我喜欢这个想法,如果你做了不同的选择,也许你就不会在Hugging Face了。

Lewis:就像蝴蝶效应电影一样,对吧?你回到过去,然后你却没有腿了什么的。

完全同意。别去破坏美好的事物!

Lewis:没错。

快速问答:

对于想要进入AI/机器学习领域的人,最好的建议是什么?

Lewis:就是开始。就是开始写代码。如果你想做开源,就去贡献。你总能找到不做的理由,但你必须亲自动手。

你最期待看到机器学习应用于哪些行业?

Lewis:正如我之前提到的,我认为自然科学是我最兴奋的领域。

这就是我认为最令人兴奋的地方。如果我们看看工业方面,我想通过机器学习开发新药是非常令人兴奋的。就我个人而言,如果机器人技术能取得进展,我能最终拥有一个帮我叠衣服的机器人,我会非常高兴,因为我真的很讨厌做这个,如果有一种自动化方式来处理它,那将是极好的。

人们应该害怕人工智能掌控世界吗?

Lewis:也许吧。这很难说,因为我认为我们有理由认为我们可能会创造出相当危险的系统,从某种意义上说,它们可能被用来造成很大的伤害。一个类比或许是武器,你可以在运动中使用它们,比如射箭和射击,但你也可以用它们来打仗。一个很大的风险可能是,如果我们考虑将这些技术与军事结合起来,这可能会导致一些棘手的情况。

但是,我并不太担心《终结者》。我更担心的是,比如,金融股票市场上一个流氓代理人会搞垮整个世界。

这说得对。

Lewis:抱歉,有点阴暗。

不,这很棒。下一个问题是关于你的叠衣服机器人。什么时候人工智能辅助机器人会普及到家家户户?

Lewis:老实说,我不知道。我认识的每个从事机器人技术的人都说,这仍然是一项极其困难的任务,因为机器人技术还没有经历像自然语言处理和深度学习那样的革命。但另一方面,你也可以看到去年一些令人兴奋的发展,特别是关于将知识从模拟转移到现实世界的想法。

我想我这辈子有希望拥有一台叠衣服机器人。

你最近对什么感兴趣?可以是电影、食谱、播客,任何东西。我只是好奇那是什么,以及对此感兴趣的人如何找到它或开始着手?

Lewis:这是一个很棒的问题。对我来说,我喜欢播客。这是我新的阅读方式,因为我有一个小宝宝,所以我就边做家务边听。

最近有一个播客特别突出,就是DeepMind播客,由英国数学家Hannah Fry制作,她以一种优美的方式讲述了DeepMind的工作,更广泛地来说,深度学习,特别是强化学习,以及它们如何影响世界。听这个播客感觉就像在听BBC纪录片,因为你知道英国人的口音很棒,你会感到非常受启发,因为她在播客中讨论的很多工作与我们在Hugging Face所做的工作有很强的重叠。你会看到一个更宏大的图景,即努力为更美好的未来铺平道路。

它引起了强烈的共鸣。我非常喜欢它,因为解释非常清晰,你可以和你的家人朋友分享,然后说:“嘿,如果你想知道我在做什么?这个可以给你一个大概的了解。”

它还为你提供了对 DeepMind 研究人员及其背景故事的非常有趣的洞察。

我一定会听一下的。[更新:它是我新的最喜欢的播客之一。:) 谢谢你,Lewis!]

你最喜欢的机器学习论文有哪些?

Lewis:这取决于我们如何衡量,但有一篇论文让我印象深刻,它是一篇相当古老的论文。它是由随机森林的创建者Leo Breiman撰写的。随机森林是一种非常著名的经典机器学习技术,在工业界常用的表格数据方面非常有用。一年前我不得不在大学里教授随机森林。

我当时想,好吧,我来读这篇2000年代的论文,看看我是否能理解。它清晰明了,篇幅很短,非常清楚地解释了算法是如何实现的。你基本上可以直接拿着这篇论文,非常容易地实现代码。对我来说,这是一个很好的例子,说明了中世纪论文的写作方式。

而如今,大多数论文都有这种公式化的方法,即:好的,这是一个介绍,这是一个包含一些越来越好的数字的表格,这是一个随机的相关工作部分。所以,我认为这是其中一篇让我印象深刻的论文。

但另一篇稍微新一点的论文是DeepMind的又一篇论文,关于使用机器学习技术来证明代数拓扑学等基础定理,代数拓扑学是抽象数学的一个特殊分支。在我人生的某个阶段,我曾研究过这些相关主题。

所以,对我来说,这是一个非常令人兴奋的视角,它增强了数学家在试图缩小他们可能需要搜索的定理空间时所拥有的知识。我认为这让我感到惊讶,因为很多时候,我一直对机器学习能否带来除了显而易见的预测之外的这种基础科学洞察持怀疑态度。

但这个例子表明,你实际上可以非常有创造力,并帮助数学家找到新的想法。

生命的意义是什么?

Lewis:我认为诚实的答案是我不知道。而任何告诉你答案的人可能都在撒谎。这有点讽刺。我不知道,我想作为一个受过训练的科学家,尤其是物理学家,你形成了一种世界观,认为这真的没有什么更深的意义。

宇宙非常随机,我想你唯一能从中获得的,除了非常悲伤之外,就是你自己创造意义,对吧?而大多数时候,这来自于你所做的工作,或者你的家人,或者你的朋友。

但我认为,当你找到一种方法来获得你自己的意义,并发现你所做的事情确实有趣且有意义时,那才是最好的部分。生活总是起起伏伏,对吧?至少对我个人而言,一直非常有意义的事情通常都是创造。所以,我以前是一名音乐家,那是为他人创作音乐的一种方式,从中获得了巨大的乐趣。现在我想,我大概在创造代码,这是一种创造形式。

绝对如此。Lewis,我觉得这很美!在我们结束之前,你还有什么想分享或提及的吗?

Lewis:也许可以买我的书

太棒了!

Lewis:[展示封面有一只鹦鹉的书]你知道这只鹦鹉的故事吗?

我不这么认为。

Lewis:所以当O'Reilly告诉你“我们要让我们的插画师现在来设计封面”时,这是一个秘密,对吧?

他们不会告诉你逻辑是什么,你也没有发言权。所以,基本上,插画师会提出一个想法,在书的最后一章,我们有一个部分,我们基本上用Python代码训练一个像GPT-2的模型,这是Thom的想法,他决定称之为“code parrot”(代码鹦鹉)。

我想他的想法或玩笑是,社区里有很多关于Meg Mitchell等人合著的论文《随机鹦鹉》(Stochastic Parrots)的讨论。这个想法是,这些非常强大的语言模型似乎在写作中表现出像人类一样的特征,正如我们之前讨论的,但深层原因可能只是某种鹦鹉学舌的行为。

你知道,如果你和一只凤头鹦鹉说话,它会骂你或者开玩笑。这可能不是衡量智力的真正标准,对吧?所以我认为插画师可能看到了这一点,并决定放一只鹦鹉,我认为这完美地象征了这本书。

而且书里还有Transformer。

我不知道O'Reilly的封面是那样来的。他们不告诉你,只是从书中提取上下文并创作出来吗?

Lewis:似乎是这样。我的意思是,我们真的不知道过程。我只是猜测插画师可能试图获得一个想法,并在书中看到了一些动物。在其中一章中,我们讨论了长颈鹿和斑马等。但是的,我对鹦鹉封面很满意。

我喜欢它。嗯,它看起来棒极了。很多这类书都相当枯燥和技术性强,而这本读起来几乎像一本小说,混合了很棒的实用技术信息,非常漂亮。

Lewis:谢谢。是的,这是我们后来才意识到的,因为这是我们第一次写书,我们觉得应该严肃一点,对吧?但如果你了解我,我从来没有真正严肃对待过任何事情。事后看来,我们应该在书中表现得更傻一点。

我不得不在很多地方控制我的幽默感,但也许有一天会出第二版,那时我们就可以把表情包加进去。

请务必这样做,我期待着!

Lewis:事实上,书里确实有一个表情包。我们试图在编辑眼皮底下把它偷偷塞进去,在书里放了DOGE狗,我们用一个特殊的视觉Transformer来尝试分类这个表情包是什么。

很高兴你能把这个加进去。干得漂亮!期待在下一版中看到更多。非常感谢你今天能来。我真的很感激。我们的听众可以在哪里找到你的在线资料?

Lewis: 我在 Twitter 上相当活跃。你可以通过我的用户名 @_lewtun 找到我。LinkedIn 是一个奇怪的地方,我不太常在那里。当然,还有 Hugging FaceHugging Face 论坛Discord

好的。非常感谢你,刘易斯。我们很快再聊!

Lewis: 再见,布兰妮。再见。

感谢您收听《机器学习专家》!

社区

注册登录以评论