Ollama适合什么,不适合什么

Ollama适合个人工作站、开发测试和小团队快速建立本地模型API。它降低模型下载、量化格式和启动参数的门槛,但不应因此省略认证、容量规划和版本记录。需要严格SLA、高并发调度或复杂多卡并行时,还应评估vLLM、SGLang等服务框架。

建立持久化目录

先确认GPU容器环境正常:

nvidia-smi
docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi
sudo mkdir -p /data/ollama/models
sudo chown -R $(id -u):$(id -g) /data/ollama
df -h /data/ollama

模型下载可能先写临时文件,磁盘不要只按最终文件大小预留。目录应位于本地SSD或性能明确的共享存储;低速机械盘会显著延长模型加载。

启动GPU容器

```bash docker pull ollama/ollama:latest docker image inspect ollama/ollama:latest --format '{{index .RepoDigests 0}}'

docker run -d --name ollama \ --restart unless-stopped \ --gpus all \ -p 127.0.0.1:11434:11434 \ -v /data/ollama/models:/root/.ollama \ ollama/ollama:latest

docker logs -f --tail 100 ollama ```

初次试用可以使用latest,但验收后应保存镜像摘要或改为明确版本。端口先绑定回环地址,防止局域网内任何设备未经认证调用。

下载并运行一个可承载的模型

docker exec -it ollama ollama pull qwen3:8b
docker exec -it ollama ollama list
docker exec -it ollama ollama run qwen3:8b

标签中的8B表示参数规模,不代表文件一定使用BF16。Ollama仓库通常提供量化模型,不同量化级别的容量和质量不同。记录 `ollama show qwen3:8b` 输出与模型摘要,避免日后同名标签更新后无法复现。

验证API

```bash curl -sS http://127.0.0.1:11434/api/tags | python -m json.tool

curl -sS http://127.0.0.1:11434/api/chat \ -H 'Content-Type: application/json' \ -d '{"model":"qwen3:8b","stream":false,"messages":[{"role":"user","content":"解释显存和内存的区别。"}],"options":{"temperature":0.2,"num_ctx":4096}}' \ | python -m json.tool ```

再运行流式请求,确认客户端能逐行解析JSON。业务程序不要假设Ollama原生接口与OpenAI接口字段完全一致。

怎样判断是不是GPU推理

请求运行时在另一个终端观察:

watch -n 1 nvidia-smi
docker exec ollama ollama ps
docker logs ollama 2>&1 | tail -n 100

应看到Ollama进程占用GPU显存,并在生成期间产生利用率。如果模型一部分落到CPU,仍可能看到GPU占用,但速度明显受系统内存带宽影响。`ollama ps`中的处理器分配信息比只看一次nvidia-smi更有用。

上下文为何导致突然变慢或OOM

权重加载后占用相对固定,KV Cache随上下文增长。模型刚启动能回答短问题,不代表32K上下文仍能完全放入GPU。分别以2K、8K、16K测试,记录显存、首响应和生成速度。多人并发时还要计算多个请求的缓存占用。

优先降低 `num_ctx` 和并发,再考虑更小模型或更强量化。把模型部分卸载到CPU可以换取容量,但不应再宣称为“纯GPU性能”。

允许局域网访问之前

Ollama原生端口不应直接暴露互联网。局域网服务也建议置于Nginx或API网关后,增加TLS、访问密钥、来源限制、请求大小、超时和并发限制。修改监听地址后,用防火墙只允许业务网段,并从未授权主机验证确实无法访问。

常见问题

  • 重建容器后重新下载:模型卷挂载路径不正确或权限不匹配。
  • 容器看不到GPU:先回到NVIDIA Container Toolkit最小CUDA测试。
  • 生成速度异常低:检查是否发生CPU卸载、上下文过长或GPU降频。
  • 模型不存在:使用 `ollama list` 核对完整标签,不凭网页标题猜测。
  • API连接中断:检查反向代理的流式缓冲和超时设置。

最后执行一次容器删除与重建,确认模型无需重新下载、API恢复、GPU仍可见,才算持久化配置真正有效。

来源、翻译与版权说明

来源:网昱原创。第三方内容版权归原作者或发布机构所有;本站仅在许可证或明确授权允许时提供本地原文。

原文语言
ZH-CN
原文更新时间
未提供
许可证
未登记