模型微调-基于LLaMA-Factory进行微调的一个简单案例

1. 租用云计算资源

以下示例基于 AutoDL 云计算资源。

在云计算平台选择可用的云计算资源实例,如果有4090实例可用,推荐选择4090实例。同时注意镜像的选择,所以镜像会包含特定的环境,省去一些基础环境的安装步骤,不过这里镜像在实例启动之后也可以进行切换。

在这里插入图片描述
创建实例之后,通过SSH连接远程服务器
在这里插入图片描述
这里我使用 VS Code的 Remote-SSH 插件进行连接,连接进去之后可以看到实例中有两个盘,其中/root/autodl-tmp是数据盘,推荐运行环境、模型文件都放在数据盘,避免后续因为实例关机回收导致数据文件丢失。
在这里插入图片描述

2. 拉取 LLaMa-Factory

LLaMa-Factory 的 git 地址如下,通过 git 命令拉取

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

在这里插入图片描述

3. 安装依赖环境

LLaMa-Factory 依赖 Python 特定版本,这里使用 Conda 来进行 Python 虚拟环境管理,大语言模型相关的框架对运行环境的依赖比较严重,推荐通过虚拟环境进行隔离。
在这里插入图片描述
而在创建虚拟环境之前,推荐设置一下 Conda 虚拟环境和 Python 包的保存路径,还是那个原因,避免因为云计算资源回收导致数据丢失。

mkdir -p /root/autodl-tmp/conda/pkgs
conda config --add pkgs_dirs /root/autodl-tmp/conda/pkgs
mkdir -p /root/autodl-tmp/conda/envs
conda config --add envs_dirs /root/autodl-tmp/conda/envs/

之后创建虚拟环境:

conda create -n llama-factory python=3.10

虚拟环境创建完成之后,通过以下命令初始化以下Conda,并刷新一下命令行环境变量,再激活环境:

conda init
source ~/.bashrc
conda activate llama-factory

在这里插入图片描述
之后进入 LLaMa-Factory 文件夹,通过以下命令进行 LLaMa-Factory 相关依赖包的安装

pip install -e ".[torch,metrics]"

在这里插入图片描述
安装完成之后,通过以下命令测试一下 LLaMa-Factory 是否正常安装:

llamafactory-cli version

在这里插入图片描述

4. 启动 LLaMa-Factory 界面

通过以下命令启动 LLaMa-Factory 可视化微调界面:

llamafactory-cli webui

在这里插入图片描述
通过 VS Code 中的 Remote-SSH 插件连接云服务器的情况,启动可视化界面之后,Remote-SSH 会自动进行端口转发,从而自动在本地浏览器打开相应的页面。如果是其他工具的话,可能需要在云平台配置一下相应的端口,之后通过云平台暴漏出来的域名打开。

在这里插入图片描述

5. 从 Huggingface 下载模型

首先创建一个文件夹用于存放模型文件:

mkdir hugging-face

增加环境变量,修改 HuggingFace 镜像源为国内镜像网站:

export HF_ENDPOINT=https://hf-mirror.com

修改模型默认存储路径:

export HF_HOME=/root/autodl-tmp/hugging-face

在这里插入图片描述
之后还是切换到 llama-factory 虚拟环境,安装 HuggingFace官方下载工具:

pip install -U huggingface_hub

在这里插入图片描述
安装完成之后,通过以下命令下载模型:

huggingface-cli download --resume-download Qwen/Qwen2.5-0.5B-Instruct

在这里插入图片描述
这里为了下载和后面的微调演示快点就下载0.5B的模型了,具体的模型大家可以根据实际情况去选择自己需要的模型,在huggingface上搜索模型名称,之后进入模型主页,复制名称即可:

在这里插入图片描述
模型文件都比较大,在线下载的话需要等待一段时间,下载完成之后,可以看到模型文件就在 hugging-face 文件夹下了。

在这里插入图片描述
在线下载比较占用时间,而云服务器开机每一分钟都需要花钱,你可以在本地下载模型文件之后传到云服务器上。这时候可以通过 AutoDL 提供的 Jupyter 工具进行文件上传,或者通过其他带有SFTP功能的工具连接云服务器上传。

在这里插入图片描述
在这里插入图片描述

6. 模型验证

下载完成模型之后,我们需要验证模型文件是否可以正常加载、运行,可以通过 LLaMa-Factory 的可视乎界面加载运行模型:

在这里插入图片描述
需要注意的是,加载本地模型的时候,需要修改填写模型本地路径,这里的路径是模型快照的唯一哈希值,而不是模型文件夹的路径。

在这里插入图片描述
之后就可通过和模型进行对话,测试下载下来的模型是否正常了,也可以看下对话中模型输出的风格,和我们微调之后的做下对比。

在这里插入图片描述

7. 模型微调

接下来就可以通过 LLaMa-Factory 进行微调了,这里先做一个简单的演示,为了不让这篇文章篇幅过长,先不具体讲解各种微调参数的含义和作用,数据集也只使用 LLaMa-Factory 自带的示例数据集,演示一下对模型认知设定的微调。

修改一下默认的 identity.json 数据集,将其中的{{name}}、{{author}}替换为我们自己的设定,并保存文件。

在这里插入图片描述
之后在 LLaMa-Factory Web界面中加载预览数据集,并且稍微调整一下超参,主要是学习率先保存不变,主要是训练轮次,以及验证集比例。

在这里插入图片描述
在这里插入图片描述
后续如果需要使用我们自定义的数据集的话,也只要将数据集文件放到 LLaMa-Factory 的 data 文件夹,再在 dataset_info.json 中进行配置,就可以在 Web 界面进行加载使用。这里就先不细说了。

在这里插入图片描述
之后点击开始,可以看到微调任务的执行进度,以及损失函数的变化情况。
在这里插入图片描述
0.5B 的模型,再加上数据集数据量不多,只有不到100条,所以微调过程还是很快的,可以看到最终的损失函数降到了 0.5 左右。不过这是因为训练数据太少,而且一些超参设置比较不合理,才有这样的较低损失函数,实际微调用于生产环境的模型时,要注意防止过拟合的情况。

在这里插入图片描述
之后,还是用 LLaMa-Factory 加载微调之后的模型文件进行测试,这里通过检查点路径添加刚刚训练完成的模型文件:

在这里插入图片描述
之后就可以和我们微调之后的模型进行对话了

在这里插入图片描述
可以看到,微调之后的模型已经学习了数据集中的信息,可以按照我们预设的人设回答问题。

参考文档:
LLama-Factory 官方文档

<think>好的,用户现在想寻找关于大模型微调的实际案例或教程。我需要先理解他们的需求,可能他们正在学习如何微调模型,比如Llama 3,想要具体的步骤或示例。首先,我应该回顾系统指令,确保回答符合格式要求,比如行内数学表达式用$...$,独立公式用$$...$$,并且正确引用提供的参考资料。 用户的问题中提到了“微调”、“案例”、“示例”、“教程”,所以需要结合引用中的信息。引用1提到了Llama 3的微调实战案例,包括学习线路、实战案例和视频,这应该作为主要参考。引用3提到微调需要高配置的GPU环境,这点也需要在回答中强调。引用2提供了学习资料,但可能和具体案例关联不大,可以稍微带过。 接下来,我需要组织回答结构,确保分步骤说明。首先介绍微调的基本概念,然后分步骤讲解数据准备、模型加载、微调配置、训练和评估,每个步骤给出具体示例,比如代码片段或配置参数。同时,要引用对应的资料,比如在数据准备部分引用引用1中的实战案例,在硬件要求部分引用引用3。 还要注意生成相关问题,这些问题应该围绕微调的挑战、优化方法、应用场景等展开,帮助用户深入思考。例如,如何选择微调的数据集,或者微调后的模型如何部署。 需要确保回答的中文表达流畅,技术术语准确,并且正确应用LaTeX格式。比如提到损失函数时,使用$L = \frac{1}{N} \sum_{i=1}^{N} (y_i - \hat{y}_i)^2$这样的公式,符合独立公式的格式要求。 最后,检查所有引用是否自然添加在段落末尾,没有遗漏。同时,确保代码块用正确的语法高亮,比如Python示例使用反引号包裹,并注明语言。 现在,把这些整理成一个结构清晰、分步骤的回答,引用相关资料,并生成相关问题,应该能满足用户的需求。</think>根据你的需求,我将从大模型微调的实际案例、核心步骤、资源推荐三个维度为你系统梳理: ### 一、大模型微调实战案例(以Llama 3为例) **步骤1:数据准备** - 需要领域特定的数据集,如医疗问答数据格式: ```python dataset = [ {"instruction": "如何预防感冒?", "input": "", "output": "1.勤洗手...2.保持通风..."}, {"instruction": "解释糖尿病成因", "input": "血糖指标", "output": "胰岛素分泌异常..."} ] ``` 推荐使用HuggingFace数据集库进行格式标准化[^1] **步骤2:模型加载** ```python from transformers import AutoModelForCausalLM, AutoTokenizer model = AutoModelForCausalLM.from_pretrained("meta-llama/Meta-Llama-3-8B") tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3-8B") ``` **步骤3:微调配置** 采用LoRA高效微调方法: ```python peft_config = LoraConfig( r=8, lora_alpha=32, target_modules=["q_proj", "v_proj"], lora_dropout=0.05, bias="none" ) ``` 训练参数设置:学习率$lr=3e^{-4}$,批量大小$batch=16$,epochs=3 **步骤4:训练与评估** 损失函数采用交叉熵: $$L = -\frac{1}{N} \sum_{i=1}^{N} \sum_{c=1}^{C} y_{i,c} \log(p_{i,c})$$ 评估指标包含BLEU-4和ROUGE-L[^3] ### 二、核心资源推荐 1. **实战教程**:Llama 3微调完整代码示例(含Colab笔记本) 2. **优化技巧**:量化训练、梯度检查点等显存优化方案 3. **行业案例**:客服对话系统微调、法律文书生成等场景实现[^2] ### 三、硬件要求说明 最小配置要求: - GPU显存 ≥24GB(如A10G) - 内存 ≥64GB - 推荐使用AWS p4d.24xlarge实例或Azure NDv2系列
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值