先给大家道个歉,学校里最近刚刚开学,学习上事情有点多,导致更新可能不及时,都不好意思叫日记了。

言归正传,今天带来的是微调成功后模型的本地部署,步骤不难,其实只需要四个步骤就可以,我也有看别的博主的教程,像他们那种下载MSYS2什么的有点太复杂了,但是这一次的教程就不需要这么麻烦。

1:环境的准备,保证你的Windows有必要的工具和环境。

2:模型的转换,从LLamafactory中导出我们微调成功的模型。

3:格式转化,将模型格式转化为Ollama 使用的 GGUF 格式。(最重要)

4:Ollama的部署

现在我会依次介绍这四个步骤。

1. 环境准备

1.1 准备python环境

这一步大家应该都没有问题,只需要去python官网https://www.python.org/downloads/windows/上下载就可以了,不过要注意的就是在安装的时候把Add python.exe to PATH选项给勾选上,这样安装下来就ok了。

1.2 下载git

git主要是为了使用pip安裝某些 Python 插件时,需要用 Git 从 GitHub 下载。前往 https://git-scm.com/download/win 下载并安装 Git for Windows,使用预设选项就可以了。

不过这一步其实也可以不用管他,因为网络时常会有波动导致下载出现错误,我们可以直接从github上download zip就可以了。

1.3 下载llama.cpp

这一个软件是我们必须使用到的,因为我们需要使用它来转化我们的模型格式。

前往 https://github.com/ggerganov/llama.cpp下载,依旧是点击download zip就可以(大家一定要注意一下,我们需要下载的是Source code,这个版本稳定一些),然后解压缩安装到你自己认识的路径即可。

到这里,我们的第一步就算完成了。

2 模型准备

2.1 从llama factory中导出模型

这一步比较简单,我应该在前一次的总结中说到过。点击LLama Factory中的export就可以导出模型,参数使用默认的即可。这一步也同理,一定一定要记住自己导出模型的路径。

3 格式转化

现在我们准备将导出的模型转化为.gguf格式。

3.1 建立并启用python的虚拟环境

从Windows功能列表中加载powershell或win+r,输入cmd打开。

然后在窗口中输入下列代码:

# 进入我们下载的 llama.cpp 路径
例如:cd D:\llama.cpp-master

# 建立一個名为 .venv 的虚拟环境
python -m venv .venv

# 启用这个虚拟环境
.\.venv\Scripts\activate

成功后,命令行的前面就会出现(.venv)的字样。

3.2 安装所有python所需的依赖

这一步所需的依赖比较多,我自己试了好多次才最终可以成功运行,现在我来列一下所需要的依赖。

3.2.1 升级 pip 本身

这个大家应该都比较熟悉,在上面的环境中输入下列代码即可。

python.exe -m pip install --upgrade pip

3.2.2 安装 llama.cpp 的基础依赖项

我们可以直接运行下列代码:

pip install -r requirements.txt

但是还是因为要连到github上,网络不稳定就很容易断开连接,导致下载失败,所以这里我还是推荐大家去github上下载压缩包然后解压缩到本地,放到本地去下。

https://github.com/huggingface/transformers/archive/refs/tags/v4.56.0-Embedding-Gemma-preview.zip

下载完成后,输入下列代码就可以完成下载,地址不要忘记改成你下载transformers的地址。

例:pip install "D:\Download\transformers-4.56.0-Embedding-Gemma-preview"

然后再次执行 pip install -r requirements.txt 就可以完成。

3.2.3 安裝 PyTorch 

这里的pytorch其实只需要安装CPU版本的就可以了,因为只是用来转化模型格式,用不到GPU的。这个也简单,输入下面的代码就可以了:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

3.2.4 安装其它一些琐碎的依赖

这一些还是看自己的电脑需要什么就下载什么就行了,我下面列了一个我出现错误的地方,大家应该也都差不多。还有其它的大家可以自行安装。

#安裝 SentencePiece
pip install sentencepiece

3.3 开始执行转换

3.3.1 转换为F16 GGUF

在已经启动好的 (.venv) 命令窗口中,执行下列代码:

# 将 "D:\My-Finetuned-Model" 我们在第二步导出模型的那个路径。
python .\convert_hf_to_gguf.py "D:\My-Finetuned-Model" --outfile "D:\models\my-model-f16.gguf" --outtype f16

这一步会产生一个比较大的文件,这是正常的。

3.3.2 将 F16 GGUF 量化为 Q4_K_M

这一步是将模型的大小调小,类似于压缩过程。

这一步我们需要先准备好 llama-quantize.exe 工具。

https://github.com/ggerganov/llama.cpp/releases,大家从这一个网址中找到最新的版本并下载,把解压缩后的文件命名为llama-tools,这里包含了我们所需要的所有工具。

然后在D盘中新建一个新的文件夹-----models(用来存放转化格式后的模型),并打开一个新的、普通的 Powershell 窗口(不需要虚拟环境)执行:

# 使用 D:\llama-tools 中的 llama-quantize.exe
D:\llama-tools\llama-quantize.exe D:\models\my-model-f16.gguf D:\models\my-model-q4_K_M.gguf q4_K_M

f16 gguf格式与q4_k_m格式大小的对比

在完成这步后,我们的模型格式转化完成,现在就可以进去ollama部署阶段了。

4 在Ollama中部署

4.1 建立 Modelfile

首先在 D:\models 文件夹中,建立一個名为 Modelfile 的文本文件。

然后用记事本打开,输入下列文本:

# 指向我们在阶段 3.3 第二步的最终 GGUF 文件
FROM D:\models\my-model-q4_K_M.gguf

4.2 建立并运行 Ollama 模型

到这一步后,我们打开一个新的powershell窗口。

转换路径到我们存放 Modelfile 的目录:

cd D:\models

然后执行 ollama create 指令来建立模型:

ollama create my-awesome-model -f ./Modelfile

最后就可以输入下面的代码来运行我们的模型啦!

ollama run my-awesome-model

大家输出的结果应该是这样的:

ok,最后总结一下。

我们这次做了微调模型的本地部署。

这一次的难点主要是在python依赖的安装以及将模型格式转换为ollama所需的格式。

还是希望这一次的日记对大家有点作用,更欢迎大家一起来和我探讨大模型的一些知识。

Logo

更多推荐