LLaMA Factory大模型微调、导出、量化全攻略!简单几步,轻松掌握!

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调,框架特性包括:

  • 模型种类:LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Yi、Gemma、Baichuan、ChatGLM、Phi 等等。

  • 训练算法:(增量)预训练、(多模态)指令监督微调、奖励模型训练、PPO 训练、DPO 训练、KTO 训练、ORPO 训练等等。

  • 运算精度:16 比特全参数微调、冻结微调、LoRA 微调和基于 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 的 2/3/4/5/6/8 比特 QLoRA 微调。

  • 优化算法:GaLore、BAdam、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ 和 PiSSA。

  • 加速算子:FlashAttention-2 和 Unsloth。

  • 推理引擎:Transformers 和 vLLM。

  • 实验监控:LlamaBoard、TensorBoard、Wandb、MLflow、SwanLab 等等。

github地址:

https://github.com/hiyouga/LLaMA-Factory

官方文档:

https://llamafactory.readthedocs.io/zh-cn/latest/

一、安装LLaMA Factory

将源码下载到本地,cd到根目录进行安装。 

conda create -n llamafactory python=3.10 -yconda activate llamafactory git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.gitcd LLaMA-Factorypip install -e ".[torch,metrics]"

在根目录启动webui。记住一定要在LLaMA Factory的根目录启动。 

llamafactory-cli webui

默认启动的端口是7860 。

二、LLaMA Factory微调入门

1、选择一个大模型

 我们从魔塔社区下载  Qwen2.5-0.5B-Instruct到本地,对该模型进行微调训练。

​​​​​​​

#模型下载from modelscope import snapshot_downloadmodel_dir = snapshot_download('Qwen/Qwen2.5-0.5B-Instruct',cache_dir="/root/autodl-tmp/llm")

2、选择一个数据集

LLaMA Factory的源码里默认提供了很多种可直接训练的数据集,在data目录下。我们就拿identity.json身份认知训练集来做微调。

将里面的占位符替换成合适的文字,并且保存。

3、指令监督微调数据集介绍

指令监督微调(Instruct Tuning)通过让模型学习详细的指令以及对应的回答来优化模型在特定指令下的表现。

instruction 列对应的内容为人类指令, input 列对应的内容为人类输入, output 列对应的内容为模型回答。下面是一个例子。​​​​​​​

"alpaca_zh_demo.json"{  "instruction": "计算这些物品的总费用。 ",  "input": "输入:汽车 - $3000,衣服 - $100,书 - $20。",  "output": "汽车、衣服和书的总费用为 $3000 + $100 + $20 = $3120。"},

在进行指令监督微调时, instruction 列对应的内容会与 input 列对应的内容拼接后作为最终的人类输入,即人类输入为 instruction\ninput。而 output 列对应的内容为模型回答。 在上面的例子中,人类的最终输入是:​​​​​​​

计算这些物品的总费用。输入:汽车 - $3000,衣服 - $100,书 - $20。

模型的回答是:

汽车、衣服和书的总费用为 $3000 + $100 + $20 = $3120。

如果指定, system 列对应的内容将被作为系统提示词。

history 列是由多个字符串二元组构成的列表,分别代表历史消息中每轮对话的指令和回答。注意在指令监督微调时,历史消息中的回答内容也会被用于模型学习。

指令监督微调数据集 格式要求 如下:​​​​​​​

[  {    "instruction": "人类指令(必填)",    "input": "人类输入(选填)",    "output": "模型回答(必填)",    "system": "系统提示词(选填)",    "history": [      ["第一轮指令(选填)", "第一轮回答(选填)"],      ["第二轮指令(选填)", "第二轮回答(选填)"]    ]  }]

下面提供一个 alpaca 格式 多轮 对话的例子,对于单轮对话只需省略 history 列即可。​​​​​​​

[  {    "instruction": "今天的天气怎么样?",    "input": "",    "output": "今天的天气不错,是晴天。",    "history": [      [        "今天会下雨吗?",        "今天不会下雨,是个好天气。"      ],      [        "今天适合出去玩吗?",        "非常适合,空气质量很好。"      ]    ]  }]

对于上述格式的数据, dataset_info.json 中的 数据集描述 应为:

​​​​​​​

"数据集名称": {  "file_name": "data.json",  "columns": {    "prompt": "instruction",    "query": "input",    "response": "output",    "system": "system",    "history": "history"  }}

4、微调实操

打开webui界面,网址如下:

http://localhost:7860/

界面的几个重要参数说明: 

  1. 模型路径:一定要选择本地的模型路径,否则就会去hugging face上下载

  2.  微调方法:默认lora

  3.  检查点路径:训练过程中保存的权重,可从其中的一个权重重新训练。

  4.  对话模板:不同的模型对应的对话模板是不一样的。选择模型名称,会自动选择对话模板

  5.  中间的4个任务:train训练,Evalate@predict 测试 ,Chat对话,Export 模型导出。

  6.  训练方式:lora默认的训练方式就是Supervised Fine-Tuning

  7.  数据路径:data

  8.  数据集:选择一个数据集,identity,可以点击预览查看数据集。

  9.  训练轮次:至少300

  10.  最大样本数:可以控制样本的数量上限。

  11.  截断长度:长度越长越占显存,根据样本里的文本长度,大部分数据的最大长度值即可,比如,有90%的样本数据的长度是200,这里填写200.

  12. 批处理大小:超参数,需要根据你服务器的配置,尝试运行几次,找到资源利用率最高的数值。

  13. 验证集比例:0.1,也可以不给。

  14. 输出目录:会自动生成一个路径,要确保每次的目录都不相同,若已存在,则需要去服务器上删除,目录在llamafactory-save目录下。

参数配置完毕后,点击“开始”进行微调。可以看右下角的这个曲线图,也可以看下服务器控制台的日志输出,以及nvitop查看显存的使用情况。

一般来说,该曲线中,蓝色曲线比较平滑收敛时候就可以结束了,比如上图,在700的时候可以中断。

三、Chat验证微调效果

切换到Chat,检查点路径 选择微调时保存的checkpoint点的路径;推理引擎直接使用huggingface即可,点击加载模型,输入问题看效果。

看到效果了吧。若不加载检查点路径,就是原来模型,你可以输入相同的问题对比下效果。

四、微调后的模型合并导出

切换到Export,检查点路径输入正确,最大分块大小选4G,导出设备 auto,导出目录填写正确的目录地址。点击“开始导出”即可。过一会就会导出成功。

五、微调后的模型量化

Export页面还可以处理量化操作,但是必须是第四步完成后才可以。

  • 模型路径:第四步保存的最新的模型路径。

  • 导出量化等级:可以选择8或4,但是2和3一般不要选择。

  • 导出设备:auto 。

  • 导出目录:填写地址。

 

 

 大模型&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%免费】🆓

### 文心X1技术文档及相关资料 文心一言(通义千问系列中的文心X1)是由百度开发的大规模语言模型,其技术支持主要依赖于飞桨框架(PaddlePaddle)。以下是关于文心X1的技术文档、资料下载以及配置教程的信息。 #### 技术文档与资料下载 为了更好地理解和使用文心X1,建议从官方渠道获取最新的技术文档和参考资料。以下是一些常见的资源链接: - **官方文档**:可以访问百度飞桨官网或文心一言开发者页面,查阅详细的API说明和技术指南[^1]。 - **GitHub仓库**:许多开源项目会提供完整的源码和示例脚本,帮助用户快速上手。例如,在PaddleNLP库中提供了多个预训练模型及其应用场景的实现代码[^2]。 #### 配置环境与安装教程 在本地环境中部署并运行文心X1之前,需完成必要的软件环境搭建工作。以下是具体的步骤概述: ##### 安装依赖项 确保已正确安装Python解释器,并通过pip工具安装所需的第三方库文件。对于深度学习任务而言,还需要额外引入NumPy、TensorFlow或者PyTorch等相关组件来支持复杂的数值计算需求[^3]。 ```bash pip install paddlepaddle==latest_version ``` ##### 设置虚拟机操作系统 推荐采用Linux发行版作为基础平台,比如Ubuntu LTS版本号不低于20.04即可满足大多数情况下对稳定性和兼容性的追求;当然也可以考虑其他主流选项如CentOS/Debian等替代方案。 ##### 初始化API接口 如果计划调用远程服务端提供的功能,则必须先定义好认证凭证参数以便后续交互过程顺利开展下去。下面给出了一段示范性质较强的Python脚本片段用于展示如何连接至特定类型的生成式人工智能引擎实例[^4]: ```python import genai genai.configure(api_key="your_own_apikey_here", transport='rest') model = genai.GenerativeModel("gemini-1.5-flash") # 替换为目标产品名称 response = model.generate_content("Tell me about the history of artificial intelligence.") print(response.text) ``` 请注意实际操作过程中应当替换掉占位符部分的实际值以适配各自的具体情形。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值