本文聊聊 LLama-Factory,它是一个开源框架,这里头可以找到一系列预制的组件和模板,让你不用从零开始,就能训练出自己的语言模型(微调)。不管是聊天机器人,还是文章生成器,甚至是问答系统,都能搞定。而且,LLama-Factory 还支持多种框架和数据集,这意味着你可以根据项目需求灵活选择,把精力集中在真正重要的事情上——创造价值。
使用LLama-Factory,常见的就是训练LoRA模型,增强模型在某方面的生成能力。本教程将以增强 GLM-4-9B-Chat 模型的脑筋急转弯能力为例,演示LoRA模型的微调方法。
环境准备
本地使用
LLama-Factory 的安装比较简单,大家直接看官网页面就够了:
云镜像
如果你本地没有一张好显卡,也不想费劲的安装,就想马上开始训练。
可以试试我的云镜像,开箱即用:www.haoee.com/application…
平台注册就送一定额度,可以完成本教程的的演示示例。
镜像已经内置了几个基础模型,大都在6B-9B,单卡24G显存即可完成LoRA微调。
如果要微调更大的模型,则需要更多的显卡和显存,请在购买GPU时选择合适的显卡和数量。
已经内置的模型:Yi-1.5-9B-Chat、Qwen2-7B、meta-llama-3.1-8b-instruct、glm-4-9b-chat、chatglm3-6b
如果缺少你需要的模型,可以给我反馈。
假设你已经解决了程序运行环境问题,下边将开始讲解 LLama-Factory 的使用方法。
LLama-Factory 直接命令行和Web页面训练,为了方便入门,这篇文章以Web页面训练为例。
选择基础模型
语言:zh,因为我们要微调的是中文模型。
模型选择:GLM-4-9B-Chat
模型路径:/root/LLaMA-Factory/models/glm-4-9b-chat,默认会自动下载模型,不过速度可能比较慢,我们的镜像中已经下载好这个模型,所以直接填写路径更快。
微调方法:lora
准备训练数据集
LLaMA-Factory自带了一些常用的数据集,如果你使用的数据集不在里边,可以修改 data/dataset_info.json,在其中增加自己的数据集。
这里我使用的是一个弱智吧问答数据集,数据集的格式是 alpaca,来源:
训练参数设置
训练参数需要根据实际训练效果进行调整,这里给出一个参考设置。
数据集:请根据你的需要选择,这里选择我上边定义的 ruozhiba_qa。
学习率:1e-4,设置的大点,有利于模型拟合。
计算类型:如果显卡较旧,建议计算类型选择fp16;如果显卡比较新,建议选择bf16。
梯度累计:2,有利于模型拟合。
LoRA+学习率比例:16,相比LoRA,LoRA+续写效果更好。
LoRA作用模块:all , 表示将LoRA层挂载到模型的所有线性层上,提高拟合效果。
开始训练
点击“开始”按钮,可以在页面上看到训练进度和训练效果。
根据训练方法和训练数据的大小,训练需要的时间不定。
推理测试
在“检查点路径”这里加载刚刚训练的LoRA模型,然后切换到“Chat”页签,点击“加载模型”。
测试完毕后,记得点击“卸载模型”,因为模型占用显存比较大,不释放的话,再进行别的任务可能会出错。
对比训练前后的变化:
训练前:
训练后:
这是一个比较感性的测试,如果需要更为正式的效果评估,请使用“Evaluate & Predict” 选择合适的评测数据集进行评估。
合并导出模型
有时候我们需要把模型导出来放在别的地方使用,输出一个完整的模型文件,而不是基础模型+LoRA模型。
检查点路径:训练出来的LoRA模型
导出目录:设置一个服务器上的路径,新的模型会存放到这里。
最后点击“开始导出”就行了。导出完毕后,请前往服务器相关的路径中下载模型。
LLaMA-Factory 架构
最后送大家一张 LLaMA-Factory 的架构图,方便理解其原理。
图片左侧:显示了 LLaMA-Factory 的架构,分为四个主要部分:LlamaBoard、Trainer、Model Loader 和 Data Worker。
- LlamaBoard:用于参数配置和训练状态监视。
- Trainer:负责优化和训练方法的选择,如 LoRA+、GaLoRe、Pre-train、SFT 等。
- Model Loader:负责模型初始化、补丁、量化和适配器等功能。
- Data Worker:负责加载、对齐、预处理和合并训练数据。
图片右侧:列出了支持的流行语言模型和大小,以及支持的训练方法。
- 支持的语言模型和大小:LLaMA、LLaMA-2、LLaMA-3、Command-R、Mistral/Mixtral、OLMo、Phi-1.5/2、Qwen、DeepSeek (MoE)、Falcon、Gemma/CodeGemma 和 StarCoder2。
- 支持的训练方法:全量调整、冻结调整、LoRA、QLoRA、奖励建模、PPO 训练、DPO 训练、ORPO 训练。
总体上来说,LLama-Factory 的使用还是挺顺利的,没有太多的坑。
听不如见,见不如做,自己动手,才能真正有所感悟!
大模型&AI产品经理如何学习
求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。
1.学习路线图
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方图片前往获取
3.技术文档和电子书
这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
4.LLM面试题和面经合集
这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓