微信扫码
与创始人交个朋友
我要投稿
最近在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]运行这条命令即可。
ollama run qwen2:72b
但如果你想要部署FP16量化或者Q8量化,怎么办?阿里官方在modelscope[3]上倒是提供了GGUF量化版本,按照上篇文章《如何使用vLLM部署DeepSeek V2 Lite模型》下载指定的模型。
既然要使用Ollama跑自定义模型,那么按照Ollama官方说明[4],我们需要编写一个Modelfile,类似于这样。
FROM /path/to/file.gguf
Qwen2官方也给出了如下7B的Modelfile,但咱们有多个GGUF文件,怎么搞?
FROM qwen2-7b-instruct-q5_0.gguf
# set the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 0.7
PARAMETER top_p 0.8
PARAMETER repeat_penalty 1.05
PARAMETER top_k 20
TEMPLATE """{{ if and .First .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
{{ .Response }}"""
# set the system message
SYSTEM """
You are a helpful assistant.
"""
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
# set the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 0.7
PARAMETER top_p 0.8
PARAMETER repeat_penalty 1.05
PARAMETER top_k 20
TEMPLATE """{{ if and .First .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
{{ .Response }}"""
# set the system message
SYSTEM """
You are a helpful assistant.
"""
Modelfile已建好,然后开始创建模型。
ollama create qwen2_72b_q8 -f Modelfile
运行
ollama run qwen2_72b_q8
本文在尝试了各种部署大模型部署框架后,最终还是回到Ollama。同时通过采用LLama.cpp的合并GGUF命令,将Qwen2 72B的多个GGUF模型文件合并为一个GGUF,最后通过创建Modelfile完成Ollama的模型创建和运行。希望本文对你有所帮助。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-09-18
2024-07-11
2024-07-11
2024-07-26
2024-07-09
2024-06-11
2024-10-20
2024-07-20
2024-07-23
2024-09-02