EP223: Ollama vs vLLM vs SGLang

TL;DR · AI 摘要
Ollama、vLLM、SGLang三大模型引擎各具优势:Ollama适合本地开发,vLLM擅长高并发服务,SGLang优化多轮对话,Claude水印技术通过概率筛选实现内容溯源。
核心要点
- Ollama适用于本地开发,采用FIFO队列和GGUF压缩模型
- vLLM通过PagedAttention实现90%以上GPU利用率
- SGLang的RadixAttention可减少30%多轮对话计算量
结构提纲
按章节快速跳转。
- §引言
揭示容器资源浪费问题并引出模型引擎对比主题
基于FIFO队列和GGUF压缩模型的本地开发方案
通过PagedAttention实现高并发下的GPU利用率优化
RadixAttention缓存机制提升多轮对话处理效率
- ·水印技术
Claude通过概率筛选和秘密密钥实现内容溯源
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- 模型引擎对比
- Ollama
- 本地开发优化
- GGUF压缩模型
- vLLM
- 高并发服务
- PagedAttention
- SGLang
- 多轮对话优化
- RadixAttention
- 水印技术
- 概率筛选
- 秘密密钥
金句 / Highlights
值得收藏与分享的关键句。
vLLM的PagedAttention技术可将GPU利用率提升至90%以上
SGLang的RadixAttention缓存机制减少30%重复计算
Claude水印技术通过秘密密钥筛选候选词实现内容溯源
EP223: Ollama vs vLLM vs SGLang - ByteByteGo Newsletter
EP223: Ollama vs vLLM vs SGLang
ByteByteGo
2026年8月22日
超过80%的容器支出被浪费。以下是解决方法。(赞助内容)
许多团队存在容器过度配置、未充分利用抢占实例且无法识别哪些容器组正在消耗预算的问题。从Datadog获取电子书,内容涵盖针对Kubernetes和ECS环境的五项实用优化方案,包含团队今日即可应用的具体技术。
您将学到如何:
- 精准定位消耗云预算的闲置容器、过度配置的容器组和未使用的集群。
- 通过资源请求、限制和自动化成本建议,合理配置CPU和内存。
- 通过抢占实例和节省计划将成本降低高达90%,并明确每种方案的最佳使用时机。
[获取电子书]
本周系统设计速览:
- Ollama vs vLLM vs SGLang
- Claude的文本水印如何工作?
- 12项AI代理必备技能
- Git工作流:核心命令
- Apache Kafka vs. RabbitMQ
Ollama vs vLLM vs SGLang
要在本地机器上使用开源大模型,您主要有三种选择:Ollama、vLLM和SGLang。但每种引擎处理请求的方式存在显著差异。下图展示了它们的核心差异及技术实现原理。
Ollama:本地用户调用OpenAI兼容API后,请求按先进先出(FIFO)队列排队。随后Ollama运行预量化GGUF模型(一种压缩格式),并将响应返回给用户。
Ollama最适合本地开发、原型设计和笔记本级硬件部署。
vLLM:当大量用户同时访问服务器时,vLLM通过持续批处理将新请求插入当前运行的批处理队列,而非等待当前批处理完成。PagedAttention技术通过存储KV缓存(模型为已处理token保留的内存)实现高效管理。
vLLM最适合高流量服务、最大化GPU利用率和处理数千个并发请求。
SGLang:代理和多轮对话产生的请求存在大量重叠提示。基于前缀感知调度器,通过RadixAttention缓存(一种可复用共享前缀的基数树结构)路由请求,避免重复计算共享前缀。
SGLang最适合AI代理、工具循环、多轮对话及JSON/正则表达式输出场景。
Claude的文本水印如何工作?
Anthropic近期宣布将为文本添加水印以识别AI生成内容。本文基于我对该技术的理解进行说明。
大型语言模型逐词生成文本。在每个步骤中,模型会为下一个可能的词生成概率分布。水印技术通过改变可选词的范围,而非从概率分布中随机采样,实现文本标识。
如何为响应添加水印?
步骤1:模型生成下一个词的概率分布。
步骤2:通常由随机数生成器从候选词中选择。添加水印后,通过带密钥的函数结合密钥和前几个词决定有效候选词范围。
步骤3:对整个响应重复该过程。存在多个合理选择的位置会携带水印信号。
如何检测水印文本?
步骤1:对文本中的每个候选词,基于密钥和前几个词验证其有效性。若词有效则计为匹配。
步骤2:对整篇文本执行该验证。水印文本的匹配率显著更高,整体匹配率可作为AI生成文本的判断指标。
我本人对所有这些AI文本检测技术产生的误判感到相当恼火,尤其是在技术写作领域。
你对AI文本检测有什么看法?你认为AI文本检测是有用的,还是会产生更多问题?
你应该了解的前12项Agent技能
Agent技能是用于教授你的大型语言模型代理新技能的指令和脚本。下图显示了截至2026年8月GitHub上最受欢迎的12个技能仓库。
- Superpowers (obra/superpowers):此技能使代理在编写代码前进行规划。
- skills (mattpocock/skills):Matt Pocock的个人技能集使代理先质疑你的计划。这在代理有时过于温和时很有用。
- andrej-karpathy-skills:Multica AI将Karpathy关于AI编码陷阱的建议提炼成一项技能。
- everything-claude-code:帮助你设置编码代理的技能。当你从零开始使用Claude Code时很有用。
- skills (anthropics/skills):这是Anthropic官方技能。它使代理能够生成Word或PDF等文件输出。
- ui-ux-pro-max-skill:包含教授代理如何避免AI风格设计的指令。
- caveman:Julius Brussee的技能使代理用简短的原始人语言回复。
- ponytail:Dietrich Gebert的技能教授代理如何编写简洁干净的代码。
- agent-skills:Google的Addy Osmani在技能中加入了生产级工程实践。
- graphify (safishamsi/graphify):此技能将代码库转换为知识图谱,使代理更容易导航。
- Understand-Anything:Egonex AI将代码库转换为可视化地图进行探索。
- impeccable (pbakaus/impeccable):此技能使代理在UI打磨方面表现更出色。
轮到你了:你会向这个列表添加哪些技能?
Git工作流:核心命令
Git有许多命令。大多数工作流只使用其中一小部分。导致问题的不是命令本身,而是运行命令后不知道代码所处的位置。
工作目录、暂存区、本地仓库、远程仓库。每个命令都在这些区域之间移动代码。以下是每个命令的作用。
- 保存工作:“git add”将文件从工作目录移动到暂存区。“git commit”将暂存的文件保存到本地仓库。“git push”将提交上传到远程仓库。
- 获取项目:“git clone”将整个远程仓库下载到你的机器。“git checkout”切换到特定分支。
- 同步更改:“git fetch”从远程下载更新但不修改文件。“git merge”整合这些更改。“git pull”同时执行这两项操作。
- 安全网:“git stash”是你的撤销按钮。它临时保存未提交的更改,使你可以在切换上下文时不丢失工作。“git stash apply”将更改恢复。“git stash pop”将更改恢复并删除暂存。
RabbitMQ 是一个消息代理。生产者将消息发布到交换机。这些交换机会根据绑定密钥和模式(direct、topic、fanout)将消息路由到队列。消息被推送给消费者并在确认后删除。它专为任务分配和传统消息传递工作流而设计。
常见的错误是将 Kafka 用作队列,或将 RabbitMQ 用作事件日志。它们是针对不同使用场景设计的工具。
轮到你了:如果必须解释何时不应该使用 Kafka,你会怎么说?