什么是 Torchtune?
Torchtune 是一个 PyTorch 原生库,旨在使微调开源大语言模型(LLM)的过程变得简单、高效和易于访问。它由 PyTorch 团队开发,提供了模块化和可扩展的组件,可与 PyTorch 生态系统无缝集成,包括 EleutherAI 的 lm-evaluation-harness 和 Hugging Face datasets 等流行库。它为 Llama 2、Llama 3 和 Mistral 等多种模型提供内置支持,并且设计上易于修改,以方便研究和开发。
主要特点
- PyTorch 原生: 直接构建在 PyTorch 之上,为生态系统内的开发者提供熟悉且深度集成的体验。
- 广泛的模型兼容性: 为当今许多最流行的开源 LLM 提供开箱即用的微调配方。
- 内存效率: 实现了最先进的技术,如低秩自适应(LoRA)和量化 LoRA(QLoRA),以减少训练期间的内存消耗。
- 可扩展的配方: 为常见的微调任务提供易于使用和可定制的配方,可通过 YAML 文件进行配置。
- 完整的训练和推理支持: 支持从微调模型到使用调整后的检查点运行推理的整个生命周期。
- 互操作性: 与 Hugging Face Hub 顺畅协作,用于下载模型和数据集,并支持各种检查点格式。
使用案例
- 领域特定适应: 在特定数据集(如医学期刊、法律文件)上微调通用 LLM,以提高其在该领域的专业能力。
- 指令遵循: 训练模型以更好地遵循用户命令和提示,例如在创建自定义聊天机器人时。
- 高效实验: 凭借其模块化设计和内存高效的方法,可以快速迭代不同的微调策略和超参数。
- 研究: 为研究人员提供一个干净、易于修改的代码库,以开发和测试新的微调算法。
入门指南
Torchtune 提供了一个命令行界面(tune),以简化微调过程。以下是一个“Hello World”示例,展示了如何在 Alpaca 数据集上对 Llama 2 7B 进行 LoRA 微调。
首先,安装 Torchtune: ```bash pip install torchtune
接下来,您可以使用单个命令运行完整的微调配方。此示例使用 torchtune/llama2_7b_finetune_lora 配方。您需要在 Hugging Face 上请求模型访问权限并提供访问令牌。
```bash
tune run lora_finetune_single_device –config llama2/7B_lora_single_device
–tokenizer.path meta-llama/Llama-2-7b-hf
–model.path meta-llama/Llama-2-7b-hf
dataset.path cais/alpaca
output_dir=/tmp/llama2_7b_lora_finetune
hf_token <您的HF令牌>您的HF令牌>
此命令会下载模型和数据集,应用 LoRA 配置,并开始微调过程,将生成的检查点保存到指定的输出目录。
定价
Torchtune 是一个在宽松的 BSD-3-Clause 许可下发布的开源项目。它可以完全免费使用、修改和分发。