尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

【AI大模型】为什么说从 Ollama 走向 vLLM 是大模型部署的必然之路?看完这一篇你就知道了!!

【AI大模型】为什么说从 Ollama 走向 vLLM 是大模型部署的必然之路?看完这一篇你就知道了!! 前言大型语言模型LLMs正在改变我们与技术的互动方式从聊天机器人到代码助手功能无所不包。但要高效运行这些模型可不是件小事尤其是在需要速度、可扩展性和高吞吐量应用的稳定性时。如果你一直在用Ollama进行本地LLM实验现在想转向vLLM以获得生产级性能这篇文章的主要目的是讲解这两个框架的区别探讨选择正确框架的重要性并提供一步步的指导。1. 为什么选择合适的LLM框架很重要把部署LLM想象成开餐厅。如果只是给小家庭做晚餐家里厨房的基本工具比如Ollama就够用了。但如果是为500人的婚礼提供餐饮你得用工业级设备比如vLLM来应对需求不然就得累垮了。选错LLM应用的框架可能导致•响应慢用户等太久才能得到聊天机器人回复或代码补全体验很差。•成本高GPU内存使用效率低导致云计算账单飙升。•系统崩溃框架无法承受高流量导致宕机。•安全风险敏感环境下因配置不当导致数据泄露。选对框架能确保你的LLM应用快速、成本效益高、可扩展且安全。Ollama适合本地测试、原型开发和注重隐私的项目而vLLM专为高吞吐量、生产级环境设计。了解它们的优势能帮你选出最适合的工具。2. vLLM和Ollama是什么基础知识了解一下Ollama新手友好的LLM运行工具Ollama就像你手机上的一个简单易用的app直观、设置简单。它是一个开源工具旨在让在本地运行LLM变得尽可能简单不管你用的是MacBook、Windows PC还是Linux服务器。核心功能•跨平台支持macOS、Windows和Linux。•CLI和REST API提供简单的命令行工具和与OpenAI兼容的API方便集成。•模型库支持Llama 3、Mistral、Gemma等热门模型可通过注册表下载。•硬件支持支持CPU、NVIDIA GPU和Apple SiliconMetal。•注重隐私数据保存在本地适合医疗或研究等敏感应用。使用场景开发者在笔记本上开发聊天机器人原型或研究者在离线环境下分析私有数据集。vLLM高性能推理引擎vLLM就像一辆赛车为高要求环境下的速度和效率而生。由UC Berkeley的Sky Computing Lab开发vLLM是一个开源库专为高吞吐量LLM推理优化特别适合NVIDIA GPU。核心功能•PagedAttention一种内存管理技术将GPU内存浪费降到4%以下。•Continuous Batching动态处理请求最大化GPU利用率。•可扩展性支持多GPU设置和跨服务器分布式推理。•OpenAI兼容API无缝集成现有工具和工作流。•GPU中心化为NVIDIA GPU和CUDA优化CPU支持有限。使用场景企业部署客服聊天机器人实时处理每分钟数千条查询。3. vLLM和Ollama的区别要选择vLLM还是Ollama你得搞清楚它们的核心差异。以下是详细对比类比•Ollama像自行车简单好用适合短途但不适合高速路。•vLLM像跑车速度快、动力强但需要熟练的司机和好的路GPU基础设施。4. 性能速度、内存和可扩展性在性能上vLLM和Ollama差别很大。我们来分解它们在速度、内存使用和可扩展性上的差异并举例说明。速度•Ollama在消费级硬件上运行小型模型比如7B参数性能不错。比如在16GB RAM的MacBook上运行Mistral 7B单用户约7 token/秒。•vLLM在高吞吐量场景中表现卓越。基准测试显示vLLM在128个并发请求下比Ollama快3.23倍在NVIDIA A100 GPU系统上达到约71请求/秒。例子假设你建一个聊天机器人回复“写一首短诗”。用Ollama单用户可能要2-3秒得到回复。而vLLM通过continuous batching并行处理请求多个用户同时查询也能在1秒内得到回复。内存•Ollama使用标准内存分配对大模型效率较低。13B模型至少需要16GB RAM或GPU内存每个序列完全分配内存限制并发。•vLLM使用PagedAttention将key/value缓存分成小块内存浪费降到4%以下。这让vLLM能在相同硬件上处理更大模型或更多并发请求。例子在NVIDIA A100 GPU上运行Llama 3 8BvLLM因动态内存分配能处理更多并发请求而Ollama为每个请求预留整块内存限制吞吐量。可扩展性•Ollama适合单机设置高并发时比如超过32个同时请求延迟增加吞吐量无提升。•vLLM专为可扩展性设计支持tensor parallelism模型权重分布在多个GPU上和pipeline parallelism计算阶段分布。适合多GPU云虚拟机。例子一个初创公司用单GPU服务器运行Ollama服务小团队内部工具。而一家处理百万用户的科技公司用vLLM在多GPU上每分钟处理数千请求。性能对比表5. 使用场景什么时候用vLLM什么时候用Ollama什么时候用Ollama•原型开发在笔记本上测试新聊天机器人或代码助手。•隐私敏感应用在隔离环境比如政府、医疗或法律运行模型。•低流量工作负载小型团队或个人项目少量用户。•资源受限硬件在没有CUDA的CPU或低端GPU上运行。例子学生用Ollama在MacBook上运行Llama 3做研究项目保持敏感数据离线。什么时候用vLLM•高流量服务聊天机器人或API同时服务数千用户。•大型模型部署像DeepSeek-Coder-V2236B参数这样的大模型跨多GPU。•生产环境需要低延迟和高吞吐量的应用。•可扩展部署多NVIDIA GPU的云设置。例子公司用vLLM在8个A100 GPU的云虚拟机上建实时翻译服务每分钟处理数千次翻译。使用场景决策矩阵6. 开始使用Ollama一步步指南我们来在本地机器上设置Ollama运行Mistral 7B。假设你从零开始。步骤1安装Ollama下载访问Ollama官网下载适用于你的操作系统的安装程序macOS、Windows或Linux。安装 运行安装程序。对于Linux使用curl-fsSL https://ollama.ai/install.sh|sh输出 Ollama安装完成准备使用。步骤2拉取模型下载Mistral 7Bollama pull mistral:7b输出模型4GB下载并存储在/.ollama/models。步骤3运行模型启动模型ollama run mistral:7b输出打开交互式提示。输入讲个笑话。回复为什么稻草人成了励志演讲家因为他在自己的领域里太出色了步骤4使用REST APIOllama提供与OpenAI兼容的API方便集成。以下是Python示例importrequests responserequests.post(http://localhost:11434/api/generate,json{model:mistral,prompt:讲个笑话})print(response.json()[response])输出为什么程序员不用暗黑模式因为亮色模式会吸引bug。步骤5验证设置检查运行中的模型ollama ps输出NAME ID SIZE PROCESS PORT mistral:7b abc1234.1GB running11434工作流图表7. 开始使用vLLM一步步指南vLLM需要更多设置但在GPU支持的系统上性能更优。我们来运行Llama 3 8B。步骤1准备工作硬件NVIDIA GPU支持CUDA比如A100、RTX 4090。软件Python 3.8、NVIDIA驱动、CUDA 11.8和pip。步骤2安装vLLM通过pip安装vLLMpip install vllm输出vLLM及依赖如PyTorch、transformers安装完成。步骤3运行模型服务Llama 3 8Bvllm serve meta-llama/Llama-3-8b--gpu-memory-utilization0.9输出服务器启动地址为http://localhost:8000。步骤4查询模型用Python与vLLM交互fromvllmimportLLM llmLLM(modelmeta-llama/Llama-3-8b)outputllm.generate(vLLM是什么)print(output)输出vLLM是一个开源库用于高效LLM推理通过PagedAttention优化GPU内存continuous batching实现高吞吐量。步骤5测试API使用curl查询OpenAI兼容APIcurl-X POST http://localhost:8000/v1/completions \-HContent-Type: application/json\-d{model: meta-llama/Llama-3-8b, prompt: 你好世界, max_tokens: 50}输出{choices:[{text:你好今天我能帮你什么世界充满可能性我们一起探索吧}]}工作流图表8. 使用Docker Compose设置vLLMDocker Compose能简化vLLM的生产部署。以下是设置方法。步骤1创建Docker Compose文件创建docker-compose.ymlversion:3.8services:vllm:image:vllm/vllm-openai:latest deploy:resources:reservations:devices:-driver:nvidia count:1capabilities:[gpu]ports:-8000:8000environment:-MODEL_NAMEmeta-llama/Llama-3-8b-GPU_MEMORY_UTILIZATION0.9volumes:-./models:/models步骤2运行Docker Composedocker-compose up-d输出vLLM服务器在分离模式下启动可通过http://localhost:8000访问。步骤3测试APIcurl-X POST http://localhost:8000/v1/completions \-HContent-Type: application/json\-d{model: meta-llama/Llama-3-8b, prompt: Docker是什么, max_tokens: 50}输出{choices:[{text:Docker是一个容器化平台让应用在不同环境中以隔离依赖的方式一致运行。}]}步骤4监控容器检查容器状态docker-compose ps输出Name Command State Ports vllm_vllm_1/usr/bin/vllm serve...Up0.0.0.0:8000-8000/tcpDocker Compose工作流图表9. 处理故障和调整部署LLM可能会遇到问题。以下是Ollama和vLLM的常见问题及解决方法。Ollama故障内存不足 在16GB RAM系统上运行13B模型会导致崩溃。解决 使用更小模型比如7B或启用交换空间sudo fallocate-l 8G/swapfile sudo chmod600/swapfile sudo mkswap/swapfile sudo swapon/swapfileGPU不兼容老旧GPU可能不支持Ollama的CUDA要求。解决切换到CPU模式OLLAMA_NO_GPU1 ollama run mistral或升级硬件。模型下载问题网络慢或服务器超时。解决重试ollama pull mistral或换其他模型。vLLM故障CUDA错误缺少或不兼容的NVIDIA驱动。解决用nvidia-smi检查驱动版本确保CUDA 11.8。从NVIDIA官网更新驱动。高内存使用大模型耗尽GPU内存。解决降低--gpu-memory-utilization比如0.8或使用quantization见第12节。API超时高并发压垮服务器。解决增加批次大小--max-num-batched-tokens 4096或添加更多GPU。示例修复如果vLLM因CUDA错误崩溃验证驱动nvidia-smi输出-----------------------------------------------------------------------------|NVIDIA-SMI525.60.13Driver Version:525.60.13CUDA Version:12.0||-----------------------------------------------------------------------------||GPU Name Persistence-M|Bus-Id Disp.A|Volatile Uncorr.ECC||Fan Temp Perf Pwr:Usage/Cap|Memory-Usage|GPU-Util Compute M.||||0NVIDIA A100 40GB Off|00000000:00:04.0Off|0||N/A 35C P0 43W/300W|0MiB/40536MiB|0%Default|-----------------------------------------------------------------------------10. 多GPU内存共享 vs. NGINX负载均衡为高吞吐量应用扩展vLLM需要选择多GPU内存共享还是NGINX负载均衡。我们来比较这两种方式。多GPU内存共享vLLM的tensor parallelism和pipeline parallelism将模型权重和计算分布到多个GPU上共享内存以处理大模型或高并发。工作原理Tensor parallelism将模型层分配到不同GPUpipeline parallelism分割计算阶段。PagedAttention确保高效内存分配。优点处理超大模型比如236B参数。最大化GPU利用率内存浪费极低。缺点需要高速GPU互连比如NVLink。设置和配置复杂。例子在8个A100 GPU上部署DeepSeek-Coder-V2236Bvllm serve DeepSeek/DeepSeek-Coder-V2-Instruct--tensor-parallel-size8输出模型跨所有GPU运行处理请求并行高吞吐量。NGINX负载均衡NGINX将请求分发到多个vLLM实例每个实例运行在单独的GPU或服务器上。工作原理NGINX作为反向代理根据负载或轮询策略将请求路由到可用vLLM服务器。优点设置比tensor parallelism简单。通过添加更多服务器实现水平扩展。缺点每个vLLM实例需要自己的模型副本增加内存使用。对超大模型效率较低。NGINX配置示例nginx.confhttp{upstream vllm_servers{server vllm1:8000;server vllm2:8000;}server{listen80;location/{proxy_pass http://vllm_servers;}}}启动NGINXnginx-c/path/to/nginx.conf输出NGINX将请求路由到vllm1:8000和vllm2:8000平衡负载。比较表推荐对于大模型比如70B参数在带NVLink的多GPU服务器上使用内存共享。对于较小模型或通过加服务器扩展更可行时用NGINX。工作流图表11. 其他考虑安全性、社区和生态系统安全性Ollama本地运行数据暴露风险小。适合无网络连接的隔离系统比如政府。检查后台服务ollama serve以确保敏感环境安全。vLLM支持安全部署但云设置需小心配置。使用HTTPS和API认证配合NGINXserver{listen443ssl;ssl_certificate/etc/nginx/ssl/cert.pem;ssl_certificate_key/etc/nginx/ssl/key.pem;location/{proxy_pass http://vllm_servers;}}社区和支持Ollama社区活跃文档丰富模型注册表用户友好。适合初学者和小型项目。vLLM社区在增长由UC Berkeley和Red Hat支持。更技术化但适合企业GitHub讨论活跃。生态系统Ollama可与OpenWebUI集成提供类似ChatGPT的界面。支持多模态模型比如Llama 3.2 Vision处理文本和图像。vLLM与Hugging Face集成支持高级解码比如beam search优化用于LangChain或LlamaIndex等生产管道。12. 高级话题量化和多模态模型量化量化通过降低数值精度比如从FP16到INT8减少模型大小和内存使用。两个框架都支持但有差异Ollama 支持通过gguf文件进行4位和8位量化。示例ollama pull mistral:7b-q4输出 下载量化后的Mistral 7B模型约2GBFP16为4GB。vLLM 支持AWQ、GPTQ等量化方式加速GPUvllm serve meta-llama/Llama-3-8b--quantization awq好处 减少内存占用支持在有限GPU上运行更大模型。多模态模型Ollama 支持视觉语言模型如Llama 3.2 Vision。示例ollama run llama3.2:vision输出 处理文本和图像输入比如“描述这张图片”配合本地文件。vLLM 多模态支持有限但扩展中比如LLaVA模型。示例vllm serve llava-hf/llava-13b--trust-remote-code注意 视觉处理需额外设置。量化比较表13. 结论为LLM需求做出正确选择从Ollama过渡到vLLM就像从家里厨房搬到商业厨房。Ollama适合本地实验、注重隐私的应用和资源受限环境。它的简单性和跨平台支持非常适合初学者和小型项目。vLLM凭借PagedAttention和continuous batching专为高吞吐量、生产级应用打造速度和可扩展性至关重要。选择Ollama用于原型开发、离线应用或基于CPU的设置。选择vLLM用于高流量服务、大型模型或多GPU部署。最后为什么要学AI大模型当下⼈⼯智能市场迎来了爆发期并逐渐进⼊以⼈⼯通⽤智能AGI为主导的新时代。企业纷纷官宣“ AI ”战略为新兴技术⼈才创造丰富的就业机会⼈才缺⼝将达 400 万DeepSeek问世以来生成式AI和大模型技术爆发式增长让很多岗位重新成了炙手可热的新星岗位薪资远超很多后端岗位在程序员中稳居前列。与此同时AI与各行各业深度融合飞速发展成为炙手可热的新风口企业非常需要了解AI、懂AI、会用AI的员工纷纷开出高薪招聘AI大模型相关岗位。最近很多程序员朋友都已经学习或者准备学习 AI 大模型后台也经常会有小伙伴咨询学习路线和学习资料我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频全系列的学习资料这些学习资料不仅深入浅出而且非常实用让大家系统而高效地掌握AI大模型的各个知识点。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】AI大模型系统学习路线在面对AI大模型开发领域的复杂与深入精准学习显得尤为重要。一份系统的技术路线图不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点还能提供一条高效、有序的学习路径。但知道是一回事做又是另一回事初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性在这基础上找到高质量的学习资源不浪费时间、不走弯路又是重中之重。AI大模型入门到实战的视频教程项目包看视频学习是一种高效、直观、灵活且富有吸引力的学习方式可以更直观地展示过程能有效提升学习兴趣和理解力是现在获取知识的重要途径光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。海量AI大模型必读的经典书籍PDF阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。600AI大模型报告实时更新这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。AI大模型面试真题答案解析我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
返回列表