最近 Qwen2.5 特殊火,72B 模型性能逾越 Llama3.1 405B,稳居环球最强开源大模型。
既然这么强,咱必须给它整起来啊。
前两天禀享了:手机端跑大模型:Ollma/llama.cpp/vLLM 实测对比
Ollama 完胜 llama.cpp!怎样 vLLM 比较傲娇,在 arm 架构上搞不赢,还没能一睹它的芳容~
本日,刚好借 Qwen2.5 的东风,实测 Ollma//vLLM 本地部署大模型,到底该怎么选?
1. Qwen2.5 有哪些亮点
模型规模多元:分别为0.5/1.5/7/14/32/72B,分base和instruct两个版本。
海量训练数据:训练数据总量高达18T个token,具备强大的知识储备。
指令遵循精彩:实测结构化输出(如json)遵循不错,其它指令遵循待测试。
支持语种丰富:支持凌驾29种语言,中文、英语、法语、西班牙语、德语、日语等。
2. Ollama 部署实测
当前 Ollama的 Library 中已支持 Qwen2.5 下载。
2.1 Ollama 安装
不相识 Ollama 的小同伴,可翻看之前的教程:本地部署大模型?Ollama 部署和实战,看这篇就够了
这里,我们依然接纳 Docker 安装,用官方最新镜像,拉起一个容器:
- # CPU
- sudo docker run -d -v ollama:/root/.ollama -p 3002:11434 --restart unless-stopped --name ollama ollama/ollama
复制代码 假如有 GPU,那就用如下命令,把 GPU 用上,跑大模型还是很吃算力的:
- # GPU 单卡
- sudo docker run -d --gpus "device=3" -v ollama:/root/.ollama -p 3002:11434 --restart unless-stopped --name ollama ollama/ollama
- # GPU 多卡
- sudo docker run -d --gpus '"device=2,3"' -v ollama:/root/.ollama -p 3002:11434 --restart unless-stopped --name ollama ollama/ollama
复制代码 交情提示:docker 容器中指定多张 GPU,命令行中 '"device=2,3"' 必要加两个引号!
2.2 Qwen2.5 下载
Ollama 容器启动成功后,进入容器,下载模型并运行:
- sudo docker exec -it ollama /bin/bash
复制代码 我这里下载了7/14/32b(资源有限,搞不定72b):
- ollama run qwen2.5:7b
- ollama run qwen2.5:14b
- ollama run qwen2.5:32b
复制代码 这三个模型,资源占用情况怎样?先抛结论:
- NAME 显存占用 SIZE
- qwen2.5:32b 24 G 19 GB
- qwen2.5:14b 11 G 9.0 GB
- qwen2.5:7b 6 G 4.7 GB
复制代码
- qwen2.5:7b 模型权庞大小 4.7GB,运行 6G 显存就够。
- qwen2.5:14b 模型权庞大小 9GB,运行必要 11G 显存。
- qwen2.5:32b 模型权庞大小 19GB,运行必要 24G 显存。
注:单张 16G 显卡,只够跑 14b 模型,所以我这里用了两张 4080 跑 32b 模型,Ollama 会自动将模型分配到两张卡上。别的,假如启动一段时间没有调用,Ollama 会自动释放显存,简直不要太友好。
2.3 接入OneAPI
假如要接入兼容 OpenAI 格式的应用,可考虑将 Ollama 的模型接入 OneAPI。
不相识 OneAPI 的小同伴,可参考这篇教程:OneAPI-接口管理和分发神器:所有大模型一键封装成OpenAI协议
新建一个渠道,把我们刚部署的三个模型接进来:
留意:渠道最后的代理位置,必要要填主机的公网 IP 地址。
假如没有公网 IP 咋办?
可参考之前教程:【白嫖 Cloudflare】之 免费内网穿透,让本地AI服务,触达环球,把内网服务穿透出来。
2.4 推理速率对比
以下是 Ollama 原生调用:
- Ollama 原生调用 -- GPU:
- 第1次调用:3.02秒, token/s:121.90
- 第2次调用:2.84秒, token/s:122.96
- 第3次调用:3.16秒, token/s:122.59
- 第4次调用:2.62秒, token/s:121.59
- 第5次调用:2.68秒, token/s:126.79
- ---
- Ollama 原生调用 -- CPU:
- 第1次调用:36.59秒, token/s:11.59
- 第2次调用:34.16秒, token/s:13.94
- 第3次调用:32.24秒, token/s:12.78
- 第4次调用:40.60秒, token/s:13.08
- 第5次调用:22.18秒, token/s:13.93
复制代码 可见 GPU 推理速率是 CPU 的 10+ 倍!
接入 OneAPI 是方便集成了,但速率会受影响么?
显然的。。。内网穿透,数据都颠末海底隧道走了两圈了,能不慢么?来看看吧:
- Ollama 接入 OneAPI -- localhost调用:
- 第1次调用:3.47秒, token/s:105.99
- 第2次调用:3.44秒, token/s:118.40
- 第3次调用:3.14秒, token/s:109.80
- 第4次调用:2.33秒, token/s:107.97
- 第5次调用:2.98秒, token/s:106.32
- ---
- Ollama 接入 OneAPI -- 域名调用:
- 第1次调用:23.06秒, token/s:11.54
- 第2次调用:3.56秒, token/s:101.78
- 第3次调用:3.67秒, token/s:99.89
- 第4次调用:4.01秒, token/s:94.40
- 第5次调用:3.60秒, token/s:99.56
复制代码 3. vLLM 部署实测
vLLM 只支持从 huggingface/modelscope 等平台下载的模型文件。
考虑到各人访问外网受限,ModelScope 提供了和 huggingface 类似的丝滑体验,我们就从 ModelScope 拉模型。
3.1 Qwen2.5 下载
前往:https://modelscope.cn/models/qwen/Qwen2.5-7B-Instruct
ModelScope 上下载模型有两种方式:
方式一:git lfs
- git lfs install
- git clone https://www.modelscope.cn/qwen/Qwen2.5-7B-Instruct.git
复制代码 方式二:modelscope 命令
- # 先安装ModelScope
- pip install modelscope
- # 下载完整模型
- modelscope download --model qwen/Qwen2.5-7B-Instruct
- # 如果只需下载单个文件
- modelscope download --model qwen/Qwen2.5-7B-Instruct README.md
复制代码 两种方式有什么区别?亲测速率没啥区别,方式二的上风是,可以及时显示下载进度,所以更保举各人用方式二。
不过,这下载速率,相比 Ollma,简直不能忍 |