Hugging Face 指南:无代码训练 LLaMA 2 聊天机器人

Hugging Face 推出了一种无代码工作流,使没有机器学习工程背景的个人能够微调 LLaMA 2 基础模型并将其部署为可共享的聊天应用。此过程通过使用一套集成工具(Spaces、AutoTrain 和 ChatUI)来实现大型语言模型(LLM)定制的普及。

无代码 LLM 工具链

Hugging Face 使用三项主要服务来消除训练和部署 LLM 所带来的技术障碍:

  • Spaces:提供图形用户界面(GUI)的服务,用于构建和部署托管在网络上的 ML 演示和应用。它支持 Gradio、Streamlit 和 Docker 容器。
  • AutoTrain:一种无代码工具,专为在各个领域(包括 NLP、计算机视觉、语音和表格数据)训练最先进的 ML 模型而设计。它特别支持 LLMs 的微调。
  • ChatUI:一个开源用户界面——正是驱动 HuggingChat 的同一界面——使用户能够与开源 LLMs 进行交互。

逐步实施工作流程

创建自定义聊天机器人的过程分为三个主要阶段:环境设置、模型训练和应用部署。

1. 通过 AutoTrain Space 进行环境设置

首先,用户创建一个新的 Space 并选择 AutoTrain Docker 模板。关键配置要求包括:

  • 硬件:免费的 CPU 基础选项足以运行 AutoTrain 应用本身,因为实际的模型训练发生在独立的计算资源上。
  • 身份验证:必须将 Hugging Face 写入访问令牌(HF_TOKEN)添加到 Space 的密钥中,以允许应用将训练好的模型保存到用户的 Hub 账户。

2. 微调 LLaMA 2 模型

AutoTrain Space 激活后,用户可以通过 GUI 配置训练作业:

  • 模型选择:用户可以从列表中选择模型或提供模型卡名称。例如,可以使用 Meta Llama 2 7b 基础模型(请注意,Llama 2 是一种需要 Meta 批准的受控模型)。
  • 计算资源:训练 7b 模型通常需要一个 'A10G Large' GPU。更大的模型需要具有足够内存以完全容纳模型的 GPU。
  • 训练数据:数据必须以 CSV 格式上传。本指南以 Alpaca 指令调优数据集为例。
  • 优化:AutoTrain 提供精度(FP16)、量化(Int4/8)和参数高效微调(PEFT)的默认设置,以降低内存占用和训练成本,同时对性能影响最小。

3. 部署聊天应用

模型训练完成并保存到 Hugging Face Hub 后,将使用第二个 Space 进行部署:

  • 模板:用户选择 ChatUI Docker 模板。
  • 硬件:A10G Small GPU 足以运行 7b 模型。
  • 配置:必须将 MODEL_NAME 变量设置为 Hub 中训练模型的名称。用户也可以可选地提供 MONGODB_URL 来存储聊天日志;否则,将自动创建一个本地数据库。
  • 推理调优:用户可以调整诸如 temperature、top-p 和 max tokens 生成等参数,以修改模型响应的特性。

Sources