首先,在HuggingFace下载这个语言模型,为了提高下载速度,这里准备下如下两步操作:
- 配置下载的代理【SET HF_ENDPOINT=https://hf-mirror.com】
- 安装PIP依赖【pip install huggingface-cli -i https://pypi.tuna.tsinghua.edu.cn/simple, pip install -U huggingface_hub -i https://pypi.tuna.tsinghua.edu.cn/simple】
下载模型:huggingface-cli.exe download --resume-download shenzhi-wang/Llama3-8B-Chinese-Chat --local-dir .
语言模型下载完成后,后续使用LLama-Factory这个工具来微调。
git clone --depth 1 https://github.com/hiyouga/LLaMa-Factory.git
cd LLaMa-Factory
pip install -e .
后续自己希望训练的json格式的数据集可以放在data文件夹下,如下是已有的一些数据集:
然后就需要准备下训练数据,这里就自己随便按标准的格式编辑一下吧【其他特殊行业的数据集可以编写脚本批量生成】:
然后再dataset_info.json新增这个数据集【测试用,数据量比较少可能训练出来的模型表现不是很好,建议增加更多条数的数据】:
为了训练时不受其他数据集影响训练时间,这里把其他数据集都删掉:
identity.json留下,方便做身份角色生成。
本地的4060还没开始就爆了,哈哈~
还是去阿里云租个GPU服务搞吧,这里推荐使用抢占式的,使用完验证完后就释放,性价比超高。
建议GPU内存选大一点的,一开始还是保守了,选得31GB的【还有数据盘也建议100GB以上】,初始化到75%还是OOM了,格局打开吧,这次直接干188GB的~
安装后,安装个Annaconda环境来使用Python:wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh,然后新建个虚拟环境【conda create -n llama3 python=3.10】即可,这里是下载模型的脚本,为了提高下载速度,这里使用modelscope的模型【pip install modelscope】:
import os
from modelscope import snapshot_download
allow_patterns = ["*.*"]
repo_id = 'LLM-Research/Llama3-8B-Chinese-Chat'
local_dir = "."
model_dir = snapshot_download(model_id=repo_id, cache_dir=local_dir)
然后就可以下载模型了:
然后按照前面步骤处理下,即可启动UI界面,配置下模型地址参数,另外,要在公网访问UI界面,需要在安全组放行端口访问,还要记得选上自己的数据集:
启动训练前,确认下GPU缓存已经释放了
确认下torch是cuda版本,不然使用CPU训练挺慢的
开始~~~
188G训练起来,贼快,训练完后,会生成一个微调文件,后续可以选配到原来的模型再导出,这里先独立。
未加载微调文件时的问题与回复:
卸载模型,选择检查点文件后,再次加载模型试试:
有点靠近了,总体效果不是很理想,一方面是数据集不够,才一条,另外是内存可能加大点提高精度的话可能效果更好。
后面可以把微调后的模型与原来的Llama3模型一起导出即可使用,这里就不搞了,留个待办吧:
- 导出模型
- 命令行模式训练
原理是类似的,一通百通,实战篇搞完了,该回头补补理论篇的知识了。