问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

LLaMA-Factory+Ollama:本地部署大模型流程详解

创作时间:
作者:
@小白创作中心

LLaMA-Factory+Ollama:本地部署大模型流程详解

引用
CSDN
1.
https://blog.csdn.net/m0_74748557/article/details/142901519

本文将详细介绍如何使用LLaMA-Factory和Ollama进行大模型的本地部署。整个过程分为两个独立的步骤:使用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:

llamafactory-cli webui

WebUI 主要分为四个界面:训练、评估与预测、对话、导出。

训练

在开始训练模型之前,需要指定的参数有:

  1. 模型名称及路径
  2. 训练阶段
  3. 微调方法
  4. 训练数据集
  5. 学习率、训练轮数等训练参数
  6. 微调参数等其他参数
  7. 输出目录及配置路径

比如说,我选择的就是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为例:

ollama run 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 list

在Ollama中运行模型进行对话:

ollama run model_name

至此,就已实现了在本地部署自定义微调模型,当然也可以利用docker运行webui,进行更好地可视化。

Tips:如果你发现你的模型在回复时逻辑不那么通顺流利,类似下图这样,说明你的微调似乎不够成功 😃

Enjoy it ~

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号