大型语言模型的世界正在经历翻天覆地的变化。对于我们这些在过去几年中一直沉浸在大型语言模型中的人来说,自ChatGPT登上世界舞台以来,公众对于大型语言模型的反应形同经历某种意义上的“首秀”[1],就像经过多年训练后举行的第一场钢琴独奏音乐会。
交互式人工智能是直观的响应式用户界面与深度学习的优雅结合。用户使用强大的用户界面与底层机器学习算法交互,每一次用户互动都引导着在后台运行的机器学习算法。
我对交互式人工智能训练充满热情。一个有价值的、令人信服的机器学习模型需要能对数据进行精妙细致的洞察。这些洞察可能并不直接来源于数据,而是来源于数据所有者对如何解读数据的精湛理解。数据所有者对他们的领域有一种内在的敏锐洞察,这很难仅仅通过数据标签来体现。
例如,心脏病专家对一篇关于心绞痛研究文章的看法可能比深度学习工程师的看法更加精深。但是心脏病专家可能没有计算机科学和深度学习的背景,因此要依靠数据科学团队为此建立一个模型——这是一个会产生损耗的过程,它往往非常耗时、昂贵,并且常常会令人沮丧。
需要人工智能模型的人也应该训练它们。
但现实情况却充满了重重壁垒和阻碍。深度学习过程的技术本质(包括对编码的需求、数据清理、数据标注、模型训练和模型部署等等,这部分工作现在越来越多地被称为“ML Ops”)往往阻碍了领域数据所有者自行建模或挖掘他们自己AI相关的洞察。
我们需要的是交互式人工智能:直观的界面将强大的后台AI隐藏在一个易于理解的点选式界面中。它支持数据所有者将他们的洞察嵌入到底层AI中,而不需要编码或有任何深度学习经验。
而这恰恰就是Pienso[2]所构建的。
进入ChatGPT
2022年11月30日,OpenAI发布了ChatGPT。虽然ChatGPT基于文本的可解释性或是对话的部分占据了各种报道头条,但是其底层的大型语言模型也值得关注。
究其原因,是因为这样大规模的东西是十分重要且“硬核”的,它的移动成本很高。
大型语言模型规模庞大,它们在大量的文本数据上进行训练(想想看:在一定程度上甚至是整个互联网),具有处理各种文本任务的强大能力,可以极大地提高生产力。
商业用户可能会感兴趣如何采用通用大型语言模型来帮助实时了解客户的意图、反馈和情绪。医生可能会训练一个可以编制医疗记录的大型语言模型。虽然可能在针对一个特殊的商业领域进行fine-tune后,大型语言模型会非常强大,但是训练和部署它们的计算成本很高,并且需要大量昂贵的硬件加速器才能发挥作用。
在面向领域专家的交互式人工智能中,构建直观界面需要的是对于用户输入的快速响应。没有人愿意为了人工智能驱动的分析等上几分钟,更别说几个小时了。
对于大型语言模型来说,如果想被采用,快速和可扩展的推理至关重要。虽然它们的规模十分庞大,但是其响应时间必须近乎瞬时。
提高大型语言模型推理速度的方法之一是添加更多的硬件加速器。但是,这不仅非常昂贵,并且托管大型语言模型的云服务提供商也不一定有足够可用的硬件加速器。
其他选项是什么呢?
Pienso通过减少大型语言模型的计算足迹,实现高效、可扩展的大型语言模型推理。
打包(Packing)是一项非常关键的技术。
打包最早由Graphcore拟未为实现快速训练开发的。它是一种大幅减少排列输入文本数据中计算浪费的方法。它可以从根本上减少大型语言模型预训练、fine-tune和推理所需的时间。
我们与拟未合作,将打包投入生产,在IPU上为Pienso BERT架构的大型语言模型实现大规模高效推理。
有多种技术可以使推理更快、更具可扩展性。当前大多数实践都涉及将原始的大型语言模型精简为更小、更高效的版本。
但是,将模型精简至更小的计算足迹是以推理质量为代价的。
但打包技术就不同了。我们不精简原始模型,而是将填充最小化,以减少计算浪费。
例如,假设每个输入文本文档最多可以包含512个单词(标记)。对于每个小于512个标记的文档,剩余的空间用虚拟值填充,以确保512个标记代表每个文档。
很多时候,文本文档的标记少于512个,所以最终的文档语料库将有大量的虚拟填充值,这对训练或推理过程没有任何帮助,只会增加毫无意义的权重。
打包是一种尽可能紧密包装标记的方法。它消除多余和不必要的填充,极大地减少了训练或推理过程中的计算开销。
打包对于交互式人工智能意味着什么
通过打包,用户可以更快地fine-tune BERT架构的大型语言模型。由于在IPU上fine-tune BERT架构模型已经比在GPU上更快,因此,以打包的形式在IPU上fine-tune可以大幅减少训练时间,让每个epoch时间近乎“瞬时”。
通过打包可以进行快速训练,缩短响应时间,对更丰富的交互式人工智能体验起到促进作用。训练模型的速度越快,用于实验的时间就越多,而更多的实验会带来更好的模型。同样,打包可以帮助大型语言模型实现稳健有效的推理。
一些企业拥有大量数据,并且需要定期对这些数据进行分析。他们常常使用大型语言模型来进行推理。如果他们已经部署了一个针对他们数据进行调整的大型语言模型,那他们会希望使用这个模型推理,对大量的新数据进行实时分析。
打包让推理更具可扩展性,并且能够实现近乎瞬时的推理。这让使用额外的大型语言模型来研究同样数据成为可能。举例来说,假如一家企业有一个用于客户关系管理的基础大型语言模型。如果他们想要通过客户所说或所写的每一句话来推断客户的意图或感受,并且每句话都需要一个大型语言模型来推理,那么每天2000万个客户语句就需要2000万个推理API调用。
如果推理时间较慢,则意味着不断有积压的数据等待推理分析。通过打包,我们可以在不影响模型质量的情况下使推理速度加快一个数量级。过去需要几个小时的工作,现在只需几分钟就可以完成。
随着大型语言模型新用途的解锁,这种近乎实时获取推理的能力推动了一种新的思路。
归根结底,用户体验就是一切。
作为深度学习工程师,我们关注的是模型质量。我们投入时间和精力构造质量更好的模型,使其可以提供准确的洞见,并良好地概括新数据。

交互式人工智能使得与AI互动的人是领域数据专家而非深度学习工程师的可能性越来越大。因此,用户体验变得越来越重要。

如果用户体验不利于实验或令人沮丧,可能就无法实现高质量的大型语言模型。冗长缓慢的训练和推理将阻碍人工智能的使用。

我们必须采取经济的方法,让训练和推理变得更快、更具可扩展性。

打包就是这样一种方法。

我们很高兴能在下一个Pienso版本中将用于BERT的打包技术投入生产,并在2023年将打包应用于新的大型语言模型。
这是一篇由Pienso联合创始人兼首席技术官Karthik Dinakar撰写的客座文章。Pienso是拟未的合作伙伴,帮助客户从他们的业务数据中解锁可行的见解,不需要编码技能或人工智能相关经验。
Karthik是一位计算机科学家,专门研究机器学习、自然语言处理和人机交互。Karthik拥有麻省理工学院的博士学位。
[1]https://www.noordanceacademy.com/single-post/what-is-an-arangetram#:~:text=The%20word%20%22arangetram%22%20means%20%22,members%20of%20the%20artistic%20community.
[2]https://pienso.com/
获取更多Graphcore资讯,阅读深度技术文章,并与其他创新者们一起交流,请至中国官网graphcore.cn,以及关注Graphcore微信、微博和知乎创新社区。
Graphcore中国官网
Graphcore官方微信
Graphcore微博创新社区
Graphcore知乎创新社区
点击阅读原文,查看英文blog。
继续阅读
阅读原文