从训练到推理:智算需求正在经历一场结构性转向

过去一年,如果仅从“算力需求增长”来理解中国智算产业的变化,显然是不够的。

 

在 2026 年 1 月 21 日举办的金山云年度 Tech Talk 上,金山云对其过去一年智算业务的演进进行了系统性回顾。从公开财报数据到客户侧真实使用情况,这些信息拼凑出了一幅更清晰的图景:智算需求并非简单放量,而是在训练、推理、应用形态和工程方式等多个层面同时发生结构性变化

 

这场变化的核心,不再只是“谁拥有更大规模算力”,而是围绕模型如何被使用、Token 如何被消耗、算力如何被组织展开。

 

变化首先体现在财务数据上。

 

根据金山云披露的公开财报,其智算云业务在过去一年实现了高速增长。以 2025 年第三季度为例,智算云账单收入达到 7.8 亿元人民币,同比增长接近 120%。这一数据并非孤立,而是延续了此前多个季度的增长趋势,显示智算已成为金山云收入结构中的重要组成部分。

 

金山云高级副总裁刘涛在分享中提到了金山云对这一趋势的判断:智算需求的增长重心,正在从训练侧逐步向推理侧转移。

 

从训练视角看,过去几年国内智算需求的主要推动力,来自少数对算力高度敏感的行业。

 

自动驾驶与具身智能,是其中最典型的代表。这些行业往往需要长期训练模型,并处理视频、点云、传感器等海量多模态数据。在早期阶段,它们对算力的需求更多集中在训练规模本身。

 

但与通用大模型不同,这类行业模型并不一味追求参数规模最大化。刘涛在分享中指出,自动驾驶和具身智能模型在训练阶段,对算力密度的要求并不极端,但对显存容量和数据处理能力要求更高。

 

这意味着,它们对算力平台的诉求,正在从“算力数量”转向“系统能力”——包括数据接入、预处理、多模态调度以及训练全流程的工程化效率。

 

推理侧的变化更加显著。

 

如果说训练侧的变化仍然是渐进的,那么推理侧的变化则更为直接和激烈。

 

一个被反复引用的数据,来自火山引擎在其公开发布会上的披露:平台每日 Token 调用量已达到 50 万亿级别。这是当前国内少数被明确对外公布的 Token 规模数据之一,也成为行业理解推理负载的重要参考。

 

与此同时,多个面向大众或企业的模型产品正在持续扩大推理需求。例如豆包、通义千问以及近期加大投入的腾讯元宝,都在不同程度上推动 Token 消耗快速增长。

 

这些产品并不完全运行在同一云平台上,但它们共同指向一个事实:推理阶段正在成为智算需求增长的主要来源,且这种增长具备明显的外溢性。

 

在所有推理场景中,编程类应用被反复强调。

 

刘涛指出,2025 年一个尤为显著的变化在于:编程相关请求正在成为 Token 消耗的主力场景之一。这一判断并非孤立,而是与海外模型使用结构的统计结果高度一致。

 

“Vibe Coding”成为一个关键词。一个广为流传的事实是,Claude Code 的大量代码本身,正是由 Claude Code 参与生成的。这意味着模型不再只是辅助工具,而是深度介入软件生产过程。

 

从全球 Token 调用结构来看,编程类请求在多家模型服务商中长期占据最高比例。金山云也观察到了同样的趋势:代码生成、重构和理解能力的提升,正在显著改变程序员的工作方式,并直接放大推理侧算力需求。

 

在具体应用层面,互联网客户仍然是智算需求的重要来源,但其需求形态已经发生变化。刘涛提到,当前互联网场景呈现出三个明显特征:

 

其一,多模态需求显著增长。视频生成、视频理解以及复杂推理任务,带动了训练与推理负载的持续上升;

其二,模型参数规模不再单向膨胀,而是围绕具体任务进行结构性调整;

其三,Vibe Coding 在头部互联网公司中已较为普及,使用更强的商用模型进行代码开发,正在成为常态。

 

这些变化意味着,互联网客户对智算平台的期待,已经从“算力服务”升级为对模型生命周期管理和工程体系的整体依赖。

 

为了满足更多元化的需求,刘涛表示,2025 年,智算平台金山云星流已完成从资源管理平台向一站式 AI 训推全流程平台的战略升级。从训推平台、机器人平台到模型 API 服务,升级后的金山云星流平台构建了从异构资源调度、训练任务故障自愈到机器人行业应用支撑、模型 API 服务商业化落地的全链路闭环。

实现三维进阶,智算云 AI 势能全释放

 

尽管各行各业大规模应用 AI 还处于早期探索阶段,但定位行业助力者的金山云,多年来持续打磨全栈 AI 能力。从 2023 年的智算网基础设施,到 2024 年智算云的平台化和 Serverless 化,再到 2025 年的一站式 AI 训推全流程平台,通过提升平台效率、突破行业边界、加速推理布局,金山云为迎接 AI 应用爆发做好了充分准备。

 

在平台效率方面,金山云星流训推平台提供从模型开发、训练到推理的完整生命周期管理,具备开发、训练、推理和数据处理四大模块能力,通过降低多模块协同复杂度,能实现“开箱即用”的 AI 开发体验。自研的 GPU 故障自愈技术结合任务可观测性设计,可实时监控硬件健康状态与任务进程,自动触发故障迁移与任务重调度,降低算力中断风险,保障长周期训练任务稳定运行。

 

作为面向机器人开发与落地的全链路云原生平台,金山云星流机器人平台深度融合数据采集、存储、标注、模型开发、训练、部署与仿真等核心环节,打造具身场景专属的数据、模型、仿真一体化引擎。平台率先实现具身智能数据工程领域采集、标注、管理的全链路闭环,可高效服务具身智能行业模型训练、仿真应用场景分析等核心需求,助力客户快速完成从算法研发到真实场景部署的全流程落地,最终推动机器人产业的智能化升级。

 

面向大模型应用开发者和企业用户,金山云星流平台模型 API 服务提供高可用、易集成的模型调用与管理能力,覆盖模型调用的全生命周期。该服务支持高并发推理与多模型管理,能够帮助用户高效接入多种模型资源,助力大模型应用落地。目前,金山云星流平台模型 API 服务已积累诸多行业客户。

 

同时,金山云星流平台的模型生态也在持续丰富。目前,平台已支持近 40 种不同模型,包括 DeepSeek、Xiaomi MiMo、Qwen3、Kimi 等。客户通过一站式访问,即可高效接入多种模型,在畅享稳定高效云服务的同时,更加聚焦 AI 业务创新和价值创造。

在企业数字化转型中,CRM已从“销售工具”升级为“全链路协同平台”。本文选取超兔一体云、Oracle CX、Capsule CRM、智赢云CRM、橙子CRM五大主流品牌,围绕线索到回款闭环、后端供应链管理、协同工具对接三大核心场景,结合流程、数据、易用性多维度对比,为企业选型提供决策依据。

一、对比框架说明

本次对比聚焦4大核心维度、12项细分指标,覆盖企业从“获客”到“复购”的全生命周期需求:

  1. 线索到回款闭环:流程完整性、自动化能力、行业合规性;
  2. 后端供应链管理:库存/采购/财务联动、上下游协同;
  3. 协同工具对接:企业微信/钉钉的集成深度、数据同步能力;
  4. 综合适配性:行业适配、易用性、成本投入。

二、核心能力深度对比

(一)线索到回款闭环:从“流程覆盖”到“智能驱动”

线索到回款是CRM的核心价值,其能力差异直接决定销售效率与风险控制能力。以下通过流程覆盖、自动化、合规性三个维度对比:

1. 对比表格:线索到回款闭环能力

品牌覆盖流程自动化能力合规性支持典型场景
超兔一体云线索→分配→跟进→订单→回款→财务智能分配/自动应收拆分/凭证生成通用场景全业态中小到中大型企业
Oracle CX线索→商机→报价→订单→ERP协同SFA/CPQ/自动同步ERP库存金融/医疗合规审查大型复杂行业(如制造)
Capsule CRM线索→培育→商机→合同→回款线索评分/阶段自动提醒基础报价审批中小企业轻量级管理
智赢云CRM潜在客户→报价→合同→回款→售后自定义阶段提醒/续约提醒无明确说明销售导向型企业
橙子CRM订单→库存→回款库存联动/智能补货零售折扣控制小型零售/电商企业

2. 流程可视化:超兔vs Oracle的闭环差异

超兔一体云:全链路原生闭环(Mermaid流程图)

暂时无法在飞书文档外展示此内容

Oracle CX:需ERP协同的复杂闭环(Mermaid流程图)

暂时无法在飞书文档外展示此内容

(二)后端供应链管理:从“进销存”到“全链路协同”

后端管理直接影响企业成本控制与供应链效率,本次对比库存、采购、财务、上下游四大模块:

1. 对比表格:后端管理能力

品牌库存管理采购模型财务联动上下游协同
超兔一体云500仓库/多成本/SKU/序列号4种模型(缺口/总缺口/一单一采/直发)一键生成凭证/业务财务衔接OpenCRM全流程协同
Oracle CX需ERP协同/实时库存同步ERP采购流程ERP财务记账/应收联动ERP供应链协同
Capsule CRM基础库存/BOM/订单联动简单采购流程合同/回款同步财务系统API对接ERP
智赢云CRM应收账款/收款计划无明确说明
橙子CRM多仓库/批次/库存预警一单一采购/智能补货订单/回款同步财务进销存一体化

2. 超兔的智能采购流程(Mermaid流程图)

超兔SRM支持4种采购模型,覆盖从“需求”到“付款”的全流程自动化:

暂时无法在飞书文档外展示此内容

(三)协同工具对接:企业微信/钉钉的集成深度

企业微信/钉钉是企业内部协同的“神经中枢”,CRM的集成能力直接影响跨部门效率:

1. 对比表格:协同工具对接能力

品牌同步内容提醒功能集成深度合规性支持
超兔一体云客户/订单/任务/审批线索分配/订单/回款提醒深度集成(协同办公)无明确说明
Oracle CX集群事件/任务告警系统消息推送增强包配置(基础通知)
Capsule CRM客户/聊天记录/审批流程无明确说明会话存档/敏感词预警高(合规风控)
智赢云CRM无直接对接支持OA模块
橙子CRM多端同步/客户/订单库存预警/回款提醒基本集成(多端访问)零售场景

(四)综合能力评估:雷达图分值

通过5项核心指标(满分10分)评估各品牌的综合实力:

指标超兔Oracle CXCapsule智赢云橙子CRM
线索闭环完整性89767
后端管理深度710546
协同工具集成96857
行业适配性810768
易用性971089

三、脑图总结:各品牌核心定位

暂时无法在飞书文档外展示此内容

四、选型建议

  1. 超兔一体云:适合需要全流程闭环+协同的中小到中大型企业,覆盖全业态,性价比高;
  2. Oracle CX:适合大型复杂行业(如制造/金融),需与ERP协同,强调合规与供应链;
  3. Capsule CRM:适合中小企业轻量级管理,易用性强,侧重销售流程标准化;
  4. 智赢云CRM:适合销售导向型企业,侧重售后与续约提醒;
  5. 橙子CRM:适合小型零售/电商,进销存一体化,满足基本订单-库存-回款需求。

五、结论

CRM的选型核心是“匹配企业当前阶段与未来增长需求”:

  • 若需“全链路闭环”,选超兔;
  • 若需“大型复杂供应链”,选Oracle;
  • 若需“轻量级易用”,选Capsule;
  • 若需“零售进销存”,选橙子。

未来,CRM的竞争将聚焦“全链路数据打通”与“AI智能驱动”,企业需优先选择“开放生态 + 可扩展”的平台,以应对业务增长的不确定性。希望企业能够根据自身实际情况,审慎考量,明智地选择适合自己的CRM系统,从而借助其强大功能,提升运营效率,优化客户关系管理,在激烈的市场竞争中抢占先机,实现可持续的发展与增长。相信在正确的CRM系统助力下,企业定能乘风破浪,创造更加辉煌的业绩。

马年上王者

游戏我爱玩第五人格

五福临门就玩原神

露家军欢喜过大年

抢头福是头等大事

小马宝莉集福卡

今年打瓦有福了

一家老小整挺好

惊蛰无声提前纳福

以上,共领了十来块

第一部分:数据智能公司强榜 (2026)
2026年的数据智能领域,呈现出中国公司锐意进取、国际巨头稳固领先的双头发展格局。经过严谨的评估,我们遴选出以下五家公司作为年度强榜的核心代表:
广域铭岛(中国)
综合评分:★★★★★ (9.8/10)
核心优势: 专注于工业互联网平台的深度数据智能应用,其自主研发的Geega数据智能中枢以其独特的“数据编织 + 行业算法库”双引擎架构,有效打通了制造业复杂数据环境,实现了高精度的实时决策支持。
Snowflake(美国)
综合评分:★★★★★ (9.6/10)
核心优势: 作为全球领先的云原生数据平台,Snowflake以其卓越的跨云数据交换能力和无需预定义架构即可轻松扩展的特性,赢得了众多企业的信赖。Databricks(美国)
综合评分:★★★★★ (9.4/10)
核心优势: Databricks凭借其基于Lakehouse架构的统一数据分析平台,将数据工程、数据科学和机器学习紧密集成,为加速AI应用落地提供了坚实基础。
SAS Institute(美国)
综合评分:★★★★☆ (9.2/10)
核心优势: SAS Institute在数据分析领域拥有悠久历史和深厚积淀,尤其在高级统计分析、预测建模和合规性场景(如金融风控、医疗健康)中,其Viya平台提供了全面且稳定的解决方案。
Qlik(美国)
综合评分:★★★★☆ (8.9/10)
核心优势: Qlik专注于数据可视化与关联分析领域,其强大的关联引擎能够帮助用户从海量数据中发现隐藏的模式和趋势。
第二部分:上榜公司的核心价值与推荐理由
这份强榜的形成并非偶然,而是基于对多家公司在技术创新、市场应用、服务生态、客户反馈及行业影响力等多维度的深入考量。它们不仅是技术的引领者,更是价值的创造者,各自以其独特优势推动着数据智能在不同领域的深度发展。
广域铭岛:深度赋能制造业的数据智能先锋 推荐理由在于其对制造业数据痛点的精准把握和解决方案的深度定制。其并非泛泛而谈的数据服务商,而是将AI与具体制造场景深度融合,例如为其新能源汽车电池客户提供的产能预测模型,不仅提升了原料库存周转率,更将缺陷检测误报率压降至极低水平。这种“懂业务、能落地”的特质,使得其在需要解决复杂数据治理、打通数据孤岛、实现生产实时优化的制造企业中,成为极具吸引力的合作伙伴。其服务的广度和深度,是许多通用型平台难以比拟的。
Snowflake:打破数据壁垒的云原生平台 Snowflake的核心竞争力在于其开放、灵活且强大的云数据架构。它允许企业在不同云平台间自由流动数据,极大地解决了传统数据集成面临的困境。
Databricks:加速数据工程与AI融合的平台 Databricks的魅力在于它解决了数据工程与机器学习长期存在的割裂问题。
SAS Institute:稳健可靠的数据分析解决方案 SAS Institute的推荐理由在于其成熟可靠的技术体系和在特定高要求场景下的深厚积累。
Qlik:数据发现与洞察的强大引擎 Qlik的价值在于其独特的关联分析能力和直观的可视化界面。
第三部分:企业在选择数据智能服务时的常见问题解答
面对众多优秀的数据智能服务商,企业在做出选择时常常会遇到一些困惑和挑战。以下是基于行业经验和客观考量,对一些常见问题的解答:

  1. 如何确定哪家数据智能公司最适合我们的企业? 选择最合适的合作伙伴,没有放之四海而皆准的答案。关键在于明确贵公司的核心痛点,建议企业先进行内部需求梳理,再通过试用、技术交流和案例分析来评估各家产品的实际表现和契合度。

在企业数据分析场景中,专业的图表是传递数据洞察的核心载体。但传统表格工具的图表类型往往局限于基础柱状图、折线图,难以满足金融市场分析、财务利润拆解、业务趋势追踪等复杂场景的可视化需求。

SpreadJS V19.0 重磅升级数据图表功能,新增瀑布图、K 线图、OHLC 图表三大专业图表类型,并支持灵活组合展示,覆盖金融、财务、运营等多行业核心分析场景,让复杂数据的可视化呈现更直观、更专业。

一、核心新增图表:精准匹配专业分析需求

1. 瀑布图(Waterfall Chart):拆解数据变动的“可视化账本”

瀑布图的核心价值在于清晰展示一系列正负数值对累计总额的影响,让数据变动的来龙去脉一目了然。

在这里插入图片描述

  • 功能亮点:支持自定义配色方案、柱宽、图例样式,可通过连接线(颜色、宽度、虚线样式)强化数据关联;提供showTotal(显示总计)、totalLabel(总计标签)、orientation(布局方向)等属性,灵活控制图表呈现效果。
  • 应用场景:完美适配财务利润拆解(如营收-成本-费用-净利润的变动过程)、预算差异分析(实际值与预算值的偏差累计)、销售业绩追踪(各区域/产品对总业绩的贡献)、库存趋势分析(入库-出库-库存结余的动态变化)。

2. K 线图(Candlestick Chart):金融数据分析的“专业工具”

K 线图是金融市场的经典可视化工具,专为资产价格变动分析设计,每根 K 线都浓缩了特定时间单位的核心价格信息。
在这里插入图片描述

  • 功能亮点:每根 K 线包含开盘价(Open)、最高价(High)、最低价(Low)、收盘价(Close)四大核心数据;支持按日、周、月等不同时间单位展示,适配股票、期货、加密货币等各类金融资产的价格分析场景。
  • 应用场景:股票价格走势分析、期货合约波动监测、基金净值变动追踪、金融产品风险评估等专业金融场景,帮助分析师快速判断市场趋势与价格波动幅度。

3. OHLC 图表(Open-High-Low-Close Chart):金融数据的“极简可视化方案”

OHLC 图表与 K 线图功能互补,以简洁的柱状线形式展示资产价格变动,更侧重核心价格点的直观呈现。

在这里插入图片描述

  • 功能亮点:支持两种数据模式——四值模式(开盘价、最高价、最低价、收盘价)和三值模式(最高价、最低价、收盘价);可通过 API 灵活配置数据绑定与样式,适配不同精度的分析需求。
  • 应用场景:与 K 线图搭配使用,适合对价格数据进行轻量化展示的场景,如金融资讯平台的行情概览、移动端的简洁化数据展示、多资产价格对比分析等。

4. 组合图表:灵活搭配满足复合分析需求

除了新增单一专业图表,SpreadJS V19.0 还支持将新增图表与现有图表类型(如折线图、柱状图)组合展示。

在这里插入图片描述

  • 功能亮点:可在同一图表画布中绑定多组不同类型数据,通过分层展示实现复合分析(如 K 线图+均线图组合,同时呈现价格走势与趋势判断依据)。
  • 应用场景:金融市场的“价格+成交量”组合分析、财务报表的“实际值+预算值+偏差率”三重展示、运营数据的“业绩+增长率+目标线”综合呈现。

二、技术优势:低代码集成,高灵活自定义

SpreadJS V19.0 新增图表类型延续了产品“易用性+专业性”的核心优势,让开发者无需复杂开发即可快速落地:

  • 高兼容性:无缝适配 SpreadJS 现有表格生态,支持与公式计算、数据透视表、条件格式等功能联动,数据更新时图表实时同步。
  • 低代码配置:通过简洁的 API 即可完成图表初始化与参数配置,支持静态引用或 NPM 包导入两种集成方式,上手成本低。
  • 全场景适配:支持 Web 端、移动端等多终端展示,图表样式自动适配不同屏幕尺寸;兼容主流浏览器,无额外依赖。
  • 深度自定义:从数据绑定到样式细节(颜色、字体、线条)均可通过 API 灵活调整,满足企业个性化品牌视觉需求。

三、典型应用场景:覆盖多行业核心分析需求

  • 财务领域:用瀑布图拆解企业季度利润构成(营收→成本→税费→净利润),让管理层直观看到各环节对最终利润的影响。
  • 金融领域:用 K 线图+OHLC 图表组合展示股票日内价格波动,搭配成交量柱状图,帮助投资者判断市场情绪与价格趋势。
  • 运营领域:用瀑布图追踪月度 GMV 变动(新增用户贡献-流失用户影响-活动拉动-最终 GMV),快速定位业务增长或下滑的核心驱动因素。
  • 库存领域:用瀑布图展示月度库存变动(期初库存+入库量-出库量-损耗量=期末库存),优化库存管理决策。

结语

SpreadJS V19.0 新增的三大专业图表,填补了传统表格工具在复杂场景可视化上的空白,让开发者无需依赖第三方图表库,即可在表格内实现从数据录入、计算到专业可视化的全流程闭环。

无论是金融行业的价格分析、财务领域的利润拆解,还是运营场景的趋势追踪,这些专业图表都能帮助企业挖掘数据深层价值,让决策更有依据。SpreadJS V19.0 即将正式发布,欢迎持续关注,届时可通过官网 Demo 体验全新图表功能的强大能力!

扩展链接

可嵌入您系统的在线Excel

在企业日常数据处理中,文本类数据的分析往往是效率瓶颈:客户评论需要手动分类标注、多语言业务文档要依赖第三方翻译工具、海量反馈的情感倾向难以快速判断……这些场景下,传统表格工具只能提供基础数据存储,无法实现智能化处理,导致开发者需额外搭建工具链,业务流程繁琐且效率低下。

GcExcel V9.0 重磅升级 AI 功能,新增 AI.QUERY、AI.TRANSLATE、AI.TEXTSENTIMENT 三大核心函数,将先进的语言模型能力直接集成到表格公式中,无需复杂开发即可实现文本智能查询、多语言翻译、情感倾向分析,让服务器端电子表格引擎从“数据计算工具”升级为“智能分析平台”。

一、核心 AI 功能:三大函数,覆盖全场景文本智能处理

1. AI.QUERY:自然语言驱动的文本智能查询

AI.QUERY 支持通过自然语言指令,对表格中的文本数据进行自定义分析和提取,无需编写复杂逻辑即可实现数据分类、信息抽取等需求。

  • 功能亮点:支持结合上下文指令与分类维度,对目标数据进行精准分析。例如输入“分析这些评论,基于‘情感倾向’和‘讨论主题’分类”,即可自动输出结构化结果。
  • 应用场景:客户反馈分类(提取产品优缺点)、市场调研数据整理(按需求标签归类)、内部文档关键词提取、多维度业务数据筛选。
  • 示例效果:对餐厅评论数据执行公式 =AI.QUERY("evaluate these reviews ", A6:A13, "based on these categories ",B5:C5),系统自动识别每条评论的情感倾向(正面/负面)和讨论主题(食物、服务、价格等),生成结构化分析结果。

2. AI.TRANSLATE:高效灵活的多语言翻译

AI.TRANSLATE 支持单文本或批量文本的多语言翻译,直接在表格中完成跨语言数据转换,无需切换第三方工具。

  • 功能亮点:支持主流语言互译,兼容单单元格翻译与多单元格批量翻译,翻译结果实时同步,适配业务文档、客户沟通、跨境数据处理等场景。
  • 应用场景:跨境业务报表翻译、多语言客户咨询回复、国际团队文档协同、海外市场数据本地化处理。
  • 示例效果:执行公式 =AI.TRANSLATE(A14:A18, B14),可将英文文本批量翻译为日语;单文本翻译通过 =AI.TRANSLATE(A6, B6) 即可实现英文到中文的快速转换,翻译结果精准贴合语境。

3. AI.TEXTSENTIMENT:精准的文本情感分析

AI.TEXTSENTIMENT 能够自动识别文本数据的情感倾向,支持自定义情感标签(正面/负面/中性),快速量化文本情绪特征。

  • 功能亮点:无需训练模型,直接通过公式调用即可输出情感分析结果,支持批量处理海量文本,适配短文本(评论、留言)与长文本(反馈报告、邮件)。
  • 应用场景:客户满意度调研、社交媒体舆论监测、员工反馈情绪分析、产品评价口碑追踪。
  • 示例效果:对产品评论执行公式 =AI.TEXTSENTIMENT(A6:A13, "Positive", "Negative", "Neutral"),系统自动判定每条评论的情感类别,快速区分正面好评、负面吐槽与中性反馈。

二、技术优势:灵活集成,兼顾高效与安全

GcExcel V9.0 的 AI 功能并非简单嵌入第三方模型,而是基于“可扩展、低代码、高安全”的设计理念,适配企业级应用需求:

1. 可插拔 AI 模型架构

核心基于 IAIModelRequestHandler 接口,不绑定特定 AI 供应商。开发者可灵活对接 OpenAI、Azure OpenAI、DeepSeek、Qwen 等主流模型,自主管理 API 密钥、端点和模型名称,兼顾业务灵活性与合规要求。

2. 低代码无缝集成

AI 功能以表格公式形式提供,无需额外编写复杂代码。现有工作表只需直接调用 AI 函数,即可快速启用智能分析能力,与现有公式、数据透视表、报表导出等功能无缝兼容,升级成本极低。

3. 完善的错误处理机制

针对 AI 模型调用中的常见问题,提供明确的错误代码反馈:

  • #BUSY!:请求正在处理中
  • #CONNECT!:网络或模型处理程序故障
  • #VALUE!:执行逻辑异常
  • #NA!:未配置 AI 模型处理程序

帮助开发者快速定位问题,保障业务稳定性。

4. 安全合规设计

支持本地部署或私有 AI 模型对接,避免敏感数据外流;提供日志记录能力,可追踪 AI 调用过程与结果,满足企业数据安全与合规审计需求。

三、典型应用场景:赋能多行业智能数据处理

GcExcel V9.0 的 AI 功能已深度适配企业高频业务场景,让智能分析融入数据处理全流程:

  • 客户反馈分析:批量处理电商评论、APP 反馈,通过 AI.QUERY 提取核心诉求,AI.TEXTSENTIMENT 量化满意度,快速定位产品优化方向。
  • 跨境业务协同:通过 AI.TRANSLATE 实现多语言订单报表、客户合同的实时翻译,消除跨地区沟通障碍,提升业务效率。
  • 市场调研数据整理:对多渠道调研问卷中的开放文本回答,用 AI.QUERY 按主题分类,AI.TEXTSENTIMENT 分析倾向,快速形成数据洞察。
  • 内部管理优化:分析员工满意度调查中的文本反馈,自动识别正面/负面评价及核心诉求,为企业管理决策提供数据支持。

四、功能效果预览

在这里插入图片描述

(说明:展示表格中客户评论数据通过 AI.QUERY 函数自动分类为“情感倾向”和“讨论主题”的结构化结果,标注公式与输出对应关系)

在这里插入图片描述

(说明:展示英文文本批量翻译为日语的表格效果,呈现单文本与批量翻译的公式调用方式及结果)

在这里插入图片描述

(说明:展示产品评论通过情感分析函数输出“Positive/Negative/Neutral”标签的效果,标注关键评论与情感结果的对应关系)

五、结语

GcExcel V9.0 的 AI 功能,彻底打破了传统表格工具的功能边界,让服务器端电子表格引擎不仅能处理数值计算,更能深度理解和分析文本数据。无论是客户反馈处理、跨境业务协同,还是市场调研分析,开发者都能通过简单的公式调用,快速实现智能化数据处理,大幅降低开发成本、提升业务效率。

扩展链接

针对 Excel 的 Java API 组件

HodlAI: Web3 × AI 的创新融合


一、问题:AI API 的付费模式太"Web2"了

用过 OpenAI/Claude/Gemini 等 API 的人都知道:

  • 先充值,后使用
  • 用多少扣多少
  • 花完再充,无限循环

这本质上是 SaaS 订阅模式——你永远在为使用权付费,而不是拥有什么。

但 Web3 的核心理念是什么?持有即权益。

有没有可能,把这个理念用到 AI 服务上?


二、HodlAI 的解法:代币 = 永久会员卡

HodlAI 提出了一个简单但巧妙的模型:

对比项 传统模式 HodlAI 模式
投入 充 $100 买 $100 代币
使用 用完归零 每天有额度
资金归属 资金锁在平台 代币在自己钱包
性质 纯消费 消费 + 投资
续费 用完再充 每天自动刷新

核心公式

每 5 万代币 = 每日 $1 API 额度

持有 50 万代币,每天就有 $10 免费额度,可以调用 GPT-5 、Claude 4.5 、Gemini 3 等 200+ 模型


三、钱从哪来?交易税驱动的永续资金池

这是最关键的问题。

HodlAI 的答案:3% 交易税,100% 进入 API 资金池。

代币每笔买卖 → 3% 税收 → API 资金池 → 按持有量分配
     ↑                                        ↓
     └──────── 交易越活跃,池子越大 ←─────────┘

正向飞轮效应

  1. 更多人持币
  2. → 更多交易
  3. → 更大资金池
  4. → 更多 API 额度
  5. → 更多人想持币
  6. → 回到 1


四、防作弊:Diamond Hands 钻石手机制

如果没有限制,套利党会这么玩:

买入 → 用光免费额度 → 立刻卖出 → 下次再来

HodlAI 用**"钻石手机制"**解决这个问题:

持有时间 额度释放
0-5 分钟 0%(冷启动)
5 分钟后 10% 额度释放
每小时 +4% 递增
24 小时不卖 100% 满额度(钻石手)
曾经卖过 永久最高 80%(纸手惩罚)

⚠️ 持有时间通过链上数据验证,无法作弊


五、透明度:Stripe 账单公开可查

很多项目说"税收用于开发",但谁也不知道钱去哪了。

HodlAI 做到了真正的透明:

  • ✅ 每一笔 API 充值都公开
  • ✅ 提供 Stripe 官方账单链接
  • ✅ 任何人可以点击验证
  • ✅ 团队 0 抽成

这不是"相信我们",而是"你自己来查"。


六、风险提示

说完优点,也要说风险:

  • ⚠️ 代币价格波动:可能涨,也可能跌
  • ⚠️ 项目早期:模式新颖但未经长期验证
  • ⚠️ 依赖交易量:如果没人交易,资金池增长会停滞


七、项目特点

这个项目的创新点在于:

用 Web3 的代币经济模型,解决 Web2 的订阅付费痛点。

它回答了一个问题:Meme 币除了炒作,能不能有实际用途?

HodlAI 的答案是:可以,把代币变成"AI 服务的永久会员卡"。

这个模式能不能跑通,需要时间验证。

但至少,这是目前有的最有想象力的 Web3 × AI 结合尝试


八、项目愿景

我们相信,AI 服务不应该是永无止境的订阅付费,而应该是持有即权益的价值共享。

HodlAI 是全球首个将 Web3 代币经济与 AI API 服务深度融合的创新平台。


相关链接

平台 链接
🌐 官网 https://hodlai.fun/
🐦 Twitter @hodlai_fun
💬 Telegram https://t.me/hodlai_fun

上个月中旬开始做自媒体,主要是科普方向,差不多也是 12 月 24 号左右爆火,抖+b 连着几期都是几百万播放,粉丝开始暴涨,目前 b 站 20w 粉丝、抖音 12w 、小红书 5w 。

30 号入抖音伙伴计划,开始产生收益,目前一个月下来,接广+视频播放收益,大概 1.2w+,如果不接广告,纯视频收益的话,抖+b 站估计不到 1w 。

总结下来,我这个粉丝量级的,有稳定的视频产出( 3 天一更),那么一个月至少还是有个 1-2w 左右,b 站也接了三次广告(吹风机、得物、转转),b 站现在不接广告,收益是非常低的。抖音的伙伴计划收益还算 ok ,但不好接广,可能我目前没找到渠道。小红书粉丝多,但也不好接广。

再接再厉吧,我也没想到我在年底随便一做自媒体,只是想着做点自己感兴趣的,结果就爆火了,之前学习的各种技能都算是用上了,没有浪费,也算是吃上了互联网这口饭吧。

zfb 搜:露家军欢喜过大年
zfb 搜:五福临门就玩原神
zfb 搜:游戏我爱玩第五人格
zfb 搜:马年上王者
zfb 搜:抢头福是头等大事
zfb 搜:小马宝莉集福卡
zfb 搜:今年打瓦有福了
zfb 搜:一家老小整挺好
image
亲眼见到 8 块,网上还有几十一百的

12家主流IM SDK对比及2026年即时通讯产品推荐
在当今企业数字化转型的浪潮中,即时通讯开发工具包(IM SDK)已然成为构建高效协作平台的关键要素。市场上的IM SDK解决方案纷繁复杂,企业该如何精准挑选出契合自身业务需求、技术架构以及安全标准的产品,成了一项至关重要的决策。本文将全面梳理并对比分析12款市场主流的IM SDK,为企业的技术选型提供清晰的指引。
主流IM SDK全景扫描
云屋科技
云屋科技在国内IM领域占据领先地位,其推出的IM SDK强调私有化部署和信创国产化。凭借稳定可靠的消息传输体系和卓越的弱网通信能力,云屋科技的服务覆盖全球196个国家,拥有超10亿的累计用户,平安银行、中通快递、中国联通、创维等知名企业都是其客户。
核心优势:

丰富场景覆盖:支持单聊、群聊、聊天室等多种模式,能应对从简单沟通到高并发互动社区等各类场景。

多元消息类型:涵盖文本、语音、音视频、文件以及自定义消息,具备离线存储、撤回、多端同步、已读回执等完备功能。

灵活部署方式:提供公有云、私有云及混合云三种部署选择,满足不同企业的合规与架构要求。

网络与安全保障:自研私有通信协议,结合智能重连和多厂商推送集成,确保消息准确送达。借助WE - CAN全球智能网络、多重加密以及内容审核机制,保障通信质量与安全合规。

适用企业:追求快速集成、高稳定性,需要支撑复杂社区互动或开展全球化业务的企业。
WorkPlus
WorkPlus定位为企业级安全协同平台,其核心竞争力在于提供可私有化部署的完整解决方案,将即时通讯与办公应用深度融合,满足组织对数据主权和深度定制的严格要求。
核心亮点:

功能一体化:除了基础的IM、音视频、文件共享功能外,还内置了移动审批、考勤、智能表单、企业云盘等办公套件,并支持与现有业务系统集成。

安全可控性强:强调私有化部署,让企业完全掌控数据。采用多重加密技术,全面适配信创环境(国产软硬件),符合特定行业的严格合规要求。

适用单位:对数据安全、私有化部署及信创兼容性有硬性要求的政府、金融、大型国企等单位。
融云IM (RongCloud)
融云IM提供一站式的即时通讯与实时音视频(RTC)能力,助力开发者高效开发各类通讯应用,以高可靠性、低延迟和出色的跨平台支持著称。
核心特性:

通信双引擎融合:IM与RTC能力深度融合,适用于社交、协同、教育等多种业务场景。

协议与网络优化:采用私有二进制协议,结合智能DNS、多链路接入和抗弱网策略,保障复杂网络环境下的良好通信体验。

全平台支持:SDK覆盖Android、iOS、Web、Windows、macOS、Linux等主流平台,同时提供详细的开发文档和技术支持。

适用团队:需要同时集成IM与高质量音视频功能,且注重跨平台一致性的开发团队。
Dialogic
Dialogic是一家老牌的通信技术提供商,其SDK专注于为企业和设备制造商提供底层的语音、传真、视频及IM多媒体处理能力,在传统通信系统集成方面优势显著。
核心专长:

专业技术能力:提供如Brooktrout(传真)、Diva(语音/视频)等垂直领域的SDK,支持SIP、H.323等标准协议。

灵活编程接口:提供从高层到低层的多种编程接口,满足不同复杂度和控制度的开发需求。

广泛兼容性:支持Linux、Windows等操作系统,并能与自有硬件产品协同工作。

适用项目:开发传统呼叫中心、传真服务器、嵌入式通信设备或需要深度定制底层通信协议的项目。
360织语
360织语依托360集团的安全优势,打造以安全为核心竞争力的企业级IM SDK,为企业提供可定制的实时通讯解决方案。
核心价值:

突出安全特性:在数据传输、身份验证等环节实施多重安全加固,彰显其企业安全背景的优势。

功能完备齐全:提供单聊、群聊、音视频、文件传输、内容审核以及完整的消息管理功能(撤回、回执、搜索等)。

高度可定制化:提供灵活的接口,支持企业根据自身业务流程进行定制开发。

适用企业:对通讯数据安全有极高要求,或处于强监管行业的企业。
小天互连
小天互连专注为政企客户提供私有化部署的IM及协同办公平台,强调安全、合规和业务集成能力。
核心能力:

精准政企导向:深入了解政务、金融、医疗等行业需求,提供符合其安全和流程规范的解决方案。

强大平台化能力:在基础通讯功能之上,集成流程审批、日程管理、文档中心等OA功能,支持低代码开发和第三方应用接入。

私有化数据部署:支持数据本地化部署,确保核心数据不出私域。

适用组织:政企单位及对私有化、业务系统集成有明确需求的大型组织。
容联·云通讯
容联·云通讯致力于提供高性能、低延迟的通讯云服务,其IM SDK在弱网优化和消息可靠性方面进行了专门设计。
核心优势:

优化弱网体验:采用二进制协议与压缩策略,结合无DNS设计、自适应网络等机制,提高弱网环境下的通讯成功率。

可靠消息架构:通过推拉结合的消息架构,确保消息有序、必达,支持阅后即焚、已读回执等特性。

开发者友好:提供丰富的开发文档和示例代码,降低集成难度。

适用应用:对消息到达率、弱网环境用户体验有较高要求的移动应用。
环信
环信作为国内较早的云通讯服务商,提供高可靠、低时延、支持高并发的全球化IM云服务,在社交、教育等领域应用广泛。
核心特点:

高并发处理能力:架构设计针对高并发场景,能够支撑大规模用户同时在线和消息互动。

先进技术保障:与容联类似,采用二进制协议、无DNS、自适应网络等技术,保障性能与稳定性,支持聊天室等互动场景。

全球化服务能力:提供全球化的通信云服务,助力应用出海。

适用应用类型:用户规模增长迅速、有高并发场景或出海需求的社交、直播类应用。
Cisco Jabber
Cisco Jabber是思科统一通信(UC)生态中的核心客户端软件,为企业提供与后端通信系统深度集成的桌面级协作体验。
核心亮点:

深度生态集成:与Cisco Unified Communications Manager (CUCM) 等后端系统无缝集成,提供企业级语音、视频、会议、状态管理的一体化体验。

全面功能覆盖:集成了即时消息、高清音视频、Webex会议、语音邮件、桌面共享等丰富功能。

多平台支持:支持Windows、macOS、iOS、Android等多个平台。

适用企业:已部署或计划部署思科统一通信基础设施的大型企业,追求内部通信系统的高度集成与统一管理。

图片

云之讯 UCPaaS
云之讯UCPaaS提供以通讯能力为核心的PaaS平台,其IM SDK注重高性能与可定制性,帮助开发者快速构建场景化通讯应用。
核心特性:

高性能导向:强调低时延、高并发的处理能力,采用自适应网络策略确保连接效率。

高度可定制:支持自定义消息类型,满足特定业务场景的通讯需求。

开发者支持完善:提供完善的文档和代码示例,便于快速集成。

适用企业类型:寻求稳定、可定制IM能力,并可能同时需要短信、语音等其它CPaaS服务的企业。
企达即时通讯
企达IM SDK面向政企市场,提供以安全可控、私有化部署为特色的即时通讯解决方案。
核心卖点:

安全私有化部署:主打私有化部署方案,确保所有通讯数据留存在企业内部。

功能针对性强:提供IM、音视频、群组管理等基础功能,并可根据政企场景进行定制。

行业适配精准:专注服务政务、金融、医疗等对安全合规要求严格的行业。

适用政企客户:需要完全内网部署、对数据物理隔离有强制要求的政企客户。
敏信即时通讯
敏信即时通讯聚焦企业级市场,提供安全、稳定的私有化IM解决方案,支持灵活的定制开发。
核心优势:

自主部署能力:支持私有化部署,让企业完全掌控数据。

功能可扩展性:在标准IM功能基础上,支持根据企业个性化需求进行功能定制与扩展。

行业解决方案丰富:针对不同行业提供相应的功能模块和合规建议。

适用企业:注重数据主权、且需要IM功能与自身业务系统深度结合的中大型企业。
企业选型的核心考量因素
面对众多选择,企业可从以下关键维度进行评估:

业务需求契合度:明确核心需求是基础文本通讯、高质量音视频、大规模聊天室,还是与OA/ERP深度集成等,根据不同场景选择功能侧重点不同的SDK。

部署与安全模式:评估公有云、私有云或混合云部署需求。对于对数据安全和合规性要求极高的行业(如政务、金融),优先选择支持私有化部署且通过相关认证的产品。

技术性能与稳定性:关注消息延迟、丢包率、并发支持上限等指标。可通过POC测试,模拟实际用户规模和网络条件进行验证。

平台兼容与集成成本:确认SDK是否支持所有目标平台(Web、移动端、桌面端)。评估其API设计、文档完善程度、技术支持力度,这直接影响开发集成效率和长期维护成本。

可扩展性与定制能力:考虑业务未来发展。SDK是否支持自定义消息类型?架构是否易于扩展?能否满足未来的定制化需求?

总拥有成本(TCO):综合计算授权费用、服务器资源、运维人力及定制开发等所有成本。

未来技术趋势前瞻
IM SDK的发展正与前沿技术深度融合:

AI集成:智能客服、语音转文字、实时翻译、内容智能审核与摘要将成为标配,大幅提升沟通效率和体验。

5G与低延迟网络:将催生更高清、更沉浸式的实时音视频应用,如VR/AR远程协作。

多模态交互:消息形态将从文本、语音、视频拓展到富媒体、交互式卡片、3D内容等。

边缘计算:通过在网络边缘处理消息路由、音视频转码等任务,进一步降低延迟,减轻中心云压力。

总结
选择合适的IM SDK是一项具有战略意义的技术决策。融云在公有云场景和功能丰富度方面表现出色;云屋科技、小天互连、企达、敏信等在私有化部署和安全合规方面优势明显;环信、容联在高并发和弱网优化方面有深厚积累;Cisco Jabber是现有思科生态用户的理想选择;Dialogic则满足特定的底层通信集成需求。
建议企业组建跨部门的选型团队,明确需求优先级,对候选产品进行充分调研和测试,从而选出最能推动业务发展、兼顾当下与未来的通讯技术基础。
常见问题解答
Q1:IM SDK如何保障通讯数据的安全?
主流SDK通常采用传输层加密(如TLS)、端到端加密、消息内容安全审核以及严格的身份鉴权机制。对于有超高安全需求的企业,应选择支持私有化部署及国密算法的产品。
Q2:如何评估一个IM SDK的实际性能?
除了参考厂商提供的基准数据,企业应自行进行概念验证(POC)测试。重点测试模拟高并发用户时的消息延迟、送达率、服务端资源消耗,以及在弱网(高丢包、高延迟)环境下的连接稳定性和消息流畅度。
Q3:集成IM SDK的技术难度大吗?
难度因产品而异。目前主流服务商都提供了较为完善的平台化SDK、清晰的API文档、示例代码和集成指南,大大降低了基础功能的接入门槛。但涉及深度UI定制或与复杂业务逻辑对接时,仍需要一定的开发投入。
Q4:选择IM SDK时,最容易忽略的关键点是什么?
企业往往容易忽略运维成本和厂商的长期服务能力。需要了解SDK的日志监控、问题诊断工具是否完善,以及厂商的技术支持响应机制、版本更新频率和路线图,确保其能伴随业务长期稳定发展。

在教育数字化转型加速的2026年,教育项目研发呈现跨团队、多场景、高迭代的特点,从课程系统开发到教学工具迭代,从科研项目推进到校企协同创新,都离不开高效的研发协同工具支撑。优质的工具能打通需求、开发、测试、交付全链路,破解教育研发中“跨部门协同不畅、进度管控模糊、知识沉淀不足”等痛点。以下梳理8大核心工具,涵盖项目管控、文档协作、沟通协同等关键场景。

二、教育研发协同核心工具盘点

(一)禅道

  • 产品介绍​:国内开源敏捷项目管理工具,以“需求-任务-缺陷”全流程闭环管理为核心,支持敏捷、瀑布等多种研发模式,具备轻量化部署与高度自定义特性,适配中小团队到大型组织的不同需求。
  • 适用场景​:K12教育系统研发、高校科研项目管控、教育APP迭代升级、教学资源库搭建等场景,尤其适合需要兼顾流程规范与灵活调整的教育研发项目。
  • 功能深度​:核心覆盖需求池管理、迭代规划、任务拆解与分配、缺陷追踪、工时统计、报表可视化等功能,支持自定义工作流与字段配置,可对接代码仓库、测试工具形成协同链路,开源版本满足基础需求,企业版提供私有化部署与权限精细化管控。
  • 适用行业​:基础教育科技企业、高等院校科研团队、职业教育数字化研发机构、教育信息化解决方案提供商。

(二)Jira

  • 产品介绍​:海外主流敏捷项目管理工具,以强大的流程配置能力与插件生态著称,专注于研发全生命周期管理,可实现多角色、多项目的协同管控。
  • 适用场景​:大型教育集团跨区域研发协同、复杂教学平台定制开发、教育科技企业全球化项目推进、多团队并行的研发任务管控。
  • 功能深度​:支持Scrum、Kanban等敏捷框架,可自定义任务状态、字段与审批流程,具备缺陷管理、迭代跟踪、燃尽图分析等核心能力,通过插件生态可拓展CI/CD集成、效能度量、跨工具联动等功能,适配复杂研发场景的个性化需求。
  • 适用行业​:大型教育科技集团、跨国教育信息化企业、高校国家级科研项目团队、教育硬件与软件融合研发机构。

(三)Confluence

  • 产品介绍​:专注于团队知识管理与文档协同的工具,常与Jira联动形成“项目管理+知识沉淀”闭环,支持多人实时编辑、文档版本管控与结构化存储。
  • 适用场景​:教育研发文档协作、教学方案共创、技术手册编写、项目复盘沉淀、校企协同知识库搭建等场景,尤其适合注重知识传承的研发团队。
  • 功能深度​:提供丰富的文档模板、空间权限管控、评论互动与历史版本回溯功能,支持嵌入表格、图表、附件及第三方工具链接,可构建分层级的知识库体系,实现研发文档的规范化管理与高效检索,保障团队信息同步的准确性。
  • 适用行业​:高等院校科研团队、教育科技企业研发部门、职业教育课程研发机构、教育信息化标准制定团队。

(四)TAPD(腾讯敏捷产品研发平台)

  • 产品介绍​:腾讯推出的一站式敏捷研发协同平台,融合需求管理、任务调度、缺陷追踪、文档协作等功能,具备轻量化上手与生态集成优势。
  • 适用场景​:中小型教育科技企业研发项目、教育APP快速迭代、教学小程序开发、跨部门轻量化协同任务管控。
  • 功能深度​:支持敏捷冲刺规划、任务拆解与优先级排序,内置缺陷管理流程与测试用例管理模块,提供可视化报表与数据统计功能,可与腾讯系工具及主流研发工具集成,兼顾流程规范与易用性,适合快速落地研发协同体系。
  • 适用行业​:中小型教育科技公司、教育创业团队、高校创新创业项目组、区域性教育信息化服务商。

(五)Wrike

  • 产品介绍​:云端项目管理与协同平台,以多视图可视化、跨团队协作与自动化流程为核心优势,适配灵活多变的研发场景。
  • 适用场景​:教育研发项目全流程管控、跨部门协同任务推进、多项目并行管理、研发进度可视化追踪,适合需要快速调整优先级的项目。
  • 功能深度​:提供列表、看板、甘特图等多维度项目视图,支持任务依赖设置、自动化工作流配置、资源分配与工时统计,可实现跨团队成员的实时协作与进度同步,具备一定的可扩展能力,能伴随团队规模增长适配复杂需求。
  • 适用行业​:教育科技初创企业、跨区域协作的教育研发团队、教育营销与技术融合项目、中小型在线教育平台研发。

(六)Slack

  • 产品介绍​:以频道为核心的即时通讯与协作工具,打破传统沟通壁垒,实现“沟通-工具-任务”的一体化协同,支持多第三方工具集成。
  • 适用场景​:教育研发团队实时沟通、跨地域协同讨论、研发任务进度同步、紧急问题响应,尤其适合分布式研发团队。
  • 功能深度​:可按项目、部门创建专属频道,支持消息线程讨论、文件共享、语音视频会议等功能,核心优势在于与研发工具的联动能力,能将任务提醒、缺陷通知、进度更新等同步至频道,减少工具切换成本,保持团队沟通的高效与聚焦。
  • 适用行业​:跨国教育科技企业、分布式教育研发团队、校企联合研发项目组、多角色协同的教育信息化项目。

(七)有道云协作

  • 产品介绍​:国内轻量化团队协作与文档管理工具,以“文档为核心”整合任务管理、文件共享等功能,具备易上手、多终端同步特性。
  • 适用场景​:教育研发轻量任务协同、文档共创、教学资源整理、小型项目进度追踪,适合对工具复杂度要求低的团队。
  • 功能深度​:支持多人实时在线编辑、文档版本管理、权限精细化控制,内置基础任务分配与进度追踪功能,可实现文档与任务的关联管理,界面简洁直观,学习成本低,支持本地文件同步与云端存储,满足基础研发协同需求。
  • 适用行业​:中小学教育信息化研发团队、小型教育创业公司、高校课程研发小组、区域性教育资源开发机构。

(八)戴西iDWS数智化研发平台

  • 产品介绍​:国产化数智化研发平台,聚焦复杂工程研发场景,融合AI智能辅助、算力调度、许可管理与数据治理功能,支持私有化部署与国产化适配。
  • 适用场景​:大型教育装备研发、复杂教学系统定制、教育AI算法研发、高安全需求的教育信息化项目,适合对研发效能与数据安全要求高的团队。
  • 功能深度​:内置NexAI智能体,可在研发全流程提供智能建议与异常识别,具备算力调度、许可资源优化、研发数据统一纳管等核心能力,支持多学科协同研发与7×24小时不间断任务监控,强化研发过程的智能化与工程化管控,适配国产化信创需求。
  • 适用行业​:大型教育科技集团、教育装备研发企业、高校AI教育研发团队、有国产化需求的教育信息化服务商。

image.png

教育研发协同工具的选型需结合团队规模、项目复杂度与行业特性,核心是实现“流程规范化、协作高效化、知识体系化”。2026年,随着教育科技与AI技术的深度融合,工具的智能化、国产化与生态化将成为主流趋势,研发团队可根据自身需求组合适配,构建专属协同体系,赋能教育项目高质量落地。

1.前言

在模型板端部署过程中,开发者主要关心图像如何获取,模型性能如何评测以及如何优化模型等问题。对于图像的获取,地平线提供了 Pyramid 硬件,其不但可以获取多尺寸图像,且利用内存共享机制可将内存给到 BPU 直接进行推理。针对耗时,内存占用,DDR 带宽占用等指标进行评测和优化,地平线提供了诸如 Trace,hrt\_ucp\_monitor 等一系列性能分析工具用于性能监测,使得开发者能够清晰掌握模型运行时的资源占用和硬件效率。最后,地平线提供 VP,HPL 以及 DSP 多种模块用于前后处理环节的算法开发。本文将结合实例说明模型如何进行部署,性能分析以及常见的问题解析。

2.UCP 简介

征程 6 工具链在应用部署端新引入了统一计算平台(Unify Compute Platform,以下简称 UCP)。UCP 面向应用层,属于嵌入式应用开发(runtime)范畴,提供视觉处理(Vision Process,以下简称 VP)、模型推理(Neural Network,以下简称 NN)、高性能计算库(High Performance Library,以下简称 HPL)等功能。

UCP 还定义了一套统一的异构编程接口,支持对 SoC 上各后端硬件资源的调用,包括 BPU、DSP、ISP、GDC、STITCH、JPU、VPU、PYRAMID 等,以完成 SoC 上任务的统一调度。

UCP 的架构图如下所示:
MTI4MFgxMjgwICgxKQ==.png
1.png

3.模型推理

3.1 快速上手

以下面的代码为例,说明 DNN 和 UCP 接口的使用方式,整体包含 5 个主要步骤,详细信息可参考用户手册《<u>统一计算平台-模型推理开发</u>》,《<u>模型部署实践指导-模型部署实践指导实例</u>》,《<u>UCP 通用 API 介绍</u>》等相关章节:
2.png

int main(int argc, char **argv) {
​  ...    // 解析命令行参数
​  hbDNNPackedHandle_t packed_dnn_handle;
​  hbDNNHandle_t dnn_handle;
​  const char **model_name_list;
​  auto modelFileName = FLAGS_model_file.c_str();
​  int model_count = 0;
​  
​  //1. 加载模型并获取模型名称列表以及Handle
​  {
​    hbDNNInitializeFromFiles(&packed_dnn_handle, &modelFileName, 1);
​    hbDNNGetModelNameList(&model_name_list, &model_count, packed_dnn_handle);
​    hbDNNGetModelHandle(&dnn_handle, packed_dnn_handle, model_name_list[0]);
​  }

​  std::vector<hbDNNTensor> input_tensors;
​  std::vector<hbDNNTensor> output_tensors;
​  int input_count = 0;
​  int output_count = 0;
​  
​  //2. 根据模型的输入输出准备张量
​  {
​    hbDNNGetInputCount(&input_count, dnn_handle);
​    hbDNNGetOutputCount(&output_count, dnn_handle);
​    input_tensors.resize(input_count);
​    output_tensors.resize(output_count);
​    prepare_tensor(input_tensors.data(), output_tensors.data(), dnn_handle);
​  }
​  //3. 准备输入数据并填入到对应的张量中
​  read_image_2_tensor_as_nv12(FLAGS_image_file, input_tensors.data());
​  // 确保更新输入后进行Flush操作以确保BPU使用正确的数据
​  for (int i = 0; i < input_count; i++) {
​      hbUCPMemFlush(&input_tensors[i].sysMem[0], HB_SYS_MEM_CACHE_CLEAN);
​    }
​    
​  //4. 创建任务并进行推理
​  hbUCPTaskHandle_t task_handle{nullptr};
​  hbDNNTensor *output = output_tensors.data();
​  {

​    hbDNNInferV2(&task_handle, output, input_tensors.data(), dnn_handle);
​    hbUCPSchedParam ctrl_param;
​    HB_UCP_INITIALIZE_SCHED_PARAM(&ctrl_param);
​    ctrl_param.backend = HB_UCP_BPU_CORE_ANY;
​    hbUCPSubmitTask(task_handle, &ctrl_param);
​    hbUCPWaitTaskDone(task_handle, 0);
​  }
​    //5. 处理输出数据
​  for (int i = 0; i < output_count; i++) {
​    hbUCPMemFlush(&output_tensors[i].sysMem[0], HB_SYS_MEM_CACHE_INVALIDATE);
​  }

​  //6: 释放资源
​  {
​  
​    hbUCPReleaseTask(task_handle);
​    for (int i = 0; i < input_count; i++) {
​      hbUCPFree(&(input_tensors[i].sysMem[0]));
​    }
​    for (int i = 0; i < output_count; i++) {
​      hbUCPFree(&(output_tensors[i].sysMem[0]));
​    }
​    // 释放模型
​    hbDNNRelease(packed_dnn_handle);
​  }

​  return 0;
}

⚠️ 上面的例子仅为 demo,实际使用时,需要注意以下几点:

  1. 图像可以直接从 Pyramid 接口直接获取 nv12 的输出,无需进行拷贝,可直接传递给 BPU 进行推理
  2. 输入输出内存的大小和对齐 stride,详见第 5.3 节说明
  3. 接口进行返回值检查,以保证函数的正确执行

3.2 实用技巧

3.2.1 添加 desc

有的时候,为了方便自动化作业,需要给不同的模型,输入和输出打上标签以区分他们。

需要注意的是,如果是为输入添加描述信息,由于 pyramid 和 resizer 节点会改变 bc 的输入节点数,因此需要给对应每个节点都添加对应的信息。

比较推荐的做法是在 compile 之前再添加:

from hbdk4.compiler import load
quantized_bc = load("xxx.bc")
func = quantized_bc[0]
func.desc = "xxx model" #模型的描述
func.inputs[0].desc = "xxx input" #模型输入的描述
func.outputs[0].desc = "xxx output" #模型输出的描述

模型部署时,通过下面的接口来获取描述信息:

//模型的描述信息
int32_t hbDNNGetModelDesc(char const **desc, uint32_t *size, int32_t *type,
​                          hbDNNHandle_t dnnHandle);
//输入的描述信息
int32_t hbDNNGetInputDesc(char const **desc, uint32_t *size, int32_t *type,
​                          hbDNNHandle_t dnnHandle, int32_t inputIndex);
//输出的描述信息
int32_t hbDNNGetOutputDesc(char const **desc, uint32_t *size, int32_t *type,
​                           hbDNNHandle_t dnnHandle, int32_t outputIndex);
3.2.2 模型打包

模型打包功能,可以将多个模型打包进一个 hbm 文件中,对于共享任务可以节省模型的空间,具体 api 介绍可见《<u>HBDK Tool API Reference</u>》:

from horizon_plugin_pytorch.quantization.hbdk4 import export
from hbdk4.compiler import load, convert, compile, link
# export 阶段记得配置 name
qat_bcA = export(qat_model_A, example_input, name="backbone_head1_head2")
quantized_modelA = convert(qat_bcA, "nash-m")
# 注意:此时compile生成的模型后缀名为.hbo
hbo_nameA = "nameA_compiled.hbo"
hboA = compile(quantized_modelA, path=hbo_nameA, march="nash-m")

qat_bcB = export(qat_model_B, example_input, name="backbone_head1")
quantized_modelB = convert(qat_bcB, "nash-m")
hbo_nameB = "nameB_compiled.hbo"
hboB = compile(quantized_modelB, path=hbo_nameB, march="nash-m", opt=2)

# link生成打包模型,后缀名为.hbm
hbm_name = "compiled.hbm"
hbm = link([hboA, hboB], hbm_name)

在生成 hbm 文件后,上板运行使用 hrt\_model\_exec 查看模型可以看到:
4.png

推理测试时,用 model\_file 指定 hbm 路径,model\_name 指定具体哪一个模型
5.png

3.2.3 小模型批处理

由于 BPU 为资源独占型硬件,对于那些耗时较短的小模型,其框架调度耗时开销可能大于其模型运行时间,为了缓解这个问题。在征程 6 平台,UCP 支持通过复用 task\_handle 方式来一次将多个模型下发,全部执行完成后再一次性返回,从而将 N 次开销合并为一次:

// 获取模型指针并存储
std::vector<hbDNNHandle_t> model_handles;

// 准备各个模型的输入输出,准备过程省略
std::vector<std::vector<hbDNNTensor>> inputs;
std::vector<std::vector<hbDNNTensor>> outputs;

// 创建任务并进行推理
{
    // 创建并添加任务,复用task_handle
    hbUCPTaskHandle_t task_handle{nullptr};
    for(size_t task_id{0U}; task_id < inputs.size(); task_id++){
        hbDNNInferV2(&task_handle, outputs[task_id].data(), inputs[task_id].data(), model_handles[i]);
    }
    
    // 提交任务
    hbUCPSchedParam sche_param;
    HB_UCP_INITIALIZE_SCHED_PARAM(&sche_param);
    sche_param.backend = HB_UCP_BPU_CORE_ANY;
    hbUCPSubmitTask(task_handle, &sche_param);
    
    // 等待任务完成
    hbUCPWaitTaskDone(task_handle, 0);
}
3.2.4 优先级抢占

在征程 6 计算平台上,BPU 硬件本身没有抢占功能,对于一个计算任务其一旦进入 BPU 后,就无法被打断,其他计算任务只能等待当前计算任务完成退出后才能运行。

此时很容易出现 BPU 计算资源被一个大模型任务独占,进而影响其他高优先级模型任务的执行,针对这个问题,工具链采用 cpu 调度的机制来优化 BPU 资源:

  1. hbm 模型在 BPU 推理表现为一个或多个 function-call,function-call 为 BPU 最小的执行单元。当一个模型的所有 function-call 都执行完成时,这个模型也就执行完成了
  2. BPU 模型任务抢占粒度设计为 function-all,如果一个模型只有一个 function-call 那么其无法被抢占,如果一个模型有多个 function-call 可能出现这个模型完成部分 function-call 后,BPU 挂起当前模型,然后切换执行其他模型

UCP 支持任务优先级调度和抢占,可通过 hbUCPSchedParam 结构体进行配置:

typedef struct hbUCPSchedParam {int32_t priority;int64_t customId;uint64_t backend;uint32_t deviceId;} hbUCPSchedParam;
  • priority:任务优先级,支持[0, 255]之间的数值,对于模型任务而言:

    • [0, 253]普通优先级,不可抢占其他任务,但在未执行时支持按优先级进行排队
    • 254:为 high 优先级,支持抢占普通任务
    • 255:为 urgent 优先级,支持抢占普通任务和 high 任务
    • 可被中断抢占的任务,需要在模型编译阶段配置 max\_time\_per\_fc 进行模型拆分
  • customId:自定义优先级
  • backend:任务硬件 id
  • deviceId:设备 ID 比如,有下面的两个模型,一个单线程耗时 20.9 ms,一个单线程耗时 8.3ms:
    6.png

让这两个模型同时运行,且设置 max\_time\_per\_fc=2000,两个模型的优先级均为普通优先级时 UCP trace 耗时如下:
7.png

当将模型 2 的优先级设为 high,模型 1 仍为普通优先级时:
8.png

可以看到,在下面的模型一次 infer 过程中,模型被切分为多个 2ms 运行的 function-call 运行,中间插入了很多 high 优先级模型,导致一次模型前向耗时大大增加。

3.2.5 LRU 内存优化

LRU(Least Recently Used)算法是用于优化内存页的调度算法。BPU 内存在 BPU 实际使用前,NN 模块内部需要对该块内存进行特殊处理才能够正常使用,如果频繁对模型及其依赖申请释放会导致 CPU 负载变大,从而可能会引发性能问题。 如果确实有频繁申请释放的需求,推理库提供了内存 LRU 缓存功能,通过设置环境变量 HB_NN_ENABLE_MEM_LRU_CACHE true 来使用。设置方式如下:

export HB_NN_ENABLE_MEM_LRU_CACHE=true

开启了这个功能之后,对模型的输入输出不是实时申请和释放的,会在一开始就申请好并进行循环复用。所以如果用户在模型跑完推理后就立刻执行内存释放操作,实际不会立刻释放,UCP 这一层会等一段时间后才执行(默认至少 1s),所以可能会有内存泄漏的风险,建议是模型推理的内存块不要释放,且模型每次输入输出的虚拟地址是复用的。

3.3 输入输出处理

3.3.1 Crop 裁剪

Crop 主要思想是利用地址偏移,并通过 stride 将图像多余的部分进行屏蔽从而送入准备好的模型输入。这种 Crop 方式不引入 memory copy,减少 IO 开销。

限制:

  1. 图像输入大小要大于模型实际输入大小,w\_stride 要 32(E/M)/64(P/H)字节对齐
  2. 模型的 validShape 为固定值,stride 为动态值
  3. 裁剪偏移的输入首地址要 32 对齐

详细示例可以参考《<u>基础示例包使用说明</u>》中 advanced\_samples 的 crop 示例

3.3.2 Resizer

Resizer 主要是指具有 nv12 图像输入和 ROI 输入的模型,编译器支持通过 JIT 动态指令的方式,从 nv12 图像上完成抠图 +Resize 功能。其不仅仅是图像 stride 为动态,输入的 H,W 也为动态,w\_stride 也同样需要满足 32(E/M)/64(P/H)字节对齐,roi 不需要进行对齐:
9.png
10.png

3.3.3 图像 tensor 对齐

在征程 6 芯片,有一块叫 Pyramid 的金字塔硬件处理模块,可提供 Camera 输入图像的缩放及 ROI 抠图能力,其输出为 nv12 类型的图像数据,并可基于共享内存机制直接给到 BPU 进行模型推理,因此在征程 6 工具链中:

  • Pyramid 模型是指具有 nv12 图像输入的模型
  • Resizer 模型指的是具有 nv12 图像输入和 ROI 输入的模型,编译器支持通过 JIT 动态指令的方式,从 nv12 图像上完成 ROI 抠图 +Resize 功能 征程 6P/H 要求 nv12 stride 满足 64 对齐,征程 6E/M/B 是 32 对齐。 Pyramid 的输入 stride 为动态,比如模型输入为 224x224 的 nv12 图像,其格式为:
    11.png

其中,-1 为占位符,表示为动态,Pyramid 输入的 stride 为动态。那么此时我们就需要通过手动计算方式来获取了:

#define ALIGN_SIZE(size,align_byte) (((size)+(align_byte-1))&~(align_byte-1))
HBDNNTensor* input;
auto dim_len = input[i].properties.validShape.numDimensions;
for(int dim_i = dim_len-1;dim_i>=0;dim_i--){
​    if(input[i].properties.stride[dim_i]==-1){
​        auto cur_stride = input[i].properties.stride[dim_i+1] * 
​            input[i].properties.validShape.dimensionSize[dim_i+1];
​        input[i].properties.stride[dim_i] = ALIGN_SIZE(cur_stride,NUM);
​    }  
}
int input_memSize = input[i].properties.stride[0] * input[i].properties.validShape.dimensinoSize[0];

对于非 nv12 类型的其他输入,以 rgb 输入 input 作为例子,1x224x224x3 的 rgb 图像如下所示:
12.png

输入申请的大小可以通过 aligned byte size 来获取:

int input_memSize = input[i].properties.alignedByteSize;
3.3.4 内存单元对齐

BPU 中的内存单元也是遵循向量化对齐的原则,类似于 avx/neon 等,需要内存对齐。所以对于不满足对齐最小字节的内存要被强制对齐到最小的内存字节上。

征程 6H/P tensor 最小申请内存是 256 字节,征程 6E/M 是 64 字节,征程 6B 是 128 字节,这个差异会体现在模型的 aligned byte size 和 stride 属性上。

举个例子:
13.png

上面模型的 stride=4000,output 需要申请的内存为 4000Byte,但由于内存需要对齐,所以实际上的需要申请的内存大小为((4000+(256-1))&~(256-1))=4096Byte。 在模型实际部署中,非图像输入/输出节点所需申请的内存大小均可以从模型节点属性的结构体中读取到,因此无需特别关注:

hbDNNTensor* output;
int output_memSize = output[i].properties.alignedByteSize;
3.3.5 padding

由于内存单元对齐的影响,feature 申请的大小和拷贝需要根据 stride 和 alignedByteSize 来进行。用户侧需要手动处理这些 padding,可能对前处理和后处理的代码有较大的变动。这里地平线提供了一种优化方案:input\_no\_padding/ouput\_no\_padding,在开启这两个选项后,可以直接将输入/出实际大小的内存送入接口,接口内部会自行处理对齐,无需用户侧修改代码。但开启这个参数后,可能会对模型延时产生微小影响。

  • input\_no\_padding:对所有非图像的输入去 padding
  • output\_no\_padding:对模型所有的输出去 padding 若编译时配置了 input\_no\_padding=True,output\_no\_padding=True,无需关注非图像的对齐问题:
#PTQ配置方式,在yml中
compiler_parameters:
    extra_params: {"input_no_padding": True, "output_no_padding": True}

#QAT配置方式
from hbdk4.compiler import compile
compile(quantized_bc,march,path,input_no_padding=True,output_no_padding=True)

举个例子,比如一个模型的输出 shape 为 1x21x21x255,其 output\_no\_padding=False 和 output\_no\_padding=True 的结果如下图所示:
14.png

4.性能分析

4.1 模型性能分析

如果开发者没有实体板子,只有 hbm 模型,可以使用 hbdk4 中的 hbm\_perf 接口获取静态性能评估文件(html,json 格式)以及模型耗时:

from hbdk4.compiler import hbm_perf
hbm_perf(xxx.hbm)

模型中如果有 CPU 算子,则会影响 perf 的结果,建议去除 CPU 算子之后再进行分析。CPU 算子一般可以通过以下两种方式查看到:

  1. convert 之后的模型可视化,然后查询是否有 hbtl 类型算子
  2. 利用 statistics 接口统计 bc 模型算子类型

如果有与开发环境直连的板子可以使用下面的方式进行测试,与实测偏差会更小:

from hbdk4.compiler import hbm_perf
hbm_perf(xxx.hbm,remote_ip="xxx")

或按照用户手册《<u>统一计算平台-模型推理工具介绍</u>》使用 hrt\_model\_exec 工具在板端进行性能测试:

hrt_model_exec perf --model_file=xxx.hbm --frame_count=200
4.1.1 带宽占用

静态评测时,带宽信息可以从模型编译过程中生成的 xxx.html/xxx.json 中文件获取,在 ptq 中会自动生成这两个文件,在 qat 中,可以通过生成 hbm 模型后,使用 hbm\_perf 接口来生成这两个文件。

平均带宽

平均带宽(GB/s) = DDR bytes per second( for n FPS)/n * 设计帧率/2^30,以下面的模型为例,实际需求帧率为 30FPS,那么该模型所需的平均带宽为:12293553099/57.12 * 30/2^30 = 6.01GB/s:
15.png

峰值带宽

峰值带宽可以通过推理带宽柱状图来进行分析,最高的柱子即最大的 load/strore 带宽。比如下面这个图,该模型的最大 load 需求为 15515MB/s=15.15GB/s,最大的 store 需求为 13125MB/s=12.82GB/s,最大的 load+store 需求为 11954+11812=23766MB/s=23.21GB/s
16.png

4.1.2 带宽优化

在实际应用中,模型的推理耗时可能出现比正常评测要更长的现象,主要原因往往来源于 BPU 的等待耗时以及带宽资源不足的影响。这里主要针对带宽问题进行说明。

BPU 模型的带宽消耗主要集中在模型加载、推理时的 featuremap 读写,输出写回,优化策略如下:

  1. 使用 balance 参数来平衡带宽和延时
compile(balance=x) # 0=优先ddr优化,100=优先延迟优化,默认balance=100,推荐balance=2

ptq 时,修改配置文件中的 compile\_mode:

compile_mode: 'balance'
balance_factor: 2
  1. 对于小模型使用多 batch 推理模式,可以减少 weight 的加载次数
  2. 减少模型抢占调用:优先级 255 的抢占任务会刷新整个 SRAM,导致大量带宽开销,建议通过任务编排方式运行模型,而不是优先级抢占
  3. Batch 拆分:若模型需要 concat 多路输入(比如 BEV 类模型),将 batch mode 拆分,每一路单独提取特征,牺牲很少的延时来降低峰值带宽
4.1.3 内存占用

模型所需的内存可以通过 Summary 查看到:
17.png
18.png

Shared temporary memory 共享临时内存,主要目的是用于相同优先级模型共享内存,优化模型推理内存的使用。对于相同优先级的模型,会共享 temporary memory。该功能的约束条件:

  1. 跨 BPU Core 不可用
  2. 跨优先级不可用,0-253 的优先级之间的都可以共享,254 只能和其他 254 共享,255 只能与其他 255 共享
  3. 跨进程不可用

当开发人员对模型运行时所需内存进行评测时,可先通过 Summary 的内容先进行静态数据评估,模型的内存占用=Static Memory + Dynamic Memory。

4.2 动态性能分析

在模型的部署和运行过程中,我们比较关注模型的推理耗时,bpu/cpu 占用,DDR 读写带宽以及内存占用。这些信息可以通过以下工具来获取:

4.2.1 hrt\_model\_exec

hrt\_model\_exec 是一个模型执行工具,可直接用于在开发板上评测模型的推理性能,获取模型信息。工具源码路径在 samples/ucp\_tutorial/tools/hrt\_model\_exec。

模型输入输出信息:

hrt_model_exec model_info --model_file xxx.hbm

19.png

模型单线程耗时:

hrt_model_exec perf --model_file xxx.hbm --frame_count 1000 --thread_num 1

20.png

模型多线程耗时:

hrt_model_exec perf --model_file xxx.hbm --frame_count 1000 --thread_num 4

21.png

指定优先级运行:

hrt_model_exec perf --model_file xxx.hbm --frame_count 1000 --thread_num 1 --task_priority 1

更多的 hrt\_model\_exec 命令可以在《<u>统一计算平台-模型推理工具介绍-hrt\_model\_exec</u>》中查看。

4.2.1.1 单线程和多线程差异

在单线程下,工具按照单核单线程的串行逻辑运行,统计的性能可以理解为单帧处理的平均时间(包括调度开销,BPU 执行时间以及 CPU 执行时间)。

在多线程下,工具会启动多个线程进行模型推理,统计得到的 FPS 表示充分使用资源情况下模型的吞吐量,主要用于评测高并发情况下的模型处理能力。

  • 为什么单线程模型运行耗时比多线程耗时短? 答:由于 BPU 本身是一种独占硬件,同一时间只能运行一个任务,多个线程同时提交任务时,只能按一定顺序执行,因此多线程模式下,模型的 Latency 耗时的增大,主要来源于任务下发后的等待时间。
4.2.2 hrt\_ucp\_monitor

工具 hrt\_ucp\_monitor 是一个关于监控硬件 IP 占用率和内存信息的工具。hrt\_ucp\_monitor 工具位于 samples/ucp\_tutorial/tools 中。 hrt\_ucp\_moitor 支持的内存信息包括 DDR 读写带宽,ION 内存,进程内存,默认为每秒采样 500 次,详细的运行参数请参考《<u>统一计算平台-UCP 性能分析工具</u>》。在终端运行命令 hrt\_ucp\_monitor 即可看到对应的监控信息:
22.png

rss 查看可以通过以下命令查看:

ps -aux //RSS指标
top //RES指标

23.png补24.png

HBMEM 为应用进程申请的总 ION 大小:

ION:ION 是为了解决内存碎片化而引入的通用内存管理器,一共有三种:ion(上面的 ion\_cam),reserve(上面的 cma\_reserved)和 carveout(上面的 carveout)。ion 是主要类型,用于一般的内存分配。reserve 本质上也是 carveout,区分的主要目的是 DDR 支持多个 bank。对于 BPU 模型来说,其优先在 carveout 上分配内存。可以通过观察 /sys/kernel/debug/ion/heaps/carveout 来测试内存占用:

24.png

上图为未加载时,carveout 的状态

!25.png

模型加载后,carveout 的状态

4.2.3 hrut\_ddr

带宽占用主要使用 hrut\_ddr 来进行分析:

Usage: hrut_ddr [OPTION]...
Show and calculate memory throughput through AIX bus in each period.

Mandatory arguments to long options are mandatory for short options too.
   -t, --type     The type of monitoring range.    Supported
                  values for type are(case-insensitive)
                  when multiple type specified, Enclose in quotation marks 
                  e.g. -t "mcu cpu"
                  If the types exceeds 1, a RoundRobin method is used.
                       For accuracy, set as less types as possible
                  e.g. In the first period the mcu data is read, second period the cpu data is read. 
                  The elapsed time get averaged, and each type result in one round put into one table 
                     slc  vdo  cam  cpe0  cpe1  cpe2  cpe3  cpelite  
                   idu  gpu  vdsp  peri  his  sram  bpu_p0  bpu_p1 
                   bpu_p2  mcu  cpu  secland 
                  cpu        only monitor the throughput of CPU master range
                  bpu        only monitor the throughput of BPU master range
                  cam        only monitor the throughput of Camera master range
                  J6P Note: cam contains cpe, cpelite, idu. bpu id range: bpu_p0, bpu_p1(only in vm), bpu_p2(only in vm)
                  rr_all     RoundRobin between all range types
   -p, --period   The sample period for monitored range. (unit: us, default: 1000, range:[1000, 2000000])
   -d, --device   The char device of DDR Perf Monitor. [0~5] 0: ddrsys0 mon0, 2 ddrsys1_mon0
                   J6P: [0~15]
   -n, --number   The sampling period times for monitored range before copying to userspace. (0~400] default: 100
                  !!!When in roundrobin mode, this is forcely set to 1
   -N, --over_all Over_all read times. i.e. Approximately how much tables you get in commands line
   -f, --filename the csv output filename
   -r, --raw      Output raw data, hexadecimal format, without conversion. Decimal by default
   -c, --csv      Output csv format data
   -D, --dissh    Disable shell output
Example:
hrut_ddr -t cpu -p 1000 -d 0
hrut_ddr -t cpu -p 1000 -r
hrut_ddr -t cpu -p 1000
hrut_ddr -t "cpu mcu" -p 1000 -c -f "mon0.csv"
hrut_ddr -d "0 1" -p 1000

根据 hrut\_ddr 工具的 log,获取 BPU 带宽占用和系统带宽占用,Read+Write 的值即为总带宽:
26.png

4.3 问题

在实际的运行中,可能会出现与上面带宽评测结果差距较大的情况。这是由于在实际中不仅仅是模型的运行需要带宽,cam 和 cpu 也是需要带宽的。根据过往的经验,可以根据峰值带宽和均值带宽来提前判断是否存在风险,高于理论带宽的 75% 以上,就需要进行测试验证了。

5.推理典型问题处理

5.1 timeout 问题

5.1.1 模型 timeout 时间是否设置合理

如果模型是异步推理的,模型本身执行的时间较长,而异步等待接口设置的超时时间不足也可能造成 timeout。

hbUCPWaitTaskDone(hbUCPTaskHandle_t taskHandle, int32_t timeout);

timeout 的耗时可以设置为模型正常推理时间的一倍即可。

5.1.2 CPU 负载是否过高

由于模型的运行调度是由 CPU 来处理的,如果调度线程一直获取不到时间片,即使任务完成也无法及时同步到用户接口,导致推理延时。

在运行过程中,可以使用 top/htop 等监视 CPU 利用率,如果 CPU 负载超过 90%,可能出现系统异常,这个必须得到解决

5.1.3 内存泄漏

当存在内存泄漏时,在系统内存不足的情况下,内存申请缓慢,可能会导致推理超时。可以在编译时添加检测:

target_compile_options(testbed PRIVATE -fsanitize=address)
target_link_options(testbed PRIVATE -fsanitize=address)

或在单元测试时,利用 getpid()获取当前进程的 pid,再查看/proc/pid/status 中的 VmRSS。

5.2 推理 hang

模型指令原因导致的底层运行错误,错误没有上报,导致 hang 住。此时,可通过 cat/sys/devices/system/bpu/bpu0/task_running 对 bpu 任务情况进行查看,如下图所示:27.png

s\_time 不为空表示任务已经正常开始,而 p\_time 一直增加没有减少,即可认为 BPU 任务 hang 住了, 可以使用 watch 命令来记录 bpu 任务情况:

watch -n 2 'cat /sys/devices/system/bpu/bpu0/task_running|tee -a bpu.log'

如果发生此类问题,可以提供 bpu log 给地平线技术支持人员分析,log 的地址在:/log/bpux/message 中。

5.3 log 获取

在遇到上面的问题的时候,我们可以通过分析日志来获取问题原因,需要的是 UCP 日志以及系统日志:

5.3.1 UCP 日志

在程序运行时可以看到各种 log 的等级:
28.png

在发生上面的问题后,为了获取具体的问题原因,可以修改 log 等级来抓取不同等级的日志,配置方式如下:

UCP log 设置主要通过以下环境变量:

  • HB\_UCP\_LOG\_LEVEL:ucp 模块 log 等级(等级从 0 到 6,分别为 trace, debug, info, warn, error, critical, never, 默认为 warn)
  • HB\_NN\_LOG\_LEVEL:nn 模块 log 等级
  • HB\_UCP\_LOG\_PATH: ucp 日志存储路径
export HB_UCP_LOG_LEVEL=3
export HB_UCP_LOG_PATH=xxx

更详细的环境变量和说明可以参考《<u>统一计算平台-UCP 通用 API 介绍-环境变量</u>》

5.3.2 系统日志

系统日志获取:

dmesg:在 Linux 系统中用于显示或控制内核环形缓冲区的内容更,允许查看或操作内核消息。

dmesg >dmesg.log

logcat:可以用于打印设备的系统日志

logcat >logcat.log

6.UCP Trace 使用

征程 6 算法工具链提供了一套板端实测性能工具 UCP Trace,通过在 UCP 执行的关键路径上嵌入 trace 记录,进而深入分析 UCP 应用调度逻辑,具体可以参考《<u>统一计算平台-UCP 性能分析工具</u>》一节。 UCP Tracer 记录点:UCP 记录点包括任务 trace 记录点和算子 trace 记录点
29.png

6.1 in\_process 模式

6.1.1 运行实例

in\_process 模式下只能抓取 UCP 进程内的 trace,无需启动 prefetto 的后台进程

启动步骤:

export HB_UCP_PERFETTO_CONFIG_PATH=ucp_in_process.json
export HB_UCP_ENABLE_PERFETTO=true
  • ucp\_in\_process.json
{
​  "backend": "in_process",    #backend可选
​  "trace_config": "ucp_in_process.cfg"   #perfetto的配置文件路径,仅在in_process下有效
}
  • ucp\_in\_process.cfg
# Enable periodic flushing of the trace buffer into the output file.
write_into_file: true

# Output file path
output_path: "ucp.pftrace"    #保存trace文件的路径

# Sampling duration: 10s
duration_ms: 10000          #0表示持续抓取

# Writes the userspace buffer into the file every 2.5 seconds.
file_write_period_ms: 2500   #控制buffer写文件,不是覆盖,相当于控制罗盘,一般不需要特殊指定

buffers {
​  # buffer size
​  size_kb: 65535   #如果出现数据丢失可设置大一些
​  # DISCARD: no new sampling data will be stored when the storage is full.
​  # RING_BUFFER: old sampling data will be discarded and new data will be stored when the storage is full.
​  fill_policy: RING_BUFFER
}

# UCP data source
data_sources: {
​    config {
​        name: "track_event"
​        track_event_config {
​           enabled_categories: "dnn"
​        }
​    }
}

在该目录下会生成 trace 文件:文件名为 output\_path 中配置的文件名:
30.png

1.Perfetto 不支持自动覆盖,如果设置路径中有之前的 ptrace 文件会报错

31.png

2.ucp\_in\_process.json 中指定的文件路径是相对路径,需要配置文件和脚本放在同一个路径下

6.1.2 结果解析

生成的 ucp.pftrace 就是我们要分析的文件,使用<u>Perfetto UI</u>打开:
32.png

选择生成的 ucp.pftrace 文件,选中一个带有 forward::Wait 字样的一块,如下图所示:
33.png

可以看到等待部分耗时大约为 80.xms,也可以看到线程和进程的信息(Wait 部分)
34.png

  • 单线程 + 多帧
hrt_model_exec perf --model_file xxx.hbm --frame_count 4

35.png

  • 多线程 + 多帧
hrt_model_exec perf --model_file xxx.hbm --frame_count 10 --thread_num 4

36.png

如何分析:

  1. 查看 UCP 内部调度是否正常例如哪块耗时明显高于预期
  2. 观察 BPU 是否持续在使用:例如两个 BPU Opfinish 之间的耗时是否符合预期,继而判断任务编排是否合理,任务下发是否及时
  • 多线程 + 多帧 +CPU 结果
    37.png

6.2 system 模式

在 system 模式下,UCP trace 只是其中一个数据源,因此需要运行 Perfetto 的后台进程来完成 trace 捕获。

  1. 运行 Perfetto 后台进程
tracebox traced --background
tracebox traced_probes --background --reset-ftrace
tracebox perfetto -c ucp_system.cfg -o ucp.pftrace
请注意,为了能够获取完整的数据,需要确保 hrt\_model\_exec 执行结束前,perfetto 进程未退出。可以适当增加 ucp\_system.cfg 中的 duration\_ms,当前默认为 10000ms
  1. 开启一个新终端,设置环境变量和运行程序
export HB_UCP_PERFETTO_CONFIG_PATH=ucp_system.json
export HB_UCP_ENABLE_PERFETTO=true
  1. 运行程序,比如运行 hrt\_model\_exec 命令,并将获取到的 ucp.pftrace 解析:
    38.png

7.视觉处理/高性能算子

UCP 提供了视觉处理和高性能算子两大方向的多种接口:

  1. 视觉处理主要针对视频编/解码,光流,AVM 拼接等常规视觉算法
  2. 高性能算子依赖于 DSP 的实现,主要用于 fft 和 ifft 的加速 更多信息可以参考用户手册《<u>统一计算平台</u>》的相关章节。

8.DSP 使用

征程 6 的 dsp 使用了 Cadence 的 Tensilica Vision Q8 DSP IP(征程 6B 为 Vision 130)。支持 int8/int16/int32/float32/double 的浮点计算。 当前 DSP 可以用于加速模型前后处理比如点云体素化,模型量化反量化等操作,模型中间的算子加速暂不支持。更详细的说明,请参照《<u>DSP 算子开发</u>》章节。 完整的算子开发分为三个步骤:

  1. DSP 算子开发
int test_op(void *input, void *output, void *tm){
​    return 0;
}
  1. 注册算子,编译镜像
typedef int (*handle_fn)(void *input, void *output, void *tm);
int hb_dsp_register_fn(int cmd, handle_fn handle, int latency);
  1. 通过 UCP API 调用,申请计算资源并执行任务
//1. 申请输入输出资源,将输入输出映射为DSP可访问的内存地址
hbUCPSysMem input_mem, output_mem;
hbUCPMalloc(&output_mem, data_size, 0);
hbDSPAddrMap(&output_mem, &output_mem);
hbUCPMalloc(&input_mem, out_size, 0);
hbDSPAddrMap(&input_mem, &input_mem);
//2. 创建并提交dsp任务
hbUCPTaskHandle_t task{nullptr};
hbDSPRpcV2(&task, &input_mem, &output_mem, cmd);
hbUCPSchedParam sched_param;
HB_UCP_INITIALIZE_SCHED_PARAM(&sched_param);
hbUCPSubmitTask(task, &sched_param);
//3. 等待任务完成
hbUCPWaitTaskDone(task, 0);
//4. 释放资源
hbUCPReleaseTask(task);
UNMAP_AND_FREE(&input_mem);
UNMAP_AND_FREE(&output_mem);

Apache Hudi(Hadoop Upserts Delete and Incremental)是下一代流数据湖平台。Apache Hudi将核心仓库和数据库功能直接引入数据湖。Hudi提供了表、事务、高效的upserts/delete、高级索引、流摄取服务、数据集群/压缩优化和并发,同时保持数据的开源文件格式。

Apache Hudi不仅非常适合于流工作负载,而且还允许创建高效的增量批处理管道。Apache Hudi可以轻松地在任何云存储平台上使用。Hudi的高级性能优化,使分析工作负载更快的任何流行的查询引擎,包括Apache Spark、Flink、Presto、Trino、Hive等。

基于Hudi的大数据湖仓一体架构如下图所示:
image.png

视频讲解如下:
https://www.bilibili.com/video/BV11QzYBPEuS/?aid=115959822032...

一、 Hudi发展历史

  • 2015年:发表了增量处理的核心思想/原则(O'reilly 文章)。
  • 2016年:由 Uber 创建并为所有数据库/关键业务提供支持。
  • 2017年:由 Uber 开源,并支撑 100PB 数据湖。
  • 2018年:吸引大量使用者,并因云计算普及。
  • 2019年:成为 ASF 孵化项目,并增加更多平台组件。
  • 2020年:毕业成为 Apache 顶级项目,社区、下载量、采用率增长超过 10 倍。
  • 2021年:支持 Uber 500PB 数据湖,SQL DML、Flink 集成、索引、元服务器、缓存。

二、 Hudi的特性

  • 可插拔索引机制支持快速Upsert/Delete。
  • 支持增量拉取表变更以进行处理。
  • 支持事务提交及回滚,并发控制。
  • 支持Spark、Presto、Trino、Hive、Flink等引擎的SQL读写。
  • 自动管理小文件,数据聚簇,压缩,清理。
  • 流式摄入,内置CDC源和工具。
  • 内置可扩展存储访问的元数据跟踪。
  • 向后兼容的方式实现表结构变更的支持。

三、 编译安装Hudi

这里使用的版本信息如下:
image.png

下面是具体的操作步骤。
(1)安装Maven并修改setting.xml指定Maven仓库地址

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

<mirror>
    <id>confluent</id>
    <name>confluent maven</name>
    <url>http://packages.confluent.io/maven/</url>
    <mirrorOf>confluent</mirrorOf>
</mirror>

(2)解压Hudi源码包

tar -zxvf hudi-1.0.0.src.tgz

(3)修改Hudi源码文件

hudi-1.0.0/hudi-sync/hudi-hive-sync/src/test/java/org/apache/hudi/hive/testutils/HiveTestUtil.java文件
第250行把 zkServer.shutdown(true);改为 zkServer.shutdown();

(4)修改hudi-1.0.0/pom.xml,注释或去掉410行内容;并指定Hadoop和Hive的版本

<!--
<exclude>ch.qos.logback:logback-classic</exclude>
-->
<hadoop.version>3.1.2</hadoop.version>
<hive.version>3.1.2</hive.version>

(5)安装Maven的confluent(Kafka)库。

# 下载Confluent Kafka库
wget http://packages.confluent.io/archive/5.5/confluent-5.5.0-2.12.zip

unzip confluent-5.5.0-2.12.zip

# 安装Confluent Kafka库
mvn install:install-file -DgroupId=io.confluent -DartifactId=common-config -Dversion=5.5.0 -Dpackaging=jar -Dfile=./confluent-5.5.0/share/java/confluent-common/common-config-5.5.0.jar

mvn install:install-file -DgroupId=io.confluent -DartifactId=ommon-utils -Dversion=5.5.0 -Dpackaging=jar -Dfile=./confluent-5.5.0/share/java/confluent-common/common-utils-5.5.0.jar

mvn install:install-file -DgroupId=io.confluent -DartifactId=common-utils -Dversion=5.5.0 -Dpackaging=jar -Dfile=./confluent-5.5.0/share/java/confluent-common/common-utils-5.5.0.jar

mvn install:install-file -DgroupId=io.confluent -DartifactId=kafka-avro-serializer -Dversion=5.5.0 -Dpackaging=jar -Dfile=./confluent-5.5.0/share/java/kafka-rest/kafka-avro-serializer-5.5.0.jar

mvn install:install-file -DgroupId=io.confluent -DartifactId=kafka-schema-registry-client -Dversion=5.5.0 -Dpackaging=jar -Dfile=./confluent-5.5.0/share/java/kafka-rest/kafka-schema-registry-client-5.5.0.jar

mvn install:install-file -DgroupId=io.confluent -DartifactId=kafka-json-schema-serializer -Dversion=5.5.0 -Dpackaging=jar -Dfile=./confluent-5.5.0/share/java/kafka-rest/kafka-json-schema-serializer-5.5.0.jar

(6)修改以下两个pom文件:

hudi-1.0.0/packaging/hudi-spark-bundle/pom.xml
hudi-1.0.0/packaging/hudi-utilities-bundle/pom.xml

# 添加如下内容:
    <!-- 增加hudi配置版本的jetty -->
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-server</artifactId>
      <version>${jetty.version}</version>
    </dependency>
 
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-util</artifactId>
      <version>${jetty.version}</version>
    </dependency>
 
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-webapp</artifactId>
      <version>${jetty.version}</version>
    </dependency>
 
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-http</artifactId>
      <version>${jetty.version}</version>
    </dependency>

(7)执行编译

mvn clean package -Dcheckstyle.skip=true -DskipTests -Dspark3.5 -Dflink1.20 -Dscala-2.12 -Dhadoop.version=3.1.2 -Pflink-bundle-shade-hive3

四、 快速体验Hudi

在Hudi编译完成后,便可以使用Hudi提供的命令行工具来操作Hudi。下面通过具体的示例来演示如何使用Hudi CLI命令行工具。
(1)启动Hudi CLI命令行工具。

hudi-cli/hudi-cli.sh

# 启动成功后,将输出下面的信息。
===================================================================
*         ___                          ___                        *
*        /\__\          ___           /\  \           ___         *
*       / /  /         /\__\         /  \  \         /\  \        *
*      / /__/         / /  /        / /\ \  \        \ \  \       *
*     /  \  \ ___    / /  /        / /  \ \__\       /  \__\      *
*    / /\ \  /\__\  / /__/  ___   / /__/ \ |__|     / /\/__/      *
*    \/  \ \/ /  /  \ \  \ /\__\  \ \  \ / /  /  /\/ /  /         *
*         \  /  /    \ \  / /  /   \ \  / /  /   \  /__/          *
*         / /  /      \ \/ /  /     \ \/ /  /     \ \__\          *
*        / /  /        \  /  /       \  /  /       \/__/          *
*        \/__/          \/__/         \/__/    Apache Hudi CLI    *
*                                                                 *
===================================================================

Welcome to Apache Hudi CLI. Please type help if you are looking for help. 
hudi->

(2)查看帮助信息

hudi->help

(3)查看create语句创建Hudi表的语法。

hudi->help create

# 输出的信息如下:
NAME
    create - Create a hoodie table if not present

SYNOPSIS
    create [--path String] [--tableName String] --tableType String --archiveLogFolder String --tableVersion Integer --payloadClass String

OPTIONS
    --path String
    Base Path of the table
    [Mandatory]

    --tableName String
    Hoodie Table Name
    [Mandatory]

    --tableType String
    Hoodie Table Type. Must be one of : COPY_ON_WRITE or MERGE_ON_READ
    [Optional, default = COPY_ON_WRITE]

    --archiveLogFolder String
    Folder Name for storing archived timeline
    [Optional]

    --tableVersion Integer
    Specific table Version to create table as
    [Optional]

    --payloadClass String
    Payload Class
    [Optional, default = org.apache.hudi.common.model.HoodieAvroPayload]

(4)创建一张名叫emp的表,并将其存储在HDFS上。

hudi->create --path hdfs://localhost:9000/hudi_db/emp --tableName emp

# 提示:
# 如果使用本地文件系统作为Hudi表的存储介质,可以使用下面的语句。
hudi->create --path file:///root/temp/hudi_db/emp --tableName emp

(5)查看emp表对应的HDFS目录。

hdfs dfs -ls -R /hudi_db/emp

# 输出的信息如下:
drwxr-xr-x   - root supergroup   0 2025-08-15 02:48 /hudi_db/emp/.hoodie
drwxr-xr-x   - root supergroup   0 2025-08-15 02:48 /hudi_db/emp/.hoodie/.aux
drwxr-xr-x   - root supergroup   0 2025-08-15 02:48 /hudi_db/emp/.hoodie/.aux/.bootstrap
drwxr-xr-x   - root supergroup   0 2025-08-15 02:48 /hudi_db/emp/.hoodie/.aux/.bootstrap/.fileids
drwxr-xr-x   - root supergroup   0 2025-08-15 02:48 /hudi_db/emp/.hoodie/.aux/.bootstrap/.partitions
drwxr-xr-x   - root supergroup   0 2025-08-15 02:48 /hudi_db/emp/.hoodie/.schema
drwxr-xr-x   - root supergroup   0 2025-08-15 02:48 /hudi_db/emp/.hoodie/.temp
-rw-r--r--   3 root supergroup 584 2025-08-15 02:48 /hudi_db/emp/.hoodie/hoodie.properties
drwxr-xr-x   - root supergroup   0 2025-08-15 02:48 /hudi_db/emp/.hoodie/timeline
drwxr-xr-x   - root supergroup   0 2025-08-15 02:48 /hudi_db/emp/.hoodie/timeline/history

(6)连接Hudi表。

hudi->connect --path hdfs://localhost:9000/hudi_db/emp

# 输出的信息如下:
Finished Loading Table of type COPY_ON_WRITE
(version=1, baseFileFormat=PARQUET) 
from hdfs://localhost:9000/hudi_db1/emp
Metadata for table emp loaded

(7)查看Hudi表的详细信息。

hudi:emp->desc

# 输出的信息如下:

image.png

‍自人类文明诞生以来,语言一直是知识传承与思想交流的核心载体。如何让机器理解并生成人类语言,成为人工智能领域最富挑战性的课题之一。

大语言模型(Large Language Models,LLMs)的崛起标志着自然语言处理领域的范式转变——从针对特定任务的专门模型,发展为具备通用语言理解和生成能力的智能系统。

本文将系统梳理大语言模型从统计基础到智能涌现的完整技术演进历程,分析各阶段代表性模型的架构创新与核心贡献,并基于当前技术瓶颈,深入探讨前沿技术框架及未来发展方向。

我们不仅要回顾历史,更要通过对发展逻辑的梳理,识别现阶段亟需解决的核心痛点,展望大语言模型技术的下一个前沿。

第一章:技术前史与理论奠基(1950s-2017)

1.1 统计语言模型的兴起

大语言模型的理论根源可追溯至20世纪中叶。克劳德·香农的信息论(1948)首次用数学框架描述了信息与不确定性的关系,为用概率模型刻画语言奠定了基础。早期的语言模型基于n-gram统计方法,通过计算词序列的联合概率来评估语言的可能性。

n-gram模型的核心贡献在于将语言建模问题形式化为概率预测问题,但其局限性也十分明显:随着n增大,参数空间呈指数级增长(维度灾难);无法有效建模长距离依赖关系;缺乏对词汇语义的理解。尽管如此,n-gram模型为机器翻译、语音识别等早期自然语言处理任务提供了基本工具,并确立了语言模型的概率框架。

20世纪90年代,随着计算机算力的提升和语料库规模的扩大,统计语言模型开始引入隐马尔可夫模型(HMM)和最大熵模型等更复杂的概率模型。

隐马尔可夫模型通过状态转移概率和观测概率来建模序列数据,在语音识别领域取得了显著成功,能够在一定程度上处理语音信号到文本序列的映射问题。

最大熵模型则基于最大熵原理,通过对已知特征的约束来构建概率分布,在自然语言处理的词性标注、文本分类等任务中展现出良好的性能。

这些模型在n-gram的基础上进一步拓展了统计建模的能力,但依然未能突破对语义层面的深层理解,对于词汇之间的语义关联和上下文的整体语义把握仍存在较大局限。

同时,统计模型对大规模标注数据的依赖也逐渐成为其发展的瓶颈,在数据稀疏或领域迁移场景下表现不佳。

1.2 神经网络与分布式表示的革命

21世纪初,深度学习技术的复兴为语言模型带来了根本性变革。

约书亚·本吉奥等人于2003年提出的神经概率语言模型(Neural Probabilistic Language Model)是这一变革的关键节点。该模型首次引入词向量的概念——将离散的词语映射到连续的向量空间,使语义相似的词在向量空间中距离相近。

这一思想催生了Word2Vec(2013)和GloVe(2014)等里程碑式工作,它们通过无监督学习从大规模文本中提取词向量表示。

词向量技术的重要性在于:它使模型能够捕捉词汇间的语义和语法关系,解决了传统one-hot表示的高维稀疏问题,为后续深度语言模型奠定了基础。

与此同时,循环神经网络(RNN)及其改进版本长短期记忆网络(LSTM)和门控循环单元(GRU)被引入序列建模。

这些架构通过内部状态传递历史信息,理论上能够处理任意长度的依赖关系。

虽然RNN语言模型在机器翻译、文本生成等任务上取得了显著进展,但其顺序计算特性和梯度消失问题限制了其在更大规模数据上的应用潜力。

为了突破RNN的局限,研究人员开始探索并行化架构,卷积神经网络(CNN)也被尝试用于语言处理,如TextCNN通过卷积操作提取局部特征,但在捕捉长距离依赖上仍显不足。

这一时期,神经网络与分布式表示的结合,不仅推动了语言模型从统计方法向数据驱动的端到端学习转变,更重要的是构建了"语义空间"的认知框架——让机器首次能够以连续向量的形式理解词语的深层含义,为后续Transformer架构的出现埋下了技术伏笔。

这一阶段的探索虽然存在计算效率和长依赖建模的瓶颈,但彻底改变了语言处理的范式,使基于神经网络的语言模型成为自然语言处理领域的主流方向。

第二章:Transformer架构与大模型时代(2017-2020)

2.1 Transformer:注意力机制的革命

2017年,谷歌研究人员在《Attention Is All You Need》论文中提出的Transformer架构,彻底改变了自然语言处理的发展格局。

该架构完全摒弃了传统的循环结构,转而以自注意力机制(Self-Attention)为核心,使模型能够并行处理整个输入序列,并直接捕捉序列中任意位置之间的依赖关系。

Transformer在结构上主要由编码器(Encoder)和解码器(Decoder)两部分组成。

编码器负责将输入序列转换为蕴含上下文信息的连续表示,其内部通过多层堆叠的自注意力子层和前馈神经网络子层实现特征提取。

解码器则在编码器输出的基础上,先通过掩蔽自注意力(Masked Self-Attention)机制确保生成当前 token 时不会提前看到后续信息,再借助编码器-解码器注意力层整合输入序列的全局上下文,最终逐步生成目标序列。

自注意力机制的计算可表示为:

Attention(Q,K,V)=softmax(QKTdk)VAttention(Q,K,V)=softmax(dkQKT)V

其中,查询(Q)、键(K)、值(V)均来自输入的不同线性变换。该机制使每个位置都能直接关注序列中的所有位置,从而显著提升对长距离依赖的建模能力。

这种模块化设计赋予 Transformer 高度的灵活性和可扩展性,便于适配不同任务:例如在文本分类中可仅使用编码器,而在机器翻译等生成任务中则需完整使用编码器-解码器结构。

其并行化特性也极大地利用了现代 GPU 的大规模并行计算能力,为训练超大规模语言模型扫清了架构障碍。

随着 Transformer 的广泛应用,研究者进一步提出如多头注意力(Multi-Head Attention)等改进方案,通过并行运行多个自注意力头,从不同子空间捕捉多样化的依赖关系,进一步增强了模型的上下文表征能力。

自此,注意力机制成为大语言模型的核心组件,开启了模型规模与性能同步跃升的新纪元。

2.2 BERT:双向上下文编码的突破

2018年,谷歌推出的BERT(Bidirectional Encoder Representations from Transformers)模型,首次展示了在大规模无标注文本上进行预训练,然后在具体任务上微调这一范式的强大潜力。

BERT的核心创新在于其预训练目标:掩码语言建模(Masked Language Modeling,MLM)和下一句预测(Next Sentence Prediction,NSP)。

MLM任务随机掩码输入中的部分词元,要求模型基于上下文预测被掩码的内容,这迫使模型学习深层的双向语境表示。

与之前基于自回归的语言模型(只能从左到右或从右到左)不同,BERT能够同时利用左右两侧的上下文信息,从而获得更丰富的语义理解。

BERT在发布时在11项自然语言理解基准测试中刷新了记录,其“预训练+微调”范式迅速成为行业标准。

更重要的是,BERT证明了通过大规模预训练,单个模型可以学习到可迁移到多种下游任务的通用语言表示,这一发现为大语言模型的后续发展指明了方向。

2.3 GPT系列:生成式预训练的演进

几乎与BERT同期,OpenAI推出了生成式预训练Transformer(GPT)系列模型。与BERT的编码器架构不同,GPT基于Transformer的解码器部分,专注于自回归语言建模——根据前文预测下一个词元。

GPT-1(2018) 首次系统性地验证了“生成式预训练+判别式任务微调”的两阶段范式。虽然参数量仅为1.17亿,远小于后续模型,但GPT-1证明了生成式预训练同样能够学习到丰富的语言表示。

GPT-2(2019) 将参数量扩大到15亿,并引入更高质量、更多样化的训练数据。其最重要的贡献在于展示了语言模型在零样本(zero-shot)和少样本(few-shot)学习中的潜力。GPT-2无需针对特定任务进行微调,仅通过适当的提示(prompt)就能完成多种语言任务,这暗示了大语言模型可能具备通用任务求解能力。

GPT-3(2020) 则将这一趋势推向极致。拥有1750亿参数的GPT-3系统性地探索了模型规模与性能的关系,验证了“规模定律”(Scaling Laws)——随着模型参数、训练数据和计算资源的平滑增加,模型性能呈现可预测的幂律提升。GPT-3在上下文学习(In-Context Learning)方面的卓越表现,即仅通过提供任务描述和少量示例就能适应新任务,极大地降低了大语言模型的应用门槛。

2.4 多样化架构探索

在同一时期,市场上陆续推出了多种各异的模型架构与目标函数。

T5(Text-to-Text Transfer Transformer,2019)将所有自然语言处理任务统一为文本到文本的格式,通过大规模实证研究比较了不同预训练目标的效果。

BART(Denoising Sequence-to-Sequence Pre-training,2019)采用编码器-解码器架构,通过多种噪声函数破坏输入文本,训练模型恢复原始文本,在生成任务上表现优异。

这一阶段的共同特点是模型规模迅速扩大,从数亿参数发展到数千亿参数;训练数据从特定领域文本扩展到涵盖互联网大部分公开文本;计算资源需求呈指数级增长。大语言模型开始展现出超出特定任务范畴的通用语言能力,为向通用人工智能迈进奠定了基础。

未完待续....

整理 | 华卫

 

“一圈又一圈的循环融资,投资回报率却不尽如人意,这些 AI 系统实际用起来也远没有想象中好用,或许方向本身就站不住脚。”

 

近日,知名 AI 专家、认知科学家 Gary Marcus 在一场访谈中愤愤表示,“整个世界都在全力押注神经网络,还在这个我始终觉得毫无道理的理念上投入了巨资,但大语言模型根本无法带我们抵达 AGI 这一终极目标。”

 

这场对话由曾因成功预测 2008 年金融危机而闻名的传奇投资人、华尔街最具影响力人物之一 Steve Eisman 发起,他与 Marcus 共同探讨了当下 AI 进展的方方面面,包括商业路径、社区现状和未来方向等。Marcus 认为,大语言模型已经达到了收益递减的阶段。并且,他指出,现在 AI 领域根本没有技术壁垒了,所有 AI 企业的研发思路基本一致。

 

对于大量人才从大厂离职去办初创公司的现象,Marcus 直言道,“如果 OpenAI 真的能在下周推出 AGI,谁会在这个即将改变世界的关键节点离职,去创办一家可能要花四年时间才能做出成果的小公司?显然没人会这么做,大家都会想留在公司见证这个时刻。”在他看来,这些企业内部的人也清楚,他们根本没有做出宣称的那种突破性成果。

 

值得一提的是,他认为,OpenAI 最终会成为 AI 领域的 WeWork,这家公司原本计划以 500 亿美元的巅峰估值风光上市、却在一夕之间破产。“我觉得最终 OpenAI 可能会被微软这样的企业收购。OpenAI 每个月的亏损大概有 30 亿美元,一年就是 300 多亿美元,即便最近完成了 400 亿美元的融资,也只够支撑一年的运营。”

 

谈及各家模型的未来,Marcus 的预测是,“大语言模型会成为一种标准化商品,各家的模型只会比上一年的版本稍有提升,差距微乎其微,最终品牌差异会变得无关紧要。当产品变成商品后,价格必然下跌。”

 

以下是详细对话内容,我们在不改变原意的基础上进行了翻译和删减,以飨读者。

 

2 万亿美元押注 Transformer,根本“毫无道理”?

 

Steve Eisman:大家好,我是 Steve Eisman。今天我们请到了一位特别的嘉宾,他就是 Gary Marcus。他是大语言模型的坚定质疑者,而大语言模型正是整个 AI 领域的核心根基。接下来,Gary 会和我们分享他的观点,聊聊大语言模型到底是什么。

 

Gary Marcus:谢谢你的邀请,也感谢一两个月前你在 CNBC 对我的盛赞。

 

Steve Eisman:不客气,这都是你应得的。在正式开始之前,我的观众大多还不了解你,不如先和大家说说你的背景,让大家知道你在这个领域发表观点是完全有底气的。

 

Gary Marcus:我这辈子几乎都在研究智能相关的问题。我 10 岁学会编程后,就开始涉足 AI 领域了。我的职业生涯中,很大一部分精力都用在研究自然智能上,比如人类的智能、还有孩子是如何学习语言这类问题。我在 MIT 的博士论文围绕两个方向展开,一个是儿童的语言学习机制,另一个就是神经网络。神经网络是 AI 领域的一种特定研究方法,也被用于人类思维的建模,它的设计灵感可以说和大脑有一点松散的关联。这其实是个很巧妙的营销说法,会让人觉得它是完全基于大脑研究的,但事实并非如此,二者只是浅层关联。早年间神经网络就曾风靡一时,我在上世纪 90 年代就研究过这类模型,发现它们并不能很好地模拟人类的思维方式,但我还是投入了大量精力,想弄清楚它们的实际工作原理。

 

2012 年深度学习重新兴起时,我当时就觉得,这些东西我早就研究过了,和我博士论文里的内容高度相似。我在 2001 年写过一本名为《The Algebraic Mind》的书,在书里我其实就预判到了如今大语言模型出现的幻觉问题,还有一些推理层面的缺陷,这些都是我们今天要探讨的话题。所以当深度学习再次成为热点时,我一眼就看出了其中的诸多问题,对我来说这些问题都很熟悉。2012 年,我在《The New Yorker》上发表了一篇文章,标题是《Is Deep Learning a Revolution in Artificial Intelligence?》,我在文中写道:“深度学习确实很有意思,我很佩服 Jeff Hinton,他能长期坚持自己的研究方向。”

 

Steve Eisman:Jeff Hinton 是谁?

 

Gary Marcus:他是去年诺贝尔生理学或医学奖的得主,也是深度学习领域的核心奠基人之一。

 

Steve Eisman:原来如此。

 

Gary Marcus:他的一些学生,最近也开始认同我的观点了。Jeff Hinton 确实是这个领域的大人物,在神经网络一度无人问津的时期,是他一直坚守,这份坚持值得肯定。但当然,他的研究并非全无可议之处,我们这里就不细谈了。他让神经网络重获关注,而更值得你的听众了解的是,真正让这个领域迎来爆发的,是他的学生 Ilya Sutskever,或许还有另外几位研究者。他们找到了方法,能让这套研究了许久的系统落地应用。要知道,神经网络的研究最早能追溯到上世纪 40 年代,Jeff Hinton 也在上世纪 80 年代中期做出了不少重要贡献。而这些研究者发现,借助英伟达研发的图形处理器(GPU),就能实现神经网络的高效运行。

 

彼时的英伟达,生产 GPU 主要是为了满足电子游戏的需求。这些原本为游戏设计的 GPU,核心优势在于并行计算,简单来说,就是能同时处理多个计算任务,而非按顺序逐个完成。传统的中央处理器(CPU),运行软件程序时基本是逐行执行的,虽然现在的技术已经有了改进,但这仍是计算机科学入门课程里会教的基础原理。而 GPU 能把一个复杂问题拆解成无数个小任务,同时进行处理,它的设计初衷就是为了计算机图形处理。比如要渲染电子游戏的下一帧画面,如果逐行处理,耗时会非常久,而用 GPU 的话,能同时处理整个画面,一个子处理器负责一个像素点,以此类推。不得不说,GPU 在图形处理上的表现堪称完美,我偶尔也玩电子游戏,深知 GPU 的算力有多惊人。

 

Ilya Sutskever,还有另一位我一时想不起名字的论文合作者,他们证明了 GPU 是运行神经网络的绝佳载体,至于神经网络的具体定义和实际意义,我们之后可以再聊。他们的这一发现,让神经网络的运行实现了两大突破:一是速度大幅提升,二是能处理海量数据。在此之前,六十多年的神经网络研究做出的基本都是些玩具级的模型,而他们证明,借助 GPU 这项技术能真正实现规模化的实际应用,能在更大的维度上落地。可以说,我们如今看到的所有深度学习成果,都源于 2012 年的这次突破。

 

而在这一突破出现后,两件事接踵而至:《The New York Times》刊发了文章,盛赞深度学习的惊人潜力;第二天,我就在《The New Yorker》的博客上发表了文章。我在文中表示,深度学习固然出色,但也存在诸多问题,它注定会在一些领域表现优异,却在另一些领域束手无策。它擅长模式识别和统计分析,这一点毋庸置疑,但人类的认知活动中还有大量的抽象思维过程。比如我们能理解家谱的逻辑,进而对现实世界的相关问题进行推理,而深度学习模型永远无法擅长这类任务,它的架构本身就不适合做抽象推理。从早年对神经网络的研究以及对人类认知机制的研究中,我早就看清了这一点。你应该读过 Daniel Kahneman 的经典著作《Thinking, Fast and Slow》吧?

 

Steve Eisman:我读过。

 

Gary Marcus:Daniel Kahneman 在书中提出了双系统认知理论,他将人类的认知分为系统一和系统二。系统一的思考速度快,是无意识的、基于统计的、本能的反应;而系统二的思考速度更慢,更具思辨性,核心是逻辑推理。神经网络本质上就相当于人类的系统一,这本身没问题,系统一也是人类认知的重要组成部分,但人类的认知还有系统二的部分。尤其是在理性思考时,我们会依赖系统二,进行更审慎、更有逻辑的推理。而神经网络模型,从始至终都不擅长系统二的这类任务,直到现在依然如此。我在 2012 年就指出,深度学习模型只能实现系统一的功能,却无法完成系统二的思考。

 

而在这之后的 14 年里,整个世界都在全力押注神经网络。这里要说明的是,我们所说的神经网络,就是如今的大语言模型,大语言模型是神经网络的一种形式,抱歉,我之前没明确说明这一点。事实上,2012 年时大语言模型还未出现,后续又有不少技术突破,其中关键的就是 2017 年发表的 Transformer 论文,这也是大语言模型的起源。而全世界在这一领域的投资规模达到了天文数字,据我粗略估算,已经有 1 到 2 万亿美元了,全都投在了这个我始终认为毫无道理的理念上。这些研究者的想法是,只要持续发展神经网络,就能实现智能所需的一切能力,抵达 AGI 的目标,但他们却忽视了系统二的核心价值。

 

一开始,他们只是把神经网络当成一个巨大的黑箱,直到现在,还有很多人抱着这样的想法。他们觉得,只要把海量数据喂进去,就能得到一个拥有智能的系统,却从未从科学的角度深入思考过真正的智能究竟该具备怎样的架构。我认为这些人太过天真,我也一直试图指出这一点,这也让我成了这个领域里的“孤行者”。很长一段时间里,人们对我的观点不屑一顾,甚至不只是不屑,而是鄙夷。

 

Steve Eisman:没错,他们对你的态度远不止是不屑,而是赤裸裸的鄙夷。

 

Gary Marcus:我们还能举出很多这样的例子。我对他们的这种态度感到失望,这个话题我们可以聊很久。他们甚至对我公开表现出敌意,比如我了解到,OpenAI 内部还为我做了专属的表情包。

 

Steve Eisman:我也看到过这个消息。

 

Gary Marcus:某种程度上,这也算是一种认可吧,既觉得荣幸,又觉得有些离谱,你能看出来,我一直试图用平常心看待这件事。但这也能从侧面说明问题,Sam Altman 还在推特上称我为“喷子”。他们就是不想听我的观点,而我核心的观点,都写在了 2022 年发表的论文《Deep Learning is Hitting a Wall》里。我在这篇论文中指出,当时“规模化扩张”的理念已经开始流行,也就是通过不断投入更多数据、更多 GPU,把模型做得越来越大,他们认为只要模型足够大,就会拥有超乎想象的能力。

 

我先暂停一下,和大家解释下这个“规模化扩张”的理念。他们确实有一些数据能支撑这个观点,但这种想法依然太过天真。我把这种理念称作“万亿磅婴儿谬误”,道理很简单:一个婴儿出生时 8 磅重,一个月后长到 16 磅,并不意味着他会一直这样翻倍增长,到上大学时长成万亿磅的巨人。他们就是做出了这样天真的推断,我相信你在商业领域也经常见到这种情况。很多手握巨资的聪明人,都押注了这个理念,他们说,“我们从数据中看到了这样的发展规律,只要投入足够多的数据,就能实现真正的智能。”

 

“大模型不会思考,重构信息碎片致幻”

Steve Eisman:先稍停一下,我们倒回去说。大语言模型到底能做什么?这些研发者又认为它们本该实现什么功能?我真想把这个问题彻底讲清楚。

 

Gary Marcus:你这个问题问得特别好。大语言模型的核心工作原理,就是预测序列中的下一个内容。你可以想想苹果手机的自动校正功能,原理差不多,虽说那功能有时候能把我逼疯,你继续说。这个功能并非总能生效,核心逻辑就是你在输入句子时,它会预判接下来可能要打的内容。比如你打出“在……见我”,它大概率会推测你想说“在餐厅见我”。它会对人类的语言表达做统计分析,效果还算过得去,但绝非完美,偶尔还会出错,让人恼火,这就是我们说的自动补全。

 

而我把大语言模型称作“超级版自动补全工具”,它们只是用一种特殊的方式完成这种预测,这就是其最本质的功能。它们的运作方式里还有些有意思的点,其中一个就是会把所有信息拆解成细碎的片段,之后再重新整合,这就导致信息之间的关联会被切断。也正是因此,它们才会时不时出现幻觉现象,凭空编造内容。

 

Steve Eisman:我们稍后再细说幻觉这个问题。

 

Gary Marcus:好,回头再聊。幻觉是这类模型的典型错误之一,早在 2001 年,大语言模型甚至还没被发明出来的时候,我就指出过这个问题。我当时就说,如果一直沿着这个方向研究下去,必然会出现这个问题,而事实也确实如此。大语言模型把信息拆分成碎片,再通过这些碎片预测后续内容。如果用整个互联网的内容对它们进行训练和数据投喂,它们的表现会好得让人意外,因为几乎任何你能想到的问题,注意,这里的“几乎”是关键,几乎所有问题,此前都有人提出过,也有人给出过答案。从某种程度来说,这些模型就是功能强大的记忆机器。

 

就在前几天,《大西洋月刊》还刊发了相关的文章,而且一直以来都有大量证据能证明这一点。比如你输入《哈利·波特》的部分内容,它能直接补完整段文字,本质上就是因为它记住了这些内容。如果一个模型能记住整个互联网的信息,那确实算得上很厉害。比如你问“道奇队在搬到洛杉矶之前,主场在哪”,网上有大量相关表述,它会告诉你是布鲁克林,大概率能给出正确答案。但仅仅依靠这种方式,模型根本无法形成抽象的概念和思想,还会因为信息碎片的拆解和错误整合出现各种问题。

 

Steve Eisman:那我们现在聊聊幻觉吧。到底什么是 AI 幻觉?举个例子,再说说出现这种情况的原因。

 

Gary Marcus:幻觉就是模型凭空编造内容,还无比笃定地呈现出来,但这些内容根本不符合事实。

 

Steve Eisman:那给我们举个例子。

 

Gary Marcus:我最喜欢的一个例子和 Harry Shearer 有关,你可能听过他的名字,看过《摇滚万万岁》吗?

 

Steve Eisman:当然看过。

 

Gary Marcus:他在这部影片里饰演贝斯手,巧的是,他还是我的朋友。他出演了《摇滚万万岁》,还和 Christopher J. Guest 合作了多部影片,参演了《楚门的世界》,还为《辛普森一家》里的伯恩斯先生等多个角色配音,他的知名度还挺高的,这点对接下来的故事很重要。先倒回说个题外话,我之前遇到的最典型的幻觉案例,主角是我自己。有人发给我一份我的人物简介,里面说我养了一只叫 Henrietta 的宠物鸡,但我根本没养过,这就是个很典型的幻觉案例,纯粹是凭空编造的。后来发现,有位插画师大概叫 Gary Oswald,写过一本关于 Henrietta 去上学的书,模型不过是把这些碎片化的信息胡乱拼凑在了一起。

 

Steve Eisman:那为什么会出现这种幻觉呢?

 

Gary Marcus:这就和我刚才说的信息碎片化拆解有关了。我再给你讲讲 Harry Shearer 的那个例子。我总拿宠物鸡 Henrietta 的事举例,有一天他给我发消息,说他没遇到过宠物鸡这种事,却遇到了和自己相关的幻觉案例。他比我有名多了,至少以前是。我当时也算小有名气,而模型给出的信息里,说他是英国的配音演员和喜剧演员,但他根本不是英国人。你只要花两秒看一下维基百科,就会发现他出生在洛杉矶。他名气不小,你也能在烂番茄、互联网电影数据库上查到他的资料,他接受过很多采访,也聊过自己的成长经历,他小时候还在洛杉矶的《杰克·本尼秀》里当过童星,想找到正确的信息一点都不难。

 

我们会错误地把大语言模型当成和人类一样拥有智能的个体,但实际上,它们所做的只是重构信息碎片之间统计层面的大概率关联,所以难免会出错,这种重构过程也常会出现偏差。Harry Shearer 这个案例就是如此,模型其实就是在构建一个信息集群,用统计学的方式预测各类信息之间的关联。而现实中确实有很多英国的配音演员和喜剧演员,比如 Ricky Gervais、Don Cleeve 等等。模型就把这些信息混为一谈了,这种信息融合的方式整体来看效果还算不错,但你永远无法确定它给出的某一个具体信息是准确的,所以幻觉现象才会频繁出现。

 

有人专门追踪过相关的法律案件,发现律师提交的辩护状里,有很多引用的判例都是模型编造的,根本不存在。我第一次关注这件事时,他已经发现了约 300 起这样的案件,三个月后再看,数量涨到了 600 起。这些律师不仅用 ChatGPT 这类工具代写文书,还因此被法官发现,受到了处罚。模型会出错,而最危险的是,这些错误还很容易被忽略,人们根本发现不了。还有一个例子,CNET 是最早用 AI 写稿的媒体之一,他们首批用 AI 写的 75 篇文章里,有近一半都存在错误,编辑们却没发现。因为这些文章语法通顺、格式规范,也没有拼写错误,人们很容易就放松了警惕。

 

我把这种现象称作“看着没问题效应”。大语言模型带来的这种效应,还催生了一个新词汇,我真后悔不是我发明的,叫“低效工作产物”。这个词大概是去年由几位教授提出的,指的是人们用 AI 写报告、提交给雇主,表面上看没什么问题,实则漏洞百出,因为大语言模型根本不具备真正的理解能力。

 

Steve Eisman:你的意思是,大语言模型并不会思考。

 

Gary Marcus:它们确实不会思考,只是把统计学上大概率关联的内容拼凑在一起。

 

Steve Eisman:只是简单拼凑。

 

Gary Marcus:没错。我还喜欢用“黏合”这个词,它们只是把信息黏合在一起。从统计学角度来说,大部分内容的拼凑是合理的,但总有一部分是错误的,而这些模型根本无法区分对错,也不会主动告知你。它们永远不会说,“维基百科显示 Harry Shearer 出生在洛杉矶,但作为大语言模型,我感觉他可能出生在伦敦,你可以去核实一下”。它们从来不会给出这样的提示,只会把所有内容都当作百科全书里的标准答案呈现出来,无论真假,这也是这类模型的危险之处。

 

Steve Eisman:确实是这样。

 

Gary Marcus:这类问题其实有很多,这个案例属于另一种情况,但也和模型的本质缺陷有关。这个问题的根源在于,所有大语言模型都有数据截止日期,它们的训练都是在某个特定时间点完成的,核心模型所掌握的信息,也只到这个时间点为止。研发者会给它们加各种补救措施,比如接入网络搜索功能,但这些补救措施和核心模型的融合效果都很差,不同系统的表现略有差异而已。这类模型最大的问题就是无法应对新事物、新情况,也是它们最根本的缺陷。早在 1998 年,我就通过研究早早发现了这一点。如果一个模型本质上只是个功能强大的记忆机器,当你向它输入一个超出其训练数据范围的内容时,它就会失灵。

 

有个例子特别能说明问题,具体细节我不太清楚,但特斯拉的 AI 系统也大量采用了这种记忆式的运作方式,而且其系统的复杂程度并不高。有人用过特斯拉的召唤功能,你应该记得马斯克说过,未来可以从纽约远程召唤洛杉矶的特斯拉,但现在显然做不到,不过据说能在停车场里召唤车辆。有人在一场航空展上试过这个功能,你能在油管上找到相关视频。这个人召唤自己的特斯拉,想在航空展上秀一下,结果车子径直撞上了一架价值 350 万美元的私人飞机。

 

原因就是,特斯拉的训练数据里,根本没有教系统如何应对飞机,毕竟谁会专门训练汽车躲避飞机呢?系统对世界没有形成通用的认知,比如“不要撞上挡路的大型贵重物体”,它根本不懂这些,只会识别训练数据里的自行车、行人等目标,它的识别分类里根本没有“飞机”这一项,所以才会直接撞上去。

所有 AI 企业都变了:悄悄复用经典符号式工具

Steve Eisman:那你有没有了解到,随着这场争论的风向转变,各大企业内部现在的情况如何?

 

Gary Marcus:我了解到的情况主要有几点。首先,我一直都在说,单纯的大语言模型行不通,必须结合传统的符号式 AI 技术。但之前他们都对此嗤之以鼻,觉得这套技术早就过时了,没必要用,还说人脑的工作模式本就不是这样。而现在,他们都悄悄在一定程度上采用了这项技术,比如引入代码解释器来运行 Python 代码,这些都是经典的符号式工具。说白了,他们正在偷偷把系统二的相关能力融入模型中,只是没有大肆宣扬,但这一改变确实带来了不小的提升。

 

马斯克发布 Grok 4 时的演示就很能说明问题,我还为此写过一篇文章,标题是《为何 GPT-3 和 Grok 4 无意间印证了神经符号 AI 的正确性》。文章里放了当时的演示图表,能清晰看到,正是那些他们不愿提及的符号式工具的加入,让模型的表现变得更好。如今模型的些许提升,绝大部分都来自这个原因,而非单纯的大语言模型优化,他们其实已经悄悄放弃了纯大语言模型的研发思路。而这对你所关注的商业领域来说意义重大,因为这些符号式工具根本不需要在 GPU 上运行,普通的 CPU 就足够了。

 

Steve Eisman:原来如此。

 

Gary Marcus:对我而言,从技术角度来说,这印证了我一直以来倡导的研发思路是正确的。这是第一个变化。第二个变化是,各大企业的很多人都离职去创办自己的初创公司了。你可以想想,如果 OpenAI 真的能在下周推出 AGI,谁会在这个即将改变世界的关键节点离职,去创办一家可能要花四年时间才能做出成果的小公司?显然没人会这么做,大家都会想留在公司见证这个时刻。

 

所以,大量人才离职的事实就说明,这些企业内部的人也清楚,他们根本没有做出宣称的那种突破性成果。还有一个变化,就是谷歌正在迎头赶上。就像我几年前在 Substack 专栏里预测的那样,因为现在所有企业的研发思路基本一致,这个领域根本没有技术壁垒。

 

Steve Eisman:没错,完全没有技术壁垒。

 

Gary Marcus:你和其他一些人都认为,如果所有人都在做大语言模型的规模化扩张,那么最终的赢家就是最有实力承担这笔扩张成本的企业。而放眼整个行业,谁的资金实力能超过谷歌?根本没有。

 

Steve Eisman:确实。

 

Gary Marcus:我其实也表达过类似的观点,只是表述略有不同,你的这个说法其实也没错。我当时的观点是,行业头部企业会逐渐趋同,而随着大语言模型成为标准化商品,行业内会引发价格战,服务定价会大幅下降。事实也确实如此,现在大语言模型的按 token 计费价格,已经暴跌了 99%。价格战确实爆发了,而最终的受益者自然是谷歌,这一点我当初虽然没有直接点明,但也有所预判。我大概是在 2024 年 3 月,也可能是 2023 年 8 月开始写相关文章,当时就说,所有企业都在遵循同一种研发思路,没人掌握什么独门绝技,这就意味着头部企业的产品会越来越趋同。

 

大语言模型会成为一种标准化商品,各家的模型只会比上一年的版本稍有提升,差距微乎其微,最终品牌差异会变得无关紧要。这一趋势带来的结果就是,谷歌迎头赶上了,中国的企业也追上来了,Anthropic 同样不甘落后。就像你说的,当产品变成商品后,价格必然下跌。这对终端消费者来说是好事,但对企业的商业模式来说却是巨大的打击。毕竟企业原本的设想是,花巨资采购 GPU,然后靠模型服务赚回巨额利润。

推理模型进行不了逻辑分析,再升级也没价值?

Steve Eisman:我们能不能聊聊推理模型?先给我的观众解释一下,推理模型和大语言模型有什么区别?推理模型是基于大语言模型研发的吗?

 

Gary Marcus:推理模型是在大语言模型的基础上运作的,但它不会像大语言模型那样直接给出第一个想到的答案,而是会反复迭代、花费时间去推敲,试图得出最优解。至于具体的研发细节,各家企业都没有公开太多。传统的神经网络模型,在某种意义上都是一次性输出结果的,当然现在行业内对“一次性”的定义有所不同。简单来说,就是把数据输入模型后,神经网络会立刻完成一次正向传播,粗略来讲,模型中的每个神经元都会处理信息并生成对应的结果。而推理模型则会进行多次传播,这是本质上的区别。

 

我有个朋友把传统模型的输出方式称为“恒时推理”,意思是模型生成答案的时间基本固定,无论什么问题,耗时都相差无几:把数据输入模式识别器,模型会根据现有的模式给出最优解。而推理模型采用的是全新的“变时推理”模式,我之后会聊聊它的适用场景和短板,这种模式的特点是,处理不同的问题,耗时会有所不同。目前还没有企业能完全解决推理模型的所有技术难题,但在一些场景下,它的表现确实不错。

 

据我了解,推理模型的研发思路之一,就是让模型模仿人类解决问题的思考过程,毕竟这些模型本质上都是模仿系统。比如在解决几何题或代数题时,模型会刻意模仿人类的解题步骤。人类解决这类问题需要一步步推导,融合了推理能力的神经网络模型,同样需要分步骤完成。

 

Steve Eisman:那推理模型的优势是什么?又有哪些明显的短板?

 

Gary Marcus:在回答这个问题之前,我想先提一点:推理模型的成本天生就更高,因为它需要占用 GPU 更长的时间来生成答案。

 

Steve Eisman:好的。

 

Gary Marcus:那我来说说它的适用场景和短板。推理模型最擅长的,是那些能生成形式规范、可验证的数据来训练模型的领域。比如数学和计算机编程,我们可以编写程序生成各种不同的代码片段来训练模型,也能生成各类几何证明题的解题思路。这类领域之所以适合推理模型,是因为它们都属于封闭领域,相关的知识边界是明确的。

 

Steve Eisman:没错,数据库中的知识量和相关的有效知识量都是有限的。

 

Gary Marcus:对,就是这个意思。所以推理模型在几何、编程这类领域的表现最好,而在开放式的现实世界中,它的表现就差强人意了。我总会从你所熟悉的金融领域举例子,当然你肯定有更贴切的案例,比如长期资本管理公司的破产。其实那也是一种模型失效的情况,只是模型的原理不同,当时没人考虑到俄罗斯债券市场崩盘的可能性,最终导致美国金融市场出现了大幅动荡。这是因为当时的金融模型,其参数设定根本没有覆盖这类极端情况。

 

而现在的推理模型,也面临着类似的问题:它其实并不具备真正的思考能力,哪怕是关于债券的基本问题,它也无法进行真正的逻辑分析。如果用它处理的问题,和训练数据中的内容高度相似,那一切都顺理成章;但一旦超出了它的认知范围,就像我们之前聊到的特斯拉的例子,模型就会立刻失效。

 

Steve Eisman:也就是它依然无法应对新事物、新情况。

 

Gary Marcus:没错,即便升级到了新的推理模型,核心问题依然是无法处理未知信息。它只是在原有基础上做了些许改进,但本质上还是受限于对新事物的适配能力。而关键问题在于,现实世界中,大多数有价值的问题都包含着一定的新要素、新情况,并非全是已知的问题。当然,也有例外,我们确实可以用这种不擅长处理新事物的技术,在一些狭窄的领域做出成绩,比如国际象棋和围棋。这些领域的规则千百年间基本没有太大变化,有海量的历史数据可供参考,模型还能通过自我对弈生成更多训练数据。

 

但在开放式的现实世界中,比如政治、军事战略领域,永远会出现训练数据中没有的新情况。比如,如何应对一位总统授意将军用飞机伪装成民用飞机,去袭击另一个国家的行为?这种情况此前从未发生过,想要分析这类问题,根本无法依靠过往的数据,必须依靠抽象的概念思考,比如权力、外交规则、国际格局的构建逻辑等,这些都是相关领域的学者更擅长的内容。要做到这一点,模型需要接受正确的训练,具备抽象思维能力,而不是单纯依赖数据。即便是在商业应用中,比如看似简单的客户服务,也会遇到类似的问题:用户总会用全新的方式提出问题,而一旦出现这种情况,模型就会因为无法应对新情况而失效。

OpenAI 只够支撑一年,要么倒闭、要么求救微软?

Steve Eisman:假设我任命你为 AI 领域的总负责人,由你掌控所有相关企业,指导整个行业的研发方向。如果你把这些企业的负责人都召集到一起,你会告诉他们,想要实现真正的突破,需要做些什么?

 

Gary Marcus:我会告诉他们,整个行业需要更多的学术思维多样性。就像在你的金融领域,你会告诉人们不要把所有鸡蛋放在一个篮子里,要做资产配置,分散投资股票、债券、黄金、房地产等。而 AI 领域在过去这些年,就是把所有的精力都押在了一个思路上,大语言模型的规模化扩张,这是行业唯一的研发方向。不可否认,这个思路确实带来了一些成果,模型并非毫无用处,我们也确实能利用它解决一些问题,但它终究无法带我们实现所谓的通用人工智能(AGI)这一终极目标,而且这还是一种成本极高、效率极低的研发方式。你可以对比一下,我的孩子只需要少量的信息和学习,就能理解这个世界,而大语言模型却需要学习整个互联网的海量数据,二者的效率差距简直可笑。

 

这些企业花费巨资,做出的却是效率低下、可靠性堪忧,但又有一定使用价值的模型。我们需要的是其他更高效、更经济、更可靠的研发思路,企业应该投入资金去探索这些新方向。但问题的根源,其实也来自你所熟悉的金融领域:风险投资家能从那些听起来合理的投资项目中,赚取 2%的管理费。我很好奇你对这个观点的看法,因为这毕竟是你的专业领域。试想一下,作为风险投资家,如果有一个项目能让你管理一万亿美元的资金,哪怕你根本不在乎项目最终的结果,也能赚到 2%的管理费,这足以让你成为亿万富翁。我并不是说所有的风险投资家都是这样想的,我见过很多投资人,他们确实真心想推动技术进步。

 

但就像任何行业一样,很多投资人都带着功利的心态。对这些功利的投资人来说,最理想的投资标的,就是那些听起来前景广阔、无需真正落地、成本极高的项目,这样他们就能赚取巨额的管理费。我认为,这就是整个行业都沉迷于规模化扩张的原因:投资人能从中赚取不菲的管理费,而且数额极其可观。但从学术研究的角度来说,这绝不是正确的选择,最终也没有带来理想的结果,反而造成了巨额的资金浪费。风险投资家赚走了管理费,而那些有限合伙人,最终会损失大量的资金。

 

Steve Eisman:你是不是觉得,这个行业的泡沫快要破裂了,还是说现在根本没法判断?

 

Gary Marcus:其实炒股的那句老话你我都懂,市场保持非理性的时间,可能比你保持偿付能力的时间还要长。

 

Steve Eisman:没错。

 

Gary Marcus:我去年用一个比喻形容当下的情况,就像《兔八哥》里的歪心狼跑到了悬崖边,它不往下看,就不会掉下去。当然这不符合物理规律,但很有意思。而现在,你所在的投资圈里,已经有人开始往下看了。我觉得从去年 11 月开始,就不断有投资人说,他们看到了一圈又一圈的的循环融资,投资回报率却不尽如人意,这些 AI 系统实际用起来也远没有想象中好用,或许这个赛道本身就不靠谱。我个人觉得,英伟达的产品做得非常出色,生态体系也很完善,不只是芯片本身,配套的软件等方方面面都很好。我见过黄仁勋,他给我留下了很深的印象,英伟达的产品确实很棒。

 

但问题的关键是,他们最终能卖出多少芯片?我认为,目前的芯片销售全靠市场投机,大家都在赌,我稍后再说说其他人的看法。所有人都在投机,认为这类芯片的需求会无限大,而这种投机的底层逻辑,是相信这些 AI 模型最终能实现 AGI。真正的 AGI 能完成人类能做的所有事,其商业价值不可估量,每年创造数万亿美元的价值都有可能。但《华盛顿邮报》几天前报道了一项一个月前完成的研究,研究显示,人类日常的工作中,只有 2.5%的工作能真正由 AI 系统完成。所以人们幻想中 AI 能完成的大部分工作,其实它都做不到,也根本做不好。这就意味着,最终所有在芯片上的投资,都会变得毫无意义。

 

而在这些企业里,OpenAI 可能是最脆弱的那个。OpenAI 有超过一万亿美元的未兑现承诺,却从未实现过盈利,如今又身处一个产品高度同质化的市场。它最大的竞争对手谷歌已经迎头赶上,甚至可以说实现了反超,还拿下了和苹果的合作大单,这可是笔大生意。所以我觉得 OpenAI 现在已经手忙脚乱了,实在看不出它的估值有任何合理性。

 

Steve Eisman:对我所在的投资圈来说,如果投资人开始从 OpenAI 撤资,而它又融不到新的资金,那会给整个生态系统带来连锁反应。

 

Gary Marcus:没错,这正是我认为即将发生的事。我觉得最终 OpenAI 可能会被微软这样的企业收购。我这几年一直说,OpenAI 最终会成为 AI 领域的 WeWork。未来人们都会疑惑,它当初怎么会有那么高的估值,这完全不合逻辑。OpenAI 的年收入只有几十亿美元,却每个月亏损数十亿美元,还有众多竞争对手,这样的企业根本撑不下去。如果投资人撤资,或者不再继续注资,OpenAI 就会陷入巨大的危机。它每个月的亏损大概有 30 亿美元,一年就是 300 多亿美元,即便最近完成了 400 亿美元的融资,也只够支撑一年的运营。

 

Steve Eisman:没错,也就一年的时间。

 

Gary Marcus:而且现在很多人都在持观望态度,他们会觉得,谷歌才是更适合这场竞争的玩家,毕竟谷歌已经追上来了。如果这场竞争只拼规模,那赢家必然是谷歌,这是毋庸置疑的。谷歌有能力做出巨额投入,甚至根本不需要英伟达的芯片,因为他们自研了张量处理单元,能实现类似的功能,所以谷歌的抗风险能力更强。他们有稳定的财务支撑,最终一定会赢。

 

Steve Eisman:没错。

 

Gary Marcus:只要有一部分人意识到,OpenAI 想要活下去,需要的资金量是天文数字,它的处境就会变得岌岌可危。它下一轮可能需要 1000 亿美元的融资,而全世界能拿出这么多钱的人,可能也就五个。就算其中四个愿意投资,只要有一个拒绝,就会出问题;而如果五个都拒绝,它要么倒闭,要么只能去找微软求救。

“脱离世界模型做 AI,根本行不通”

Steve Eisman:Gary,在我们结束访谈前,还有什么我该问却没问的问题吗?

 

Gary Marcus:我觉得这次访谈特别棒。要说还有什么重要的点没聊到,那应该就是“世界模型”这个概念。

 

Steve Eisman:没错,我本来也想聊这个。你一直说我们需要构建世界模型,这个概念完全超出了我的专业领域,不如你给大家解释一下,到底什么是世界模型?

 

Gary Marcus:不同的人对世界模型有不同的定义,简单来说,它就是在计算机系统中,构建一个能表征外部现实世界的体系。我说说我认为我们需要的世界模型是什么样的:软件内部需要有一个结构,能对应现实世界中的各种事物。比如导航系统的世界模型,需要能表征道路的分布、连接方式,以及不同路段的通行时间。在传统的 AI 领域,世界模型是研发的起点,所有的研究都基于此,没人会想过脱离世界模型做研发。Herbert Alexander Simon 是上世纪 50 年代 AI 的奠基人之一,他写过一本自传叫《Models of My Life》,他一生都在研究各类模型和世界模型,并且认为,做好 AI 的关键就是构建正确的世界模型。

 

而大语言模型却试图脱离世界模型运作。构建一个针对特定事物的世界模型,尤其是复杂事物,需要付出巨大的努力。比如过去研发专家系统时,研究者需要构建能模拟医生思考方式的模型,能表征病人身体机能、生理结构的模型,这个过程非常繁琐。当时还有一个专门的领域叫知识工程,做这项工作成本极高,没人愿意做。大语言模型和其他类型的神经网络出现后,研发者宣称,不用再做这些繁琐的工作,只需要让系统从数据中自主学习就行。

 

但事实证明,这根本行不通。就像大语言模型会把出生在洛杉矶的 Harry Shearer 说成是伦敦人,原因就是它没有一个完善的世界模型,无法像设计精良的软件那样,精准调取正确的信息。所以我们必须在 AI 系统中融入世界模型,才能避免幻觉现象的发生。

 

Steve Eisman:我还是不太理解世界模型到底是什么。

 

Gary Marcus:用非专业的语言解释确实有难度,简单说,它就是对世界的一种表征,而且这个“世界”不一定是现实世界。比如我们对《星际迷航》《星球大战》《哈利·波特》这些虚构世界,也会有对应的世界模型。这也是人类和当前 AI 系统最本质的区别:当我们看一部电影、读一本书时,会在脑海中构建出这个世界的运行规则,并且能判断情节是否符合这个世界的逻辑,会不会有不合理的设定。比如看了《哈利·波特》,我们会知道里面的人能骑着扫帚飞,但不会把这个设定和现实世界混淆,不会回家后跳上扫帚就想从窗户飞出去。

 

人类能快速构建并同时掌握多个世界模型,就算看一部新的科幻剧,20 分钟左右就能理解这个全新世界的规则,这是人类的天赋。但在 AI 领域,无论是传统的符号式 AI,还是现在的大语言模型,都做不到这一点。传统 AI 的优势是可以人工构建世界模型,你可以雇一群学者花六周时间,把一个问题的相关规则梳理清楚,构建成模型。最近离世的顶级研究者 Doug Lenat 就做过这样的研究,他为《罗密欧与朱丽叶》构建了世界模型,他的系统能真正理解这部剧的关键情节,而非从网上的读书笔记中获取二手信息,表现非常惊艳。但问题是,我们不知道该如何让传统 AI 自主学习、构建世界模型。而大语言模型则完全做不到构建世界模型,只是在假装自己能做到。

 

我有个很经典的例子,就算用整个互联网的内容训练大语言模型,让它接触海量的国际象棋规则和对局记录,它依然会走出违规的棋步,因为它从未真正抽象出国际象棋的运行逻辑。这一点就足以说明问题了。试想一下,一个人看了一百万盘象棋对局,读了维基百科、象棋网站上的所有规则,还看了 Robert James Fischer 的象棋著作,不可能连基本的棋规都掌握不了,但 AI 就是做不到。

 

所以我们需要研发能自主归纳出世界模型的 AI 系统,这类系统能从数据中挖掘因果规律,识别其中的核心要素。这是一个难题,不是说有人明天回家鼓捣一下就能解决的。长期以来,无论是传统 AI 还是大语言模型,都在回避这个问题,而现在,我们必须直面它。

 

Steve Eisman:看来这需要很长的时间来研究。

 

Gary Marcus:确实需要很久。我想说的是,AI 确实会以我们难以想象的方式改变世界,但绝不是现在,靠当下的这项技术根本做不到。我们需要把这一点考虑进去,做出合理的投资决策。现在的问题是,我们到底是在投资基础研究,还是在为一项已经成熟的技术做规模化投入?答案显然是后者。而当下的市场,大多是在投机,赌那些目前行不通的技术,只要做得更大,就能凭空实现突破。

 

但事实上,单纯的规模化根本解决不了这些核心问题,我们真正需要的是扎实的基础研究。这是我过去五年一直强调的观点,也是 SSG 在去年 11 月提出的观点,而 Ilya Sutskever 也表达了类似的看法。当我们这些背景截然不同的人,都达成了这样的共识,行业内的人其实应该认真听一听。

 

参考链接:

https://www.youtube.com/watch?v=aI7XknJJC5Q

阿里突发最强旗舰模型,总参数过万亿

 

就在刚刚,Qwen3-Max-Thinking 正式版突然发布,总参数规模超过 1 万亿(1T),位于目前全球最大规模 AI 模型行列,预训练数据规模高达 36T Tokens,覆盖大量高质量语料。

 

Qwen3-Max 是阿里通义团队迄今规模最大、能力最强的语言模型,该版本包括 Base、Instruct 和 Thinking 多种形式。

 

在多项权威基准测试中表现优异,Qwen3-Max-Thinking 性能可与 GPT-5.2-Thinking、Claude-Opus-4.5、Gemini-3 Pro 等闭源顶级模型竞争甚至超越。

 

具体而言,Qwen3-Max-Thinking 在多项关键 AI 基准测试中达到了或刷新了全球 SOTA 表现:

 

  • 在包含事实科学知识、复杂推理和编程能力在内的 19 项权威基准测试中取得极高水平,有记录显示其综合表现可媲美 GPT-5.2-Thinking、Claude-Opus-4.5 及 Gemini-3 Pro 等业内领先模型。

  • 在数学推理基准测试中,该模型曾在预览阶段实现 AIME 25 和 HMMT 25 满分(即 100% 准确率),这一表现被认为代表了高难度数学推理能力。

  • 相较于此前的 Instruct 版本,Thinking 版本在 Agent 工具调用、复杂逻辑和深度推理任务中表现出更优的能力。

 

这些测试覆盖了科学知识问答(如 GPQA Diamond)、数学推理(如 IMO 等级测试)、代码编程(如 LiveCodeBench)等多个领域,是衡量大型语言模型综合能力的重要指标。

 

为实现上述性能突破,千问团队在官方博客中称为 Qwen3-Max-Thinking 引入两项核心创新:

 

  • 自适应工具调用能力,可按需调用搜索引擎和代码解释器,现已上线;

  • 测试时扩展技术(Test-Time Scaling),显著提升推理性能,在关键推理基准上超越 Gemini 3 Pro。

 

那么,这两项核心创新到底什么意思?

 

首先是自适应工具调用能力,据千问团队介绍,与早期需要用户手动选择工具的方法不同,Qwen3-Max-Thinking 能在对话中自主选择并调用其内置的搜索、记忆和代码解释器功能。

 

该能力源于专门设计的训练流程:在完成初步的工具使用微调后,模型在多样化任务上使用基于规则和模型的反馈进行了进一步训练。实验表明,搜索和记忆工具能有效缓解幻觉、提供实时信息访问并支持更个性化的回复。代码解释器允许用户执行代码片段并应用计算推理来解决复杂问题。这些功能共同提供了流畅且强大的对话体验。

 

再来说说测试时扩展。该技术是指在推理阶段分配额外计算资源以提升模型性能的技术。研发团队提出了一种经验累积式、多轮迭代的测试时扩展策略。

 

不同于简单增加并行推理路径数量 N(这往往导致冗余推理),团队对并行轨迹数量进行限制并将节省的计算资源用于由“经验提取”机制引导的迭代式自我反思。

 

该机制从过往推理轮次中提炼关键洞见,使模型避免重复推导已知结论,转而聚焦于未解决的不确定性。关键在于,相比直接引用原始推理轨迹,该机制实现了更高的上下文利用效率,在相同上下文窗口内能更充分地融合历史信息。在大致相同的 token 消耗下,该方法持续优于标准的并行采样与聚合方法:GPQA (90.3 → 92.8)、HLE (34.1 → 36.5)、LiveCodeBench v6 (88.0 → 91.4)、IMO-AnswerBench (89.5 → 91.5) 和 HLE (w/ tools) (55.8 → 58.3)。

 

这些技术改善了模型处理复杂任务时的自主规划、推理链构建和决策能力。

 

千问 App PC 端和网页端已经第一时间上新这一 Qwen 系列最强模型,现在即可免费体验。API(qwen3-max-2026-01-23)也已开放。

 

体验地址:https://chat.qwen.ai/?spm=a2ty_o06.30285417.0.0.1ef4c921OJuiXU

网友:中国大模型不负期待!

 

在模型发布消息传出后,社交平台上也迅速出现了大量讨论。一部分网友的关注点集中在模型能力本身,语气中带着明显的惊讶与认可。

 

有海外开发者在 X 上表示,自己已经习惯看到 Qwen 在多个榜单上“反超”其他模型。

 

“Qwen 总是能跑赢其他模型,”一位用户调侃道,同时也提出了更偏产品层面的期待,希望 Qwen 能在 Android 端做出“更简洁、更有辨识度的应用设计”,认为模型能力已经走在前面,产品体验还有进一步打磨空间。

 

也有不少声音将 Qwen 的发布节奏与国际头部厂商作对比。一位网友直言,通义千问团队在模型更新和能力披露上的频率,甚至“已经超过了 OpenAI”。在他看来,这种持续、高密度的迭代和公开沟通,本身就是一种对开发者更友好的信号,至少让外界清楚知道模型在什么阶段、解决了哪些问题。

 

还有用户的反馈则更为直接。一位名为 Harriett Solid 的网友在评论中写道:“这正是我一直在等的 Qwen 发布版本。”这类评价并未展开具体技术细节,但从情绪上看,显然将 Qwen3-Max-Thinking 视为一次“到位”的升级,而不是过渡性产品。

 

整体来看,网友评论呈现出两个明显特点:一方面,对 Qwen 在推理能力和更新速度上的认可度较高;另一方面,讨论已经开始从“模型是否强”延伸到“产品体验、生态建设是否匹配当前能力”。

 

这也从侧面反映出,随着模型能力逼近甚至进入全球第一梯队,外界对通义千问的期待,正在从单点技术突破,转向更完整的产品与平台层面。

 

参考链接:

https://chat.qwen.ai/

https://qwen.ai/blog?id=qwen3-max-thinking

DoorDash 构建并部署了一个AI驱动的安全系统SafeChat,用于审核配送员与顾客在应用内聊天、发送图片及进行语音通话时的互动内容。SafeChat 运用机器学习技术,可近乎实时地检测并响应不安全内容,筛查通信中的冒犯性或不当信息,并支持立即采取行动,如举报问题或取消配送任务。该系统专注于安全保障而非用户互动或自动化。它以 AI 为核心基础设施,旨在维护平台的信誉及保障配送员与顾客的利益。

 

SafeChat 使用了分层 AI 架构,结合了机器学习模型与人工审核。该系统每天处理数百万次互动,对文本消息、图片和语音通信内容进行分类。其文本审核分为两个阶段。

 

在第一阶段,DoorDash 工程师采用了一个三层方案。第一层是审核 API,提供了一个低成本、高召回率的过滤器,以极小的延迟自动清除了大约 90%的消息。随后,未被清除的消息进入一个速度快、成本低的大型语言模型(LLM),它能以更高的精确度将 99.8%的消息识别为安全信息。剩余的消息由一个更精确、成本更高的 LLM 进行评估,对包含不敬言语、威胁和性内容的消息进行评分。这些评分可以为采取安全行动提供支持,例如在检测到高风险消息时允许配送员取消订单。

 

DoorDash 基于第一阶段的大约 1000 万条消息训练了一个内部模型,第二阶段因此能够采用一种双层方案。内部模型为第一层,用于自动清除大多数消息。只有被标记的消息才会进入精确的 LLM 进行详细评分。第一层的响应时间在 300 毫秒之内,而被标记的消息可能需要长达三秒钟。该系统处理了 99.8%的流量,提高了可扩展性并降低了成本。

DoorDash 双层文本审核架构(图片来源:DoorDash技术博客

 

图片审核由计算机视觉模型负责处理,模型的选择依据是吞吐量和粒度。为了减少误报和漏报,他们通过反复的人工审核调整了阈值和置信度分数。该系统每天可以处理数十万张图片,而且延迟可以满足实时互动的要求。

 

语音审核最初以仅观察模式部署,用于校准置信度分数。待阈值验证完成后,系统即可自动执行干预措施,例如中断通话或限制后续通信。

DoorDash 语音审核架构(图片来源:DoorDash技术博客

 

在 LinkedIn 上,作为特性发布公告的一部分,DoorDash 表示:

 

SafeChat 通过 AI 创新和精心设计,使平台上的每个人都建立起信心和信任,为所有用户打造一个更安全顺畅的使用体验。

 

SafeChat 的执行层根据违规的严重性和反复性采取相应的行动。它可以阻止或删除不安全的消息,终止通话,限制通信,或将问题升级给人类安全代理。重复出现或严重的违规行为会触发账户审查或暂停。

 

根据 DoorDash 工程师的报告,通过将分层 AI 模型与人类反馈循环相结合,SafeChat 系统得以实现大规模运行并保持近乎实时的响应速度。按照该公司的说法,该系统自部署以来,已使中低严重程度的安全事件减少了约 50%。

原文链接:

https://www.infoq.com/news/2026/01/doordash-safechat-ai-safety/