当前位置:AIGC资讯 > AIGC > 正文

基于LLaMA-Factory微调llama3成为一个角色扮演大模型,保姆级教学零基础,导出GGUF格式前篇

训练私有本地大模型需求量越来越高了,

今天就从零基础开始,不讲原理,只看结果的来完整走一遍如何训练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格式。这将进一步提升模型的适用性和效率。
**四、总结与感谢**
- 本文详细指导了从环境准备到模型训练的整个过程,旨在帮助零基础读者快速上手。
- 强调了实践操作的重要性,同时提供了详细的配置建议和常见问题解决方法。
- 作者表示,写作本文纯属兴趣,并无收入,希望能帮到志同道合的朋友。
**五、免责声明**
作者强调,一切操作均遵循开源协议,无任何侵权意图,如有问题将积极处理。

更新时间 2024-09-07