机器学习专家 – Lewis Tunstall
Machine Learning Expert - Lewis Tunstall
🤗 欢迎来到机器学习专家 – Lewis Tunstall
嘿朋友们!欢迎来到机器学习专家。我是你们的主持人Britney Muller,今天的嘉宾是Lewis Tunstall。Lewis是Hugging Face的机器学习工程师,他致力于将Transformers应用于自动化业务流程和解决MLOps挑战。
Lewis曾为初创公司和企业构建过NLP、拓扑数据分析和时间序列领域的机器学习应用。
你将会听到Lewis谈论他的新书、Transformers、大规模模型评估,以及他如何帮助机器学习工程师优化更快的延迟和更高的吞吐量等话题。
在之前的生活中,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的书,你有兴趣吗?”我并没有期望会有回复。但令我们惊讶的是,他回复说:“是的,当然,我们来聊聊吧。”大约一年半后,这就是我们的书:NLP with Transformers。
这次合作为我和Leandro最终加入Hugging Face奠定了基础。我已经在这里工作了大约九个月。
太令人难以置信了。拥有自己的书副本的感觉如何?
Lewis:我必须说,大约一年半前我刚当父亲时的感觉有些相似。你拿着这个你创造的东西。
这是一种令人兴奋的感觉,和阅读PDF完全不同。证实了它是真实存在的,而不仅仅是我做梦。
确切地说,恭喜你!
我想简要读一段我喜欢的关于这本书的推荐语:
“_将复杂性变得简单。这是一本关于NLP、Transformers以及围绕它们的日益发展的生态系统——Hugging Face的珍稀而宝贵的书籍。无论你对这些概念是陌生的还是已经对它们有了扎实的理解,作者都会以幽默、科学严谨和大量的代码示例为您引导进入这个最酷的技术的最深层秘密。从“现成的预训练”到“从头开始定制”模型,以及从性能到缺失标签的问题,作者几乎涵盖了每个机器学习工程师在实际生活中遇到的困境,并提供了最先进的解决方案,使这本书注定成为该领域多年来的标杆。” ——Luca Perrozi博士,亚昆特数据科学和机器学习副经理。
使用Transformers进行自然语言处理。
你能谈谈你在transformers库上的工作吗?
Lewis:在加入Hugging Face之前,我在之前的工作中遇到的一个挑战是将这些模型部署到生产环境中时存在的问题;这些模型在参数数量上非常庞大,这给可能存在的需求复杂性增加了很多。
例如,如果你想构建一个聊天机器人,你需要这个模型非常快速和反应灵敏。而大多数情况下,如果你只是拿一个现成的模型进行训练,然后尝试将其集成到你的应用程序中,这些模型的速度有点太慢了。
因此,在过去几个月里,我在transformers库上的工作主要是提供导出这些模型的功能,以便使用我们在Hugging Face拥有的工具,以及开源生态系统中的通用工具更高效地运行它们。
从某种意义上说,transformers库的理念就是编写大量的代码,以便用户无需自己编写这些代码。
在这个特定的例子中,我们谈到的是一种称为ONNX格式的东西。这是一种在行业中使用的特殊格式,你可以将一个用PyTorch编写的模型转换为TensorFlow,或者在一些专用硬件上运行。
如果你实际上看一下在transformers库中进行这种转换所需的工作,它是相当复杂的。但是我们做到了,你只需要运行一行代码,库就会为你处理好一切。
所以,这个特性的主要目的是让机器学习工程师甚至数据科学家能够将他们的模型转换为这种格式,然后进行优化,以获得更快的延迟和更高的吞吐量。
太酷了。Transformers有什么杰出的应用吗?
Lewis:我认为有几个。其中之一可能是情感或个人方面的,例如当OpenAI发布了GPT-2这个非常有名的语言模型时,它可以生成文本。
OpenAI在他们的博客文章中实际上提供了一些这个模型生成的文章的例子。其中有一个非常有趣,它是关于为什么我们不应该回收或回收是不好的。
这个模型写了一篇关于为什么回收是不好的的引人入胜的文章。当时我和Leandro在一家创业公司工作,我把它打印出来贴在办公室的回收桶上,作为一个笑话。人们问,“哇,谁写的?”我说,“是个算法。”
我认为这有点奇怪地人性化,对吗?当我们看到生成的文本时,如果它看起来像是我(或另一个人)可能写的东西,我们会更加惊讶,而不是像分类文本或其他更常见的任务那样。
太不可思议了。我记得当他们发布GPT-2的那些例子时,我最喜欢的是一些更不准确的提及,比如“水下火灾”,这几乎让我感觉到我们还没有完全到达那个程度。
Lewis:确实!
Britney:但是,接下来的一年发生了一起油泄漏事故,实际上发生了水下火灾!我立刻想到了那篇文章,我想,也许人工智能已经有了一些我们还不太清楚的东西?
你和Hugging Face的其他专家一直在努力开发Hugging Face课程。这是怎么开始的,它的发展方向如何?
Lewis:当我加入Hugging Face时,Sylvain和Lysandre,也就是transformers库的核心维护人员之一,正在开发一门课程,目的是弥合那些更像是软件工程师的人与自然语言处理以及特别是transformers革命之间的鸿沟。所以我与他们以及开源团队的其他人合作,创建了一门名为Hugging Face课程的免费课程。这门课程旨在帮助人们从对机器学习知之甚少的状态,一直到能够在许多不同任务上训练模型的能力。
而且,我们已经发布了这门课程的前两部分,并计划在今年发布第三部分。我对我们正在开发的下一部分非常兴奋,我们将在其中探索变换器在不同模态下的强大功能。我们通常认为变换器只适用于自然语言处理(NLP),但实际上现在变换器被广泛应用于音频或计算机视觉等领域,我们将详细研究这些应用。
你对一些变换器应用感到兴奋的是哪些?
Lewis:其中一个有趣的应用是在课程中,我们去年组织了一个活动,让社区的人们利用课程材料构建应用程序。
在这个活动中,有一位参与者创建了一个求职信生成器。他的想法是,当你申请工作时,总是要写一封求职信,而这常常需要一些巧妙的技巧。所以这位参与者创建了一个求职信生成器,你只需要提供一些关于自己的信息,它就会根据这些信息生成求职信。
他实际上用这个生成器申请了 Hugging Face 公司。
真的吗?!
Lewis:他现在是 Big Science 团队的一名实习生。这真是太酷了,对吧?当你学到东西然后用它来申请工作,我觉得这非常棒。
你希望在哪些领域看到更多的机器学习应用?
Lewis:个人而言,我最感兴趣的领域是将机器学习应用于自然科学。这部分是因为我的背景,我曾经是一名物理学家。但我觉得另一个令人兴奋的地方在于,在许多领域中,例如物理学或化学,你已经知道了一些基本的规律,可以用方程式来描述,但实际上你感兴趣的很多问题通常需要进行模拟,或者需要强大的超级计算机来理解和解决这些方程。对我来说,最令人兴奋的事情之一是将深度学习与科学家们已经积累的先验知识结合起来,以实现以前不可能的突破。
我认为一个很好的例子是 DeepMind 的 Alpha Fold 模型,用于蛋白质结构预测,他们基本上是使用变换器与一些额外信息结合,生成以前可能需要数月时间的蛋白质预测结果,现在只需要几天。
这以一种非常强大的方式加速了整个领域的发展。我可以想象这些应用最终会带来对人类更美好的未来。
你认为模型评估的世界会如何发展?
Lewis:这是一个很好的问题。在 Hugging Face,我一直在努力构建支持所谓“大规模评估”的基础设施和工具。你可能知道,Hugging Face Hub 上有成千上万个模型和数据集。但如果你想在这个领域中找到答案,比如说,“我对问题回答感兴趣,想知道在这个特定任务上的前十个模型是什么”,目前很难找到答案,不仅仅在 Hub 上,而且在机器学习领域中这也是相当困难的。你经常需要阅读论文,然后自己手动测试这些模型,这非常耗时和低效。
所以我们一直在努力开发一种方式,可以直接通过 Hub 评估模型和数据集。我们仍在尝试不同的方向。但我希望今年晚些时候能有一些很酷的东西展示出来。
另外还有一个问题,那就是在机器学习中衡量进展的一个重要方法是使用基准测试。传统上,这些基准测试是一组数据集和一些任务,但可能会有一个问题,很多研究人员会向我们提出:“嘿,我有一个很酷的基准测试点子,但我不想实现所有繁琐的基础设施,例如提交和维护等。”
因此,我们正在与一些非常棒的合作伙伴合作,在 Hub 上直接托管基准测试。这样,研究界的人们可以使用我们的工具来简化这些模型的评估。
这非常有趣而且强大。
Lewis:也许有一件事需要提到,整个评估问题非常微妙。我们从之前的基准测试中知道,比如SQuAD,这是一个著名的评估模型在回答问题方面表现如何的基准测试,许多这些Transformer模型擅长走捷径。
嗯,这是目标,但事实证明,许多这些Transformer模型真的擅长走捷径。所以,它们实际上所做的是在一个基准测试中获得了非常高的分数,但这并不一定转化为你真正感兴趣的实际问题,也就是回答问题。
而且,这些模型存在许多微妙的失败模式,它们可能会提供完全错误的答案,或者根本不应该回答。所以目前在研究界有一个非常活跃和激烈的讨论,关于基准测试在我们衡量进展方式中的作用。
但同时,这些基准测试如何编码我们作为一个社区的价值观?我认为Hugging Face在这方面真正可以为社区提供一些手段,因为传统上大多数这些研究论文来自美国,美国是一个伟大的国家,但它只是人类经验的一个小片段,对吧?
机器学习工程师或团队常犯的一些错误是什么?
Lewis:我可以告诉你我做过的一些错误。
可能代表了其他大部分错误。所以我认为当我刚开始进入这个领域时学到的最重要的一课是在刚开始时使用基准模型。这是一个常见的问题,我自己也犯过,后来看到其他初级工程师也犯过的问题,就是追求最先进的模型。
虽然这可能有效,但很多时候会给问题引入很多复杂性,而且你的最先进模型可能会有一个bug,而你并不知道如何修复,因为模型太复杂了。这在工业界特别是在自然语言处理领域是一个非常常见的模式,你实际上可以用正则表达式和线性模型如逻辑回归等来取得很好的起点。然后如果你能构建一个更好的模型,那就太棒了,你应该去做,但是有一个参考点会很好。
然后我认为从构建很多项目中学到的第二个重要教训是,你可能会过于关注问题的建模部分,因为这是机器学习的最令人兴奋的部分,但实际上还有整个生态系统。特别是如果你在一家大公司工作,你的应用周围会有整个生态系统的服务和其他东西。
所以教训是你应该真正尝试构建一个端到端的东西,甚至可能根本没有任何机器学习。但它是你可以构建整个系统的脚手架,因为你可能会花费很多时间训练一个很棒的模型,然后你会发现,哦,糟糕。
它与我们应用的要求不兼容。然后你就浪费了所有这些时间。
这是个好建议!不要过度工程化。这是我一直努力记住的事。
Lewis:确切地说。这是一种人类的自然倾向,特别是如果你是个书呆子,你真的想找到最有趣的方式来做某件事,但大多数时候简单就是更好。
如果你能回到过去,在你的机器学习职业生涯的开始阶段,你会做什么不同的事情?
Lewis:哦,哇。这是个难题。嗯。所以,这个问题很难回答的原因是,现在我在Hugging Face工作,这是我一生中最充实的工作类型。问题是,如果我在开始时改变了一些事情,也许我就不会来到这里,对吧?
从这个意义上说,这是个棘手的问题。我想也许我会稍微有些不同,当我开始作为一名数据科学家工作时,你往往会发展那些关于将业务问题映射到软件问题或最终机器学习问题的技能。
这是一个非常棒的技能。但后来我发现,我真正的激情是进行开源软件开发。所以也许我会做一些不同的事情,比如更早开始。因为归根结底,大多数开源项目都是由社区成员推动的。
所以这可能是我捷径的方式,能让我全职从事这项工作。
我喜欢这个想法,如果你做了一些不同的事情,也许你就不会在Hugging Face了。
Lewis: 就像电影《蝴蝶效应》一样,对吧?你回到过去,然后你就没有腿了或者其他什么。
完全正确。不想破坏一件好事!
Lewis: 没错。
快速提问:
对于想进入人工智能/机器学习领域的人,你有什么最好的建议?
Lewis: 就是开始。开始写代码。如果你想做开源项目,就开始贡献。你总是可以找到不做的理由,但你必须动手。
你最期待看到机器学习应用在哪些行业?
Lewis: 正如我之前所说,我认为自然科学是我最感兴趣的领域。
我认为这是最令人兴奋的地方。如果我们看看工业领域,通过机器学习开发新药物的进展是非常令人兴奋的。就个人而言,如果机器人能够帮我叠衣服,我会非常高兴,因为我真的很讨厌这个,如果有自动化的方式来处理这个问题,那就太好了。
人们应该害怕人工智能接管世界吗?
Lewis: 可能吧。这是个难题,因为我认为我们有理由认为我们可能会创造出一些相当危险的系统,因为它们可能被用来造成很大的伤害。一个类比可以是武器,你可以在体育运动中使用,比如射箭和射击,但你也可以用它们来打仗。一个很大的风险可能是,如果我们考虑将这些技术与军事结合,可能会导致一些棘手的局面。
但是,我对终结者没有太多担忧。我更担心的是,我不知道,一个在金融股市上搞砸整个世界的流氓。
这是一个很好的观点。
Lewis: 抱歉,这有点黑暗。
不,这很棒。下一个问题是关于你叠衣服机器人的后续。人工智能辅助机器人何时会普及到家庭中?
Lewis: 坦率地说,我不知道。我认识的所有从事机器人技术的人都说这仍然是一项非常困难的任务,因为机器人技术还没有像自然语言处理和深度学习那样经历过同样的革命。但另一方面,过去一年中出现了一些非常令人兴奋的进展,特别是关于将仿真知识转移到现实世界的想法。
我相信在我有生之年,我会拥有一个叠衣服的机器人。
最近你对什么感兴趣?可以是电影、食谱、播客,任何事情都可以。我只是好奇那是什么,有兴趣的人如何找到它或开始进入其中。
Lewis:这是一个很好的问题。对我来说,我喜欢播客。因为我有一个小宝宝,所以我可以一边做家务,一边听播客,这成了我读书的新方式。
最近一个非常出色的播客是由英国数学家汉娜·弗莱制作的DeepMind播客。她在播客中不仅介绍了DeepMind的工作,还介绍了深度学习和特别是强化学习的一般情况,以及它们对世界的影响。听这个播客感觉就像在听BBC纪录片,因为英语口音很好,让人感到非常受启发,因为她在播客中讨论的很多工作与我们在Hugging Face所做的工作有很大的重叠。你会看到更大的画面,为未来铺平道路。
这对我产生了强烈的共鸣。我喜欢它,因为解释非常清晰,你可以与家人和朋友分享,说:“嘿,如果你想知道我在做什么?这可以给你一个大致的想法。”
它给你一个非常有趣的了解DeepMind研究人员及其背景。
我肯定会去听一下。[更新:这是我新最喜欢的播客之一。:) 谢谢,Lewis!]
你最喜欢的机器学习论文有哪些?
Lewis:这要看我们如何衡量,但有一篇论文引起了我的注意,这是一篇相当古老的论文。它是由随机森林的创始人Leo Breiman撰写的。随机森林是一种非常著名的经典机器学习技术,适用于在工业中看到的表格数据。一年前,我在大学里教授随机森林。
于是我想,好吧,我来读一下这篇20世纪的论文,看看我是否能理解。这是一个非常清晰的模型。它非常简短,非常清楚地解释了算法的实现。你基本上只需要拿起这篇论文,就可以非常容易地实现代码。对我来说,这是一个很好的例子,展示了中世纪时期论文的写作方式。
而如今,大多数论文都采用公式化的方法,即介绍、表格和一些改进的数字,以及一些随机的相关工作部分。所以,我认为这是一个让我印象深刻的论文。
但还有一篇较近期的论文是DeepMind的一篇论文,关于使用机器学习技术来证明像代数拓扑这样的基本定理。代数拓扑是一种特殊的抽象数学分支。在我生命中的某个时刻,我曾经在这些相关主题上工作。
对我来说,这是一个非常令人兴奋的视角,它可以增强数学家的知识,缩小他们可能需要搜索的定理空间。我觉得这个例子令人惊讶,因为我一直对机器学习是否能够在显而易见的预测之外提供这种基本的科学洞察力持怀疑态度。
但这个例子表明,你实际上可以非常有创意地帮助数学家找到新的想法。
生活的意义是什么?
Lewis:我认为诚实的回答是,我不知道。而且可能任何告诉你答案的人都是在撒谎。这有点讽刺。不知道,我猜作为一个科学家,特别是一个物理学家,你会形成这样的世界观,即这并没有什么更深层的意义。
这更像是宇宙相当随机,我想唯一可以从中获得的东西除了感到非常悲伤之外,就是从你自己那里找到意义,对吧?大多数时候,这要么来自你的工作,要么来自你的家庭或朋友。
但我认为当你找到一种方式来获取自己的意义,并发现你所做的事情实际上是有趣和有意义的时候,那才是最好的部分。生活非常起伏不定,对吧?至少对我个人来说,一直以来非常有意义的事情通常都是在创造东西方面。所以,我曾经是一名音乐家,那是为别人创作音乐的一种方式,这是一种很大的乐趣。现在我创造代码,这也是一种创造性的形式。
当然。我觉得这太美了,Lewis!在我们结束之前,你还有什么想分享或提到的吗?
Lewis:也许买我的书吧。
太好了!
Lewis:[展示一本封面上有鹦鹉的书]你知道关于这只鹦鹉的故事吗?
我想不是的。
Lewis:所以当O’Reilly告诉你“我们现在要让插画师设计封面”的时候,这是个秘密,对吗?
他们不告诉你逻辑是什么,你对此没有发言权。所以,基本上,插画师会有一个想法,而在书的最后一章中,我们会用Python代码训练一个类似GPT-2的模型,这是Thom的想法,他决定将其称为代码鹦鹉。
我想他的想法或笑话是,社区对Meg Mitchell和其他人共同工作的论文《Stochastic Parrots》进行了很多讨论。这个想法是,你有这些非常强大的语言模型,它们在写作时似乎展现出类似人类的特征,但在内心深处,也许它们只是在模仿鹦鹉的行为。
你知道,如果你和像凤头鹦鹉这样的鸟说话,它会骂你或开玩笑。这可能不是智慧的真正衡量标准,对吧?所以我认为插画师可能看到了这一点,决定把一只鹦鹉放在封面上,我觉得这是这本书的完美隐喻。
还有书中有变压器的事实。
我不知道这就是O’Reilly的封面制作方式。他们不告诉你,只是从书中提取上下文然后创作出来吗?
Lewis:好像是这样。我是说,我们真的不知道制作过程。我只是猜想,也许插画师试图想出一个想法,看到书中有一些动物的内容。在其中一章中,我们讨论了长颈鹿和斑马之类的东西。但是是的,我对鹦鹉封面感到满意。
我喜欢它。看起来绝对棒极了。很多这类书籍往往很枯燥和技术性,而这本几乎读起来像是一部混合了很棒的实用技术信息的小说,这太美妙了。
Lewis:谢谢。是的,这是我们事后意识到的一件事,因为这是我们第一次写书,我们认为应该比较严肃,对吧?但如果你了解我,你会发现我对任何事情都不是特别认真。回想起来,我们应该在书中更加幽默。
我在各个地方都要控制我的幽默感,但也许某一天会有第二版,到时候我们可以注入更多的梗。
请这样做,我期待着那一天!
Lewis:实际上,书中有一个梗。我们试图在编辑注意到之前将DOGE狗偷偷放入书中,并使用了一种特殊的视觉变换器来尝试对这个梗进行分类。
真高兴你把那个梗放进去了。干得好!期待下一版中有更多的梗。非常感谢你今天的加入。我非常感激。我们的听众可以在哪里在线找到你?
Lewis:我在Twitter上非常活跃。你可以找到我的用户名 @_lewtun 。LinkedIn是个奇怪的地方,我在那里不太常上。当然,还有Hugging Face,Hugging Face论坛和Discord。
太棒了。非常感谢你,刘易斯。我很快会和你聊天!
刘易斯:再见,布兰妮。再见。
谢谢你收听机器学习专家!