LLaMA-Factory+Ollama:当地部署大模子流程详解

打印 上一主题 下一主题

主题 984|帖子 984|积分 2952

Author:YoungEWBOK

一共分为两个步调,利用LLaMA-Factory训练(微调)模子利用Ollama部署模子,两个步调是相互独立的,可以根据必要阅读对应部分。
LLaMA-Factory训练模子

LLaMA-Factory 安装

这部分在LLaMA-Factory的文档里已有详细介绍,可直接参考: https://llamafactory.readthedocs.io/zh-cn/latest/#
在安装 LLaMA-Factory 之前,确保安装了下列依赖:
运行以下指令以安装 LLaMA-Factory 及其依赖:
  1. git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
  2. cd LLaMA-Factory
  3. 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上看到的就是 “训练错误” 的字样),所以必要在下令行输入以下指令后再进行接下来的步调:
  1. export HF_ENDPOINT=https://hf-mirror.com
复制代码
WebUI

LLaMA-Factory 支持通过 WebUI 零代码微调大语言模子。 在完成安装后,通过以下指令进入 WebUI:
  1. llamafactory-cli 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为例:
  1. ollama run llama3.1
复制代码

输入/?可以调出提示:

部署自界说模子

由于通过LlaMA-Factory导出的模子与Ollama所需格式有区别,必要借助Llama.cpp的代码进行转换
仓库地址:https://github.com/ggerganov/llama.cpp
git clone仓库之后,下载干系依赖:
  1. pip install -r requirements.txt
复制代码
接着就可以进行转换了:
  1. python convert_hf_to_gguf.py /home/yyx/LLaMA-Factory/saves/Llama-3-8B-Chinese-Chat/output-100 \
  2. --outfile /home/yyx/output-100.gguf \
  3. --outtype q8_0
复制代码
以下图的模子为例:

运行代码后会把safetensors格式转换为gguf格式,导出模子的名称是output-100.gguf。
接下来创建Modelfile,用于将模子导入Ollama中:
  1. FROM /path/to/your_model.gguf
复制代码
(先创建Modelfile.txt,在文档中填入内容,保存后把后缀.txt去掉即可,记得把/path/to/your_model.gguf替换为模子的实际路径)
在Ollama中创建相应的模子:
  1. ollama create model_name -f /path/to/Modelfile
复制代码
检察Ollama中所有的当地模子:
  1. ollama list
复制代码

在Ollama中运行模子进行对话:
  1. ollama run model_name
复制代码
至此,就已实现了在当地部署自界说微调模子,当然也可以利用docker运行webui,进行更好地可视化。
Tips:如果你发现你的模子在复兴时逻辑不那么通顺流利,类似下图如许,说明你的微调似乎不敷乐成

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

兜兜零元

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表