在这个AI快速发展的时代,我们很高兴为大家带来LlamaFactory - 一个为AI开发者和爱好者量身打造的实用工具平台。作为非计算机专业出身的开发者,我们深深受益于计算机世界的开放共享精神。今天,我们希望通过LlamaFactory为这个社区贡献我们的一份力量。
📖 LlamaFactory能为您提供什么?
🌐 英文文档的AI翻译:利用大语言模型将英文文档翻译成中文,助您更便捷地获取最新技术信息。
💻 快速获取主流大模型调用代码:一键获取各大AI大模型的调用代码,方便您将大模型能力快速集成到项目中。
🔧 LLaMA-Factory训练命令转VSCode调试配置:将训练启动命令转换为VSCode的debug配置文件,简化开发调试流程。
📊 大模型训练显存占用预估:帮您在训练大模型时选择合适的硬件配置,提高资源利用效率。
📚 收集主流大模型聚合平台和API接口:整理各大AI聚合平台以及聚合接口方案,为您提供一站式查询服务。
💡 收集高质量Prompts、编写技巧、学习资源:为AI爱好者和开发者提供知识库,汇集经过筛选的高质量提示词(Prompts)、编写技巧和学习资源。
🤖 大模型驱动的文章聚合平台:利用先进的大模型技术对精选文章来源进行深度筛选,打造纯粹的大模型技术文章聚合平台。未来,我们计划进一步应用大模型技术来优化平台,为用户带来更出色的阅读体验。
这些功能都源于我们日常工作和学习中的实际需求,是一点一滴积累的经验总结。虽然看似简单,但我们相信这些工具能为许多开发者节省时间和精力。
目录
- 特征
- 基准
- 更新日志
- 支持的型号
- 支持的培训方法
- 提供的数据集
- 要求
- 入门
- 使用 LLaMA Factory 的项目
- 执照
- 引用
- 致谢
特征
- 各种型号:LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Qwen2-VL、Yi、Gemma、Baichuan、ChatGLM、Phi 等。
- 集成方法:(连续)预训练、(多模态)监督微调、奖励建模、PPO、DPO、KTO、ORPO 等。
- 可扩展资源:通过 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 的 16 位全调谐、冻结调谐、LoRA 和 2/3/4/5/6/8 位 QLoRA。
- 高级算法:GaLore、BAdam、Adam-mini、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ、PiSSA 和 Agent tuning。
- 实用技巧:FlashAttention-2、Liger Kernel、RoPE scaling、NEFTune 和 rsLoRA。
- 实验监控:LlamaBoard、TensorBoard、Wandb、MLflow 等。
- 更快的推理:带有 vLLM 工作器的 OpenAI 风格的 API、Gradio UI 和 CLI。
支持的型号
模型 | 模型大小 | 模板 |
---|---|---|
百川2号 | 7B/13B | 百川2 |
布卢姆/布卢姆兹 | 560M/1.1B/1.7B/3B/7.1B/176B | - |
ChatGLM3 | 6B | chatglm3 |
命令R | 35B/104B | 凝聚 |
DeepSeek(代码/MoE) | 7B/16B/67B/236B | 深度搜索 |
鹘 | 7B/11B/40B/180B | 鹘 |
Gemma/Gemma 2/CodeGemma | 2B/7B/9B/27B | 芽 |
GLM-4 | 9B | glm4 |
指数 | 1.9亿 | 指数 |
实习生LM2/实习生LM2.5 | 7B/20B | 实习生2 |
骆驼 | 7B/13B/33B/65B | - |
骆驼 2 | 7B/13B/70B | 骆驼2 |
骆驼3-3.2 | 1B/3B/8B/70B | 骆驼3 |
LLaVA-1.5 | 7B/13B | 亚瓦 |
LLaVA-NeXT | 7B/8B/13B/34B/72B/110B | llava_next |
LLaVA-NeXT-视频 | 7B/34B | llava_next_video |
最低每千次展示费用 | 1B/2B/4B | 每千次展示费用/每千次展示费用3 |
米斯特拉尔/米斯特拉尔 | 7B/8x7B/8x22B | 米斯特拉尔 |
奥利莫 | 1B/7B | - |
巴利杰玛 | 3B | 重晶石 |
φ-1.5/φ-2 | 13亿/27亿 | - |
披-3 | 4B/14B | 披 |
Phi-3-小 | 7B | phi_小 |
像素 | 12B | 像素 |
Qwen (1-2.5) (代码/数学/MoE) | 0.5B/1.5B/3B/7B/14B/32B/72B/110B | 奎文 |
Qwen2-VL | 2B/7B/72B | qwen2_vl |
星际编码员 2 | 3B/7B/15B | - |
宇宙 | 7B/13B/65B | 宇宙 |
Yi/Yi-1.5(代码) | 1.5亿/6亿/9亿/34亿 | 乙 |
乙型肝炎 | 6B/34B | yi_vl |
元2 | 2B/51B/102B | 元 |
笔记
对于“基础”模型,参数可以从、等中template
选择。但请确保使用“指导/聊天”模型的相应模板。 default``alpaca``vicuna
****
记住在训练和推理中使用相同的模板。
请参阅constants.py以获取我们支持的模型的完整列表。
您还可以将自定义聊天模板添加到template.py。
支持的培训方法
方法 | 全调音 | 冻结调谐 | 洛拉 | 量子LoRA |
---|---|---|---|---|
预训练 | ✅ | ✅ | ✅ | ✅ |
监督微调 | ✅ | ✅ | ✅ | ✅ |
奖励模型 | ✅ | ✅ | ✅ | ✅ |
PPO 培训 | ✅ | ✅ | ✅ | ✅ |
DPO培训 | ✅ | ✅ | ✅ | ✅ |
韩国旅游观光局培训 | ✅ | ✅ | ✅ | ✅ |
ORPO 培训 | ✅ | ✅ | ✅ | ✅ |
SimPO 培训 | ✅ | ✅ | ✅ | ✅ |
提示
PPO 的实施细节可在此博客中找到。
某些数据集在使用前需要确认,因此我们建议使用这些命令通过您的 Hugging Face 帐户登录。
pip install --upgrade huggingface_hub
huggingface-cli login
要求
强制的 | 最低限度 | 推荐 |
---|---|---|
Python | 3.8 | 3.11 |
火炬 | 1.13.1 | 2.4.0 |
变压器 | 4.41.2 | 4.43.4 |
数据集 | 2.16.0 | 2.20.0 |
加速 | 0.30.1 | 0.32.0 |
佩夫特 | 0.11.1 | 0.12.0 |
特里尔 | 0.8.6 | 0.9.6 |
选修的 | 最低限度 | 推荐 |
---|---|---|
通用数据架构 | 11.6 | 12.2 |
深度速度 | 0.10.0 | 0.14.0 |
比特和字节 | 0.39.0 | 0.43.1 |
维利姆 | 0.4.3 | 0.5.0 |
flash-attn | 2.3.0 | 2.6.3 |
硬件要求
*估计的
方法 | 位 | 7B | 13B | 30B | 70B | 110B | 8x7B | 8x22B |
---|---|---|---|---|---|---|---|---|
满的 | AMP | 120 GB | 240GB | 600GB | 1200GB | 2000GB | 900GB | 2400GB |
满的 | 16 | 60GB | 120 GB | 300GB | 600GB | 900GB | 400GB | 1200GB |
冻结 | 16 | 20GB | 40GB | 80GB | 200GB | 360GB | 160GB | 400GB |
LoRA/GaLore/BAdam | 16 | 16 GB | 32GB | 64GB | 160GB | 240GB | 120 GB | 320GB |
量子LoRA | 8 | 10GB | 20GB | 40GB | 80GB | 140GB | 60GB | 160GB |
量子LoRA | 4 | 6GB | 12GB | 24GB | 48GB | 72GB | 30GB | 96GB |
量子LoRA | 2 | 4GB | 8GB | 16 GB | 24GB | 48GB | 18GB | 48GB |