最近在Windows平台部署大语言模型,这次部署的是通义千问72B FP16量化和Q8量化,有点经验分享。上文《如何使用vLLM部署DeepSeek V2 Lite模型》说到,目前大概有几类部署框架。
个人认为服务器首选部署平台,还是vLLM、SGLang和Xinference。Ollama和LM Studio还是更偏向于桌面应用。本次尝试在Windows平台部署通义千问72B FP16量化版本。我了解到
nvidia-smi提示找不到GPU了,要重启电脑。所以最终折腾下来,咱们还是得用Ollama。但Ollama默认的是4bit版本,即使要创建Modelfile,咱们还得考虑多个GGUF模型文件问题。
Ollama安装参考官网安装教程[1]即可。
Ollama默认部署通义千问72B 4bit量化版本,只需要根据Ollama上Qwen2的模型介绍页[2]运行这条命令即可。
ollamarunqwen2:72b
但如果你想要部署FP16量化或者Q8量化,怎么办?阿里官方在modelscope[3]上倒是提供了GGUF量化版本,按照上篇文章《如何使用vLLM部署DeepSeek V2 Lite模型》下载指定的模型。
既然要使用Ollama跑自定义模型,那么按照Ollama官方说明[4],我们需要编写一个Modelfile,类似于这样。
FROM/path/to/file.gguf
Qwen2官方也给出了如下7B的Modelfile,但咱们有多个GGUF文件,怎么搞?
FROMqwen2-7b-instruct-q5_0.gguf
#setthetemperatureto1[higherismorecreative,lowerismorecoherent]
PARAMETERtemperature0.7
PARAMETERtop_p0.8
PARAMETERrepeat_penalty1.05
PARAMETERtop_k20
TEMPLATE"""{{ifand.First.System}}<|im_start|>system
{{.System}}<|im_end|>
{{end}}<|im_start|>user
{{.Prompt}}<|im_end|>
<|im_start|>assistant
{{.Response}}"""
#setthesystemmessage
SYSTEM"""
Youareahelpfulassistant.
"""
Ollama目前还不支持引入多个GGUF文件,所以我们需要llama.cpp帮助。Llama.cpp的安装可以参考我之前的文章《喂饭教程!使用Llama.cpp在MAC M1上安装私有大语言模型LLM通义千问Qwen 1.5-7B》,然后我们使用llama.cpp的llama-gguf-split。
./llama-gguf-split --help
usage: ./llama-gguf-split [options] GGUF_IN GGUF_OUT
Apply a GGUF operation on IN to OUT.
options:
-h, --help show this help message and exit
--version show version and build info
--split split GGUF to multiple GGUF (enabled by default)
--merge merge multiple GGUF to a single GGUF
--split-max-tensors max tensors in each split (default: 128)
--split-max-size N(M|G) max size per split
--no-tensor-first-split do not add tensors to the first split (disabled by default)
--dry-run only print out a split plan and exit, without writing any new files
这里咱们先合并Q8量化的两个GGUF文件,然后生成qwen2-72b-instruct-q8_0.gguf。
./llama-gguf-split--merge./qwen2-72b-instruct-q8_0-00001-of-00002.gguf./qwen2-72b-instruct-q8_0-00002-of-00002.gguf./qwen2-72b-instruct-q8_0.gguf
接下来修改Modelfile。
FROM/path/to/your/qwen2-72b-instruct-q8_0.gguf
#setthetemperatureto1[higherismorecreative,lowerismorecoherent]
PARAMETERtemperature0.7
PARAMETERtop_p0.8
PARAMETERrepeat_penalty1.05
PARAMETERtop_k20
TEMPLATE"""{{ifand.First.System}}<|im_start|>system
{{.System}}<|im_end|>
{{end}}<|im_start|>user
{{.Prompt}}<|im_end|>
<|im_start|>assistant
{{.Response}}"""
#setthesystemmessage
SYSTEM"""
Youareahelpfulassistant.
"""
Modelfile已建好,然后开始创建模型。
ollamacreateqwen2_72b_q8-fModelfile
运行
ollamarunqwen2_72b_q8
本文在尝试了各种部署大模型部署框架后,最终还是回到Ollama。同时通过采用LLama.cpp的合并GGUF命令,将Qwen2 72B的多个GGUF模型文件合并为一个GGUF,最后通过创建Modelfile完成Ollama的模型创建和运行。希望本文对你有所帮助。
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |