如何用LLaMA Factory微调量化模型并部署至Ollama?
摘要:目录环境搭建与配置数据集准备WebUI 配置微调参数模型导出与量化导入 Ollama LLaMA Factory 是一个开源的全栈大模型微调框架,简化和加速大型语言模型的训练、微调和部署流程。它支持从预训练到指令微调、强化学习、多模态训练等
目录环境搭建与配置数据集准备WebUI 配置微调参数模型导出与量化导入 Ollama
LLaMA Factory 是一个开源的全栈大模型微调框架,简化和加速大型语言模型的训练、微调和部署流程。它支持从预训练到指令微调、强化学习、多模态训练等全流程操作,并提供灵活的配置选项和高效的资源管理能力,适合开发者快速定制化模型以适应特定应用场景。下面通过一个简单的示例来展示如何使用 LLaMA Factory 进行模型微调并部署至 Ollama。
环境搭建与配置
克隆 LLaMA Factory 的 Git 仓库(https://github.com/hiyouga/LLaMA-Factory),创建 Python 虚拟环境并安装依赖。
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics,gptq]"
安装完成后,在 Python 终端执行以下代码,检查 PyTorch 是否为 GPU 版本,如果不是则需要手动安装。
import torch
print(torch.__version__) # '2.6.0+cu126'
print(torch.cuda.is_available()) # True
在命令行中使用以下命令运行 LLaMA Factory。
llamafactory-cli webui
数据集准备
微调数据集使用“弱智吧数据集”(https://github.com/FunnySaltyFish/Better-Ruozhiba),从百度弱智吧上收集的一系列帖子,旨在启发人们娱乐性使用 ChatGPT 等 LLM 时的思路。微调模型使用阿里的 Qwen2.5:7B 模型。
// 数据集示例
[
{
"instruction": "只剩一个心脏了还能活吗?",
"output": "能,人本来就只有一个心脏。"
},
{
"instruction": "爸爸再婚,我是不是就有了个新娘?",
"output": "不是的,你有了一个继母。\"新娘\"是指新婚的女方,而你爸爸再婚,他的新婚妻子对你来说是继母。"
}
]
数据集和模型可以在魔塔社区(https://www.modelscope.cn)上搜索并下载,下载可以使用魔塔社区提供的 SDK 或者 Git 命令行下载。
下面的命令可以直接下载弱智吧数据集和 Qwen2.5:7B 模型。
git clone https://www.modelscope.cn/datasets/AI-ModelScope/Better-Ruozhiba.git # 弱智吧数据集
git clone https://www.modelscope.cn/Qwen/Qwen2.5-7B-Instruct.git # Qwen2.5:7B 模型
下载好的数据集还需要在 LLaMA Factory 中进行配置。LLaMA Factory 支持 Alpaca 和 ShareGPT 两种数据格式,分别适用于指令监督微调和多轮对话任务。
Alpaca 格式:适用于单轮任务,如问答、文本生成、摘要、翻译等。结构简洁,任务导向清晰,适合低成本的指令微调。{
"instruction": "计算这些物品的总费用。",
"input": "输入:汽车 - $3000,衣服 - $100,书 - $20。",
"output": "汽车、衣服和书的总费用为 $3000 + $100 + $20 = $3120。"
}
ShareGPT 格式:适用于多轮对话、聊天机器人等任务。结构复杂,包含多轮对话上下文,适合高质量的对话生成和人机交互任务。[
{
"instruction": "今天的天气怎么样?",
"input": "",
"output": "今天的天气不错,是晴天。",
"history": [
[
"今天会下雨吗?",
"今天不会下雨,是个好天气。"
],
[
"今天适合出去玩吗?",
"非常适合,空气质量很好。
