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大模型路上走的远一点。

相关推荐
DeepSeek忠实粉丝17 小时前
Deepseek篇--阿里QwQ-325b性能比肩Deepseek满血版
人工智能·程序员·llm
硬核隔壁老王18 小时前
AI Agent从概念到实战全面解析(三):AI Agent 运作机制与大模型协同
人工智能·程序员·llm
LLM大模型18 小时前
LangChain篇-自定义RAG加载器
人工智能·程序员·llm
LLM大模型18 小时前
LangChain篇-自定义会话管理和Retriever
人工智能·程序员·llm
6confim20 小时前
超越代码的未来:对话Cursor CEO,AI时代工程师的终极进化
llm·cursor·trae
阿里云大数据AI技术21 小时前
DistilQwen-ThoughtX蒸馏模型在PAI-ModelGallery的训练、评测、压缩及部署实践
大数据·开源·llm
Smaller、FL1 天前
介绍MCP的背景及流程
人工智能·自然语言处理·llm·deepseek·mcp
玩转AGI1 天前
面试篇-一文搞定 Agent
人工智能·程序员·llm
DeepSeek忠实粉丝1 天前
Deepseek篇--开源技术3FS & smallpond详解
人工智能·程序员·llm