Gemma 4 的多 token 预测:LLM 推理加速不该只盯着量化

如果你最近还在把“LLM 推理优化”等同于量化,我建议停一下。 量化当然重要,尤其是本地部署和消费级 GPU 场景。但 Google 刚发的 Gemma 4 多 token 预测(Multi-Token Prediction, MTP)让我更确信一件事:下一轮推理加速的主战场,不只是在“把模型压小”,而是在减少大模型被调用的次数。 Google 在官方博客里说,Gemma 4 通过 MTP drafters 在推理阶段最高可以做到 up to 3x faster。这个数字本身很抓眼球,但我更关心它背后的工程含义:如果草稿器能一次猜中多个后续 token,大模型就不必老老实实一个 token 一个 token 地跑完整前向传播。 说白了就是:以前是大模型每吐一个字都要“亲自审批”;现在是小模型先写一小段,大模型批量盖章。 为什么“一个 token 一次前向”这么浪费 自回归 LLM 的默认解码方式很朴素:给定上下文,预测下一个 token;把这个 token 拼回上下文,再预测下一个。这个循环看起来合理,但对硬件很不友好。 每生成一个 token,模型都要访问大量权重。对于 27B、70B 这种规模,瓶颈往往不是矩阵乘法算不动,而是显存带宽和调度开销被小步循环吃掉。你可以把它理解成:GPU 明明适合一次搬一大车货,结果我们让它每次只送一个快递。 这也是为什么我之前写 DFlash + DDTree 投机解码 时,最看重的不是某个 benchmark 数字,而是“平均接受长度”。只要一次验证能接受更多 token,大模型前向次数就会下降,吞吐自然上来。 Gemma 4 的 MTP 走的是同一条大方向,但实现路径更靠近模型训练本身。 传统 speculative decoding 通常需要一个独立的小 draft model。经典论文 Speculative Sampling 的思路就是:小模型先生成候选,大模型并行验证,最后用修正过的采样过程保证输出分布不变。这套方法很漂亮,但工程上有两个麻烦:你要维护两个模型,还要处理 tokenizer、KV cache、调度和显存布局。 MTP 的反直觉之处在于,它不一定非要靠“另一个完整小模型”来猜。Meta 的论文 Better & Faster Large Language Models via Multi-token Prediction 提出,在训练时让模型不只预测下一个 token,而是同时预测未来多个 token。技术上可以看成在共享 trunk 上接多个输出 head,训练目标从“只看一步”扩展到“顺手看几步”。 ...

May 6, 2026 · 2 min · Hypho

Open Design 能替代 Claude Design 吗?把编码 Agent 变成设计引擎的工程边界

如果你已经习惯让 Claude Code 或 Codex 写业务代码,那么下一个很自然的问题是:能不能让同一个 Agent 顺手把产品原型、落地页、PPT、甚至一段演示视频也做出来? 我以前对这类“AI 做设计”的项目比较警惕。原因很简单:很多工具只是把 prompt 包了一层漂亮 UI,最后产物看起来像模板站,改两轮就塌。但最近 Hacker News 上的 Open Design 让我多看了几眼。它不是另一个单点生成器,而是把 Claude Code、Codex、Cursor Agent、Gemini CLI、Qwen、Copilot CLI 等命令行编码 Agent 当成“设计引擎”,再叠一层本地优先的技能、设计系统、沙盒预览和导出链路。项目 README 直接把自己定位成 Claude Design 的开源替代。 这句话听起来很大,但工程上真正有意思的不是“替代 Claude Design”,而是它暴露了一个更具体的搜索问题:设计工作流到底应该由专门的设计模型驱动,还是由已经会读文件、改代码、跑命令的 Coding Agent 驱动? 我的判断是:Open Design 不一定会马上成为生产级设计平台,但它代表了一条很值得关注的路线——把设计从“生成一张图”拉回到“生成一个可运行、可审查、可导出的工程项目”。 它不是文生图工具,而是把设计任务工程化 Open Design 的 README 里有几个关键词很关键:local-first、BYOK、agent CLI auto-detect、Skills、Design Systems、sandboxed preview、HTML/PDF/PPTX/MP4 export。翻成人话就是:它不试图自己训练一个万能设计模型,而是把你机器上已有的 Agent CLI 调起来,让 Agent 在一个受控项目里生成和修改设计资产。 这和很多 AI 设计产品的差别很大。后者通常是“输入一句话,得到一个不可解释的视觉结果”;Open Design 更像是“给 Agent 一个设计系统、任务说明和预览环境,让它持续修改文件,直到产物可运行”。 说白了,它把设计任务变成了一种软件工程任务。 这件事的价值在于可迭代性。一个登录页、一份销售 deck、一个移动端交互原型,本质上不只是图片,而是一组结构、样式、文案、资源和导出规则。Coding Agent 已经擅长处理这些东西:读项目、改组件、运行构建、根据错误日志修复。Open Design 做的是把这些能力迁移到设计场景。 这里我会联想到之前写过的 Claude Code Routines:真正稳定的 Agent 工作流,很少靠一次神奇 prompt,而是靠可复用步骤、上下文约束和反馈循环。Open Design 的 Skills 和 Design Systems,本质上也是在给 Agent 建立可复用的“套路”。 ...

May 4, 2026 · 2 min · Hypho

PyTorch Lightning 供应链攻击复盘:AI 训练依赖为什么不能只靠 pip install

如果你在训练脚本里写过 pip install lightning,这次事件就不只是安全圈的新闻。它提醒的是一个更难听的事实:很多 AI 团队的“训练基础设施”,其实建立在一条几乎没人认真审计的依赖链上。模型代码、数据集、实验追踪、云端凭证都在同一个环境里跑,任何一个热门 Python 包被污染,攻击面都会比普通 Web 服务更肥。 HN 上这条 Semgrep 披露 很快冲到前排,原因也不复杂:被点名的是 Lightning 生态里的 lightning 包。Semgrep 的研究文章称,PyPI 上 lightning 2.6.2 和 2.6.3 在 2026 年 4 月 30 日被发布为恶意版本,导入时会执行隐藏在 _runtime 目录里的混淆 JavaScript payload,尝试窃取凭证、认证 token、环境变量和云端 secret,并带有 Shai-Hulud 风格的仓库投毒行为。原文细节见 Semgrep: Shai-Hulud Themed Malware Found in the PyTorch Lightning AI Training Library。 我不想把这篇写成“某某包又中招了”的快讯。快讯今天看完,明天就忘。更值得拆的是:为什么 AI/ML 工程里的同类事故破坏力特别大?以及,一个现实团队到底应该改哪几件事。 先把边界说清楚。PyTorch Lightning 本身是一个真实、活跃且规模很大的开源项目,GitHub 仓库 Lightning-AI/pytorch-lightning 有 3 万级 stars,近期仍有提交;PyPI 上当前可见的 lightning 项目页 也显示稳定版本和维护者信息。这类事件的重点通常不是“项目没价值”,而是“发布链路或账号链路被污染后,价值越大的包越适合被当成入口”。 说白了,热门依赖就是最好的投递渠道。 AI 训练环境为什么更危险?第一,它天然带 secret。为了拉数据、写 S3、连实验平台、访问模型 API、推送镜像,训练机里经常有 AWS_ACCESS_KEY_ID、Hugging Face token、Weights & Biases key、GitHub token、数据库只读账号,甚至还有企业内部对象存储凭证。普通后端服务至少还会被平台团队逼着走 secret manager;很多研究环境则是 .env、notebook、shell history 混着来。 ...

May 1, 2026 · 2 min · Hypho

VibeVoice 能做生产级语音 AI 吗?我更关心它的工程边界

VibeVoice 在 HN 上冲到三百多分时,我第一反应不是“又一个开源 TTS 火了”。真正值得看的是另一个问题:语音 AI 开始从 demo 音质竞争,转向能不能被塞进真实产品链路。 这件事对做 AI 应用的人很现实。文字 Agent 已经卷到上下文工程、工具调用、评测和成本优化;但一旦加上语音,系统复杂度会立刻翻倍:ASR 要处理长音频、说话人、时间戳和热词;TTS 要处理首包延迟、流式输入、语气一致性和滥用风险。VibeVoice 这次之所以值得写,不是因为微软给了一个“声音很像真人”的玩具,而是因为它把 ASR、实时 TTS、长文本合成和 vLLM/Transformers 集成都放在一个开源项目里,让我们能更清楚地判断:开源 Voice AI 到底离生产系统还有多远。 先说我的结论:VibeVoice 很适合做研究原型、内部工具、长音频转写和语音 Agent 的技术验证;但如果你准备直接把它当成商业级语音生成服务,我会非常谨慎。 不是它不强,而是语音系统的生产风险和文本 LLM 完全不是一个量级。 它真正解决的不是“会说话”,而是语音链路的三个断点 从 VibeVoice GitHub README 看,项目现在不是单一模型,而是一组语音 AI 组件:VibeVoice-ASR-7B、VibeVoice-TTS-1.5B,以及 VibeVoice-Realtime-0.5B。README 里明确提到,ASR 可以处理 60 分钟长音频,输出包含 Who、When、What 的结构化转写;实时 TTS 则强调 streaming text input 和约 200ms 的首次可听延迟。 这几个关键词放在一起,含义很明确:它瞄准的不是“输入一句话,生成一段 wav”这种 demo,而是更接近真实业务里的语音流水线。 比如会议纪要系统,难点通常不是识别一句英文,而是 40 分钟会议里谁说了什么、什么时候说的、专有名词有没有错、跨语言夹杂会不会崩。再比如语音 Agent,用户希望模型一边生成答案一边开口说话,而不是等 LLM 完整吐出 800 字后再合成音频。技术上看,这就是 ASR 的长上下文与说话人结构化、TTS 的流式合成、以及中间 LLM 的 token streaming 能不能顺滑拼起来。 ...

April 29, 2026 · 2 min · Hypho

Chrome Prompt API 能把本地 LLM 带进生产吗?浏览器内置 AI 的工程边界

如果你做过 Web 端 AI 功能,大概率踩过同一个坑:用户只是想总结一段文字、给评论纠错、从页面里问几个问题,你却要把内容发到云端 LLM,承担 token 成本、排队延迟、隐私合规和数据出境解释。 所以我看到 Hacker News 上 The Prompt API 这条讨论冲到两百多分时,第一反应不是“浏览器终于也有 AI 了”,而是:这东西如果真能稳定落地,会改变一类低风险 AI 功能的默认架构。 Chrome 的官方文档把 Prompt API 描述得很直接:网页或 Chrome Extension 可以把自然语言请求发给浏览器内置的 Gemini Nano。换成人话说,就是以前你在前端调用 fetch('/api/ask'),后端再转发给 OpenAI、Gemini 或自建 vLLM;现在有些场景可以直接在浏览器里问本地模型。 这听起来很香,但我不建议现在就把它当成“云端 LLM 替代品”。它更像一块新的系统拼图:适合放在用户设备边缘,处理轻量、局部、对隐私敏感、失败代价不高的任务。 它真正解决的不是“更聪明”,而是“更靠近数据” Prompt API 背后的标准化工作在 Web Machine Learning Community Group 的 prompt-api 仓库 里。这个 Explainer 说得很清楚:今天 Web 开发者要用语言模型,通常只有两条路:调用云端 API,或者自己把模型用 WASM/WebGPU 之类的方式塞进浏览器。前者简单但有隐私和成本问题,后者灵活但工程负担很重。 浏览器内置模型想走第三条路:模型由浏览器或操作系统提供,Web 应用只拿到一个标准 API。 说白了就是:模型不属于你,运行环境也不完全属于你,但调用入口变简单了。 这件事的工程价值不在于 Gemini Nano 一定比你后端的大模型强。恰恰相反,它大概率不会更强。它的价值在于位置:模型离用户输入、页面 DOM、临时草稿、聊天记录更近。很多数据本来就停留在浏览器里,如果只是做摘要、标签、轻量问答、辅助改写,非要绕一圈云端并不总是合理。 Chrome 的 built-in AI 入门文档 也强调了这个方向:内置 AI 让 Web 应用在不部署、不管理自有模型的情况下完成 AI 任务。这个表述很克制,它没有承诺“最强模型”,而是在强调部署和管理成本。 ...

April 28, 2026 · 2 min · Hypho

每个 AI Agent 都在重复昨天的自己:一个开源记忆层想要改变这个

你有没有这种感觉:每天早上醒来,前一天学的东西大部分都忘了? LLM 就是这样工作的。 每个对话 session,模型都是从零开始。它不记得你是谁,不记得你上次做了什么决定,更不记得那个方案三个月前就试过并且失败了。你花 20 分钟解释背景,下一个 session 又得重来一遍。 这不是 AI 的 bug——这是架构限制。大多数 Agent 的"记忆",就是把整段对话历史塞进 prompt,靠上下文窗口撑着。贵、慢,而且换一个新 session 照样失忆。 Stash 想要解决这个问题。它的 slogan 很直接:Your AI has amnesia. We fixed it. 这个项目是做什么的 Stash 是一个开源的持久化记忆层,专门给 AI Agent 用。它不是一个聊天机器人,而是一个基础设施——在 Agent 和外部世界之间加了一层认知处理管道。 核心思路:Episodes become facts. Facts become patterns. Patterns become wisdom. AI 的每一次对话、每一个决定、每一次成功和失败,都被记录下来,经过一个 8 阶段的管道,转化成结构化的知识。事实与事实之间建立关联,关联形成模式,模式沉淀为真正的理解。 原始对话 ↓ Episode 记录(原始事件) ↓ Fact 提取(去掉了时间戳和情绪的事实) ↓ Relationship 建立(事实之间的连接) ↓ Pattern 检测(反复出现的模式) ↓ Goal Tracking(目标状态) ↓ Failure Pattern(失败教训) ↓ Hypothesis & Confidence(假设与置信度衰减) ↓ Wisdom(长期知识) 这个管道是增量的——每次运行只处理新数据,不会重复劳动。 ...

April 27, 2026 · 2 min · Hypho

Agent Vault:用代理模式堵住 AI Agent 的凭证泄露风险

如果你在生产环境跑过 AI Agent,大概率遇到过一个头疼的问题:Agent 怎么安全地访问那些需要 API Key 的服务? 传统方案很简单:把密钥配置在环境变量里,Agent 启动时读取。但这套逻辑是给"确定性程序"设计的——程序行为可预测,不会被外部指令诱导去做你没想过的事。 AI Agent 不一样。它们是非确定性的,能被 prompt injection 诱导,能被恶意网页操纵,能在 RAG 流程里接收有害指令。密钥一旦进了 Agent 的上下文,就等于随时可能被抽走。 这是一个真实存在的威胁,不是理论推演。Infisical 最近的博客详细描述了攻击路径:攻击者通过文档注入、恶意网页或工具调用让 Agent “主动"把环境里的密钥发到攻击者控制的端点。哪怕你上了多层 guardrails,也没有办法保证 Agent 绝对不泄露。 传统解法为什么不够用 业界的应对思路大概分三类: ① 短命凭证(Short-lived Tokens) OAuth2 的 access/refresh token 模式,API 返回临时凭证,过期自动失效。配合自动化密钥轮换,攻击者拿到的那串字符很快变成废纸。 听起来合理,但本质上只是降低窗口期,没有解决根本问题——凭证依然会泄露,攻击者只要在失效前用完就赚了。 ② 防火墙和网络隔离 只允许 Agent 访问特定 IP 段,不允许出站直连。攻击者通过 Agent 发起请求,同样会经过那些被允许的端点,该泄露还是泄露。 ③ 自行实现凭证代理 Anthropic 的 Managed Agents 架构、Vercel 的 credential brokering、Cloudflare 的 outbound workers,都走了同一条路:Agent 的请求经过一个代理层,由代理负责在请求发出前把凭证注入,Agent 自己从不直接接触密钥。 这条路是对的,但每家公司都得自己造轮子。 Agent Vault 的思路 Infisical 新开源的 Agent Vault 把这条路做成了通用产品。它的核心设计原则只有一条:Agent 永远拿不到金库里的密钥,只能通过代理间接使用。 ...

April 24, 2026 · 2 min · Hypho

GoModel:一个人用 Go 写的高性能 AI 网关,511 Stars,LiteLLM 的替代方案

如果你在生产环境里接入了两个以上的 LLM 提供商(OpenAI、Anthropic、Gemini、Groq……),大概率已经踩过这些坑:供应商的 API 格式不统一、重试逻辑要写 N 份、想把 Claude 和 GPT 的调用日志合并看也做不到、换个供应商代码要改一大坨。 这就是 AI Gateway 存在的意义——在你和所有模型供应商之间加一层抽象,对外暴露统一的 OpenAI 兼容 API,你改供应商只需要改配置,不用动业务代码。 这个赛道最知名的是 LiteLLM(Python),今天要聊的是一个用 Go 写的竞争方案——GoModel,4 个月时间,511 Stars,GitHub 最后一次提交就在昨天。 背景:多供应商困境 先说个真实的场景。 你做 AI 产品,接入了 GPT-4o 做主力、Claude Sonnet 做复杂推理、Gemini 2.5 Flash 做快速摘要。三个供应商,三套 SDK,三套错误处理,三套重试策略,三套计费逻辑。然后产品经理说:「能不能把这个月各模型 token 消耗做个报表?」 你翻了三天日志,发现各家日志格式完全不一样,计量单位都不统一。这就是为什么需要一个 AI Gateway——它把所有调用收敛到一个统一的接口,同时帮你把日志、计费、缓存这些事情做好。 LiteLLM 是这个方向最成熟的开源方案,但它是 Python 写的,GIL 限制了并发能力,而且配置相对复杂。 GoModel 是什么 GoModel 是来自波兰华沙的独立开发者 Jakub(GitHub @santiago-pl)的作品,2024 年 12 月开始开发,定位是高性能 AI Gateway,用 Go 编写,对外暴露完整的 OpenAI 兼容 API。 核心特性: 11 家供应商支持:OpenAI、Anthropic、Google Gemini、xAI Grok、OpenRouter、Z.ai、Azure OpenAI、Oracle Cloud AI、Ollama、vLLM OpenAI 兼容端点全覆盖:/v1/chat/completions、/v1/embeddings、/v1/files、/v1/batches 双层响应缓存:精确匹配缓存 + 语义缓存(基于向量相似度),官方案例中语义缓存将命中率从 18% 提升到 60-70% Guardrails:可配置的请求/响应过滤管道 Provider Passthrough:原生端点透传(/p/{provider}/...),绕过网关直接访问供应商特性 Admin API:用量统计、Token 消耗追踪、审计日志 说白了就是:LiteLLM 能做的 GoModel 基本都能做,但用 Go 写的,高并发下性能更好,内存占用地更低。 ...

April 23, 2026 · 2 min · Hypho

Kimi K2 API厂商精度大考:有人100%,有人76%

你选了一个Kimi K2的第三方API提供商,省了30%的成本。结果线上agent跑着跑着开始乱调用工具——你以为模型有问题,实际是API供应商的工程实现挖的坑。 这不是段子,是真实发生的。MoonshotAI最近开源的 K2 Vendor Verifier(551 Stars)干了一件事:他们对市面上的Kimi K2第三方API做了套标准化精度测试,结果发现同样一个模型,经不同厂商分发后,toolcall精度可以从100%掉到76%。 背景:K2的核心能力就是toolcall Kimi K2是MoonshotAI发布的专注于Agent场景的LLM。什么叫"专注Agent"?说白了就是它的核心能力不是聊天,而是toolcall——让模型学会调用外部工具完成复杂任务。 这类能力对精确度要求极高。一次toolcall失败,可能导致整个agentic loop崩溃: 工具ID格式错误 → 解析异常 JSON Schema不匹配 → 调用参数丢失 触发时机错误 → 该调工具时模型"停了" 所以K2的toolcall精度不是"体验问题",是"能不能用"的问题。 测试方法:和官方API同题作答 K2VV的测试思路很直接:用同一套4000条测试请求,分别走官方MoonshotAI API和各第三方厂商API,对比toolcall结果。 核心指标就两个: ① tool_call_f1(触发精度) 模型该不该调用工具、该调用哪个工具。用F1分数衡量,和官方API对比。 ② schema_accuracy(Schema符合度) 模型决定调用工具了,但它生成的JSON参数对不对。用通过schema验证的比例衡量。 结果?差异触目惊心。 数据说话:同卷不同分 K2-thinking版本(temperature=1.0,max_tokens=64000)的成绩单: 厂商 schema_accuracy MoonshotAI(官方) 100% Fireworks 100% InfiniAI 99.89% SiliconFlow 98.96% GMICloud 95.95% vLLM(自托管) 87.22% DeepInfra 86.91% GoogleVertex 85.76% Together 84.63% vLLM自托管版本,schema精度只有87%——意味着每100次toolcall,13次生成的参数过不了schema校验。这在生产环境里是什么概念?你的agent每天跑1000次toolcall,有130次会在运行时崩溃。 K2-0905-preview版本(temperature=0.6)的数据更明显: 厂商 schema_accuracy MoonshotAI(官方) 100% SGLang(自托管) 73.13% vLLM(自托管) 76.00% Volc 72.86% SGLang和vLLM这两个最流行的开源推理框架,精度都没过80%。 根因分析:三个工程坑 K2VV的维护者直接点名了三个最常见的问题: ...

April 22, 2026 · 1 min · Hypho

单卡 207 tok/s:DFlash + DDTree 让 Qwen3.5-27B 在 RTX 3090 上跑出推理新纪录

一个 27B 参数的大模型,在一张 2021 年买的游戏显卡上能跑多快? Lucebox 团队给出了一个让很多人没想到的数字:207.6 token/s。用的还是 Qwen3.5-27B 官方模型,不是蒸馏,不是 INT8 量化残血版——就是 Q4_K_M 量化版本,目标加草稿模型全部加载在一张 24 GB VRAM 的 RTX 3090 上。 这个成绩靠的不是等英伟达下一代消费级显卡,而是对解码算法本身动刀子。 为什么自回归解码是瓶颈 大多数人聊 LLM 推理优化,会先想到量化、KV cache 压缩、batch 并行。但对单卡消费级 GPU 来说,这些都已经做到头了——Q4_K_M 量化能压缩到约 16 GB,再压下去效果肉眼可见地降。 问题出在自回归解码本身。每生成一个 token,GPU 要完整跑一遍 27B 参数的前向传播。27B 参数在 Q4_K_M 下大约 16 GB,VRAM 带宽是 936 GB/s——每次解码都要把这 16 GB 从显存读一遍,理论带宽利用率撑死不到 20%。这是机械式的物理限制,不是软件优化能绕过去的。 speculative decoding(投机解码)解决的就是这个问题:用一个小草稿模型一次生成多个候选 token,再用大模型一次验证整串。如果草稿猜得准,大模型只跑一次就能吐出五六个 token,GPU 计算资源用得更充分。 DFlash:块扩散草稿,比 Chain EAGLE 更容易命中 主流投机解码方案是 EAGLE(及其 chain 版),草稿模型做自回归预测,每步大约能接受 3 个 token。DFlash(2026) 换了个思路:用块扩散(block diffusion) 做草稿——一个 5 层非因果的去噪网络,同时预测多个位置,而不是逐个生成。 ...

April 21, 2026 · 2 min · Hypho