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

使用llama factory对语言模型微调,重塑自我认知,并部署于ollama上

本文记录了从环境部署到微调模型、效果测试并部署的全过程。

一 环境

        如果使用autodl租赁服务器则不需要如下步骤,但是请注意llama_factory需要python、cuda等版本满足:

首先请确报你已经安装好了conda工具,在命令行中键入如下指令创建虚拟环境

conda create -n llama_factory python=3.10 -y

创建后激活新环境

conda activate llama_factory

安装cuda pytorch等核心工具

conda install pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=11.8 -c pytorch -c nvidia
pip install  torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

如安装其他版本,请注意对应关系

二 工具与模型

安装git-lfs

sudo apt-get install git-lfs

然后验证是否安装成功,下载模型

git lfs install
git clone https://www.modelscope.cn/qwen/Qwen2-0.5B-Instruct.git

安装llama factory

git clone https://github.com/hiyouga/LLaMA-Factory.git

cd LLaMA-Factory

安装依赖

pip install -e .[metrics,modelscope,qwen]
pip install -r requirements.txt

启动webui

CUDA_VISIBLE_DEVICES=0 python src/webui.py  # 指定一块 GPU 启动网页服务

http://0.0.0.0:7860通过该地址进入,autodl下载autodl ssh隧道工具

面板如下

参数的说明:

三 微调

进入llama-factory/data目录
新建一个json文件起名为my_data_zh.json

按下面的格式填入你的训练数据后保存即可,条数不限哦
数据集参数说明:
instruction:该数据的说明,比如“你是谁”这种问题就属于“自我介绍”,“你吃屎么”这种问题属于“业务咨询”
input:向他提的问题
output:他应该回答的内容

[
    {
    "instruction": "谁是你的开发者?你叫什么名字?",
    "input": "",
    "output": "您好,我叫xxx,是由xxx开发的人工智能助手。我旨在帮助用户解决问题和提供支持。"
  },
  {
    "instruction": "请问你的名字及开发人员?",
    "input": "",
    "output": "您好,我名叫xxx,由xxx研发。我的主要职责是回答用户的疑问并提供相关支持。"
  },
]
注册数据集

首先找到数据集的管理文件,打开llamafactory/data目录下的dataset_info.json文件

添加一条数据

	"a_my_data": { 
 	  		"file_name": "my_data_zh.json"
	},

然后在面板中选择这条你的数据

模型名称:选择你之前下载的模型。这里将决定采用何种网络结构解析模型。
模型路径:这里就是上文下载的模型文件目录。
微调方法:这里可选择lora、full、freeze三种模式,普通用户请选择lora。
full:全量模型训练。该模型将消耗大量显存。以8B模型为例,8b等于80亿参数,占用显存约8*2+8 = 24G,所以普通显卡就不要考虑这个模式了
lora:微调模型训练:这个占用显存较小,经测试4080显卡可以跑起来
数据集:因为我们刚才注册了自己的数据,所以这里点框后就会弹出数据列表,选中我们的自定义数据即可。注意这里允许数据集多选。其他设置视你的实际情况而定,最主要的设置已经完成了。
接下来拉到页面最下方,点击“开始”按钮就可以开始训练了

然后进行评估试用和导出

安装 llama.cpp

git clone https://github.com/ggerganov/llama.cpp

编译

cd llama.cpp
make

转换

python convert_hf_to_gguf.py /root/autodl-tmp/qwen/qwen2051

对FP16模型进行4-bit量化(可选),如果希望精简模型的话

./quantize ./models/your_model/xxx ./models/your_model/xxx q4_0

三 下载ollama

访问ollama.com,下载Ollama客户端,下载Windows版本,如果你的电脑是MacOs,下载对应的版本即可。

安装完成后,打开Windows命令窗口,输入ollama,出现如下提示,说明安装成功,可以使用了:

导入你的模型:

在cmd中,cd 你的模型所在目录

创建一个Modelfile文件内容如下:

# FROM 指定 GGUF 文件的路径
FROM D:/AI/Download/Llama3-8B-Chinese-Chat-q8_0-v2_1.gguf

导入你的模型

ollama create qwen05 -f ./Modelfile

查看当前模型目录

ollama list

然后运行

ollama qwen05

使用postman测试api端口

总结

### 文章总结
本文详细记录了从环境部署到模型微调、效果测试并最终部署的全过程,主要涵盖以下几个关键步骤:
#### 一、环境部署
1. **创建虚拟环境**:使用conda工具创建名为`llama_factory`的Python 3.10环境。
2. **安装CUDA和PyTorch**:确保安装了与CUDA 11.8兼容的PyTorch 2.2.2版本,以及其他相关库。
3. **安装其他工具**:包括git-lfs用于大文件下载,以及llama factory的依赖项。
#### 二、工具与模型安装
1. **安装git-lfs**:通过apt-get安装git-lfs,并验证安装成功。
2. **下载模型**:使用git clone命令下载预训练的模型(如Qwen2-0.5B-Instruct)。
3. **安装llama factory**:克隆llama factory仓库,安装依赖,并启动webui服务。
#### 三、模型微调
1. **准备训练数据**:在`llama-factory/data`目录下创建JSON文件,按指定格式填入训练数据。
2. **注册数据集**:在`dataset_info.json`文件中添加自定义数据集信息。
3. **配置微调参数**:在webui中选择模型、微调方法(如lora)、数据集等,开始训练。
#### 四、模型转换与量化(可选)
1. **安装llama.cpp**:克隆llama.cpp仓库并编译。
2. **模型转换**:使用脚本将Hugging Face格式的模型转换为GGUF格式。
3. **模型量化**:对FP16模型进行4-bit量化以减小模型大小(可选)。
#### 五、模型部署
1. **下载Ollama客户端**:根据操作系统下载并安装Ollama客户端。
2. **导入模型**:创建Modelfile文件指定GGUF文件路径,使用ollama命令导入模型。
3. **运行模型**:通过ollama命令启动模型,并使用工具(如Postman)测试API端口。
### 总结
本文通过详细的步骤指导,从环境搭建到模型微调、转换、量化,再到最终部署,为用户提供了完整的流程。无论是初学者还是有一定经验的开发者,都能按照这些步骤成功部署并微调自己的模型。

更新时间 2024-08-21