【技术底稿 24】Ollama + GPU 踩坑最终篇:从 CPU 硬扛到 GPU 加速,长文本向量化通关实录
昨天下午 5 点到晚上 10 点半5 个半小时代码一行没改全是环境的坑。今天换模型、开 GPU长文本向量化从 “超时报错” 到 “几秒返回”。这篇是昨天的收尾也是今天的答案。一、前言昨天那篇《Ollama Docker Ubuntu 部署踩坑实录》停在了 “网络通了参数还在调”。今天我把 “调” 的结果亲手验证出来了。本文记录从 CPU 硬扛到 GPU 加速的完整过程以及长文本向量化的最终解决方案。不绕弯子只给结论、数据和可复用的经验。二、昨天的问题今天的答案表格问题昨天状态今天方案结果向量模型超限nomic-embed-text 报错 input length exceeds context length上限 2048换 qwen3-embedding:0.6b32K 上下文✅ 长文本不再报错Ollama 纯 CPU 运行显卡闲置CPU 拉满推理超时重装 GPU 版 OllamaDocker Compose nvidia-container-toolkit✅ GPU 显存占用 1.26GB长文本处理超时 / 500 错误模型 GPU 双升级✅ 3597 字符3-5 秒返回三、关键验证数据测试环境操作系统Ubuntu 22.04显卡NVIDIA GeForce MX1502GB 显存Ollama 部署方式Docker Compose 声明 GPU 资源等价--gpus all模型qwen3-embedding:0.6b测试结果表格指标数据输入文本长度3597 字符输出向量维度1024 维GPU 显存占用1264 MiB处理时间约 3-5 秒状态成功无报错nvidia-smi截图关键信息textGPU-Util: 0% Memory-Usage: 1270MiB / 2048MiB Processes: /usr/bin/ollama 1264MiB显存占用从 0 飙升到 1.26GBOllama 进程清晰可见 —— 这是 GPU 在工作的铁证不是 “感觉快了”。四、经验总结不废话版1. 向量模型要按场景选表格模型上下文向量维度适合场景nomic-embed-text2048768短文本、快速验证qwen3-embedding:0.6b327681024长文章、RAG 知识库入库你爬一篇 CSDN 长文nomic 会直接报错换 qwen3 就丝滑入库。选型定生死。qwen3-embedding:0.6b 对中文支持更友好显存占用控制得很好2G 显存也能跑起来。2. Ollama 的 GPU 支持Docker 是最稳的路径之前手动下载的ollama-linux-amd64.tar.zst是纯 CPU 版本本身就不包含 NVIDIA GPU 支持所以无论怎么装驱动、改配置它都永远只会用 CPU 跑。这是最隐蔽的 “先天缺陷”。GPU 加速 →Docker Compose 部署 Ollama 声明 nvidia GPU 资源等价--gpus all直接用ollama/ollamaDocker 镜像配合 Compose 的 GPU 声明一次到位再也不用手动配OLLAMA_HOST、num_ctx、OLLAMA_CONTEXT_LENGTH这些参数。完整docker-compose.yml片段bash运行version: 3.5 services: ollama: image: ollama/ollama:latest container_name: ollama restart: always ports: - 11434:11434 volumes: - ollama_data:/root/.ollama deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] # Docker Compose 声明 GPU 资源等价 --gpus all networks: - milvus_network volumes: ollama_data:3. 避坑提醒nvidia-container-toolkit是必须的前置依赖要让 Docker 容器能调用 GPU宿主机必须提前安装nvidia-container-toolkit否则容器启动会报错无法调用 GPU。4.nvidia-smi是唯一不会骗人的验证方式“感觉快了” 可能是错觉显存占用 0才是真正的 GPU 加速。今天实测1270MiB铁证如山。5. 技术问题的终点不是 “感觉快了”是 “看到数据了”昨天5 个半小时代码一行没改全是环境的坑今天1 小时模型一换GPU 一开通关五、最终结论昨天的坑一个都没白踩。今天这条路你可以直接复用长文本向量化 → 用qwen3-embedding:0.6bGPU 加速 → Docker 部署 Ollama --gpus all验证 →nvidia-smi看显存占用六、最后昨天折腾 5 个半小时今天通关 1 小时。没有白踩的坑也没有白写的代码。文章会过时但显卡不会白买。 系列导航【人生底稿 01】农村少年1995–2005【技术底稿】0137岁老码农用4台机器搭了套个人DevOps平台【产品底稿01】37 岁 Java 老码农用 Java 搭了个 AI 写作助手把自己 14 年技术文章全喂给了 AI