LLaMA-Factory
如何高效地微调和部署大型语言模型(LLM)?LLaMA-Factory作为一个开源的微调框架,应运而生,为开发者提供了一个简便、高效的工具,以便在现有的预训练模型基础上,快速适应特定任务需求,提升模型表现。LLaMA-Factory作为一个功能强大且高效的大模型微调框架,通过其用户友好的界面和丰富的功能特性,为开发者提供了极大的便利。
LLaMA-Factory
一、LLaMA-Factory
什么是LLaMA-Factory?LLaMA-Factory,全称Large Language Model Factory,即大型语言模型工厂。它支持多种预训练模型和微调算法,提供了一套完整的工具和接口,使得用户能够轻松地对预训练的模型进行定制化的训练和调整,以适应特定的应用场景,如智能客服、语音识别、机器翻译等。
LLaMA-Factory
-
支持的模型:LLaMA-Factory支持多种大型语言模型,包括但不限于LLaMA、BLOOM、Mistral、Baichuan、Qwen、ChatGLM等。
-
集成方法:包括(增量)预训练、指令监督微调、奖励模型训练、PPO训练、DPO训练和ORPO训练等多种方法。
-
运算精度与优化算法:提供32比特全参数微调、16比特冻结微调、16比特LoRA微调和基于AQLM/AWQ/GPTQ/LLM.int8的2/4/8比特QLoRA微调等多种精度选择,以及GaLore、DoRA、LongLoRA、LLaMA Pro、LoRA+、LoftQ和Agent微调等先进算法。
LLaMA-Factory
LLaMA-Factory提供了简洁明了的操作界面和丰富的文档支持,使得用户能够轻松上手并快速实现模型的微调与优化。用户可以根据自己的需求选择不同的模型、算法和精度进行微调,以获得最佳的训练效果。
LLaMA-Factory
二、模型微调(Fine-Tuning)
如何使用LLaMA-Factory进行模型微调?使用LLaMA-Factory进行模型微调是一个涵盖从选择模型、数据加载、参数配置到训练、评估优化直至部署应用的全面且高效的流程。
1. 选择模型:根据应用场景和需求选择合适的预训练模型。
-
设置语言:进入WebUI后,可以切换到中文(zh)。
-
配置模型:选择LLaMA3-8B-Chat模型。
-
配置微调方法:微调方法则保持默认值lora,使用LoRA轻量化微调方法能极大程度地节约显存。
2. 加载数据:将准备好的数据集加载到LLaMA-Factory中。
- LLaMA-Factory项目内置了丰富的数据集,放在了
data
目录下。同时也可以自己准备自定义数据集,将数据处理为框架特定的格式,放到指定的data目录下。
3. 配置参数:根据实际情况调整学习率、批次大小等训练参数。
-
学习率+梯度累积:设置学习率为1e-4,梯度累积为2,有利于模型拟合。
-
计算类型:如果是NVIDIA V100显卡,计算类型保持为fp16;如果使用了AMD A10系列显卡,可以更改计算类型为bf16。
- LoRA参数设置:设置LoRA+学习率比例为16,LoRA+被证明是比LoRA学习效果更好的算法。在LoRA作用模块中填写all,即将LoRA层挂载到模型的所有线性层上,提高拟合效果。
4. 开始训练:启动训练过程,并监控模型的训练进度和性能表现。
-
输出目录:将输出目录修改为train_llama3,训练后的LoRA权重将会保存在此目录中。
-
预览命令:点击「预览命令」可展示所有已配置的参数,如果想通过代码运行微调,可以复制这段命令,在命令行运行。
-
开始:点击「开始」启动模型微调。
- 训练完毕:启动微调后需要等待一段时间,待模型下载完毕后可在界面观察到训练进度和损失曲线。模型微调大约需要20分钟,显示“训练完毕”代表微调成功。
5. 评估与优化:使用LLaMA-Factory提供的评估工具对模型性能进行评估,并根据评估结果进行针对性的优化。
-
刷新适配器:微调完成后,点击页面顶部的「刷新适配器」
-
适配器路径:点击适配器路径,即可弹出刚刚训练完成的LoRA权重,点击选择下拉列表中的train_llama3选项,在模型启动时即可加载微调结果。
-
评估模型:选择「Evaluate&Predict」栏,在数据集下拉列表中选择「eval」(验证集)评估模型。
-
输出目录:更改输出目录为
eval_llama3
,模型评估结果将会保存在该目录中。 -
开始评估:最后点击开始按钮启动模型评估。
-
评估分数:模型评估大约需要5分钟左右,评估完成后会在界面上显示验证集的分数。
-
ROUGE分数:其中ROUGE分数衡量了模型输出答案(predict)和验证集中标准答案(label)的相似度,ROUGE分数越高代表模型学习得更好。
6. 部署应用:将训练好的模型部署到实际应用场景中,实现其功能和价值。
- 加载模型:选择「Chat」栏,确保适配器路径是
train_llama3
,点击「加载模型」即可在Web UI中和微调模型进行对话。
- 卸载模型:点击「卸载模型」,点击“×”号取消适配器路径,再次点击「加载模型」,即可与微调前的原始模型聊天。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。