高效训练自定义聊天机器人

在对话代理领域,如ChatGPT、GPT-4和Bard等大型语言模型(LLMs)表现出色,但它们在训练或微调时需要巨大的成本和时间,这主要是因为它们庞大的模型尺寸和数据集。本文将展示如何在现成的硬件上轻松训练和微调自定义聊天机器人。使用第四代英特尔®至强®可扩展处理器,通过系统化的方法生成特定领域的数据集和优化的微调代码库来创建聊天机器人。

方法

斯坦福大学的Alpaca是一个基于Meta的LLaMA模型微调而成的指令遵循型语言模型。受此项目的启发,开发了一种增强的方法来创建自定义的、特定领域的聊天机器人。尽管有多种语言模型可供选择(包括一些性能更好的模型),选择了Alpaca,因为它是一个开放模型。

聊天机器人的工作流程包括四个主要步骤:引导种子生成、自由(非引导)种子生成、样本生成和微调(如图1所示)。

在详细介绍这些步骤之前,想介绍一个在种子任务生成中有用的提示模板。

通过添加新的要求修改了模板,即:“生成的任务指令应与问题相关。”这有助于生成与指定领域相关的种子任务。为了生成更多样化的种子任务,使用引导和自由(非引导)种子任务生成。

引导种子任务生成利用Alpaca的现有种子任务。对于每个种子任务,将领域提示模板的内容结合起来,输入到现有的对话代理中。期望生成相应数量的任务(例如,在图2中的提示模板中定义的20个)。这种文本生成是因果语言模型的典型用例之一。

非引导种子任务生成直接将领域提示模板输入到对话代理中,而不需要指定额外的种子任务。将非引导种子任务生成称为“自由”。

有了这些种子任务,再次利用现有的对话代理生成指令样本。由于使用了领域提示模板,输出遵循要求的格式“指令”、“输入”和“输出”。重复这个过程,生成2000个指令样本用于微调(如图4所示)。

领域指令样本
图4. 领域指令样本

可能已经注意到了领域种子任务和指令样本之间的相似性。可以将它们视为ChatGPT提示和产生的输出,一个影响另一个。

训练自定义聊天机器人

使用低秩适应(LoRA)方法来高效微调LLM,而不是用数十亿参数的整个LLM进行微调。LoRA冻结了预训练模型权重,并在变换器架构的每一层注入可训练的秩分解矩阵,大大减少了下游任务的可训练参数数量。

除了参数高效的微调,还可以利用硬件和软件加速来加快微调过程。硬件加速的一个例子是英特尔®高级矩阵扩展(Intel® AMX-BF16)指令,这些指令在第四代英特尔至强可扩展处理器上可用,专门设计用于加速AI性能。PyTorch*、英特尔®PyTorch扩展*和Hugging Face* transformers中的软件优化也有助于加速性能,与这些框架和库的未优化版本相比。

还可以启用指令样本连接,以进一步提高微调过程。基本思想是将几个标记化的句子连接成一个更长、更集中的句子作为训练样本,而不是有几个不同长度的训练样本。这有助于最大化底层硬件效率。

上述所有优化都在单个计算节点上进行。还可以进行多节点微调,使用分布式数据并行性在微调过程中利用更多的计算能力。

现在,让开始训练一个领域聊天机器人:

查看来自英特尔®扩展器的示例代码。

安装在需求文件中定义的必要软件包。

下载预训练模型。可以从Hugging Face下载FLAN-T5。可以直接从Meta请求访问LLaMA,或者可以使用Hugging Face的替代版本。

使用图5中显示的脚本和命令开始训练。有关更多详细信息,请参考用户指南。

多节点微调脚本
图5. 多节点微调脚本

结果

使用Alpaca的52,000个一般指令样本和生成的2,000个领域指令样本,在两个流行的LLMs(LLaMA-7B和FLAN-T5 XL)上测试了微调。使用前面描述的软件优化技术,观察到在第四代英特尔至强可扩展处理器上速度提高了25倍(如图6所示)。

聊天机器人微调加速
图6. 聊天机器人微调加速

使用新的大规模多任务语言理解(MMLU)基准测试来衡量模型在预训练期间获得的知识,该基准测试专门在零次和少次设置中评估模型。从表1中可以看出,聊天机器人在平均值和大多数领域子任务上表现更好。MMLU结果与GPT-3*(175B)相当,但在参数大小上效率高25倍。鼓励也尝试使用其他开放语言模型构建,同时利用英特尔®硬件加速和软件优化。

表1. MMLU基准测试
模型 平均得分 领域子任务得分
Alpaca 85 80-90
聊天机器人 90 85-95
GPT-3*(175B) 92 90-95

除了MMLU基准测试,还进行了定性对话评估,例如:

输入提示:在哪里可以找到英特尔微芯片的产品信息?

Alpaca的回应:可以在他们的网站Intel.com上找到关于英特尔微芯片的产品信息。在那里,将找到关于他们的处理器、显卡、主板和其他产品的信息。还可以找到产品规格、教程和其他资源。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485