Ollama vs. vLLM:Java工程师的AI部署血泪史

  1. 摸鱼摸到AI组 - 这锅甩不开

    春节期间的Deepseek火爆出圈后,我也跟风体验了一把。虽然常遇到服务器繁忙,但它的生辰八字算五行功能确实能提供一些参考。节后回归工作岗位,原本以为上半年就是常规的运维工作------维护系统、处理生产问题,甚至盘算着"喝茶等BUG"的悠闲日子。

    然而元宵节后风向突变:各大公司纷纷宣布接入Deepseek赋能业务,这股浪潮很快卷到了我们公司。作为传统运维,我本以为AI大模型这种高大上的东西与我无关,便继续埋头熟悉业务系统。

    转折点出现在模型部署阶段: 小领导作为项目负责人,尝试在CPU机器上用Ollama部署deepseek-32b,结果生成token的速度堪比"蜗牛爬山",一个简单问题要等待数分钟才能得到完整响应。这时公司突然调拨了一台8卡A100的服务器!通过紧急查阅资料,我们决定采用Docker+Ollama的方案进行部署。 依稀记得周五时候小领导给我说,下周一早上机器就能到位,咱们周一下午要落地deepseek满血版,公司领导的紧急任务,说"你来弄吧"。

  2. Ollama落地deepseek满血版 - 蹭到涮羊肉

    输入nvidia-smi的那一刻,犹如展开了一张神秘的GPU地图------显存占用、算力版本等关键信息跃然屏上,这是开启AI大模型之旅的第一道仪式。

    验证完显卡配置后,翻阅了几篇技术文档,意外发现Ollama的部署竟如此简单:安装Docker、配置NVIDIA Container Toolkit,随后只需一行命令,服务便轻松拉起。这种极简的部署体验,彻底打破了我对AI基础设施的复杂想象。

    bash 复制代码
    docker run -d --gpus=all -e -v /dockerdata/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:latest
    docker exec -it ollama ollama run deepseek-r1:671b

    令人惊喜的是,这台机器的带宽性能远超预期------404GB的大型模型以40MB/s的高速稳定传输,仅用不到3小时就完成了安装部署。随后在Dify平台上的配置工作也进展顺利,原计划下午交付的首个任务竟在午前就圆满完成。

    团队为此获得了领导的犒赏,晚上一起享用了涮羊肉。美食当前,大家都暗下决心要更加努力工作。

    本以为项目可以暂告一段落,能稍作休整品茶放松。然而随着Dify平台新增文档分析功能后,一个意外情况出现了:领导上传的文档导致deepseek-r1:671b模型因上下文token超长未截断而报错,最终从缓存中卸载。经过长时间排查发现问题根源后,我们果断切换至70b模型(蒸馏量化版),不仅完美解决了保存问题,还意外获得了更高的token吞吐效率。

    后来了解到ollama对模型进行了量化,且性能没有vllm好,因此切换vllm部署。

  3. vllm落地大模型

    在完成领导交代的紧急任务后,经过深入调研,领导指出当前基于Ollama的方案适合个人研究,企业级建议切换至vLLM部署架构。为此,我系统性地梳理了GPU硬件驱动、CUDA计算架构、cuDNN加速库以及PyTorch框架之间的技术栈关系。

    经过多方案比选,最终确定采用vLLM官方Docker镜像进行部署,该方案不仅完美解决了复杂的Python环境依赖问题,还实现了计算资源的标准化管理,显著提升了部署效率和系统可靠性。

    依旧是一行极简的命令就完成vllm部署,当然由于满血版显存不够(cuda报错都快怀疑自我了,最后发现ollama是量化版本,vllm加载官方满血版本,显卡不够用。后面又加载了满血版的其他量化版,token越界问题存在),因此加载的是70b蒸馏未量化版本。结果呢,出乎意料,一个字:"快"。

    sql 复制代码
     docker run -d \ 
     --restart always \ 
     --name vllm \ 
     --gpus=all \ 
     --ipc=host \ 
     --shm-size 4g \ 
     --ulimit memlock=-1 \ 
     -v /dockerdata/vllm/models:/root/models \ 
     -v /etc/localtime:/etc/localtime:ro \ 
     -e TZ=Asia/Shanghai \ 
     -p 8000:8000 \ 
     vllm/vllm-openai \ 
     --model /root/models/DeepSeek-R1-Distill-Llama-70B \ 
     --served-model-name DeepSeek-R1-Distill-Llama-70B \ 
     --gpu-memory-utilization 0.95 \ 
     --api-key *****-****-****-****-******** \ 
     --trust-remote-code
  4. 应用落地

    由于公司领导对AI大模型场景落地比较关注,我们迅速完成了RAG知识库的搭建,部署了基于Dify的智能问答系统,并接入了部分业务场景数据,实现了初步的技术验证。

    然而,这仅仅是在AI大模型领域探索的第一步。面对这个快速发展的技术领域,越来越多的知识要学习,system prompt、user prompt、AI Agent、agent tools、function calling、MCP,python的langchain框架、java的spring ai alibaba框架。

    希望自己有机会能在AI大模型路上走的远一点。

相关推荐
江屿风4 小时前
【Plain Language Large Model】【大语言模型底层原理全解析:从Token生成到智能体演进】流食般投喂
人工智能·笔记·语言模型·llm·json·token·聊天模板
databook4 小时前
让 LLM 输出不再失控:用 Pydantic 校验大模型输出
人工智能·python·llm
桃西西呀5 小时前
嘴替鸭小程序是怎么看懂一句话的:本地规则 + 大模型的混合引擎拆解
人工智能·llm·ai编程
xiezhr6 小时前
你的WorkBuddy不好用,大概率是这些设置没设好
llm·aigc·agent
MoonOut17 小时前
LLM | 大模型训练 / 部署语境下的常用显卡
llm
桃西西呀20 小时前
饭桌上又卡壳了?我用 TRAE 写了个嘴替鸭,把回话提前备好
人工智能·llm·ai编程
神也畏惧菠萝1 天前
Coze 工作流数据库 Day06:架构与高级循环控制的深度技术分析
数据库·架构·llm·coze·coze数据库·数据库流程结构
合尘猫1 天前
给 AI 客服加权限边界:12 项自查清单与一次越权测试
人工智能·安全·llm
虎鲸不是鱼1 天前
【虎鲸进化论 41】AI 的盲区清单:责任、利害、定义、关系、最后一公里与主体性
人工智能·自动化·大模型·llm·自进化agent
ZhengEnCi1 天前
多 Agent 系统如何复用 KV 缓存-前缀对齐比缓存开关更重要
人工智能·性能优化·llm