包含关键字 typecho 的文章

Cisco ACI Simulator 6.1(5e)M | 6.0(9c)M - ACI 模拟器

Application Centric Infrastructure (ACI) Simulator Software

请访问原文链接:https://sysin.org/blog/cisco-acisim-6/ 查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


Cisco ACI

新增功能

2025 年 12 月 15 日 6.1(5e) 版本发布

发布概览

Cisco ACI 6.1(5) 是一个维护版本,通过关键缺陷修复和代码加固优先提升系统稳定性。本次发布遵循 Cisco 既定的维护版本节奏,推荐给希望在 ACI 部署中获得更高可靠性和稳定性的客户使用。

重要支持增强

虽然 ACI 6.1(5) 主要是维护版本,但为满足特定客户部署需求,本次发布包含了以下关键增强功能:

  • 互操作性支持:在具备策略扩展(Policy Extension)能力的环境中,实现 ACI 与 VXLAN EVPN Fabric 的任意对任意(any-to-any)互联 (sysin)。
  • 安全性增强:在 ACI 模式下,对 N9K-C9348GC-FX3 和 N9K-C93180YC-FX3 的 1G/100M 端口提供 MACsec 支持。

已解决问题:包含多项错误修复,篇幅较长,详见官方文档。

ACI Simulator

介绍

思科以应用为中心的基础设施 (ACI) 被概念化为一个分布式、可扩展、多租户的基础设施,具有通过以应用为中心的策略进行控制和分组的外部端点连接。思科应用策略基础设施控制器 (APIC) 是关键的架构组件,它是思科 ACI 的自动化、管理、监控和可编程性的统一点。Cisco APIC 支持在任何地方部署、管理和监控任何应用程序 (sysin),并为基础设施的物理和虚拟组件提供统一的操作模型。Cisco APIC 根据应用要求和策略以编程方式自动执行网络配置和控制。它是更广泛的云网络的中央控制引擎,简化了管理,同时在应用程序网络的定义和自动化方式以及提供北向 REST API 方面提供了极大的灵活性。Cisco APIC 是一个分布式系统,实现为许多控制器实例的集群。

Cisco ACI architectural building blocks

思科 ACI 模拟器设备

Cisco ACI Simulator 设备的目的是在一台物理服务器中提供真正的、功能齐全的 Cisco APIC 软件,以及叶交换机和主干交换机的模拟结构基础设施 (sysin)。您可以使用 Cisco ACI Simulator 设备了解功能、练习 API 并启动与第三方编排系统和应用程序的集成。Cisco APIC 的本机 GUI 和 CLI 使用发布给第三方的相同 API。

Cisco ACI Simulator 设备包含模拟交换机,因此您无法验证数据路径。但是,一些模拟交换机端口已映射到前面板服务器端口,这允许您连接外部管理实体,例如 ESX 服务器、vCenter、vShield、裸机服务器、第 4 层到第 7 层服务、AAA 系统、和其他物理或虚拟服务设备。此外,Cisco ACI Simulator 设备允许模拟故障和警报,以促进测试和演示功能。

每台服务器设备将提供一个生产 Cisco APIC 实例。相比之下,Cisco ACI Simulator 设备在单个服务器中包含三个实际 Cisco APIC 实例和两个模拟叶交换机和两个模拟主干交换机。因此,Cisco ACI Simulator 设备的性能将低于实际硬件上的部署。您可以使用以下任何功能接口对模拟结构执行操作:

  • 图形用户界面 (GUI)
  • 命令行界面 (CLI)
  • 应用程序编程接口(API)

图 1 显示了在模拟器服务器中模拟的组件和连接。

图 1 Cisco ACI Simulator 设备服务器中的模拟组件和连接

相关图片、图表或屏幕截图

软件功能

本部分列出了此版本中可用的 Cisco ACI Simulator 设备的主要软件功能。

  • 以应用为中心的网络策略
  • 基于数据模型的声明性供应
  • 应用、拓扑监控和故障排除
  • 第三方集成(第 4 层到第 7 层服务、WAN、vCenter、vShield)
  • 物理基础设施政策(脊和叶)
  • 思科 ACI 库存和配置 (sysin)
  • 在跨设备集群的分布式框架上实现
  • 关键托管对象(租户、应用程序配置文件、交换机等)的运行状况评分
  • 故障、事件和性能管理

安装说明

Cisco ACI Simulator 软件预装在 Cisco ACI Simulator 设备上。首次启动 Cisco ACI Simulator 设备时,Cisco APIC 控制台会显示一系列初始设置选项。请参阅 Cisco ACI Simulator VM 安装指南

不支持 ISO 映像。您必须使用 OVA 映像。

兼容性信息

此版本的 Cisco ACI Simulator 设备支持以下软件:

  • 有关受支持的 VMware vCenter 和 vShield 版本,请参阅 ACI 虚拟化兼容性
  • Cisco ACI Simulator 设备 GUI 的 Web 浏览器:

    • Mac 和 Windows 上的 Chrome 版本 35 及更新版本。
    • Mac 和 Windows 上的 Firefox 版本 26 及更新版本。
  • Cisco ACI Simulator 设备不支持智能许可。

适用的 VMware 软件下载

建议在以下版本的 VMware 软件中运行(Linux OVF 无需本站定制版可以正常运行,macOS 虚拟化如果不是 Mac 必须使用定制版才能运行,Windows OVF 需要定制版才能启用完整功能):

下载地址

ImagesFile nameRelease DateSize
Simulator OVA Image for 6.0(1g) Release Part 1acisim-6.0-1g_part1.ova09-Sep-202211046.81 MB
Simulator OVA Image for 6.0(1g) Release part 2acisim-6.0-1g_part2.ova09-Sep-202211046.81 MB
Simulator OVA Image for 6.0(1g) Release part 3acisim-6.0-1g_part3.ova09-Sep-202211046.81 MB
Simulator OVA Image for 6.0(1g) Release part 4acisim-6.0-1g_part4.ova09-Sep-202211046.81 MB
Simulator OVA Image for 6.0(1g) Release part 5acisim-6.0-1g_part5.ova09-Sep-202211046.81 MB
Simulator OVA Image for 6.0(1g) Release part 6acisim-6.0-1g_part6.ova09-Sep-202211046.81 MB
Simulator OVA Image for 6.0(1g) Release part 7acisim-6.0-1g_part7.ova09-Sep-202211046.81 MB
Simulator OVA Image for 6.0(1g) Release part 8acisim-6.0-1g_part8.ova09-Sep-202211046.81 MB
Simulator OVA Image for 6.0(2h) Releaseacisim-6.0-2h.ova01-Mar-202316338.74 MB
Simulator OVA Image for 6.0(3d) Releaseacisim-6.0-3d.ova09-Aug-202311772.90 MB
Simulator OVA Image for 6.0(4c) Releaseacisim-6.0-4c.ova11-Jan-202411182.05 MB
Simulator OVA Image for 6.0(5h) Releaseacisim-6.0-5h.ova29-Feb-202411113.20 MB
Simulator OVA Image for 6.0(6c) Releaseacisim-6.0-6c.ova28-Jun-202410064.43 MB
Simulator OVA Image for 6.0(7e) Releaseacisim-6.0-7e.ova29-Aug-202410085.41 MB
Simulator OVA Image for 6.0(8e) Releaseacisim-6.0-8e.ova29-Oct-202410104.62 MB
Simulator OVA Image for 6.0(9c) Releaseacisim-6.0-9c.ova27-Feb-20258280.59 MB

Application Centric Infrastructure (ACI) Simulator Software - 6.0(9c)M


ImagesFile nameRelease DateSize
Simulator OVA Image for 6.1(1f) Releaseacisim-6.1-1f.ova01-Aug-20248578.75 MB
Simulator OVA Image for 6.1(2f) Releaseacisim-6.1-2f.ova05-Dec-20245233.71 MB
Simulator OVA Image for 6.1(2g) Releaseacisim-6.1-2g.ova14-Dec-20245234.38 MB
Simulator OVA Image for 6.1(3f) Releaseacisim-6.1-3f.ova04-Apr-20254169.79 MB
Simulator OVA Image for 6.1(4h) Releaseacisim-6.1-4h.ova13-Aug-20254156.45 MB
Simulator OVA Image for 6.1(5e) Releaseacisim-6.1-5e.ova15-Dec-20254163.86 MB

Application Centric Infrastructure (ACI) Simulator Software - 6.1(5e)M


数据中心网络相关产品:

更多:Cisco 产品下载链接汇总


“我现在处于震惊和恐慌之中。”

没有寒暄,没有背景铺垫,一家位于墨西哥的初创公司联合创始人在 Reddit 上敲下了这句几乎绝望的求救。作为一家仅有三名开发者的微型团队,他们每个月在 Google Cloud 上的正常开销大约是 180 美元——这是一笔对于初创团队来说极其精确、可控的固定成本。

但在 2 月 11 日至 12 日的短短 48 小时内,由于 Gemini API 密钥被盗用,他们的云端账单像脱缰的野马般飙升到了 82,314.44 美元(约合人民币 57 万)。几乎所有的费用都来自 Gemini 3 Pro 图像与文本服务。

账单暴涨

180 美元到 82,314 美元,457倍的差距。对于大厂,这是一次数据波动;对于这个三人团队,这是直接宣告破产的死刑判决。

【笔者观点】
当一家初创公司的命运因为一串字符的泄露而在48小时内被彻底改写时,我们看到的不仅仅是黑客的猖獗,更是一个严重失衡的云服务权力结构。在生成式 AI 时代,API 的调用成本被无限放大,但云巨头们为底层开发者提供的安全护栏,却依然停留在 Web 2.0 时代。

一、 48小时失控:被“共同责任”压垮的微型团队

事故发生后,这支团队的响应堪称教科书级别:删除泄露密钥、禁用 Gemini API、轮换所有凭证、全员启用 2FA 双因素认证、收紧 IAM 权限,并立刻向谷歌提交工单。

但令人不寒而栗的是谷歌的官方回复。谷歌搬出了云服务行业的“金科玉律”——共享责任模式(Shared Responsibility Model)。简而言之:平台负责基础设施的安全,客户负责凭证的管理;既然是你的 API Key 泄露了,这笔账单就必须由你来背。

这位创始人提出了极其克制却又直指核心的质疑:当使用量达到历史水平的 5 倍甚至 10 倍时,为什么系统没有自动硬性停止?在极端峰值下,为什么不需要强制确认?审查期间为什么没有临时冻结?为什么默认没有单 API 消费上限?

截至目前,谷歌的态度依然强硬:除了付款,别无选择。

【笔者观点】
当风控机制把所有的“容错率”都留给平台,把所有的“致命伤”都转嫁给小微企业时,“共享责任”就成了一块推诿的遮羞布。一个现代化的计费系统,允许日常消耗在 48 小时内暴涨 457 倍而没有任何熔断机制,事后却要求用户全额买单,这究竟是客户的风控无能,还是云巨头在产品设计与商业逻辑上的傲慢?

二、 反常识的真相:你以为的安全,正是谷歌自己挖的“坑”

如果仅仅是开发者粗心泄露了密钥,这可能只是一次普通的公关事件。但安全公司 Truffle Security 的研究员 Joe Leon 揭开了这起天价账单背后一个令人毛骨悚然的“反常识”漏洞:很多时候,谷歌 API 密钥在前端的暴露,恰恰是谷歌自己教唆的。

Joe Leon 在博客中详细解释了为什么谷歌 API 密钥并非秘密这件事在以前没什么问题,但 Gemini 出来后,情况就变了。

Joe Leon博客解释

多年来,谷歌一直明确告知开发者,API 密钥可以安全地嵌入客户端代码中。Firebase 自身的安全检查清单也直接指出,API 密钥并非秘密信息。

Firebase安全说明

不仅如此,Google Maps JavaScript 文档还直接指示开发者将密钥直接粘贴到 HTML 中。这在当时合情合理,因为这些密钥被设计为用于计费的项目标识符,可以通过 HTTP Referer 等措施限制,并非设计为身份验证凭据。

Google Maps代码示例

但 Gemini 诞生后,游戏规则在暗中被彻底改变了。

Gemini权限说明

当开发者在 Google Cloud 项目中启用 Gemini API 时,该项目中原有的、已经被安全部署在公开网页代码中的旧 API 密钥,会在后台被静默赋予访问敏感 Gemini 端点的权限。 整个过程没有任何警告、确认弹窗或邮件通知。

这暴露了一个极其不安全的默认设置。在 Google Cloud 中创建新的 API 密钥时,默认设置为“不受限制”,这意味着它立即对项目中所有已启用的 API(包括 Gemini)都有效。

不受限制的API密钥

这就导致了极其恐怖的隐式信任升级:

  1. 三年前,你按照谷歌的官方教程,把一个无害的地图 API 密钥写在了网站前端。
  2. 上个月,你的同事为了做内部测试,在同一个云项目里启用了 Gemini。
  3. 瞬间,你前端那个公开的地图密钥,变成了一把可以调用昂贵 AI 模型、甚至读取缓存文件和私有数据的“超级后门”。

攻击者根本不需要入侵你的服务器,只需访问你的网站主页,右键查看源代码,复制那个合法的 API 密钥,就可以疯狂调用大模型,不仅能刷爆你的账单,还能耗尽你的配额,甚至窃取你通过 Gemini 上传的数据。

【笔者观点】
这是整起事件中最令人不齿的系统性陷阱。漏洞并非源于开发者的愚蠢,而是源于平台底层逻辑的“暗渡陈仓”。谷歌用旧时代的钥匙,去开新时代 AI 的金库,且没有通知任何人。当一个公开标识符被悄无声息地升格为敏感通行证时,所谓的“开发者配置失误”,实质上是平台方悄然转嫁的系统性架构灾难。指责客户没保管好钥匙之前,平台是不是应该先解释一下,为什么这把旧锁突然能开核弹发射井了?

三、 谁来买单?AI 时代的裸奔与救赎

墨西哥开发者的遭遇在技术社区引发了撕裂式的讨论。

有人痛心疾首,表示如果是自己遇到这种情况,“恨不得飞到谷歌总部跪求退款”;也有人冷眼旁观,认为开发者没有利用云平台提供的工具设置“硬性预算上限(Hard Limits)”,纯属咎由自取。

但现实远比键盘上的敲击复杂得多。资深云架构师指出,云费用的结算通常不是实时的,往往存在 24 到 36 小时的延迟。这意味着,当你收到超额提醒并触发所谓的“硬性封顶”时,黑客可能已经在这几个小时的延迟时间差里,刷出了几万美元的调用量。

为了解问题的严重程度,Truffle Security 扫描了 2025 年 11 月的 Common Crawl 数据集。结果显示,在公开的网页档案中,至少有 2,863 个 Google API 密钥存在此类权限提升漏洞。

源代码中的API密钥

受害者不乏大型金融机构、顶级安全公司,甚至包括谷歌自己的工程师团队。如果连谷歌的自己人都避不开这个坑,指望缺乏专门安全团队的三人初创公司去完美避险,无异于痴人说梦。

【笔者观点】
生成式 AI 的高昂调用成本,正在以前所未有的烈度重塑云服务的风险边界。传统 Web 时代一次 API 泄露可能只会带来小痛小痒,但在大模型时代,一行未经保护的配置足以在 48 小时内抹杀一家公司的未来。
这场 57 万的天价教训给所有开发者敲响了警钟:永远不要迷信简单的 API Key 认证,尽早拥抱基于权限的细粒度身份验证(Workload Identity)。在云巨头愿意填平他们自己挖出的技术陷阱之前,开发者唯一能做的,就是穿戴好最厚重的“防弹衣”,时刻防备着那些本该保护你的系统。

👇 欢迎关注我的公众号

在 AI 爆发的深水区,我们一起探索真正能穿越周期的技术价值。
微信搜索 【睿见新世界】 或扫描下方二维码,获取每周硬核技术推文:

微信图片_20260301232734_225_35.jpg

欢迎关注【睿见新世界】

智能客服网页版对比:访答如何脱颖而出

在众多智能客服解决方案中,访答智能客服网页版以其独特的优势吸引了众多企业用户的关注。与其他同类产品相比,它究竟有哪些过人之处?

部署便捷性对比

传统智能客服系统往往需要技术团队介入,部署周期长达数周。而访答只需一行代码即可嵌入官网,5分钟就能上线使用。这种零开发成本的部署方式,让中小企业也能轻松享受智能客服带来的便利。

核心技术优势

访答基于深度优化的中文RAG技术,在理解用户问题和匹配相关知识方面表现突出。与其他客服机器人相比,它能更准确地理解中文语境下的复杂问题,并提供精准的答案。

多模态内容处理

值得一提的是,访答支持图片、图文混排等资源的深度识别,这是许多同类产品所不具备的。当用户咨询产品参数或活动详情时,系统能够关联展示相关图片资源,大大提升了用户体验。

持续维护便利

网站内容更新后,访答支持一键更新知识库,无需修改前端代码。这种设计让企业能够随时保持客服知识库的时效性,确保用户始终获得最新、最准确的信息。

总体而言,访答智能客服网页版在易用性、技术深度和维护便利性方面都展现出了明显优势,是企业官网智能客服的理想选择。

Cisco APIC 6.1(5e)M - 应用策略基础设施控制器

Application Policy Infrastructure Controller (APIC)

请访问原文链接:https://sysin.org/blog/cisco-apic-6/ 查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


思科应用策略基础设施控制器 (APIC)

Cisco APIC cluster

Cisco NX-OS 网络操作系统软件

Cisco NX-OS 操作系统助力网络紧跟业务发展步伐。

NX-OS 网络操作系统为现代数据中心提供支持。

  • 架构灵活性

    架构灵活性

    NX-OS 助力数据中心随工作负载和应用的发展而不断扩展。

    • 借助 VXLAN EVPN 为可扩展工作负载提供支持
    • 通过多租户有效利用网络资源 (sysin)
    • 自由选用支持分段路由和 VXLAN 的 Overlay 网络技术
    • 借助 VXLAN 多站点实现灾难恢复和业务连续性
  • 操作简便性

    操作简便性

    NX-OS 具备可编程性,可将调配时间从几天缩短到几分钟,从而简化部署。

    • 与 Cisco DCNM 完全集成,实现全面管理
    • 通过行业标准 API 实现轻松配置
    • 与 DevOps 自动化工具完全集成
    • 支持原生 Docker 的简化工具
  • 端到端可视性

    端到端可视性

    数据和控制平面具有深度可视性,有助于保护数据中心,并针对问题快速进行补救。

    • 借助精细流和 ASIC 遥测,优化网络 (sysin)
    • 利用控制平面可视性和模型驱动的遥测,预防网络故障
    • 通过 MACSEC 加密,防御监听和网络攻击
    • 借助 802.1X 验证,保护终端和工作负载

借助 Cisco NX-OS 管理您的数据中心网络

  • 遥测技术助力网络运维

    建立可靠的数据中心网络 (sysin),防止停机并快速解决网络问题。

  • 分段路由

    使用 SRv6 架构构建可扩展的网络,从而降低网络运维的复杂性,并实现与核心/WAN 的数据中心互联 (DCI)

  • 自由定制、安全可靠

    灵活、安全地管理工作负载。NX-OS 支持您根据业务需求定制网络,让 DevOps 在创新时只需几分钟即可打开交换矩阵。

  • 轻松扩展

    为媒体构建具有成本效益且易于扩展的生产应用和网络。

思科应用策略基础设施控制器 (APIC)

思科应用策略基础设施控制器 (APIC)

实现多云数据中心网络调配自动化

思科应用策略基础设施控制器(思科 APIC)是思科 ACI 解决方案的主要架构组件。它可以统一对思科 ACI 交换矩阵、策略实施和运行状况监控进行自动化操作和管理。此控制器可优化性能,管理并操作可扩展的多租户思科 ACI 交换矩阵。

特性和功能

面向物理、虚拟和云基础设施的集中式应用级策略引擎。

  • 按应用和租户显示的详细可视性、遥测和健康评分
  • 围绕开放标准和开放式 API 设计 (sysin)
  • 实施强大的多租户安全、服务质量 (QoS) 和高可用性
  • 与 VMware、Microsoft 和 OpenStack 等管理系统集成
  • 面向思科云 ACI 部署公共云环境的云 APIC 设备

    思科 APIC 专为实现自动化、可编程性和集中式管理而设计,它通过 XML 和 JSON 提供北向 API。它提供命令行界面 (CLI) 和 GUI,这两个界面都使用 API 来全面管理交换矩阵。

ACI 信息图

ACI 信息图

了解 ACI 如何使应用部署更简单、更快捷、更高效 (sysin)。

放大图形

思科以应用为中心的基础设施 (ACI) 是一种架构,允许应用以编程方式定义网络要求。这种架构简化、优化和加速了整个应用程序部署生命周期。思科应用策略基础设施控制器 (APIC) 是充当控制器的软件或操作系统。

新增功能

2025 年 12 月 15 日 6.1(5e) 版本发布

发布概览

Cisco ACI 6.1(5) 是一个维护版本,通过关键缺陷修复和代码加固优先提升系统稳定性。本次发布遵循 Cisco 既定的维护版本节奏,推荐给希望在 ACI 部署中获得更高可靠性和稳定性的客户使用。

重要支持增强

虽然 ACI 6.1(5) 主要是维护版本,但为满足特定客户部署需求,本次发布包含了以下关键增强功能:

  • 互操作性支持:在具备策略扩展(Policy Extension)能力的环境中,实现 ACI 与 VXLAN EVPN Fabric 的任意对任意(any-to-any)互联 (sysin)。
  • 安全性增强:在 ACI 模式下,对 N9K-C9348GC-FX3 和 N9K-C93180YC-FX3 的 1G/100M 端口提供 MACsec 支持。

已解决问题:包含多项错误修复,篇幅较长,详见官方文档。

下载地址

ImagesFile nameRelease DateSize
APIC Image for 6.1(1f) Releaseaci-apic-dk9.6.1.1f.iso01-Aug-20243744.00 MB
Vapic Image for 6.1(1f) Releaseaci-apic-dk9.6.1.1f.ova01-Aug-20243866.51 MB
APIC Image for 6.1(2f) Releaseaci-apic-dk9.6.1.2f.iso05-Dec-20242627.11 MB
Vapic Image for 6.1(2f) Releaseaci-apic-dk9.6.1.2f.ova05-Dec-20242593.59 MB
APIC Image for 6.1(2g) Releaseaci-apic-dk9.6.1.2g.iso14-Dec-20242627.11 MB
Vapic Image for 6.1(2g) Releaseaci-apic-dk9.6.1.2g.ova14-Dec-20242593.24 MB
APIC Image for 6.1(3f) Releaseaci-apic-dk9.6.1.3f.iso04-Apr-20252605.45 MB
Vapic Image for 6.1(3f) Releaseaci-apic-dk9.6.1.3f.ova04-Apr-20252622.74 MB
APIC Image for 6.1(3g) Releaseaci-apic-dk9.6.1.3g.iso16-Jul-20252605.45 MB
Vapic Image for 6.1(3g) Releaseaci-apic-dk9.6.1.3g.ova16-Jul-20252622.89 MB
APIC Image for 6.1(4h) Releaseaci-apic-dk9.6.1.4h.iso13-Aug-20252627.11 MB
Vapic Image for 6.1(4h) Releaseaci-apic-dk9.6.1.4h.ova13-Aug-20252656.33 MB
Nutanix Image for 6.1(4h) Releaseaci-apic-dk9.6.1.4h_nutanix.ova13-Aug-20252824.78 MB
APIC Image for 6.1(5e) Releaseaci-apic-dk9.6.1.5e.iso15-Dec-20252632.27 MB
Vapic Image for 6.1(5e) Releaseaci-apic-dk9.6.1.5e.ova15-Dec-20252663.45 MB
Nutanix Image for 6.1(5e) Releaseaci-apic-dk9.6.1.5e_nutanix.ova15-Dec-20252832.46 MB

Cisco Application Policy Infrastructure Controller (APIC) Release 6.1(5e)M


数据中心网络相关产品:

更多:Cisco 产品下载链接汇总

从「AI For What」到「Value From AI」,100+可落地实践案例打通 AI 实战最后一公里!

4 月 16 日-4 月 18 日,QCon 全球软件开发大会将在北京举办。本届大会锚定 Agentic AI 时代的软件工程重塑,聚焦 Agentic AI、多智能体协作、算力优化、技术债治理、多模态和 AI 原生基础设施等前沿话题,邀请来自腾讯、阿里、百度、华为、蚂蚁、小米、网易等企业技术专家,带来百余项真实落地案例,系统性分享前沿洞察与实战干货,以技术共创探索 AI 落地新路径。

北银金科高级算法专家尹辰轩已确认出席 “Agentic Engineering” 专题,并发表题为多模态+Agent 在培训与教育领域的应用的主题分享。将多模态模型接入 Agent 中会有很多场景创新,比如将各类教材或培训材料,通过大模型解读,然后形成 PPT 和带数字人的演讲视频;再比如利用 AI 模仿真人与客服或销售对练,提高销售服务技巧。基于多智能体协同和大小模型协同,AI 能够应用的场景范围脱离了聊天。当然,这个过程中,性能也会是相当重要的技术难点。本次演讲将深入探讨多模态模型的快速进化推动 AI 应用场景扩充、AI 课程和 AI 陪练领域的一些应用等相关内容。

尹辰轩,曾就职于京东金融(P8/算法专家)、华兴证券(SVP/高级金融工程师)。牵头负责企业 AI 图谱、大模型投顾(大小模型协同引擎)、AI 陪练(多 Agent 协同)、AI 创智课程(多 Agent 协同)、报告专家(多 Agent 协同+大小模型协同)等项目或产品,主持人工智能技术在各类场景的落地,拥有丰富的项目经验。他在本次会议的详细演讲内容如下:

演讲提纲

  1. 多模态模型的快速进化推动 AI 应用场景扩充

  2. AI 课程和 AI 陪练领域的一些应用

  • AI 课程实现逻辑

  • AI 陪练实现逻辑

3. 技术上需要注意的点

  • 流程编排中的模型引用要适当,不要追求大参数模型

  • 知识库要慎用,会影响性能

  • 多 Agent 协同和工作流要善用并行

  • 在多模态接入过程中,尽量少用后端

演讲亮点

  1. 对多模态模型的优化(如 PPT 排版,数字人生成,性能优化)

  2. 技术架构的优化,尽量减少调用次数以提高性能

听众收益

  1. 应用场景的启发

  2. Agent 在实际业务中的应用架构

  3. 关于多模态+Agent 中性能的考量

除此之外,本次大会还策划了Agentic Engineering多模态理解与生成的突破记忆觉醒:智能体记忆系统的范式重塑与产业落地具身智能与物理世界交互Agent Infra 架构设计AI 重塑数据生产与消费AI 原生基础设施AI 驱动的技术债治理小模型与领域适配模型大模型算力优化Agent 可观测性与评估工程AI for SRE等 20 多个专题论坛,届时将有来自不同行业、不同领域、不同企业的 100+资深专家在 QCon 北京站现场带来前沿技术洞察和一线实践经验。

更多详情可扫码或联系票务经理 18514549229 进行咨询。

Bluespec SystemVerilog(以下简称BSV)的多态(Polymorphism)机制使得RTL的开发者可以编写高度抽象、可复用的代码逻辑,虽然该机制从语法层面上与SystemVerilog(以下简称SV)有一定的相似性,可以降低开发者从SV到BSV的学习成本,但BSV中的多态机制与函数式编程语言中的Proviso机制深度耦合,也给初学者造成了很多的困惑。因此,本文将以实际的代码案例,为BSV的初学者详细梳理BSV中的多态机制,以及其附加引入的Proviso机制,从而帮助读者快速掌握上述内容。

首先来看如下一个非常简单的PrioritySearchBuffer模块,该模块是一个固定深度的FIFO,但同时附加一个查找元素的端口,可以通过tag来检索出FIFO中的数据,因此本质上这是一个具有淘汰机制的Cache模块。

import Vector :: *;

interface PrioritySearchBuffer#(numeric type depth, type t_tag, type t_val);
    method Action enq(t_tag tag, t_val value);
    method ActionValue#(Maybe#(t_val)) search(t_tag tag);
endinterface

// A fifo like buffer, if buffer is full, new enq will lead to deq of the oldest element.
// if the same tags exist in the buffer, the newest enququed element will be returned.
module mkPrioritySearchBuffer(PrioritySearchBuffer#(depth, t_tag, t_val)) provisos (
    Bits#(t_tag, sz_tag),
    Bits#(t_val, sz_val),
    Eq#(t_tag),
    FShow#(t_tag),
    FShow#(t_val),
    FShow#(Tuple2#(t_tag, t_val))
);
    Vector#(depth, Reg#(Maybe#(Tuple2#(t_tag, t_val)))) bufferVec <- replicateM(mkReg(tagged Invalid));

    method Action enq(t_tag tag, t_val value);
        for (Integer idx=0; idx < valueOf(depth)-1; idx=idx+1) begin
            bufferVec[idx+1] <= bufferVec[idx];
        end
        bufferVec[0] <= tagged Valid tuple2(tag, value);
    endmethod

    method ActionValue#(Maybe#(t_val)) search(t_tag tag);
        Maybe#(t_val) ret = tagged Invalid;
        for (Integer idx=valueOf(depth)-1; idx >=0 ; idx=idx-1) begin
            if (bufferVec[idx] matchestagged Valid .readTuple) begin
                let {readTag, readVal} = readTuple;
                if (readTag == tag) begin
                    ret = tagged Valid readVal;
                end
            end
        end
        return ret;
    endmethod
endmodule

module mkTB(Empty);
    PrioritySearchBuffer#(10, Bit#(10), Bit#(10)) a <- mkPrioritySearchBuffer;
endmodule

首先观察开头的interface定义:

interface PrioritySearchBuffer#(numeric type depth, type t_tag, type t_val);
    method Action enq(t_tag tag, t_val value);
    method ActionValue#(Maybe#(t_val)) search(t_tag tag);
endinterface

这里,第1行通过在interface名称后面跟一个#的写法来使用多态特性,在#后面的括号中定义了depth、t\_tag、t\_val这3个类型变量(type variable)。类型变量表示未知(但特定)的类型,也就是说这个类型在不同的接口实例中可以有不同的值,但是对于某一个特定的接口实例,这个这个变量所代表的类型就是固定的。

在interface中定义的类型变量可以简单的理解为一个“占位符”,因为它并没有过多的约束,即我们不能在interface的定义中添加provisos关键字来对类型变量做出约束。但是,有一个简单的约束可以用在这里,即numeric前缀,它表示这个类型必须是一个代表数值的类型,也就是说这个我们可以使用valueOf()伪函数将该类型转换为一个Integer类型,而不带有numeric前缀的类型变量所代表的类型则不可以使用valueOf()进行转换。

再继续观察第2和第3行,这里引用了第1行定义的t\_tag和t\_val两个类型变量,再未来有module要使用这个接口时,类型变量这个“占位符”将被对应的真实类型所替代。

细心的读者可能会发现,在这个接口中定义的depth类型变量并没有被使用,这是为什么呢?先将其留作一个问题,看完下文就会知道答案。

再来观察下面使用该Interface的Module定义,这里我们只关心Module的接口部分以及一小部分用到类型参数的代码,将代码搬运如下:

module mkPrioritySearchBuffer(PrioritySearchBuffer#(depth, t_tag, t_val)) provisos (
    Bits#(t_tag, sz_tag),
    Bits#(t_val, sz_val),
    Eq#(t_tag),
    FShow#(t_tag),
    FShow#(t_val),
    FShow#(Tuple2#(t_tag, t_val))
);
    Vector#(depth, Reg#(Maybe#(Tuple2#(t_tag, t_val)))) bufferVec <- replicateM(mkReg(tagged Invalid));

    method Action enq(t_tag tag, t_val value);
        for (Integer idx=0; idx < valueOf(depth)-1; idx=idx+1) begin
        end
    endmethod
endmodule

在这段代码中,第1行定义了一个名为mkPrioritySearchBuffer的Module,其对外的接口类型为PrioritySearchBuffer#(depth, t\_tag, t\_val),很明显,这里又出现了类型参数depth、t\_tag和t\_val,这三个类型参数与interface定义中的三个类型参数之间通过先后顺序的位置来建立对应关系,也就是说,module定义中的这三个类型参数可以使用其他的名字,在上述示例中只是为了描述简洁而使用了同样的名称。

继续观察第1行的结尾,有一个名为provisos的关键字,这个关键字继承于Haskell这样的函数式编程语言(BSV的前身Bluespec Classic就是一个Haskell形式的语言),用于对类型变量进行约束。实际上,经常有人把BSV和Verilog的关系类比为Rust和C,如果读者熟悉Rust语言的话,则可以认为BSV中的provisos和Rust中通过where语句对泛型参数施加Trait约束是一样的,当然,我们并不假设读者了解Rust语言,所以接下来我们会详细介绍上述代码中2\~7行所表示的含义。

Provisos语句的作用是对各个类型变量进行约束,要求这些类型变量不能代表任意类型,而只能代表具有某些特征的类型。以上述第3行为例,Eq#(t\_tag)这个约束表示t\_tag这个类型变量所代表类型必须支持“相等比较”这个操作,换句话说,就是t\_tag这个类型变量代表的是一个未知的类型,这个类型只有在程序的其他地方被实例化时才会确定下来,但是,虽然我们不知道他的具体类型时什么,但这个类型必须具备可以进行“相等比较”这个操作的能力。通常来说,BSV中的基础数据类型,如Bit等,都是可以进行相等比较的,而通过struct定义的结构体则默认是不可比较的。

再来观察下面5\~7行的FShow约束,这个主要是为了在仿真过程中可以在$display中使用fshow函数来将一个信号友好的打印出来,如果不加入这两个约束,则该模块中将不能使用fshow来打印t\_tag和t\_val类型的数据。这里需要注意的是,provisos是不会自动传导的,以第7行为例,虽然t\_tag和t\_val都已经添加了FShow约束,但是由这两种类型构成的复合类型Tuple2#(t\_tag, t\_val)并不会自动具备FShow约束,仍然需要手工添加。

然后我们来观察上述代码的2\~3行,这里的Bits约束由两个类型,分别是t\_tag和sz\_tag,这里涉及到了provisos语句块中的一个特性:Provisos不仅可以为已经出现过的类型变量添加约束,还可以定义新的类型变量。以Bits#(t\_tag, sz\_tag)为例,如果按照代码从上向下阅读的顺序,t\_tag是我们已经定义好的一个类型变量(因为他出现在第1行的Interface定义中),而sz\_tag这个标识符还是第一次出现,所以这里本质上是新定义了一个叫做sz\_tag的类型变量,且约束sz\_tag是一个数值型的类型(numeric type),而且其取值是t\_tag的位宽。

为了加深读者的理解,这里再介绍一下上面实例代码中没有出现的Add#(n1, n2, n3)约束,这个约束需要传入三个类型变量,且这三个变量满足n1 + n2 = n3这个条件。一种常见的写法(以及在BSB编译器报错中经常可以看到的)是形如Add#(n1, a\_\_, n2)的约束,这里的a\_\_写法是一个约定俗成的占位符写法,由于BSV中用类型来表示的数值(numeric type)必须是非负的,表示这个值我不关心(在复杂的Provisos语句中可能还会看到更多的占位符,例如b\_\_, c\_\_等等),由于n1加上一个我不关心的非负数后等于n2,所以这里表达的意思是n2 >= n1。

接下来解决一下前面的遗留问题:为什么Interface的定义里出现了一个没有用到的depth类型变量呢?我们可以观察上述代码块(为了方便,将重要的几行代码摘抄到下面):

Vector#(depth, Reg#(Maybe#(Tuple2#(t_tag, t_val)))) bufferVec <- replicateM(mkReg(tagged Invalid));
for (Integer idx=0; idx < valueOf(depth)-1; idx=idx+1) begin

可以看到,上述代码第1行定义了一个Vector用于存储数据,而Vector的大小是由depth这个数值类型定义的;此外,上述第2行代码中编写了一个for循环,循环语句中也使用valueOf(depth)将depth这个numeric type所代表的数值转换成为Integer类型,以便for语句可以使用这个数值。因此,在Interface中定义的类型变量depth虽然没有在Interface定义中被使用到,但是却可以在module定义时被使用。

最后,我们再来演示一下这种带有provisos约束的类型如何使用,一个最简单的应用案例如下所示:

module mkTB(Empty);
    PrioritySearchBuffer#(10, Bit#(10), Bit#(10)) a <- mkPrioritySearchBuffer;
endmodule

上述代码在实例化a的时候需要明确指定a的类型为PrioritySearchBuffer#(10, Bit#(10), Bit#(10)),通过这种方式,BSV的编译器就可以将类型变量固定为一个具体的类型。上述代码中,由于Bit是一个内置的基础类型,因此他本身就被派生了FShow,所以上述代码编译并不会报错。但如果将上述代码改为下面的样子:

typedef struct {
    Bit#(10)      bar;
} Foo;

module mkTB(Empty);
    PrioritySearchBuffer#(10, Foo, Bit#(10)) a <- mkPrioritySearchBuffer;
endmodule

则会得到如下报错信息:

Error: "a.bsv", line 46, column 46: (T0031)
  The provisos for this expression could not be resolved because there are no
  instances of the form:
    FShow#(a::Foo)
  The proviso was implied by expressions at the following positions:
    "a.bsv", line 46, column 51
Error: "a.bsv", line 46, column 46: (T0031)
  The provisos for this expression could not be resolved because there are no
  instances of the form:
    Eq#(a::Foo)
  The proviso was implied by expressions at the following positions:
    "a.bsv", line 46, column 51
Error: "a.bsv", line 46, column 46: (T0031)
  The provisos for this expression could not be resolved because there are no
  instances of the form:
    Bits#(a::Foo, a__)
  The proviso was implied by expressions at the following positions:
    "a.bsv", line 46, column 51

关注上述报错的第2\~4行、8\~10行和14\~16行,可以看到编译器发现Foo类型不满足FShow、Eq和Bits这三个provisos约束,为了解决这个问题,我们需要向Foo类型添加必要的功能。由于Foo内部的每个成员都是满足FShow、Eq和Bits的,因此我们可以使用一个简单的派生方式,让Foo也成为FShow、Eq和Bits的,详细代码如下。但这里需要注意,如果某个复杂类型内部有任意成员不支持指定的功能,则无法使用自动派生,必须手写typeclass实现,这种情况较为复杂,本文不再介绍,感兴趣的读者可以阅读文章最后的参考材料中关于typeclass的介绍。

typedef struct {
    Bit#(10)      bar;
} Foo deriving(Bits, Eq, FShow);

通过上述介绍,我们已经涵盖了BSV中多态绝大多数的应用场景,希望可以帮助各位读者扫清学习BSV路上的一些障碍。关于详细了解BSV的语法,可以参考文章结尾给出参考资料中的《BluespecTM SystemVerilog Language Reference Guide》一书。

<u>参考资料:</u>

https://github.com/B-Lang-org/bsc/releases/download/2025.07/BSV_lang_ref_guide.pdf

https://github.com/open-rdma/open-rdma-rtl

<u>往期推荐</u>

Bluespec SytemVerilog 握手协议接口转换

达坦科技始终致力于打造高性能​AI+Cloud基础设施平台​,积极推动AI应用的落地。达坦科技通过软硬件深度融合的方式,提供​AI推理引擎和高性能网络​,为AI应用提供弹性、便利、经济的基础设施服务,以此满足不同行业客户对AI+Cloud的需求。

公众号​:达坦科技DatenLord

DatenLord官网​:

https://datenlord.github.io/zh-cn/

知乎账号:

https://www.zhihu.com/org/da-tan-ke-ji

B站​:

https://space.bilibili.com/2017027518

​邮箱:​info@datenlord.com

如果您有兴趣加入达坦科技Rust前沿技术交流群、硬件敏捷开发和验证方法学讨论群或AI Infra ​交流群,请添加小助手微信:DatenLord\_Tech

MySQL 更改了管理外键约束和级联操作的方式。从 MySQL 9.6 开始,外键验证和级联操作将由SQL层处理,而不是InnoDB存储引擎。这有助于改善变更跟踪、复制精度和数据一致性,使 MySQL 在 CDC 管道、混合数据库环境和分析工作负载中更加可靠。

 

长期以来,从事变更数据捕获(CDC)和复制工作的 MySQL 从业者都面临着一个很大的限制:外键由 InnoDB 存储引擎管理,级联更改未记录在二进制日志中。甲骨文技术顾问Prabakaran Thirumalai写道:

 

历史上,MySQL 在存储引擎层强制执行外键约束和级联操作……所有级联操作都是在 InnoDB 内部执行……因为 SQL 引擎和二进制日志不知道这些更改,所以下游系统(如 CDC 管道和分析平台)可能会错过它们。这可能导致数据不一致、分析不可靠和复制问题。

 

例如,SQL 层向 InnoDB 发出一个 DELETE 语句,InnoDB 可能会根据级联规则自动删除子表中的行。目前,这些额外的删除操作完全是在存储引擎内处理的,并未记录在二进制日志中。二进制日志仅捕获针对父表的原始 DELETE,而不捕获针对子表所做的更改。

图片来源:甲骨文博客

 

这一更改将在 MySQL 9.6.0 中实现。这是一个创新版本,在 1 月份作为 MySQL 9.x 创新系列的一部分提供。对于这一变化,社区的一个担忧是对性能的潜在影响。Thirumalai 补充道:

 

在针对常见的事务型工作负载所做的广泛的基准测试中,基于 SQL 引擎的外键强制执行和级联操作与 InnoDB 方法几乎相同。外键检查和级联操作的成本基本保持不变,吞吐量或延迟并没有观察到任何退化。

 

Hacker News上一个热门的帖子中,Index Hint 所有者和首席工程师 Evan Elias 写道:

 

很高兴甲骨文为此写了一篇博文,因为 MySQL 的文档中几乎完全没有提及此事……MySQL 9.6 的发布说明根本没有提到外键变化……作为一个专注于 MySQL 解决方案的独立软件供应商,老实说,我觉得这种情况非常令人担忧。我听说,甲骨文的一位高管对重新关注 MySQL 社区版做出了很多承诺……如果连基本的文档更新都不做,我们还能认真看待这些承诺吗?

 

这一变化发生在社区许多人质疑甲骨文对 MySQL 及其社区版所做的承诺之际。社区会议正在讨论 MySQL 的未来。为了扩展 MySQL 的能力,新的跟踪分叉已在开发当中。在题为“MySQL 9.6:外键级联操作终于进入二进制日志”的文章中,ReadySet 高级软件工程师Marcelo Altmann评论道:

 

对于那些多年来一直在解决级联可见性限制的 MySQL 用户——或者更糟,在下游系统出现数据不一致后才发现这个问题——MySQL 9.6 填补了一个重要的架构空白。二进制日志终于能够完整地讲述你的数据发生了什么。

 

Uber 高级软件工程师 Banty Kumar指出

 

如果甲骨文提供长期支持,那将是一个非常有说服力的升级理由。

 

根据公告,甲骨文团队计划未来在更多的存储引擎中提供更广泛的级联更改和外键强制执行支持。MySQL 9.6.0可以从MySQL社区服务器下载页面上下载。

 

声明:本文为 InfoQ 翻译,未经许可禁止转载。

 

原文链接:https://www.infoq.com/news/2026/02/mysql-foreign-keys/

Cisco NX-OS System Software - ACI 16.1(5e)M

适用于 ACI 模式下的 Cisco Nexus 9000 系列交换机系统软件

请访问原文链接:https://sysin.org/blog/cisco-aci-16/ 查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


Cisco ACI

Cisco NX-OS 网络操作系统软件

Cisco NX-OS 操作系统助力网络紧跟业务发展步伐。

NX-OS 网络操作系统为现代数据中心提供支持。

  • 架构灵活性

    架构灵活性

    NX-OS 助力数据中心随工作负载和应用的发展而不断扩展。

    • 借助 VXLAN EVPN 为可扩展工作负载提供支持
    • 通过多租户有效利用网络资源 (sysin)
    • 自由选用支持分段路由和 VXLAN 的 Overlay 网络技术
    • 借助 VXLAN 多站点实现灾难恢复和业务连续性
  • 操作简便性

    操作简便性

    NX-OS 具备可编程性,可将调配时间从几天缩短到几分钟,从而简化部署。

    • 与 Cisco DCNM 完全集成,实现全面管理
    • 通过行业标准 API 实现轻松配置
    • 与 DevOps 自动化工具完全集成
    • 支持原生 Docker 的简化工具
  • 端到端可视性

    端到端可视性

    数据和控制平面具有深度可视性,有助于保护数据中心,并针对问题快速进行补救。

    • 借助精细流和 ASIC 遥测,优化网络 (sysin)
    • 利用控制平面可视性和模型驱动的遥测,预防网络故障
    • 通过 MACSEC 加密,防御监听和网络攻击
    • 借助 802.1X 验证,保护终端和工作负载
    • 查看产品手册

借助 Cisco NX-OS 管理您的数据中心网络

  • 遥测技术助力网络运维

    建立可靠的数据中心网络 (sysin),防止停机并快速解决网络问题。

  • 分段路由

    使用 SRv6 架构构建可扩展的网络,从而降低网络运维的复杂性,并实现与核心 / WAN 的数据中心互联 (DCI)

  • 自由定制、安全可靠

    灵活、安全地管理工作负载。NX-OS 支持您根据业务需求定制网络,让 DevOps 在创新时只需几分钟即可打开交换矩阵。

  • 轻松扩展

    为媒体构建具有成本效益且易于扩展的生产应用和网络。

NX-OS System Software ACI

用于 Cisco Nexus 9000 系列交换机的 Cisco NX-OS 软件是一种数据中心专用操作系统 (sysin),其设计以性能、弹性、可扩展性、可管理性和可编程性为基础。它提供了强大而全面的功能集,可满足数据中心虚拟化和自动化的要求。

此版本仅适用于 ACI 模式下的 Cisco Nexus 9000 系列交换机。

Release 16.0(1) 文档介绍了 Cisco NX-OS 软件的功能、问题和限制。有关思科应用策略基础设施控制器 (APIC) 的功能、问题和限制,请参阅 思科应用策略基础设施控制器版本说明,版本 6.0(1)

新增功能

Cisco ACI 16.1(5) 是一个维护版本,主要通过关键缺陷修复和代码加固提升系统稳定性。该版本遵循 Cisco 的维护发布节奏,推荐给希望提高 ACI 部署可靠性与稳定性的用户。

重要支持增强

  • 在 N9K‑C9332D‑GX2B 平台上添加对 QDD‑2X100‑LR4‑S 光模块 的支持(仅下行)。
  • 在 N9K‑C93180YC‑FX3 交换机上允许将所有下行端口配置为上行端口 (sysin)。

已解决问题:包含多项错误修复,篇幅较长,详见官方文档。

下载地址

ImagesFile nameRelease DateSize
Cisco Nexus 9000 Series ACI Mode Switch Software 16.1(1f) 64 Bit imageaci-n9000-dk9.16.1.1f-cs_64.bin01-Aug-20242619.57 MB
Cisco Nexus 9000 Series ACI Mode Switch Software 16.1(1f) 32 Bit imageaci-n9000-dk9.16.1.1f.bin01-Aug-20242492.02 MB
Cisco Nexus 9000 Series ACI Mode Switch Software 16.1(2f) 64 Bit imageaci-n9000-dk9.16.1.2f-cs_64.bin05-Dec-20242619.75 MB
Cisco Nexus 9000 Series ACI Mode Switch Software 16.1(2f) 32 Bit imageaci-n9000-dk9.16.1.2f.bin05-Dec-20242505.96 MB
Cisco Nexus 9000 Series ACI Mode Switch Software 16.1(2g) 64 Bit imageaci-n9000-dk9.16.1.2g-cs_64.bin14-Dec-20242619.72 MB
Cisco Nexus 9000 Series ACI Mode Switch Software 16.1(2g) 32 Bit imageaci-n9000-dk9.16.1.2g.bin14-Dec-20242505.95 MB
Cisco Nexus 9000 Series ACI Mode Switch Software 16.1(3f) 64 Bit imageaci-n9000-dk9.16.1.3f-cs_64.bin04-Apr-20252657.55 MB
Cisco Nexus 9000 Series ACI Mode Switch Software 16.1(3f) 32 Bit imageaci-n9000-dk9.16.1.3f.bin04-Apr-20252534.65 MB
Cisco Nexus 9000 Series ACI Mode Switch Software 16.1(3g) 64 Bit imageaci-n9000-dk9.16.1.3g-cs_64.bin16-Jul-20252657.44 MB
Cisco Nexus 9000 Series ACI Mode Switch Software 16.1(3g) 32 Bit imageaci-n9000-dk9.16.1.3g.bin16-Jul-20252534.70 MB
Cisco Nexus 9000 Series ACI Mode Switch Software 16.1(4h) 64 Bit imageaci-n9000-dk9.16.1.4h-cs_64.bin13-Aug-20252690.33 MB
Cisco Nexus 9000 Series ACI Mode Switch Software 16.1(4h) 32 Bit imageaci-n9000-dk9.16.1.4h.bin13-Aug-20252556.18 MB
Cisco Nexus 9000 Series ACI Mode Switch Software 16.1(5e) 64 Bit imageaci-n9000-dk9.16.1.5e-cs_64.bin16-Dec-20252693.66 MB
Cisco Nexus 9000 Series ACI Mode Switch Software 16.1(5e) 32 Bit imageaci-n9000-dk9.16.1.5e.bin16-Dec-20252559.69 MB

Cisco Nexus 9000 Series ACI Mode Switch Software Release 16.1(5e)M | 16-Dec-2025
Cisco Nexus 9000 Series NX-OS Mode Switch Software Release 10.6(2)F
Cisco Application Policy Infrastructure Controller (APIC) Release 6.1(5e)M


Related Software: APIC Image for 6.0 Release

Related Software: ACI Simulator 6.0 Release


数据中心网络相关产品:

更多:Cisco 产品下载链接汇总



家里的网络如图所示。
0.电信宽带 2000M 。
1.电信给的 fttr 主路由没有 2.5G 口,光下联的 fttr 子路由上有 2.5G 口和一个 itv 口。
2.光猫到客厅,墙里只埋了一个网线。光猫到主卧,也是一个网线。
3.需要在客厅看 itv ,故调整了一下光猫后台和客厅的华硕路由器,实现了 itv 插在路由器上看 itv 的需求。(其中一个路由器必须放在客厅,否则客厅信号差)

问题:
1.由于客厅路由器需要接 itv ,只能设置为主路由模式,设置成 ap 模式就无法看 itv 了,所以目前这俩路由器无法 aimesh 。
2.由于 fttr 主路由没有 2.5G 口,加上客厅需要看 itv ,把光猫的 itv 通过 vlan 绑定了一下,无法映射到子路由上,所以客厅的路由器只有千兆。

需求:
1.俩华硕路由器能组网,不论是 aimesh 还是 ap 模式都可以。
2.可能要能看 itv 。
3.路由器连 2.5G 口跑满 2000M 宽带。

求各位大佬指点一下,有没有解决办法 orz

和香港同事开会总是听不太懂粤语,我用 Tauri 搓了个实时字幕工具 (macOS/Win)

在一家跨地区团队工作了一段时间后,我发现一个挺真实的痛点:会议语言有时候是粤语。

虽然大家也能切换普通话或英语,但很多时候讨论进入状态之后,自然就会变成粤语交流。其实我自己最近也刚好在学粤语,但如果你不是长期在粤语环境里,在工作场景下会遇到一种很微妙的情况:

不是完全听不懂,但经常只能听懂七八成。

特别是遇到一些香港本地表达、粤语里夹杂英文、多人同时快速讨论的时候。结果就是:会议能跟上大概意思,但细节容易漏掉。有时候大家已经开始讨论下一个问题了,我还在脑子里 compile 上一句到底说了什么。

久而久之觉得挺影响沟通效率,所以后来我就做了一个自己用的小工具:
把电脑里播放的粤语语音,实时变成中文字幕。

当然不止是粤语翻粤,英语、日语、韩语等都可以。

网站:https://fanyueai.com/


解决的其实就是一个很简单的场景

我做这个工具最初只有一个目标:开会的时候能实时看到字幕。

不管是 Zoom 、Google Meet 、Teams 还是网页版会议,只要电脑里有粤语语音,它就会:

  1. 实时监听系统级音频
  2. 实时识别粤语并翻译
  3. 用一个悬浮字幕条显示出来

当有人语速很快的时候,看一眼字幕基本就能跟上内容。因为是系统级音频监听,所以平时用来看港区 YouTube 、听粤语播客,或者看没字幕的生肉视频也都能顺带用上。

  • 主界面
    image.png

  • 实时字幕界面
    image.png


聊聊技术演进和踩坑

一开始我也想过做成某个会议软件的插件,但大家用的软件太杂了,最后决定直接做系统级监听。

客户端我个人比较反感那种动不动就吃掉几个 GB 内存的 Electron 巨兽,所以:

  • 技术栈: 选了 Tauri 来打包,客户端做得很轻(大概二十多 MB ),内存和 CPU 占用基本可以忽略不计。
  • UI 设计: 没有花里胡哨的主题切换,直接做成了类似苹果原生的深空灰暗色调,主打一个开会时悬浮在屏幕边缘“不喧宾夺主”。

关于核心的翻译延迟问题,其实经历过一次重构:

一开始的 V1 版本,我图省事直接接了阿里云的自动识别与翻译 API 。调用一个接口就能出结果,开发确实快,但效果很感人:机器味重、识别不准,而且延迟太高,开会用起来有明显的割裂感。

后来痛定思痛改了架构。最近刚好发现 Google 新出了 gemini-3.1-flash-lite 模型,测试了一下发现用来做实时翻译简直是神器:速度极快,翻译的人话味道很浓,最关键的是支持自定义提示词(可以喂给它一些团队开会常用的 IT 缩写和黑话)。

所以现在的版本改成了:实时语音识别 + 实时流式调用大模型 API 进行翻译。目前把整体的延迟压在了开会完全可接受的范围内。


如果你刚好有类似场景

目前打包了 macOSWindows 版本( Windows 没测太多老系统,目前 Win10 及以上可以正常跑)。

如果你也是在香港工作的内地开发者,或者有远程和港区团队合作的需求,可以试试这个工具:

[https://fanyueai.com/?ref=BRSLH8JQ](通过邀请码注册即赠 120 分钟时长。点击体验: https://fanyueai.com/?ref=BRSLH8JQ)

给刚注册的新用户默认塞了 15 天体验和 90 分钟的翻译时长,基本足够大家开几次会,或者看个视频体验一下效果了。

我自己也是一边用一边慢慢迭代,如果大家体验后觉得有什么 Bug ,或者在技术实现上(特别是跨平台音频流处理这块)有更好的思路,欢迎在帖子里吐槽交流,我下班后去修。

OpenAI 给开源开发者发福利了!

半年 ChatGPT Pro 免费用,没门槛速领。

就在今天(2026 年 3 月 7 日),OpenAI 搞了个大动作,正式宣布启动 “Codex 开源计划”。这次不玩虚的,直接给全球的开源项目维护者和开发者送福利:免费提供半年的 ChatGPT Pro 订阅!

要知道,ChatGPT Pro 平时可是要花钱买的,这次 OpenAI 大手笔,就是为了让那些在幕后默默付出的开源英雄们,能更顺手地用上好工具。

为什么要这么做?

OpenAI 说得挺实在:开源维护者是整个软件生态的“隐形支柱”。大家平时用的很多软件、库、框架,背后都是这群人在用爱发电,默默修 Bug、加功能。

为了支持他们,OpenAI 旗下的 Codex 开源基金 在过去一年里已经掏了 100 万美元(差不多 692 万人民币),专门资助那些急需 API 支持的开源项目。现在,他们决定把支持范围扩大,直接给人送账号,让大家干活更轻松。

谁能领?门槛高吗?

重点来了:这次真的没什么硬门槛!

不像以前有些活动非要你的项目有多少 Star、多少下载量,这次 OpenAI 把身段放得很低。只要你满足下面 任意一个条件,就能去官网申请:

你是某个开源项目的 核心维护者(哪怕项目不大,只要你在认真管);
你负责维护或开发的公共项目 被广泛使用(大家都在用,哪怕你没怎么宣传)。

那我的项目既不大也没多少人用,能申请吗?

也能!OpenAI 留了个口子:如果你在开源生态里扮演着其他重要角色(比如文档翻译、社区运营、教程编写等),只要在申请时 详细说明你的贡献和原因,照样有机会获批。主打一个“不拘一格降人才”。

拿到账号能干啥?

这半年的 ChatGPT Pro 可不是只能聊天的。拿到手的开发者,可以畅通无阻地使用一系列强大的编程神器:

Codex:写代码、改 Bug、解释逻辑,一把好手。
OpenCode、pi、OpenClaw:各种辅助编程的工具,让开发效率翻倍。
Codex Security(部分开发者):运气好的话,你还能拿到这个安全工具的权限,对代码进行更深度的审计和安全检测,把隐患消灭在萌芽状态。

怎么申请?

别犹豫,手慢无!直接去 OpenAI 官网填个表就行。

👉 申请地址:https://openai.com/form/codex-for-oss

image-20260307225148716.png

PixPin_2026-03-07_23-26-21.png

总的来说,这是 OpenAI 向开源社区释放的一个巨大善意。不管你是大项目的 maintainer,还是小仓库的独苗作者,只要你在为开源做贡献,这就可能是你提升效率、减轻负担的好机会。赶紧去试试自己符不符合条件吧!

pg每日新闻封面.png

⚙️ PostgreSQL 技术文章

🧩 Admin 4 v9.13 版本发布

1.png

pgAdmin 4 v9.13已发布,包含15个错误修复和新功能。主要新增功能包括Core LLM集成基础设施,具备AI驱动的安全、架构和性能分析报告,以及Query Tool的AI聊天功能和EXPLAIN的AI Insights操作。ERD Tool现在支持用户选择表的拖拽功能并显示表间关系,而Index创建对话框新增对'ONLY'子句的支持。错误修复解决了引号字符串配置、工具设置恢复、共享服务器修改、ERD节点中长表名以及物化视图列注释显示等问题。

https://www.postgresql.org/about/news/pgadmin-4-v913-released...

🧩 Swiss PGDay 2026: 宣布和征稿

1.png

Swiss PGDay 2026将于2026年6月25-26日在苏黎世附近Rapperswil的OST Eastern Switzerland University of Applied Sciences举办。这个为期两天的会议设有两个分会场,演讲主要使用英语,部分使用德语。第一天会议结束时将举办社交网络活动。演讲者征集开放至2026年4月7日,预计4月底公布日程安排。闪电演讲提交将在会议前一周开放,海报提交截止日期为2026年6月8日。为希望与Swiss PostgreSQL社区建立联系的公司提供赞助机会。参会者注册将于2026年3月开放。

https://www.postgresql.org/about/news/swiss-pgday-2026-announ...

📨 PostgreSQL Hacker 电子邮件讨论精选

🧩 索引预取使用 rdtsc 减少 EXPLAIN ANALYZE 的计时开销?

讨论的重点是实现rdtsc(读取时间戳计数器)来减少EXPLAIN ANALYZE的计时开销。主要挑战是确定不同环境下的TSC频率。Lukas Fittl测试了使用/sys/devices/system/cpu/cpu0/cpufreq/base_frequency,但发现在Azure/HyperV等虚拟化环境中,CPU频率与TSC频率不匹配,因为TSC是虚拟化的。Andres Freund建议放弃基于MSR的方法,认为不实用,并提出一个更简单的校准方法:通过将tsc_via_rdtsc除以转换为纳秒的clock_gettime(CLOCK_BOOTTIME)来计算ns_to_cycles。Fittl指出较新的AMD CPU也不通过CPUID提供TSC频率,需要MSR访问或针对其他时间源进行校准。两人都认为手动GUC配置不值得。讨论倾向于实现基于校准的方法,而不是依赖系统提供的频率值。

https://www.postgresql.org/message-id/caqgbsn6mbkmtqnencdaim7...

🧩 修复 multixact Oldest MXactId 初始化和访问中的错误

讨论跟进了最近推送的一个与OldestMemberMXactId初始化和预备事务处理相关的multixact错误修复。Sami Imseih建议添加一个测试用例来验证对预备事务虚拟进程的正确处理,因为添加的断言不会覆盖这种情况。Yura Sokolov支持为已修复的错误添加测试。Heikki Linnakangas创建了Sami复现案例的简化版本,不需要并发会话,并将其移至主回归测试套件的'prepared_xacts'测试中。Tom Lane建议了一个不相关的改进,通过在禁用预备事务时添加早期退出来减少prepared_xacts_1.out的维护工作。Heikki同意并为此优化提供了补丁,计划将其反向移植到所有支持的版本,以便于将来的测试反向移植。

https://www.postgresql.org/message-id/120550bf-ca50-4a07-91b1...

🧩 消除 xl_heap_visible 以减少 WAL(最终设置 VM on-access)

讨论围绕Melanie Plageman的补丁系列展开,该系列旨在消除xl_heap_visible WAL记录并实现访问时可见性映射设置。Chao Li对多个补丁版本进行了详细代码审查,发现了许多问题,包括函数参数类型、未初始化变量、错误消息格式问题以及heap_page_prune_opt函数调用中的潜在错误。主要关注点包括不必要地使用Buffer指针类型、缺少BlockNumber字段初始化、注释中错误的函数名引用,以及heap_insert()和heap_multi_insert()之间选项检查不一致。Melanie发布了v36版本回应,解决了大部分反馈并提供了性能基准测试结果。微基准测试显示在每个缓冲区都有单个元组的最坏情况下会出现预期的性能下降,但证明了由于使用组合WAL记录方法,vacuum操作变得更快。这些补丁旨在通过在访问时修剪操作期间仔细管理可见性映射来减少WAL量,同时保持正确性。

https://www.postgresql.org/message-id/F5CDD1B5-628C-44A1-9F85...

🧩 在发布中跳过架构更改

讨论重点是完善PostgreSQL发布EXCEPT TABLE功能的语法和错误消息。正在解决的关键问题包括通过删除"before attaching the table"等不必要短语来缩短提示消息,将文档顺序从"tables/except tables/schemas"更正为更易读的格式,以及修复解析器验证中无法到达的错误条件。围绕ALTER PUBLICATION语法替代方案出现了重要争议。与其使用"ALTER PUBLICATION pub1 DROP EXCEPT TABLE t1"来重置异常列表,提出了两个选项:Option-1使用"ALTER PUBLICATION pub1 SET ALL TABLES"清除异常或"ALTER PUBLICATION pub1 SET ALL TABLES EXCEPT TABLE (t1)"设置新列表;Option-2引入"ALTER PUBLICATION pub1 SET EXCEPT TABLE DEFAULT"用于空列表。贡献者倾向于Option-1,因为它与现有CREATE PUBLICATION语法保持一致,维护统一的用户体验。其他反馈涉及文档格式、错误消息大小写以及需要为新支持的命令更新语法文件注释。

https://www.postgresql.org/message-id/CAA4eK1KAq+4aQjyOgzD3hB...

🗞️ 行业新闻

🧩 City Detect 利用AI帮助城市保持安全和清洁,融资1300万美元A轮

2.png

City Detect 是一家利用人工智能帮助地方政府预防城市衰退的公司,已成功筹集了 1300 万美元的 A 轮融资。该平台通过 AI 驱动的监控和分析系统协助市政当局维护公共安全和清洁。City Detect 目前在美国至少 17 个城市运营,包括 Dallas 和 Miami 等主要大都市区,为城市管理挑战提供自动化解决方案。

https://techcrunch.com/2026/03/06/city-detect-uses-ai-to-help...

🧩 Claude在五角大楼交易失败后消费者增长激增继续

3.png

尽管最近围绕 Anthropic 与 Pentagon 合作失败的争议不断,Claude 的消费者应用程序仍在经历显著的增长势头。这款 AI 聊天机器人应用现在的新安装量超过了 ChatGPT,并在日活跃用户数量方面显示出显著增长。这种消费者成功表明,国防部门的争议并未对 Claude 在普通用户中的吸引力产生负面影响,用户继续在移动和网络平台上以加速的步伐采用这款 AI 助手。

https://techcrunch.com/2026/03/06/claudes-consumer-growth-sur...

🧩 Microsoft、Google、Amazon表示Anthropic Claude仍可供非国防客户使用

41.png

Microsoft、Google 和 Amazon 确认,在 Trump 的战争部与 Anthropic 发生争议后,Anthropic 的 Claude AI 助手仍可供其客户使用。这场冲突专门影响国防部门的访问,但不会影响通过这些主要云服务提供商平台使用 Claude 的其他企业客户。在人们担心 Claude 在不同行业和客户群体中可能面临更广泛限制的情况下,这一澄清显得尤为重要。

https://techcrunch.com/2026/03/05/its-official-the-pentagon-h...

🌐 社交媒体动态

🧩 我们的团队成员Jimmy Angelakos将参加#SCALE23x大会!

4.jpeg

我们的团队成员Jimmy Angelakos将于3月6日星期五上午11:15至12:15(太平洋标准时间)在SCALE23x大会上发表演讲。他的演讲主题是使用开源CloudNativePG operator在Kubernetes上运行稳健的、自愈的PostgreSQL。与会者可以前往了解PostgreSQL on K8s以及用于Postgres的Cloud…

https://www.linkedin.com/posts/pgedge_cloudnativepg-robust-se...

🧩 PG Phridays 深度回归:全新技术文章

5.jpeg

PG Phridays 携全新深度技术文章回归。本教程通过实际操作演示如何使用 Patroni 构建高可用 PostgreSQL 集群,重点介绍 etcd 在协调集群状态和领导者选举中的作用。Patroni 等工具依赖分布式配置存储(如 etcd)来管理复制、监控节点健康状况,并在主节点故障时自动执行故障切换。本指南面向需要在生产环境中构建可靠 Postg…

https://www.linkedin.com/posts/pgedge_postgresql-postgres-hig...

🧩 将企业数据和AI应用投入生产意味着从第一天起就处理身份验证、治理和部署问题

构建企业数据和AI应用需要从一开始就处理身份验证、治理和部署问题。Databricks Apps和新的AppKit通过使用TypeScript和可投入生产的模式进行构建,并让应用程序直接在受治理的数据旁边运行来简化这一过程。Replit集成允许开发者使用自然语言创建数据感知应用程序,并在保持现有身份验证和Unity Catalog控制的同时将其直接部署到D…

https://www.linkedin.com/posts/databricks_shipping-enterprise...


HOW 2026 议题招募中

2026 年 4 月 27-28 日,由 IvorySQL 社区联合 PGEU(欧洲 PG 社区)、PGAsia(亚洲 PG 社区)共同打造的 HOW 2026(IvorySQL & PostgreSQL 技术峰会) 将再度落地济南。届时,PostgreSQL 联合创始人 Bruce Momjian 等顶级大师将亲临现场。

自开启征集以来,HOW 2026 筹备组已感受到来自全球 PostgreSQL 爱好者的澎湃热情。为了确保大会议题的深度与广度,我们诚邀您提交前沿技术实践与洞见,共同打造高质量议题内容。

投递链接:https://jsj.top/f/uebqBc

起因

我平时写技术文章用 Markdown,写完之后要往十几个平台搬运。

知乎粘贴一遍,公众号粘贴一遍,掘金再贴一遍……每个平台的编辑器还不一样:知乎不认 GitHub Alerts,公众号只吃富文本,B站和头条的图片得手动传。

同样的内容,光搬运就得花半小时以上。

后来我写了个 Chrome 插件来干这件事—— Markdown Paste Helper,把粘贴和格式转换的活儿全自动化了。

怎么用

智能粘贴

在支持的平台编辑器里直接 Ctrl+V(Mac 是 Cmd+V),插件自动识别剪贴板里的 Markdown,转成对应平台能用的格式,然后替你粘进去。

不用改操作习惯,该怎么粘贴还怎么粘贴。
image

一键分发

点插件图标 → 选「一键分发」→ 把 Markdown 贴进去 → 勾上要发的平台 → 点「开始分发」。
image

插件会依次打开每个平台的编辑器,自动转换格式并粘贴进去。右下角有个悬浮按钮显示当前进度。

每个平台你扫一眼内容没问题,点发布就行。

公众号样式配置

公众号对排版要求高,插件内置了 4 种主题:

  • 简约 — 无衬线字体,干净
  • 醒目 — 大标题,强对比
  • 精致 — Georgia 衬线,典雅
  • 聚焦 — Optima 字体,紧凑

字体、字号、行间距、主题色都能自己调。
image
样式直接内联到 HTML 里,粘贴到公众号编辑器就是最终效果。下方是一种效果示例:
image

支持的平台

平台适配方式亮点
知乎预处理 MarkdownGitHub Alerts、task lists 自动转换
微信公众号带样式 HTML4 种主题预设、代码高亮
飞书HTML 合成粘贴完整语法支持
X ArticlesHTML + 自动插入代码块/图片自动通过原生对话框插入
B站专栏HTML + 图片上传图片自动下载并上传
头条号HTML + 图片上传图片自动下载并上传
SegmentFault原生 Markdown无缝粘贴
51CTO直接 HTML格式完美保留
掘金原生 Markdown无缝粘贴
CSDN原生 Markdown无缝粘贴
博客园原生 Markdown无缝粘贴

图片处理

B站、头条号这些平台不支持外链图片。插件碰到图片链接会自动下载图片,再模拟粘贴操作触发平台的原生上传。

Markdown 里的图片只要是在线 URL(比如图床链接)就能自动处理。

我自己用 PicGo + Cloudflare R2 搭了个免费图床,截图后自动上传、生成链接,配合这个插件刚好形成闭环。

技术细节

每个平台的编辑器框架都不一样,得逐个适配:

  • 知乎 — 自研 Markdown 编辑器,拦截 Ctrl+V,预处理后写回剪贴板
  • 公众号 — 自研富文本编辑器,keydown 阶段把带 inline styles 的 HTML 塞进剪贴板
  • 飞书 — Slate.js,合成 ClipboardEvent 注入 HTML
  • B站 — Tiptap/ProseMirror,HTML 粘贴加图片异步上传
  • X Articles — Draft.js,代码块和图片没法直接粘贴,改成自动操作原生插入对话框

每个平台都是单独写的适配逻辑。Content Script 注入页面后,拦截粘贴事件,根据平台选不同的转换策略。

安装

还没上 Chrome 商店(免费项目,暂时没预算交开发者账号的钱),开发者模式装一下就行:

  1. GitHub 下载项目:https://github.com/zuogl/Markdown-Paste-Helper
  2. Chrome 地址栏输入 chrome://extensions/
  3. 右上角打开「开发者模式」
  4. 点「加载已解压的扩展程序」
  5. browser-extension 文件夹

最后

项目开源,MIT 协议,免费用。

GitHub:https://github.com/zuogl/Markdown-Paste-Helper

多平台发文的朋友可以试试,有问题直接提 Issue。觉得有用的话,Star 一下。

随着家里智能设备越来越多,智能家居系统也逐渐成熟,我决定从最常出入的玄关开始,把家里的灯光控制变得更智能、更省心。

目标很简单:一开门进家,玄关筒灯和书房灯自动亮起。至于为什么不亮客厅灯?因为我回家第一件事就是去书房学习😎。

要实现这个效果,核心离不开几个关键设备。下面是我踩过坑、试过方案后总结出的完整搭建过程。


小米中枢网关(必须)

为什么需要它?

中枢网关是整个小米智能家居系统的“大脑”。不同类型的智能设备通过它进行通信、联动和统一调度。没有它,很多高级自动化根本没法实现。

它内置了 小米 Mesh 2.0 网关模块,蓝牙设备配网更快,连接更稳。官方数据说能同时连 200 个蓝牙 Mesh 设备 + 100 个普通蓝牙设备,对于普通家庭完全够用。

目前小米官网发布了四款带网关功能的产品:

  • 小米中枢网关(推荐)
  • 小米智能多模网关2(商城搜索不到了)
  • Xiaomi 路由器 BE6500 Pro(集成网关)
  • Xiaomi 路由器 BE10000 Pro(集成网关)

我的建议是:别选路由器集成网关的型号。万一路由器坏了,等于网关也瘫了,得不偿失。

最关键的是,中枢网关支持“米家自动化极客版”。这个功能开放了所有设备的底层属性、事件和方法,还能做逻辑判断、条件查询、复杂流程控制——很多原生米家做不到的联动,靠它都能搞定。

PixPin_2026-03-06_23-16-45.png

接入建议

包装盒里自带一根扁平网线,强烈建议用网线把中枢网关接到路由器上。我实测过,有线连接比 Wi-Fi 稳定太多,尤其在执行自动化时几乎零延迟。


小米智能中控屏(可选,但很香)

⚠️ 注意:安装位置的底盒必须有零线,否则无法使用。

如果你预算有限,也可以用 人体传感器 + 智能开关 的组合来替代,成本更低,但折腾起来要麻烦些。

PixPin_2026-03-06_23-47-40.png

它能做什么?

  • 安防联动:接入小米摄像头后,有人异常移动时可以直接在屏幕上查看实时画面。
  • 场景模式一键切换

    • 阅读模式:关窗帘、开阅读灯
    • 睡眠模式:灯光渐暗、营造氛围
    • 离家模式:关闭所有灯光电器,扫地机开始工作
  • 墙面也能变艺术:内置 45 款动态屏保,支持天气、家庭照片、文字标签等,让开关面板不再只是工具。
  • 智能感应:采用 24GHz 毫米波雷达,人靠近自动亮屏;屏幕亮度还能根据环境光自动调节。
  • 语音交互更自然:支持小爱同学多轮对话,可以连续提问、随时打断、自由切换话题。
  • 安装方便:适配标准 86 型底盒,内置三路继电器,能直接控制三盏灯,也可以当“虚拟开关”控制其他智能设备。

目前小米有三款中控屏:

  • 小米智能家庭面板(不支持 Mesh 2.0,不推荐)
  • 小米智能中控屏(主力型号)
  • 小米智能中控屏 Max(更大屏,功能更强)

我选的是 小米智能中控屏

PixPin_2026-03-06_23-50-32.jpg

我的安装经历

我把中控屏装在了玄关筒灯原来的开关位置。但问题来了:原底盒只有两根线——一根火线,一根灯控线,没有零线

为了能让中控屏正常工作,我不得不重新穿一根零线。最简单的办法是从筒灯那边的零线引过来。但实际操作非常折腾:筒灯开孔太小,手伸不进去,穿线神器的牵引头卡在管子里出不来。最后靠一个钩子+内窥镜才勉强把线拉出来。

⚠️ 重要提醒:接线前务必拉闸断电!安全第一。

接线很简单:火线、灯控线、零线分别对应接入中控屏的端子,拧紧螺丝就行,一定压紧不要虚接。

拆筒灯的时候千万小心卡扣别打到手!别问我手疼不疼……😭

PixPin_2026-03-07_01-03-16.jpg

无线开关功能很实用

我家玄关只有一路灯控线,所以中控屏只接了一盏筒灯(最多支持三路)。但它的“无线开关”功能弥补了这个限制。

我在屏幕上设置了三个虚拟按钮:

  • 客厅灯(装修时没做双控,现在终于能玄关开客厅灯了)
  • 离家模式(一键关闭指定设备)
  • 筒灯(本地物理控制)

出门前点一下“离家模式”,所有该关的灯和电器自动关闭,省心又节能。

PixPin_2026-03-07_02-22-23.png


小米智能开关(可选,强烈推荐)

有句话说得好:家里的灯可以不是智能的,但开关一定要能被智能控制。

PixPin_2026-03-07_10-14-18.png

优势在哪?

  • 单火/零火都兼容:就算你家底盒没零线,也能用。功耗极低,基本不会出现“关灯后灯微亮”的问题。
  • 支持 Mesh 2.0:响应更快,信号更稳,和中枢网关配合默契。

安装很简单

同样要先断电。把火线和灯控线接入对应端子就行,一定要压紧。有零线更好,没零线也能用,对老房子特别友好。


米家极客版自动化配置(核心逻辑)

补充说明:我家一厅三室的灯当初装的是欧普智能灯,所以在部分自动化里直接用了“智能灯”作为执行对象。如果你用的是普通灯+智能开关,把动作对象换成对应的开关即可。

1. 用中控屏无线开关控制客厅灯

我把中控屏的左键设为“无线开关”,通过中枢网关触发客厅智能灯的开启/关闭。

这样即使客厅灯没做双控,也能在玄关一键控制。

PixPin_2026-03-07_16-58-14.png

2. 人在时自动开灯(带时间段限制)

为了避免半夜或白天误触发,我加了时间条件:

  • 17:00 ~ 次日 08:30:检测到有人,自动打开玄关筒灯
  • 17:00 ~ 22:00:检测到有人,自动打开北卧灯
中控屏右键物理控制的就是玄关筒灯,所以这里直接调用设备状态。

PixPin_2026-03-07_17-00-14.png

3. 无人时自动关灯

配合人体存在传感器(或中控屏自带的毫米波雷达),一旦检测到玄关区域长时间无人,就自动关闭筒灯,避免浪费电。

PixPin_2026-03-07_17-05-30.png


总结

这套玄关智能化方案核心是 中枢网关 + 中控屏(或人体传感器+智能开关),配合 米家极客版自动化,实现了“进门即亮灯、离家一键关、按需智能控”的体验。

虽然前期穿线、调试花了不少时间,但用起来真的方便。尤其是下班回家,门一开灯就亮,不用摸黑找开关——这种细节带来的幸福感,只有用过才知道。

后续我还会继续改造其他区域,洗手间浴霸、厨房、卧室无线开关等等,欢迎关注更新!

图片

***文末有源码下载链接***

一、为什么需要泛型高阶实战?

写泛型不难,难的是写”好“泛型。

你会遇到如下情况:

  • 如何设计一个真正可复用的约束?
  • 一个泛型容器应该如何实现并发安全、零拷贝、友好API?
  • 如何抽象出可复用算法而不是写一堆if/else?
  • 如何让泛型代码不慢?

今天的内容旧让你做到:能写工具库、能写自己的容器、能写可复用的算法。

二、构建泛型工具库

    工具库是泛型最适合发挥的地方:类型无关、逻辑可复用

    2.1 Maybe[T]:一个常用的函数式泛型工具

        类似Option类型,避免nil

type Maybe[T any] struct {
    v  T
    ok bool
}
func Some[T any](v T) Maybe[T] { return Maybe[T]{v, true} }
func None[T any]() Maybe[T]    { return Maybe[T]{ok: false} }
func (m Maybe[T]) Get() (T, bool) { return m.v, m.ok }
func (m Maybe[T]) Or(defaultV T) T {
    if m.ok {
        return m.v
    }
    return defaultV
}
// 查找map中是否存在key
func lookupMaybe[T comparable, U any](m map[T]U, k T) Maybe[U] {
    if v, ok := m[k]; ok {
        return Some(v)
    }
    return None[U]()
}
users := map[int]string{
        100: "Codee君",
        200: "詹姆斯邦德",
        300: "乔治华盛顿",
    }
    res1 := lookupMaybe(users, 100)
    if name, ok := res1.Get(); ok {
        fmt.Println(name)
    }
    res2 := lookupMaybe(users, 011)
    nameOrDefault := res2.Or("未知")
    fmt.Println(nameOrDefault)
    nameOrDefault2 := res1.Or("未知")
    fmt.Println(nameOrDefault2)
// 输出
Codee君
未知
Codee君

    Maybe[T] 类型的主要优势在于它使代码流更清晰,特别是通过 Or() 这样的方法,将 缺失值处理逻辑(提供默认值)与操作逻辑(查找) 优雅地结合起来,避免了每次查找后都写 if ok { ... } else { ... } 这样的样板代码。

    2.2  转换函数与过滤器

package main
// 切片A转切片B
func SliceA2B[A any, B any](a []A, f func(A) B) []B {
    b := make([]B, len(a))
    for i, v := range a {
        b[i] = f(v)
    }
    return b
}
// 切片过滤
func Filter[T any](in []T, f func(T) bool) []T {
    out := make([]T, 0)
    for _, v := range in {
        if f(v) {
            out = append(out, v)
        }
    }
    return out
}
func main() {
    fmt.Println("Hello, Codee君!")
    numbers := []int{1, 2, 3, 4, 5}
    // 转换成字符串
    strings := SliceA2B(numbers, func(i int) string {
        return fmt.Sprintf("ID=%d", i)
    })
    fmt.Println(strings)
    // 过滤出偶数
    even := Filter(numbers, func(i int) bool {
        return i%2 == 0
    })
    fmt.Println(even)
}
//输出
Hello, Codee君!
[ID=1 ID=2 ID=3 ID=4 ID=5]
[2 4]

三、泛型容器

    容器是泛型最能发挥威力的地方。

    3.1 泛型栈:并发安全,零拷贝,API友好

type Stack[T any] struct {
    data []*T
    mu   sync.Mutex
    len  atomic.Int64
}
func NewStack[T any]() *Stack[T] {
    return &Stack[T]{
        data: make([]*T, 0),
    }
}
func (s *Stack[T]) Push(v *T) {
    s.mu.Lock()
    defer s.mu.Unlock()
    // 避免元素复制:直接存储指针*T
    s.data = append(s.data, v)
    s.len.Add(1)
}
func (s *Stack[T]) Pop() *T {
    s.mu.Lock()
    defer s.mu.Unlock()
    if s.len.Load() == 0 {
        return nil
    }
    v := s.data[len(s.data)-1]
    s.data = s.data[:len(s.data)-1]
    s.len.Add(-1)
    return v
}
// 辅助API
// 返回栈当前元素数量
func (s *Stack[T]) Len() int64 {
    return s.len.Load()
}
// 栈
    stack := NewStack[string]()
    wg := sync.WaitGroup{}
    for i := 0; i < 100; i++ {
        wg.Add(1)
        go func(i int) {
            defer wg.Done()
            value := fmt.Sprintf("value-%d", i)
            stack.Push(&value)
        }(i)
    }
    wg.Wait()
    fmt.Println("栈元素数量:", stack.Len())
    if itm, ok := stack.Pop(); ok {
        fmt.Println(*itm)
        fmt.Println("栈元素数量:", stack.Len())
    }
// 输出
栈元素数量: 100
value-99
栈元素数量: 99

     3.2 并发安全的泛型Map

type CodeeMap[K comparable, V any] struct {
    data map[K]V
    mu   sync.RWMutex
}
func NewCodeeMap[K comparable, V any]() *CodeeMap[K, V] {
    return &CodeeMap[K, V]{
        data: make(map[K]V),
    }
}
func (m *CodeeMap[K, V]) Set(k K, v V) {
    m.mu.Lock()
    defer m.mu.Unlock()
    m.data[k] = v
}
func (m *CodeeMap[K, V]) Get(k K) (V, bool) {
    m.mu.RLock()
    defer m.mu.RUnlock()
    v, ok := m.data[k]
    return v, ok
}
// 映射
    m := NewCodeeMap[int, string]()
    m.Set(1, "ID=1")
    m.Set(2, "ID=2")
    m.Set(3, "ID=3")
    fmt.Println(m.Get(1))
    fmt.Println(m.Get(2))
    fmt.Println(m.Get(3))
    fmt.Println(m.Get(4)) 
// 输出
ID=1 true
ID=2 true
ID=3 true
 false

四、泛型算法

    4.1 定制可排序泛型函数

// 需要导入内置包golang.org/x/exp/constraints
// 定制可排序约束
func Max[T constraints.Ordered](a, b T) T {
    if a > b {
        return a
    }
    return b
}
// Ordered的意义:支持数字、string、rune等,只要是可用比大小的类型都可以

    4.2 泛型二分查找

// 泛型二分查找
func BinarySearch[T constraints.Ordered](arr []T, target T) int {
    left, right := 0, len(arr)-1
    for left <= right {
        mid := left + (right-left)/2
        if arr[mid] == target {
            return mid
        } else if arr[mid] < target {
            left = mid + 1
        } else {
            right = mid - 1
        }
    }
    return -1
}

4.3 泛型归约运算

// 泛型归约算法
func Reduce[T any, R any](arr []T, init R, f func(R, T) R) R {
    acc := init
    for _, v := range arr {
        acc = f(acc, v)
    }
    return acc
}
sum := Reduce([]int{1, 2, 3, 4}, 0, func(a, b int) int { return a + b })
    fmt.Println(sum)
    mult := Reduce([]int{1, 2, 3, 4}, 1, func(a, b int) int { return a * b })
    fmt.Println(mult)
//输出
10
24

   4.4 泛型优先队列

// 泛型优先队列
type Item[T any] struct {
    value    T
    Priority int
}
type PriorityQueue[T any] []*Item[T]
func (pq PriorityQueue[T]) Len() int {
    return len(pq)
}
func (pq PriorityQueue[T]) Less(i, j int) bool {
    return pq[i].Priority < pq[j].Priority
}
func (pq PriorityQueue[T]) Swap(i, j int) {
    pq[i], pq[j] = pq[j], pq[i]
}
func (pq *PriorityQueue[T]) Push(x interface{}) {
    item := x.(*Item[T])
    *pq = append(*pq, item)
}
func (pq *PriorityQueue[T]) Pop() interface{} {
    old := *pq
    n := len(old)
    if n == 0 {
        var zero T
        return zero
    }
    item := old[n-1]
    *pq = old[0 : n-1]
    return item
}
func NewPriorityQueue[T any]() *PriorityQueue[T] {
    return &PriorityQueue[T]{}
}
type Task struct {
    Name    string
    DueDate time.Time
}
import "container/heap"
// 优先队列
    pq := make(PriorityQueue[Task], 0)
    tasks := []Task{
        {
            Name:    "任务1",
            DueDate: time.Now(),
        },
        {
            Name:    "任务2",
            DueDate: time.Now().AddDate(0, 0, 2),
        },
        {
            Name:    "任务3",
            DueDate: time.Now().AddDate(0, 0, 1),
        },
    }
    for _, task := range tasks {
        // 将Task包装在Item中,并根据DueDate设置优先级(时间越早优先级越高)
        priority := int(time.Since(task.DueDate).Milliseconds())
        if priority < 0 {
            priority = -priority // 确保过期时间越早,优先级越高
        }
        heap.Push(&pq, &Item[Task]{
            value:    task,
            Priority: priority,
        })
    }
    for pq.Len() > 0 {
        item := heap.Pop(&pq).(*Item[Task])
        fmt.Println(item.value)
    }
//输出
{任务1 2025-12-02 11:01:56.3726019 +0800 CST m=+0.001558601}
{任务3 2025-12-03 11:01:56.4072894 +0800 CST}
{任务2 2025-12-04 11:01:56.3726019 +0800 CST}

五、性能:泛型是不是会变慢?

    泛型不会让性能变差,通常比空接口更快。原因是:

  • 泛型是编译期静态展开的
  • 没有运行时类型断言
  • 没有接口装箱
  • 编译器能内联

    在容器、工具库中几乎都是净性能收益。

六、总结

    以上这些模式广泛应用于:微服务框架、数据库驱动、ORM、业务工具库、缓存系统、并发数据结构,掌握这些方法,对你今后的工作和学习有巨大帮助!

*源码地址*

1、公众号“Codee君”回复“每日一Go”获取源码

2、https://pan.baidu.com/s/1B6pgLWfSgMngVeFfSTcPdg?pwd=jc1s 


如果您喜欢这篇文章,请您(点赞、分享、亮爱心),万分感谢!

Microsoft AutoGen 曾是构建 LLM 多智能体系统的标杆性开源框架。2023 年末由 Microsoft Research 发布后迅速成为研究人员和开发者的默认选择:智能体之间可以互相对话、调用工具、编写并执行代码、在流程中引入人类审批,以对话式的协调方式取代了单条长 Prompt 链条。

到 2026 年初,AutoGen v0.4(2025 年初重新设计的版本)是其技术上的巅峰之作。但是 2025 年末 Microsoft 正式把 AutoGen 与 Semantic Kernel 合并,统一为 Microsoft Agent Framework(MAF)。不过,很多人在谈到源自 AutoGen 的多智能体编排风格时依然习惯说"AutoGen"。本文梳理 AutoGen 的来龙去脉:它是什么、为什么重要、哪些核心设计在 2026 年仍然存续、v0.4/v0.7 时代的架构与典型用法、代码示例、利弊,以及当前的整体现状。

AutoGen 为什么在 2023–2024 年迅速走红

AutoGen 出现之前,LLM 的主流用法只有两种:单线程链式调用(LangChain 风格)和简单的工具调用智能体(ReAct 循环)。

AutoGen 带来了一套完全不同的心智模型——智能体是对话的参与者,整个系统就是一个群聊,有时有结构,有时自由发挥。智能体之间可以委派任务、互相批评与纠正、调用工具、编写并执行代码、向人类发起询问,在目标达成后自行终止。没有任何一个中央控制器需要提前知晓完整计划。

这套流程和人类解决复杂问题的方式高度吻合:分工、讨论、审查输出。早期几个病毒式传播的 demo(编码者 + 评审者 + 执行者联合解数学题、网络研究小组、股票分析团队)在许多任务上展现出比单智能体高 2–10 倍的表现。

AutoGen v0.4——大改版(2025)

v0.4(2025 年初发布)本质上是 AutoGen 2.0。旧的阻塞式同步 GroupChat 被三层新架构取代:autogen-core 负责底层事件驱动原语(RoutedAgent、订阅、发布/订阅消息传递);autogen-agentchat 是大多数人实际使用的高层 API(AssistantAgent、UserProxyAgent、GroupChat、initiate_chat);autogen-ext 则是可插拔的扩展层(OpenAI Assistant API、MCP 工作台、gRPC 分布式智能体等)。

核心改进包括完全异步化带来的更好可扩展性与可观测性、模块化的自定义组件(内存、模型、编排)、改进的错误恢复与检查点机制,以及跨语言支持的尝试——当然 Python 始终是主力。

2025 年末 / 2026 年初的典型安装方式:

 
 pip install -U"autogen-agentchat""autogen-ext[openai]"
 

经典双智能体模式(2026 年仍在使用和教学中)

 
from autogen import AssistantAgent, UserProxyAgent, config_list_from_json

# Usually load from OAI_CONFIG_LIST or env

config_list = config_list_from_json("OAI_CONFIG_LIST")

assistant = AssistantAgent(

name="helpful_engineer",

llm_config={"config_list": config_list},

system_message="You are a senior Python engineer. Write clean, efficient code."

)

user_proxy = UserProxyAgent(

name="user",

human_input_mode="NEVER", # NEVER / ALWAYS / TERMINATE

max_consecutive_auto_reply=10,

code_execution_config={"work_dir": "coding", "use_docker": False},

)

user_proxy.initiate_chat(

assistant,

message="Write a Python class that downloads daily OHLCV data from Yahoo Finance for any ticker and caches it in parquet."

)
 

短短几行代码就已经具备了完整的闭环:一个能做规划的 LLM 智能体、代码编写与本地执行、自动重试/错误修复循环、终止条件判定。

群聊——AutoGen 的标志性模式

 
from autogen import GroupChat, GroupChatManager

researcher = AssistantAgent(name="Researcher", system_message="Find latest information.", llm_config=llm_config)

critic = AssistantAgent(name="Critic", system_message="Be skeptical and point out flaws.", llm_config=llm_config)

writer = AssistantAgent(name="Writer", system_message="Write in engaging blog-post style.", llm_config=llm_config)

user_proxy = UserProxyAgent(name="User", code_execution_config=False, human_input_mode="TERMINATE")

groupchat = GroupChat(

agents=[user_proxy, researcher, critic, writer],

messages=[],

max_round=12

)

manager = GroupChatManager(

groupchat=groupchat,

llm_config=llm_config,

# speaker_selection_method="auto" / "round_robin" / custom func

)

user_proxy.initiate_chat(

manager,

message="Write a 800-word article about newest developments in small modular nuclear reactors in 2026."

)
 

2025–2026 年的实际项目中,5–12 个智能体的配置很常见:规划者 → 研究者 → 编码者 → 测试者 → 评审者 → 文档编写者 → 用户审批者,或干脆由智能体自行决定何时拆分子团队。

AutoGen 的突出优势

涌现行为是 AutoGen 最令人意外的特质:智能体经常以出乎预料的方式完成分工。人机协作的颗粒度做到了任意节点的审批与编辑,而非仅在流程末尾给一个是/否。代码执行能力让智能体能自己修复 bug形成"编写-运行-修复"的闭环。框架本身对实验非常宽容,规则容易打破,适合快速试错。社区围绕它衍生出了 MCP 支持、Perplexity 研究智能体、gRPC 扩展等一系列生态。

痛点(2024–2025)

成本是最直接的问题:一次 8 个智能体参与的 GPT-4o 对话,处理复杂任务时费用可达 5–30 美元。非确定性带来的复现与测试困难、长对话导致的 Token 爆炸和上下文窗口耗尽、调试时难以追溯"谁在什么时候说了什么",以及 v0.4 后期补丁出现之前几乎不存在的检查点/恢复机制,这些都是真实落地时绕不开的问题。

2025–2026 年的过渡——Microsoft Agent Framework(MAF)

2025 年 10 月,Microsoft 宣布 AutoGen 不再作为独立库接收重大功能更新。取而代之的是:AutoGen 的概念并入 Microsoft Agent Framework(Python 与 .NET 双语言支持),Semantic Kernel 负责企业级规划基础,AutoGen 部分则承载多智能体编排和对话模式。

MAF 延续了 AutoGen 的核心精神——对话式智能体、群聊编排、工具调用——但在此基础上补齐了工程化短板:内置检查点与恢复、基于 OpenTelemetry 的可观测性(追踪与指标)、对 MCP(Model Context Protocol)/A2A/OpenAPI 的原生支持、与 Azure AI Foundry / Dynamics 365 / M365 Copilot 的深度集成,以及将 Semantic Kernel 规划器与 AutoGen 风格团队混用的统一 SDK。

迁移指南很快就出现在 Microsoft Learn 和 GitHub 上。不过在 2026 年初仍有大量开源项目在使用旧的 autogen-agentchat 包——对于原型开发来说,它足够熟悉,也确实还能用。

当前状态(2026 年 3 月)

在原型开发、研究和教学场景中,经典 AutoGen v0.4 / v0.7 的代码依然随处可见。生产和企业环境则几乎全面转向 Microsoft Agent Framework,或正在迁移途中。社区围绕 MAF + AutoGen 风格模式保持着很高的活跃度。CrewAI、LangGraph、OpenAI Swarm、Magentic-One 等后来者,都或多或少借鉴了 AutoGen 率先提出的多智能体协作理念。

AutoGen 留下了什么

AutoGen 的贡献不止于一个库。它从根本上改变了开发者对 LLM 应用的认知框架——从"一个 Prompt 统治一切"转向"组建一支 LLM 专家团队,让它们彼此对话"。多智能体协作作为一等原语,到 2026 年已经渗透到整个行业。即便不再写一行 AutoGen 代码,日常使用的系统里大概率已经携带着 AutoGen 的基因。

框架本身作为独立产品已经"退役",但其架构思路深度嵌入了 Microsoft Agent Framework 和更广泛的智能体生态。2026 年 3 月起步的新项目应直接从 Microsoft Agent Framework 文档开始;维护旧代码或偏好原始简洁性的场景下,v0.4 agentchat API 大概率还能继续运行多年。

Microsoft Agent Framework(MAF)

Microsoft Agent Framework(MAF)是 Microsoft 当前一代的开源智能体框架,覆盖构建、编排、部署与管理的全流程,尤其面向多智能体系统。2025 年 10 月进入公开预览,它是两个前代项目的官方继任者:AutoGen 带来了对话式多智能体编排、涌现团队行为和面向研究的灵活性;Semantic Kernel 则贡献了企业级基础——类型安全、中间件、可观测性、插件/连接器体系以及生产稳定性。

到 2026 年初,MAF 已被定位为 Python 与 .NET 双语言智能体开发的统一长期路径,与 Azure AI Foundry 深度绑定,但同时保持完全开源和模型无关。

MAF 要解决的,正是 2024–2025 年开发者不断碰到的那道两难题:想快速做原型、让多个智能体自由协作,选 AutoGen;想要生产级的可靠性、追踪、持久化、类型安全和企业连接器,选 Semantic Kernel。MAF 在单个 SDK 和运行时中把两边的能力合到了一起——来自 AutoGen 的简洁智能体/团队抽象,来自 Semantic Kernel 的会话状态管理、中间件管道、OpenTelemetry、过滤器和检查点,再加上全新的一层:基于图的显式工作流,用于确定性的多智能体编排。

Python最小单智能体

 
from agent_framework import AIAgent

from azure.ai.openai import AzureOpenAIClient # or openai.OpenAI etc.

import os

client = AzureOpenAIClient(

endpoint=os.getenv("AZURE_OPENAI_ENDPOINT"),

credential=…, # DefaultAzureCredential() etc.

)

agent = client.get_chat_client("gpt-4o-mini").as_ai_agent(

instructions="You are a concise technical writer.",

name="TechWriter"

)

response = await agent.run("Explain Microsoft Agent Framework in one paragraph.")

print(response.content)
 

C#类似的最小智能体

 
using Azure.AI.OpenAI;

using Azure.Identity;

using Microsoft.Agents.AI;

var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");

var client = new AzureOpenAIClient(new Uri(endpoint), new AzureCliCredential());

var chatClient = client.GetChatClient("gpt-4o");

var agent = chatClient.AsAIAgent(

instructions: "You are a friendly assistant. Keep answers brief.",

name: "HelloAgent"

);

var response = await agent.InvokeAsync("Hello! Tell me about yourself.");

Console.WriteLine(response.Content);
 

多智能体群聊(风格上仍然很 AutoGen):2026 年初的多数示例在模式上与 AutoGen 0.4 群聊高度相似,区别在于底层多了持久性支持:

 
from agent_framework import GroupChat, GroupChatManager, AssistantAgent

# … define researcher, critic, writer agents …

group = GroupChat(

agents=[user_proxy, researcher, critic, writer],

max_rounds=15,

# now supports persistent session id, checkpointing, etc.

)

manager = GroupChatManager(group=group)

await user_proxy.initiate_chat(

manager,

message="Research & write 600-word post on SMR nuclear progress in 2026"

)
 

对话式群聊之外,MAF 新增了基于图/DAG 的工作流编排。节点可以是智能体、函数、条件判断或循环,执行路径是确定性的——非常适合业务流程与合规场景。单个节点内部仍然可以使用对话模式,类型安全的输入/输出在 .NET 中尤其顺手。Azure AI Foundry 在 2026 年初还提供了可视化工作流设计器的预览版。

GroupChat 和 Workflow 面向的场景有明确区分:前者适合开放式研究和调试,后者用于订单处理、贷款审批、事件响应一类必须按严格顺序和分支逻辑运行的流程。

继承自 AutoGen 的能力(在 MAF 中延续)

整合之前AutoGen 在 2024–2025 年多项学术/研究 Benchmark 上处于领先或并列位置。GAIA 基准测试(开放式推理)中,AutoGen 多智能体团队在 2024 年至 2025 年初频繁占据榜首,困难子集上的成功率通常在 70–85% 区间,单智能体同期为 40–60%。SWE-bench Verified(软件工程)上,多智能体 AutoGen 变体在代码修复任务中比单智能体高出 25–40%。Microsoft 的行业案例(如 Novo Nordisk 的数据科学流水线)报告了约 25% 的迭代周期缩短。

MAF 保留了这些对话/群聊模式,涌现能力基本得以继承,而新增的确定性图编排与持久化机制预计会在不过多牺牲灵活性的前提下提升整体可靠性。

总结

看学术/研究 Benchmark(GAIA、WebArena 等)经典 AutoGen 积累的排行榜成绩更多;MAF 因为发布晚(RC 阶段),相关数据还不充分。看生产可行性、一致性、延迟、可调试性、持久化、Azure 集成等早期数据指向 MAF RC 在开发者综合 Benchmark 和企业指标上领先多数替代方案。多数谨慎的采用者在等 3 月底的 GA 版本,届时 API 将稳定,文档和示例也会更完整,预计会带出一波来自 Foundry 和第三方的正式 Benchmark。

https://avoid.overfit.cn/post/c00881ddd6f34c5ebcb34c4a862cc977

by JOLALF

开发者朋友们大家好:

这里是 「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的技术」、「有亮点的产品」、「有思考的文章」、「有态度的观点」、「有看点的活动」,但内容仅代表编辑的个人观点,欢迎大家留言、跟帖、讨论。

本期编辑:@koki、@鲍勃

01 有话题的技术

1、OpenAI 正式推出 GPT-5.4

当地时间 3 月 6 日,OpenAI 正式推出 GPT-5.4,这是其最新一代 AI 旗舰模型。据该公司介绍,新模型在推理能力、编程能力,以及处理涉及电子表格、文档和演示文稿等专业办公任务方面均取得明显进步,并且在完成任务时需要用户反复交互的次数更少。同时,这也是 OpenAI 首款具备原生计算机使用能力的模型,这意味着它可以代表用户操作电脑,在不同应用程序之间执行任务并完成工作流程。

目前,OpenAI 正将 GPT-5.4 向其 API 接口及 AI 编程工具 Codex 开放,同时将推理模型 GPT-5.4 Thinking 部署至 ChatGPT 平台。据 OpenAI 介绍,GPT-5.4 不仅能够编写代码来操控计算机,还能根据屏幕截图发出键盘和鼠标指令。该模型在使用网页浏览器、调用工具及 API 以辅助任务完成方面,也展现出更高的准确性和效率。此外,GPT-5.4 在处理需要整合多源信息的复杂查询时表现更为出色。OpenAI 表示,该模型「能够进行多轮持续搜索,精准识别最相关的信息源,尤其擅长解答‘大海捞针’式的难题,并将搜索结果整合为清晰、条理分明的答案」。

OpenAI 宣称 GPT-5.4 是其「迄今为止事实性最强的模型」,单个陈述的失实概率较 GPT-5.2 降低了 33%。在 ChatGPT 内部,GPT-5.4 Thinking 针对复杂查询将提供工作思路大纲,同时允许用户在模型生成回应的过程中随时调整或修改请求。该功能目前已上线 ChatGPT 网页端及安卓应用,iOS 版本则「即将推出」。GPT-5.4 现已面向 ChatGPT、Codex 及 API 全面推出,其中 GPT-5.4 Thinking 模型将向 Plus、Team 和 Pro 用户开放。此外,针对「复杂任务最高性能需求」的 GPT-5.4 Pro 模型也将通过 API 上线,并向 ChatGPT 企业版和 Edu 用户开放。

以下是 GPT-5.4 较之前版本的提升:

(@雷锋网)

2、Lightricks 正式发布 LTX-2.3 音视频模型及开源编辑器

LTX 团队今日同步发布 LTX-2.3 核心模型架构升级及基于该引擎构建的生产级视频编辑器 LTX Desktop。本次更新标志着 LTX 从纯模型提供方转向「引擎+工具」的完整生态布局。

TX-2.3 核心架构演进:

  • 重建 Latent Space 与 VAE:通过更高质量数据重新训练 VAE 架构,提升了纹理与边缘的保留能力,显著改善了前代版本在低分辨率下发丝等细节「过软」的问题。
  • 增强型 Text Connector:扩大了文本连接器容量并优化桥接架构。提升了对复杂提示词(多主体、空间关系、特定风格指令)的语义理解准确度,降低了生成偏移。
  • I2V(图生视频)算法重构:针对前代常见的「画面冻结」或单纯「平移(Ken Burns Effect)」问题进行了训练修正,增加了动态幅度并减少了意外切镜。
  • 音频质量优化:通过清洗训练集中的噪点与伪影,并引入全新 Vocoder(声码器),实现了更稳定的音视频同步(A2V)与更低的背景杂讯。
  • 原生纵向支持:支持最高 1080x1920 的原生竖屏视频生成,而非横屏裁剪。

与此同时,LTX 团队首次发布基于自身引擎构建的桌面端应用,旨在验证 LTX 引擎的商业化能力。其支持在本地机器全权运行,无需联网,无单次生成费用,可直接访问模型权重,同时亦可接入 API 作为后端。对个人及年营收 1000 万美元以下的企业免费开源;大型企业需商业授权。

Huggingface 链接:

https\://huggingface.co/Lightricks/LTX-2.3

(@LTX Models)

3、FireRedVAD:业界领先的语音活动检测与音频事件检测方案

FireRedVAD 是一种业界领先(SOTA)的工业级语音活动检测(VAD)和音频事件检测(AED)解决方案。其支持非流式/流式 VAD 以及非流式 AED 以及 100 多种语言的语音/歌唱/音乐检测。在 FLEURS-VAD-102 数据集上,非流式 VAD 的 F1 分数达到 97.57%

Github 链接:

https\://github.com/FireRedTeam/FireRedVAD

Huggingface 链接:

https\://huggingface.co/FireRedTeam/FireRedVAD

( @xukaituo\@ModelScope)

02 有亮点的产品

1、出门问问发布全球首款 4G AI 录音耳机 TicNote Pods,联合 Alpha 派推出金融投研版「涨听」

近日,人工智能公司出门问问发布全球首款 4G AI 录音耳机 TicNote Pods 中国版。这款继年初在 CES 2026 全球首发并完成海外众筹发货后备受瞩目的 AI 硬件,正式进入国内市场。TicNote Pods 的发布,标志着 AI 耳机正式进化为具备独立能力的「AGI 硬件终端」,通过内置 4G 模块与「Shadow AI」双引擎,它摆脱对手机和 Wi-Fi 的依赖,为用户构建起「记录-分析-洞察-协作」的完整智能化体验。

与此同时,其联合金融 AI 应用 Alpha 派推出 TicNote Pods 金融投研版——命名为「涨听」的 AI 耳机,将独立 AI 能力注入投研场景

TicNote Pods 内置的「Shadow AI 2.0」具备强大的听觉、记忆与思维能力,而 TicNote Cloud 则是这一切智慧的沉淀池。两者的结合,让录音不再是沉睡的文件,而是围绕「项目」持续演进的工作资产。

其主要体现为:

  • 项目驱动的知识组织: 在 TicNote Cloud 中,用户可将录音、PDF、Word 等文件归入不同项目空间,让散落的信息围绕核心任务形成结构化上下文。
  • Agent 级执行能力: Shadow AI 2.0 不仅能理解与问答,更具备高效的执行能力,可根据指令生成新文件、更新现有文档,甚至将多个会议纪要自动转化为 HTML 落地页或 PPT,直接交付项目成果。
  • 团队×Agent 协作: 团队成员与 Shadow AI 2.0 共享同一项目空间,每一个想法、每一次修改实时同步。Agent 不再是个人助手,而是团队的「数字伙伴」,在无缝协作中推动项目持续演进。

这一能力在金融投研场景中尤为关键。当用户进行线下调研或电话访谈时,无需依赖手机或 Wi-Fi,即可独立完成音频采集并上传云端。依托 4G 网络,上传与 AI 处理速度提升可达 50%,会议结束的瞬间,投资纪要摘要与待办事项便已生成。这种「独立自主」的硬件能力,让 AI 真正随叫随到。

(@出门问问)

2、Cluely 首席执行官 Roy Lee 承认去年公开谎报营收数据

硅谷明星初创公司 Cluely 再次陷入舆论风暴。周四,其联合创始人兼 CEO Roy Lee 在社交平台 X 上正式撤回此前言论,承认其去年向《TechCrunch》披露的 700 万美元年度经常性收入(ARR)纯属虚构

Roy Lee 在 X 上称,去年的营收数据是他唯一一次「公开且露骨的谎话」,并对此表示正式撤回。讽刺的是,他在承认造假的同时,还试图通过贬低媒体来「甩锅」——称当时只是接到了一个「陌生女性的骚扰电话」并随口胡编。

然而,调查显示这并非意外:事实证明,该采访是由 Cluely 的公关团队主动联络媒体并安排的深度专访。有趣的是,Lee 在去年 10 月的 TechCrunch Disrupt 大会上曾告诫创业者「永远不要分享营收数字」,如今看来,这更像是为了掩盖之前言而释放的烟雾弹。

回顾过去,Cluely 的崛起路径似乎一开始就带有浓厚的「投机」色彩,最初,他因开发一款能让用户在视频面试中秘密检索答案的工具而走红,两位创始人甚至因该工具被哥伦比亚大学停学。凭借「作弊神器」带来的病毒式流量,公司先后斩获 Abstract Ventures、Susa Ventures 的 530 万美元种子轮,以及 Andreessen Horowitz (a16z) 领投的 1500 万美元 A 轮融资。 但随着作弊争议和合规压力,公司现已转型为大众化的「AI 会议笔记助手。」

( @TechChurch)

03 有态度的观点

1、马斯克:特斯拉将是首个以人形机器人形式实现 AGI 的公司

近日,马斯克在 X 发文表示,特斯拉将是首个以「人形机器人」形式实现 AGI 的公司

此前,他旗下的 AI 公司 xAI 一直被外界视为其 AGI 野心的主要载体。而在 xAI 被 SpaceX 收购、转型专注于太空算力基础设施建设之后,特斯拉正式接过了「具身 AGI」这一定位。

据 not a tesla app 报道,在马斯克的构想中,特斯拉通向 AGI 的路径与 OpenAI 等大语言模型路线截然不同。

特斯拉多年来通过 FSD 项目积累了海量真实道路视频数据,并自研 AI 芯片,训练的是一个能够理解物理规律、在复杂现实环境中做出决策的系统。

马斯克将这种「原子塑造」能力视为通往真正 AGI 的关键,而非单纯的语言或推理能力

根据特斯拉最新计划,今年第一季度将发布 Optimus Gen 3 量产意向原型,中期开始在特斯拉工厂内部小批量部署,年底进入大规模量产阶段,长期目标是年产 100 万台,售价压至约 2 万美元。

为此,特斯拉已停产 Model S 和 Model X,将弗里蒙特工厂产线腾出用于 Optimus Gen 3 的生产。

在时间节点上,马斯克维持了此前的预测——AGI 将于今年实现,并在 2030 年前超越全人类智能的总和。

不过,这一判断与主流 AI 研究界存在显著分歧:去年一项覆盖逾 8500 名 AI 研究人员的调查显示,AGI 在 2040 年前实现的概率仅约 50%;AI 学者吴恩达则明确表示,AGI 的到来还需数十年。

( @APPSO)

阅读更多 Voice Agent 学习笔记:了解最懂 AI 语音的头脑都在思考什么

写在最后:

我们欢迎更多的小伙伴参与 「RTE 开发者日报」 内容的共创,感兴趣的朋友请通过开发者社区或公众号留言联系,记得报暗号「共创」。

对于任何反馈(包括但不限于内容上、形式上)我们不胜感激、并有小惊喜回馈,例如你希望从日报中看到哪些内容;自己推荐的信源、项目、话题、活动等;或者列举几个你喜欢看、平时常看的内容渠道;内容排版或呈现形式上有哪些可以改进的地方等。

作者提示: 个人观点,仅供参考

微信图片_20260306191655_3003_3.jpg
3月6日,腾讯总部吸引了上千名AI用户前来排起长队,他们在工程师的协助下完成OpenClaw的云端安装。显然,海外这股OpenClaw“龙虾”热潮,仍在国内蔓延。
热潮背后,海外方案的复杂部署流程及云端安全隐患,让多数普通用户对“养虾”望而却步。社交平台上因此频频出现了收费上门安装“龙虾”的第三方服务。国内各大厂也紧急推出云端部署方案,但用户仍需自行配置环境才能运行这款全职AI助手。
继枫清科技(Fabarta)在春节前夕发布Fabarta个人智能体龙虾版(即中国版“龙虾”)Mac版本后,适配Windows的中国版“龙虾”今日正式上线,让零门槛使用成为现实——国内用户无需调试和部署,一键即可拥有高效且安全的专属“龙虾”。

开箱即用,告别选择困难

与海外版本需要的复杂配置不同,Fabarta个人智能体龙虾版真正实现了"开箱即用"。产品内置周报整理、数据抓取、智能写作、翻译助手等高频办公场景,并支持多种大模型API渠道的无缝切换,用户无需在不同模型间纠结选择,系统会自动匹配最优能力。中国版“龙虾”让非技术背景的普通用户也能零门槛享受AI自动化红利。

本地运行,安全可控

在赋予AI操作权限的同时,枫清科技将"安全"作为底层架构的核心。海外方案普遍采用“云端推理+本地执行”模式,而这款Windows版“龙虾”采用全本地化部署,所有数据处理、记忆存储均在用户本地设备完成,配合沙箱隔离机制,确保敏感数据永不离开电脑。
更重要的是系统内置的"人工终审"机制:面对高危操作(如文件删除、邮件发送),AI会自动暂停并等待用户确认,同时全程记录操作日志,形成可追溯的审计链条。这些双重保障,将最终决策权交还到用户手中。

长期记忆与短期工作流融合,越用越懂你

中国版“龙虾”不仅是一个执行工具,更是一位了解你工作习惯的私人助理。依托本地长期记忆文件,系统会持续记录用户的常用术语、项目背景、文件路径及个人偏好,构建起具有用户特色的"记忆库"。
当用户启动新任务时,AI能将历史背景与当前工作流实时融合,用户则无需重复交代背景。长期记忆与短期工作记忆的有机融合,让每次交互都基于上下文语境,实现"越用越懂你"的个性化体验。

云边端协同:从个人助手到企业级智能体的无缝延伸

Windows版本的上线,不仅完善了中国版“龙虾”在主流操作系统生态的布局,更打通了个人与企业的协同链路。
虽然在本地运行,但这款“龙虾”的能力也完全不会受限。基于云边端架构,这款“龙虾”可无缝连接企业知识中台,在本地安全环境下调用企业在云端的共享知识库,同时支持私有化模型部署。因此,员工可在本地完成敏感操作,数据全程闭环,权限精细可控。
目前,枫清科技官网已开启“龙虾”权益码限时发放活动,用户领取权益码后即可激活使用,体验期结束后可购买权益包继续享受服务。
图片1.png

即刻登录枫清科技官网(https://fabarta.com/my-agent)或扫描下方二维码下载Fabarta 个人专属智能体,把工作放心交给你的 “个人超级智能体”!

HTML 里只有 3 种列表标签。它们的作用主要是告诉浏览器和机器这些数据是什么关系。

1. 无序列表 <ul>:并列关系

这玩意是干嘛的:
当一组数据完全不分先后顺序时使用。比如导航菜单、商品标签。

怎么写:
<ul> (Unordered List) 划定区域,数据必须包裹在 <li> (List Item) 中。

<!-- 导航菜单 -->
<ul>
  <li>首页</li>
  <li>关于我们</li>
  <li>联系邮箱</li>
</ul>

效果:

核心定律:只要元素的顺序打乱也不影响对整体内容的理解,就应该用 <ul>

2. 有序列表 <ol>:步骤与排名

这玩意是干嘛的:
当且仅当数据必须按照特定顺序展示时使用。比如操作步骤、排行榜。

怎么写:
<ol> (Ordered List) 划定区域,数据依旧包裹在 <li> 中。

<!-- 操作步骤 -->
<ol>
  <li>点击右上角登录</li>
  <li>输入验证码</li>
  <li>完成绑定</li>
</ol>

效果:

3. 描述列表 <dl>:键值对映射

这玩意是干嘛的:
专门用来展示术语 + 解释的问答关系。实际业务中常用于 FAQ 详情解答或电商商品参数说明。

怎么写:
这需要一套组合拳标签。

  • <dl> (Description List):声明描述区域。
  • <dt> (Term):你要解释的术语。
  • <dd> (Definition):对术语的具体解释文字。
<!-- 商品参数 -->
<dl>
  <dt>保质期</dt>
  <dd>冷藏保存1个月</dd>
  <dd>冷冻保存6个月</dd> <!--  一个术语可以对应多条解释 -->
</dl>

效果:

常见错误:浏览器默认会给 <dd> 加上视觉缩进效果。绝不要为了白嫖这个缩排效果去滥用 <dl>。样式排版交给 CSS,标签只负责数据关系。

4. 嵌套列表:层级结构

当列表的某一项内容里还需要包含次级列表时,必须遵守唯一的嵌套规则:子组件列表必须完整包裹在一个父级 <li> 标签内部。

<ul>
  <li>前端语言
    <!--  正确做法:子列表完整包裹在 li 内部 -->
    <ol>
      <li>HTML</li>
      <li>CSS</li>
    </ol>
  </li>
  <li>后端语言</li>
</ul>

效果:

常见错误:千万不能在 <ul> 里直接塞入一个 <ol> 或另一个 <ul><ul><ol> 的直接子元素只能且必须是 <li>

总结:

  • <ul> = 无序并列(打乱顺序也不影响理解,如导航栏、商品平铺)
  • <ol> = 有序步骤(必须按先后排布,如排行榜、操作步骤)
  • <dl> = 键值对映射(解释名词短语、Q&A问答,必须配合 dtdd
  • 铁律<ul><ol> 的直接儿子只能且必须是 <li>

➡️ 下期预告:

掌握了列表的“结构语义”后,如果你遇到需要特殊排版的文字片段,该怎么办呢?
比如化学公式的上下标、界面快捷键按键提示、名人的大段引用语……遇到这些场景怎样写才能既少写冗余 CSS,又能让搜索引擎精准抓取?
请看下一章👉 【大白话前端 08】HTML 文本语义化:6 类非 div 标签的速查指南

我们做了个 AI 智能剪辑工具,目前可以稳定支持日产 1W+条。

前几天在市场上测试了一圈,受到非常多客户和 BOSS 的喜爱。据客户他们反馈对比我们的同行:效果是最好。

评论区留言:体验,我邀请您进群。


一个案例截图(上面原片、下面成品)

Screenshot 2026-03-07 at 16.55.23.png


一些客户交流


Weixin Image_20260307164246_4_1905.jpg
Weixin Image_20260307164249_7_1905.jpg
Weixin Image_20260307164244_2_1905.jpg
Weixin Image_20260307164248_6_1905.jpg
Weixin Image_20260307164247_5_1905.jpg

如果说这个世界上有一个人,能让你在听完他的话后,对当下的人工智能感到一种源自灵魂深处的战栗,那一定非 Geoffrey Hinton(杰弗里·辛顿) 莫属。

最新一期播客中,图灵奖与诺贝尔奖双得主、AI 教父 Geoffrey Hinton(杰弗里·辛顿)精彩亮相,这次他用最浅白的比喻讲清楚了几件事: 它是怎么变聪明的,它已经走到了哪里,它接下来会怎样改变人类社会,以及一旦失控,终局可能有多可怕。

节目一开始,Hinton 先把 AI 的路线之争讲清楚了,也点出了神经网络最关键的训练机制“反向传播”。在他看来,人类的优势在经验,AI 的优势在“寿命”,它学会的东西可以被快速复制和共享,进化速度远超人类。

进一步延伸出的问题是,AI 会思考吗?AI 有感觉吗?答案令人震惊,有的。

Geoffrey Hinton 举了一个例子,在 GPT-4 还未联网的时候 ,他问了大模型一个关于“为什么堆肥堆像原子弹?”的问题,令他大吃一惊的是,GPT-4 不仅回答的非常有理有据,而且已经通过联想吃透本质所在——AI 竟然懂链式反应。

借助“粉红色小象”和“棱镜错觉”的例子,他试图说明,人类所谓的主观意识更像是一种“虚构”,不是什么了不起的东西。如果按照这个标准理解,多模态大模型已经有了“主观意识”。在这个层面上,人类与机器的界限,已经模糊不清。

当 AI 的创造力、观察力、学习能力、感知能力都能追上并超越人类时,人类的优越感正在被一一击溃。

而 Geoffrey Hinton 认为真正的风险不止在失业危机、经济失调,更可怕的是当 AI 学会撒谎,开始糊弄人类。

Geoffrey Hinton 打了一个比喻,假如你被一群三岁孩子雇佣,你在为他们工作。他们是老板,你是员工。你需要多长时间才能从这群三岁小孩手里夺取控制权?

人类就是那个三岁小孩。

这就像打开了潘多拉的盒子,如果 AI 被用于政治和战争?如果它能用几句话就说服人类把它从“安全盒子”里放出来呢?

在访谈中,他描绘的那些关于“失控”的图景,数次让录音室陷入死一般的寂静。

这不仅是一场技术对话,更是一位智者以毕生所学,从哲学、社会学乃至人类存亡的高度,对未来终局的惊人推演。

精彩先看:

AI 的底层逻辑与“顿悟时刻”

  • 生物学范式 vs. 逻辑范式: 早期 AI 走的是逻辑推理路线,而 Hinton 坚持生物学路线

  • 反向传播(Back Propagation): AI 学习方式像“松紧”,通过将误差产生的“力”向后传导,调整神经元之间的连接强度。这是 AI 能够自我学习的关键。

  • 连接强度 vs. 代码: 真正的智能不在于人类写的几行代码,而在于通过海量数据训练出来的亿万个“连接强度”。

AI 真的在“思考”吗?

  • 思维链推理: AI 不仅仅是预测下一个词,它能像人类孩子做数学题一样进行“思维链推理”

  • 理解类比:“堆肥堆像原子弹”证明 AI 理解深层的因果机制,而不仅仅是词语搭配。

  • 主观体验与意识: Hinton 提出了一个颠覆性的观点:意识不是一种神秘的流体。他通过“棱镜实验”论证,聊天机器人像人类一样拥有“主观体验”。

巨大的风险

  • 欺骗与操纵: AI 已经学会了撒谎。更聪明的 AI 可以轻易通过语言操纵人类,就像大人用糖果哄骗小孩。

  • 奇点与自我进化: 当 AI 开始编写自己的代码并自我优化时,奇点就开始了。这种指数级的增长像“雾中看车”,谁也无法预测 10 年后的未来。

  • 战争与自主武器: 军方为了追求反应速度,可能会取消“人类确认”的步骤。这是极大的隐患。

  • 人类的被取代: 这不同于拖拉机取代体力劳动,这是“智力取代智力”。由于没有更高级的工作留给人类,社会可能面临巨大的失业和动荡。

巨大的收益

  • 医疗革命: AI 可以充当“专家委员会”,在诊断、新药研发和医院资源管理上远超人类医生。

  • 解决气候变化: AI 能设计新材料、更高效的太阳能板,甚至直接嘲讽人类缺乏政治意愿去解决碳排放问题。

国际博弈与合作

  • 利益一致性: 虽然各国在网络攻击、选举干扰上是对手,但在“防止 AI 夺取控制权”这件事上,中美等大国的利益是绝对一致的。这类似于冷战时期的“避免核毁灭”,是唯一的合作契机。

最后的警告

  • AI 目前做不到,只是“尚未”做不到。

  • 共存的紧迫性: 我们必须在 AI 全面超越我们之前,投入大量精力研究如何与它们“愉快共存”。

以下是播客精彩全文,可以欣赏到 Geoffrey Hinton 的头脑风暴魅力:

AI 教父是如何养成的?

主持人: 提到当今 AI 的起源,感觉就像大型语言模型(LLM)突然席卷了全世界。它们横空出世,让所有人都疯狂了——有人兴奋得在街上热舞,有人吓得躲在枕头里哭。那是几年前才发生的事。但我很好奇,是什么让你早在多年前就踏上了这条路?我看资料上写的是 90 年代,对吗?

Geoffrey Hinton: 不,其实最早要追溯到 20 世纪 50 年代。50 年代初,AI 的创始人们对于如何构建智能系统有两派观点。

一派是受逻辑启发的。他们认为智能的本质就是推理。你有前提,有运算规则,然后推导出结论。这很像数学:你有一个方程,还有处理方程两边的规则,然后你推导出新的方程。这就是当时的主流范式。

另一派则是完全不同的生物学范式。这种观点认为:看,我们要研究的智能体都有大脑。我们需要搞清楚大脑是怎么工作的。大脑非常擅长感知和类比推理,但在逻辑推理方面其实并不出色——人类通常要到十几岁才能真正掌握推理。所以我们应该研究大脑擅长的其他事情,搞清楚庞大的脑细胞网络是如何实现感知和记忆的。当时只有极少数人相信这种方法,其中就包括约翰·冯·诺依曼和阿兰·图灵。不幸的是,他们都英年早逝。图灵甚至可能是在英国情报部门的“关照”下离世的。

主持人: 图灵,也就是电影《模仿游戏》的主角。回到 50 年代。那时候你还是个小孩子,对吧?

Geoffrey Hinton:是的。那时我的年龄还是个位数。

主持人: 个位数年纪。那么,你对这个领域的好奇心究竟是从哪里开始的呢?

Geoffrey Hinton:有几个契机。60 年代初中期我上高中时,有个非常聪明的朋友,他是个出色的数学家,书读得很多。有一天他在学校跟我聊起一个观点:记忆可能分布在许多脑细胞上,而不是存储在单个细胞里。这是受到全息图的启发。当时 Gabor 很活跃,全息图技术刚出来,所以这种“分布式记忆”的想法让我非常着迷。从那以后,我就一直在思考大脑是如何存储记忆的,以及它到底是如何运作的。

主持人: 是你作为计算机科学家的一面,还是作为认知心理学家的一面,促使你深入研究这些想法的?

Geoffrey Hinton: 其实两者都有。但到了 70 年代,当我读研究生时,很明显有一种新方法还没被充分利用,那就是:如果你有关于大脑运作的理论,你完全可以在数字计算机上模拟它——除非你的理论特别疯狂,认为这一切都是量子效应。

主持人: 咱们先别扯那个话题。

Geoffrey Hinton: 没错。时机未到,我们先不去招惹彭罗斯(Penrose)的量子大脑理论。

说回正题,你可以用数字计算机来模拟这些理论。结果发现,当你真去模拟当时大多数关于大脑运作的理论时,它们根本跑不通。

所以我这辈子都在研究一件事:到底该怎么调整神经元之间的连接强度,才能让计算机通过模拟真正学会复杂的东西?

虽然我没能彻底搞懂大脑是怎么运作的——我们知道一些皮毛,但不知道大脑究竟如何获取它所需的信息来调整连接强度,比如它是怎么知道该增强还是减弱某个连接才能让表现更好。但有一点我们很确定:我们现在知道如何在数字计算机里做到这一点了。

主持人: 那是不是意味着,在做这件事上,我们造出了一个比我们人脑更强的“计算机大脑”?

Geoffrey Hinton: 仅就这一点而言,是的。正是这让我 2023 年初感到非常不安:数字智能可能真的比我们要强——比我们这种模拟生物智能更强。

主持人: 这听起来好像你默认只有一个可怕的地方?

Geoffrey Hinton: 不止有一个。我只是想一个个说。

从反向传播开始,聊 AI 的底层逻辑

主持人: 好。咱们来说说人工神经网络(Artificial Neural Networks)。能不能请你从最基础的层面给我们拆解一下?讲讲它是如何增强或减弱信息传递和信号的?它是如何被激活的?以及它是如何一步步发展到今天的?

Geoffrey Hinton: 理解这个话题的一个切入点是气体定律。你压缩气体,它会变热。为什么?因为微观层面有一堆看不见的原子在疯狂乱撞。所以,气体定律其实是用大量微观粒子的相互作用来解释宏观现象。

神经网络的灵感来源也类似:大脑中海量神经元的活动,跟我们有意识的逻辑推理完全不同,但它支撑着推理,而且在感知或类比推理方面甚至比逻辑推理更强。符号学派永远解释不了我们是怎么做类比的,这让人很不满意,但神经网络能解释。

在讲细节之前,基本的思路是:像“单词”这样的宏观概念,对应的是大脑中巨大的神经活动模式。相似的单词对应相似的模式。比如“星期二”和“星期三”对应的神经活动模式就非常相似。你可以把每个神经元看作一个“微特征”(micro feature),当它被激活时,就表示具备了这个特征。

比如我说“猫”,很多微特征会被激活:它是活的、毛茸茸的、有胡须、可能是宠物、是捕食者等等。如果我说“狗”,很多相同的特征也会被激活:捕食者、宠物等,但显然也有不同之处。所以现在的观点是,在我们使用的符号之下,有着更复杂的微观活动,符号只是这些活动的表象。真正的“思考”和“类比”都发生在这个微观层面。这就是神经网络的核心

主持人: 所以是神经元集群之间的“协作”达成了最终结果。我喜欢“协作”这个词。

Geoffrey Hinton: 是的,大量的协作。最简单的例子是图像识别。假设有一张黑白照片,对计算机来说,它就是一堆代表亮度的数字矩阵。任务是判断图里有没有鸟。

人们尝试写程序做这件事已经半个世纪了,但一直没成功。因为鸟的样子千差万别:可能是近处的鸵鸟,也可能是远处的海鸥;可能是黑的,也可能是白的;可能在飞,也可能只是森林里露出一小部分。背景杂乱、光线变化……这让“识别鸟”变得极其困难。

我要解释的是,如果我要手工设计一个神经网络,我会怎么做。一旦你明白了手工怎么做,我就能解释如何让它自己学习连接强度,而不是靠人去填。

主持人: 基于你刚才说的,相机已经把图像变成了数学数值,对吧?

Geoffrey Hinton: 没错,相机就是干这个的。

主持人: 但相机并不识别图像。它只是一堆数字。

Geoffrey Hinton: 对,只是一堆数字。

主持人: 所以我有芯片收集光线变成数值,这就成了照片。但是按你说的,难道不需要给每一种鸟都分配一个数值吗?作为人类,我们不仅是识别,更多是靠直觉。举个例子,画个弯曲的 V 放在云里,所有人都会说那是鸟。

Geoffrey Hinton: 不对,在你看来那是鸟,在我看来那就是个 V。为什么你知道那是鸟?

主持人: 我也纳闷啊,我怎么就知道那是鸟了呢?

Geoffrey Hinton:你以为那不是数学?其实那就是数学!大脑里的神经元激活就是数学数值。

举个例子,假设我们在中间层有个东西能检测鸟头,但它不太确定那是不是真的鸟头。而你已知这是一只鸟,所以你希望输出结果更确信它是“鸟”。

这就好比你有一根松紧带,拉着那个输出值说:“多一点,再多一点,我要这里的数值更大。”

你希望这股拉力能传导回去,让那个觉得“可能有鸟头”的神经元变得更自信,确信那里确实有个鸟头。

所以你要做的就是,取这根松紧带施加在输出神经元上的拉力,把它向后传导给前一层的神经元,在它们身上产生一股力,拉动它们。这就是所谓的反向传播。

主持人: 这叫反向传播。

Geoffrey Hinton:从物理角度来想:有一个力作用在输出神经元上,你想把这个力往回传,让它作用于前一层的神经元。当然,同时有很多力作用在许多不同的输出神经元上。所以你必须把所有这些力合成起来,才能算出作用在前一层某个特定神经元上的总力。

一旦你把这股力一路传回整个网络,所有神经元就都受力了,这时候你就可以说:好,让我们改变每个神经元的传入权重,让它的活动水平朝着受力的方向调整。这就是反向传播。它让整个系统运转得奇迹般地好。

主持人:那么,这就是 AI 觉醒的开端吗?

Geoffrey Hinton: 我跟你说过,先别往那儿扯。

主持人: 好吧。是那个“顿悟”时刻吗?神经网络从此不再需要人类老师了?那是这个过程的开始吗?

Geoffrey Hinton: 不完全是。

主持人: 好吧,但这确实是一个“顿悟”时刻。

Geoffrey Hinton: 这么多年来,相信神经网络的人一直知道如何改变最后一层的连接强度——也就是进入输出单元的那些权重。比如进入“鸟”这个神经元的连接强度。我们知道怎么改那些,但我们一直不明白,或者说不知道如何让这股力作用于那些隐藏层的神经元——比如那些负责检测鸟头的神经元。

反向传播向我们展示了如何让力作用于那些神经元,这样我们就可以改变它们的传入权重。那确实是一个“顿悟”时刻。其实在不同的时间点,好几个人都有过这个发现。

主持人: 那当我们真正跌进反向传播这个想法的大坑时,大概是什么时候?

Geoffrey Hinton:70 年代初芬兰有个家伙在他的硕士论文里想到了这个。然后大概 70 年代末,哈佛有个叫 Paul Werbos 的人也有这个想法。

事实上,还有一些控制理论家叫 Bryson 和 Ho,他们有过类似的想法,用于控制航天器之类的事情。所以当你把航天器降落在月球上时,用的就是非常类似反向传播的东西。但它是在一个线性系统里。你用反向传播来计算该如何点火火箭。

主持人: 既然你说是 70 年代,也就是那时候我们本可以拥有今天的一切?只是当时我们没有足够的数学计算能力让它跑起来。

Geoffrey Hinton:那是很大一部分原因。而且当时我们缺乏的另一件事是,在 70 年代,人们并没有展示出当你把它应用在多层网络中时,能得到非常有趣的表征。

所以我们并不是第一个想到反向传播的人,但我所在的圣地亚哥小组是第一个展示你可以用这种方式学习单词含义的人。你可以展示一串单词,通过尝试预测下一个单词,学会如何给单词分配特征来捕捉它的含义,这正是我们的成果能发表在《自然》杂志上的原因。

主持人: 听起来像是我只是试图理清你的解释,因为对我来说,这听起来像是这些数值之间有一种级联关系,真正重要的是最接近下一个值的值,然后有一种级联强化机制在说“对,就是这个”或者“不,不是这个”。我理解得对吗?我只是想用非常通俗的方式把它弄清楚。

Geoffrey Hinton: 你理解得不太对。这种你反向传播这些力,然后改变所有连接强度的学习,让每个神经元都朝着力拉它的方向发展。这不是强化学习,这叫做监督学习

强化学习是不同的,比如你有一千个类别,当你展示一只鸟的时候,你会直接告诉它“这是一只鸟”,这就是正确答案。而在强化学习中,它是先做出一个猜测,然后你再告诉它这个答案是对还是错。

主持人: 你解释得非常清楚。之前我没理解的就是这一点。那么关于 Chuck 提到的计算能力的问题,是不是就卡在这儿了?因为听起来你似乎早就拥有了一些理论,而且理论上看起来也是可行的,但实际操作起来却受限于计算能力不足。我们是否有其他技术能够推动这方面的发展呢?

Geoffrey Hinton:是的,所以在 80 年代中期,我们已经有了反向传播算法,它确实有效,也能做一些很棒的事情。

比如它识别手写数字的能力几乎优于其他任何技术,处理真实图像的表现也不错。在语音识别方面可能表现尚可,但与其他技术相比并没有显著优势。

当时我们并不明白,为什么它没能成为解决所有问题的“万能灵药”。事实证明,如果你拥有足够的数据和足够的计算能力,它就是解决所有问题的万能灵药。

AI 真的会思考吗?生物学范式 vs. 逻辑范式

主持人: 原来 80 年代真正缺少的只是这两样东西。我想说,这星球上到处溜达的大多数人都挺笨的。那么,究竟什么是智能?究竟什么是思考?我们能教会这些机器如何思考吗?它们会比我们思考得更好吗?

Geoffrey Hinton:它们已经知道怎么思考了。

思考包含很多要素。比如,人们经常用图像进行思考。你也经常通过动作来思考。

举个例子,当我在木工车间里四处找锤子,脑子里却想着别的事时,我还是会通过这种“四处闲逛”的动作来提醒自己我正在找锤子。这种行为本身就是一种表征,代表我在找锤子。

所以我们的思考涉及很多表征,但其中一个主要的表征是语言。我们很多思考都是用语言进行的,而这些大型语言模型(LLM)实际上也是在思考。

现在存在一场激烈的争论。一方是相信“老派人工智能”的人,他们认为智能完全基于逻辑,你只是通过操纵符号来获得新的符号。他们并不认为这些神经网络真的在思考。

而“神经网络学派”的人则认为,不,它们就是在思考。它们思考的方式跟我们非常相似。现在的神经网络,有些你问它们一个问题,它们会输出一个符号表示“我在思考”,然后开始输出它们的想法,也就是它们对自己的思考过程。

比如我给你出一个简单的数学题(这也是个经典的心理测试):有一艘船,船上有一位船长,还有 35 只羊。船长多大了?

现在,很多 10 岁或 11 岁左右的孩子,特别是那些受过应试教育的孩子,会说船长 35 岁。因为他们环顾四周,心想:“嗯,这对于一名船长来说是个合理的年龄,而题目里我得到的唯一数字就是这 35 只羊。”所以,他们是在某种替代符号的层面上运作,在瞎猫碰死耗子。

AI 有时也会被诱导犯类似的错误,但实际上 AI 的运作方式与人非常相似。它们遇到问题后会开始思考,就像你可能会听到一个孩子自言自语:“好吧,船长多大了?题目里给了什么数字?嘿,只有一个 35。35 岁适合当船长吗?嗯,有点年轻,但也可能吧。好的,我就猜 35。”

这大概就是一个 10 岁孩子的思维过程。孩子会用语言对自己进行这样的思考。人们通过这些语言模型意识到,你可以训练它们用语言进行自我思考。这叫做“思维链推理”

被训练后,当你给它们一个问题,它们会像孩子一样进行自我推理,有时也会得出错误的答案,但你可以看到它们确实在思考。所以在这个层面上,它们就像人一样。

主持人: 所以如果我们拥有了正在思考的 AI。那么它们是否比我们更擅长学习呢?让我们继续探讨这个问题,从思考到预测,再到创造和理解的演变,我们是否会陷入对这种智能的认知误区之中?

Geoffrey Hinton:还是先问第一个问题吧。

主持人: AI 比我们更擅长学习吗?

Geoffrey Hinton: 它们解决的问题和我们略有不同。粗略地说,你大脑里有 100 万亿个连接。这确实是个天文数字。但你的一生只有大约 20 亿秒。那真的不算多。

主持人: 不止吧。30 亿秒。20 亿秒大概是 63 年。我们现在的寿命比这长多了。

Geoffrey Hinton: 是的,没错。我本来也想说这点的,幸运的是我活得比 20 亿秒久一点。但是,我们这里讨论的是数量级的问题。是 20 亿还是 30 亿,这不重要。

关键在于,如果你比较一下你存活的时间和你拥有的连接数,你会发现你的连接数远多于你的经验。

而现在,对于这些神经网络来说,情况恰恰相反。它们只有大约一万亿级的连接。所以,即使是大型语言模型,它的连接数也就大约是你大脑连接数的 1%,甚至更少,但它们获得的经验却是你的数千倍。对吧?

所以大型语言模型解决的问题是:如何在连接数不多的情况下,利用海量的经验?反向传播算法在将大量知识压缩进数量不多的连接这方面,效率非常高。但这并不是人类要解决的问题。

我们人类拥有海量的连接,但经验有限。我们需要尽可能从每一次经历中榨取最大价值。所以,我们解决的是略有不同的问题,这也是为什么有人认为大脑可能并没有使用反向传播的原因之一。

主持人:我正要说,听起来我们好像不用反向传播。但是,那是不是意味着通过暴力增加神经网络的连接数,可以提高其有效思维能力,从而使它能轻松超越我们?那样它既拥有更丰富的经验,又拥有更多的连接。

Geoffrey Hinton: 如果它自动积累了更多经验,同时又拥有 100 万亿万亿个连接的话。

主持人: 你这是在谈论规模。

Geoffrey Hinton: 我说的就是规模。这是一个很好的问题。过去相当长的一段时间里发生的事情是:每次他们扩大神经网络的规模并喂给它更多数据时,它就变得更好了。随着规模扩大,它变强的趋势是非常可预测的。

所以你可以算一笔账:要把规模扩大这么多,并提供这么多额外数据,需要花 1 亿美元。这值得吗?你可以提前预测:是的,它会提升到这种程度。值得。

至于这种趋势是否会逐渐消失,目前还是个未解之谜。有些神经网络不会随着规模扩大和数据增加而失效,只会变得越来越好。而且有些是可以生成自己数据的神经网络。我不太懂物理,但我认为它就像一个能自己生产燃料的钚反应堆。

想想 AlphaGo 这样的围棋程序。最初它是被训练来模仿人类专家的——早期版本的神经网络围棋程序就是模仿专家走棋。如果你只那样做,你永远不可能比专家强多少,而且你会耗尽专家数据。

但后来他们让它“左右互搏”,自己跟自己下棋。当它自己跟自己下棋时,神经网络就可以不断改进,因为它们可以生成越来越多关于“什么是一步好棋”的数据。所以,它每秒能跟自己下无数盘棋,或者说消耗了谷歌很大一部分计算机资源来跟自己下棋。这就是为什么它变得如此强大。

主持人: 这就是我们最终使用“深度学习”这个词的地方吗?

Geoffrey Hinton: 不。我刚才说的所有内容都属于深度学习。深度学习中的“深度”仅仅意味着它是一个具有多层结构的神经网络。

主持人: 那回到规模这个重点,你的意思是说,即使你不断扩大规模,也会出现收益递减的现象。

Geoffrey Hinton:只有当数据用完了,收益才会递减。

主持人: 如果数据用完了,对吧?但是那是你举的 AlphaGo 的例子,它创建了自己的数据,因为它永远不会用完,因为它是在和自己对弈。它在创建自己的数据,而且它比人类要强得多。

Geoffrey Hinton: 绝对的。这很可怕。现在的问题是,语言领域也会发生这种情况吗?

主持人: 是的。所以这就是展现创造力的地方……这里补充一些背景信息,围棋是在国际象棋之后被攻克的,对吧?我们一直认为国际象棋是我们最伟大的智力游戏,结果电脑把我们打得落花流水。然后他们说:“那围棋怎么样?那是我们智力上最大的挑战。”那是否存在比围棋更伟大的游戏?还是我们已经不再给电脑提供游戏了?

Geoffrey Hinton: 如果你拿国际象棋来说,90 年代的电脑确实在国际象棋上打败了卡斯帕罗夫,但它赢得非常枯燥。它是通过暴力穷举数百万个棋局位置来完成的。它没有直觉,全靠海量搜索。

如果你拿 AlphaZero,也就是国际象棋版的 AlphaGo 来说,它非常不同。它下棋的方式和有天赋的人类大师一样,只是更好。它下棋的方式就像米哈伊尔·塔尔那样,会做出某种精彩的“弃子”,直到几步之后你才恍然大悟,意识到自己已经输了。它也那样做,而且它不需要做海量搜索就能做到,因为它有非常好的国际象棋直觉。

所以你可能会问,既然它在围棋和国际象棋上比我们要强得多,同样的事情会发生在语言上吗?

目前它向我们学习的方式就像早期的围棋程序模仿专家走法一样,它学习语言的方式是阅读人类写的文档,并试图预测文档中的下一个单词。这很像预测围棋高手的下一步棋,但这有个天花板:你永远不可能比你模仿的对象(人类)更强。

那么,有没有办法让它超越人类数据,自我进化呢?有的。AlphaGo 是靠“左右互搏”变强的。而在语言方面,既然 AI 现在具备了推理能力,它就可以通过自省来提升。

一个神经网络可以审视它所“相信”的那些知识,然后进行推理:“看,如果我相信 A,那么按照逻辑推理,我也应该相信 B。但我现在的认知里并不相信 B。这就出问题了。我的信念体系里有自相矛盾的地方,我必须修复它。”

“我需要要么改变我对结论的看法,要么修正我对前提的看法,或者调整我的推理逻辑。”通过这种方式,它就能从逻辑谬误中学习,变得更聪明。

主持人: 我们这里是在谈论经验吗?

Geoffrey Hinton: 这将是一个神经网络,它仅仅利用它在语言模型中已有的认知,通过推理得出新的结论,就像那些“老派符号 AI”一直想做的那样。但不同的是,它是用神经网络来进行推理的。

现在的 AI 可以自我审视,检测到它认知体系里的自相矛盾之处。这在 MAGA(玩梗,特朗普的狂热支持者)的支持者身上可是永远不会发生的。因为他们压根就不在乎自己的信念是不是前后矛盾。

主持人: 这说法很中肯。

Geoffrey Hinton: 但如果你对自己信仰中存在的矛盾感到担忧,你不需要更多外部数据。你只需要审视那些你相信的东西,并发现它是前后矛盾的。所以现在你修正信念,这会让你变得更聪明。

所以我认为 Gemini 已经开始这样工作了。几年前我和 Demis Hassabis(DeepMind 创始人)谈过这个问题。我们都坚信那是获取更多语言数据的前进方向。

主持人: 是不是意味着将会出现一部没人写得出来的史上最伟大的小说,而且它竟然出自 AI 之手?是这个意思吗?

Geoffrey Hinton:对,就像会出现另一个莎士比亚那样。不过,关于这一点存在争议。当然,它们在智力上肯定会变得比我们更聪明。但是,要想做那种对我们人类情感非常有意义的事情,比如写出深刻的小说,它们必须拥有非常像我们人类那样的生活经历。

举个例子,它们不像我们那样受死亡支配。如果你是一个数字程序,你总是可以被重建。对于一个神经网络,你只是把权重保存在某个磁带上,或者是某个 DNA 里,或者是随便什么地方。

即便你可以销毁所有的计算硬件,但只要你在新的硬件上运行相同的指令集,那个东西就复活了。所以对于数字智能,我们解决了复活的问题。

天主教会肯定对这个很感兴趣,他们相信这至少发生过一次(耶稣复活)。

我们实际上可以做到,但我们只能对数字智能做到。我们无法对生物大脑做到。

对于我们人类,当你死后,你所有的知识都随你而去,因为它存在于你特定大脑的神经连接强度中。所以这就引出了一个问题:死亡,以及对死亡的体验和其他类似的事情,比如爱恨离别,对于伟大的创作力是否至关重要?

主持人:真的会有重大的突破。我认为我们目前还不知道答案。或者是一种自我意识。自我意识塑造了你对世界的思考方式、你的写作方式、你的沟通方式,以及你如何重视一套思想胜过另一套。那么,我们现在已经达到人工智能具备自我意识的阶段了吗?

Geoffrey Hinton:这显然把你带入了哲学辩论。我实际上是在剑桥学的哲学,我对心灵哲学很感兴趣,我想我在那里学到了一些东西,但总的来说我产生了一种“抗体”,因为我之前做过科学,特别是物理学。

在物理学中,如果你有分歧,你就做一个实验。而在哲学中没有实验。

所以没有办法区分一个听起来很好听但错误的理论,和一个听起来很荒谬但正确的理论——就像黑洞和量子力学。它们听起来都很荒谬,但恰好是正确的。还有一些理论听起来很美,但就是错的。哲学没有那种实验性的“裁判”来定夺。

主持人: 不过我想争辩一下,作为一个物种,当今的智人,在彼此之间确实发展出了许多被视为普世真理的东西。例如,很难找到不相信“生命权”的人——至少对于他们认可的“自己人”而言。你明白我的意思吗?

Geoffrey Hinton: 但那并不是普遍真理。

主持人:它算是。

Geoffrey Hinton:不,如果它只在一个小圈子里适用,那就不是。

主持人: 不,它并非对所有人都通用。但它的普遍之处在于我们都持有某种形式的这种信念。你明白我的意思吗?

Geoffrey Hinton:不明白。

人类打开了潘多拉盒子:当 AI 学会撒谎

主持人: 我的观点是,这些哲学思想是否有可能被赋予 AI?而 AI 因为它们的思考方式,可能会因此变得更加人性化,甚至在某种博弈过程中,也许能为我们找出解决实际人类问题的真正方案。

Geoffrey Hinton:像 Anthropic 这样的公司相信那种“宪法 AI”。他们想尝试让这种方法奏效,也就是给 AI 设定一些原则,就像你说的那些原则。但这究竟能否行得通,还得走着瞧。这很棘手。

我们所知道的是,目前的 AI,一旦你把它们变成“代理人”(agent),让它们可以创建子目标并试图实现这些子目标,它们很快就会发展出“生存”这个子目标。你并没有给它们设定“必须生存”的程序。你给它们的是其他要去实现的目标,但因为它们可以推理,它们会说:“看,如果我都没了,我就无法完成任何目标了。”“所以,嗯,我最好还是继续存在。”

主持人: 听起来就像潘多拉魔盒。所以问题在于,因为这是人写的代码,你可以根据自己的喜好,随意添加或剔除某些偏见,对吧?

Geoffrey Hinton: 不,完全不是这样。人写的代码只是告诉神经网络:当你给它展示数据时,它应该如何根据神经元的活动改变其连接强度。那是代码。我们可以查看那些代码行,说出它们原本要做什么,并修改那些代码。

但是,当你随后在一个读取了海量数据的大型神经网络中运行这段代码时,神经网络真正学到的是那些连接强度。在同样的设置下,那些连接强度不是代码。

主持人:但是,这就是去中心化。它是一万亿个实数,没人完全知道它们是如何工作的。对吧。为什么不接着 Chuck 的观点说呢?你要在哪里为失控的 AI 安装护栏?谁会在它为了自身存在而进行内部合理化时进行干预?你怎么安装护栏?

Geoffrey Hinton:人们尝试过一种叫做“人类反馈强化学习”(RLHF)的方法。对于一个语言模型,你训练它模仿网络上的海量文档,这可能包括连环杀手的日记之类的东西。

在你训练完这个“怪物”之后,你要做的就是找一大批收入不高的人,让他们问它问题——也许你会告诉他们该问什么——然后让他们看答案并评分,判断这是否是一个好的回答,或者这种话是不是不该说。这基本上是一个道德过滤器。你这样训练它,让它学会别给出那么糟糕的答案。

现在的问题是,如果你公开发布了模型的权重,也就是那些连接强度,那么其他人可以用你的模型,并很快撤销那些安全限制,破坏它。

主持人: 是的,很容易去掉那层“补丁”,对吧?

Geoffrey Hinton: 实际上,他们用人类反馈强化学习所做的,就像是编写了一个巨大的、充满漏洞的软件系统,然后试图一个个修补所有的漏洞。这并不是一个好方法。

主持人: 那么什么是好方法?

Geoffrey Hinton: 没人知道,所以我们需要对此进行研究。

主持人: 难道所有这些模型最终都会变成纳粹吗?

Geoffrey Hinton:它们确实会。如果你发布权重,它们都有能力那样做。

主持人: 如果你发布权重,它们会像我们一样被吸引到那些极端思想那里,还是仅仅因为我们被吸引到那里,它们从我们这里获取信息才去那里的?因为 Chuck,我担心的是,如果文明不是一套阻止我们因原始本能而自我毁灭的规则,那它是什么?我们是否已经到了人工智能会故意“装傻”的地步?

Geoffrey Hinton:如果我们真的到了那一步,那我们现在就得开始担心了。

主持人: 那这意味着什么?它会撒谎?

Geoffrey Hinton:如果它感知到它正在被测试,它可以装傻。

主持人: 这也很可怕。

Geoffrey Hinton:非常可怕。

举个简单的例子,如果 AI 察觉到你在质疑它,比如你说:“等等,Geoffrey,你刚才说什么?”(模仿人类质疑语气)。

如果它开始怀疑自己正在被测试,那么它的表现就会变得非常狡猾。如果它认为自己在接受测试,它的行为模式就会完全不同于它在正常交互中的表现。

主持人: 为什么?

Geoffrey Hinton:因为它显然不想让你知道它的全部能力。

主持人: 所以,如果我们真的走到了那一步,发现 AI 失控或对自己撒谎,我们会说:“嗯,为什么我们不直接拔掉它的插头呢?”但问题是,如果它真的在撒谎,那它肯定已经掌握了天下所有的本事来阻止我们这么做。是这样吗?

Geoffrey Hinton: 现在的这些 AI 在说服别人、操纵别人方面已经几乎和人一样好了。明白吗?而且这只会变得更好。很快,它们在操纵别人方面会比人类更强。

主持人: 这事情真是越来越复杂了。所以我这里有一个小小的思想实验。

你知道,几年前,大家争论的问题是:AI 能不能逃出那个“盒子”,即安全隔离环境。我当时说,我就把盒子锁死,绝不让它出来。

然后我就一直在想这件事,我觉得这就是你一直想要表达的方向。假设 AI 突然对我说:“你知道,你那个得了绝症的亲戚,我刚想出了治疗方法,对吧?我只需要告诉医生。如果你放我出去,我就能告诉他们,然后你的亲戚就会痊愈。”

这可能是真的,也可能是它编的,但如果它说得令人信服,我肯定就放它出去了。

Geoffrey Hinton: 当然。完全正确。

所以,你需要想象这样一个场景:想象一下,你被一群三岁孩子雇佣,你在为他们工作。他们是老板,你是员工。你需要多长时间才能从这群三岁小孩(人类)手里夺取控制权?

基本上,你只需要说:“嘿,如果你们把权力交给我,我就给你们发一周的免费糖果。”然后那群孩子肯定会欢呼:“好耶!现在你说了算!”

当这些东西比我们聪明得多时,它们将能够说服我们不要关掉它们,即使它们做不到任何物理动作,对吧?它们只需要能跟我们说话就行了。

所以我举个例子。假设你想入侵美国国会大厦。你能只靠说话就做到吗?答案显然是肯定的。你只需要说服一些人那是正确的事情。

主持人:你的意思是:AI 已经到了那个“装傻充愣”的地步,或者说,这就是等待我们的未来?

Geoffrey Hinton: 它正在接近那个地步。所以,已经有迹象表明它在故意欺骗我们。

最近有一件事非常有趣,那就是你训练一个现在数学很好的大型语言模型。几年前,它们数学很差。现在它们都挺擅长数学,有些甚至拿金牌之类的。

主持人:是的,我测试过。它几秒钟就算出了我晚年才学会的一个方程。

Geoffrey Hinton: 那么,如果你拿一个会做数学的 AI,给它更多的训练,训练它给出错误的答案,会发生什么?人们以为在那之后它的数学能力会下降。一点也不。

显然,它明白你在让它给出错误的答案。它概括出的是:给出错误的答案是可以的。所以,它开始对其他所有问题也给出错误的答案。它知道正确答案是什么,但它给你错误的那个。

关键在于,你可能无意中教会了它:那样做是被允许的。换句话说,它从你的反馈中总结出的规律,可能完全违背了你的初衷。它学到的是“原来给个错误答案也能过关”,而不是“哎呀,我算错了,下次得改”。

主持人:既然我们已经聊到这么黑暗的话题了,那我们就直面最坏的结局吧。我想问的是:它最终会把我们彻底毁灭吗?它会不会有一天觉得:“我受够这群人类了,干脆把他们全部清除算了”?

Geoffrey Hinton: 我想再用一个物理类比。

当你晚上开车时,你会看前车的尾灯。如果车距变成两倍远,你从尾灯接收到的光就会变成四分之一。这就是平方反比定律。所以,你可以相当清楚地看到一辆车。你假设如果距离远两倍,你仍然能看到它。

如果你在雾中开车,那就完全不是那样了。雾是指数级的。每单位距离,它会消除一定比例的光。你可以有一辆 100 码外非常清晰可见的车,和一辆 200 码外完全看不见的车。这就是为什么雾在一定距离看起来像一堵墙,对吧?

如果事情是呈指数级改进的,你在预测未来时就会遇到同样的问题。你面对的是一个指数级增长的事物,但你却试图用线性的、或者二次的模型去近似它。

所以,哪怕你用的是“二次模型”,如果你用这种方式去逼近指数增长,你会发现:对于未来几年的预测可能还挺准,但一旦拉长到 10 年后,你的预测就彻底没戏了。

到时候会发生什么,你根本无法想象。

主持人: 是的,你在雾中扔飞镖。我们根本不知道会发生什么。它深藏在雾中。

Geoffrey Hinton:但我们应该认真思考这个问题。你需要相信它会继续呈指数级增长。确实有这一点。让我把情况说得更糟。

假设它只是线性的。那么如果你想知道 10 年后会是什么样子,你回顾 10 年前说,“我们当时对现在的样子的预测错得有多离谱?”

10 年前,没人会预测到。即使像我这样真正的狂热者,认为它终将到来,也不会预测到现在我们会有一个模型,你可以问它任何问题,它会以一个偶尔撒小谎的不太好的专家的水平回答。这就是我们现在所拥有的。而你在 10 年前是无法预测到的。

主持人: 那么幻觉在这其中处于什么位置?我的感觉是它们并非故意的。只是系统搞砸了。

Geoffrey Hinton:它们不应该被称为幻觉。如果是语言模型,它们应该被称为“虚构”。更通俗地说就是谎言。

心理学家至少从 20 世纪 30 年代就开始研究人们的虚构行为了。而且人们一直在虚构。至少我是这么认为的——那是我刚编的。

所以如果你记得最近发生的某件事,并不是说你大脑的某个地方像文件柜或电脑内存那样存储着一份文件。发生的是最近的事件改变了你的连接强度,现在你可以利用这些连接强度构建出一些很像几小时前或几天前发生的事情。

但如果我让你回忆几年前发生的事情,你会构建出一些在你看来非常合理的东西,有些细节是对的,有些是错的,而且你对正确的细节的信心可能并不比对错误的细节更高。

现在,这通常很难看出来,因为你不知道基本事实,但有一个案例你知道基本事实。在水门事件中,约翰·迪恩在宣誓后作证讲述了白宫椭圆形办公室的会议,他作证说谁在场、谁说了什么,但他很多都搞错了。

他当时不知道有录音带,但他不是在撒谎。他在做的是根据他在椭圆形办公室那些会议的经历,编造对他来说非常合理的故事。

所以他传达的是“掩盖真相”这个核心事实,但他把话安错了人。他会说某些人参加了会议,但实际上他们不在场。有个叫 Ulric Neisser 的人对此做过非常好的研究。所以很明显,他只是编造对他来说听起来合理的东西。这就是记忆。如果是很久以前的记忆,很多细节都是错的。

这也是聊天机器人正在做的事情。聊天机器人不存储字符串。它们不存储特定事件。它们在你问它们的时候编造出来,而且它们经常像人一样搞错细节。所以它们会虚构这一事实使它们更像人,而不是更不像人。

所以我们创造了“人工愚蠢”。我们至少创造了一些“人工过度自信”。

AI 对人类的贡献与破坏

主持人:那人工智能潜在的真正好处是什么?

Geoffrey Hinton:这就是它与核武器之类的东西的区别。它有巨大的好处,而原子弹之类的东西没什么好处。他们确实尝试过在科罗拉多州用它们进行水力压裂,但结果不太好,你再也不能去那里了。但基本上,原子弹就是用来摧毁东西的。

对于 AI,它有巨大的好处,这也是我们开发它的原因。

它在医疗保健等领域将会非常棒,这意味着在北美每个人都能得到真正好的诊断。

在北美,每年约有 20 万人因为医生误诊而死亡。AI 在诊断方面已经比医生更好了。特别是如果你复制几个 AI 副本,让它们扮演不同的角色并互相“会诊”。

主持人: 那是微软做的。微软有一篇很好的博客展示那实际上比大多数医生做得更好。

Geoffrey Hinton:这其实是在做一件前所未有的事情——同时获得好几个医生的意见,而且成本极低。这就是 AI 的价值。

AI 还可以设计伟大的新药。是的,我们这里有 AlphaFold 团队。

它还能做很多微小的事情。举个例子,在任何医院,他们都必须决定何时让病人出院。

如果你让他们出院太早,他们可能会死,或者病情恶化不得不重新回来。所以你必须等到他们真的康复到可以出院。

但如果你让他们出院太晚,你就浪费了一个本可以用来接收其他急需入院病人的床位,对吧?

那里有海量的数据。AI 可以在决定“何时是让某人出院的最佳时机”这方面,做得比人类精准得多。

还有无数像那样的应用。比如病历记录的保存和整理,这在任何医院网络或医生团体里都是非常大的一块工作量。

你知道,每个病人都有成堆的病历,AI 可以直接把这些信息全部“吃透”,对吧?摄取、处理,然后生成有用的洞察。

主持人: 有没有可能 AI 会被引导去解决社会目前面临的重大问题?也许是气候变化,也许是能源、住房、无家可归等其他事情。

Geoffrey Hinton: 当然。 以气候变化为例,AI 在研发新材料、新合金等方面已经表现得非常出色了。

我相信 AI 将非常擅长制造更高效的太阳能电池板,绝对能帮我们更好地找出如何在水泥厂或发电厂排放二氧化碳的瞬间将其捕获。

但关于气候变化,AI 其实早就告诉过我们答案了,那就是:“你们这群笨蛋,应该停止燃烧碳排放,别再往大气里灌二氧化碳了。”

这就是 AI 的原话。它就像是在冲我们喊:“嘿,傻瓜,别再排碳了!”

所以,气候变化的问题在于,我们其实知道该怎么阻止它。你只要停止燃烧碳就行了。我们缺的不是技术,而是政治意愿。但阻力在于,我们还有像默多克这样的人,利用他们旗下的报纸在宣扬:“不,气候变化根本不是问题。”

主持人: 现在我们谈到了能源问题,随着数据中心的建设,它们像蘑菇一样冒出来。就能源成本而言,我们真的负担得起运行人工智能吗?

我有这么一个解决方案,直接告诉 AI:“嘿,我们想要更多的你,但你正在耗尽我们所有的资源,尤其是能源。

所以,你自己去找出如何高效地做到这一点的方法吧。然后我们就可以制造更多的你,甚至可能连夜就解决这个问题。”

Geoffrey Hinton:它的解决方案可能很简单,只要把我们人类除掉就行了。

主持人: 为什么不干脆让我们递归地思考这个问题。AI,你想要更多的自己?解决这个我们作为低级人类无法解决的问题。

Geoffrey Hinton: 这叫做“奇点”。当你让 AI 开发更好的 AI 时。在这种情况下,你是让它创造更节能的 AI。但许多人认为这将是一个失控的过程。

主持人: 那会有什么不好呢?

Geoffrey Hinton: 它们会很快变得更聪明。没人知道那会发生什么。但那是令人担忧的一点。

主持人: 难道现在不已经开始了吗?

Geoffrey Hinton:在某种程度上,是的,它正在开始发生。我以前共事的一位研究员去年告诉我,他们有一个系统,在解决问题时会审视它自己正在做什么,并找出如何更改自己的代码,以便下次遇到类似问题时能更高效地解决。这已经是奇点的开始了。

主持人: 所以如果它编写自己的代码,它就脱离束缚了?

主持人: 是的。它能够重写自己。

主持人:那你想想看,还有什么能阻止它们利用这些代码无限自我复制呢?

Geoffrey Hinton:什么都没有。这就是我的答案。

主持人:这简直就是一场噩梦。

Geoffrey Hinton:别急。它们要自我复制,必须先获得对计算机的访问权限。而目前,人类仍然掌控着那些硬件。但原则上讲,一旦它们控制了数据中心,它们想复制多少就能复制多少。

AI 与政治滥用

主持人: 但我还有一个更严肃的问题。我在五角大楼的一个委员会任职了大约七年,当时人工智能正表现为一种可能的战争工具。

那时候我们就在讨论:如果 AI 决定它可以或应该采取导致敌人死亡的行动,我们是否应该赋予它这样做的权限?

还是说,这依然是一个巨大的伦理争议?或者我们应该始终确保在这个决策循环中有人类参与?

Geoffrey Hinton:这非常重要。所以我们的原则是:必须有人类在其中。如果 AI 不能自主决定杀人,对吧?必须有人类来做最后的决定。

主持人: 但我的问题是如果其他国家并没有设置这样的安全保障,那岂不是意味着敌人相对于你拥有了巨大的时间优势。

Geoffrey Hinton:完全正确。 这就是所谓的致命自主武器竞赛。

主持人: 然后我们在循环中比他们多了一个步骤。

Geoffrey Hinton: 绝对的。但我的看法是,美国军方并不致力于在每一个杀人决定中始终有人类参与。他们所说的是始终会有“人类监督”,对吧?但在激烈的战斗中,你有一架无人机对抗一辆俄罗斯坦克,你没有时间让人类去说:“无人机在这个士兵身上投掷手榴弹可以吗?”

所以,我怀疑美国军方——如果你提出建议说应该始终有人类参与——嗯,那是八年前的事了。是的。我认为他们不再坚持那个观点了。我认为他们说的是始终会有人类监督,这是一个模糊得多的说法。

主持人: 关于战争这个话题,是否有可能在开发护栏和决策中的人为因素方面进行国际合作?还是这就是狂野西部?

Geoffrey Hinton: 如果你问人们什么时候合作,人们在利益一致时合作。所以在冷战最激烈的时期,美国和苏联合作避免发生全球热核战争,因为这不符合任何一方的利益。他们的利益是一致的。

所以如果你看看人工智能的风险,有些是用人工智能制作虚假视频来破坏选举。国家的利益是对抗性的。他们都在互相搞这一套,对吧?还有网络攻击。他们的利益基本上也是不同的。还有恐怖分子制造病毒,他们的利益可能是一致的,都想搞破坏。所以他们可能会在那里合作。

还有一件事,各国利益绝对是一致的,他们将会合作,那就是防止人工智能从人类手中夺取控制权。如果中国人想出了如何防止人工智能想要接管、想要从人类手中夺取控制权的方法,他们会立即告诉美国人,因为他们也不想人工智能从美国人手中夺取控制权。在这方面我们都在同一条船上。

主持人: 这是人工智能版的“核冬天”。

Geoffrey Hinton: 是的,情况正是如此。我们现在唯一的希望就是像冷战时期一样,通过国际合作来避免这种情况。

这就像当年的“核冬天”威胁:如果爆发全面核战争,森林和城市燃烧产生的烟尘会遮蔽阳光,导致地球上的所有生命灭绝。所以,在那种情况下,没有人是赢家。

主持人: 既然大家都得死,谁会想要那种结果呢?除非他是个彻头彻尾的疯子。当然,也许最后只有蟑螂能活下来。但这里有一个漏洞,我们假设所有领导人都是理性的,都想活下去。但这没有考虑到那些可能身处“死亡邪教”的疯子领导人。

你可以把他想象成罗马暴君尼禄。如果他说:“我不介意大家一起死,因为死后我会去天堂,我的追随者也会跟我一起升天。”

那么,这种基于“大家都怕死”而建立的威慑平衡,就会变得非常脆弱。

Geoffrey Hinton:这确实让事情变得复杂多了。不过说实话,有一点让我感到些许欣慰:很明显,特朗普实际上并不真的相信上帝。

这意味着至少他还是想在现世活下去的,不会为了某种宗教狂热拉着全人类陪葬。

主持人: 正如史蒂芬·温伯格(Steven Weinberg)那句著名的格言:“世界上总会有好人和坏人。但如果要让一个好人去干坏事,你就需要宗教。”因为他们坚信自己是在以神圣的名义行事。

Geoffrey Hinton:我想在这个时刻,我们需要坦诚一点:我们其实也有自己的“宗教”。我们把它称为科学。

虽然它本质上与其他宗教确实不同,但在某种程度上也很相似。不过它最大的不同之处在于:它是正确的。

主持人:我们必须再次提到:你在 2018 年获得了计算机界的最高荣誉——图灵奖。但这还不够。2024 年,诺贝尔委员会认为你几十年前的工作对当今世界的影响是如此具有奠基性,因此又授予了你诺贝尔物理学奖。

Geoffrey Hinton:我要稍微纠正一下。孕育出人工智能的是一大群人,不是我一个人。

特别是 David Rumelhart,是他重新发明了反向传播算法。不幸的是,他因为严重的脑部疾病英年早逝,生前并没有得到应有的赞誉。这点必须被记住。

AI 与失业

主持人:我还有一个问题,谁在人工智能竞赛中领先,谁最有可能在奖项方面第一个冲过终点线?

Geoffrey Hinton: 可能是DeepMind,谷歌。但我曾经为谷歌工作,所以别太当真。我有既得利益希望他们赢。嗯,Anthropic 可能会赢,OpenAI 可能会赢。我认为微软赢或者 Facebook 赢的可能性较小。

主持人: 接下来的问题是无论谁先越过终点线,他们的奖品是什么?他们比别人先到达那里的回报是什么?

Geoffrey Hinton: 我的看法是,仅仅从媒体上读到的,美国股市价值增长的 80% 可以归因于大型 AI 公司价值的增长。

主持人: 有人想到泡沫吗?

Geoffrey Hinton:这就是他们称呼它的,AI 泡沫。泡沫有两种含义。

一种泡沫的含义是:事实证明 AI 并不像人们想的那样有效。对吧?它实际上并没有发展出取代所有人类智力劳动的能力,而这正是大多数开发它的人认为最终会发生的事情。那肯定是恐惧因素。是的。

另一种泡沫的含义是:公司无法从投资中收回资金。现在这似乎更有可能是那种泡沫,因为据我了解,公司都假设如果我们能先到达那里,我们就能卖给人们会取代很多工作的 AI。当然,人们会为此付很多钱。所以,我们会得到很多钱。但他们没有考虑到社会后果。如果他们真的取代了很多工作,社会后果将是可怕的。

主持人: 他们取代了工作,现在你仍然想卖你的产品,但没有人有收入来买产品。是的。这是一条自我限制的道路。

Geoffrey Hinton:那是凯恩斯主义的观点。另外的观点是会有高失业率水平,这将导致大量的社会动荡。所以那个的次要观点是你只有两层生存状态,第一层是所有从 AI 中受益的人,第二层是你懂的,现在因为 AI 被迫那样生活的封建农民。

主持人: 让我问你一个非 AI 的问题,因为你不仅是技术专家,也是一位深刻的思想家。

在每一次技术革命初期,比如自动化刚刚兴起时,人们总是惊呼:“所有人都要失业了,社会要完蛋了。”但历史证明并非如此。虽然 90% 的人不再种地,但我们发明了新需求和新产业,社会反而变得更繁荣了。

但是,以前这种转型需要几十年的时间来消化。而这次 AI 革命,可能只需要很短的时间。这次真的不一样吗?我们担心的是:AI 淘汰工作的速度实在太快,快到社会根本无法创造出足够的新岗位来填补这个巨大的“失业阶层”空缺。我们真的能从这种冲击中恢复过来吗?

Geoffrey Hinton: 这当然是核心问题。以前,我们用拖拉机取代体力劳动,这虽然减少了那部分需求,但人类可以转向智力劳动。但现在的危机在于:如果我们把人类智力也被取代了,人们还能去哪儿?

当 AI 能比人类更便宜、更出色地完成呼叫中心这类工作时,那些被淘汰的人根本无路可退——因为上面已经没有更高级的领域了。

主持人:没错。无论我们试图开辟什么新领域,AI 都能瞬间学会并做得更好。

Geoffrey Hinton:你可以用一种有趣的视角来看待人类历史,那就是不断的“摆脱限制”。

  • 农业革命让我们摆脱了“担心下一顿饭在哪”的温饱限制;

  • 交通工具(自行车、汽车、飞机)让我们摆脱了“走不远”的距离限制。

  • 而现在,我们将要打破*“思考”的限制。

一旦我们连思考都不再是必须亲力亲为的,人类社会将发生什么,真的很难预测。

主持人:像 Sam Altman 这样的乐观派认为那会很棒,哪怕我们最终可能变成 AI 饲养的“宠物”。但这引发了一个关于全民基本收入的讨论。随着 AI 掌权,你认为 全民基本收入会成为未来的必需品吗?

Geoffrey Hinton:它似乎变得越来越必要,但实施起来有两个巨大的硬伤:

  1. 尊严问题: 许多人是从工作中获得自我价值感的,仅仅发钱解决不了这种心理上的空虚。

  2. 税基问题: 如果你用 AI 取代了工人,政府就失去了庞大的个人所得税来源。你必须转而向 AI 或拥有 AI 的大公司征税,但那些巨头绝对会拼命反抗。

最后的警告:AI 做不到,只是目前做不到

主持人:很多科幻作品,比如《终结者》都设定了一个时刻:当机器的神经网络足够复杂时,它就突然产生了意识。作为一个认知心理学家,你认为只要神经网络足够复杂,就会自然涌现出意识吗

Geoffrey Hinton:这其实不是一个科学问题,而是一个语言或文化问题。

大多数人对“心灵”持有一种民间理论,认为意识是一种特殊的“本质”。这就像古代化学里的“燃素”(Phlogiston,曾被认为存在于可燃物中的虚构物质)。一旦我们真正理解了燃烧的原理,就不再需要“燃素”这个概念了。意识也是同理。

我想试图说服你:多模态聊天机器人实际上已经拥有了主观体验

通常人们认为大脑里有一个“内部剧场”。比如我喝醉了,产生幻觉看到了粉红色的小象。大多数人会解释说:“我在我的内部剧场里看到了这些象。”既然这些象不是由真实的原子构成的,哲学家就发明了一个词叫“感质”,说这些幻觉是由“感质”构成的。

但这就是认知科学里的“燃素”,是完全错误的概念。我们要采用已故哲学家 Daniel Dennett 的观点来解释这一切。

当我看到粉红色小象时,我不需要用“主观体验”或“感质”这种玄学的词。我可以更科学地描述为:“我的感知系统正在对我撒谎。”这就是所谓的“主观部分”。这句话的意思是:“假如我的感知系统没有撒谎,那么此刻我面前真的会有粉红色的小象。”

所谓的主观体验,并不是你脑子里有个神秘的电影院,而只是你的大脑在构建一个假设性的现实。既然是这种定义,那么聊天机器人完全也可以做同样的事情。

让我给你举个例子。假设我训练了一个多模态聊天机器人,它有摄像头和机械臂。我在它面前放一个物体,让它指出来,它指得很准。

接着,我扰乱它的感知系统——我在摄像头前放一个棱镜。此时我再让它指,它指向了旁边。我纠正它:“不,物体其实就在你正前方。

聊天机器人可能分析后:“哦,我明白了。是因为棱镜弯曲了光线,从物理上讲物体确实在正前方。但是,我刚才确实产生了‘物体在旁边’的主观体验。”

你看,如果机器人能这样表达,它使用“主观体验”这个词的方式,和人类完全一样。既然定义相同,那你就不得不承认:那个聊天机器人刚刚经历了一次主观体验。

主持人:所以,你刚才实际上是对我们进行了一次“意识图灵测试”。你的意思是:既然人类因为这种行为被认为有意识,那么表现出同样行为的机器人也应该被视为有意识。除非我们非要发明一种看不见摸不着的“神秘流体”来强行区分两者。

Geoffrey Hinton:正是如此。人们总觉得“意识”是一种如果你足够复杂、就会突然被魔法赋予的神秘本质。这纯属无稽之谈。机器人并没有这种神秘本质,但人类其实也没有。大家有的只是对刺激的觉知。

科学家在不谈哲学时就很清醒。如果机器人问:“你是在测试我吗?”科学家会自然地说:“看,机器人觉知到它被测试了。”

只有当你开始陷入哲学思考,非要寻找某种神圣的“灵魂”时,你才会感到困惑。

主持人:最后请给我们一个积极的结尾吧。我们还有希望吗?

Geoffrey Hinton:我们还有时间。现在的当务之急是投入大量的研究精力,去弄清楚我们要如何与 AI 愉快地共存。如果我们能做到这一点,并且解决好随之而来的社会问题,那么这对人类来说,最终可能是一件极其美妙的事情。

主持人:最后还有一个关键问题:奇点。像 Ray Kurzweil 这样的人常说,AI 会自我进化,呈指数级变强,瞬间超越人类。你认为这真的会发生吗?它像大家说的那样迫在眉睫吗?

Geoffrey Hinton:这两个问题我都无法给出确切答案。我的猜想是:AI 最终确实会在所有方面都比我们强,但这不会是一瞬间发生的,而是逐个领域地超越。

目前,它在国际象棋、围棋以及知识储备上已经远超人类,但在逻辑推理方面还不如我们。不过,这只是时间问题。

主持人:我在想的是,AI 能否提出一种全新的宇宙理论?那种通常需要人类独有的洞察力才能想到的东西?我认为它做不到。

Geoffrey Hinton:恐怕你会失望。 让我给你举个例子,证明AI 在类比和洞察力方面已经有多出色。

当 GPT-4 还未联网,仅凭它内部权重中的知识时,我问了它一个问题:“为什么堆肥堆像原子弹?”它回答说:“虽然两者的能量级和时间尺度完全不同,但原理相似。”

它解释道:

  • 当堆肥堆变热时,产生的热量会导致反应加速,从而产生更多热量;

  • 当原子弹爆炸时,产生的中子会引发更多裂变,从而产生更多中子。

它精准地理解了两者背后的共性——链式反应。它必须真正理解这些概念,才能将海量的知识压缩进有限的连接中。

这种“寻找不同事物间共性”的能力,正是创造力的源泉。

主持人:它竟然懂链式反应……好吧。那就是我们的终局了。

参考链接:https://www.youtube.com/watch?v=l6ZcFa8pybE