菜单

LLM 训练与微调

相关源文件

本文档概述了 funNLP 存储库中用于训练、微调和优化大型语言模型 (LLM) 的资源。它侧重于高效的训练方法、面向资源受限环境的方法以及使预训练模型适应特定任务的技术。有关 LLM 模型和框架的信息,请参阅 LLM 模型和框架;有关评估技术,请参阅 LLM 评估和基准测试

LLM 训练与微调概述

大型语言模型 (LLM) 以其令人印象深刻的能力彻底改变了自然语言处理,但由于其庞大的规模和计算需求,训练和微调这些模型带来了重大挑战。本节涵盖了训练和优化 LLM 的各种方法,特别侧重于参数高效方法,这些方法使得即使在计算资源有限的情况下也能微调模型。

来源: README.md207-236

参数高效微调方法

参数高效微调方法通过仅更新一小部分参数并保持预训练模型的大部分冻结,从而允许使用大大减少的计算资源来适应大型模型。

LoRA 和 QLoRA

低秩适应 (LoRA) 及其量化变体 QLoRA 是最流行的参数高效微调技术之一。QLoRA 尤其值得注意,因为它能够在一个具有 48GB 内存的消费级 GPU 上微调高达 65B 参数的模型。

值得注意的实现包括

  • QLoRA (Guanaco):支持在单个 48GB GPU 上微调 65B 参数模型,同时保持完整的 16 位性能。
  • Chinese-Guanaco:针对中文的低资源量化训练和部署解决方案。
  • Alpaca-LoRA:使用 LoRA 在消费级硬件上复现斯坦福的 Alpaca 结果。

来源: README.md210-211 README.md227-231

完整微调方法

对于拥有大量计算资源的企业,完整微调方法提供了最大的灵活性和性能。

DeepSpeed Chat 和 RLHF 训练

DeepSpeed Chat 提供了一键式 RLHF(来自人类反馈的强化学习)训练体验,简化了用人类偏好数据训练 LLM 的复杂过程。

RLHF 已成为训练现代 LLM 以符合人类价值观并产生更有帮助、无害和诚实响应的关键技术。

来源: README.md212 README.md216

低资源训练解决方案

该存储库的一个重点是使 LLM 能够在资源受限的环境中进行微调,从而使那些没有企业级计算基础设施的研究人员和开发人员更容易获得这项技术。

工具和方法

  • LLMTune:支持在消费级 GPU 上对大型模型(65B+)进行 4 位微调,实现 LoRA 和 GPTQ 算法以进行压缩和量化。
  • ChatGLM-Efficient-Tuning:基于 PEFT 的 ChatGLM 模型高效微调。
  • InstructGLM:基于 ChatGLM-6B+LoRA,通过 DeepSpeed 支持多卡微调,与单卡训练相比速度提升 8-9 倍。
  • LlamaChat:基于 Mac 的聊天机器人,使用 LLaMa 模型。

来源: README.md213-217 README.md221-225

中文特定解决方案

该存储库包含几个专门针对中文语言模型适应的解决方案。

  • Chinese-LLaMA-Alpaca:在中文文本数据上预训练的中文 LLaMA 和 Alpaca 模型,支持在个人电脑上本地部署。
  • Chinese-Vicuna:中文低资源 LLaMa+LoRA 解决方案。
  • Chinese-Guanaco:中文低资源量化训练/部署方法。

这些资源使得在无需从头开始训练 LLM 所需的海量计算资源的情况下,也能创建高质量的中文语言模型。

来源: README.md210-211 README.md227-230

训练工作流程和流水线

LLM 的有效训练需要结构良好的工作流程和流水线来管理数据准备、训练和评估的复杂过程。

支持这些工作流程的著名工具和框架包括:

  • xturing:用于高效、快速、简单地微调 LLM 模型的 Python 包,支持 LLaMA、GPT-J、GPT-2 等。
  • LMFlow:用于微调大型机器学习模型的可扩展、有效的工具包。
  • InstructGPT 4 指令微调:用于改进指令遵循能力的技巧。
  • PyLLMs:用于连接各种 LLM 的简洁 Python 库,内置模型性能基准。

来源: README.md217-223 README.md234-235 README.md232-236

优化技术

有各种优化技术可以提高 LLM 训练和推理的效率和性能。

  • 混合精度训练:可以在不影响模型准确性的情况下将训练和推理速度提高高达 3 倍。
  • LLM Accelerator:微软亚洲研究院使用参考文本实现 LLM 推理无损加速的方法,在典型应用场景中可实现 2-3 倍的速度提升。
  • Federated GPT:一种分布式训练方法,将传统的集中式训练分布到不同的边缘设备,然后在中心位置合并子模型。

来源: README.md232-236

可用资源和实践指南

该存储库包含许多实用指南和资源,供对 LLM 训练和微调感兴趣的人士参考。

  • 李宏毅的指南:“穷人如何用低资源复现 ChatGPT?”
  • 训练 ChatGPT 的必备资源:语料库、模型和代码库的综合指南。
  • 训练大型机器学习模型的实用建议:避免不稳定和节省失败实验的技巧。
  • 大模型训练数据:每个 LLM 开发者都应了解的关键指标。

这些资源为 LLM 训练和微调的实际方面提供了宝贵的见解,帮助开发人员驾驭现代语言模型的复杂领域。

来源: README.md162-166 README.md218-219

结论

LLM 训练和微调是一个快速发展的领域,新的技术和方法正在被开发出来,以使这些强大的模型更加易于访问和高效。funNLP 存储库提供了全面的资源、工具和指南集合,以帮助研究人员和开发人员驾驭这个复杂的领域,特别关注资源高效的方法和针对中文语言模型的解决方案。