突破边界:高性能计算引领LLM驶向通用人工智能AGI的创新纪元之二
代码预训练增强LLM推理能力
上面提到了当前利用Prompt激发LLM模型推理能力的三种主流方法,同时还观察到了一个有趣而费解的现象:除了文本之外,将程序代码与文本一起参与模型的预训练可以显著提高LLM模型的推理能力。
在论文“On the Advance of Making Language Models Better Reasoners”中,通过实验数据展示了一个有趣的现象:将程序代码与文本一起参与模型预训练,可以显著提升LLM模型的推理能力。实验结果表明,仅仅是从纯文本预训练模型切换到文本和Code混合预训练模型,就可以在几乎所有测试数据集合上,将模型推理能力提升20到50个百分点。
此外研究还发现,GPT 3这种纯文本预训练模型,其实具备相当程度的推理能力,只是需要采用合适的方法来激发。而加入instruct fine-tuning会损害LLM模型的推理能力,但会在一定程度上提升自然语言理解能力。至于为何预训练模型可以从代码的预训练中获得额外的推理能力,目前尚未得到确切的原因,但可能是因为代码训练本质上是<文本,Code>两种数据的多模态对齐工作,其中包含相当比例的数学或逻辑推理类的数据,对于解决下游数学推理问题是有帮助的。这些结论启发了后续进一步的思考和探索。
关于LLM推理能力的思考
最近一年来,关于激发LLM的推理能力的技术进展很快,但总体感觉距离接触到真正的问题本质还有一段距离,需要更深入的思考和探索。对于复杂的推理问题,将其拆解成若干简单的子问题,因为子问题对于LLM来说回答正确的概率更高。受到“Least-to-most prompting”技术的启发,LLM推理本质上可能是不断和LLM进行交互的图上推理问题,或者是不断和LLM进行交互的程序流程图执行问题。
假设我们能够将复杂问题拆解成由子问题或子步骤构成的图结构,其中节点代表子问题或子步骤,边表示子问题之间的依赖关系。我们可以根据依赖关系,引导LLM一步一步回答必须首先回答的子问题,直到推导出最终答案。图中可能存在循环结构,即需要反复执行某些子步骤。如果我们能够得到上述子问题拆解图,那么就能够有效地引导LLM进行推理。
假设我们能够将复杂问题拆解成子问题或子步骤,并生成一个类似程序流程图的结构,其中有循环结构和条件分支。我们可以在执行每个子步骤时,与LLM进行交互,得到子步骤的答案,并按照流程不断执行,直到输出最终答案。这种多模态预训练模型可以增强LLM模型从文本构建出隐含的流程图并按照流程图执行的能力,从而增强其推理能力。
然而,如何根据文本描述得到图结构或流程图结构仍然是一个难点。一种可能的思路是通过增强文本和更高质量的代码预训练来隐式学习内部隐含结构。目前的CoT技术是试图根据最后一个图节点,倒推出图结构或程序流程图,但目前的方法限制了它的倒推深度,只能推导出简单的图结构,这是其能力受限的原因。
LLM研究趋势及值得研究的重点方向
这里列出一些比较重要的LLM研究领域或值得深入探索的研究方向。
一、探索LLM模型的规模天花板
虽然LLM模型的规模看似没有技术含量,但其实这个事情异常重要。自Bert问世以来,到GPT 3和ChatGPT给人印象深刻的关键技术突破,核心贡献都来自于LLM模型规模的增长,而非某项具体技术。这说明对于知识密集型的任务,随着模型规模越大,各种任务的效果会越来越好。而对于很多推理类型的有难度的任务,加上CoT Prompting后,其效果也呈现出遵循Scaling law的趋向。因此,很自然的一个问题就是:对于这些任务,LLM的规模效应,能将这些任务解决到何种程度?
考虑到LLM具备的神奇的“涌现能力”,如果继续增加模型规模,将会解锁哪些意想不到的新能力呢?这也是很有意思的问题。因此,需要不断增大模型规模,看看模型规模对解决各类任务的天花板在哪里。当然,这种事情也就只能说说,对99.99%的从业者来说,是没有机会和能力做这个事情的。
要做这个事情,对研究机构的财力及投入意愿、工程能力、技术热情,都有极高的要求,缺一不可。能做这事情的机构,粗估下来,国外不超过5家,国内不超过3家。这是因为做超大规模的LLM模型对技术团队的工程实现能力要求非常高,需要有非常强的硬件和软件支持。因此,这是具有技术含量的工作。
尽管如此,继续推大LLM模型规模的研究意义仍然非常重要。除探究LLM的规模效应对各种任务的效果影响到何种程度,还可以探索LLM模型规模增大后会解锁哪些新的能力。这些问题的答案将有助于更好地理解LLM模型的性质和行为,为未来的研究和应用提供重要的参考。因此,对于有能力的研究机构来说,继续推大LLM模型规模的研究是非常有价值的。
二、增强LLM的复杂推理能力
正如之前对LLM推理能力的叙述,尽管LLM在最近一年的推理能力方面取得了很大进展,但是仍然存在一些限制。例如,许多研究表明,LLM仍然无法很好地解决复杂推理问题,特别是当涉及到长字符串或数字时,LLM的推理能力会显著下降。因此,加强LLM的复杂推理能力应该成为未来研究的重点之一。
在前文中,我们提到了一种直接增强LLM推理能力的方法,即将代码加入到预训练中。虽然这种方法已经得到了一些实践的总结,但是需要深入探索背后的原理,并引入更多类型的新型数据来增强LLM的推理能力。这可能是更本质的提升LLM推理能力的方向,而不仅仅局限于代码的加入。
三、LLM纳入NLP之外更多其它研究领域
当前的ChatGPT是一个在自然语言处理(NLP)和编程任务方面表现出色的模型。作为通向人工通用智能(AGI)的前沿研究之一,将图像、视频、音频等多媒体数据与语言模型相结合,并进一步将AI应用到科学研究、机器人控制等其他领域,是实现更大范围应用和差异化发展的重要途径。虽然这个研究方向仍处于初级阶段,但却具有极高的研究价值。
四、更易用的人和LLM的交互接口
正如前面所讨论的那样,ChatGPT的主要技术贡献在于其在特定领域,如NLP和编程任务方面的出色表现。然而,我们也意识到当前的技术仍有不完善之处,存在许多命令和指令LLM无法理解的情况。因此,一个非常有前景和崭新的技术方向是寻找更好的方法,使得LLM能够理解人类使用自己习惯的命令表达方式。这个方向的探索将为我们创造新的机会,并为改善LLM的技术水平提供更多的潜在解决方案。
五、建设高难度的综合任务评测数据集
一个优秀的评测数据集是推动技术不断进步的基础。随着LLM模型不断扩大,任务效果迅速提升,许多经典测试集很快就变得太容易,无法有效评估当前技术的缺陷和盲点。因此,构建具有高难度的测试数据集对于推动LLM技术的进步至关重要。目前,业界已经出现了一些新的测试集,例如BIGBench和OPT-IML等。这些测试集具有一定的难度,综合了多种任务类型的要求,并能更好地反映当前LLM技术的挑战。
受到ChatGPT的启发,除了测试集的难度和多样性之外,还应该考虑体现真实用户需求的因素。也就是说,这些任务应该是由真实用户提出的,只有这样构建出来的LLM模型才能真正解决用户的实际需求。此外,LLM将迅速扩展其能力到NLP以外的领域,因此需要提前考虑如何将更多其他领域的评测数据融入其中。这将有助于进一步提高LLM模型的广泛适应性。
六、高质量数据工程
数据是预训练模型的核心,预训练过程是从数据中获取知识的过程。因此,需要更加注重挖掘、收集和清洗高质量数据。数据质量和数量是两个关键方面。根据T5的实验比较,可以得出结论:在质量和数量之间,质量应优先考虑。因此,正确的做法是在确保数据质量的前提下增加数据规模。数据质量方面,需要考虑数据的信息含量和多样性等多个标准。例如,维基百科是信息含量极高的高质量数据。增加数据类型的多样性对于激发LLM的各种新能力至关重要。例如,加入问答网站的数据对于提升LLM的问答能力具有直接帮助。多样化的数据赋予LLM更好解决各种类型任务的能力,因此多样性是数据质量中最关键的标准。
关于数据数量,原则上可以纳入预训练模型的是互联网上公开发布的数据。然而,数据的数量也存在一定的极限。一项研究对数据量的扩展性进行了估算,并得出结论:到2026年左右,高质量的NLP数据将耗尽,低质量的NLP数据将在2030年至2050年之间耗尽,低质量图像数据将在2030年至2060年之间耗尽。这说明要么需要开发新类型的数据来源,要么必须提高LLM模型对数据的利用效率。否则,当前依赖数据驱动的模型优化方式将停止进步或收益减少。因此需要寻求新的解决方案,以应对数据的极限问题。
七、超大LLM模型Transformer的稀疏化
LLM中存在一些最大规模模型,如GPT 3、PaLM、GLaM等,采用了稀疏结构。使用稀疏化模型的主要优点是可以极大地减少训练和推理时间。相比于密集模型,稀疏模型在相同算力预算下,训练速度可以提升4倍到7倍。这是因为尽管稀疏模型拥有巨大的参数量,但对于每个训练实例,稀疏模型通过路由机制只使用其中一小部分参数参与训练和推理,所以速度更快。
未来的超大规模LLM模型很可能会趋向于稀疏模型,主要有两个原因。首先,研究显示标准的密集模型在训练和推理过程中本身也呈现稀疏的激活,即只有部分参数会被激活,大部分参数没有参与训练和推理。基于这一点,迁移到稀疏模型是合理的选择。其次,LLM模型的规模将继续增大,而高昂的训练成本是其扩大模型规模的主要障碍。使用稀疏模型可以显著降低超大模型的训练成本,因此随着模型规模的增加,稀疏模型的好处将更加明显。鉴于这些原因,未来更大规模的LLM模型很可能采用稀疏模型方案。
然而,目前其他大规模模型尚未采用稀疏模型的原因是稀疏模型存在训练不稳定和容易过拟合等问题,很难训练得好。因此,解决稀疏模型面临的问题,设计出更易于训练的稀疏模型,是未来研究的重要方向。
复刻ChatGPT时要注意些什么?
要复刻类似ChatGPT这种令人惊艳的LLM模型,我们需要在技术选型时权衡以下问题。
一、关于预训练模式,可以选择GPT这种自回归语言模型、Bert这种双向语言模型,或者T5这种混合模式。基于本文的分析,选用GPT自回归语言模型可能是更好的选择。然而,目前似乎许多国内LLM项目选择了Bert双向语言模型或T5混合语言模型,这可能导致方向有所偏移。
二、强大的推理能力是用户认可LLM的重要基础,为了实现这一目标,根据当前经验,预训练阶段最好引入大量代码和文本,同时进行LLM训练。前文中也有相应的分析对此进行了解释。
三、如果希望模型参数规模不过于庞大但依然具备良好效果,有两个选项。一是加强高层的特征抽取和表示能力,通过更深层次的网络结构或者更复杂的特征提取方法来实现。二是采用文本检索模型与LLM相结合的方式,通过文本检索模型提供初步的筛选和匹配,再由LLM进行进一步的生成和推理,这样可以极大地减小LLM模型的参数规模。
四、由于超级大模型的训练成本过高,很少有机构有能力去实施。因此,降低LLM的训练成本是非常重要的。其中,一种有效的技术选择是将LLM的特征抽取器进行Sparse化,这可以有效降低模型的训练和推理成本。因此,随着模型规模的增大,LLM模型的Sparse化是一个应该考虑的选项。
五、目前最接近理想LLM的技术方案是ChatGPT,理想中的LLM应该是一个几乎无所不能的通用大模型,可以支持各种任务类型。为了实现这一目标,可以通过增加LLM的预训练数据的多样性来支持更多的任务类型。数据的多样性越好,LLM能够支持的任务类型就越丰富。因此,应该重视通过增加数据多样性来增强LLM的能力。
六、易用的人机操作接口也是非常重要。LLM需要能够理解人类用自己习惯的方式来描述任务的真实含义。同时,也需要根据最终用户的需求收集任务表述方式,而不是依靠研发人员的臆想或猜测。ChatGPT在这方面给了我很大的启发,因此,是否使用增强学习并不重要,其他替代技术也能够实现类似的效果。
要复刻类似ChatGPT这种令人惊艳的LLM模型,需要在技术选型上权衡预训练模式、推理能力、模型规模、训练成本、数据多样性和人机操作接口等因素,并选择最合适的方法来实现目标。
LLM训练所需因素
当训练大型语言模型时会面临多个挑战,可以归纳为以下六个方面:硬件需求、健康检查、编排技术、数据处理、模型规模扩展和成本管理。每个方面都对模型训练的效果和效率产生重要影响。
在训练大型语言模型时,我们会面临多个挑战。首先是硬件方面。使用最新的硬件可以提供更好的性能,而没有充分利用最新硬件的优势会导致训练时间延长,无法达到最佳结果。
蓝海大脑高性能LLM大模型训练平台利用工作流体作为中间热量传输的媒介,将热量由热区传递到远处再进行冷却。支持多种硬件加速器,包括CPU、GPU、FPGA和AI等,能够满足大规模数据处理和复杂计算任务的需求。采用分布式计算架构,高效地处理大规模数据和复杂计算任务,为深度学习、高性能计算、大模型训练、大型语言模型(LLM)算法的研究和开发提供强大的算力支持。具有高度的灵活性和可扩展性,能够根据不同的应用场景和需求进行定制化配置。可以快速部署和管理各种计算任务,提高了计算资源的利用率和效率。
另一个挑战是健康检查,确保硬件正常运行,减少干扰。此外还需要考虑编排,以确保团队中的工作负载不会互相干扰,同时保持网络和安全配置良好。处理大规模数据集也是一项挑战,需要高效的存储、处理和加载方法。扩展基础设施和设计算法以克服限制性问题也是一项重要任务。这些模型通常不适用于单个GPU,所以需要考虑如何将模型拆分到多个GPU上。
最后,成本管理是不可忽视的因素。训练大型模型的成本可能很高,应该充分利用机器学习团队的时间,让其专注于创造新的模型,而不是花费过多时间在基础架构上。