ByteByteGo Newsletter

EP223: Ollama vs vLLM vs SGLang

8.5内容质量
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%多轮对话计算量

结构提纲

按章节快速跳转。

  1. 揭示容器资源浪费问题并引出模型引擎对比主题

  2. ·Ollama架构

    基于FIFO队列和GGUF压缩模型的本地开发方案

  3. ·vLLM特性

    通过PagedAttention实现高并发下的GPU利用率优化

  4. ·SGLang创新

    RadixAttention缓存机制提升多轮对话处理效率

  5. Claude通过概率筛选和秘密密钥实现内容溯源

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • 模型引擎对比
    • Ollama
      • 本地开发优化
      • GGUF压缩模型
    • vLLM
      • 高并发服务
      • PagedAttention
    • SGLang
      • 多轮对话优化
      • RadixAttention
    • 水印技术
      • 概率筛选
      • 秘密密钥

金句 / Highlights

值得收藏与分享的关键句。

#模型推理#AI引擎#大模型#系统设计
打开原文

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,你会怎么说?