训练私有本地大模型需求量越来越高了,
今天就从零基础开始,不讲原理,只看结果的来完整走一遍如何训练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开源策略,没有任何侵权意图,本文章全由自己编写,如出现任何问题请联系我,我将删除。