一、安装 LLaMA-Factory
1. Python 环境安装
安装成功后,输入 python 能出现版本信息表示安装成功。
2. CUDA 和 PyTorch 安装
2.1 PyTorch 安装
查看 PyTorch 与 CUDA 对应的版本,然后进行安装。PyTorch 官网地址:PyTorch
在终端中输入以下指令安装 PyTorch(以 CUDA 11.8 为例):
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
建议选用 CUDA 11.8 版本以确保兼容性。
到此 PyTorch 安装结束。
2.2 CUDA 安装
找到 CUDA 的历史版本。链接地址:CUDA Toolkit Archive | NVIDIA Developer
找到目标安装包下载安装。安装成功后在终端中输入:nvcc --version
如显示版本号,表示 CUDA 安装成功。
2.3 校验
校验 CUDA 和 PyTorch 是否匹配成功。
终端中输入:
import torch
print(torch.cuda.current_device())
print(torch.cuda.get_device_name(0))
print(torch.__version__)
如果出现异常错误,可能是环境没有处理好,需自行检查。
3. 下载 LLaMA-Factory 的 Git 仓库
git clone https://github.com/hiyouga/LLaMA-Factory.git
进入刚下载的 LLaMA-Factory 文件夹中,输入指令:
pip install -e '.[torch,metrics]'
验证安装是否成功。输入指令:llamafactory-cli version
如出现版本号表示安装成功。
二、下载模型
可从魔搭社区下载模型。示例选用 Qwen2.5-0.5B-Instruct 模型。
使用 Git 下载命令:
git clone https://www.modelscope.cn/Qwen/Qwen2.5-0.5B-Instruct.git
三、部署大模型
启动 llama-factory 的 WebUI,输入指令:
llamafactory-cli webui
注意:必须在 LLaMA-Factory 仓库根目录中输入该指令。
启动后的界面会显示服务地址。切换页面到部署模型的页面。
点击 Chat,模型名称从下拉列表中选择 Qwen2.5-0.5B-Instruct。
模型路径填写刚刚下载的模型路径。注意:模型名称和模型路径中的模型要对应。
填写好,进行加载模型。加载成功后,就可以进行聊天了。
四、模型微调
4.1 生成训练的数据集
代码示例如下:
import json
import random
from faker import Faker
def generate_thermal_dataset(output_path="thermal_dataset.json"):
"""生成智能家居温度调控指令数据集"""
fake = Faker('zh_CN')
base_phrases = ["有点", "非常", "特别", "实在", "真的", "确实", "越来越", "稍微", "极其"]
heat_verbs = ["热","炎热","火热","酷热","炽热","闷热","灼热","滚烫","炙热","沸热","炙烤","加热","升温","燥热","湿热","高温","暖热"]
quantifiers = ["了", "啦", "啊", "呢", ""]
dataset = []
for _ in range(2000):
phrase = random.choice(base_phrases)
verb = random.choice(heat_verbs)
quantifier = random.choice(quantifiers)
input_text = f"我{phrase}{verb}{quantifier}"
output_json = {
"Device": "AirConditioner",
"Status": "on"
}
dataset.append({
"instruction": "你是一个物联网数据处理专家,需要把自然语言指令转换为 JSON 结构化数据",
"input": input_text,
"output": json.dumps(output_json, ensure_ascii=False),
})
with open(output_path, "w", encoding="utf-8") as f:
json.dump(dataset, f, indent=2, ensure_ascii=False)
print(f"数据集已生成:{output_path}")
if __name__ == "__main__":
generate_thermal_dataset()
该代码会生成 2000 条训练数据。
4.2 配置训练参数
找到 llama-factory 中的训练参数集的配置文件,即 data 文件夹中的 dataset_info 文件。打开文件并配置。
我们在 json 字符串中再加入一组配置。
配置完成后,在 data 文件夹中再新建一个 train.json 文件,用于保存生成出来的训练数据集。
在 WebUI 中配置上刚刚添加好的数据训练集。
预览数据集确认无误。
确保系统使用独立显卡进行计算。
WebUI 中点击开始训练。
可以看到已经开始训练,日志显示进度。
训练完成,看到 log 上面出现训练完毕,表示训练结束了。
4.3 合并导出
选择 export。
然后把这三个地方配置正确:
- Base Model Path (基础模型路径)
- Finetuning Type (微调类型)
- Output Dir (输出目录)
点击开始导出就能合并导出微调好的模型了。
4.4 加载合并后的模型
使用合并后的模型路径重新加载即可。
