原文:www.oddmeta.net/archives/13…
用Ollama 对 Gemma3多模态27B版本做功能、性能测试
谷歌刚刚推出的开放权重LLM:Gemma 3。它有四种大小,10亿、40亿、120亿和270亿个参数,有基础(预训练)和指令调优版本。Gemma 3 MultiModel人如其名,支持多模式!40亿、12亿和270亿参数模型可以处理图像和文本,而1B变体仅处理文本。 今天咱来试试看。
一、硬件环境
租的AutoDL的GPU服务器做的测试 •软件环境 PyTorch 2.5.1、Python 3.12(ubuntu22.04)、Cuda 12.1 •硬件环境 ○GPU:RTX 4090(24GB) * 2 ○CPU:64 vCPU Intel(R) Xeon(R) Gold 6430 ○内存:480G(至少需要382G) ○硬盘:1.8T(实际使用需要380G左右)
二、虚拟环境及vllm安装
conda create --prefix=/root/autodl-tmp/jacky/envs/vllm-gemma3 python==3.12.3 conda activate /root/autodl-tmp/jacky/envs/vllm-gemma3/ pip install vllm
三、安装Day0 transformers
Gemma3依赖一些Google新提供的transformers的接口,因此必须先更新一下transformers。 pip install git+github.com/huggingface… 建议走一下github加速器:ghfast.top pip install git+ghfast.top/https://git…
三、模型下载
-
下载保存路径 export HF_HOME="/root/autodl-tmp/HF_download"
-
科学上网代理 setproxy.py代码:
import subprocess
import os
result = subprocess.run('bash -c "source /etc/network_turbo && env | grep proxy"', shell=True, capture_output=True, text=True)
output = result.stdout
for line in output.splitlines():
if '=' in line:
var, value = line.split('=', 1)
os.environ[var] = value
执行 python setproxy.py 设置代理环境变量
- 国内镜像 export HF_ENDPOINT=hf-mirror.com
然后再下载:
huggingface-cli download --resume-download unsloth/gemma-3-27b-it-bnb-4bit --include "*"
共16个G多一点。慢慢来。
四、模型运行
用ollama来运行gemma3
运行前请确保ollama服务已启动,若未启动的话,请在另一个命令行中先启动一下:ollama serve
ollama run gemma3:27b
问题
- this model is not supported 若是发现报错如下
Error: llama runner process has terminated: this model is not supported by your version of Ollama. You may need to upgrade
解决方案 升级ollama
curl -fsSL https://ollama.com/install.sh | sh
用llama.cpp来运行gemma3
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone github.com/ggerganov/l…
cmake llama.cpp -B llama.cpp/build
-DBUILD_SHARED_LIBS=ON -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-quantize llama-cli llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
[失败]用vllm来运行gemma3
vllm serve unsloth/gemma-3-27b-it-bnb-4bit --max-model-len 5680 失败原因:vllm说,gemma3是什么鬼,我还不认识呐。
五、启动Open WebUI
注:ollama使用的是11434端口
#!/usr/bin/env bash
export DATA_DIR="$(pwd)/data"
export ENABLE_OLLAMA_API=False
export ENABLE_OPENAI_API=True
export OPENAI_API_KEY="dont_change_this_cuz_openai_is_the_mcdonalds_of_ai"
export OPENAI_API_BASE_URL="http://127.0.0.1:11434/v1" # <--- 需与ktransformers/llama.cpp的API配置匹配
#export DEFAULT_MODELS="openai/foo/bar" # <--- 保留注释,此参数用于`litellm`接入
export WEBUI_AUTH=False
export DEFAULT_USER_ROLE="admin"
export HOST=127.0.0.1
export PORT=3000 # <--- open-webui网页服务端口
export ENABLE_TAGS_GENERATION=False
export ENABLE_AUTOCOMPLETE_GENERATION=False
# 或许目前需手动在界面禁用该功能???
export TITLE_GENERATION_PROMPT_TEMPLATE=""
open-webui serve \
--host $HOST \
--port $PORT
六、API测试
启用API转发
ssh -CNg -L 8080:127.0.0.1:8000 root@connect.nmb1.seetacloud.com -p 22305
启用Open WebUI转发
ssh -CNg -L 3000:127.0.0.1:3000 root@connect.nmb1.seetacloud.com -p 22305
测试Completion API
curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/QwQ-32B-AWQ",
"prompt": "San Francisco is a",
"max_tokens": 7,
"temperature": 0
}'
测试Chat Completion API
curl http://localhost:8000/v1/chat/completions
-H "Content-Type: application/json"
-d '{ "model": "Qwen/QwQ-32B-AWQ", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Who won the world series in 2020?"} ] }'