“假期里还在关注 AI 圈的人,多少都有点职业病。”2026 年 10 月 4 日这天,我照例花了半个下午把过去 24 小时的模型发布、开源动态和工程讨论扫了一遍。这个 AI 日报对它做了点不一样的整理:不打算拉一条流水账,而是把这两天真正值得细看的几条技术线拆开,聊聊背后能迁移到实战里的东西——多模态模型落地的取舍、Agent 上生产的坑、推理成本优化的三条曲线、开源选型怎么避雷。不管你是刚入行的调包侠,还是被团队推着做架构决策的技术负责人,这篇都能给出一点能直接拿去用的判断。
1. 多模态模型迭代提速,端侧推理不再是口号
1.1 从榜单到实测:新模型强在“合成感知”类任务
过去两周,多模态大模型的发版密度明显高了,尤其是视觉语言方向。某实验室开源的新一代 60B 模型,在图表理解、文档版面解析和 GUI 操作这类任务上的得分,几乎把上一代头部模型按在地上摩擦。另外一个 34B 的 MoE 架构模型也很有意思,参数只有前者一半多,但合图、交错文本的指令跟随做得相当稳。
说实话,跑榜单一两次说明不了什么问题,我更关注的是“合成感知”这个词。很多人的第一反应是 OCR,但新模型真正提升的点在于:它能把多张图、表格、正文、代码块组合成一个整体任务去理解。比如我给一个模型甩了一张报销单照片加一张 Excel 表格截图,让它“找出两者金额不一致的地方”。老一代模型里很多会把它当成纯 OCR 问题,结果一堆格式错乱;新一代模型能自行识别出哪部分属于表格、哪部分属于手写备注,再去做交叉核对。这类能力放到企业内部流程自动化里,价值是实打实的。
不过,说得直白一点,这类进步很大程度上来自训练数据里“任务化合成文档”的比例提高了。也就是说,模型更擅长回答结构清晰、目标单一的合成问题,一旦遇到真实世界那种模糊不清、页面破损、表格嵌套表格的场景,还是会露怯。所以我给大家的建议是:看多模态模型的新版本,别只盯着 benchmark,拿自己业务里最脏的那 20 张图去试,结果才作数。
1.2 云侧与端侧的取舍,我用一张表说清楚
新模型出来后,总会有人问一个问题:是放在云端服务号,还是推到端侧跑?我最近帮一个做移动端文档扫描的团队看选型,最后给他们的结论是:别做单选题,要做混合题。
| 维度 | 云侧大模型 | 端侧小模型 |
|---|---|---|
| 参数规模 | 10B 以上,能力天花板高 | 0.5B~4B,适合单一场景 |
| 单次请求延迟 | 500ms 起步,受网络影响 | 50ms 级,离线可用 |
| 硬件成本 | 按 Token 付费,长期费用线性增长 | 一次性硬件投入,边际成本低 |
| 数据隐私 | 数据出设备,合规审查重 | 数据不出设备,隐私压力小 |
| 可维护性 | 模型升级即全局生效 | 端侧版本碎片化,灰度复杂 |
| 典型场景 | 复杂推理、跨文档理解、长文本生成 | 实时字幕、表格提取、关键词分类 |
我当时给那家团队的方案是“云侧负责理解,端侧负责提取”:端上跑一个 1.5B 的视觉小模型,把票据里的关键字段先结构化;云上的大模型只接收结构化后的结果,做异常处理、跨票据汇总和自然语言问答。这样既保住了大模型的能力上限,又把每张票据真正出设备的数据量砍掉了八成以上。
1.3 把模型推到端侧之前,先解决这三件事
很多人以为把模型量化到 INT4 丢进 App 就完事了,实际开发中会连续踩坑。我整理了三个最常见的问题:
第一,硬件能力差异比想象中大。同一个模型,在 A 厂商最新旗舰芯片上延迟 80ms,在 B 厂商的中端芯片上可能直接到 1.5s。跑端侧推理之前,一定要先统计目标用户设备的“最低性能档位”,而不是拿实验室的旗舰机测完就拍板。内存带宽尤其要关注,端侧模型越做越大,带宽不足时算力再强也白搭。
第二,显存/内存碎片会悄悄吃掉可用空间。模型权重、KV 缓存、运行时中间变量三者叠加,内存占用往往比权重文件大一倍。如果 App 里还有其他功能在吃内存,很容易触发后台被系统杀掉。我的经验是:在端侧留出比模型峰值占用高 30% 的余量,并在启动加载时做一次连续性检测,别等崩了再查。
第三,软件链路比硬件更难伺候。转模型格式只是第一步,后面还有量化校准、精度评测、性能回归、灰度更新。很多团队只做了第一步就上线,结果发现某个版本在部分机型上出现严重精度掉点,又没法热更新,只能干着急。建议在发布前设定一个“端侧精度回归集”,每次模型更新先跑一遍,再推给 1% 的用户做灰度观察。
2. Agent 工作流从 Demo 到生产环境的五个坑
2.1 第一个坑:任务拆解只考虑功能,不考虑权限边界
Agent 项目的第一个 Demo 通常都很惊艳,你让它“去数据库里拉取今天的销售数据并生成报告”,它真能一步步操作完成。可一旦放到生产环境,这种“惊艳”就成了事故源头。
问题在于,任务拆解阶段大家只考虑了“要完成什么”,没考虑“Agent 被授予了什么权限”。一个自然语言任务会被 Agent 自行拆成多个子任务,子任务之间还可能互相调用工具。如果底层的数据库账号、文件系统权限、API Key 拥有管理员级别的能力,Agent 完全可能在某个中间步骤里读取超出授权范围的数据,甚至对生产表结构做错误修改。
我在实际项目里给出的约束是三条:第一,给 Agent 用的所有服务账号,权限一律按“最小可用集”来配;第二,任务描述里显式声明哪些操作是禁止的,比如“只允许读取、不允许写入”;第三,在工具调用层加一道独立于模型的规则拦截,把高危指令直接过滤掉,而不是依赖模型自觉。这三条缺一条,都等于把钥匙挂在大门上。
2.2 第二个坑:循环依赖与重试风暴
生产环境的 Agent 系统里,最常见的一个故障就是“重试风暴”。比如一个自动排班 Agent 需要调用外部系统确认员工状态,外部系统恰好超时,Agent 会判断为任务失败并重试;重试到第 3 次时,另一个子任务又开始拉取更新后的数据,数据还没就绪,又触发重试。整个链路像多米诺骨牌一样连锁失败,最后 CPU、数据库连接、外部 API 配额全部被打满。
这类问题的根源在于:超时、重试、熔断这三个参数没有分层设计。我现在的做法是:每个工具调用的超时时间独立设置,比如读操作 10s,写操作 30s,长任务 120s;重试次数限制为 2 次,且每次重试必须退避 1 秒以上;再往上加一层熔断开关,一旦某类工具连续失败超过 5 次,整个 Agent 暂停并转人工。生产系统不怕错,怕的是出错之后没人管地无限抖动。
2.3 第三个坑:上下文窗口不够用
Demo 阶段,任务短,上下文随便造。等 Agent 跑一个需要跨多个业务系统、持续一个小时的工单时,上下文立刻就不够用了。你会看到 Agent 开始犯低级错误:忘记最初的用户意图,把早前的结论当成最新信息,甚至混淆两个不同客户的要求。
解决这个问题不能只靠加大上下文窗口,那是花钱买短期缓解。更靠谱的做法是把长流程改成“状态机 + 外部存储”:Agent 不再尝试把全部历史塞进上下文,而是每一步只读取当前状态和必要的数据快照。例如一个工单系统里,每个任务的“当前状态、待处理步骤、已确认约束”都存成结构化记录,Agent 每次调用先读取这份记录,完成后再回写。这个过程和人类用项目管理工具跟进的逻辑是一模一样的。
2.4 第四个坑:并发执行时的状态不一致
Demo 通常只有一个 Agent 在干活,生产环境往往是十几个 Agent 并行跑。这时候最隐蔽的坑出现了:多个 Agent 同时读写同一份数据,导致状态互相覆盖。
我碰到过一个很典型的案例:两个 Agent 同时处理同一张工单,一个在更新客户联系方式,另一个在修改交付日期。两边各自读取旧数据,修改后写回,后写的一方把前者的修改覆盖掉了。排查起来极其困难,因为单看每条操作日志都是合理的。
解决办法只有一个原则:所有共享状态必须以数据库事务为边界。具体来说,给每个工单加乐观锁版本号,更新时必须带上版本号做条件更新,版本不匹配就放弃并重新读取。另外,凡是 Agent 之间需要进行“交接”的数据,一律放进消息队列,不要靠共享内存传递。
2.5 第五个坑:测试集和真实流量差距过大
“内部 80 条测试用例全过,上线第一周 50% 成功率”,这种事情我听不止一个团队讲过。问题出在测试集本身:为了 Demo 好看,大家在构造测试数据时下意识回避了歧义、噪声、异常流程。而真实用户输入是自由的,甚至不按你想好的规则来。
改善这类问题要构建一个三维评估集:正常路径、边界路径、恶意/异常路径三类各自占比 60%、25%、15%。上线之前跑影子模式,把真实流量镜像给 Agent 做回放,但不用它真实操作生产数据,人工标注结果后用来迭代。回放式评估虽然耗时间,但它是避免“上线翻车”最靠谱的办法。
2.6 一个典型的排查链路:Agent 任务超时,从现象到根因
这里分享一个我真实经历过的排查全过程,完整走一遍链路。
**现象:**每天凌晨 3 点到 5 点整点附近,某调度 Agent 的任务批量超时,持续半小时后自动恢复。从监控面板看不出来 CPU、内存、磁盘有瓶颈,业务数据库也正常。
**第一步,不急着改代码,先拉时间线。**我把超时任务的时间戳按分钟粒度排列,发现每次都集中在某个外部仓储服务的“批处理窗口”附近。于是怀疑外部依赖排队,但查了对方接口,响应时间波动不大。
**第二步,看 Agent 内部使用的锁表。**任务流程里有一个“任务互斥锁”,用来保证同一资源不会被并发处理。凌晨 3 点整,系统会启动一个“全量对账”子流程,它会尝试对大范围资源加排他锁。此时常规 Agent 任务已经持有了部分资源的普通锁,两者形成锁等待交叉,所有新任务都卡在拿锁环节。
**第三步,模拟验证。**我在测试环境用同样的任务量同时触发对账和常规流程,故障在第 4 分钟复现。确认是锁粒度过大导致,常规任务持有的锁范围已经完全覆盖了对账任务的锁需求,而常规任务又在等待对账结果,互相等待形成死锁。
**第四步,修改方案。**把互斥锁改成“处理中”标记加心跳续约。任务开始前先写入一行 state=processing,同时每隔 30s 更新心跳时间;其他任务发现这场心跳时间超过 60s 才认为对方失效,可以接管。这样既不会出现锁等待风暴,也不会让故障任务永久占坑。
**第五步,上线验证。**连续观察 7 天,凌晨任务超时彻底消失,整体执行时长还缩短了 20%。这条链路排查完后我给团队定了条规矩:Agent 任务里一旦涉及互斥,一律优先用“标记 + 心跳 + 超时接管”,不要直接用数据库行锁。
3. 推理成本优化的三条曲线:量化、投机解码与缓存复用
3.1 模型量化:收益最大,但精度最容易失控
推理成本优化,绝大多数团队第一天会碰的就是量化。把 16 位浮点权重压到 8 位整数,模型内存直接缩减一半,速度也能提升 30% 以上;再激进一点压到 4 位,体积更小,但精度就不一定受控制了。
问题几乎都出在“校准”环节。很多人用公开的、和业务完全不沾边的校准集,结果模型在通用任务上看起来还不错,一到自家特殊名词和格式上就出幺蛾子。我见过一个做法律合同解析的团队遇到这种事:量化后把“违约赔偿金条款”识别成“违约责任”,后续所有下游逻辑全部跑偏。这类掉点在小规模评测里打分差异只有 2%,但在关键业务路径上是不允许发生的。
所以我每次做量化的建议是:第一步,收集至少 200 条业务真实样本作为校准集,专挑分布最脏的那一类;第二步,量化前后分别跑一份“关键指标评测集”,不要只看平均分,得看每一条结果的变化;第三步,优先用支持混合精度的方法做量化,敏感模块保持高精度,不敏感模块才压到低精度。
3.2 投机解码:流畅性大涨,但得给草稿模型配好队
如果说量化是省显存和省时间,那投机解码解决的是“首字延迟太高”体验问题。它的原理并不复杂:用一个很小的草稿模型先生成多个候选 Token,再由大模型一次性验证。大部分情况下草稿模型的预测和大模型一致,那就可以一次生成多个 Token,而不需要逐字等待大模型推理。
这套思路在长文本生成场景收益很明显,但前提是草稿模型和主模型的“脾气”要合。草稿模型的选择标准不是越小越好,而是看它生成结果的分布和主模型有多接近。如果二者差异大,草稿生成的内容几乎全被主模型否定,那投机解码不但没提速,反而浪费一倍的推理算力。
我现在做投机解码调优,会在选择草稿模型后先跑一个“接受率”指标,一般要求达到 0.6 以上才值得做。接受的细节还会看:连续的候选 Token 能被一次验证通过的占比是多少;如果平均每次能多生成 1.5 个 Token,吞吐提升基本可观,但再往上就会触及硬件瓶颈。记住,投机解码是放大主模型效率的工具,不是替代主模型的捷径。
3.3 KV 缓存复用:长会话和大并发场景下的隐形福利
很多团队把注意力都放在“算得快不快”上,忽略了“缓存厚不厚”。推理过程中,历史 Token 的键值缓存(KV Cache)占据了大量显存,同样的前缀问题如果每次都重新计算,等于把已经算过的成本重复付账。
我在一个客服问答项目上的实测:系统提示词 + 用户历史订单信息,共同构成了近 2000 Token 的固定前缀。开启前缀缓存复用后,预填充阶段耗时从 800ms 压到 200ms,整条请求的延迟下降了 40% 左右。这个方案不影响模型精度,只是把计算过的中间结果缓存起来,成本几乎为零。
更进阶的玩法是“语义缓存”:把 RAG 流程里那段 3000 Token 的长文档做成可复用的前缀缓存,这样同一个知识库在不同问答里就不用反复编码。如果你们的场景是几十个不同部门公用一套知识库,这个优化带来的显存和耗时收益会非常明显。
3.4 成本优化实验的读数方法
做优化实验最怕只看“平均延迟”一个数字,那样往往得出错误结论。推理过程要拆成两个阶段来看:
- 预填充阶段(Prefill):主要决定了首个 Token 的响应速度,用户体感最强。
- 解码阶段(Decode):决定了后续 Token 的生成速度,长文本场景更看重它。
量化通常对两个阶段都有帮助;投机解码主要改善的是解码阶段;KV 缓存复用主要砍掉的是预填充阶段的时间。实验报告里如果不区分这两个阶段,你就说不清楚优化到底作用在哪。另外,并发场景下的“吞吐量”也要单独测,很多方案单请求延迟都好看,并发一起来就出现排队和显存抖动,这才是生产环境里的真问题。
4. 开源模型许可证新动态与选型策略
4.1 许可证为什么成为部署前的“第一道红线”
开源模型的爆发让需求方尝到了甜头,但也带来一个容易被忽略的问题——许可证。你以为“开源”就是随便用,其实开放权重和开源软件是两回事。权重公开下载,不等于商业用途完全不受限。
现阶段使用开源模型的限制集中在几类:一是商用门槛,比如参数规模超过一定阈值或用户量超过月活限制时,就需要额外申请商业授权;二是“二次分发”限制,比如不允许把模型和特定数据蒸馏后再对外提供类似服务;三是平台限制,某些模型只允许通过原发布方指定的服务渠道对外提供能力,不允许直接封装成另一个开放平台的服务。
一个可供参考的做法是:在引入任何开源模型之前,把“使用方式”转成表格打分。下面有我常用的决策表:
| 使用场景 | 需要重点检查的条款 | 处理建议 |
|---|---|---|
| 内部自用,做研发辅助 | 商用授权范围、数据合规 | 一般条款宽松,风险较低 |
| 产品直接调用,收费服务 | 商用限制、用户量触发条件 | 若超限需申请商业授权或换模型 |
| 基于模型做二次开发并分发 | 修改权、再分发约束 | 确认衍生作品是否受同等约束 |
| 训练蒸馏模型并对外发布 | 蒸馏条款、服务限制 | 很多模型明确禁止此类行为,先确认 |
| 作为底层服务嵌入云平台 | 平台限制、托管条款 | 存在高风险,务必逐条核对 |
4.2 一张表判断开源模型能不能直接商用
业内很多人在拉起新项目时,根本没时间一条条读几百行条款。我自己常用一套快速检查法:先圈出四个关键词——“商用”“参数规模”“月活/日活阈值”“禁止场景”。只要这四个条件都满足你的业务边界,风险基本可控。如果其中一个有争议,就再回到原文仔细核对。
| 判断维度 | 自己问的问题 | 如果答案是“是”,怎么办 |
|---|---|---|
| 商用授权 | 模型是否允许免费商用? | 不允许则改选闭源 API 或其他模型 |
| 参数触发 | 业务规模是否达到条款中的参数阈值? | 达到则走商业授权流程或限流方案 |
| 禁止场景 | 是否涉足金融、医疗、司法等敏感行业? | 需要额外合规评估,别直接上 |
| 托管分发 | 是否计划把模型作为平台服务对外提供? | 尤其注意服务条款中的限制条款 |
选型不一定非要挑分数最高的模型。如果两个模型能力差不多,我会优先选条款最宽松的那个。技术上多花半个月做评估,也比上线后收到合规整改通知强得多。
4.3 选型决策树:什么时候用开源,什么时候走闭源 API
关于“自建还是调 API”,我的经验是先用一个二维矩阵来判断:横轴是“数据敏感度”,纵轴是“能力天花板需求”。
- 数据敏感度低 + 能力要求高:直接使用闭源 API,性价比最高,省掉自己折腾部署和运维的时间。
- 数据敏感度高 + 能力要求高:私有化部署开源头部模型,接受因能力差一点带来的补偿成本。
- 数据敏感度低 + 能力要求中低:可以用开源小模型,也可以调 API,两条路资源消耗差别不大。
- 数据敏感度高 + 能力要求中低:必须私有化,选一个管理相对完善的中等规模开源模型即可。
走开源路线后,千万别急着把整套基础设施一次到位。可以先在一个简单场景里跑通模型推理、监控和灰度,确认问题后逐步扩大应用面。比技术更重要的,是把“怎么升级、怎么回滚、怎么评估”这三件事在文档里写明白。
5. 行业信号:AI 编程渗透率、硬件节奏与人才结构调整
5.1 AI 编程助手已经不止是补全工具
最近一些头部团队的统计透露,AI 辅助生成的代码在新建仓库中的占比已经高到了常人很难想象的地步。更要紧的是,它正在改变工程师一天的时间分布:重复的赶工活被压缩,代码 review、架构设计和需求拆解变成了主要工作量。
在这个趋势下,团队里真正稀缺的角色已经慢慢变成“会提需求的人”。同一个任务,有人三句话把上下文、边界、验收标准说得清清楚楚,AI 生成的东西能直接用;有人描述含糊,AI 生成 500 行代码,他 review 的时间比自己写还长。这个周末我在整理项目文档时也深有体会:提示词写清楚,本质上是把思考过程显式化,这一关过不了,工具再好也白搭。
5.2 推理硬件与端侧 NPU 的竞速
这一阶段硬件领域的信号也很密集。云端推理卡迭代速度明显加快,内存带宽成为核心卖点;端侧 NPU 的算力提升反而更激进,但通用性和工具链成熟度还远远跟不上芯片本身的营销宣传。
选硬件如果只盯着 TOPS 数值就容易被误导。跑通本地模型需要的是“内存带宽 × 连续算子优化 × 框架适配”的综合表现。我建议别迷信单点参数,直接拿自己的模型在目标设备上跑一组真实任务,包括连续请求的发热降频表现。很多端侧芯片跑单次任务很好看,连续跑 10 分钟就开始降频,实际吞吐只有峰值的一半。
5.3 团队的“通识焦虑”和组织结构调整
今年明显能感受到,很多团队在内部推“全员学 Prompt”“全员理解模型能力边界”。这个方向是对的,但焦虑感也随之而来。不少人在疯狂收藏各种课程,却不知道自己的岗位到底哪部分会被 AI 替代、哪部分会增强。
我更认可的做法是把问题反过来看:先盘点你所在岗位的高频重复劳动,再为每一项找对应的 AI 工具或模型能力,逐项验证。对于管理者,与其让大家统一学一门课,不如在每个小组里指定一两个“AI 落地接口人”,他们负责把组内真实任务转化成可复用的模型调用和评估方案。注意力分配决定了组织能多快吃掉这波红利。
6. 今天打算动手复现的一个方向:多模态 RAG 的轻量改造
6.1 技术栈与设计思路
看了一天的行业信息,总得亲手干点活才算没浪费假期。今天下午我花了两个小时,把一套原来只支持纯文本的 RAG 方案改造成可处理图片和表格的轻量多模态版本。
设计思路很直白:文本走常规的切分和嵌入;图片交给视觉编码器抽取语义描述,再和 OCR 文本拼接成一条“混合段落”后入库;表格则先转成 Markdown 结构,再做字段级摘要,避免原始表格太大导致检索召回噪声过高。整个流程里没有引入重型模型,成本压力很小。
6.2 实测踩过的一个精度坑
改造完第一版后,我拿一批业务截图做召回测试,发现“图表类问题”的召回准确率只有 53%,明显低于文本类问题的 80%。一开始怀疑是视觉描述生成得不好,可单独抽出来看,描述本身是通的。排查时把每个环节的召回结果单独打出来,才发现问题出在混合检索阶段的权重分配上:整个库统一给了文本向量和图像向量同一个权重,但图谱类问题天然更依赖图片描述,权重被打散了。
修复也很简单:我把产品按“文档型”“图表型”“混合型”分成三类,分别设定不同的向量权重组合,并针对图表型单独提高图片向量权重。改完后,图表类问题的召回准确率从 53% 提到了 74%,整体效果可用。
6.3 一点体会
这个 Demo 不算大,但它提醒了我一个反复出现的规律:很多 AI 项目上线后效果不及预期,问题往往不在模型本身,而在数据管道和信息结构设计。接下来如果继续做,我会给视觉描述生成加上一个“自检环节”,让模型在生成摘要的同时输出对图片类型的判断,实体关系抽取也补上,让结构化程度更高。给同样在做类似方向的朋友一个建议是:别一上来就堆多模态大模型,先把召回和排序链路里的数据类型理清楚,收益可能来得更快。