训练私有本地大模型需求量越来越高了,
今天就从零基础开始,不讲原理,只看结果的来完整走一遍如何训练llama3成为角色扮演,先培养兴趣,后面有需要再补充原理
(1)准备环境
推荐:使用云计算机(当然4090高配大佬请忽略)
这不是广告!不是广告!你们用了我也没任何好处
只是我自己实测得出的经验,不要为难的你电脑宝贝,2块钱一个小时租一个随便霍霍。
我这里用的是AutoDL,网址:AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL
进去了登录/注册一下,然后 控制台 一> 容器实例 一> 租用新实例
这里直接上4090,CPU随便,咱们主要用GPU,地区离哪里近就选哪
重点是 基础镜像 这里,推荐和我选一样的就行
然后随便充个10块,创建就好,付费模式和你去网吧一样,按量计费的
这是我的配置总览,
注:我在基础上又扩容50GB,推荐你也扩容,要不然后面导出模型50GB根本不够用
然后点击JupyterLab进入远程操作
(2)下载Llama3-8B-Chinese-Chat模型
我们点击JupyterLab进入到远程后点击终端
我们先下载huggingface客户端
pip install -U huggingface_hub
配置hf国内镜像,会比直接下载快很多:
export HF_ENDPOINT=https://hf-mirror.com
接下来我们直接用命令从 huggingface上面下载模型
这里下载用中文训练好的,不要原版,原版的训练是基于英文训练的,我们微调出来效果不理想
我下载的是shenzhi-wang/Llama3-8B-Chinese-Chat的模型:
有需要可以自行去 huggingface网站上面找,这里我们用命令:
huggingface-cli download --resume-download shenzhi-wang/Llama3-8B-Chinese-Chat --local-dir /root/autodl-tmp/models/Llama3-8B-Chinese-Chat
这个是将 Llama3-8B-Chinese-Chat这个模型下载到 /root/autodl-tmp/models/Llama3-8B-Chinese-Chat 文件夹中
下载完成后是这个样子,看看有没有漏下的文件,如果有删了重新下一次
这样模型就下好了!
(3)安装LLaMA-Factory 框架
我们cd到要安装的文件位置
cd /root/autodl-tmp/
这里我直接打算安装在autodl-tmp中,所以
然后从github上下载
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd进入下载好的文件夹
cd LLaMA-Factory
安装llamafactory的一些依赖,特别是llamafactory-cli的安装
pip install -e .
注: 遇到包冲突时,可使用pip install --no-deps -e .解决
pip install --no-deps -e .
验证下,输入llamafactory-cli version后出现版本号就是成功了
llamafactory-cli version
注:出错先看下是不是在 LLaMA-Factory文件夹里面执行的命令
(4)准备训练数据
首先我们先在本地电脑上准备一个这样格式的json训练文件
[
{
"instruction":"你是谁",
"input": "",
"output": "俺就是齐天大圣熏悟空,花果山的大王",
"history": []
}, {
"instruction":"有没有喜欢吃的东西",
"input": "",
"output": "嘿嘿嘿,俺老熏最喜欢天上的蟠桃,那滋味...桀桀桀",
"history": []
}
]
然后保存命名为 fintech.json并且拖到云计算机/data目录中,像我这样
找到 dataset_info.json文件,用编辑器打开,将下面代码复制进去
"fintech": {
"file_name": "fintech.json",
"columns": {
"prompt": "instruction",
"query": "input",
"response": "output",
"history": "history"
}
},
注意检查下“ , ”号和” { “号要英文的
然后键盘Ctrl+S保存下
(5)启动 Web UI
确保在 LLaMA-Factory文件夹里执行命令
cd /root/autodl-tmp/LLaMA-Factory
运行 llamafactory-cli可视化界面:
llamafactory-cli webui
出现地址就成功了!
这个不要关闭,我们退回到AutoDL的控制台
点击自定义服务
点击下载桌面工具,我这里演示windows的,其他可以跟着官方教程走,大致都是一样的
下载完成后解压缩,双击运行程序
输入你的指令密码,指令密码都在AutoDL控制台找到
注:这里端口要改成" 7860 ";
开始代理后可以通过访问下面给的地址继续训练
打开地址后看见(如果出不来重启下或者刷新下就行):
语言调成 zh 模型名称为 LLaMA3-8B-Chinese-Chat 模型路径就是刚刚hugginface下载的路径如果你和我一样的话就是
/root/autodl-tmp/models/Llama3-8B-Chinese-Chat/
(6)测试是否成功找到模型
点击chat,并且加载模型
加载成功后,随便和他聊会天
成功回复后就是正常的,继续微调步骤
回到 Train 中选择数据集,看看有没有 fintech (刚刚拖进去的文件),
可以点击旁边的预览数据集,看看是不是你的训练文件
如果训练的文件小,训练配置调大一点:
学习率: 2e-3
训练论数:10.0
最大样本数:1000
要改的地方我都框出来了
点击开始,就训练了
在 ” /root/autodl-tmp/LLaMA-Factory/saves/LLaMA3-8B-Chinese-Chat/lora/ “可以找到你训练好的文件
(7)测试训练后的文件
在检查点路径中选择你的训练模型
回到 chat 加载模型
知道自己是谁了就说明训练成功了
下篇我将会合并模型后,采用llama.cpp量化模型成为最终ollama支持的gguf格式。
总结:如果是小白,请先按照我的配置来进行(因为版本互相不兼容报错的太多了),绝对可以成功玩起来,如果有什么问题欢迎私信我,我看到都会解决。这些都是我自己研究总结的,写博客没有任何收入,只是希望提高自己的同时帮到想努力的朋友,谢谢大家。
免责声名:一切均严格参照ollama开源策略,没有任何侵权意图,本文章全由自己编写,如出现任何问题请联系我,我将删除。
总结
**文章总结:从零开始训练LLaMA3进行角色扮演****一、背景概述**
随着对大模型需求的增加,训练私有本地大模型变得越来越重要。本篇文章旨在帮助从零基础开始的读者,通过实践操作来训练LLaMA3模型,实现角色扮演功能,激发兴趣后再深入探讨原理。
**二、步骤详解**
1. **准备环境**
- **推荐使用云计算机**(特别是非4090高配用户),以减少对本地设备的负担。
- **推荐平台**:AutoDL,提供弹性、好用且省钱的GPU租赁服务。
- **具体操作**:注册登录后,选择GPU(如4090)、扩容磁盘空间,并通过JupyterLab进入远程操作界面。
2. **下载LLaMA3-8B-Chinese-Chat模型**
- **安装huggingface客户端**,并配置国内镜像以加速下载。
- **使用命令**从huggingface下载预训练好的中文LLaMA3-8B模型,保存到指定文件夹。
3. **安装LLaMA-Factory框架**
- **下载并安装**LLaMA-Factory,该框架提供了必要的工具和界面以进行模型微调。
- **验证安装**成功通过运行版本检查命令。
4. **准备训练数据**
- **准备json格式的训练文件**,包含对话指令、输入、输出和历史。
- **上传到云计算机**并更新dataset_info.json以识别数据文件。
5. **启动Web UI**
- **运行LLaMA-Factory的Web UI**服务,并在本地计算机上使用桌面工具连接远程服务器。
- **通过Web界面**设置语言、模型路径等,并进行初步模型测试。
6. **微调模型**
- **加载训练数据**,检查数据集预览。
- **配置训练参数**,如学习率、训练轮数和最大样本数,并开始训练。
- **训练结果**保存在指定路径,供后续使用。
7. **测试训练后的模型**
- **加载训练后的模型**进行对话测试,检查是否按预期回复,确认训练成功。
**三、后续展望**
文章结尾提及将在下篇中合并模型,并采用llama.cpp量化模型,最终生成ollama支持的gguf格式。这将进一步提升模型的适用性和效率。
**四、总结与感谢**
- 本文详细指导了从环境准备到模型训练的整个过程,旨在帮助零基础读者快速上手。
- 强调了实践操作的重要性,同时提供了详细的配置建议和常见问题解决方法。
- 作者表示,写作本文纯属兴趣,并无收入,希望能帮到志同道合的朋友。
**五、免责声明**
作者强调,一切操作均遵循开源协议,无任何侵权意图,如有问题将积极处理。