Author:YoungEWBOK
一共分为两个步调,利用LLaMA-Factory训练(微调)模子 和 利用Ollama部署模子,两个步调是相互独立的,可以根据必要阅读对应部分。
LLaMA-Factory训练模子
LLaMA-Factory 安装
这部分在LLaMA-Factory的文档里已有详细介绍,可直接参考: https://llamafactory.readthedocs.io/zh-cn/latest/#
在安装 LLaMA-Factory 之前,确保安装了下列依赖:
运行以下指令以安装 LLaMA-Factory 及其依赖:
- git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
- cd LLaMA-Factory
- pip install -e ".[torch,metrics]"
复制代码 如果出现环境辩论,请尝试使用 pip install --no-deps -e . 办理。
LLaMA-Factory 校验
完成安装后,可以通过使用 llamafactory-cli version 来快速校验安装是否乐成。
如果能乐成看到类似 “Welcome to LLaMA Factory, version ······” 的字样,说明安装乐成。
HuggingFace镜像
由于无法访问HuggingFace,轻易出现 OSError: We couldn’t connect to ‘https://huggingface.co’ to load this file. 类似的报错(如果在WebUI上看到的就是 “训练错误” 的字样),所以必要在下令行输入以下指令后再进行接下来的步调:
- export HF_ENDPOINT=https://hf-mirror.com
复制代码 WebUI
LLaMA-Factory 支持通过 WebUI 零代码微调大语言模子。 在完成安装后,通过以下指令进入 WebUI:
WebUI 主要分为四个界面:训练、评估与猜测、对话、导出。
训练
在开始训练模子之前,必要指定的参数有:
- 模子名称及路径
- 训练阶段
- 微调方法
- 训练数据集
- 学习率、训练轮数等训练参数
- 微调参数等其他参数
- 输出目次及配置路径
比如说,我选择的就是Llama-3.1-8B的中文对话模子,数据集也选择的是alpaca的中文数据集。
随后,可以点击 开始 按钮开始训练模子。
若使用CPU训练可能会报Warning,忽略即可
评估猜测与对话
模子训练完毕后,通过在评估与猜测界面通过指定 模子 及 适配器 的路径在指定命据集上进行评估。
也可以通过在对话界面指定 模子、 适配器 及 推理引擎 后输入对话内容与模子进行对话观察效果。
导出
在导出界面通过指定 模子、 适配器、 分块巨细、 导出量化等级及校准数据集、 导出设备、 导出目次 等参数后,点击 导出 按钮导出模子。
(如果必要部署到Ollama上,请一定记得把模子导出)
示例:微调中文对话大模子
使用alpaca_zh_demo数据集微调Llama-3-8B-Chinese-Chat模子
训练过程的Loss曲线如下:
导出模子:
利用模子进行对话:
使用自界说的custom_chinese_dataset数据集微调模子
自界说的数据集必要添加到data文件夹中,并在data_info.json中添加相应的内容:
保存之后,就能在数据集选项中看到自界说数据集了。
测试微调后的对话效果:
Ollama部署模子
Ollama安装完成后,可以将模子部署在当地。
部署模子库中的模子
起首下载Ollama:
安装完成后,即可通过下令直接下载使用模子库中的模子,这里以llama3.1为例:
输入/?可以调出提示:
部署自界说模子
由于通过LlaMA-Factory导出的模子与Ollama所需格式有区别,必要借助Llama.cpp的代码进行转换。
仓库地址:https://github.com/ggerganov/llama.cpp
git clone仓库之后,下载干系依赖:
- pip install -r requirements.txt
复制代码 接着就可以进行转换了:
- python convert_hf_to_gguf.py /home/yyx/LLaMA-Factory/saves/Llama-3-8B-Chinese-Chat/output-100 \
- --outfile /home/yyx/output-100.gguf \
- --outtype q8_0
复制代码 以下图的模子为例:
运行代码后会把safetensors格式转换为gguf格式,导出模子的名称是output-100.gguf。
接下来创建Modelfile,用于将模子导入Ollama中:
- FROM /path/to/your_model.gguf
复制代码 (先创建Modelfile.txt,在文档中填入内容,保存后把后缀.txt去掉即可,记得把/path/to/your_model.gguf替换为模子的实际路径)
在Ollama中创建相应的模子:
- ollama create model_name -f /path/to/Modelfile
复制代码 检察Ollama中所有的当地模子:
在Ollama中运行模子进行对话:
至此,就已实现了在当地部署自界说微调模子,当然也可以利用docker运行webui,进行更好地可视化。
Tips:如果你发现你的模子在复兴时逻辑不那么通顺流利,类似下图如许,说明你的微调似乎不敷乐成 |