LitGPT 微调简明教程
LitGPT 是一个简化高性能 LLM 预训练、微调和可扩展部署的平台。LitGPT 提供 20 多种高性能 LLM,并提供预训练、微调和大规模部署的方案。
1、LitGPT 的安装
要开始使用 LitGPT,请通过 pip 安装它:
pip install 'litgpt[all]'
2、 LitGPT 中的可用模型
LitGPT 支持各种大型语言模型 (LLM) 架构,并且可以轻松访问预训练权重。你可以通过以下命令查看和下载支持的模型:
litgpt download list
此命令显示托管在 HuggingFace Hub 上的可用模型检查点列表,并允许将这些检查点无缝转换为与 LitGPT 兼容的格式。
HuggingFace Hub 上的门控模型需要访问请求。获得批准后,你可以提供访问令牌来下载模型:
litgpt download meta-llama/Llama-3.1-8B --access_token $huggingface_token
此命令将模型检查点下载到 checkpoints/
目录中。
我们将在此示例中使用 Lightning 框架对“LLamaGuard”进行微调。请注意,LLamaGuard 未直接列在可用下载列表中;它是经过微调的 LLama-3.2–8B 模型变体。
对于架构与受支持的模型相似但未明确列出的模型,你可以通过 --model_name
参数指定基本模型架构:
litgpt download meta-llama/Llama-Guard-3-1B --model_name=Llama-3.2-1B \
--access_token $huggingface_token
现在可以使用模型检查点,可以使用 litgpt 训练实用程序继续进行预训练或微调模型。
特定的选举数据集
在这种情况下,我们将在 HuggingFace ( newsmediabias/fake_news_elections2024
) 上托管的 fake_news_elections2024
数据集上微调模型。有关处理自定义数据集的更深入信息,请参阅这篇关于 Hugging Face 数据集的文章,其中描述了如何创建 DatasetWrapper
以将数据集转换为适当的格式。
3、使用 LitGPT 对 LLM 进行微调
fake_news_elections2024
数据集存储在 datasets/train.jsonl
中。要使用低秩自适应 (LoRA) 通过 LitGPT 对 LLM 进行微调,请执行以下命令:
litgpt finetune_lora checkpoints/meta-llama/Llama-Guard-3-1B \\
--data JSON \\
--data.json_path data/train.jsonl \\
--data.prompt_style default \\
--data.val_split_fraction 0.8 \\
--train.epochs 2 \\
--train.save_interval 100 \\
--precision bf16-true \\
--lora_r 8 \\
--lora_alpha 16 \\
--lora_dropout 0.05 \\
--seed 137 \\
--eval.final_validation false \\
--logger_name tensorboard \\
--out_dir `pwd`/out_dir/mydata-finetuned
此命令将:
- 对指定的 LLM 检查点进行微调,并将数据拆分为验证(80% 训练,20% 验证)。
- 利用低秩自适应 (LoRA) 进行高效微调,超参数控制矩阵秩 (
-lora_r
)、缩放因子 (-lora_alpha
) 和 dropout (-lora_dropout
)。 - 每 100 个训练步骤保存中间检查点 (
-train.save_interval
),最终检查点存储在指定的输出目录 (-out_dir
) 中。
使用 LoRA,我们实现了更高效的 LLM 微调过程,与传统训练方法相比,减少了内存和计算开销。
4、结束语
由 Lightning 提供支持的 LitGPT 提供了一个全面而灵活的框架,用于预训练、微调和部署 LLM,并且摩擦最小。它集成了成熟的数据模块和 LoRA 等新技术,即使在资源受限的环境中也能实现可扩展的模型调整。
有关使用 PyTorch Lightning 和 LitGPT 对 LLM 进行微调的更多详细信息,请参阅此处的官方 Lightning AI 文档。
原文链接:Leveraging LitGPT for Advanced LLM Fine-Tuning
汇智网翻译整理,转载请标明出处