频繁的需求变更不仅是技术问题,更是对团队沟通、评估机制和执行节奏的全面考验。本文围绕需求变更管理的核心话题展开,从评估、分类、执行到团队协作逐步剖析,并结合实际工具实践建议,帮助项目经理、团队负责人、PMO构建高效变更管理策略。

什么是需求变更管理?

需求变更管理不仅是变更列表和审批流程,而是综合考虑业务价值、风险、资源与团队节奏的系统方法。它包括:

  • 变更请求捕获与分类:清晰记录、结构化表达需求变化意图。
  • 影响评估:结合项目目标、风险、工期等维度衡量变更价值与代价。
  • 优先级排序与排期决策:建立一致性评估共识,而非单方决定。
  • 执行与反馈循环:确保变更执行可追踪、可复盘、可量化。

现代研发管理系统支持从“需求池”到“迭代计划”一体化的变更处理方式,通过自定义状态和属性将变更请求纳入迭代流程,有助于提升团队的可预测性和追踪效率。
高效管理需求变更的实战策略

1. 统一变更入口与系统化分类

为避免“邮件 + IM +口头沟通”造成的信息碎片化,我们建议:

  • 使用统一数字看板或研发管理工具收集所有变更请求;
  • 对需求变更进行预分类:_紧急合规变更/业务优化变更/低优先级探索变更_;
  • 明确变更提出者、影响范围和预期目标。

在像 ONES 这样的研发管理平台中,可以通过自定义字段和变更状态,记录变更的提出时间、提出人和当前状态,并将这些请求自动组织到迭代计划或产品待办中,这样不仅便于评审,还能形成清晰的变更历史轨迹。

2. 变更影响评估:从模糊诉求到定量判断

对变更的评估不应停留在“业务需要 vs 计划冲突”,而应建立如下评价框架:

  • 业务价值权重(能否解决核心用户需求?)
  • 风险权重(影响范围是否涵盖关键系统?)
  • 资源与时间消耗(是否需要更多人数/额外计划)

先进的项目工具还可以通过甘特图、燃尽图等视图,将变更影响直观地呈现在计划时间线上,有助于团队客观判断变更的代价。

3. 分类处理变更:优先级排序与周期性规划

不是所有的变更都适合立即执行。我们采用了以下三类处理策略:

通过有序的优先级策略,团队成员不再频繁中断当前任务,而是在一个透明的看板上看到“变更何时影响我”,这有助于缓解团队的认知负担和情绪焦虑。

4. 变更可视化与管理透明度提升

使用变更看板、动态影响图、趋势报表等方法:

  • 直观记录每个变更阶段;
  • 提供变更“前后对比”视角;
  • 让相关方在同一可视化视图理解变化。

在研发管理平台中,像 ONES 这样的工具可以将“需求变更状态”“迭代目标调整”“任务关联”等信息实时可视化,减少团队对变更影响的主观猜测,提高团队协作效率。

5. 节奏管理:构建稳定迭代的护城河

频繁变更最可怕的不是变更本身,而是失去可持续交付节奏。因此我们在实践中做到了:

  • 为每个迭代设定 范围冻结期;
  • 在例会中优先审查变更评估与排期,而不是“从头讨论每个变更细节”。

有效的节奏管理能帮助团队维持稳定的发布周期,从而减少“变更挤占生产力”的负面反馈。

经验复盘:变更管理如何提升团队信心

在某大型系统交付阶段,我们曾持续 4 周每天重新排期。团队成员普遍感到疲惫。那一刻,我们意识到:变更冲击最大的不是任务,而是心理健康与节奏感的丧失。通过建立结构化评估、统一入口和透明优先级体系,团队渐渐恢复了可预测的工作节奏。

这种真实的情绪体验不仅增强内容的人性化,也体现了落地工具在日常变更管理中的辅助价值。

常见问题 FAQ:

Q1: 什么是需求变更管理?
需求变更管理是系统性处理需求调整的一套方法框架,包括变更提出、评估、排序、执行和反馈,旨在平衡变更价值与执行稳定性。

Q2: 如何评估需求变更的价值?
通过量化的评估体系,从业务价值、资源消耗与风险层面判断是否值得执行,并明确变更带来的影响。

Q3: 是否所有变更都要立即执行?
不一定。根据分类策略,将高价值优先级变更与常规迭代需求有计划地纳入流程,而不是即时打断当前节奏。

说到企业管理,ERP系统早已不是新鲜词。但如今,光在电脑上用可不够了——移动办公成了刚需。老板在外想看一眼业绩,销售跑客户需要随时查库存,生产主管在车间也得能报工……一个好用、流畅、功能实在的移动ERP,已经成了企业效率的隐形引擎。

市面上叫“移动ERP”的产品不少,但哪些是真正好用、能落地的?我们结合市场口碑、产品能力、客户案例和服务模式,给大家测评出下面这5款值得重点关注的系统。排名不分绝对先后,但各有千秋,帮你找到最适合的那一个。

1. 用友YonSuite

用友作为国内财务和管理软件的“老大哥”,其云原生ERP套件YonSuite在移动端的表现相当扎实。

核心亮点:

业财一体化深度好:这是用友的传统强项。从销售订单、采购入库到自动生成凭证、财务报表,移动端也能查看完整的业务流和资金流,特别适合对财务合规要求高的企业。

场景化应用丰富:针对销售、采购、仓库、生产等不同角色,提供了专属的移动工作台。比如,销售员用手机就能完成客户跟进、报价、合同申请;仓管员用手持PDA或手机就能扫码入库、盘点。

生态连接能力强:能较好地对接到企业微信、钉钉,方便日常审批沟通。

需要注意的点:

作为标准化产品,深度个性化定制能力较弱。如果你的业务流程非常特殊,需要大改系统逻辑,用友可能更倾向于复杂的二次开发,成本和周期都较高。

产品体系庞大,对于中小型企业来说,部分高级功能可能用不上,但依然需要为此付费。

适合谁: 业务相对规范、尤其看重财务模块严谨性,且不希望IT运维太复杂的中大型企业或成长型企业。

2. 支道

https://www.zdsztech.com

如果你想找一款既够用又能随时跟着业务变的系统,支道值得放在前面仔细看看。它的核心思路是提供一个无代码开发平台,让企业自己能像搭积木一样,搭建和调整ERP、CRM、项目管理等各种应用,并且天然支持多端同步。

为什么它值得关注?

真正的“业务主导”:最大的不同在于,它改变了软件开发的逻辑。传统ERP是你提需求,厂商开发,周期长、改不动。支道提供的是表单、流程、报表等可视化引擎,企业自己的业务人员(经过简单培训)或实施顾问,就能通过“拖拉拽”配置出贴合实际流程的系统。业务怎么跑,系统就怎么配,上线阻力小。

移动端与PC端同源一体:在PC端配置好的功能(如一张自定义的采购申请单、一个独特的质检流程),会自动适配手机端,无需单独开发。员工在外通过APP或集成到微信/钉钉里,就能完成全流程操作。

性价比与长期灵活性:对于成长型企业,业务变得快是常态。支道模式避免了“过两年系统就不适用,推倒重来”的窘境。它按账号收费,无流量和算力限制,支持私有化部署且成本相对可控。这意味着你买的不只是一套软件,更像一个可持续生长的数字能力中心

行业方案接地气:从提供的材料看,它在生产制造、工程服务、贸易等行业有大量落地案例,解决方案直接针对这些行业的痛点(如生产进度跟踪、项目成本核算、多仓库存管理),不是泛泛而谈。

需要注意的点:

无代码模式在初期需要认真的业务梳理和配置投入,虽然比写代码快,但依然需要企业和实施方紧密合作,把线下流程理清楚。毕竟使用该模式的目的就是要系统“合身”,那制作系统前的“量尺寸”自然要认真。

适合谁: 业务流程独特、变化快的成长型中小企业;对成本敏感又需要深度适配业务的制造业、工程项目、贸易公司;以及那些被标准化软件“伤过”,渴望自己能掌控系统演进的企业。

3. 金蝶云·星空

金蝶云·星空是金蝶面向成长型企业的ERP旗舰产品,尤其在制造业领域口碑扎实。它的移动应用 “云之家” 深度集成,在移动端管理生产、供应链方面功能突出。

核心亮点:

制造业MES移动融合深:移动端可以查看生产任务、扫码报工、反馈工序进度、进行质量检验。实现了从订单到车间的数据贯通,管理者在外也能实时掌控生产现场。

老板移动驾驶舱:为管理者提供的移动BI报表比较直观,关键经营指标(如订单交付率、库存周转、应收逾期)一屏可见,支持下钻分析。

供应链协同便捷:供应商可以通过移动门户自主查询订单、确认交货、开具发票,简化了采购沟通。

需要注意的点:

与用友类似,复杂定制也需要走二次开发。其产品本身复杂度高,需要专业的实施顾问才能发挥最大价值。

移动端某些深度操作(如复杂报表自定义)仍需回归PC。

适合谁: 尤其是离散制造和装备制造企业,需要对生产环节进行精细化移动管理的场景。

4. 纷享销客

纷享销客起家于CRM,如今已扩展成覆盖CRM、办公协同、进销存、项目的“连接型CRM”。它的移动基因非常强大,整个产品设计就是以移动优先、销售驱动为核心的。

核心亮点:

销售团队体验极佳:移动端做客户跟进、商机管理、合同审批、业绩查看流畅无比。它把内外勤协同、审批流和业务流结合得很好。

轻量级业务管理:其进销存、项目费用管理等功能,更偏向于支撑销售业务后端,满足中小型贸易、服务类企业的日常运营管理足够,上手快,易推广

开放连接:通过PaaS平台和应用市场,能连接很多第三方工具。

需要注意的点:

深度财务、复杂生产制造、多工厂供应链管理等重型ERP领域,并非其强项。

更像是一个“销售业务运营平台”,如果企业核心诉求是财务或生产,它可能需要搭配其他系统。

适合谁: 销售驱动型公司(如快消、IT服务、互联网),核心需求是管好销售团队和客户,并轻量化管理配套业务。

5. 简道云

简道云是帆软软件旗下的应用搭建平台,与支道理念类似,同属无代码/低代码范畴。它以其极低的学习成本灵活的轻应用构建能力,在中小企业中非常受欢迎。

核心亮点:

简单易用,普及快:通过简单的表单、流程和报表设计,能快速搭建出如OA审批、进销存、设备巡检等各种管理应用。普通员工经过简短学习就能参与搭建。

移动端适配优秀:搭建的应用在微信、钉钉、独立APP中都能完美运行,数据同步无感。

性价比高:对于轻量级、部门级的管理需求,能以很低的成本快速满足。

需要注意的点:

应对极其复杂的业务逻辑、海量数据并发、多系统深度集成时,会显得力有不逮。它更像是一个出色的部门级效率工具和轻量化管理补充

在完整的、体系化的ERP建设方面(如完整的MRP运算、成本精细核算),需要更专业的架构设计和深度开发。

适合谁: 作为大型ERP的移动补充;或者满足中小企业、部门内部标准化、流程化的轻管理需求,是快速数字化的“敲门砖”。

总结:怎么选?看阶段和核心诉求

业务独特、变化快、想自己掌控,则强烈建议深入了解支道这类无代码平台。它用灵活性带来了长期的适配性和性价比,是企业构建“独家”管理系统的利器。

移动ERP的核心,不是把屏幕变小,而是把管理场景延伸。在选择时,一定要想清楚:你的团队最常在移动端完成什么?是审批、跟进、查看数据,还是完成核心业务操作?结合自身的行业特和发展阶段,才能找到那款能让企业真正“跑”起来,而不是增加负担的工具。

"夏哉ke":youkeit.xyz/15702/后
《不只是容器编排:基于JK-Kubernetes源码的云原生存储与网络深度整合》

在当今云原生技术迅猛发展的背景下,Kubernetes 已然成为容器编排的事实标准。然而,若将 Kubernetes 仅仅视为“容器调度器”,则大大低估了其作为云原生操作系统内核的深远意义。从 JK-Kubernetes 源码的视角深入观察,我们会发现:它真正构建的,是一个面向未来分布式系统的统一控制平面——尤其是在存储与网络这两大关键领域,Kubernetes 通过高度抽象与插件化机制,实现了前所未有的整合能力,正悄然重塑着现代应用基础设施的形态。

一、超越编排:Kubernetes 的“控制平面”革命

Kubernetes 的核心魅力,不在于它能启动多少个 Pod,而在于它定义了一套声明式、自愈、可扩展的控制平面模型。这种模型不仅适用于工作负载调度,更可延伸至存储卷、网络策略、服务拓扑等系统级资源。JK-Kubernetes 源码中清晰体现了这一设计理念:通过 CRD(自定义资源定义)与控制器模式,Kubernetes 将存储与网络从“外部依赖”转变为“一等公民”(first-class citizen),纳入其统一的管理语义中。

这意味着,无论是持久化卷的创建、挂载,还是跨节点网络策略的生效,都不再需要运维人员登录底层存储或网络设备进行手动配置,而是通过一个声明式的 YAML 文件提交,由 Kubernetes 控制器自动协调底层实现。这种“以应用为中心”的资源管理范式,极大降低了系统复杂性,提升了交付效率与一致性。

二、存储的云原生重构:从静态挂载到动态供给

传统 IT 架构中,存储往往是孤立、静态且高度耦合于硬件的。而在 Kubernetes 中,存储被抽象为 PersistentVolume(PV)PersistentVolumeClaim(PVC),实现了“申请即获得”的服务化体验。JK-Kubernetes 源码中,CSI(Container Storage Interface)的集成机制是这一变革的核心。

CSI 是一个标准化的存储插件接口,允许各类存储系统(如 Ceph、MinIO、AWS EBS、阿里云盘等)以独立组件的形式接入 Kubernetes。控制器通过监听 PVC 的创建事件,自动调用对应 CSI 驱动,完成卷的供给、格式化、挂载与绑定。整个过程对应用透明,且具备跨云可移植性。

更进一步,Kubernetes 还支持存储类(StorageClass) 的动态供给机制。管理员可定义不同性能等级的存储策略(如“高IO型”、“冷数据归档型”),开发者只需声明需求,系统即可自动匹配最合适的后端资源。这种“按需分配、自动调度”的能力,正是云原生存储区别于传统存储的根本所在。

此外,CSI 的演进还推动了有状态应用的云原生化。过去难以容器化的数据库、消息队列等组件,如今可在 Kubernetes 上实现自动扩缩容、故障迁移与备份恢复,真正享受云原生的弹性红利。

三、网络的统一治理:从连通性到策略化控制

如果说存储的挑战在于“持久化”,那么网络的挑战则在于“动态性”与“安全性”。在微服务架构下,服务数量激增、拓扑频繁变更,传统基于 IP 和端口的静态防火墙规则早已难以为继。Kubernetes 通过 CNI(Container Network Interface)与网络策略(NetworkPolicy),构建了一套面向服务的智能网络治理体系。

在 JK-Kubernetes 源码中,CNI 的设计体现了“插件化即生态”的哲学。无论底层是 Flannel 的覆盖网络、Calico 的 BGP 路由,还是 Cilium 的 eBPF 高性能数据面,Kubernetes 均通过统一的 CNI 接口进行集成。这意味着企业可以在不修改应用逻辑的前提下,灵活切换网络方案,适配不同性能与安全需求。

而网络策略的引入,则将安全控制从“边界防御”推进到“零信任微隔离”。通过定义 Pod 级别的入站与出站规则,企业可实现服务间的最小权限访问控制。例如,数据库服务仅允许来自特定应用命名空间的连接,有效遏制横向移动攻击。尽管默认策略需配合支持策略的 CNI 插件(如 Calico、Cilium)才能生效,但 Kubernetes 提供的声明式语法,为高级安全能力奠定了标准化基础。

更令人期待的是,随着 Service MeshGateway API 的发展,Kubernetes 正在将 L7 层流量(如 HTTP 路由、熔断、鉴权)也纳入其网络治理范畴。未来,Kubernetes 有望成为集 L3-L7 于一体的全栈网络控制平面,真正实现“服务即网络”的愿景。

四、整合的价值:构建统一的云原生基座

Kubernetes 对存储与网络的深度整合,其意义远超技术本身。它标志着企业 IT 正从“多系统拼接”迈向“统一平台治理”的新时代。过去,存储、网络、计算各自为政,运维需跨多个控制台操作,容易出错且难以审计。而如今,在 Kubernetes 的统一 API 模型下,所有资源均可通过 GitOps 流程进行版本化、自动化管理,实现真正的“基础设施即代码”(IaC)。

这种整合也带来了显著的经济与组织效益:

  • 降低运维复杂度:减少跨团队协作成本,提升交付速度;
  • 提升资源利用率:通过统一调度,避免存储与计算资源的孤岛浪费;
  • 增强安全合规性:策略集中管理,审计轨迹完整可追溯;
  • 加速云原生转型:为微服务、Serverless、AI 工作负载提供一致的运行时环境。

五、结语:云原生的“操作系统”正在成型

JK-Kubernetes 源码不仅是一段程序,更是一种技术哲学的体现——通过声明式 API 与控制器模式,将复杂系统分解为可组合、可扩展、自愈的组件单元。在这一架构下,存储与网络不再是“附加功能”,而是与计算同等重要的核心支柱。

当我们将目光从“容器编排”移开,转向其背后对存储与网络的深度整合时,会发现 Kubernetes 正在构建一个属于云原生时代的“操作系统”:它不直接提供硬件,却定义了如何使用硬件;它不实现所有功能,却提供了统一的治理语言。未来,随着 CSI、CNI、Gateway API 等标准的持续演进,Kubernetes 将进一步巩固其作为云原生基础设施中枢的地位,成为企业数字化转型不可或缺的“数字底座”。

理解并掌握这一整合逻辑,不仅是技术进阶的路径,更是把握未来云计算格局的关键所在。在。

深入 NVIDIA GPU:高性能矩阵乘法(Matmul)算子解构
在本篇博文中,我将逐步介绍支撑最尖端(SOTA)NVIDIA GPU 矩阵乘法(matmul)算子的核心硬件概念和编程技术。

为何选择矩阵乘法?

无论是训练还是推理阶段,Transformer 模型的大部分浮点运算(FLOPs)都消耗在矩阵乘法中(如 MLP 中的线性层、Attention 的 QKV 投影、输出投影等)。这些操作具有天然的极高并行性(Embarrassingly Parallel),非常适合 GPU。掌握了矩阵乘法算子的原理,你就拥有了设计几乎任何其他高性能 GPU 算子的工具箱。

本文分为四个部分:

  1. NVIDIA GPU 架构基础:全局内存、共享内存、L1/L2 缓存、功率限制(power throttling)对算力极限(SOL)的影响等。
  2. GPU 汇编语言:SASS 和 PTX。
  3. 设计近乎 SOTA 的同步矩阵乘法内核:线程束平铺(warp-tiling)方法。
  4. 在 Hopper 上设计 SOTA 异步矩阵乘法内核:利用张量核心(Tensor Cores)、TMA、计算与加载/存储重叠、希尔伯特曲线(Hilbert curves)等。
    我的目标是让这篇文章自成体系:既有足够的细节供独立阅读,又足够简洁以避免变成教科书。

本文是系列文章的首篇。后续计划(理想状态下)涵盖:
• 在Blackwell GPU上设计顶尖矩阵乘法内核
• 通过微基准测试探索GPU架构
• 设计顶尖多GPU内核
• 揭秘内存一致性模型(GPU领域的“令牌化器”:默默支撑系统运行的关键组件,却令多数开发者困惑不已)

NVIDIA GPU 架构基础

要编写高性能的 GPU 内核,你需要对硬件有一个扎实的认知模型。随着我们深入探讨硬件架构,这一点会很快变得清晰。
在本文中,我重点关注 Hopper H100 GPU。如果你能深度理解 Hopper,那么将知识迁移到未来架构(Blackwell, Rubin)或早期架构(Ampere, Volta)就会变得非常简单。
Hopper [1] 和 Ampere [2] 白皮书是非常好的信息来源。
在最高层面上,GPU 执行两个基本任务:

  1. 移动和存储数据(内存系统)。
  2. 对数据进行有用的操作(计算流水线)。
    下方的 H100 框图反映了这种划分:蓝色组件代表内存或数据移动,而红色组件代表计算(热)单元。
    h100_model-2.png

图 1:NVIDIA Hopper H100 GPU 模型
如果你在文中发现任何错误,请直接联系我——欢迎在 X、LinkedIn 或通过匿名反馈给我留言。

内存(Memory)

GPU 的内存系统是高度分层的,非常类似于 CPU 架构。
这种分层是由物理学和电路设计决定的:SRAM 单元速度更快但体积更大(实现高速所需的控制电路也增加了其面积),而 DRAM 单元体积更小/密度更高但速度较慢。其结果是,高速内存容量低且昂贵,而慢速内存可以提供大得多的容量。稍后我们将更详细地讨论 DRAM 单元/内存。

这种容量与延迟之间的权衡正是缓存层级存在的原因。在理想世界中,每个计算单元都会坐落在一大池超快内存旁边。由于这在物理上是不可能的,GPU 设计者做出了妥协:将少量快速内存放置在靠近计算单元的地方,并由更远处容量逐渐增大、速度渐慢的内存池作为后盾。这种组织方式最大化了整体系统的吞吐量。

GPU 内存系统由以下部分组成:

  1. 设备内存(VRAM/Device Memory):在 CUDA 术语中,“设备”内存指的是片外(off-chip)DRAM——物理上与 GPU 芯片(die)分离,但封装在同一个板卡上——通常以堆栈式的 HBM 实现。它承载全局内存(GMEM)、每个线程的“局部”内存(寄存器溢出空间)等。
  2. L2 缓存(L2 Cache):由 SRAM 构建的大容量 k 路组关联缓存。它在物理上分为两部分;每个 SM 直接连接到一个分区,并通过横截(crossbar)间接连接到另一个分区。
  3. 分布式共享内存(DSMEM):物理上接近的一组 SM(即一个 GPC)中共享内存(SMEM)的池化。
  4. L1 缓存与共享内存(Shared Memory):
    ○ L1 缓存:每个 SM 私有的较小 k 路组关联 SRAM 缓存。
    ○ 共享内存(SMEM):程序员管理的片上内存。SMEM 和 L1 共享相同的物理存储,它们的相对比例可以通过软件配置。
  5. 寄存器堆(Register File/RMEM):位于计算单元旁边的最快存储单元。寄存器是单个线程私有的。与 CPU 相比,GPU 包含多得多的寄存器,且总 RMEM 容量与 L1/SMEM 存储的总和相当。

    mem_hierarchy-2.png
    图 2:H100 (SXM5) GPU 的内存层级
    📝 注意: 还有一些用于指令的小型缓存,以及常量内存等,为了理解核心原理,我将忽略它们。
    从设备内存向下移动到寄存器(第 1-5 级),你会看到一个明显的趋势:带宽以数量级增长,而延迟和容量则以类似的数量级减少。
    这引发了一些直接的影响:

  6. 将访问最频繁的数据尽可能靠近计算单元存放。
  7. 尽量减少对层级结构底层的访问,尤其是设备内存(GMEM)。
    另一个值得注意的组件是 张量内存加速器(TMA),它是随 Hopper 引入的。TMA 支持在全局内存和共享内存之间,以及集群(cluster)内的共享内存之间进行异步数据传输。它还支持交织(swizzling)以减少银行冲突(bank conflicts)——我们会在适当的时候讨论这些细节(双关语)。

    计算(Compute)

    从内存转向计算,其基本单位是流式多处理器(SM)。Hopper H100 (SXM5) 总共集成了 132 个 SM。
    SM 被组织成图形处理集群(GPC):每个 GPC 包含 18 个 SM,GPU 上共有 8 个 GPC。四个 GPC 直接连接到一个 L2 分区,另外四个连接到第二个分区。
    📝 注意:
    • GPC 也是支撑 CUDA 中 线程块集群(thread-block cluster) 抽象的硬件单元——我们稍后会回到编程模型。
    • 关于集群的一点:早前我说过每个 GPC 有 18 个 SM,所以 8 个 GPC 应该有 144 个 SM。但 SXM/PCIe 规格暴露的是 132 或 114 个 SM。差异在哪里?这是因为 18 × 8 的布局仅对完整的 GH100 芯片有效——在实际产品中,有些 SM 会被熔断(fused off)。这对我们编写内核时选择集群配置有直接影响。例如,如果集群跨度超过 2 个 SM,你就无法利用所有 SM。
    • 最后注意,“Graphics Processing Cluster (GPC)”中的“Graphics”是一个传统术语。在现代服务器级 GPU 中,这些集群纯粹作为计算/AI 加速单元,而非图形引擎。同样的,GPU 应该去掉“G”,它们是 AI 加速器。

除了前面提到的 L1/SMEM/TMA/RMEM 组件(均位于 SM 内部),每个 SM 还包含:
• 张量核心(Tensor Cores):以高吞吐量在小分块(例如 64x16 @ 16x256)上执行矩阵乘法的专用单元。大型矩阵乘法被分解为许多此类分块操作,因此有效利用它们是达到峰值性能的关键。
• CUDA 核心与 SFU:所谓的“CUDA 核心”(营销话术)执行标准的浮点运算,如 FMA(融合乘加:c=a∗b+c)。特殊函数单元(SFU)处理超越函数(如 sin,cos,exp,log)以及代数函数(如 sqrt,rsqrt 等)。
• 加载/存储(LD/ST)单元:服务于加载和存储指令的电路,与 TMA 引擎互补。
• 线程束调度器(Warp Schedulers):每个 SM 包含调度器,为 32 个线程组成的组(CUDA 中称为 warps)发布指令。一个线程束调度器每周期可以发布一条线程束指令。
每个 SM 在物理上分为四个象限,每个象限容纳上述计算单元的一个子集。

这导出了以下见解:
📝 并行性(Parallelism)与并发性(Concurrency)
• 一个 SM 在给定的周期内最多可以同时发布来自四个线程束的指令(即在真正的并行执行中,每周期有 128 个线程)。
• 然而,一个 SM 可以容纳多达 2048 个并发线程(64 个线程束)。这些线程束常驻在 SM 中,并随着时间的推移被换入和换出调度,允许硬件隐藏内存/流水线延迟。
换句话说,指令并行性(在给定周期内有多少线程开始执行指令)限制为每 SM 128 个线程(4 条 32 宽度的线程束指令),而并发性(调度器中跟踪并有资格运行的线程数)则扩展到 2048 个线程。

光速(Speed of Light)与功率限制

既然我们购买 NVIDIA GPU 是为了计算,自然会问:性能上限是什么——GPU 的最大计算吞吐量是多少?这通常被称为“光速”(Speed of Light, SoL)性能:由芯片物理特性决定的上限。

根据数据类型的不同,有不同的性能上限。在 LLM 训练工作负载中,bfloat16 (bf16) 是近年来的主导格式,尽管 fp8 和 4 位格式变得越来越重要(对于推理,fp8 已相当标准)。
峰值吞吐量的计算公式为: perf=freq_clk_max∗num_tc∗flop_per_tc_per_clk
或者用文字描述:最大时钟频率 × 张量核心数量 × 每个张量核心每周期的浮点运算数(FLOPs)。

h100_sol-2.png
图 3:H100 SXM5 BF16 “光速”推导

📝 FLOP vs FLOPs vs FLOPS vs FLOP/s
• FLOP = 单次浮点运算。
• FLOP/s = 吞吐量单位:每秒浮点运算次数。
• FLOPs(小写 s)= FLOP 的复数(多次运算)。
• FLOPS(全大写)常被误用来表示吞吐量,但严格来说应读作“FLOPs”(复数)。将 FLOPS 用作 FLOP/s 是不严谨的!:)
我在上图中留下了一个提示:“光速”实际上并不是恒定的(我想这也是这个比喻失效的地方)。
在实践中,峰值吞吐量取决于实际时钟频率,而时钟频率会因功率限制(Power Throttling)或温度限制而波动。如果 GPU 时钟频率下降,有效的光速也会随之下降。
clk-2.png

图 4:功率限制降低了时钟频率并拉低了有效的“光速”

📝 延伸阅读: Horace He 在他的博文 [3] 中更深入地探讨了这一现象。
硬件细节目前了解这些就足够了。接下来的重点将转向 CUDA 编程模型,然后我们会再次深入硬件底层,并最终上升到 CUDA C++ 层面。

CUDA 编程模型

CUDA 编程模型自然地映射到 GPU 硬件和内存层级结构上。其核心抽象包括:
• 线程 (thread)
• 线程束 (warp)(32 个线程)
• 线程块 (thread block)
• 线程块集群 (thread block cluster)
• 网格 (grid)(由线程块或集群组成)
cuda_model-2.png

图 5:CUDA 编程模型:线程、线程束、块、集群、网格
每个线程通过 gridDim、blockIdx、blockDim 和 threadIdx 等变量“意识到”自己在 CUDA 层次结构中的位置。在内部,这些变量存储在特殊寄存器中,并在内核启动时由 CUDA 运行时(runtime)初始化。
这些位置信息使得跨 GPU 分配任务变得简单。例如,假设我们要处理一张 1024×1024 的图像。我们可以将其划分为 32×32 的线程块,每个块包含 32×32 排列的线程。每个线程可以计算其全局坐标:

Plain Text
const int x = blockIdx.x * blockDim.x + threadIdx.x;
const int y = blockIdx.y * blockDim.y + threadIdx.y;

并利用这些坐标从全局内存读取分配给它的像素(imagex),执行点对点操作,并将结果存回。
cuda_model2-2.png
图 6:CUDA 内置变量:线程如何知道自己在哪里
如上图所示,在实践中我们大多使用 1D 或 2D 的网格/集群/块形状。但在内部,它们始终可以根据需要进行逻辑重组。
例如,如果 threadIdx.x 的范围是 0-1023(1024 个线程的 1D 块),我们可以将其拆分为 x = threadIdx.x % 32 和 y = threadIdx.x / 32,从而将其重塑为 32×32 的逻辑 2D 布局。
将 CUDA 模型连接回硬件,有一点现在应该很清楚了:一个线程块应包含至少 4 个线程束(即 128 个线程)。
为什么? 线程块驻留在单个 SM 上。每个 SM 有 4 个线程束调度器——为了充分利用硬件,你不希望它们处于闲置状态。
📝 至少 4 个线程束的其他原因:
• 我们稍后会深入探讨,但在 Hopper 架构上,线程束组(warp-group,即 4 个线程束) 是 WGMMA(矩阵乘法)张量核心指令的执行单位。
• 此外,在使用持久化内核(persistent kernels)时,我们通常每个 SM 仅启动一个线程块,因此构建任务以保持所有线程束调度器忙碌至关重要。
带着 CUDA 编程模型的术语,我们可以继续深入探讨 GPU 的架构细节。

全局内存(GMEM)模型

让我们深入探讨 GMEM。如前所述,它是由多层 DRAM 堆叠而成,底部有一个逻辑层(HBM)。但 DRAM 到底是什么?

gmem_dram_cell.png
图 7:DRAM 单元内部:晶体管 + 电容器,字线(wordline) + 位线(bitline)
了解了单个位的存储方式后,让我们放大到整个存储矩阵。
gmem-3.png
图 8:GMEM 模型

📝 关于 HBM 的延伸阅读: 如果你想更深入地了解 HBM,我发现论文《Demystifying the Characteristics of High Bandwidth Memory for Real-Time Systems》[21] 非常有启发性。
我们可以得出结论:访问模式(access patterns)至关重要,这是由 DRAM 单元的物理特性决定的。
gmem_example-2.png

图 9:GMEM 访问模式的影响

Stephen Jones 的演讲《How CUDA Programming Works》[4] 非常值得一看。
如果我们示例中的矩阵是列优先(column-major*的,情况就会反转:列中的元素将连续存储,因此有效的选择是在内层循环遍历行,以避免 DRAM 惩罚。
所以,当人们说“GMEM 合并(coalescing)非常重要”时,指的就是:线程应访问连续的内存位置,以最小化触及的 DRAM 行数。

共享内存(SMEM)模型

共享内存(SMEM)具有与 GMEM 截然不同的特性。它由 SRAM 单元而非 DRAM 构建,这使得它在速度和容量的权衡上完全不同。
SRAM 单元的具体设计并不重要——只需知道存储一位信息需要多得多的晶体管。你可以自行搜索“SRAM cell”。
SMEM 组织为 32 个银行(banks),每个银行宽度为 32 位(4 字节):

smem_pt1-2.png
图 10:SMEM 模型
SMEM 可以在单个周期内提供来自所有 32 个银行的数据(128 字节)——但前提是必须遵守一条规则:
同一个线程束(warp)中的线程不得访问同一个银行(bank)内的不同地址。 否则,这些请求将被序列化,分多个周期执行。
这种情况被称为 银行冲突(bank conflict)。如果有 N个线程访问同一个银行中的不同地址,就会产生 N 路银行冲突(N-way bank conflict),该线程束的内存请求将需要 $N$ 个周期才能完成。
在最坏的情况下,所有 32 个线程都指向同一个银行中的不同地址,吞吐量将下降到原来的 1/32。
为了说明这一点,假设线程束大小(warp size)为 5。下方的两种访问模式将分别需要 3 个周期和 1 个周期来完成服务:

smem_pt2-2.png
重要的是:如果一个线程束(warp)中的多个线程访问同一个银行(bank)内的相同地址,共享内存(SMEM)可以将该值广播(broadcast)或组播(multicast)给所有这些线程。
在下方的示例中,请求在单个周期内即可完成服务:
• 银行 1(Bank 1) 可以将一个值组播给 2 个线程。
• 银行 2(Bank 2) 可以将一个值组播给 3 个线程。
smem_pt3.png

现在,来看硬件拼图的最后一块:L1 缓存。
这是一篇由 Axel 撰写的关于 SMEM 微基准测试(microbenchmarking)的优秀博文 [5]。

L1 模型

我们已经看到 L1 和 SMEM 共享相同的物理存储,但 L1 在该存储周围增加了一层由硬件管理的脚手架层(scaffolding layer)。
在高层级上,L1 缓存的逻辑流程如下:

  1. 线程束(warp)发布一个内存请求(指向 SMEM 或 GMEM)。
  2. 请求进入 MIO 流水线并被派遣至 LSUIN 路由器。
  3. 路由器导向请求:SMEM 访问立即从数据数组(data array)中获得响应,而 GMEM 访问则进入标签比较(tag-comparison)阶段。
  4. 在标签阶段,GMEM 的地址标签与目标集合(target set)中存储的标签进行对比,以确定数据是否驻留在 L1 中。
  5. 命中(Hit):请求直接从数据数组中获得服务(就像 SMEM 一样)。
  6. 未命中(Miss):请求传播至 L2(如有必要,甚至更远,直到 GMEM 或对等 GPU 内存)。当数据返回时,它会被缓存到 L1 中,替换(evicting)现有的一行,并并行地发送回发起请求的线程束。
    这就是我刚才描述的系统:
    l1-2.png
    图 13:L1 缓存模型
    让我们再深入一层,详细查看标签阶段(tag stage)和数据阶段(data stage):

kway-2.png
图 14:k 路组关联缓存组织的分解
当一个 GMEM(全局内存) 地址进入标签阶段时,命中/未命中(hit/miss)逻辑按如下方式展开:

  1. 标签阶段接收 GMEM 地址。
  2. 提取集合 ID 位(set id bits),并检查该集合中的所有缓存行(标签)。
  3. 如果发现标签匹配(潜在的缓存命中):
    ○ 检查该行的有效性标志(validity flags)。
    ○ 如果无效 → 视为缓存未命中(继续执行步骤 4)。
    ○ 如果有效 → 从数据数组中提取所请求的分区(sectors),并交付至线程束的寄存器中。
  4. 如果未发现匹配(缓存未命中),请求被路由至内存层级结构的其余部分(L2 及更高层级)。
    ○ 当数据从 L2 返回时,它被存储在该集合中,并根据替换策略(例如伪 LRU 算法)驱逐(evicting)现有的某一行,同时并行地交付给发起请求的线程束。
    注意,L2 缓存与 L1 并没有太大区别,除了它是全局的(而非每个 SM 独立)、容量大得多(具有更高的关联度)、被划分为由横截(crossbar)连接的两个切片,并且支持更细致的持久化和缓存策略。
    至此,我们已经涵盖了理解后续章节所需的关键 GPU 硬件组件。
    📝 GPU 世代间的梯度:
    我之前提到过,理解 Hopper 是深入了解 NVIDIA GPU 未来和过去世代的绝佳基础。
    到目前为止,最大的世代跨越是从 Ampere → Hopper,引入了:
    • 分布式共享内存 (DSMEM):在整个 GPC 的 SMEM 之间,实现加载、存储和原子操作的直接 SM 到 SM 通信。
    • TMA (张量内存加速器):用于异步张量数据移动(GMEM ↔ SMEM, SMEM ↔ SMEM)的硬件单元。
    • 线程块集群 (Thread Block Clusters):一种新的 CUDA 编程模型抽象,用于跨 SM 对块进行分组。
    • 异步事务屏障 (Asynchronous transaction barriers):拆分式屏障,计数事务(字节数)而非仅仅是线程数。
    Ampere (例如 A100) 自身也引入了几个关键特性:
    • 张量核心 (Tensor Cores) 支持 tf32 和 bf16。
    • 异步拷贝 (GMEM → SMEM),具有两种模式:绕过 L1 和访问 L1。
    • 异步屏障(在共享内存中由硬件加速)。
    • CUDA 任务图 (CUDA task graphs):它是 PyTorch 中 CUDA graphs 的基础,减少了 CPU 启动和网格初始化开销。
    • 通过 CUDA 协作组 (CUDA Cooperative Groups) 暴露的线程束级规约指令(实现了单步、整数数据类型的线程束范围规约,无需 shuffle 模式)。

Oracle 11g R2(版本号 11.2.0.4)是企业常用的数据库版本,oracle11.2.0.4.exe是它的 Windows 安装包(其实是 .exe格式的 Oracle Universal Installer)。

一、准备工作

  1. 下载安装包

    安装包下载:https://pan.quark.cn/s/c3fbf7e602b4

  2. 硬件和系统要求

    • 操作系统:Windows Server 2008 / Windows 7 / Windows 10(64位推荐)。
    • 内存至少 2GB(最好 4GB 以上)。
    • 磁盘空间至少 15GB(Oracle 软件和示例数据库都需要空间)。
  3. 关闭不必要软件

    • 关闭杀毒软件(安装过程中可能被拦截)。
    • 关闭其他占用大量内存的程序。

二、安装 Oracle 11.2.0.4

  1. 双击运行安装包

    • 双击 oracle11.2.0.4.exe,弹出安装向导。
    • 如果是 Windows 10/11,可能会提示“允许此应用对你的设备进行更改吗?” → 点  “是”
  2. 配置安全更新(可选)

    • 邮箱和密码可不填(只是接收 Oracle 的安全公告)。
    • 取消勾选“我希望通过 My Oracle Support 接收安全更新”。
    • 点  “下一步”
  3. 选择安装类型

    • 一般选  “创建和配置数据库” (会自动帮你装好数据库实例)。
    • 如果只是装软件不建库,选“仅安装数据库软件”。
    • 点  “下一步”
  4. 选择系统类

    • 桌面电脑选  “桌面类”
    • 服务器选  “服务器类”
    • 点  “下一步”
  5. 典型安装配置

    • Oracle 基目录:默认 C:\app\用户名\product\11.2.0\dbhome_1(可改路径)。
    • 全局数据库名:默认 orcl(建议不改,后面连接要用这个名字)。
    • 管理口令:设置一个密码(记住,后面登录用)。
    • 点  “下一步”
  6. 先决条件检查

    • 安装程序会自动检测系统是否满足要求。
    • 如果有报错(比如缺少补丁),先解决再继续。
    • 没问题就点  “下一步”
  7. 安装概要

    • 核对安装路径、数据库名等信息。
    • 确认无误点  “安装”
  8. 等待安装完成

    • 进度条走完,会弹出“Database Configuration Assistant”窗口,创建数据库实例。
    • 这一步会自动启动监听器和数据库服务。
    • 完成后点  “确定”

三、首次连接数据库

  1. 打开 SQL*Plus

    • 在开始菜单找到  “Oracle – OraDb11g_home1” → “应用程序开发” → “SQL Plus”
  2. 登录数据库

    • 用户名:sys as sysdba
    • 密码:刚才设置的密码
    • 主机字符串留空(本地连接)。
    • 登录成功后,提示符会变成 SQL>
  3. 简单测试

    • 输入 select * from v$version;回车,能看到 Oracle 版本信息。

基于 YOLOv8 的边坡排水沟堵塞智能检测系统设计与工程实现 [目标检测完整源码]

一、问题背景:为什么要“自动识别排水沟堵塞”?

在山区公路、水利工程、高边坡治理等场景中,排水沟是否畅通直接关系到边坡稳定性与工程安全。一旦排水沟被泥沙、落石、杂物堵塞,极易在降雨条件下引发:

  • 边坡渗水压力骤增
  • 局部冲刷、塌陷
  • 滑坡、泥石流等次生灾害

传统的排水沟巡检主要依赖人工踏勘或定期巡查,不仅效率低、覆盖面有限,在雨后或危险区域甚至存在明显的安全隐患。

随着无人机巡检、固定监控摄像头的普及,现场已经具备了大量图像与视频数据,关键问题转变为:

能否利用计算机视觉技术,自动识别排水沟是否存在堵塞风险?
在这里插入图片描述

源码下载与效果演示

哔哩哔哩视频下方观看:
https://www.bilibili.com/video/BV1KZgHzJEhn/

在这里插入图片描述

包含:

📦完整项目源码

📦 预训练模型权重

🗂️ 数据集地址(含标注脚本


二、总体方案概述

本项目基于 YOLOv8 目标检测框架,构建了一套面向工程应用的 边坡排水沟堵塞智能识别系统,并通过 PyQt5 封装为可视化桌面工具,实现从模型到应用的完整闭环。

系统核心能力包括:

  • 对排水沟状态进行自动识别与分类
  • 支持图片 / 视频 / 摄像头等多种输入源
  • 实时可视化检测结果与置信度
  • 检测结果可保存、可复核、可二次分析

系统既可作为工程巡检辅助工具,也可作为YOLOv8 工程化实战示例用于教学与研究。
在这里插入图片描述


三、系统架构设计

整体系统采用“模型推理层 + 应用交互层”的分层设计:

┌──────────────┐
│  数据输入层  │  ← 图片 / 视频 / 摄像头 / 无人机
└──────┬───────┘
       │
┌──────▼───────┐
│ YOLOv8 推理层│  ← 堵塞目标检测
└──────┬───────┘
       │
┌──────▼───────┐
│ 结果解析模块 │  ← 类别 / 置信度 / 坐标
└──────┬───────┘
       │
┌──────▼───────┐
│ PyQt5 界面层 │  ← 可视化展示与交互
└──────────────┘

这种结构的优势在于:

  • 模型与界面解耦,便于后期替换或升级模型
  • 推理逻辑可独立部署为服务
  • UI 层只关注交互与展示,工程可维护性高
    在这里插入图片描述

在这里插入图片描述

四、检测目标与数据设计

4.1 检测类别定义

根据工程实际需求,将排水沟状态划分为三类:

类别编号含义说明
0排水沟畅通 / 正常
1存在局部遮挡或轻微淤积
2明显堵塞,影响排水功能

这种分级方式相比“是否堵塞”的二分类,更有利于风险评估与运维决策


在这里插入图片描述

4.2 数据集组织方式

采用 YOLO 标准数据集格式:

dataset/
├── images/
│   ├── train
│   ├── val
│   └── test
└── labels/
    ├── train
    ├── val
    └── test

标注文件使用 归一化坐标格式

class_id x_center y_center width height

这种结构与 Ultralytics YOLOv8 完全兼容,可直接用于训练与推理。


在这里插入图片描述

五、YOLOv8 模型训练与优化策略

5.1 为什么选择 YOLOv8?

YOLOv8 相比早期 YOLO 系列,在工程实践中具有明显优势:

  • Anchor-Free 设计,降低调参复杂度
  • 对小目标、细长结构更友好
  • 原生支持 ONNX / TensorRT 导出
  • 推理接口简洁,易于二次封装

对于排水沟这种形态不规则、尺度变化大的目标,YOLOv8 在精度与速度之间取得了良好平衡。


5.2 训练命令示例

yolo detect train \
  data=drain.yaml \
  model=yolov8s.pt \
  epochs=100 \
  batch=16 \
  imgsz=640

在实际训练中,重点关注以下指标:

  • mAP@0.5:整体检测能力
  • 混淆矩阵:不同堵塞等级的区分情况
  • 推理速度:是否满足实时性需求

在这里插入图片描述

六、推理流程与结果解析

YOLOv8 推理接口非常适合工程调用,核心代码如下:

from ultralytics import YOLO

model = YOLO("best.pt")
results = model("test.jpg", conf=0.3)

for r in results:
    for box in r.boxes:
        cls = int(box.cls)
        score = float(box.conf)
        print(cls, score)

每个检测框都包含:

  • 类别 ID
  • 置信度
  • 边界框坐标

这些信息会被进一步传递到 UI 层进行可视化渲染。


七、PyQt5 可视化系统设计

为了降低使用门槛,系统提供了完整的桌面界面,主要功能包括:

  • 一键加载图片或视频
  • 实时显示检测结果
  • 支持暂停、截图、结果保存
  • 自动管理输出目录

即便不具备深度学习背景,也可以通过界面直接完成检测任务。


在这里插入图片描述

八、应用场景与扩展方向

该系统可直接应用于:

  • 边坡巡检无人机数据分析
  • 水利设施日常运维
  • 智慧工地安全监测
  • 地质灾害风险辅助评估

在此基础上,还可以进一步扩展:

  • 与 GIS 系统联动,生成风险分布图
  • 接入报警规则,实现堵塞自动告警
  • 模型升级为分割任务,精确定位淤积区域

九、总结

本文从工程实际问题出发,完整介绍了一套 基于 YOLOv8 的边坡排水沟堵塞检测系统 的设计思路与实现路径。该系统不仅验证了 YOLOv8 在工程巡检场景下的实用价值,也展示了 “模型 + UI”一体化交付 的典型落地方式。

对于希望将目标检测真正应用到真实工程场景中的开发者而言,这类项目比单纯跑模型指标更具参考意义。

AI 不止于论文,更重要的是解决现实问题。

本文围绕边坡排水沟堵塞这一典型工程安全隐患,系统性地介绍了一个基于 YOLOv8 的智能检测解决方案。从问题背景、系统架构、数据与模型设计,到推理流程和可视化应用实现,完整展示了目标检测技术在实际工程场景中的落地路径。该系统兼顾检测精度、实时性与易用性,通过引入图形化界面有效降低了使用门槛,可直接服务于边坡巡检、水利运维和地质灾害预警等应用场景。整体实践表明,将先进的深度学习模型与工程化设计相结合,是推动智慧水利与智能巡检落地的关键方向。

基于 YOLOv8 的边坡排水沟堵塞智能检测系统设计与工程实现 [目标检测完整源码]

一、问题背景:为什么要“自动识别排水沟堵塞”?

在山区公路、水利工程、高边坡治理等场景中,排水沟是否畅通直接关系到边坡稳定性与工程安全。一旦排水沟被泥沙、落石、杂物堵塞,极易在降雨条件下引发:

  • 边坡渗水压力骤增
  • 局部冲刷、塌陷
  • 滑坡、泥石流等次生灾害

传统的排水沟巡检主要依赖人工踏勘或定期巡查,不仅效率低、覆盖面有限,在雨后或危险区域甚至存在明显的安全隐患。

随着无人机巡检、固定监控摄像头的普及,现场已经具备了大量图像与视频数据,关键问题转变为:

能否利用计算机视觉技术,自动识别排水沟是否存在堵塞风险?
在这里插入图片描述

源码下载与效果演示

哔哩哔哩视频下方观看:
https://www.bilibili.com/video/BV1KZgHzJEhn/

在这里插入图片描述

包含:

📦完整项目源码

📦 预训练模型权重

🗂️ 数据集地址(含标注脚本


二、总体方案概述

本项目基于 YOLOv8 目标检测框架,构建了一套面向工程应用的 边坡排水沟堵塞智能识别系统,并通过 PyQt5 封装为可视化桌面工具,实现从模型到应用的完整闭环。

系统核心能力包括:

  • 对排水沟状态进行自动识别与分类
  • 支持图片 / 视频 / 摄像头等多种输入源
  • 实时可视化检测结果与置信度
  • 检测结果可保存、可复核、可二次分析

系统既可作为工程巡检辅助工具,也可作为YOLOv8 工程化实战示例用于教学与研究。
在这里插入图片描述


三、系统架构设计

整体系统采用“模型推理层 + 应用交互层”的分层设计:

┌──────────────┐
│  数据输入层  │  ← 图片 / 视频 / 摄像头 / 无人机
└──────┬───────┘
       │
┌──────▼───────┐
│ YOLOv8 推理层│  ← 堵塞目标检测
└──────┬───────┘
       │
┌──────▼───────┐
│ 结果解析模块 │  ← 类别 / 置信度 / 坐标
└──────┬───────┘
       │
┌──────▼───────┐
│ PyQt5 界面层 │  ← 可视化展示与交互
└──────────────┘

这种结构的优势在于:

  • 模型与界面解耦,便于后期替换或升级模型
  • 推理逻辑可独立部署为服务
  • UI 层只关注交互与展示,工程可维护性高
    在这里插入图片描述

在这里插入图片描述

四、检测目标与数据设计

4.1 检测类别定义

根据工程实际需求,将排水沟状态划分为三类:

类别编号含义说明
0排水沟畅通 / 正常
1存在局部遮挡或轻微淤积
2明显堵塞,影响排水功能

这种分级方式相比“是否堵塞”的二分类,更有利于风险评估与运维决策


在这里插入图片描述

4.2 数据集组织方式

采用 YOLO 标准数据集格式:

dataset/
├── images/
│   ├── train
│   ├── val
│   └── test
└── labels/
    ├── train
    ├── val
    └── test

标注文件使用 归一化坐标格式

class_id x_center y_center width height

这种结构与 Ultralytics YOLOv8 完全兼容,可直接用于训练与推理。


在这里插入图片描述

五、YOLOv8 模型训练与优化策略

5.1 为什么选择 YOLOv8?

YOLOv8 相比早期 YOLO 系列,在工程实践中具有明显优势:

  • Anchor-Free 设计,降低调参复杂度
  • 对小目标、细长结构更友好
  • 原生支持 ONNX / TensorRT 导出
  • 推理接口简洁,易于二次封装

对于排水沟这种形态不规则、尺度变化大的目标,YOLOv8 在精度与速度之间取得了良好平衡。


5.2 训练命令示例

yolo detect train \
  data=drain.yaml \
  model=yolov8s.pt \
  epochs=100 \
  batch=16 \
  imgsz=640

在实际训练中,重点关注以下指标:

  • mAP@0.5:整体检测能力
  • 混淆矩阵:不同堵塞等级的区分情况
  • 推理速度:是否满足实时性需求

在这里插入图片描述

六、推理流程与结果解析

YOLOv8 推理接口非常适合工程调用,核心代码如下:

from ultralytics import YOLO

model = YOLO("best.pt")
results = model("test.jpg", conf=0.3)

for r in results:
    for box in r.boxes:
        cls = int(box.cls)
        score = float(box.conf)
        print(cls, score)

每个检测框都包含:

  • 类别 ID
  • 置信度
  • 边界框坐标

这些信息会被进一步传递到 UI 层进行可视化渲染。


七、PyQt5 可视化系统设计

为了降低使用门槛,系统提供了完整的桌面界面,主要功能包括:

  • 一键加载图片或视频
  • 实时显示检测结果
  • 支持暂停、截图、结果保存
  • 自动管理输出目录

即便不具备深度学习背景,也可以通过界面直接完成检测任务。


在这里插入图片描述

八、应用场景与扩展方向

该系统可直接应用于:

  • 边坡巡检无人机数据分析
  • 水利设施日常运维
  • 智慧工地安全监测
  • 地质灾害风险辅助评估

在此基础上,还可以进一步扩展:

  • 与 GIS 系统联动,生成风险分布图
  • 接入报警规则,实现堵塞自动告警
  • 模型升级为分割任务,精确定位淤积区域

九、总结

本文从工程实际问题出发,完整介绍了一套 基于 YOLOv8 的边坡排水沟堵塞检测系统 的设计思路与实现路径。该系统不仅验证了 YOLOv8 在工程巡检场景下的实用价值,也展示了 “模型 + UI”一体化交付 的典型落地方式。

对于希望将目标检测真正应用到真实工程场景中的开发者而言,这类项目比单纯跑模型指标更具参考意义。

AI 不止于论文,更重要的是解决现实问题。

本文围绕边坡排水沟堵塞这一典型工程安全隐患,系统性地介绍了一个基于 YOLOv8 的智能检测解决方案。从问题背景、系统架构、数据与模型设计,到推理流程和可视化应用实现,完整展示了目标检测技术在实际工程场景中的落地路径。该系统兼顾检测精度、实时性与易用性,通过引入图形化界面有效降低了使用门槛,可直接服务于边坡巡检、水利运维和地质灾害预警等应用场景。整体实践表明,将先进的深度学习模型与工程化设计相结合,是推动智慧水利与智能巡检落地的关键方向。

"夏哉ke":youkeit.xyz/15702/后
《不只是容器编排:基于JK-Kubernetes源码的云原生存储与网络深度整合》

在当今云原生技术迅猛发展的背景下,Kubernetes 已然成为容器编排的事实标准。然而,若将 Kubernetes 仅仅视为“容器调度器”,则大大低估了其作为云原生操作系统内核的深远意义。从 JK-Kubernetes 源码的视角深入观察,我们会发现:它真正构建的,是一个面向未来分布式系统的统一控制平面——尤其是在存储与网络这两大关键领域,Kubernetes 通过高度抽象与插件化机制,实现了前所未有的整合能力,正悄然重塑着现代应用基础设施的形态。

一、超越编排:Kubernetes 的“控制平面”革命

Kubernetes 的核心魅力,不在于它能启动多少个 Pod,而在于它定义了一套声明式、自愈、可扩展的控制平面模型。这种模型不仅适用于工作负载调度,更可延伸至存储卷、网络策略、服务拓扑等系统级资源。JK-Kubernetes 源码中清晰体现了这一设计理念:通过 CRD(自定义资源定义)与控制器模式,Kubernetes 将存储与网络从“外部依赖”转变为“一等公民”(first-class citizen),纳入其统一的管理语义中。

这意味着,无论是持久化卷的创建、挂载,还是跨节点网络策略的生效,都不再需要运维人员登录底层存储或网络设备进行手动配置,而是通过一个声明式的 YAML 文件提交,由 Kubernetes 控制器自动协调底层实现。这种“以应用为中心”的资源管理范式,极大降低了系统复杂性,提升了交付效率与一致性。

二、存储的云原生重构:从静态挂载到动态供给

传统 IT 架构中,存储往往是孤立、静态且高度耦合于硬件的。而在 Kubernetes 中,存储被抽象为 PersistentVolume(PV)PersistentVolumeClaim(PVC),实现了“申请即获得”的服务化体验。JK-Kubernetes 源码中,CSI(Container Storage Interface)的集成机制是这一变革的核心。

CSI 是一个标准化的存储插件接口,允许各类存储系统(如 Ceph、MinIO、AWS EBS、阿里云盘等)以独立组件的形式接入 Kubernetes。控制器通过监听 PVC 的创建事件,自动调用对应 CSI 驱动,完成卷的供给、格式化、挂载与绑定。整个过程对应用透明,且具备跨云可移植性。

更进一步,Kubernetes 还支持存储类(StorageClass) 的动态供给机制。管理员可定义不同性能等级的存储策略(如“高IO型”、“冷数据归档型”),开发者只需声明需求,系统即可自动匹配最合适的后端资源。这种“按需分配、自动调度”的能力,正是云原生存储区别于传统存储的根本所在。

此外,CSI 的演进还推动了有状态应用的云原生化。过去难以容器化的数据库、消息队列等组件,如今可在 Kubernetes 上实现自动扩缩容、故障迁移与备份恢复,真正享受云原生的弹性红利。

三、网络的统一治理:从连通性到策略化控制

如果说存储的挑战在于“持久化”,那么网络的挑战则在于“动态性”与“安全性”。在微服务架构下,服务数量激增、拓扑频繁变更,传统基于 IP 和端口的静态防火墙规则早已难以为继。Kubernetes 通过 CNI(Container Network Interface)与网络策略(NetworkPolicy),构建了一套面向服务的智能网络治理体系。

在 JK-Kubernetes 源码中,CNI 的设计体现了“插件化即生态”的哲学。无论底层是 Flannel 的覆盖网络、Calico 的 BGP 路由,还是 Cilium 的 eBPF 高性能数据面,Kubernetes 均通过统一的 CNI 接口进行集成。这意味着企业可以在不修改应用逻辑的前提下,灵活切换网络方案,适配不同性能与安全需求。

而网络策略的引入,则将安全控制从“边界防御”推进到“零信任微隔离”。通过定义 Pod 级别的入站与出站规则,企业可实现服务间的最小权限访问控制。例如,数据库服务仅允许来自特定应用命名空间的连接,有效遏制横向移动攻击。尽管默认策略需配合支持策略的 CNI 插件(如 Calico、Cilium)才能生效,但 Kubernetes 提供的声明式语法,为高级安全能力奠定了标准化基础。

更令人期待的是,随着 Service MeshGateway API 的发展,Kubernetes 正在将 L7 层流量(如 HTTP 路由、熔断、鉴权)也纳入其网络治理范畴。未来,Kubernetes 有望成为集 L3-L7 于一体的全栈网络控制平面,真正实现“服务即网络”的愿景。

四、整合的价值:构建统一的云原生基座

Kubernetes 对存储与网络的深度整合,其意义远超技术本身。它标志着企业 IT 正从“多系统拼接”迈向“统一平台治理”的新时代。过去,存储、网络、计算各自为政,运维需跨多个控制台操作,容易出错且难以审计。而如今,在 Kubernetes 的统一 API 模型下,所有资源均可通过 GitOps 流程进行版本化、自动化管理,实现真正的“基础设施即代码”(IaC)。

这种整合也带来了显著的经济与组织效益:

  • 降低运维复杂度:减少跨团队协作成本,提升交付速度;
  • 提升资源利用率:通过统一调度,避免存储与计算资源的孤岛浪费;
  • 增强安全合规性:策略集中管理,审计轨迹完整可追溯;
  • 加速云原生转型:为微服务、Serverless、AI 工作负载提供一致的运行时环境。

五、结语:云原生的“操作系统”正在成型

JK-Kubernetes 源码不仅是一段程序,更是一种技术哲学的体现——通过声明式 API 与控制器模式,将复杂系统分解为可组合、可扩展、自愈的组件单元。在这一架构下,存储与网络不再是“附加功能”,而是与计算同等重要的核心支柱。

当我们将目光从“容器编排”移开,转向其背后对存储与网络的深度整合时,会发现 Kubernetes 正在构建一个属于云原生时代的“操作系统”:它不直接提供硬件,却定义了如何使用硬件;它不实现所有功能,却提供了统一的治理语言。未来,随着 CSI、CNI、Gateway API 等标准的持续演进,Kubernetes 将进一步巩固其作为云原生基础设施中枢的地位,成为企业数字化转型不可或缺的“数字底座”。

理解并掌握这一整合逻辑,不仅是技术进阶的路径,更是把握未来云计算格局的关键所在。在。

Oracle 11g R2(版本号 11.2.0.4)是企业常用的数据库版本,oracle11.2.0.4.exe是它的 Windows 安装包(其实是 .exe格式的 Oracle Universal Installer)。

一、准备工作

  1. 下载安装包

    安装包下载:https://pan.quark.cn/s/c3fbf7e602b4

  2. 硬件和系统要求

    • 操作系统:Windows Server 2008 / Windows 7 / Windows 10(64位推荐)。
    • 内存至少 2GB(最好 4GB 以上)。
    • 磁盘空间至少 15GB(Oracle 软件和示例数据库都需要空间)。
  3. 关闭不必要软件

    • 关闭杀毒软件(安装过程中可能被拦截)。
    • 关闭其他占用大量内存的程序。

二、安装 Oracle 11.2.0.4

  1. 双击运行安装包

    • 双击 oracle11.2.0.4.exe,弹出安装向导。
    • 如果是 Windows 10/11,可能会提示“允许此应用对你的设备进行更改吗?” → 点  “是”
  2. 配置安全更新(可选)

    • 邮箱和密码可不填(只是接收 Oracle 的安全公告)。
    • 取消勾选“我希望通过 My Oracle Support 接收安全更新”。
    • 点  “下一步”
  3. 选择安装类型

    • 一般选  “创建和配置数据库” (会自动帮你装好数据库实例)。
    • 如果只是装软件不建库,选“仅安装数据库软件”。
    • 点  “下一步”
  4. 选择系统类

    • 桌面电脑选  “桌面类”
    • 服务器选  “服务器类”
    • 点  “下一步”
  5. 典型安装配置

    • Oracle 基目录:默认 C:\app\用户名\product\11.2.0\dbhome_1(可改路径)。
    • 全局数据库名:默认 orcl(建议不改,后面连接要用这个名字)。
    • 管理口令:设置一个密码(记住,后面登录用)。
    • 点  “下一步”
  6. 先决条件检查

    • 安装程序会自动检测系统是否满足要求。
    • 如果有报错(比如缺少补丁),先解决再继续。
    • 没问题就点  “下一步”
  7. 安装概要

    • 核对安装路径、数据库名等信息。
    • 确认无误点  “安装”
  8. 等待安装完成

    • 进度条走完,会弹出“Database Configuration Assistant”窗口,创建数据库实例。
    • 这一步会自动启动监听器和数据库服务。
    • 完成后点  “确定”

三、首次连接数据库

  1. 打开 SQL*Plus

    • 在开始菜单找到  “Oracle – OraDb11g_home1” → “应用程序开发” → “SQL Plus”
  2. 登录数据库

    • 用户名:sys as sysdba
    • 密码:刚才设置的密码
    • 主机字符串留空(本地连接)。
    • 登录成功后,提示符会变成 SQL>
  3. 简单测试

    • 输入 select * from v$version;回车,能看到 Oracle 版本信息。

基于 YOLOv8 的边坡排水沟堵塞智能检测系统设计与工程实现 [目标检测完整源码]

一、问题背景:为什么要“自动识别排水沟堵塞”?

在山区公路、水利工程、高边坡治理等场景中,排水沟是否畅通直接关系到边坡稳定性与工程安全。一旦排水沟被泥沙、落石、杂物堵塞,极易在降雨条件下引发:

  • 边坡渗水压力骤增
  • 局部冲刷、塌陷
  • 滑坡、泥石流等次生灾害

传统的排水沟巡检主要依赖人工踏勘或定期巡查,不仅效率低、覆盖面有限,在雨后或危险区域甚至存在明显的安全隐患。

随着无人机巡检、固定监控摄像头的普及,现场已经具备了大量图像与视频数据,关键问题转变为:

能否利用计算机视觉技术,自动识别排水沟是否存在堵塞风险?
在这里插入图片描述

源码下载与效果演示

哔哩哔哩视频下方观看:
https://www.bilibili.com/video/BV1KZgHzJEhn/

在这里插入图片描述

包含:

📦完整项目源码

📦 预训练模型权重

🗂️ 数据集地址(含标注脚本


二、总体方案概述

本项目基于 YOLOv8 目标检测框架,构建了一套面向工程应用的 边坡排水沟堵塞智能识别系统,并通过 PyQt5 封装为可视化桌面工具,实现从模型到应用的完整闭环。

系统核心能力包括:

  • 对排水沟状态进行自动识别与分类
  • 支持图片 / 视频 / 摄像头等多种输入源
  • 实时可视化检测结果与置信度
  • 检测结果可保存、可复核、可二次分析

系统既可作为工程巡检辅助工具,也可作为YOLOv8 工程化实战示例用于教学与研究。
在这里插入图片描述


三、系统架构设计

整体系统采用“模型推理层 + 应用交互层”的分层设计:

┌──────────────┐
│  数据输入层  │  ← 图片 / 视频 / 摄像头 / 无人机
└──────┬───────┘
       │
┌──────▼───────┐
│ YOLOv8 推理层│  ← 堵塞目标检测
└──────┬───────┘
       │
┌──────▼───────┐
│ 结果解析模块 │  ← 类别 / 置信度 / 坐标
└──────┬───────┘
       │
┌──────▼───────┐
│ PyQt5 界面层 │  ← 可视化展示与交互
└──────────────┘

这种结构的优势在于:

  • 模型与界面解耦,便于后期替换或升级模型
  • 推理逻辑可独立部署为服务
  • UI 层只关注交互与展示,工程可维护性高
    在这里插入图片描述

在这里插入图片描述

四、检测目标与数据设计

4.1 检测类别定义

根据工程实际需求,将排水沟状态划分为三类:

类别编号含义说明
0排水沟畅通 / 正常
1存在局部遮挡或轻微淤积
2明显堵塞,影响排水功能

这种分级方式相比“是否堵塞”的二分类,更有利于风险评估与运维决策


在这里插入图片描述

4.2 数据集组织方式

采用 YOLO 标准数据集格式:

dataset/
├── images/
│   ├── train
│   ├── val
│   └── test
└── labels/
    ├── train
    ├── val
    └── test

标注文件使用 归一化坐标格式

class_id x_center y_center width height

这种结构与 Ultralytics YOLOv8 完全兼容,可直接用于训练与推理。


在这里插入图片描述

五、YOLOv8 模型训练与优化策略

5.1 为什么选择 YOLOv8?

YOLOv8 相比早期 YOLO 系列,在工程实践中具有明显优势:

  • Anchor-Free 设计,降低调参复杂度
  • 对小目标、细长结构更友好
  • 原生支持 ONNX / TensorRT 导出
  • 推理接口简洁,易于二次封装

对于排水沟这种形态不规则、尺度变化大的目标,YOLOv8 在精度与速度之间取得了良好平衡。


5.2 训练命令示例

yolo detect train \
  data=drain.yaml \
  model=yolov8s.pt \
  epochs=100 \
  batch=16 \
  imgsz=640

在实际训练中,重点关注以下指标:

  • mAP@0.5:整体检测能力
  • 混淆矩阵:不同堵塞等级的区分情况
  • 推理速度:是否满足实时性需求

在这里插入图片描述

六、推理流程与结果解析

YOLOv8 推理接口非常适合工程调用,核心代码如下:

from ultralytics import YOLO

model = YOLO("best.pt")
results = model("test.jpg", conf=0.3)

for r in results:
    for box in r.boxes:
        cls = int(box.cls)
        score = float(box.conf)
        print(cls, score)

每个检测框都包含:

  • 类别 ID
  • 置信度
  • 边界框坐标

这些信息会被进一步传递到 UI 层进行可视化渲染。


七、PyQt5 可视化系统设计

为了降低使用门槛,系统提供了完整的桌面界面,主要功能包括:

  • 一键加载图片或视频
  • 实时显示检测结果
  • 支持暂停、截图、结果保存
  • 自动管理输出目录

即便不具备深度学习背景,也可以通过界面直接完成检测任务。


在这里插入图片描述

八、应用场景与扩展方向

该系统可直接应用于:

  • 边坡巡检无人机数据分析
  • 水利设施日常运维
  • 智慧工地安全监测
  • 地质灾害风险辅助评估

在此基础上,还可以进一步扩展:

  • 与 GIS 系统联动,生成风险分布图
  • 接入报警规则,实现堵塞自动告警
  • 模型升级为分割任务,精确定位淤积区域

九、总结

本文从工程实际问题出发,完整介绍了一套 基于 YOLOv8 的边坡排水沟堵塞检测系统 的设计思路与实现路径。该系统不仅验证了 YOLOv8 在工程巡检场景下的实用价值,也展示了 “模型 + UI”一体化交付 的典型落地方式。

对于希望将目标检测真正应用到真实工程场景中的开发者而言,这类项目比单纯跑模型指标更具参考意义。

AI 不止于论文,更重要的是解决现实问题。

本文围绕边坡排水沟堵塞这一典型工程安全隐患,系统性地介绍了一个基于 YOLOv8 的智能检测解决方案。从问题背景、系统架构、数据与模型设计,到推理流程和可视化应用实现,完整展示了目标检测技术在实际工程场景中的落地路径。该系统兼顾检测精度、实时性与易用性,通过引入图形化界面有效降低了使用门槛,可直接服务于边坡巡检、水利运维和地质灾害预警等应用场景。整体实践表明,将先进的深度学习模型与工程化设计相结合,是推动智慧水利与智能巡检落地的关键方向。

整理 | 华卫

 

“世界上不会再出现第二个我这样的 CEO 了。”近日,英伟达联合创始人兼首席执行官黄仁勋(Jensen Huang)在一场私人访谈中这样说道。

 

据称,这场深度对话已经酝酿了三十年,将黄仁勋鲜为人知的一面展现在大众眼前。主持人 Jodi Shelton 与黄仁勋的职业交集始于三十余年前,彼时,图形处理器(GPU)尚未掀起席卷全球的 AI 革命。从加速计算的源头到生成式 AI 的前景,这场对话堪比一堂远见大师课。

 

在访谈中,黄仁勋表示,从某种意义上说,英伟达其实有 61 位 “CEO”。过去这些年,包括他在内,很多人都犯过严重的错误,但在英伟达,从来没有人因为犯错而被解雇。“我们打造了一个足够安全的环境。”他还透露,CEO 这个职位,远比人们想象的要脆弱得多。“实际上,我们可能是公司里最脆弱的一群人。不过对我来说,承认这种脆弱,并不是什么难事。”

 

有意思的是,他提到,在很多方面,自己都算是一个 “不情愿的 CEO”。“公开演讲简直让我怕得要死。比起待在公司外面抛头露面,我更喜欢扎根在公司内部;比起发表演讲,我更喜欢安静做事;我甚至一点都不喜欢做主题演讲,但为了公司,我必须去做这些事。”

 

此外,黄仁勋称,英伟达的成功,绝不是靠产量取胜。“虽然是英伟达发明了 GPU,但从产量来看,我们其实是全球最小的 GPU 制造商。很多不知名的厂商,GPU 产量都比我们高。”而“没有终极目标” 这一点,对英伟达的发展真的起到了至关重要的作用。

 

对于五年后的世界,黄仁勋断言,英伟达和整个行业在 AI 领域的投入,必将彻底改变计算机的运作模式,未来的计算机,将从 “由人类编程” 进化为 “在人类引导下自主学习编程”。并且,100% 的工作岗位都会发生变化,但不会有 50% 的岗位消失。未来的趋势不会是就业岗位减少,反而是大家会变得比现在更忙碌。并且,那些现在没有工作的人,很可能会因为 AI 获得谋生的手段。

 

网友们纷纷就此次访谈对黄仁勋评价道,“我从未见过他如此坦诚直率,真是不可思议。”

 

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

“走了整整 33 年才看到成果”

Jodi Shelton:大众其实特别好奇像你这样的人,毕竟你们正在定义科技的未来,而科技的未来就是整个世界的未来。所以我们想做的,是挖掘你成功光环背后的个人经历以及支撑你走到今天的价值观。你对这个定位怎么看?

 

黄仁勋:说实话,不太喜欢。

 

Jodi Shelton:真的不喜欢吗?可你现在是名人啊,大家都想了解名人的故事。

 

黄仁勋:我从不觉得自己是名人,也根本不是什么名人。我只是恰好执掌着一家举足轻重的企业,是这家堪称史上最成功的科技公司之一的 CEO。很早以前,我们就做了一些正确的决策。回溯到 1993 年,我们就立志要重塑计算行业,而且对于计算机的架构,我们有着自己独到的见解。在很长一段时间里,这个观点都不被看好,甚至颇具争议。要知道,当时整个行业的焦点都在微处理器和 CPU 上。说起来,我和你就是在那个时期认识的。我们早在 1993 年底或者 1994 年就相识了,对吧?从那时起,英伟达就在做我们现在依然在做的事:重塑计算。

 

Jodi Shelton:没错,我记得很清楚。那时候的硅谷,正处在 CPU 为王、摩尔定律大行其道、个人电脑革命如火如荼的年代。

 

黄仁勋:是啊。而且我们早期的客户,全都是 PC 芯片组领域的初创公司。这些企业可以说是半导体行业辉煌版图的奠基者,像 Cirrus Logic、S3 Graphics、Western Digital、Trident Microsystems,你还记得这些名字吗?

 

Jodi Shelton:当然记得。

 

黄仁勋:这些公司,称得上是英伟达的 “前辈”。而现在,我们依然在这条路上前行,致力于打造一种全新的计算模式。这条路,我们走了整整 33 年才看到成果。我只是恰好成为了这家公司的 CEO,仅此而已。

 

Jodi Shelton:可能对你来说,这一切是水到渠成,但对整个世界而言,英伟达的崛起堪称横空出世。大概从 2023 年 11 月起,整个世界的科技格局都因你们而改变。你是怎么看待这次转型的?

 

黄仁勋:要知道,想要创造未来,就必须在未来到来之前,先置身于未来之中。坦诚地说,从我们发明 CUDA 技术、推出相关产品的那一刻起,就已经踏上了通往未来的道路。英伟达最让我骄傲的一点是:我们不仅擅长技术发明,更擅长把技术转化为产品推向市场。世界上有太多的公司、科研人员和发明家,他们确实创造出了先进的技术,但最后往往只能感慨 “这个技术我早就做出来了”、“这个想法我早就有了”。每次听到这种话,我都觉得很惋惜。这些优秀的发明家,遗憾的是没能遇上同样优秀的产品创新者。

 

所谓产品创新者,就是能把一项技术发明转化为一款能推向市场的成熟产品的人。而这还不够,你还得为产品制定精准的市场策略,甚至需要亲手培育出一个全新的市场,让市场能够接纳你研发的产品和制定的策略。英伟达就是这样一家公司,我们具备技术发明、产品创新、策略制定、生态构建乃至市场培育的全链条能力,而且我们已经多次成功做到了这一点。所以对我来说,这种 “身处未来” 的状态,已经持续了很长时间。

 

Jodi Shelton:确实如此。

 

黄仁勋:很久以前,我们有一个战略,现在已经不怎么提了,叫 “CUDA 无处不在”。很多人都听过我当年四处推广 CUDA 的故事,跑遍各大高校、初创企业和成熟企业。有时候,台下听众加起来也就三个人,但我还是会掏出笔记本电脑,为他们演示 CUDA,告诉他们这项技术将如何改变世界。我走访了无数科研机构和实验室,参加了数不清的行业会议,推广 CUDA 的次数,估计比世界上任何人都多。长久以来,我一直沉浸在这样的 “未来图景” 里,讲的故事多了,甚至会产生一种 “未来已经到来” 的错觉。

 

Jodi Shelton:确实有这种感觉。

 

黄仁勋:所以现在看到这一切成为现实,我依然满心欢喜。而且在我看来,这一切其实并不意外,因为支撑英伟达发展的是计算机科学领域最根本的底层逻辑,不是靠一时的直觉,也不是凭主观的喜好。从很多方面来说,如今的成果是一种必然。但我想说的是,当你把一件事物的速度提升一千倍,或者规模扩大一千倍、体积缩小一千倍时,无论这件事物原本是什么,都会发生质的飞跃。而这种质变最终带来的结果,往往是超乎想象的。

 

我们早就预见到深度学习技术有着巨大的扩展潜力,这也是我们举全公司之力押注这一领域的原因。我们知道,AlexNet(深度卷积神经网络)绝不会是深度学习的终点,这种技术架构天生具备极强的可扩展性,再加上全球海量的数据资源,深度学习的爆发是水到渠成的事。不过我当时也清楚,有一项技术会成为我们前进路上的障碍,那就是无监督学习,或者说自监督学习,也就是让计算机摆脱人工标注数据的束缚,实现自主学习。因为人工标注数据的效率,迟早会成为技术发展的瓶颈。而当无监督学习技术取得突破的那一刻,我就知道,我们的时代来了。

 

就在不久前的投资者路演上,还有人跟我说,我当时就明确跟他们提过这场 “质变”。如果你去回看当时的财报电话会议,就会发现每当谈到对世界至关重要的技术话题时,我都会把这一点讲得非常透彻。在每一场投资者路演,在每一个我演讲的场合,我都会强调这个观点。如今,无监督学习技术确实取得了重大突破,深度学习的规模效应也彻底释放出来,我们才算真正驶入了发展的快车道。但即便如此,这项技术如今能解决的问题,依然让我感到惊喜。我们早就预料到技术会发生质变、计算平台会迎来变革,但我们没想到,变革的成果如此丰硕。

 

我们现在能够解读蛋白质的 “语言”、细胞的 “语言”、量子的 “语言”,能够读懂世间万物的各种表征形式。过去我们用来描述信息的方式,如今正在被彻底重塑。从几何图形、纹理材质到如今的 3D 高斯和 3D 点云,信息的呈现形式日新月异。这种感觉就好像人类突然变得无比聪慧,连英语这种语言体系都随之改变了。我们不再沿用过去的词汇、语法和句式,因为我们的智慧已经进化到了一个全新维度,能够用一种全新的方式进行交流。或许未来人类的交流方式会变成简单的 “嘀嘀嗒嗒” 的信号声。这让我想起了电影《降临》里的场景,人类突然开始用抽象的图形进行沟通,仅仅通过图形就能传递海量的信息,实现更深层次、更高效率的交流。

 

最不可思议的是,我们现在解决的很多问题在过去是完全无法想象的,而且解决问题的速度也远超以往。过去我们常说摩尔定律,而现在英伟达的发展速度完全可以用 “英伟达定律” 来形容,比过去快了整整一千倍。未来十年必将是波澜壮阔的十年,光是想想就让人无比兴奋。

 

Jodi Shelton:要做到你所做的这些事,要能够预见未来,并且坚信未来一定会到来,需要何等强大的自信啊。就像你之前说的,我们 1994 年就认识了,这么多年来,你一直都是这个样子。

 

黄仁勋:是啊,我记得很清楚。

 

Jodi Shelton:那时候我才二十几岁。你应该比我大一点吧?

 

黄仁勋:当时我差不多 29 岁,快 30 岁了。

英伟达有 61 位“CEO”,从没有人因犯错而被解雇

Jodi Shelton:我还记得我们第一次见面的场景,当时我是为了给杂志写稿采访你。我问你:“黄仁勋,硅谷人才流动频繁,很多人来了又走,你会担心这个问题吗?” 毕竟当时很多 CEO 都在抱怨这件事。而那时你才 29 岁或 30 岁,你是这么回答我的:“英伟达既不是教堂,也不是监狱。想来的人可以来,想走的人也可以走。” 我当时听完特别震撼,心里想着:“这个人到底是谁啊?” 年纪轻轻,却有着如此的自信和智慧。我还听过一个类似的故事,张忠谋( Morris Chang)第一次见到你的时候,你当场就说:“我会成为你最大的客户,至少也是最大的客户之一。” 他当时的反应是:“哇,这小伙子可真有魄力。” 所以我很好奇,你这么年轻的时候,这份自信是从哪里来的?

 

黄仁勋:哈哈,你要知道,什么都懂其实也挺痛苦的,我开玩笑的。对了,张忠谋要是知道英伟达现在是台积电最大的客户,一定会很开心的。

 

Jodi Shelton:那是肯定的,他肯定会为你感到骄傲。

 

黄仁勋:我也为他感到骄傲。要知道,在个人电脑革命时期,英伟达就曾是台积电最大的客户。如今,我们再次成为了他们最大的客户,对此我感到非常欣慰。言归正传,我觉得一个人必须坚信自己所相信的东西。而且这份信念,不能建立在道听途说之上,不能因为别人说了什么,你就去相信什么。你必须认真思考,梳理出自己相信这件事的逻辑,并且把这些逻辑拆解成可靠的底层原则。之后,你还需要定期检验这些原则,确保你所秉持的信念、所付诸的行动,都是建立在坚实的基础之上的。

 

如果这个基础不够稳固,或者因为某些原因发生了变化,那就说明它可能并非真正的底层原则 ,也许它并没有锚定在物理规律或客观事实之上。一旦出现这种情况,你就要重新评估,然后及时调整方向。我一直都是这样做的。而且,如果你真心相信一件事,就应该付诸行动去实现它。我从 1993 年起就坚信我们正在做的事情,直到今天,这份信念依然没有改变。正因为坚信不疑,所以我才会不断地推演,不断地在脑海里进行逻辑梳理。我会持续复盘过去的决策,也会不断预判未来的趋势。

 

就像昨天我们开了那么多场会议,每场会议上,我都会重新梳理我们一路走来的逻辑。你会发现,过去的那些假设,有些是正确的,但也有些是错误的。正是因为我们足够灵活,能够根据实际情况及时调整方向,才最终走到了今天。所以,时常回头复盘、重新推演过往的决策,是一件很有意义的事,它能帮你更好地锻炼向前推演的能力。正因为我一直坚持这样做,所以我始终活在自己认定的真相里。直到现在,我依然觉得自己只是英伟达的一名员工。我非常在乎这家公司,但公司里有很多人都和我一样,对这家公司倾注了深厚的感情。

 

在一家治理完善的公司里,CEO 的角色定位是很明确的。CEO 需要向董事会汇报工作,而董事会则要对股东负责。如果 CEO 的工作表现没有达到董事会的预期,不管董事会有 12 位、13 位还是 15 位成员,他就会被解雇。所以说,CEO 其实也是公司这个组织里的一名员工。这就是为什么我说,英伟达既不是教堂,不是想来就能来;也不是监狱,不是想走都走不了。这种心态能让你始终保持脚踏实地,保持谦逊,保持锐意进取的状态,因为你必须每天都努力,才能对得起自己的这份工作。

 

有时候会有人问我:“黄仁勋,你热爱自己的工作吗?” 我会告诉他们,我并非每天都热爱这份工作,但我每天都会全力以赴去做好它。我觉得,这种态度源于两个方面:第一,我坚信自己是这份工作的最佳人选;第二,我必须每天都努力,才能配得上 “最佳人选” 这个身份。

 

Jodi Shelton:在大家眼里,你就是英伟达的代名词,英伟达就是你。这么多年下来,你已经和这家公司深度绑定了。

 

黄仁勋:我应该是英伟达内部被拍照最多的人吧。

 

Jodi Shelton:没错。不过,要是将来换了新的 CEO,这个人真的能接好你的班吗?

 

黄仁勋:世界上不会再出现第二个我这样的 CEO 了。原因很简单,我是被这家公司一步步培养起来的。刚创立英伟达的时候,我对怎么当 CEO、怎么做战略规划、怎么打造产品、怎么开创一个全新的行业,一窍不通。我只知道怎么融资,却不懂怎么和股东沟通,不了解股东、政策制定者、各国领导人以及企业管理者的想法,也不知道该如何把握员工的心态、如何打造企业文化,甚至连 “企业文化” 这个词到底意味着什么,我都无法准确界定,让我制定公司战略那更是天方夜谭。这就是我第一天接手工作时的真实状态。而在过去的 33 年里,我在这些领域都一步步做到了得心应手。

 

如果说这个世界上有谁能称得上是 “企业战略宗师” 或者 “行业开创者”,那这个人大概就是我这样一个小个子。我把自己的整个职业生涯都投入到学习这些能力上,而且我本身就是个好学生。除此之外,我对这份工作的投入程度和深厚感情,是很难通过招聘来复制的。在我心里,英伟达就像我的孩子一样,我对它倾注了全部的心血。我的家人也陪着我一起,为这家公司的成长付出努力。这种对公司的特殊情感,是很难被替代的。毕竟 33 年来,我见证了英伟达的每一次成功、每一次失败、每一次挫折,亲历了它做过的所有明智决策,也目睹了它犯下的各种错误。这种对公司的深刻理解和情感联结,不是随便招一个能力出众的人就能替代的。

 

不过从另一方面来说,英伟达的管理团队架构其实早就做好了准备。我现在有将近 60 位直接下属,他们中的每一个人,放到其他公司都能胜任世界级 CEO 的职位。我总是当着他们的面推演各种决策逻辑,我的每一个决定,都是在他们的注视下做出的,我会把背后的思考过程原原本本地讲给他们听。公司的每一次成功、每一次挫折、每一个挑战、每一场困境,我都会和他们一起复盘。所以从某种意义上说,英伟达其实有 61 位 “CEO”。他们每个人都对这家公司饱含深情,很多人已经在这里奋斗了 33 年。我认为,英伟达的成长模式是独一无二的,这也造就了它无可比拟的韧性。

 

Jodi Shelton:显然,你搭建的这套管理架构在行业内已经成了一段传奇,所有人都在谈论你这近 60 位直接下属。要让这样的架构顺畅运转,这些人肯定都得是万里挑一的顶尖人才。

 

黄仁勋:没错。

 

Jodi Shelton:他们不光要头脑聪明,毕竟硅谷从来不缺聪明人,更得是适配英伟达的顶尖人才。

 

黄仁勋:确实如此。

 

Jodi Shelton:那你能不能跟我说说,你是怎么筛选和培养这些人才的?另外,我记得你有个原则,找不到合适的人,就宁可让职位空着。我想到了 Colette Kress 的例子,你当时面试了 22 位首席财务官候选人,最终才选定了她。现在她在华尔街已经是一位传奇人物了。你当初是怎么选中她的?你选拔这类核心人才的标准是什么?

 

黄仁勋:在我看来,宁让职位空着,也不能让不合适的人占着位置,所以我从来不会急于招人。就算 CEO 的位置暂时空缺,或者某个副总裁职位没人接任,公司的运转也不会停滞。只要你坚信这一点,坚信 “空位胜于错配”,你就有足够的时间去寻找那个真正合适的人。这个合适的人选,需要满足很多条件,其中很重要的一点,就是你得发自内心地欣赏他、认可他。

 

我记得 Colette Kress 入职第一周的时候,就问过我:“黄仁勋,你希望我在首席财务官这个岗位上干多久?” 我告诉她:“只要我们还活着,只要死亡不将我们分开,你就一直干下去。” 因为任何其他答案都是没有意义的。这份工作没有所谓的 “截止日期”,唯一的终点,就是当她觉得英伟达不再适合自己的时候。这个原则不仅适用于 Colette,也适用于我那 60 位直接下属。我愿意为了等待合适的人,让职位空很久。而在这个过程中,公司依然会稳步向前。无论这个空缺的职位对应着什么使命、什么工作,大家都会主动顶上。退一步说,就算没人接手,我也会尽全力扛起这份责任,保证公司正常运转。

 

这就是我的用人哲学,永远不要让不合适的人占据岗位,耐心等待那个对的人出现。经常有人问我,什么样的员工才算优秀员工,什么样的管理者才算卓越管理者。说来奇怪,我其实没有标准答案。因为能走到我面前的人,都足够聪明、足够能干。你随便找一个首席财务官,我敢保证他绝对胜任本职工作。其他岗位的候选人也是如此。在我看来,英伟达之所以能创造奇迹,关键不在于单个人的能力有多强,而在于团队成员之间的 “化学反应”。更重要的是,这源于我们的企业品格。这种品格,才是一家伟大公司的核心竞争力。市面上有很多公司都在做芯片,虽然是英伟达发明了 GPU,但从产量来看,我们其实是全球最小的 GPU 制造商。

 

这话听起来可能有点不可思议,但事实就是如此,很多不知名的厂商,GPU 产量都比我们高。很明显,英伟达的成功,绝不是靠产量取胜。我认为,真正的秘诀在于我们独特的企业文化和企业品格、团队在逆境中凝聚在一起的力量。在外人看来,我们似乎总是一帆风顺,但其实研发 Grace Blackwell 芯片的过程,差点拖垮了整个公司。但我们硬是咬牙扛了过来。这个项目的复杂度和规模都是前所未有的,外界对我们的期望也高得离谱。我们最终不仅达标,甚至超出了所有人的预期,而支撑我们做到这一点的,100% 是企业品格。这不是靠智商,也不是靠勤奋就能实现的,毕竟这个世界上,聪明又努力的人太多了。

 

这种企业品格,是没法通过面试来筛选的。但我始终相信一件事:几乎任何人进入英伟达之后,都会被这种品格所感染、所塑造。这就是我们公司最神奇的地方:我们能够承受挫折,能够直面各种艰巨的挑战,并且一次次从困境中突围。很少有公司的团队能做到这一点。通常来说,当公司遭遇重大挑战后,总会有人因为心存不满离开,或者因为被当成 “背锅侠” 而被解雇。在团队合作中,出了问题总要有人承担责任,这是毋庸置疑的,就像一场球赛输了,我们必须清楚是谁失误丢了球。

 

在英伟达,我们打造了一个足够安全的环境。过去这些年,包括我在内,很多人都犯过严重的错误,这些失误大家都看在眼里,但从来没有人因为犯错而被解雇。久而久之,英伟达就形成了自己独有的文化和特质。这种文化的核心,就是包容、宽恕,以及从错误中学习。对我来说,有两件事至关重要:只要团队里的每一个人,都为了共同的目标拼尽了全力,这就足够了。

敢叫板 20 岁新锐的黄仁勋,也有至暗时刻?

Jodi Shelton:刚才聊到 “痛苦与磨砺” 的理念,你可以再深入谈谈吗?我最近听 Andy Karp 在播客里说,“人生的二十几岁,要么用来享乐,要么用来打拼事业”。你认同这个观点吗?当然,不是每个人都能成为帕兰提尔或者英伟达的 CEO,但对年轻人来说,想要在事业上有所成就,到底需要付出什么?你想给年轻人传递怎样的职业与成功之道?

 

黄仁勋:Andy 很睿智,总能说出一些深刻的人生哲理。不过我对这类说法,倒没那么执念。我一直很佩服张忠谋先生,他一直工作到 80 多岁,思维依然敏锐得像一把刀。如果要在维基百科里查 “大器晚成” 这个词,配图说不定就是他。能在人生最具创造力的阶段,持续奋斗 50 年,这难道不是一件幸事吗?我自己也倾向于这种人生轨迹。对我而言,投身于有价值的事业,远比用后 20 年的时间环游世界更有意义,当然,环游世界本身也没什么不好,只是我现在就已经在满世界奔波了。

 

不得不承认,二十几岁的我,确实更聪明、专注力更强、思维速度也更快。但那个年纪的人,往往缺少一样至关重要的东西,阅历沉淀出的智慧、处理复杂问题的分寸感、制定长远战略的眼光,以及长线思维的能力。这些能力,光靠读书是学不来的。现在的年轻人可以刷短视频,通过共情去感受别人的经历,算是一种间接的经验积累,这种模仿式学习确实有价值。但还有一样东西,是无法通过旁观习得的,那就是坚韧的意志,是直面痛苦与挫折时,懂得如何应对的底气;是熬过精神内耗、挺过煎熬时刻、战胜内心恐惧的勇气。

 

经营公司的过程中,恐惧是真实存在的。我们的决策,关乎数万人的生计。当公司发展不顺时,一个感受不到恐惧、焦虑和脆弱的领导者,反而是不合格的。如果对结果毫不在意,那未免也太冷漠了。而这些真切的感受和应对的能力,只有亲身经历过,才能真正掌握。所以我觉得,两种人生选择没有绝对的对错。年轻时打拼,确实精力充沛,可以熬夜加班,可以付出十倍的努力,更容易早早取得成功。但我现在身上拥有的东西,是三十岁时的我完全不具备的。

 

如今的我,思维速度虽然慢了,但依靠智慧和经验积累的思维模型,能更快地找到正确答案。就算和二十岁的年轻人同台竞争,我也有信心不输给他。他们未必能胜过现在的我。

 

Jodi Shelton:那我们来聊点更私人的话题吧。能不能说说你的童年?哪些高光或至暗的经历,对你如今的性格特质产生了直接影响?

 

黄仁勋:我从来不觉得自己是天赋异禀的人,智商也算不上出众。小时候入学需要参加考试,我当时的成绩确实很不错,那会儿的考试还是全国性的。我记得母亲总是逢人就说,我是个非常聪明的孩子。不管这话是不是真的,她反复的肯定,无形中给了我一种压力,我必须变得足够聪明。这件事让我意识到,无论是为人父母还是做管理,给身边的人或者整个公司设定一个超出常理的高目标,往往能激发他们的潜能,让他们迎难而上。当然,也有人会被这样的目标吓退,但对我而言,这种激励起到了积极的作用。这是我第一个想到的童年片段。

 

另一件事,是关于我母亲的。当年我们学习英语的时候,她其实根本不懂英文,而且我觉得她可能连高中都没毕业。但这丝毫没有妨碍她每天教我们学英语。你可能会觉得不可思议,一个完全不懂英语的人,怎么教孩子学英语?她的方法很简单:买一本韦伯斯特词典,照着单词的拼写规律,写下英文单词,再标注上中文释义,把纸对折做成单词卡,然后逼着我们背下来。我们的发音准不准确,她其实也无从判断。但这件事,让我学到了一个道理:一个人只要有足够坚定的意志,就算暂时不知道该怎么做,也不该停下脚步。很多事情,其实并没有想象中那么难。小时候的这段记忆,我一直记到现在。

 

还有一段经历,是我们搬到肯塔基州之后。我当时是学校里年纪最小的孩子,就读的奥尼塔浸会学院坐落在山顶。每天上学,我都得走下山坡,穿过一条河,再走过一片广阔的田野,才能到达那所小小的学校。那是 1973 年,我是整个镇上第一个出现的中国孩子。镇上的那些孩子都很野,每次我过吊桥的时候,他们都会找我的麻烦。那座吊桥的桥面是木板铺的,有些木板已经缺失了,桥下的河水很深。而那些孩子,就守在桥的另一头等我。那时候我才 9 岁。

 

Jodi Shelton:天哪,才 9 岁。眼前是一条河,一座破吊桥,桥对面还有等着找麻烦的孩子,这简直太糟糕了。

 

黄仁勋:是啊,但我每天都得走这条路去上学。这大概就是童年时期的 “痛苦与磨砺” 吧。每天早上都是这样。下午放学回家后,我还有任务:打扫卫生间。那时候家里的每个孩子都有分工,我哥哥当时 11 岁,他的活儿是去烟草农场干活,而我的工作就是打扫卫生间,每天都要做。

 

Jodi Shelton:你觉得当年那些找你麻烦的孩子,知道你现在的成就吗?

 

黄仁勋:奥尼塔浸会学院的校长最近还发邮件给我呢。他们每年都会给我寄圣诞礼物,知道我喜欢吃肯塔基风味的香肠肉汁配饼干。

 

Jodi Shelton:这个爱好是在肯塔基养成的吧?

 

黄仁勋:没错。我记得我 45 岁生日的时候,家人带我回了一趟母校。当年食堂里做饭的阿姨们居然还健在,特意回来给我做了一顿饭。

 

Jodi Shelton:天哪,这也太暖心了。

 

黄仁勋:真的特别感动。她们给我做了正宗的肯塔基香肠肉汁配饼干,味道还是小时候的样子。

 

Jodi Shelton:你的父母见证了你的成功吗?

 

黄仁勋:当然,他们现在身体还很好,特别为我骄傲。他们对我的事情了如指掌,我父亲会读所有和我相关的报道。要是看到有人说我的坏话,他还会生气。我总劝他别什么都看,不然天天都得生气,别理会那些负面新闻。

 

Jodi Shelton:挺有意思的。现在功成名就了,你会怀念那些还没这么受关注的日子吗?会想念那些平凡的小事吗?比如你很爱车,现在却没什么机会开车了吧?我记得你是我认识的人里,第一个也是唯一一个拥有柯尼赛格跑车的人。

 

黄仁勋:克里斯蒂安・冯・柯尼赛格真是个天才设计师,那辆车太棒了。启动的时候,引擎声和蝙蝠侠的座驾一模一样。而且启动它得按七个步骤,因为动力实在太强劲了,不能随便让别人碰。不过我现在已经没有那辆车了,也确实很少开车了。

 

Jodi Shelton:会想念开车的感觉吗?

 

黄仁勋:有一点吧。我现在还是会关注新车,比如新款的法拉利,每次看到都觉得很惊艳,这些车真的是工程学的杰作。

 

Jodi Shelton:确实很厉害。我去过法拉利的工厂,亲眼看到一辆车从工业器械一步步变成顶级消费品,现在甚至成了艺术品,这个过程太震撼了。

黄仁勋眼中五年后的世界

Jodi Shelton:如果五年后我们再坐在这里,你觉得到那时的世界会是什么样子?哪些变化会让我们最惊讶?

 

黄仁勋:如果我们回归底层逻辑,再结合现实的实用性和技术落地的规律来判断,有几件事是可以预见的。首先,英伟达和整个行业在 AI 领域的投入,必将彻底改变计算机的运作模式 ,未来的计算机,将从 “由人类编程” 进化为 “在人类引导下自主学习编程”。过去我们是手把手教计算机学日语,未来我们只需要告诉它 “去学日语” 就够了。未来的计算机,将能够处理比现在大十亿倍的问题规模。这个变化的影响之大,我们现在甚至无法完全想象,因为提出解决方案是一回事,而能否构想出需要解决的问题,就是另一回事了。很多问题之所以无法被解决,往往是因为我们连如何定义和描述它们都做不到。

 

未来,无论是数字生物学、物理科学、量子物理还是材料科学的复杂难题,都会变得容易攻克。就算是交通拥堵这种日常问题,也能得到极大改善。就拿智能电网来说,现在的电网存在大量能源浪费,AI 会精准计算出所需的能源量,实现按需分配,从根本上避免过度供应造成的损耗。AI 解决这些日常难题的能力,会让人惊叹不已。到那时,每一个科学领域都会被重塑,当下所有的难题都会被技术赋能、迎刃而解。工具的速度提升了,难题自然就显得 “渺小” 了。举个例子,如果飞机的速度能达到 10 马赫,整个世界就会变得 “小” 很多, 喷气式飞机的出现,其实已经让世界变小了。

 

英伟达制造的计算机也是如此,极致的运算速度让所有问题都变得更容易被解决。就像 OpenAI 的研究人员曾经说的:“为什么不把整个互联网的数据都喂给计算机呢?” 因为在算力爆发之后,全球互联网的数据量,突然就显得微不足道了。现在我们看互联网数据,也会觉得体量很小,原因就在这里。这种心态,未来会渗透到几乎所有的科学领域。过去人们会说 “这是个无解的难题”,未来大家只会觉得 “这事儿很简单”。五年后,每一位科学家、工程师、企业家和创新者,都会抱着这样的心态。曾经的难题变得简单,我们就能解决更多的问题。这是第一个必然结果。

 

第二个结果,就是企业的生产效率会实现质的飞跃。今天的难题变成明天的小事,供应链管理会变得无比顺畅,浪费现象基本消失;计算机的设计流程也会简化,我们可以尝试更多的方案。这并不是说我们会每年推出更多的产品,我们还是保持一年一款的节奏,但每一款产品都会经过更多次的迭代优化,最终呈现的成品会比现在好得多。这样一来,公司的效率会更高,利润会更丰厚,所有企业都会变得更赚钱,整个社会的财富也会随之增长。但还有一个值得深思的点:当所有我们能想到的问题都变得可以解决时,我们就会去探索更多新的问题。

 

所以,未来的趋势不会是就业岗位减少,反而是大家会变得比现在更忙碌。因为以前那些被认为 “不可能完成” 的任务,现在都摆上了台面;那些因为成本太高而无法开展的实验,现在都可以去尝试,AI 还会帮我们推进这些实验。只要我们有足够的想象力,所有搁置的难题,都会找到解决的路径。我可以做一个思想实验。现在我工作时,身边围绕着 60 位顶尖人才,而他们每个人又带着数千名精英。这些人在各自的领域里,能力都远超于我,对我来说,他们就像是 “领域内的人工超级智能”。但和他们合作,我完全没有障碍。现在我使用的 OpenAI、Gemini、Grok、Perplexity、Anthropic 这些 AI 工具,在很多方面也已经比我聪明了,但我每天都在和它们高效协作。

 

不过有一个很有意思的变化:以前我给团队布置一个问题,需要等两三天才能得到反馈和答案,这段时间里我可以思考下一步的计划 ,因为我的决策需要基于这些中间结果。但如果这些答案能在一秒钟内就反馈给我,会发生什么?我的工作节奏会变得无比紧凑,因为我会成为所有事情的关键节点。刚得到一个答案,立刻就要推导下一步,马上启动新的实验。你不觉得吗?现在信息技术的提速,已经让我们变得更忙碌了。信息、知识和答案的获取速度越来越快,我们作为决策节点,自然会比以往更忙。我觉得未来很多人都会有这种感受。

 

最后一点,对于那些没能赶上之前科技浪潮的人来说,AI 会填平技术鸿沟。我特别喜欢 “氛围编程” 这个概念,现在任何人都可以成为软件程序员,借助 AI 写出的代码,甚至比很多专业程序员的作品还要好。我很欣赏 Cursor 这家公司的成果,前几天还见到了 Lovable 的 CEO,他是个很厉害的人,他们的公司在瑞典。AI 会帮助那些在自己的领域很有天赋,但不懂如何用技术放大自身能力的人实现能力的跃迁。Lovable 的 CEO 就跟我说过,很多人用他们开发的软件创办了小公司,现在每年能赚 2300 万美元。这太不可思议了。这些人终于能融入全球经济体系,不再被技术门槛挡住去路,这一切都是 AI 的功劳。

 

五年后的世界,大家会拥有更有价值的工作,经济效率会大幅提升,GDP 有望实现增长,劳动力短缺的问题会得到缓解,通货膨胀也会回落。更多的科学领域会被开拓,更多的难题会被解决。当然,也有一些悲观的论调,认为 AI 会让一半的人失去工作。但我觉得,更可能发生的情况是:100% 的工作岗位都会发生变化,但不会有 50% 的岗位消失。而且,那些现在没有工作的人,很可能会因为 AI 获得谋生的手段。

 

当然,我们的技术会发生翻天覆地的变化,但这些技术层面的革新,反而不是最有意思的。五年后,计算机还是计算机,只是应用变得更智能了,本质上还是软件。我们依然会做电商,只是可能不用自己逛网站了,会有智能代理帮我们购物,但商品还是来自亚马逊这些平台。很多事情,其实都会保持原样。最后我还有一个小小的愿望或者说期待:希望我们在机器人和人形机器人领域的研究能结出硕果,希望未来每个人都能拥有属于自己的 R2-D2 和 C-3PO,它们可爱又贴心。就像在 GTC 大会上,我每次都会邀请迪士尼的机器人上台,那些机器人真的太萌了。

 

为什么不让每个人都拥有一个呢?我还希望迪士尼能把这些机器人做成周边商品,它们真的值得。我的宠物猫莫莫和库玛,也需要这样的 “宠物玩伴” 不是吗?我真心希望这个愿望能实现。现在有很多孤独的人,已经有不少人联系过我,希望能拥有可以在家陪伴自己的机器人,尤其是那些独居的老人。机器人能给他们带来陪伴和帮助,而且它们本身又那么可爱,这绝对是我们技术发展带来的意外之喜。

 

Jodi Shelton:如果以后有机器人帮我们做饭、打扫卫生,你还会像现在这样,饶有兴致地看着别人做饭吗?

 

黄仁勋:当然会。原因很简单,我现在完全有能力不用自己做饭,但我还是会选择下厨。我们完全可以雇很多佣人,但我们没有这么做。我和洛里一直都是两个人自己过日子。昨晚她做了墨西哥辣椒肉酱,味道棒极了,全程都是她一个人忙活的。以后我们大概率还会保持这样的生活。对我来说,最幸福的时刻,就是孩子们回家来,我们一起下厨做饭,喝喝小酒,这就是最完美的时光。

 

Jodi Shelton:一家人在厨房里忙活,这种亲密感真的太美好了。

 

黄仁勋:是啊,人生的幸福莫过于此。我们打拼奋斗,不就是为了这样的时刻吗?

“不爱演讲的黄仁勋”:CEO 是公司里最脆弱的一群人

Jodi Shelton:当一切尘埃落定,你希望后人如何记住你?

 

黄仁勋:首先,能被人记住,本身就是一件很幸运的事。我很庆幸,凭借英伟达的成就,凭借我们打造的事业,凭借我们在全球最重要的科技产业:人类最核心的工具 “计算机” 领域留下的印记,英伟达很可能会在我离开这个世界很久之后,依然对这个世界有着重要的意义。我很庆幸自己能和克里斯、柯蒂斯一起创立这家公司,很庆幸自己能一路学习成长,没有成为拖垮公司的那个短板,反而常常是推动公司走下去的一份力量。我们打造的这家企业,对整个世界都有着深远的影响,而不只是局限于某个行业或某个群体。

 

能做到这一点的人,在这个世界上并不多。我很庆幸自己作为创始人,能亲身参与并见证这一切,见证英伟达成长为如今的模样,见证它对全球各行各业产生实实在在的影响。公司里有很多已经工作了 33 年的老员工,他们的人生因为英伟达变得更加丰盈;现在甚至已经有第二代、第三代员工加入我们。我们在全球各地建立了自己的团队,我很荣幸能和这些员工并肩作战,分享他们一路走来的绝望与喜悦、希望与悲伤。这样的经历,并不是每个人都能拥有的。我为我们在中国的团队感到骄傲,为我们在印度的员工们由衷赞叹,也为欧洲、加拿大的团队感到欣慰。我们在加拿大的团队正在不断壮大。

 

我还希望有朝一日,英伟达能把业务拓展到南半球,让更多地区的人们,也能享受到我们今天所拥有的技术成果。昨天我还和人聊起我们在非洲开展的工作,聊到我们应该在拉美和东南亚投入更多精力。我真的为我们公司带来的这些影响感到自豪。所以,人们会怎么记住我?或许,他们会记得我是英伟达的创始人之一,是这家公司的缔造者之一。或许,还会记得我是个好人。

 

Jodi Shelton:这是毋庸置疑的。

 

黄仁勋:他们或许还会觉得,我是个风趣幽默的人,不喜欢端着架子。其实在很多方面,我都算是一个 “不情愿的 CEO”。比起待在公司外面抛头露面,我更喜欢扎根在公司内部;比起发表演讲,我更喜欢安静做事;我甚至一点都不喜欢做主题演讲,但为了公司,我必须去做这些事。我确实是个不太情愿的 CEO,但我绝对是个满腔热忱的英伟达建设者。只要是为了公司发展必须做的事,我都会全力以赴。说了这么多,其实我也不知道,人们最终会如何记住我。

 

Jodi Shelton:我觉得,看到好人获得成功,总是一件令人开心的事。这么多年来,看着你一路打拼,经历起起落落,最终收获成功,我真的由衷地为你高兴。你这一路走来,见过了形形色色的人。

 

黄仁勋:是啊,真的见过了太多人。我想提醒所有的 CEO,没有人能单枪匹马地成功。

 

Jodi Shelton:确实如此。

 

黄仁勋:我们虽然是 CEO,但这个位置总需要有人来坐。如果不是早年大家对我的提携与帮助,比如你一直不遗余力地宣传英伟达还有张忠谋奖带来的认可,这些都对我意义重大。张忠谋奖大概是我人生中获得的第一个真正有分量的奖项,直到今天,它对我来说依然意义非凡。这个奖项以他的名字命名,而且他还亲自参与了评选,这份认可真的让我铭记于心。还有那些和我们合作的企业,他们的慷慨相助,我也一直记在心里。

 

其实 CEO 这个角色,很多时候都需要寻求帮助。我已经记不清有多少次,我是这样开启一段对话的:“我需要你的帮助。” 很多时候,我是真的需要帮助,而且对方往往是唯一能帮到我的人。一路走来,很多人都慷慨地伸出援手,分享他们的知识,教我做事的方法,帮我解决棘手的难题。这或许才是 CEO 这个角色带给我的真正启示,这个职位远比人们想象的要脆弱得多。

 

Jodi Shelton:而且还是一个很孤独的职位,对吧?

 

黄仁勋:确实可能会感到孤独。但我想说,这种孤独更多是存在于我们的内心世界。当你试图解决一些棘手的难题时,往往需要长时间独自思考,自己跟自己对话。公司发展的每一次转型、每一次跨越,每一次我推动公司自我革新的时刻,我都不知道自己独自思考了多少个小时。在那些时刻,你会真切地感受到孤独。但我们也要明白,其实有很多人都希望我们能成功。就像你之前说的,你很乐意看到我成功,我知道你是真心希望我好,而我也同样希望你能越来越好。从这个角度来说,我们其实并不孤单。

 

所以说,CEO 这个职业,是一份充满脆弱感的工作。你无法单打独斗完成任何事,很多时候都需要依赖别人的帮助与善意。或许在外界看来,我们是强大的领导者,但实际上,我们可能是公司里最脆弱的一群人。我经常说,我是公司里唯一一个离开别人的帮助就寸步难行的人。我想,大多数 CEO 应该都是如此。这或许就是这份职业带给我们的感悟:CEO 们,远比他们愿意承认的要更加脆弱。不过对我来说,承认这种脆弱,并不是什么难事。

“没有终极目标” ,才成就了英伟达?

Jodi Shelton:接下来我们用快问快答收尾。你见过的最聪明的人是谁?

 

黄仁勋:这个问题我没法回答。我知道大家心里对 “聪明” 的定义,就是智商高、会解决问题、技术能力强。但在我看来,这种能力早已经成了一种 “通用品”。而且我们很快就能证明,AI 处理这类问题是最轻松的,不是吗?举个例子,以前大家都觉得软件编程是最考验智商的工作,结果呢?AI 最先攻克的领域之一就是编程。所以说,“聪明” 的定义,其实和大多数人想的完全不一样。

 

在我看来,从长远来讲,真正的 “聪明”,是那种兼具技术洞察力与人文同理心的能力,是能够洞察弦外之音、预判未知风险、看透表象背后本质的能力。那些能 “见人所未见” 的人,才是真正的聪明人,他们的价值是无可估量的。这种人能凭借数据、分析、底层逻辑、人生阅历、智慧经验,再加上对他人的感知,敏锐地捕捉到潜在的风险,在问题发生之前就提前规避。我觉得这才是 “聪明”,而且拥有这种能力的人,说不定在学术能力评估测试(SAT)里的分数惨不忍睹。

 

Jodi Shelton:外界对你有什么误解?

 

黄仁勋:这些问题都好犀利啊。首先,我都不知道外界对我有什么印象。

 

Jodi Shelton:比如,大家觉得你喜欢抛头露面,觉得你是个很棒的演讲者,所以肯定很享受做演讲的过程。但你之前已经说了,事实并非如此。

 

黄仁勋:对,完全相反。公开演讲简直让我怕得要死。不是说站在台上的那一刻害怕,而是现在,想到两周后在华盛顿举办的 GTC 大会,我就焦虑得不行。不,应该说,我已经焦虑一个月了。这种事总是让我心神不宁,脑子里时时刻刻都想着,压力特别大。公司内部的会议演讲也让我紧张到极致。因为台下坐的都是对我而言最重要的人,从某种程度上说,这是我做过的最重要的演讲。但这种演讲根本没法准备,我要讲的所有内容,其实都能在网上的某个视频里找到,他们完全可以自己去看。

 

我很讨厌把那些内容重复一遍讲给他们听,因为你绝不会回家对着家人做一场 GTC 主题演讲,对吧?我也不想那样做。演讲内容必须是真诚的、独一无二的、对听众有价值的、有意义的,能给他们带来改变。毕竟我还在领导这家公司,我希望通过演讲达成一定的目标。所以我必须拿出全新的内容,但不到演讲结束的那一刻,我永远不知道最终效果会怎么样。大家都觉得财报发布周我会很紧张,但说实话,我一点感觉都没有。真正让我紧张的,是公司的内部会议演讲。所以外界的这个印象,真的大错特错。

 

Jodi Shelton:你最受不了的事是什么?

 

黄仁勋:在关键时刻,有人不认真听我说话、不理解我的问题,还胡乱回答。尤其是在我们处理非常棘手、非常困难的问题时,我们需要的是事实,是真相。这个时候我提出问题,如果有人答非所问,我会立刻火冒三丈。我实在无法理解,为什么有人意识不到这场会议的重要性?我们正在为一件至关重要的事努力,我们需要尽快找到真相、解决问题。我到现在都想不通这一点,这种情况每次都会激怒我。谁要是想惹我生气,这招百试百灵。

 

Jodi Shelton:这下我们知道怎么让黄仁勋发火了。

 

Jodi Shelton:最后一个问题,是最近有人问我的,我特别喜欢这个问题。如果让你回到 20 岁,你是想回到自己当年的那个年代,还是活在当下的 20 岁?

 

黄仁勋:我会毫不犹豫地回到自己的那个年代。因为我觉得,我们那一代人的 20 岁,比现在年轻人的 20 岁更快乐。我总觉得,每个人都应该拥有一段 “懵懂无知” 的时光,不必从第一天起就背负着全世界的重担。我坚信这一点,没人能说服我。有时候,“无知” 也是一种快乐,甚至是一种超能力。如果当初我知道创立英伟达是一件 “不可能完成的任务”,那今天的英伟达根本就不会存在。事实就是,创立英伟达这件事,本来就是天方夜谭。但当时的我什么都不懂,所以没人能说服我放弃。

 

我觉得,乐观的人都这样,你永远没法说服他们 “这件事做不成”。他们就是这么 “无知”,对现实的艰难视而不见,所以才会充满乐观。这难道是坏事吗?现在的年轻人,过早地接触到了太多信息,变得越来越愤世嫉俗。他们并不是天生就这么消极,而是因为看到的东西太多太杂了。其实大可不必如此。人需要培养内心的乐观精神,需要在心里留存一份善意,学会只看到世界美好的一面。我们得锻炼这种能力。我们那一代人,有更多这样的机会。我们 20 岁的时候,就是这样的,乐观得像超人一样,觉得凡事皆有可能。所以,我肯定会选择回到自己的 20 岁。

 

Jodi Shelton:真是个完美的收尾。无知是福啊。

 

黄仁勋:没错,无知是福,无知也是一种超能力。任何一个想要开启新征程的人,如果不是因为这份 “无知”,他们一早就会因为觉得事情太难而放弃了。我真的很庆幸,自己当年虽然也算勤奋、也算有一些能力,但那份 “无知” 帮了我大忙。我那时候做任何事都抱着一种心态:“这能有多难?” 结果后来才发现,简直难到超乎想象。你根本没法想象。你看看我今天建立的这一切,如果当初我就知道前路会有这么多艰辛、这么多挫折、这么多失望,把这些困难全都摆在我面前,我绝对不会去做的,绝对不会。所以说,“无知” 真的是一种超能力。

 

还有一种超能力,就是“没有终极目标”。英伟达就没有什么终极目标。总有人问我:“黄仁勋,你的计划是什么?” 我们没有计划,“活下去” 就是我们的计划。我们对未来的世界有憧憬,我们会畅想技术会如何改变世界,但我们 100% 的计划,就是让公司一直运营下去。以前也有人问我,现在也经常有人问:“黄仁勋,你的人生目标是什么?” 我没有什么人生目标,就是想一直工作,一直有事可做,能和一群优秀的人一起做有意义的事。这就是我的目标。

 

所以说,从很多方面来讲,“没有终极目标” 这一点,对英伟达的发展真的起到了至关重要的作用。

 

参考链接:

https://www.youtube.com/watch?v=8FOdAc_i_tM

整理 | 华卫、Tina

过去一年,编码 Agent 的变化速度,已经快到让人很难用“功能升级”来形容。

如果把时间拨回到一年前,Agent 还主要停留在代码补全、对话式改几行代码的阶段;而今天,在 Cursor 内部,工程师已经开始同时运行多个 Agent 并行“甩活儿”,让它们在代码库中自主修改、调试、复盘,再由人类在最后阶段集中审核结果。开发者不再盯着 Agent 的每一步操作,而是开始习惯“等它跑完再看答案”。

在最近一次访谈中,Cursor 工程负责人 Jason Ginsberg 给出了一个明确判断:这不是渐进式优化,而是一场正在发生的“换代”。更重要的是,他把这场变化的时间窗口,压缩到了未来三到六个月——在他看来,Agent 将不只是“更聪明”,而是会真正接管更长周期、更复杂的工程任务,整个行业的工作方式也将随之重塑。

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

一年多时间,编码 Agent“翻天覆地”

Harrison Chase:Jason,你能跟大家简单介绍一下自己吗?也给大家讲讲 Cursor 是什么吧。

 

Jason Ginsberg:好的。我目前在做一款 AI 编程工具,已经在 Cursor 工作了六个月,担任该产品的工程负责人。不过说实话,我日常的大部分时间还是在写代码和做设计工作。在加入 Cursor 之前,我在 Notion 负责 Notion Mail 相关工作。几年前,我创办了一家名为 Skiff 的公司,后来这家公司被 Notion 收购了。所以,我一直都在从事产品开发相关的工作,而且主要聚焦在生产力工具领域。

 

Harrison Chase:非常棒。我有很多话题想和你探讨。要不我先抛砖引玉,问问你对编码 Agent 的发展历程,以及这些年来人机交互模式演变的看法吧。你们可以说是这个领域的先行者之一,我认为编码 Agent 的发展经历了几个阶段的转变:从最初的代码自动补全,到集成在集成开发环境(IDE)中的对话式交互,再到如今出现的各类终端工具,以及基于云端的异步 Agent。我很想听听你的看法,你觉得这样概括其用户体验的演变历程是否准确?或者你们团队是如何看待这一发展过程的?

 

Jason Ginsberg:我认为编码 Agent 的发展确实可以用 “翻天覆地” 来形容,而且这些变革基本上都是在一年多一点的时间里发生的。正如你所说,Cursor 最早开启了代码自动补全的先河,这种模式主要是在逐行的层面上提供辅助,适用范围也基本局限在单个文件内。而此后,几乎每隔几个月,我们就不得不提升产品的抽象层级,这其实是一个极具挑战性的产品设计难题。显然,Agent 的出现让开发者能够在多个文件之间灵活切换,并且可以放心地让 Agent 自主完成代码修改工作。

 

在过去两个月左右的时间里,我发现行业又出现了新的转变:开发者现在已经能够做到从项目启动到结束全程信任 Agent,并且会对整个代码库中多个文件的内容进行批量审核。因此,我们不得不对产品的整体布局进行大幅重新设计,将核心从逐行的代码差异对比,转向更偏向代码审查的模式。

 

展望未来的产品开发方向,我们的工作重心其实会更多地放在多 Agent 协同运行上。我们需要实现的是,能够快速验证这些 Agent 是否在正常运行,并且可以让它们并行工作,同时避免受到当前单一对话模式下各种选项和选择的束缚。

 

Harrison Chase:推动这些变革的核心因素是什么?仅仅是因为大模型的性能变得越来越好,还是有其他更多的影响因素?

 

Jason Ginsberg:我认为大模型性能的提升是一个很关键的因素,这让开发者能够更加信任 Agent 编写的代码质量。要知道,以前大家必须对 Agent 生成的代码进行非常全面细致的审查。

同时,现在也有了更完善的代码审查工具。比如我们有 BugBot,市场上其实还有很多类似的工具,它们都能够自动检查代码中存在的问题。

 

此外,我觉得从行业文化层面来看,开发者们对 Agent 工具的接受度和使用信心也在不断增强,甚至可以说已经 “上瘾” 于这类工具带来的便捷。而且,一旦习惯了完全依赖 Agent 进行编码的工作模式,再切换回传统的编码方式其实是很困难的。所以现在,我们能看到越来越多的开发者已经将 Agent 辅助编程作为默认的工作方式。

最顶尖工程师的干活秘诀:全靠 Agent?

Harrison Chase:你观察到大家使用 Cursor 的方式都有哪些不同?或者你自己平时是怎么使用 Cursor 的?

 

Jason Ginsberg:其实在我们公司内部,工程师们使用 Cursor 的方式就五花八门。甚至团队里有几位工程师,他们完全不使用 Cursor 的 Agent 功能,比如负责安全和基础设施的同事。所以,确实有一部分用户非常依赖代码自动补全功能,日常使用中大部分操作都是基于补全功能完成的。但令人意外的是,我发现团队里一些最顶尖的工程师,我们称他们为 “核心用户”,他们做任何工作都会完全依赖 Agent,甚至会同时运行多个 Agent 并行处理任务。

 

至于我个人的使用习惯,我并不会去设计那些复杂繁琐的提示词,也没有什么所谓的 “Agent 使用秘籍”。我写的提示词往往都很简短,甚至还会带有拼写错误。我会针对手头不同的工作任务,或者同一个问题的不同模块,同时启动多个 Agent,然后等待它们返回结果。

 

目前我用得最多的是我们今天刚刚发布的一个新功能:调试模式。这个模式下,Agent 能够通过生成日志来进行自我评估,之后开发者复现相关操作步骤,Agent 就会通过查看日志判断问题是否得到解决。这个功能非常实用,因为它相当于通过投入算力去不断尝试解决问题,最终攻克那些手动排查起来极为棘手的难题。

 

Harrison Chase:调试模式具体是什么样的?为什么需要专门设置这样一个模式?难道不能自动完成调试吗?直接给 Agent 下达调试指令不也可以吗?

 

Jason Ginsberg:其实我也认同你的这个想法。所以在开发调试模式的时候,我们内部确实有过不少争论。主要原因在于,Cursor 目前已经有很多功能模式了,如规划模式、询问模式等等,这些模式其实不太容易被用户发现。我们一直认为,这些模式都很实用,理想的状态应该是,Agent 能够根据用户的操作场景,自动匹配并启用最合适的模式,无需用户手动切换。

 

而现阶段调试模式之所以需要手动开启,是因为它的交互方式比较特殊。在运行过程中,Agent 会暂停当前的工作,向用户提问以获取反馈。如果用户不熟悉这种交互逻辑,可能会觉得比较困扰。

 

Harrison Chase:Agent 具体会询问哪些问题,又需要用户提供什么样的反馈呢?

 

Jason Ginsberg:我举个例子吧。假设我正在开发一个前端应用,遇到了一个很让人头疼的问题:菜单总是在左上角弹出。这时候我会对Agent说:“这个菜单需要锚定到按钮的位置。” 随后,Agent 会启动服务器,并在整个代码库中添加大量日志,同时提出一系列可能导致该问题的假设,如 “可能是某个定位参数设置错误”、“可能是事件绑定逻辑有问题” 等。之后,Agent 会提示我:“麻烦你点击这个按钮,打开菜单,看看问题是否解决。” 如果我反馈问题依然存在,Agent 就会查看生成的日志,然后分析判断:“这个假设成立,那两个假设不成立”。通常这样反复两三次之后,Agent 往往就能找出并解决问题。

 

Harrison Chase:你觉得人类还需要手动操作多久?就不能让 Agent 自主完成点击、测试这类操作吗?

 

Jason Ginsberg:一两个月内,毕竟这个行业的发展速度实在太快了。

 

Harrison Chase:刚才你提到了 Agent 的多种不同模式,比如规划模式、解释模式、调试模式等等。这些模式在实际应用中到底意味着什么?难道只是为 Agent 设置不同的提示词这么简单吗?还是说背后有更复杂的逻辑?

 

Jason Ginsberg:很多时候,确实就是修改一下系统层面的提示词。不过在某些情况下,我们也需要对用户界面进行相应的调整。比如规划模式现在也加入了交互提问功能,运行过程中会主动打断用户操作,寻求反馈。用户有时也可以自行设置参数,如调整 Agent 打断的频率等。再比如询问模式,它不只是依赖特定的系统提示词,还会限制 Agent 调用某些与文件编辑相关的工具,以此来保证功能的稳定性和可靠性。

 

Harrison Chase:回到之前的话题,关于大家使用 Cursor 的不同方式,你觉得未来使用编码 Agent 或者说 Cursor,存在所谓的 “最佳方式” 吗?

 

Jason Ginsberg:我觉得并没有什么 “最佳方式”,具体的使用方法很大程度上取决于工程师的个人工作习惯以及他们所处理的具体工作内容。目前行业里,既有异步运行Agent的应用场景,也有开发者深度参与、实时交互的模式,就像一边编程、一边像画画一样实时调整代码或者进行可视化的编辑操作。不过我经常在推特上看到一些所谓的 “Agent 使用技巧”,其实对此我是有点持保留态度的。很多人会说 “这才是使用 Agent 的最佳方式”,但在我看来,这些技巧往往是凭空杜撰的。

 

我们团队内部其实并不会使用那些冗长复杂的提示词,也不会采用多阶段规划的策略。大多数时候,我们都是快速迭代,如果 Agent 运行的结果不理想,就直接终止进程,重新启动 Agent。通常这种方式的效率是最高的。

自然 “唠嗑”是 Cursor 最终交互模式?

Harrison Chase:如果让你预测一下一年后的情况,你认为开发者在 IDE、终端以及其他形态的载体上使用 Cursor 的时间占比会是怎样的?

 

Jason Ginsberg:当然,我肯定会带有一定的主观偏向性。但我认为,终端工具并不会成为用户的首选。我觉得,真正驱动行业发展的是用户对Agent的信任度不断提升,他们更希望等到Agent完成所有工作后再查看最终的修改结果,然后决定是否采纳,同时也愿意让 Agent 运行更长的时间,以实现更智能的处理。

 

而 IDE 之所以至关重要,是因为它是为整个软件开发周期量身打造的工具。从项目的构思规划,到运行代码修改、查看代码内容、清晰对比代码差异、提交代码合并请求,再到在浏览器中预览效果所有这些环节,都可以无缝集成在 IDE 的模块化功能之中。这一点其实很容易被忽视,毕竟 IDE 的这些功能是经过了数十年的发展才逐步完善起来的。

 

我认为,当前行业的一个明显趋势是,产品层面的设计变得越来越重要。现在 Cursor 用户使用频率最高的功能,如规划模式,其实都需要可视化编辑器的支持,用户需要能够在编辑器中添加注释,并进行实时交互。一旦脱离了按钮、弹窗和菜单这些可视化交互元素,用户与工具的交互难度会大大增加。

 

不过,我觉得未来并非所有操作都必须局限在笔记本电脑的 IDE 中完成。这种模式并不会被完全取代,具体的使用场景会根据实际需求灵活变化,适用的场景也会更加广泛。用户在更多场景下,都能够使用到 Cursor 这样的工具。

 

Harrison Chase:未来会有更多场景都能用上像 Cursor 这样的工具。你们应该有对应的官网吧?用户可以直接在网页上进行交互操作,是这个思路吗?

 

Jason Ginsberg:对,我们确实有官网。这么做的原因是用户可以通过手机等设备随时随地访问。我觉得在不远的将来,用户完全可以戴着 AirPods,开启语音模式,和Agent实时沟通、碰撞想法,让Agent不断优化方案。等用户到了办公室,打开笔记本电脑,就已经有一堆代码修改记录或者演示视频等着审核了,到时候只需要简单确认通过或者驳回就行。如果某些细节还需要微调,再把项目下载到本地修改就好。

 

Harrison Chase:我认为 Cursor 真正的优势,在于围绕 Agent 交互打造的整套设计和用户体验体系。你之前在 Notion 工作过,我记得即便是在生成式 AI 普及之前,Notion 的设计和用户体验就已经广受认可了。当然,他们在生成式 AI 时代也很好地完成了转型。从一家在生成式 AI 普及前就拥有出色设计积淀且顺利完成转型的公司,再到如今专注 Agent 相关工作,你觉得 Agent 的出现给产品设计和用户体验带来了哪些变化?现在的工作模式和之前有相似之处吗?

 

Jason Ginsberg:我觉得总体来说,我们产品的大部分设计其实并不是 AI 专属的。要知道,产品可用的交互组件和用户体验模式就那么多,市面上的应用本质上也都是基于一些传统的模式搭建的,如收件箱、仪表盘、聊天界面,这些都是很成熟的设计。所以我们的工作核心,更多是把这些现有的设计模式进行合理组合,然后在产品中恰当地呈现出来。这一点和 Notion 的产品理念是相通的,同时也是 Cursor 和集成开发环境(IDE)的核心特质:极高的模块化程度。

 

作为用户,你会发现每个人的 IDE 界面布局都可以千差万别。你可以自定义面板布局,把任意组件拖放到任意位置,和坐在你旁边的同事设置出完全不同的界面。我认为这种模块化设计对产品的适应性至关重要,毕竟如我之前所说,Agent 的能力发展日新月异,用户对产品的需求和期待几乎每隔几周就会发生变化。几个月前我们推出 Cursor 2.0 的时候,并没有把原来的产品推倒重来,只是把各个功能模块重新组合,调整为侧边栏收件箱式的管理布局,同时优化了聊天界面的信息密度而已。

 

Harrison Chase:听你这么说,很多组件的底层逻辑其实是相通的。那有没有出现新的组件?或者某些组件的优先级发生了变化?毕竟这些组件最初都是为 “人类与软件交互”“人类通过软件协作” 的场景设计的,现在加入了 Agent 这个新角色。这其中有没有产生什么新的变化?还是说其实本质上没有太大不同?

 

Jason Ginsberg:我认为底层的设计逻辑和核心要素其实没有变,关键变化在于谁在主导界面交互。而在这个核心框架下,其实可以演变出无数种交互形式。就拿交互的抽象层级来说,一年前大家使用Agent的时候,都恨不得盯着它的每一步操作,全程 “盯梢”。但现在 Agent 的操作步骤变得无比繁杂,用户根本看不过来。所以我们需要优化信息呈现方式:如何对操作步骤进行分组?如何提炼关键信息?

 

当用户足够信任 Agent 的操作后,我们就需要把重点放在文件的实际修改内容上,并且为这些修改添加更详细的注释说明。当然,我们也可以进一步提升交互的灵活度,比如聊天对象不再局限于单个 Agent,而是可以同时和多个 Agent 对话。这就需要一套更智能的后台交互逻辑来支撑 ,系统要能识别用户在和哪个子 Agent 对话,并且协调这些 Agent 完成对应的修改。未来这种交互的抽象层级还会不断提升。

 

Harrison Chase:你觉得交互的抽象层级最高能达到什么程度?我知道预测未来很难,但还是想听听你的看法。

 

Jason Ginsberg:我觉得未来,我们现在看到的各种操作选项,如选择模型、选择功能模式、选择运行环境这些都会逐渐消失。最终的交互模式会变得像和真人对话一样自然。但这并不意味着任何人都能随便写代码,在那个阶段,这个工具依然是为专业工程师服务的。因为你还是需要具备专业的行业术语知识,清楚自己想要修改的内容是什么。做产品的人,要明确自己想要的工作流程和功能需求;做基础设施的人,要足够了解代码库,知道什么样的架构和系统设计最适合当前要开发的项目。

 

而且我想强调的是,随着抽象层级的提升,我们并不会摒弃现有的功能。用户依然可以随时深入底层,查看细节、调整参数。只是产品的默认交互方式会不断优化升级。

Cursor 内部工作揭秘:少审代码、高频反馈

Harrison Chase:你之前提到了人类在 Agent 工作流程中的角色,比如查看代码差异、进行代码审查。你觉得 AI 会给代码审查工作带来哪些改变?

 

Jason Ginsberg:首先,就我们产品团队的工作模式来说,现在人工审查的比重已经大幅降低了。我们有一个叫 BugBot 的工具,它会自动检测代码问题,并且自主完成修复,还会在持续集成(CI)流程中不断迭代优化。这个工具的表现非常出色,也让我们对 AI 审查的代码质量更有信心。

 

其次是信息的语义化分组。用户查看代码差异时,可以清晰地看到 Agent 做了哪些修改。我们甚至可以展示 Agent 的原始指令,更理想的状态是,Agent 能够像人类一样,在处理大型代码合并请求时,为每一处修改附上注释,说明这么做的原因。我觉得这虽然算不上颠覆性的变革,但确实能给代码审查工作带来显著的优化。

 

Harrison Chase:出于好奇,我想问一下,Cursor 的工程师用 Cursor 写代码,用 BugBot 审查代码,那他们还需要和其他工程师沟通协作吗?

 

Jason Ginsberg:哈哈,这个问题很有意思。如果你以工程师的身份加入 Cursor,会立刻发现一个现象:所有人都在深度使用自家产品。我记得我入职第一周的时候,修改了一个快捷键设置。那个快捷键是 Alt+Shift+Command+J,非常冷门,我当时觉得选这个键肯定没人会注意到。结果刚改完不到半分钟,就有三个同事在 Slack 上发来消息:“你改的这个快捷键直接打乱了我的工作流程!到底怎么回事?”几乎任何产品改动,都会立刻收到同事们的强烈反馈。我觉得这其实是一件好事,大家就是在这种高频的反馈和交流中,快速推进产品迭代的。

 

Harrison Chase:从组织管理的角度,你们有没有采取什么措施来鼓励或者引导这种高频反馈的协作模式?毕竟大量的反馈涌进来,有时候也会让人应接不暇。

 

Jason Ginsberg:在我创办自己的公司之前,工程师们也会用邮件沟通,但用得并不多。大家甚至会说:“邮件只用来收垃圾邮件和购物通知,可别用它来发长篇大论的工作内容。”而在Agent这个赛道工作,其实完全不需要依赖邮件这种低效的沟通方式。我们团队的所有人都全身心投入工作,毕竟这是一个竞争非常激烈的领域,大家都对产品开发充满热情,会自然而然地用各种即时沟通工具协作。

 

另外,我在规划产品功能时,会遵循一个核心原则:我能开发什么功能,让自己的日常工作更轻松? 具体来说,就是思考 “做什么能帮我明天更高效地完成工作,不用再处理那些烦人的报错和问题”。这个原则指导着我们的大部分工作。毕竟这种功能开发出来之后,我们自己能立刻受益,比如修复了一个烦人的漏洞,以后上班就不用再被这个问题困扰了。

迭代狂飙背后,核心功能竟来自员工 “自嗨”?

Harrison Chase:你觉得你们的产品路线图,有多大比例是由 “让自己工作更轻松” 这个需求驱动的?又有多大比例是来自外部用户的需求?这个比例随着公司发展有变化吗?

 

Jason Ginsberg:这个比例确实随着公司规模的扩大在变化。现在我们也会制定月度的产品路线图和目标,但说实话,我们很多核心功能都来自自下而上的创新。比如 Cursor 的Agent功能,这可以说是大家提到 Cursor 时最先想到的核心功能。这个功能是我们团队的一个人开发的,最开始所有人都不看好这个想法,但他很快做出了原型。大家试用之后都惊叹:“哇,这东西居然真的能用!”

 

我之前提到的调试模式也是如此。感恩节假期的时候我闲着没事,就开发了这个自己很需要的功能,现在这个功能也即将上线。这些功能的开发初衷,都是为了解决团队内部的需求。我们判断一个功能是否具备发布条件,一个重要的衡量标准就是内部的使用率和认可度。

 

Harrison Chase:你们的产品迭代速度快得惊人,是怎么保持这种高效的开发节奏的?

 

Jason Ginsberg:说实话,我们的工作流程其实非常精简,没有太多繁琐的制度。公司里虽然有几间会议室,也有一两位产品经理,但我们很少通过撰写文档或者开对齐会议来推进工作,大部分的讨论和决策都是在代码层面完成的。而这一切能够实现的核心原因,是我们对人才的极高要求。今年年初的时候,公司总共也就 20 人左右。之所以团队规模增长缓慢,就是因为我们的招聘门槛高到近乎苛刻。我们会反复评估:这个人很优秀,但他能成为团队里最顶尖的那批人吗?

 

正因为团队里的每个人都足够出色,所以我们可以放心地把任务交给任何一个人。团队成员的主观能动性都极强,从提出想法、设计用户体验,到在推特上回复用户的支持请求、和企业客户沟通需求,再到最终将功能落地,整个流程都能独立完成。所以说,我们能保持这样的速度,归根结底还是人的因素。

 

Harrison Chase:你们是如何规划产品路线图的?你刚才提到了以月为单位的规划周期,这是目前的常规规划时长吗?有没有更长期的规划?另外,行业技术迭代的速度实在太快了,你们是如何平衡 “跟进现有技术浪潮” 和 “实现技术跨越式发展” 这两者的?会不会主动预判技术趋势,提前布局未来方向?

 

Jason Ginsberg:我们确实会投入不少精力去思考未来,比如预判未来三个月可能实现的技术突破,然后主动押注相关方向,团队里有相当一部分人都在做这类前瞻性的工作。我们制定的月度路线图更多是围绕核心产品功能展开,聚焦于用户的实际需求以及那些能优化日常使用体验的功能。而那些需要投入两个月时间重构底层逻辑的重大项目,则会纳入更长期的规划范畴。

此外,我们的应变能力其实非常强。

 

有时候我们会提前拿到新模型的测试版本,试用之后如果发现它在某些方面表现特别出色,团队成员往往会主动利用周末时间加班,争取在新模型正式发布前就完成相关功能的开发。很多重要功能其实几天之内就能搭建完成。

 

Harrison Chase:说到模型,你们发布了自研的 Composer 模型。开发这个模型的初衷是什么?目前用户的使用情况如何?这个模型有没有改变大家使用 Cursor 的习惯?

 

Jason Ginsberg:我们发现,工程师使用我们产品时的编码场景,需要有专门适配的模型来支撑。Composer 模型就是针对这类场景打造的,它定位非常明确,具备速度快、质量高、逻辑智能三大特点,尤其适合 “人机实时协作” 场景。我自己做前端开发时就经常用它,因为我需要频繁做出细微的交互设计决策,这就要求 Agent 能在几秒内给出反馈。Composer 就像一个高效的协作伙伴,能快速响应需求、碰撞想法,和那些适用于长周期异步任务的模型形成了很好的互补。

 

Harrison Chase:Cursor 的 Agent 相关研发工作是全员参与,还是有专门的团队负责?

 

Jason Ginsberg:我们确实有专门的团队负责 Agent 的性能优化,他们主要聚焦于工具链、调度框架的搭建以及效果评估。但正如我之前所说,我们的团队架构并不僵化,没有严格限制大家的工作范围。比如核心产品团队的工程师在开发规划模式时,如果需要对Agent进行调整,就会和Agent团队密切协作。而且在开发过程中,我们依然会深度使用自家产品进行测试,团队成员会分享使用感受,以此来评估功能的实际效果。

 

Harrison Chase:无论是 Agent 团队的成员,还是其他团队中擅长 Agent 研发的工程师,他们身上有没有什么共同特质?他们的专业背景或者个人能力有没有什么特别之处?

 

Jason Ginsberg:我觉得他们大多是偏产品方向的人才,而不是传统意义上的机器学习或算法研究专家。这些人经常在不同团队之间轮岗,因为Agent研发需要对用户的最终使用体验有很强的直觉,同时还要能准确解读团队的反馈意见。

 

Harrison Chase:上周你们和 OpenAI 合作发布了一篇博客,内容是针对 OpenAI 的新模型优化 Cursor 的 Agent 调度框架。我在推特上经常看到大家讨论 “Agent 调度框架” 这个概念。你们是如何看待模型的底层支撑架构的?这类架构是否需要和特定模型深度绑定?比如 Composer 模型和 CodeLlama 模型,对应的架构会不会有很大差异?

 

Jason Ginsberg:我其实没有深度参与这方面的工作,但据我了解,我们的核心目标是打造高度灵活的架构。毕竟我们需要不断尝试新技术、新功能模式,所以架构必须能够随着模型能力的升级快速适配。

 

Harrison Chase:很有道理。毕竟整个行业都在飞速变化。

开放问答

提问者 1:刚才提到了新增的可视化浏览器功能,我发现有些工具比如 Lovable 也有类似的功能。请问这个功能是朝着 “沉浸式可视化编码” 的方向发展吗?

 

Jason Ginsberg:我觉得它并不是为沉浸式可视化编码设计的。就像我之前说的,这个功能最初是我为自己开发的,我本身就是一名做产品的工程师,它的核心用户群体其实是专业工程师和设计师。大家在开发应用时,肯定都遇到过这种情况:精心设计的界面,最后却变成了大家都看腻了的紫黄渐变配色。这个功能就是为了让大家能够精准把控细节,比如把内边距调整到精确的像素值。它为用户提供了一套更直观的 “视觉化操作语言”,比纯文本指令的精度更高。

 

而且就算不使用侧边栏,你也可以直接点击页面元素,随时输入提示词下达指令。借助这个功能,你可以在几秒内同时启动六个 Agent。如果开启热重载功能,你的网站会实时呈现修改效果,用起来其实还挺有意思的。

 

提问者 2:我特别喜欢你们的浏览器 Agent,一直在用。但我发现一个小瑕疵:我想持续迭代优化设计方案,可 Agent 总是会中断我的工作,直接提交代码合并请求。未来有没有可能实现不间断的持续迭代?

 

Jason Ginsberg:当然可以。未来的发展方向就是让 Agent 具备自主评估能力,根据需求长时间持续运行、循环迭代。现在的调试模式还需要人工点击按钮来确认日志信息,但这只是过渡方案。理想的状态是,Agent能够自主完成评估、迭代,直到彻底解决问题。

 

提问者 3:我不知道你是否深度参与 Agent 相关的研发工作,但我注意到 Cursor 的内存管理功能做得很好。它可以根据工程师个人、部门乃至整个公司的偏好、规则和流程,自主管理相关信息。我们都知道,信息和上下文对 Agent 来说至关重要。请问你们有没有计划进一步拓展和升级这个功能?尤其是在长上下文处理方面,你们有什么思路?

 

Jason Ginsberg:我们正在进行大量的实验和探索。目前已经落地了规则管理、内存记忆、技能库等多个功能模块。现阶段,我们主要在研究高效的信息摘要技术。另外,借助我们的自研模型,我们也在探索让模型自主识别对话或代码中反复出现的关键信息。当然,跨组织的信息共享功能也很值得探索。不过这里有个需要注意的点,相关规则和信息可能会随着模型的迭代而过时。所以我们必须确保用户能够轻松更新这些内容,避免被过时的规则束缚。

 

提问者 4:关于你们发布的 Composer 模型,我认识一些开发者,他们基于 Gemini 模型微调了一个医疗领域的专用模型。但他们发现,这个微调后的模型效果还不如直接用原生 Gemini 模型做单次提示词调用。他们分析的原因是,微调模型需要持续维护,要跟上 Gemini 等基础模型的更新节奏。请问你们是如何制定策略,确保 Composer 模型不会落伍的?

 

Jason Ginsberg:你说的是 Composer 模型,对吧?我们会持续对它进行迭代优化,它并不是一个静态的模型。我们的核心关注点,是在速度和智能之间找到最佳平衡点,满足 Cursor 用户在大部分场景下的需求。不过在长上下文处理这类特定领域,我们确实还有提升空间。

 

提问者 5:我自己是产品经理,一直在用 Cursor 做原型开发,甚至在团队里还客串设计师,用它替代 Figma。我很好奇,有没有用户是在使用 Cursor 之前,从未安装过任何集成开发环境(IDE)的?这类用户会不会成为你们未来重点关注的群体?毕竟现在的编码 Agent 已经足够强大,很多工作都能在上面完成。

 

Jason Ginsberg:坦白说,我们目前并没有把这类用户作为核心关注点。当然,我们认同工具的使用门槛确实需要不断降低,而且 Cursor 的易用性也在持续提升,比如新增的浏览器工具对设计师就很友好。但我们的核心目标,其实是赋能顶尖工程师。我们一直在思考:如何让世界上最优秀的工程师变得更加强大?在这个过程中,我们开发的工具自然会惠及更多人群。不过在产品优化方面,我们确实还有很多工作要做,如优化新手引导和环境配置流程。毕竟设计师和产品经理在配置 GitHub 等工具时,经常会遇到困难。我们希望通过优化这些环节,吸引更多用户尝试 Cursor。

 

提问者 6:我一直在尝试用 Cursor 做智能合约的验证矩阵构建和试运行逻辑测试。请问在深度质量检测和安全加固方面,有没有什么不太为人知的实用工作流可以推荐?或者刚才提到的调试工具能不能派上用场?我对智能合约的质量检测特别感兴趣。

 

Jason Ginsberg:说实话,我们正在尝试让 Agent 自主完成测试工作,不过这项功能目前还没有完全发布。对于从事质量检测工作的人员来说,我强烈推荐试试我们刚发布的调试模式。这个功能定位问题的逻辑非常清晰,几乎可以说是确定性的,用起来会很有帮助。

 

提问者 7:您认为未来两到四个月,Cursor 面临的最大机遇是什么?会不会是语音 Agent?

 

Jason Ginsberg:我觉得机遇不在于语音 Agent。用户现阶段最核心的需求,其实是让 Agent 变得更智能、运行时间更长、能处理的任务更多。现在的很多 Agent,本质上只是在 “读取代码”,并不能真正判断修改后的代码是否有效。未来的发展空间非常大,我们可以投入更多算力,让 Agent 承担更多人类目前负责的校验工作。我觉得未来三到六个月,整个行业都会迎来巨大的变革,非常值得期待。

 

参考链接:

https://www.youtube.com/watch?v=dKSGK-fPFyU

欢迎收看本期《派评》。你可以通过文章目录快速跳转到你感兴趣的内容。如果发现了其它感兴趣的 App 或者关注的话题,也欢迎在评论区和我们讨论。


Focast:高保真环境音专注应用

  • 平台:macOS
  • 关键词:白噪声、专注计时

@ElijahLee:Focast 是专为 Mac 平台开发的专注应用,提供了丰富的高保真自然环境音,并结合专注计时功能, 帮助你在学习、工作或阅读时进入专注状态。

Focast 的亮点是提供了 90 多款高质量的环境音,包括雨声、海浪、森林、火堆、鸟鸣等自然音效。除了常见的声音外,应用竟然还有很多独特的日常氛围音,比如鸭嘎嘎子叫、搅拌鸡蛋液的声音、在厚厚的雪地步行的声音。所有声音都由声音艺术家现场录制,并可以无断点持续循环,让你在聆听环境音时快速沉浸并持续专注。

与一般的白噪音应用不同,Focast 的另一个特色是混音(Mix)功能。对于自带的环境音,应用提供了两种模式。Solo Mode 只能选取一中环境音播放;而 Mix Mode 可以叠加多个音轨同时播放环境音,比如同时选择雨林(雨滴打落在树叶的声音)、鸟鸣(远处鸟的鸣叫)和后院(夜晚虫鸣鸟叫)。基于环境音的组合,我们可以搭配出丰富的现实音效,还原真实世界中的场景。Mix Mode 下, 对于中意的搭配组合,我们还可以保存混音,便于以后一键播放。

除了内置环境音的混音之外,Focast 还支持与 Apple Music、 Spotify、或 YouTube 一起播放,应用会将环境音叠加在背后播放,并可以独立控制环境音的音量。

在 Focast 我们可以自由地创建专注与休息时间段,应用默认提供 10、25、40、60 分钟的计时器,并且支持自定义设定,使用快捷键也可以快速启动。启动专注计时后, 应用在菜单栏的图标会显示可视化倒计时,帮助你更好地查看专注时段。在专注计时结束时,Focast 会发出一声温柔的提示音作为结束,应用也支持我们修改这个音效,非常贴心。

专注日历视图功能,可以让你回顾专注天数与连胜记录,如果你非常需要养成专注习惯,使用这个记录来保持连胜会非常有用。应用还支持 iCloud 同步,对于声音设置、计时器、统计数据等,都可以通过 iCloud 在设备间同步。

你可以可以在 App Store 免费下载 Focast,免费版提供了非常有限的基础功能。付费订阅后可以全部环境音、自定义混音、自定义计时器等。价格为每年 38 元或买断 88 元。对于按年订阅,应用提供了长达 14 天的有效期,如果你感兴趣可以在两周时间内充分体验后再决定。

 


三星浏览器 Windows Beta 更新:现已解除区域限制

  • 平台:Windows
  • 关键词:三星、浏览器

@大大大K:三星浏览器在此之前已经上线过 Windows 平台,但后来因多种原因不再提供安装。不过前段时间,三星突然又重新推出了 Windows Beta 版,而且现在任何区域的用户都可以通过指定链接下载安装(虽然页面中还是显示仅限韩国和美国)。如果你正在使用国际版的三星浏览器 Android 版,也会在浏览器首页看到链接推送。

在 UI 方面。新版客户端和两年前的版本差别不大,依然保留了极具特色的侧边栏功能。其中的「已同步设备」功能可以同步手机端浏览器的快速启动页,并以移动设备模式浏览网页内容;日历功能则直接与三星账户中的日历事项同步,并支持添加 Google 账号显示 Google 日历。如果有需要,可以在侧边栏下方添加新的网址。

快速启动页做了小幅升级,支持更换背景以及添加设备同步、隐私报告、天气时钟等小组建。值得一提的是,设备同步功能可以将手机版浏览器的标签页在这里显示,实际测试下来,手机端新开标签页同步速度非常快,但关闭标签页之后的同步会比较滞后。

Windows Beta 版中的「浏览助手」功能包含了摘要提取和翻译功能,其中摘要提取来自于 Galaxy AI。该功能的使用效果与手机版相同,可以由 AI 总结网页内容供你参考,不过可能是由于网络或其他限制,连接云端 AI 时会报错,有条件的用户可以自行测试。

翻译功能应该是来自于 Google 翻译,同时浏览器支持原文和译文分屏对照,学术用户群体使用起来会更加方便。

除此之外,三星浏览器手机版支持将登录信息保存在 Samsung Pass 中(包括国行用户),Windows Beta 版也支持该功能,但要求电脑中安装有 Samsung Pass 客户。但 Samsung Pass 客户端有机型限制,所以目前处于不可用状态。不过考虑到 Windows Beta 采用了 Chromium 136 内核,支持 Chrome 插件,还是建议大家使用专业的密码管理器和浏览器插件使用。

如果你是三星用户,想要拥有更完整的 Galaxy Ecosystem 体验,可以前往官方网站体验该 Beta 版。浏览器强制安装于系统盘,并且过程中会同步安装三星账户和三星智能服务组件并创建开始菜单项目,大家记得留出足够的空间。


Quiche Browser:自定义布局浏览器

  • 平台:iOS
  • 关键词:浏览器

@Snow:Quiche Browser 是 iOS 平台上一款第三方浏览器应用,在这个全员「卷 AI」的时代,它并没有引入先进的对话式引擎,也没有借助算法智能排列标签优先级,而是将交互自主权交还给用户,让用户可以从丰富的功能按键中自由排列组合,打造自己理想中的浏览器。

浏览器底部的 Toolbar 是 Quiche Browser 自由度最高的一个区域,但应用并没有丢给你「一张白纸」任意发挥,而是在设置中提供了 16 种布局预设,你可以根据自己的使用习惯选择其一,再在预设之上进行微调。

应用提供了超 40 个交互按键,从高频使用的前进、后退、刷新、新建标签页等,到一般配合快捷键使用的缩放、查找、快速定位等均有覆盖,你可以自由选择按键,并在预设的框架里布局使用。以常规的双行布局为例,第一行除地址栏外最多设置 4 个按键,第二行最多设置 7 个按键,如果你还有高频使用的功能,则可以将其安置在更多菜单中。

Quiche Browser 就是借助这种「有限的自由」,让应用可以在满足用户个性化需求的同时依旧保持美观。

Quiche Browser 还可以对地址栏的展现进行微调,例如在地址栏中选择性展现域名、完整地址、页面标题以及网站图标,调整文本左对齐或居中对齐,展现阅读时长等。在交互上,你则可以为短按和长按地址栏设置触发不同动作,进一步提升交互效率。

除了页面交互外,Quiche Browser 还提供了一些功能性补充,来弥补其不支持第三方扩展的缺憾。应用默认开启广告拦截功能,并内置了三套拦截规则,你可以按需进行开关,不过目前暂不支持添加自定义规则。

应用还支持为所有网页强制开启深色模式,如果你订阅了 Quiche Plus 服务,则还支持自选主题配色。应用还支持对默认搜索引擎、隐私模式、后台刷新、用户 UA 等多个功能项按需调整,更详细的应用介绍你可以点击此处了解。

应用包含一项订阅式内购,你可以按 22 元 / 月 或 198 元 / 年价格订阅,付费后可以解锁多主题深色模式、单手操作模式,以及更多的按键样式和应用图标,鉴于以上功能并不会严重影响浏览器主要功能,建议使用一段时间再按需付费。

你可以在 App Store 上免费下载 Quiche Browser。

 


Activas:本地 AI 健康分析助手

  • 平台:iOS / iPadOS
  • 关键词:健康追踪、数据分析

前段时间,OpenAI 推出了 ChatGPT Health 功能,在 iOS 客户端上甚至可以直接导入健康 App 中的数据进行分析和建议。不知道此举会不会让 Apple 觉得「后背一凉」,毕竟 Apple 自己画的增强版健康助手的大饼迟迟没有实现。

如果你已经等不及那一天的到来,也不想把自己的数据泄漏给 OpenAI,那么不妨试试 Activas 这款应用,它采用了 Apple 的 on device ML 接口来进行数据分析,可以基于我们的健康数据给出对应的建议。

打开 Activas 后,应用会申请获得 Apple Health 的数据权限,进行简单的配置后就可以进入 Dashboard 了。在这里,我们可以看到应用对我们的身体情况进行一个综合打分,点击进入详情页还可以看到评分变化的具体原因。

在 Insight 模块,AI 可以当前的健康数据给出一个总结。再往下,可以看到 Activity、Nutrition、Sleep、Vitals、Body Measurements 等不同领域的数据展示。点击任意一个模块,就可以进入 Activas AI 标签页,在这里 AI 会根据入口的不同给出相应的分析和建议。

不过,这个健康 Chatbot 只能基于预设的问题进行问答,并不能自由地输入自己想问的问题,这方面显得有点局限。

总的来说,这款应用的功能非常简单,更多的是基于 Apple 设备端 AI 能力的一次技术展示。这款应用可以在 App Store (外区) 免费下载使用,没有内购选项;其中 Insights 以及对话功能需要启用 Apple Intelligence,数据展示、趋势图表等基础功能则无限制。

 


什么时辰:结合日历、万年历和黄历的趣味时间应用

  • 平台:iOS / iPadOS / macOS / watchOS
  • 关键词:日历、万年历

@化学心情下2:作为一个相当传统的中国人,日历的作用不仅仅是知道今天是周几、几月几日、需要安排哪些日程,还有看节气、翻老黄历等特有的功能,虽然看上去有些「迷信」但却也是中国传统民俗的一部分。但就从使用上,我见到的更多是独立的黄历、万年历等 app,而将日历、万年历、老黄历等结合在一款应用上的则比较少见,《什么时辰》就是近期我找到的一款设计优美的趣味时间类应用。

什么时辰,从应用名就不难看出,这款应用强调的是中国传统计时方式。打开应用首页,就可以看到时钟以及对应的时辰,还有农历上对应的月份和日期,并且应用还进行的标注的每一个时辰的拼音注脚念法,比如当下是「未时」,就在「未」上加注了拼音 Wei。

以 Mac 版为例,通过顶部的 Tab 页,你可以切换到不同的日历类型中,比如万年历部分除了可以以月的形式查看日期之外,还可以看到对应的农历信息、黄历的今日宜忌以及近期的 24 节气和节假日信息,切换到日历事件则可以读取 macOS / iOS 的系统日历事件信息。

切换到老黄历则会显示今日宜忌、时辰宜忌、今日胎神、吉神宜趋以及凶神宜忌等信息,对于不是很了解里面内容的朋友,还可以点击右上角的帮助按钮来获得解析信息。

什么时辰还提供了两项我认为相当实用的小功能:一个是节日推送提醒功能,除了可以定时收到当日的节日提醒,还可以选择开启指定类型的节日,目前可以选择的节日类型包括法定节假日、传统节日、节气、国内节日、国际节日、道教节日、佛教节日、七十二侯、三伏日、数九日。

另外一个就是小组件部分,现在 macOS 支持将小组件添加到桌面,而恰好什么时辰提供了种类繁多的小组件,比如我个人喜欢就非常喜欢时钟加上时辰的这种小组件,这样可以看一眼桌面就知晓当下的时间,比起是不是瞄向右上角看时间要更方便一些。

总的来说,无论是功能还是设计上,什么时辰将多种形式的日历形式进行巧妙融合,让我们通过一款应用就可以查询日历、万年历、老黄历的信息。如果你希望找一个设计优雅功能全面的传统时间类的应用,不妨体验下这款 app,你可以在 App Store 下载该应用,应用价格为 8 元。

 


App 速报

  • Apple 宣布将于 1 月 29 日推出 Apple Creator Studio 订阅服务,包含 Apple 旗下 Mac 和 iPad 平台的各个专业创作 app,其中 Pixelmator Pro 也将推出适配 iPad 的版本,并会为 iWork 办公套件及无边记 app (稍晚) 推出高级模版和订阅内容。该服务订阅价格为 38 元 / 月、380 元 / 年。
  • Apple 与 Google 宣布将由 Gemini 为新版 Siri 提供 AI 技术支持。


> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀

    • 切换 Tab 感觉有闪动,而且有点延迟,很硬
    • 搜索不直观,没排序,添加标签页按钮奇怪
    • Group 没 Arc Tabs 直观,而且竟然不能移动!

    原生的竟然没我插件体验好,"草台班子" 🐶

    不信可以对比下: https://chromewebstore.google.com/detail/fmdcddgkjceilbjnendchimddgbmnjdo

    当然 Arc Tabs 目前没有 Compact 效果,可能有的人喜欢这种比较 "紧凑" 的效果,后面可以加个选项 🤧

    整理 | 华卫、Tina

    过去一年,编码 Agent 的变化速度,已经快到让人很难用“功能升级”来形容。

    如果把时间拨回到一年前,Agent 还主要停留在代码补全、对话式改几行代码的阶段;而今天,在 Cursor 内部,工程师已经开始同时运行多个 Agent 并行“甩活儿”,让它们在代码库中自主修改、调试、复盘,再由人类在最后阶段集中审核结果。开发者不再盯着 Agent 的每一步操作,而是开始习惯“等它跑完再看答案”。

    在最近一次访谈中,Cursor 工程负责人 Jason Ginsberg 给出了一个明确判断:这不是渐进式优化,而是一场正在发生的“换代”。更重要的是,他把这场变化的时间窗口,压缩到了未来三到六个月——在他看来,Agent 将不只是“更聪明”,而是会真正接管更长周期、更复杂的工程任务,整个行业的工作方式也将随之重塑。

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

    一年多时间,编码 Agent“翻天覆地”

    Harrison Chase:Jason,你能跟大家简单介绍一下自己吗?也给大家讲讲 Cursor 是什么吧。

     

    Jason Ginsberg:好的。我目前在做一款 AI 编程工具,已经在 Cursor 工作了六个月,担任该产品的工程负责人。不过说实话,我日常的大部分时间还是在写代码和做设计工作。在加入 Cursor 之前,我在 Notion 负责 Notion Mail 相关工作。几年前,我创办了一家名为 Skiff 的公司,后来这家公司被 Notion 收购了。所以,我一直都在从事产品开发相关的工作,而且主要聚焦在生产力工具领域。

     

    Harrison Chase:非常棒。我有很多话题想和你探讨。要不我先抛砖引玉,问问你对编码 Agent 的发展历程,以及这些年来人机交互模式演变的看法吧。你们可以说是这个领域的先行者之一,我认为编码 Agent 的发展经历了几个阶段的转变:从最初的代码自动补全,到集成在集成开发环境(IDE)中的对话式交互,再到如今出现的各类终端工具,以及基于云端的异步 Agent。我很想听听你的看法,你觉得这样概括其用户体验的演变历程是否准确?或者你们团队是如何看待这一发展过程的?

     

    Jason Ginsberg:我认为编码 Agent 的发展确实可以用 “翻天覆地” 来形容,而且这些变革基本上都是在一年多一点的时间里发生的。正如你所说,Cursor 最早开启了代码自动补全的先河,这种模式主要是在逐行的层面上提供辅助,适用范围也基本局限在单个文件内。而此后,几乎每隔几个月,我们就不得不提升产品的抽象层级,这其实是一个极具挑战性的产品设计难题。显然,Agent 的出现让开发者能够在多个文件之间灵活切换,并且可以放心地让 Agent 自主完成代码修改工作。

     

    在过去两个月左右的时间里,我发现行业又出现了新的转变:开发者现在已经能够做到从项目启动到结束全程信任 Agent,并且会对整个代码库中多个文件的内容进行批量审核。因此,我们不得不对产品的整体布局进行大幅重新设计,将核心从逐行的代码差异对比,转向更偏向代码审查的模式。

     

    展望未来的产品开发方向,我们的工作重心其实会更多地放在多 Agent 协同运行上。我们需要实现的是,能够快速验证这些 Agent 是否在正常运行,并且可以让它们并行工作,同时避免受到当前单一对话模式下各种选项和选择的束缚。

     

    Harrison Chase:推动这些变革的核心因素是什么?仅仅是因为大模型的性能变得越来越好,还是有其他更多的影响因素?

     

    Jason Ginsberg:我认为大模型性能的提升是一个很关键的因素,这让开发者能够更加信任 Agent 编写的代码质量。要知道,以前大家必须对 Agent 生成的代码进行非常全面细致的审查。

    同时,现在也有了更完善的代码审查工具。比如我们有 BugBot,市场上其实还有很多类似的工具,它们都能够自动检查代码中存在的问题。

     

    此外,我觉得从行业文化层面来看,开发者们对 Agent 工具的接受度和使用信心也在不断增强,甚至可以说已经 “上瘾” 于这类工具带来的便捷。而且,一旦习惯了完全依赖 Agent 进行编码的工作模式,再切换回传统的编码方式其实是很困难的。所以现在,我们能看到越来越多的开发者已经将 Agent 辅助编程作为默认的工作方式。

    最顶尖工程师的干活秘诀:全靠 Agent?

    Harrison Chase:你观察到大家使用 Cursor 的方式都有哪些不同?或者你自己平时是怎么使用 Cursor 的?

     

    Jason Ginsberg:其实在我们公司内部,工程师们使用 Cursor 的方式就五花八门。甚至团队里有几位工程师,他们完全不使用 Cursor 的 Agent 功能,比如负责安全和基础设施的同事。所以,确实有一部分用户非常依赖代码自动补全功能,日常使用中大部分操作都是基于补全功能完成的。但令人意外的是,我发现团队里一些最顶尖的工程师,我们称他们为 “核心用户”,他们做任何工作都会完全依赖 Agent,甚至会同时运行多个 Agent 并行处理任务。

     

    至于我个人的使用习惯,我并不会去设计那些复杂繁琐的提示词,也没有什么所谓的 “Agent 使用秘籍”。我写的提示词往往都很简短,甚至还会带有拼写错误。我会针对手头不同的工作任务,或者同一个问题的不同模块,同时启动多个 Agent,然后等待它们返回结果。

     

    目前我用得最多的是我们今天刚刚发布的一个新功能:调试模式。这个模式下,Agent 能够通过生成日志来进行自我评估,之后开发者复现相关操作步骤,Agent 就会通过查看日志判断问题是否得到解决。这个功能非常实用,因为它相当于通过投入算力去不断尝试解决问题,最终攻克那些手动排查起来极为棘手的难题。

     

    Harrison Chase:调试模式具体是什么样的?为什么需要专门设置这样一个模式?难道不能自动完成调试吗?直接给 Agent 下达调试指令不也可以吗?

     

    Jason Ginsberg:其实我也认同你的这个想法。所以在开发调试模式的时候,我们内部确实有过不少争论。主要原因在于,Cursor 目前已经有很多功能模式了,如规划模式、询问模式等等,这些模式其实不太容易被用户发现。我们一直认为,这些模式都很实用,理想的状态应该是,Agent 能够根据用户的操作场景,自动匹配并启用最合适的模式,无需用户手动切换。

     

    而现阶段调试模式之所以需要手动开启,是因为它的交互方式比较特殊。在运行过程中,Agent 会暂停当前的工作,向用户提问以获取反馈。如果用户不熟悉这种交互逻辑,可能会觉得比较困扰。

     

    Harrison Chase:Agent 具体会询问哪些问题,又需要用户提供什么样的反馈呢?

     

    Jason Ginsberg:我举个例子吧。假设我正在开发一个前端应用,遇到了一个很让人头疼的问题:菜单总是在左上角弹出。这时候我会对Agent说:“这个菜单需要锚定到按钮的位置。” 随后,Agent 会启动服务器,并在整个代码库中添加大量日志,同时提出一系列可能导致该问题的假设,如 “可能是某个定位参数设置错误”、“可能是事件绑定逻辑有问题” 等。之后,Agent 会提示我:“麻烦你点击这个按钮,打开菜单,看看问题是否解决。” 如果我反馈问题依然存在,Agent 就会查看生成的日志,然后分析判断:“这个假设成立,那两个假设不成立”。通常这样反复两三次之后,Agent 往往就能找出并解决问题。

     

    Harrison Chase:你觉得人类还需要手动操作多久?就不能让 Agent 自主完成点击、测试这类操作吗?

     

    Jason Ginsberg:一两个月内,毕竟这个行业的发展速度实在太快了。

     

    Harrison Chase:刚才你提到了 Agent 的多种不同模式,比如规划模式、解释模式、调试模式等等。这些模式在实际应用中到底意味着什么?难道只是为 Agent 设置不同的提示词这么简单吗?还是说背后有更复杂的逻辑?

     

    Jason Ginsberg:很多时候,确实就是修改一下系统层面的提示词。不过在某些情况下,我们也需要对用户界面进行相应的调整。比如规划模式现在也加入了交互提问功能,运行过程中会主动打断用户操作,寻求反馈。用户有时也可以自行设置参数,如调整 Agent 打断的频率等。再比如询问模式,它不只是依赖特定的系统提示词,还会限制 Agent 调用某些与文件编辑相关的工具,以此来保证功能的稳定性和可靠性。

     

    Harrison Chase:回到之前的话题,关于大家使用 Cursor 的不同方式,你觉得未来使用编码 Agent 或者说 Cursor,存在所谓的 “最佳方式” 吗?

     

    Jason Ginsberg:我觉得并没有什么 “最佳方式”,具体的使用方法很大程度上取决于工程师的个人工作习惯以及他们所处理的具体工作内容。目前行业里,既有异步运行Agent的应用场景,也有开发者深度参与、实时交互的模式,就像一边编程、一边像画画一样实时调整代码或者进行可视化的编辑操作。不过我经常在推特上看到一些所谓的 “Agent 使用技巧”,其实对此我是有点持保留态度的。很多人会说 “这才是使用 Agent 的最佳方式”,但在我看来,这些技巧往往是凭空杜撰的。

     

    我们团队内部其实并不会使用那些冗长复杂的提示词,也不会采用多阶段规划的策略。大多数时候,我们都是快速迭代,如果 Agent 运行的结果不理想,就直接终止进程,重新启动 Agent。通常这种方式的效率是最高的。

    自然 “唠嗑”是 Cursor 最终交互模式?

    Harrison Chase:如果让你预测一下一年后的情况,你认为开发者在 IDE、终端以及其他形态的载体上使用 Cursor 的时间占比会是怎样的?

     

    Jason Ginsberg:当然,我肯定会带有一定的主观偏向性。但我认为,终端工具并不会成为用户的首选。我觉得,真正驱动行业发展的是用户对Agent的信任度不断提升,他们更希望等到Agent完成所有工作后再查看最终的修改结果,然后决定是否采纳,同时也愿意让 Agent 运行更长的时间,以实现更智能的处理。

     

    而 IDE 之所以至关重要,是因为它是为整个软件开发周期量身打造的工具。从项目的构思规划,到运行代码修改、查看代码内容、清晰对比代码差异、提交代码合并请求,再到在浏览器中预览效果所有这些环节,都可以无缝集成在 IDE 的模块化功能之中。这一点其实很容易被忽视,毕竟 IDE 的这些功能是经过了数十年的发展才逐步完善起来的。

     

    我认为,当前行业的一个明显趋势是,产品层面的设计变得越来越重要。现在 Cursor 用户使用频率最高的功能,如规划模式,其实都需要可视化编辑器的支持,用户需要能够在编辑器中添加注释,并进行实时交互。一旦脱离了按钮、弹窗和菜单这些可视化交互元素,用户与工具的交互难度会大大增加。

     

    不过,我觉得未来并非所有操作都必须局限在笔记本电脑的 IDE 中完成。这种模式并不会被完全取代,具体的使用场景会根据实际需求灵活变化,适用的场景也会更加广泛。用户在更多场景下,都能够使用到 Cursor 这样的工具。

     

    Harrison Chase:未来会有更多场景都能用上像 Cursor 这样的工具。你们应该有对应的官网吧?用户可以直接在网页上进行交互操作,是这个思路吗?

     

    Jason Ginsberg:对,我们确实有官网。这么做的原因是用户可以通过手机等设备随时随地访问。我觉得在不远的将来,用户完全可以戴着 AirPods,开启语音模式,和Agent实时沟通、碰撞想法,让Agent不断优化方案。等用户到了办公室,打开笔记本电脑,就已经有一堆代码修改记录或者演示视频等着审核了,到时候只需要简单确认通过或者驳回就行。如果某些细节还需要微调,再把项目下载到本地修改就好。

     

    Harrison Chase:我认为 Cursor 真正的优势,在于围绕 Agent 交互打造的整套设计和用户体验体系。你之前在 Notion 工作过,我记得即便是在生成式 AI 普及之前,Notion 的设计和用户体验就已经广受认可了。当然,他们在生成式 AI 时代也很好地完成了转型。从一家在生成式 AI 普及前就拥有出色设计积淀且顺利完成转型的公司,再到如今专注 Agent 相关工作,你觉得 Agent 的出现给产品设计和用户体验带来了哪些变化?现在的工作模式和之前有相似之处吗?

     

    Jason Ginsberg:我觉得总体来说,我们产品的大部分设计其实并不是 AI 专属的。要知道,产品可用的交互组件和用户体验模式就那么多,市面上的应用本质上也都是基于一些传统的模式搭建的,如收件箱、仪表盘、聊天界面,这些都是很成熟的设计。所以我们的工作核心,更多是把这些现有的设计模式进行合理组合,然后在产品中恰当地呈现出来。这一点和 Notion 的产品理念是相通的,同时也是 Cursor 和集成开发环境(IDE)的核心特质:极高的模块化程度。

     

    作为用户,你会发现每个人的 IDE 界面布局都可以千差万别。你可以自定义面板布局,把任意组件拖放到任意位置,和坐在你旁边的同事设置出完全不同的界面。我认为这种模块化设计对产品的适应性至关重要,毕竟如我之前所说,Agent 的能力发展日新月异,用户对产品的需求和期待几乎每隔几周就会发生变化。几个月前我们推出 Cursor 2.0 的时候,并没有把原来的产品推倒重来,只是把各个功能模块重新组合,调整为侧边栏收件箱式的管理布局,同时优化了聊天界面的信息密度而已。

     

    Harrison Chase:听你这么说,很多组件的底层逻辑其实是相通的。那有没有出现新的组件?或者某些组件的优先级发生了变化?毕竟这些组件最初都是为 “人类与软件交互”“人类通过软件协作” 的场景设计的,现在加入了 Agent 这个新角色。这其中有没有产生什么新的变化?还是说其实本质上没有太大不同?

     

    Jason Ginsberg:我认为底层的设计逻辑和核心要素其实没有变,关键变化在于谁在主导界面交互。而在这个核心框架下,其实可以演变出无数种交互形式。就拿交互的抽象层级来说,一年前大家使用Agent的时候,都恨不得盯着它的每一步操作,全程 “盯梢”。但现在 Agent 的操作步骤变得无比繁杂,用户根本看不过来。所以我们需要优化信息呈现方式:如何对操作步骤进行分组?如何提炼关键信息?

     

    当用户足够信任 Agent 的操作后,我们就需要把重点放在文件的实际修改内容上,并且为这些修改添加更详细的注释说明。当然,我们也可以进一步提升交互的灵活度,比如聊天对象不再局限于单个 Agent,而是可以同时和多个 Agent 对话。这就需要一套更智能的后台交互逻辑来支撑 ,系统要能识别用户在和哪个子 Agent 对话,并且协调这些 Agent 完成对应的修改。未来这种交互的抽象层级还会不断提升。

     

    Harrison Chase:你觉得交互的抽象层级最高能达到什么程度?我知道预测未来很难,但还是想听听你的看法。

     

    Jason Ginsberg:我觉得未来,我们现在看到的各种操作选项,如选择模型、选择功能模式、选择运行环境这些都会逐渐消失。最终的交互模式会变得像和真人对话一样自然。但这并不意味着任何人都能随便写代码,在那个阶段,这个工具依然是为专业工程师服务的。因为你还是需要具备专业的行业术语知识,清楚自己想要修改的内容是什么。做产品的人,要明确自己想要的工作流程和功能需求;做基础设施的人,要足够了解代码库,知道什么样的架构和系统设计最适合当前要开发的项目。

     

    而且我想强调的是,随着抽象层级的提升,我们并不会摒弃现有的功能。用户依然可以随时深入底层,查看细节、调整参数。只是产品的默认交互方式会不断优化升级。

    Cursor 内部工作揭秘:少审代码、高频反馈

    Harrison Chase:你之前提到了人类在 Agent 工作流程中的角色,比如查看代码差异、进行代码审查。你觉得 AI 会给代码审查工作带来哪些改变?

     

    Jason Ginsberg:首先,就我们产品团队的工作模式来说,现在人工审查的比重已经大幅降低了。我们有一个叫 BugBot 的工具,它会自动检测代码问题,并且自主完成修复,还会在持续集成(CI)流程中不断迭代优化。这个工具的表现非常出色,也让我们对 AI 审查的代码质量更有信心。

     

    其次是信息的语义化分组。用户查看代码差异时,可以清晰地看到 Agent 做了哪些修改。我们甚至可以展示 Agent 的原始指令,更理想的状态是,Agent 能够像人类一样,在处理大型代码合并请求时,为每一处修改附上注释,说明这么做的原因。我觉得这虽然算不上颠覆性的变革,但确实能给代码审查工作带来显著的优化。

     

    Harrison Chase:出于好奇,我想问一下,Cursor 的工程师用 Cursor 写代码,用 BugBot 审查代码,那他们还需要和其他工程师沟通协作吗?

     

    Jason Ginsberg:哈哈,这个问题很有意思。如果你以工程师的身份加入 Cursor,会立刻发现一个现象:所有人都在深度使用自家产品。我记得我入职第一周的时候,修改了一个快捷键设置。那个快捷键是 Alt+Shift+Command+J,非常冷门,我当时觉得选这个键肯定没人会注意到。结果刚改完不到半分钟,就有三个同事在 Slack 上发来消息:“你改的这个快捷键直接打乱了我的工作流程!到底怎么回事?”几乎任何产品改动,都会立刻收到同事们的强烈反馈。我觉得这其实是一件好事,大家就是在这种高频的反馈和交流中,快速推进产品迭代的。

     

    Harrison Chase:从组织管理的角度,你们有没有采取什么措施来鼓励或者引导这种高频反馈的协作模式?毕竟大量的反馈涌进来,有时候也会让人应接不暇。

     

    Jason Ginsberg:在我创办自己的公司之前,工程师们也会用邮件沟通,但用得并不多。大家甚至会说:“邮件只用来收垃圾邮件和购物通知,可别用它来发长篇大论的工作内容。”而在Agent这个赛道工作,其实完全不需要依赖邮件这种低效的沟通方式。我们团队的所有人都全身心投入工作,毕竟这是一个竞争非常激烈的领域,大家都对产品开发充满热情,会自然而然地用各种即时沟通工具协作。

     

    另外,我在规划产品功能时,会遵循一个核心原则:我能开发什么功能,让自己的日常工作更轻松? 具体来说,就是思考 “做什么能帮我明天更高效地完成工作,不用再处理那些烦人的报错和问题”。这个原则指导着我们的大部分工作。毕竟这种功能开发出来之后,我们自己能立刻受益,比如修复了一个烦人的漏洞,以后上班就不用再被这个问题困扰了。

    迭代狂飙背后,核心功能竟来自员工 “自嗨”?

    Harrison Chase:你觉得你们的产品路线图,有多大比例是由 “让自己工作更轻松” 这个需求驱动的?又有多大比例是来自外部用户的需求?这个比例随着公司发展有变化吗?

     

    Jason Ginsberg:这个比例确实随着公司规模的扩大在变化。现在我们也会制定月度的产品路线图和目标,但说实话,我们很多核心功能都来自自下而上的创新。比如 Cursor 的Agent功能,这可以说是大家提到 Cursor 时最先想到的核心功能。这个功能是我们团队的一个人开发的,最开始所有人都不看好这个想法,但他很快做出了原型。大家试用之后都惊叹:“哇,这东西居然真的能用!”

     

    我之前提到的调试模式也是如此。感恩节假期的时候我闲着没事,就开发了这个自己很需要的功能,现在这个功能也即将上线。这些功能的开发初衷,都是为了解决团队内部的需求。我们判断一个功能是否具备发布条件,一个重要的衡量标准就是内部的使用率和认可度。

     

    Harrison Chase:你们的产品迭代速度快得惊人,是怎么保持这种高效的开发节奏的?

     

    Jason Ginsberg:说实话,我们的工作流程其实非常精简,没有太多繁琐的制度。公司里虽然有几间会议室,也有一两位产品经理,但我们很少通过撰写文档或者开对齐会议来推进工作,大部分的讨论和决策都是在代码层面完成的。而这一切能够实现的核心原因,是我们对人才的极高要求。今年年初的时候,公司总共也就 20 人左右。之所以团队规模增长缓慢,就是因为我们的招聘门槛高到近乎苛刻。我们会反复评估:这个人很优秀,但他能成为团队里最顶尖的那批人吗?

     

    正因为团队里的每个人都足够出色,所以我们可以放心地把任务交给任何一个人。团队成员的主观能动性都极强,从提出想法、设计用户体验,到在推特上回复用户的支持请求、和企业客户沟通需求,再到最终将功能落地,整个流程都能独立完成。所以说,我们能保持这样的速度,归根结底还是人的因素。

     

    Harrison Chase:你们是如何规划产品路线图的?你刚才提到了以月为单位的规划周期,这是目前的常规规划时长吗?有没有更长期的规划?另外,行业技术迭代的速度实在太快了,你们是如何平衡 “跟进现有技术浪潮” 和 “实现技术跨越式发展” 这两者的?会不会主动预判技术趋势,提前布局未来方向?

     

    Jason Ginsberg:我们确实会投入不少精力去思考未来,比如预判未来三个月可能实现的技术突破,然后主动押注相关方向,团队里有相当一部分人都在做这类前瞻性的工作。我们制定的月度路线图更多是围绕核心产品功能展开,聚焦于用户的实际需求以及那些能优化日常使用体验的功能。而那些需要投入两个月时间重构底层逻辑的重大项目,则会纳入更长期的规划范畴。

    此外,我们的应变能力其实非常强。

     

    有时候我们会提前拿到新模型的测试版本,试用之后如果发现它在某些方面表现特别出色,团队成员往往会主动利用周末时间加班,争取在新模型正式发布前就完成相关功能的开发。很多重要功能其实几天之内就能搭建完成。

     

    Harrison Chase:说到模型,你们发布了自研的 Composer 模型。开发这个模型的初衷是什么?目前用户的使用情况如何?这个模型有没有改变大家使用 Cursor 的习惯?

     

    Jason Ginsberg:我们发现,工程师使用我们产品时的编码场景,需要有专门适配的模型来支撑。Composer 模型就是针对这类场景打造的,它定位非常明确,具备速度快、质量高、逻辑智能三大特点,尤其适合 “人机实时协作” 场景。我自己做前端开发时就经常用它,因为我需要频繁做出细微的交互设计决策,这就要求 Agent 能在几秒内给出反馈。Composer 就像一个高效的协作伙伴,能快速响应需求、碰撞想法,和那些适用于长周期异步任务的模型形成了很好的互补。

     

    Harrison Chase:Cursor 的 Agent 相关研发工作是全员参与,还是有专门的团队负责?

     

    Jason Ginsberg:我们确实有专门的团队负责 Agent 的性能优化,他们主要聚焦于工具链、调度框架的搭建以及效果评估。但正如我之前所说,我们的团队架构并不僵化,没有严格限制大家的工作范围。比如核心产品团队的工程师在开发规划模式时,如果需要对Agent进行调整,就会和Agent团队密切协作。而且在开发过程中,我们依然会深度使用自家产品进行测试,团队成员会分享使用感受,以此来评估功能的实际效果。

     

    Harrison Chase:无论是 Agent 团队的成员,还是其他团队中擅长 Agent 研发的工程师,他们身上有没有什么共同特质?他们的专业背景或者个人能力有没有什么特别之处?

     

    Jason Ginsberg:我觉得他们大多是偏产品方向的人才,而不是传统意义上的机器学习或算法研究专家。这些人经常在不同团队之间轮岗,因为Agent研发需要对用户的最终使用体验有很强的直觉,同时还要能准确解读团队的反馈意见。

     

    Harrison Chase:上周你们和 OpenAI 合作发布了一篇博客,内容是针对 OpenAI 的新模型优化 Cursor 的 Agent 调度框架。我在推特上经常看到大家讨论 “Agent 调度框架” 这个概念。你们是如何看待模型的底层支撑架构的?这类架构是否需要和特定模型深度绑定?比如 Composer 模型和 CodeLlama 模型,对应的架构会不会有很大差异?

     

    Jason Ginsberg:我其实没有深度参与这方面的工作,但据我了解,我们的核心目标是打造高度灵活的架构。毕竟我们需要不断尝试新技术、新功能模式,所以架构必须能够随着模型能力的升级快速适配。

     

    Harrison Chase:很有道理。毕竟整个行业都在飞速变化。

    开放问答

    提问者 1:刚才提到了新增的可视化浏览器功能,我发现有些工具比如 Lovable 也有类似的功能。请问这个功能是朝着 “沉浸式可视化编码” 的方向发展吗?

     

    Jason Ginsberg:我觉得它并不是为沉浸式可视化编码设计的。就像我之前说的,这个功能最初是我为自己开发的,我本身就是一名做产品的工程师,它的核心用户群体其实是专业工程师和设计师。大家在开发应用时,肯定都遇到过这种情况:精心设计的界面,最后却变成了大家都看腻了的紫黄渐变配色。这个功能就是为了让大家能够精准把控细节,比如把内边距调整到精确的像素值。它为用户提供了一套更直观的 “视觉化操作语言”,比纯文本指令的精度更高。

     

    而且就算不使用侧边栏,你也可以直接点击页面元素,随时输入提示词下达指令。借助这个功能,你可以在几秒内同时启动六个 Agent。如果开启热重载功能,你的网站会实时呈现修改效果,用起来其实还挺有意思的。

     

    提问者 2:我特别喜欢你们的浏览器 Agent,一直在用。但我发现一个小瑕疵:我想持续迭代优化设计方案,可 Agent 总是会中断我的工作,直接提交代码合并请求。未来有没有可能实现不间断的持续迭代?

     

    Jason Ginsberg:当然可以。未来的发展方向就是让 Agent 具备自主评估能力,根据需求长时间持续运行、循环迭代。现在的调试模式还需要人工点击按钮来确认日志信息,但这只是过渡方案。理想的状态是,Agent能够自主完成评估、迭代,直到彻底解决问题。

     

    提问者 3:我不知道你是否深度参与 Agent 相关的研发工作,但我注意到 Cursor 的内存管理功能做得很好。它可以根据工程师个人、部门乃至整个公司的偏好、规则和流程,自主管理相关信息。我们都知道,信息和上下文对 Agent 来说至关重要。请问你们有没有计划进一步拓展和升级这个功能?尤其是在长上下文处理方面,你们有什么思路?

     

    Jason Ginsberg:我们正在进行大量的实验和探索。目前已经落地了规则管理、内存记忆、技能库等多个功能模块。现阶段,我们主要在研究高效的信息摘要技术。另外,借助我们的自研模型,我们也在探索让模型自主识别对话或代码中反复出现的关键信息。当然,跨组织的信息共享功能也很值得探索。不过这里有个需要注意的点,相关规则和信息可能会随着模型的迭代而过时。所以我们必须确保用户能够轻松更新这些内容,避免被过时的规则束缚。

     

    提问者 4:关于你们发布的 Composer 模型,我认识一些开发者,他们基于 Gemini 模型微调了一个医疗领域的专用模型。但他们发现,这个微调后的模型效果还不如直接用原生 Gemini 模型做单次提示词调用。他们分析的原因是,微调模型需要持续维护,要跟上 Gemini 等基础模型的更新节奏。请问你们是如何制定策略,确保 Composer 模型不会落伍的?

     

    Jason Ginsberg:你说的是 Composer 模型,对吧?我们会持续对它进行迭代优化,它并不是一个静态的模型。我们的核心关注点,是在速度和智能之间找到最佳平衡点,满足 Cursor 用户在大部分场景下的需求。不过在长上下文处理这类特定领域,我们确实还有提升空间。

     

    提问者 5:我自己是产品经理,一直在用 Cursor 做原型开发,甚至在团队里还客串设计师,用它替代 Figma。我很好奇,有没有用户是在使用 Cursor 之前,从未安装过任何集成开发环境(IDE)的?这类用户会不会成为你们未来重点关注的群体?毕竟现在的编码 Agent 已经足够强大,很多工作都能在上面完成。

     

    Jason Ginsberg:坦白说,我们目前并没有把这类用户作为核心关注点。当然,我们认同工具的使用门槛确实需要不断降低,而且 Cursor 的易用性也在持续提升,比如新增的浏览器工具对设计师就很友好。但我们的核心目标,其实是赋能顶尖工程师。我们一直在思考:如何让世界上最优秀的工程师变得更加强大?在这个过程中,我们开发的工具自然会惠及更多人群。不过在产品优化方面,我们确实还有很多工作要做,如优化新手引导和环境配置流程。毕竟设计师和产品经理在配置 GitHub 等工具时,经常会遇到困难。我们希望通过优化这些环节,吸引更多用户尝试 Cursor。

     

    提问者 6:我一直在尝试用 Cursor 做智能合约的验证矩阵构建和试运行逻辑测试。请问在深度质量检测和安全加固方面,有没有什么不太为人知的实用工作流可以推荐?或者刚才提到的调试工具能不能派上用场?我对智能合约的质量检测特别感兴趣。

     

    Jason Ginsberg:说实话,我们正在尝试让 Agent 自主完成测试工作,不过这项功能目前还没有完全发布。对于从事质量检测工作的人员来说,我强烈推荐试试我们刚发布的调试模式。这个功能定位问题的逻辑非常清晰,几乎可以说是确定性的,用起来会很有帮助。

     

    提问者 7:您认为未来两到四个月,Cursor 面临的最大机遇是什么?会不会是语音 Agent?

     

    Jason Ginsberg:我觉得机遇不在于语音 Agent。用户现阶段最核心的需求,其实是让 Agent 变得更智能、运行时间更长、能处理的任务更多。现在的很多 Agent,本质上只是在 “读取代码”,并不能真正判断修改后的代码是否有效。未来的发展空间非常大,我们可以投入更多算力,让 Agent 承担更多人类目前负责的校验工作。我觉得未来三到六个月,整个行业都会迎来巨大的变革,非常值得期待。

     

    参考链接:

    https://www.youtube.com/watch?v=dKSGK-fPFyU

    欢迎收看本期《派评》。你可以通过文章目录快速跳转到你感兴趣的内容。如果发现了其它感兴趣的 App 或者关注的话题,也欢迎在评论区和我们讨论。


    Focast:高保真环境音专注应用

    • 平台:macOS
    • 关键词:白噪声、专注计时

    @ElijahLee:Focast 是专为 Mac 平台开发的专注应用,提供了丰富的高保真自然环境音,并结合专注计时功能, 帮助你在学习、工作或阅读时进入专注状态。

    Focast 的亮点是提供了 90 多款高质量的环境音,包括雨声、海浪、森林、火堆、鸟鸣等自然音效。除了常见的声音外,应用竟然还有很多独特的日常氛围音,比如鸭嘎嘎子叫、搅拌鸡蛋液的声音、在厚厚的雪地步行的声音。所有声音都由声音艺术家现场录制,并可以无断点持续循环,让你在聆听环境音时快速沉浸并持续专注。

    与一般的白噪音应用不同,Focast 的另一个特色是混音(Mix)功能。对于自带的环境音,应用提供了两种模式。Solo Mode 只能选取一中环境音播放;而 Mix Mode 可以叠加多个音轨同时播放环境音,比如同时选择雨林(雨滴打落在树叶的声音)、鸟鸣(远处鸟的鸣叫)和后院(夜晚虫鸣鸟叫)。基于环境音的组合,我们可以搭配出丰富的现实音效,还原真实世界中的场景。Mix Mode 下, 对于中意的搭配组合,我们还可以保存混音,便于以后一键播放。

    除了内置环境音的混音之外,Focast 还支持与 Apple Music、 Spotify、或 YouTube 一起播放,应用会将环境音叠加在背后播放,并可以独立控制环境音的音量。

    在 Focast 我们可以自由地创建专注与休息时间段,应用默认提供 10、25、40、60 分钟的计时器,并且支持自定义设定,使用快捷键也可以快速启动。启动专注计时后, 应用在菜单栏的图标会显示可视化倒计时,帮助你更好地查看专注时段。在专注计时结束时,Focast 会发出一声温柔的提示音作为结束,应用也支持我们修改这个音效,非常贴心。

    专注日历视图功能,可以让你回顾专注天数与连胜记录,如果你非常需要养成专注习惯,使用这个记录来保持连胜会非常有用。应用还支持 iCloud 同步,对于声音设置、计时器、统计数据等,都可以通过 iCloud 在设备间同步。

    你可以可以在 App Store 免费下载 Focast,免费版提供了非常有限的基础功能。付费订阅后可以全部环境音、自定义混音、自定义计时器等。价格为每年 38 元或买断 88 元。对于按年订阅,应用提供了长达 14 天的有效期,如果你感兴趣可以在两周时间内充分体验后再决定。

     


    三星浏览器 Windows Beta 更新:现已解除区域限制

    • 平台:Windows
    • 关键词:三星、浏览器

    @大大大K:三星浏览器在此之前已经上线过 Windows 平台,但后来因多种原因不再提供安装。不过前段时间,三星突然又重新推出了 Windows Beta 版,而且现在任何区域的用户都可以通过指定链接下载安装(虽然页面中还是显示仅限韩国和美国)。如果你正在使用国际版的三星浏览器 Android 版,也会在浏览器首页看到链接推送。

    在 UI 方面。新版客户端和两年前的版本差别不大,依然保留了极具特色的侧边栏功能。其中的「已同步设备」功能可以同步手机端浏览器的快速启动页,并以移动设备模式浏览网页内容;日历功能则直接与三星账户中的日历事项同步,并支持添加 Google 账号显示 Google 日历。如果有需要,可以在侧边栏下方添加新的网址。

    快速启动页做了小幅升级,支持更换背景以及添加设备同步、隐私报告、天气时钟等小组建。值得一提的是,设备同步功能可以将手机版浏览器的标签页在这里显示,实际测试下来,手机端新开标签页同步速度非常快,但关闭标签页之后的同步会比较滞后。

    Windows Beta 版中的「浏览助手」功能包含了摘要提取和翻译功能,其中摘要提取来自于 Galaxy AI。该功能的使用效果与手机版相同,可以由 AI 总结网页内容供你参考,不过可能是由于网络或其他限制,连接云端 AI 时会报错,有条件的用户可以自行测试。

    翻译功能应该是来自于 Google 翻译,同时浏览器支持原文和译文分屏对照,学术用户群体使用起来会更加方便。

    除此之外,三星浏览器手机版支持将登录信息保存在 Samsung Pass 中(包括国行用户),Windows Beta 版也支持该功能,但要求电脑中安装有 Samsung Pass 客户。但 Samsung Pass 客户端有机型限制,所以目前处于不可用状态。不过考虑到 Windows Beta 采用了 Chromium 136 内核,支持 Chrome 插件,还是建议大家使用专业的密码管理器和浏览器插件使用。

    如果你是三星用户,想要拥有更完整的 Galaxy Ecosystem 体验,可以前往官方网站体验该 Beta 版。浏览器强制安装于系统盘,并且过程中会同步安装三星账户和三星智能服务组件并创建开始菜单项目,大家记得留出足够的空间。


    Quiche Browser:自定义布局浏览器

    • 平台:iOS
    • 关键词:浏览器

    @Snow:Quiche Browser 是 iOS 平台上一款第三方浏览器应用,在这个全员「卷 AI」的时代,它并没有引入先进的对话式引擎,也没有借助算法智能排列标签优先级,而是将交互自主权交还给用户,让用户可以从丰富的功能按键中自由排列组合,打造自己理想中的浏览器。

    浏览器底部的 Toolbar 是 Quiche Browser 自由度最高的一个区域,但应用并没有丢给你「一张白纸」任意发挥,而是在设置中提供了 16 种布局预设,你可以根据自己的使用习惯选择其一,再在预设之上进行微调。

    应用提供了超 40 个交互按键,从高频使用的前进、后退、刷新、新建标签页等,到一般配合快捷键使用的缩放、查找、快速定位等均有覆盖,你可以自由选择按键,并在预设的框架里布局使用。以常规的双行布局为例,第一行除地址栏外最多设置 4 个按键,第二行最多设置 7 个按键,如果你还有高频使用的功能,则可以将其安置在更多菜单中。

    Quiche Browser 就是借助这种「有限的自由」,让应用可以在满足用户个性化需求的同时依旧保持美观。

    Quiche Browser 还可以对地址栏的展现进行微调,例如在地址栏中选择性展现域名、完整地址、页面标题以及网站图标,调整文本左对齐或居中对齐,展现阅读时长等。在交互上,你则可以为短按和长按地址栏设置触发不同动作,进一步提升交互效率。

    除了页面交互外,Quiche Browser 还提供了一些功能性补充,来弥补其不支持第三方扩展的缺憾。应用默认开启广告拦截功能,并内置了三套拦截规则,你可以按需进行开关,不过目前暂不支持添加自定义规则。

    应用还支持为所有网页强制开启深色模式,如果你订阅了 Quiche Plus 服务,则还支持自选主题配色。应用还支持对默认搜索引擎、隐私模式、后台刷新、用户 UA 等多个功能项按需调整,更详细的应用介绍你可以点击此处了解。

    应用包含一项订阅式内购,你可以按 22 元 / 月 或 198 元 / 年价格订阅,付费后可以解锁多主题深色模式、单手操作模式,以及更多的按键样式和应用图标,鉴于以上功能并不会严重影响浏览器主要功能,建议使用一段时间再按需付费。

    你可以在 App Store 上免费下载 Quiche Browser。

     


    Activas:本地 AI 健康分析助手

    • 平台:iOS / iPadOS
    • 关键词:健康追踪、数据分析

    前段时间,OpenAI 推出了 ChatGPT Health 功能,在 iOS 客户端上甚至可以直接导入健康 App 中的数据进行分析和建议。不知道此举会不会让 Apple 觉得「后背一凉」,毕竟 Apple 自己画的增强版健康助手的大饼迟迟没有实现。

    如果你已经等不及那一天的到来,也不想把自己的数据泄漏给 OpenAI,那么不妨试试 Activas 这款应用,它采用了 Apple 的 on device ML 接口来进行数据分析,可以基于我们的健康数据给出对应的建议。

    打开 Activas 后,应用会申请获得 Apple Health 的数据权限,进行简单的配置后就可以进入 Dashboard 了。在这里,我们可以看到应用对我们的身体情况进行一个综合打分,点击进入详情页还可以看到评分变化的具体原因。

    在 Insight 模块,AI 可以当前的健康数据给出一个总结。再往下,可以看到 Activity、Nutrition、Sleep、Vitals、Body Measurements 等不同领域的数据展示。点击任意一个模块,就可以进入 Activas AI 标签页,在这里 AI 会根据入口的不同给出相应的分析和建议。

    不过,这个健康 Chatbot 只能基于预设的问题进行问答,并不能自由地输入自己想问的问题,这方面显得有点局限。

    总的来说,这款应用的功能非常简单,更多的是基于 Apple 设备端 AI 能力的一次技术展示。这款应用可以在 App Store (外区) 免费下载使用,没有内购选项;其中 Insights 以及对话功能需要启用 Apple Intelligence,数据展示、趋势图表等基础功能则无限制。

     


    什么时辰:结合日历、万年历和黄历的趣味时间应用

    • 平台:iOS / iPadOS / macOS / watchOS
    • 关键词:日历、万年历

    @化学心情下2:作为一个相当传统的中国人,日历的作用不仅仅是知道今天是周几、几月几日、需要安排哪些日程,还有看节气、翻老黄历等特有的功能,虽然看上去有些「迷信」但却也是中国传统民俗的一部分。但就从使用上,我见到的更多是独立的黄历、万年历等 app,而将日历、万年历、老黄历等结合在一款应用上的则比较少见,《什么时辰》就是近期我找到的一款设计优美的趣味时间类应用。

    什么时辰,从应用名就不难看出,这款应用强调的是中国传统计时方式。打开应用首页,就可以看到时钟以及对应的时辰,还有农历上对应的月份和日期,并且应用还进行的标注的每一个时辰的拼音注脚念法,比如当下是「未时」,就在「未」上加注了拼音 Wei。

    以 Mac 版为例,通过顶部的 Tab 页,你可以切换到不同的日历类型中,比如万年历部分除了可以以月的形式查看日期之外,还可以看到对应的农历信息、黄历的今日宜忌以及近期的 24 节气和节假日信息,切换到日历事件则可以读取 macOS / iOS 的系统日历事件信息。

    切换到老黄历则会显示今日宜忌、时辰宜忌、今日胎神、吉神宜趋以及凶神宜忌等信息,对于不是很了解里面内容的朋友,还可以点击右上角的帮助按钮来获得解析信息。

    什么时辰还提供了两项我认为相当实用的小功能:一个是节日推送提醒功能,除了可以定时收到当日的节日提醒,还可以选择开启指定类型的节日,目前可以选择的节日类型包括法定节假日、传统节日、节气、国内节日、国际节日、道教节日、佛教节日、七十二侯、三伏日、数九日。

    另外一个就是小组件部分,现在 macOS 支持将小组件添加到桌面,而恰好什么时辰提供了种类繁多的小组件,比如我个人喜欢就非常喜欢时钟加上时辰的这种小组件,这样可以看一眼桌面就知晓当下的时间,比起是不是瞄向右上角看时间要更方便一些。

    总的来说,无论是功能还是设计上,什么时辰将多种形式的日历形式进行巧妙融合,让我们通过一款应用就可以查询日历、万年历、老黄历的信息。如果你希望找一个设计优雅功能全面的传统时间类的应用,不妨体验下这款 app,你可以在 App Store 下载该应用,应用价格为 8 元。

     


    App 速报

    • Apple 宣布将于 1 月 29 日推出 Apple Creator Studio 订阅服务,包含 Apple 旗下 Mac 和 iPad 平台的各个专业创作 app,其中 Pixelmator Pro 也将推出适配 iPad 的版本,并会为 iWork 办公套件及无边记 app (稍晚) 推出高级模版和订阅内容。该服务订阅价格为 38 元 / 月、380 元 / 年。
    • Apple 与 Google 宣布将由 Gemini 为新版 Siri 提供 AI 技术支持。


    > 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

    > 实用、好用的 正版软件,少数派为你呈现 🚀

      作者:Shier Han | Founder of PengoPay

      在过去的半年里,我们深入调研了稳定币支付赛道,从线下零售到跨境贸易,再到B2B结算,最终得出结论:B2B场景是目前稳定币支付最具潜力的切入点。为此,我们团队将在 2026 年 2 月份推出一款面向B2B企业的稳定币收款产品,帮助企业更高效、更低成本地接收稳定币支付。

      在这段市场探索过程中,我们形成了以下几点关键认知:

      一、行业背景:稳定币的万亿未来

      市场共识日益清晰:美元稳定币规模将持续增长,未来3~5年内有望突破万亿美元市值。这一增长不仅源于加密货币生态的内部需求,更来自传统金融领域对高效结算工具的渴望。跨境贸易、企业间结算、供应链金融等场景正在成为稳定币应用的新前沿。

      二、牌照与合规:成本与现实的冲突

      当前稳定币支付业务面临一个尴尬现实:并没有专属于稳定币支付的牌照体系。即便有政府机构颁发相关许可,也是将其纳入传统支付牌照框架。如果涉及资金托管,则需要申请与加密货币交易所同等级的牌照,成本极高。

      这种监管滞后性导致了一个矛盾:稳定币支付创新者要么承担不合理的合规成本,要么在灰色地带冒险展业。

      三、“高风险、低回报”的全托管陷阱

      许多早期稳定币支付产品采用全托管钱包模式,但这隐藏着巨大风险。全托管方案的风控成本直接对标中心化交易所,需要同等水平的安全体系、合规团队和保险措施,否则极易因安全问题或资金挪用而暴雷。

      更关键的是投入产出比问题:一个稳定币支付产品年度处理的资金规模,可能还不及一家中型交易所单日的交易量,却要承担相近级别的合规与风控成本。这种“小马拉大车”的模式难以为继。

      四、真正的赢家:卖铲子的人

      在稳定币支付这波浪潮中,我们观察到基础设施和服务提供商往往比直接做支付的产品更有发展空间:

      钱包解决方案服务商
      KYT/AML风控服务商
      KYC/KYB身份验证服务商
      Off-Ramp法币兑换机构
      这些“卖铲子”的公司为整个行业提供工具和服务,风险相对分散,标准化程度高,更容易实现规模化。

      五、明确的自杀行为:三条死路

      通过市场观察,我们已经清晰看到哪些做法“大概率会死”:

      1. 重金追逐牌照

      除非背靠大型金融集团,否则独立创业公司投入大量资源申请和维护全系列金融牌照,往往会在产品验证前耗尽资源。

      1. 全托管资金方案

      为用户托管资金意味着承担交易所级别的风险,却只有支付级别的收益。一旦安全出问题或内部管控失效,信任将瞬间崩塌。

      1. 亲自下场做出入金

      建立稳定的法币通道需要极强资源,而为了业务增长放松KYC要求或降低AML标准,则是饮鸩止渴,终将招致监管重锤。

      六、持久战思维:先进场,保持在场

      稳定币支付行业充满想象空间,但当前阶段能做的事情比想象的少。这是一场持久战,需要耐心、节奏感和生存智慧。

      我们认为,成功的关键在于:先进入这个领域,并确保自己能够持续留在场上。

      这需要我们:

      选择轻资产、可扩展的商业模式
      与专业合规服务商合作而非自己重建轮子
      聚焦核心价值,不做大而全的解决方案
      保持灵活,随时准备调整方向


      最后

      我们即将推出的B2B稳定币收款产品,正是基于这些认知的产物。首先,我们不托管用户资金;正是因为选择不托管资金的方案,所以我们在合规层面不用自建复杂的合规体系;此外,我们也不会涉足高风险的法币出入金通道业务。相反,我们专注于解决企业接受稳定币支付的实际需求,与专业服务商和合规持牌机构合作构建安全合规的解决方案。

      稳定币支付的未来是光明的,但道路是曲折的。在这个新兴市场中,克制比野心更重要,生存比扩张更紧迫。我们选择以谨慎乐观的态度入场,以持久战的心态布局,相信只要保持在场,就能等到行业成熟、价值兑现的那一天。

      这场无国界支付变革已经开始,我们正在路上。

      说到企业管理,ERP系统早已不是新鲜词。但如今,光在电脑上用可不够了——移动办公成了刚需。老板在外想看一眼业绩,销售跑客户需要随时查库存,生产主管在车间也得能报工……一个好用、流畅、功能实在的移动ERP,已经成了企业效率的隐形引擎。

      市面上叫“移动ERP”的产品不少,但哪些是真正好用、能落地的?我们结合市场口碑、产品能力、客户案例和服务模式,给大家测评出下面这5款值得重点关注的系统。排名不分绝对先后,但各有千秋,帮你找到最适合的那一个。

      1. 用友YonSuite

      用友作为国内财务和管理软件的“老大哥”,其云原生ERP套件YonSuite在移动端的表现相当扎实。

      核心亮点:

      业财一体化深度好:这是用友的传统强项。从销售订单、采购入库到自动生成凭证、财务报表,移动端也能查看完整的业务流和资金流,特别适合对财务合规要求高的企业。

      场景化应用丰富:针对销售、采购、仓库、生产等不同角色,提供了专属的移动工作台。比如,销售员用手机就能完成客户跟进、报价、合同申请;仓管员用手持PDA或手机就能扫码入库、盘点。

      生态连接能力强:能较好地对接到企业微信、钉钉,方便日常审批沟通。

      需要注意的点:

      作为标准化产品,深度个性化定制能力较弱。如果你的业务流程非常特殊,需要大改系统逻辑,用友可能更倾向于复杂的二次开发,成本和周期都较高。

      产品体系庞大,对于中小型企业来说,部分高级功能可能用不上,但依然需要为此付费。

      适合谁: 业务相对规范、尤其看重财务模块严谨性,且不希望IT运维太复杂的中大型企业或成长型企业。

      2. 支道

      https://www.zdsztech.com

      如果你想找一款既够用又能随时跟着业务变的系统,支道值得放在前面仔细看看。它的核心思路是提供一个无代码开发平台,让企业自己能像搭积木一样,搭建和调整ERP、CRM、项目管理等各种应用,并且天然支持多端同步。

      为什么它值得关注?

      真正的“业务主导”:最大的不同在于,它改变了软件开发的逻辑。传统ERP是你提需求,厂商开发,周期长、改不动。支道提供的是表单、流程、报表等可视化引擎,企业自己的业务人员(经过简单培训)或实施顾问,就能通过“拖拉拽”配置出贴合实际流程的系统。业务怎么跑,系统就怎么配,上线阻力小。

      移动端与PC端同源一体:在PC端配置好的功能(如一张自定义的采购申请单、一个独特的质检流程),会自动适配手机端,无需单独开发。员工在外通过APP或集成到微信/钉钉里,就能完成全流程操作。

      性价比与长期灵活性:对于成长型企业,业务变得快是常态。支道模式避免了“过两年系统就不适用,推倒重来”的窘境。它按账号收费,无流量和算力限制,支持私有化部署且成本相对可控。这意味着你买的不只是一套软件,更像一个可持续生长的数字能力中心

      行业方案接地气:从提供的材料看,它在生产制造、工程服务、贸易等行业有大量落地案例,解决方案直接针对这些行业的痛点(如生产进度跟踪、项目成本核算、多仓库存管理),不是泛泛而谈。

      需要注意的点:

      无代码模式在初期需要认真的业务梳理和配置投入,虽然比写代码快,但依然需要企业和实施方紧密合作,把线下流程理清楚。毕竟使用该模式的目的就是要系统“合身”,那制作系统前的“量尺寸”自然要认真。

      适合谁: 业务流程独特、变化快的成长型中小企业;对成本敏感又需要深度适配业务的制造业、工程项目、贸易公司;以及那些被标准化软件“伤过”,渴望自己能掌控系统演进的企业。

      3. 金蝶云·星空

      金蝶云·星空是金蝶面向成长型企业的ERP旗舰产品,尤其在制造业领域口碑扎实。它的移动应用 “云之家” 深度集成,在移动端管理生产、供应链方面功能突出。

      核心亮点:

      制造业MES移动融合深:移动端可以查看生产任务、扫码报工、反馈工序进度、进行质量检验。实现了从订单到车间的数据贯通,管理者在外也能实时掌控生产现场。

      老板移动驾驶舱:为管理者提供的移动BI报表比较直观,关键经营指标(如订单交付率、库存周转、应收逾期)一屏可见,支持下钻分析。

      供应链协同便捷:供应商可以通过移动门户自主查询订单、确认交货、开具发票,简化了采购沟通。

      需要注意的点:

      与用友类似,复杂定制也需要走二次开发。其产品本身复杂度高,需要专业的实施顾问才能发挥最大价值。

      移动端某些深度操作(如复杂报表自定义)仍需回归PC。

      适合谁: 尤其是离散制造和装备制造企业,需要对生产环节进行精细化移动管理的场景。

      4. 纷享销客

      纷享销客起家于CRM,如今已扩展成覆盖CRM、办公协同、进销存、项目的“连接型CRM”。它的移动基因非常强大,整个产品设计就是以移动优先、销售驱动为核心的。

      核心亮点:

      销售团队体验极佳:移动端做客户跟进、商机管理、合同审批、业绩查看流畅无比。它把内外勤协同、审批流和业务流结合得很好。

      轻量级业务管理:其进销存、项目费用管理等功能,更偏向于支撑销售业务后端,满足中小型贸易、服务类企业的日常运营管理足够,上手快,易推广

      开放连接:通过PaaS平台和应用市场,能连接很多第三方工具。

      需要注意的点:

      深度财务、复杂生产制造、多工厂供应链管理等重型ERP领域,并非其强项。

      更像是一个“销售业务运营平台”,如果企业核心诉求是财务或生产,它可能需要搭配其他系统。

      适合谁: 销售驱动型公司(如快消、IT服务、互联网),核心需求是管好销售团队和客户,并轻量化管理配套业务。

      5. 简道云

      简道云是帆软软件旗下的应用搭建平台,与支道理念类似,同属无代码/低代码范畴。它以其极低的学习成本灵活的轻应用构建能力,在中小企业中非常受欢迎。

      核心亮点:

      简单易用,普及快:通过简单的表单、流程和报表设计,能快速搭建出如OA审批、进销存、设备巡检等各种管理应用。普通员工经过简短学习就能参与搭建。

      移动端适配优秀:搭建的应用在微信、钉钉、独立APP中都能完美运行,数据同步无感。

      性价比高:对于轻量级、部门级的管理需求,能以很低的成本快速满足。

      需要注意的点:

      应对极其复杂的业务逻辑、海量数据并发、多系统深度集成时,会显得力有不逮。它更像是一个出色的部门级效率工具和轻量化管理补充

      在完整的、体系化的ERP建设方面(如完整的MRP运算、成本精细核算),需要更专业的架构设计和深度开发。

      适合谁: 作为大型ERP的移动补充;或者满足中小企业、部门内部标准化、流程化的轻管理需求,是快速数字化的“敲门砖”。

      总结:怎么选?看阶段和核心诉求

      业务独特、变化快、想自己掌控,则强烈建议深入了解支道这类无代码平台。它用灵活性带来了长期的适配性和性价比,是企业构建“独家”管理系统的利器。

      移动ERP的核心,不是把屏幕变小,而是把管理场景延伸。在选择时,一定要想清楚:你的团队最常在移动端完成什么?是审批、跟进、查看数据,还是完成核心业务操作?结合自身的行业特和发展阶段,才能找到那款能让企业真正“跑”起来,而不是增加负担的工具。

      本文测评了 ONES Wiki、Confluence、Notion、BookStack、GitBook、MediaWiki、Microsoft SharePoint 等知识库管理工具,从知识组织能力、搜索/语义检索、协作集成与实践策略等维度展开全面分析,帮助中高层管理者、PMO、项目经理与产品经理做出科学选型决策。

      为什么“知识库管理工具”是未来组织的核心资产

      在信息碎片化、知识孤岛普遍存在的企业环境中,组织往往面临以下核心挑战:

      • 知识难以系统化组织:不同团队间信息分散在邮件、即时通讯、个人文档中。
      • 知识检索效率低:传统关键词匹配难以复现业务语义深层关联,而现代向量检索与语义搜索可显著提升知识可获取性。
      • 知识生命周期难以管理:从创建、审阅、发布到淘汰,不同阶段的知识如何有效治理是组织必须面对的课题。

      事实上,IDC 与 Gartner 都将“知识管理软件市场”视为未来企业数字化转型的重要增长引擎,并指出到 2026 年全球知识管理软件市场规模将持续增长,强调企业对 AI 驱动的“智能知识库”和“知识生态体系”需求显著增强。

      核心测评依据

      我们的测评框架不仅评估功能覆盖,还融入了专业信息架构设计,以增强语义可检索性:

      • 知识组织与结构层级:支持层级分类、元数据、关系映射等能力;
      • 智能搜索与语义理解:支持智能搜索、向量化检索或语义推荐能力;
      • 协作与集成生态:与任务/项目管理、协同工具的集成能力;
      • 治理与权限模型:支持 RBAC 权限、版本审批和知识生命周期管理;
      • 实践成熟度与业务效果:从业务场景落地效果和操作成本维度综合评估。

      热门知识库管理工具深度对比

      下面按工具核心能力类别进行分组评测。

      ONES Wiki — 文档协同和知识库管理

      作为国产研发管理平台 ONES 的知识库模块,ONES Wiki 支持丰富的知识组织层级、全文搜索、权限控制、版本可回滚与内容模板化配置。特别在与任务、需求、用例等实体数据的联动方面表现突出,对研发场景下知识沉淀、复用与交付评审形成闭环。

      核心业务价值点:

      • 项目级联动知识关联:在任务、需求中直接引用知识库条目或链接文章,实现“从工作项到知识库”的闭环。
      • 高级检索机制:支持全文索引、标签过滤和上下文匹配搜索,有利于快速定位与项目相关的知识内容。
      • 安全与权限控制:可根据组织角色设定访问权限,有助于保护敏感信息。

      实践场景:ONES Wiki 非常适合研发团队、跨部门协同项目和需要将知识沉淀嵌入日常研发流程的组织。尤其是在流程驱动型组织中,文档与任务的双向链接可以极大减少重复信息整理工作,并加速经验复用周期。

      Confluence — 企业级结构化知识管理标准

      Atlassian Confluence 支持高度结构化页面层级、空间权限、审批流程与丰富插件生态。

      核心优势

      • 内容结构化管理能力;
      • 与 Jira、Opsgenie 等协同工具无缝集成;
      • 企业级权限模型与安全治理机制完善。

      业务洞察:在大型企业跨部门协作场景中,Confluence 能将不同团队间文档碎片有机整合成统一知识体系。在实际项目落地中,采用基于角色分区管理、串联审批流程的知识库可显著降低跨团队沟通阻力。

      局限与注意事项:因其侧重结构化与流程化,如果团队以轻量型协作和快速迭代为主,初期部署与规范制定可能会提高上手成本。

      Notion — 灵活的知识库与协作空间

      Notion 将页面、数据库、模板和表格协作等功能整合到同一平台,是一种偏向轻量且可自定义的知识库系统。其最大特色是通过“块级构建”的方式,让知识库不仅仅是文档静态层级,更是灵活的知识与任务协同空间。

      主要优点:

      • 自定义数据库关系:团队可以根据自身业务场景创建定制知识结构。
      • 知识+任务一体化管理:Notion 同时支持任务、日程、文档和知识库内容。

      适用与局限:适合跨职能团队、小型组织或初创企业构建灵活且低门槛的协作与知识库体系。但在知识规模大、结构复杂的企业环境中,可能需要搭配规范制度,否则会出现内容混乱、检索困难等问题。

      BookStack — 开源 Wiki 工具

      核心能力:BookStack 用“书架 → 书籍 → 章节 → 页面”层级方式组织知识,使复杂的内容结构变得直观。作为开源工具,其优势在于可自主部署、低成本、易扩展。

      亮点功能:

      • 结构清晰:自然层级的内容组织方式非常适合架构大型知识体系。
      • 权限粒度控制:支持不同访问级别设定,便于精细化管理。

      适用场景:对于预算敏感、技术团队内部的知识管理,BookStack 提供了一个成熟且可控的开源解决方案。但在智能搜索、流程审批与跨产品集成方面表现有限。

      GitBook — 技术型知识库管理与版本协作平台

      核心能力:GitBook 是面向技术团队和文档发布场景设计的知识管理工具,重点在于Markdown 编辑、版本控制、发布流程和团队协作体验上,尤其适合 API 文档、技术手册和产品说明书等内容的管理。

      优势特点

      • 版本历史与回滚:支持详尽的历史版本管理,非常适合技术内容。
      • 开发者友好:与 Git 流程结合紧密。

      选型指引:如果你的组织以技术内容为核心(如开发文档、API 指南等),GitBook 是理想选择。但在“知识运营”或“业务流程学习库”等更广泛领域,则需要结合其他工具弥补功能。

      MediaWiki & 扩展 — 企业百科级知识库基础引擎

      核心能力与生态:MediaWiki 是维基百科使用的开源引擎,特别适合构建大型且协同贡献的知识库。其插件/分发版本如 BlueSpice 可提升企业级管理能力。

      功能亮点:

      • 大规模协同贡献支持
      • 扩展搜索与权限插件
      • 内容模板与结构化数据

      适用场景:适合构建企业内部百科、标准流程库或产品知识树。在复杂场景中可以通过插件补足权限管理、搜索强化等企业需求。

      Microsoft SharePoint — 企业内容治理与知识库融合平台

      核心能力与价值:SharePoint 在企业内容管理与知识库系统领域具备深厚基础,支持文档库、列表、工作流审批与权限治理等能力,与 Microsoft 365 其他组件协作紧密。

      适用建议:适合大型组织希望将知识管理与文档流程、合规治理、协同办公深度整合的场景。

      对比总结:选型依据与建议

      为了便于实操选型,以下是不同类型组织的推荐策略:

      知识库管理工具不再只是“文档仓库”,它们是组织认知地图、协作驱动引擎和智能决策支持平台。未来知识管理的核心不在于信息堆积,而在于让知识成为组织战略资源与数字化协作能力的核心引擎。选择合适的工具、建立科学的知识治理策略,并结合智能能力与实践落地,是构建高效团队的基础。

      频繁的需求变更不仅是技术问题,更是对团队沟通、评估机制和执行节奏的全面考验。本文围绕需求变更管理的核心话题展开,从评估、分类、执行到团队协作逐步剖析,并结合实际工具实践建议,帮助项目经理、团队负责人、PMO构建高效变更管理策略。

      什么是需求变更管理?

      需求变更管理不仅是变更列表和审批流程,而是综合考虑业务价值、风险、资源与团队节奏的系统方法。它包括:

      • 变更请求捕获与分类:清晰记录、结构化表达需求变化意图。
      • 影响评估:结合项目目标、风险、工期等维度衡量变更价值与代价。
      • 优先级排序与排期决策:建立一致性评估共识,而非单方决定。
      • 执行与反馈循环:确保变更执行可追踪、可复盘、可量化。

      现代研发管理系统支持从“需求池”到“迭代计划”一体化的变更处理方式,通过自定义状态和属性将变更请求纳入迭代流程,有助于提升团队的可预测性和追踪效率。
      高效管理需求变更的实战策略

      1. 统一变更入口与系统化分类

      为避免“邮件 + IM +口头沟通”造成的信息碎片化,我们建议:

      • 使用统一数字看板或研发管理工具收集所有变更请求;
      • 对需求变更进行预分类:_紧急合规变更/业务优化变更/低优先级探索变更_;
      • 明确变更提出者、影响范围和预期目标。

      在像 ONES 这样的研发管理平台中,可以通过自定义字段和变更状态,记录变更的提出时间、提出人和当前状态,并将这些请求自动组织到迭代计划或产品待办中,这样不仅便于评审,还能形成清晰的变更历史轨迹。

      2. 变更影响评估:从模糊诉求到定量判断

      对变更的评估不应停留在“业务需要 vs 计划冲突”,而应建立如下评价框架:

      • 业务价值权重(能否解决核心用户需求?)
      • 风险权重(影响范围是否涵盖关键系统?)
      • 资源与时间消耗(是否需要更多人数/额外计划)

      先进的项目工具还可以通过甘特图、燃尽图等视图,将变更影响直观地呈现在计划时间线上,有助于团队客观判断变更的代价。

      3. 分类处理变更:优先级排序与周期性规划

      不是所有的变更都适合立即执行。我们采用了以下三类处理策略:

      通过有序的优先级策略,团队成员不再频繁中断当前任务,而是在一个透明的看板上看到“变更何时影响我”,这有助于缓解团队的认知负担和情绪焦虑。

      4. 变更可视化与管理透明度提升

      使用变更看板、动态影响图、趋势报表等方法:

      • 直观记录每个变更阶段;
      • 提供变更“前后对比”视角;
      • 让相关方在同一可视化视图理解变化。

      在研发管理平台中,像 ONES 这样的工具可以将“需求变更状态”“迭代目标调整”“任务关联”等信息实时可视化,减少团队对变更影响的主观猜测,提高团队协作效率。

      5. 节奏管理:构建稳定迭代的护城河

      频繁变更最可怕的不是变更本身,而是失去可持续交付节奏。因此我们在实践中做到了:

      • 为每个迭代设定 范围冻结期;
      • 在例会中优先审查变更评估与排期,而不是“从头讨论每个变更细节”。

      有效的节奏管理能帮助团队维持稳定的发布周期,从而减少“变更挤占生产力”的负面反馈。

      经验复盘:变更管理如何提升团队信心

      在某大型系统交付阶段,我们曾持续 4 周每天重新排期。团队成员普遍感到疲惫。那一刻,我们意识到:变更冲击最大的不是任务,而是心理健康与节奏感的丧失。通过建立结构化评估、统一入口和透明优先级体系,团队渐渐恢复了可预测的工作节奏。

      这种真实的情绪体验不仅增强内容的人性化,也体现了落地工具在日常变更管理中的辅助价值。

      常见问题 FAQ:

      Q1: 什么是需求变更管理?
      需求变更管理是系统性处理需求调整的一套方法框架,包括变更提出、评估、排序、执行和反馈,旨在平衡变更价值与执行稳定性。

      Q2: 如何评估需求变更的价值?
      通过量化的评估体系,从业务价值、资源消耗与风险层面判断是否值得执行,并明确变更带来的影响。

      Q3: 是否所有变更都要立即执行?
      不一定。根据分类策略,将高价值优先级变更与常规迭代需求有计划地纳入流程,而不是即时打断当前节奏。

      深入 NVIDIA GPU:高性能矩阵乘法(Matmul)算子解构
      在本篇博文中,我将逐步介绍支撑最尖端(SOTA)NVIDIA GPU 矩阵乘法(matmul)算子的核心硬件概念和编程技术。

      为何选择矩阵乘法?

      无论是训练还是推理阶段,Transformer 模型的大部分浮点运算(FLOPs)都消耗在矩阵乘法中(如 MLP 中的线性层、Attention 的 QKV 投影、输出投影等)。这些操作具有天然的极高并行性(Embarrassingly Parallel),非常适合 GPU。掌握了矩阵乘法算子的原理,你就拥有了设计几乎任何其他高性能 GPU 算子的工具箱。

      本文分为四个部分:

      1. NVIDIA GPU 架构基础:全局内存、共享内存、L1/L2 缓存、功率限制(power throttling)对算力极限(SOL)的影响等。
      2. GPU 汇编语言:SASS 和 PTX。
      3. 设计近乎 SOTA 的同步矩阵乘法内核:线程束平铺(warp-tiling)方法。
      4. 在 Hopper 上设计 SOTA 异步矩阵乘法内核:利用张量核心(Tensor Cores)、TMA、计算与加载/存储重叠、希尔伯特曲线(Hilbert curves)等。
        我的目标是让这篇文章自成体系:既有足够的细节供独立阅读,又足够简洁以避免变成教科书。

      本文是系列文章的首篇。后续计划(理想状态下)涵盖:
      • 在Blackwell GPU上设计顶尖矩阵乘法内核
      • 通过微基准测试探索GPU架构
      • 设计顶尖多GPU内核
      • 揭秘内存一致性模型(GPU领域的“令牌化器”:默默支撑系统运行的关键组件,却令多数开发者困惑不已)

      NVIDIA GPU 架构基础

      要编写高性能的 GPU 内核,你需要对硬件有一个扎实的认知模型。随着我们深入探讨硬件架构,这一点会很快变得清晰。
      在本文中,我重点关注 Hopper H100 GPU。如果你能深度理解 Hopper,那么将知识迁移到未来架构(Blackwell, Rubin)或早期架构(Ampere, Volta)就会变得非常简单。
      Hopper [1] 和 Ampere [2] 白皮书是非常好的信息来源。
      在最高层面上,GPU 执行两个基本任务:

      1. 移动和存储数据(内存系统)。
      2. 对数据进行有用的操作(计算流水线)。
        下方的 H100 框图反映了这种划分:蓝色组件代表内存或数据移动,而红色组件代表计算(热)单元。
        h100_model-2.png

      图 1:NVIDIA Hopper H100 GPU 模型
      如果你在文中发现任何错误,请直接联系我——欢迎在 X、LinkedIn 或通过匿名反馈给我留言。

      内存(Memory)

      GPU 的内存系统是高度分层的,非常类似于 CPU 架构。
      这种分层是由物理学和电路设计决定的:SRAM 单元速度更快但体积更大(实现高速所需的控制电路也增加了其面积),而 DRAM 单元体积更小/密度更高但速度较慢。其结果是,高速内存容量低且昂贵,而慢速内存可以提供大得多的容量。稍后我们将更详细地讨论 DRAM 单元/内存。

      这种容量与延迟之间的权衡正是缓存层级存在的原因。在理想世界中,每个计算单元都会坐落在一大池超快内存旁边。由于这在物理上是不可能的,GPU 设计者做出了妥协:将少量快速内存放置在靠近计算单元的地方,并由更远处容量逐渐增大、速度渐慢的内存池作为后盾。这种组织方式最大化了整体系统的吞吐量。

      GPU 内存系统由以下部分组成:

      1. 设备内存(VRAM/Device Memory):在 CUDA 术语中,“设备”内存指的是片外(off-chip)DRAM——物理上与 GPU 芯片(die)分离,但封装在同一个板卡上——通常以堆栈式的 HBM 实现。它承载全局内存(GMEM)、每个线程的“局部”内存(寄存器溢出空间)等。
      2. L2 缓存(L2 Cache):由 SRAM 构建的大容量 k 路组关联缓存。它在物理上分为两部分;每个 SM 直接连接到一个分区,并通过横截(crossbar)间接连接到另一个分区。
      3. 分布式共享内存(DSMEM):物理上接近的一组 SM(即一个 GPC)中共享内存(SMEM)的池化。
      4. L1 缓存与共享内存(Shared Memory):
        ○ L1 缓存:每个 SM 私有的较小 k 路组关联 SRAM 缓存。
        ○ 共享内存(SMEM):程序员管理的片上内存。SMEM 和 L1 共享相同的物理存储,它们的相对比例可以通过软件配置。
      5. 寄存器堆(Register File/RMEM):位于计算单元旁边的最快存储单元。寄存器是单个线程私有的。与 CPU 相比,GPU 包含多得多的寄存器,且总 RMEM 容量与 L1/SMEM 存储的总和相当。

        mem_hierarchy-2.png
        图 2:H100 (SXM5) GPU 的内存层级
        📝 注意: 还有一些用于指令的小型缓存,以及常量内存等,为了理解核心原理,我将忽略它们。
        从设备内存向下移动到寄存器(第 1-5 级),你会看到一个明显的趋势:带宽以数量级增长,而延迟和容量则以类似的数量级减少。
        这引发了一些直接的影响:

      6. 将访问最频繁的数据尽可能靠近计算单元存放。
      7. 尽量减少对层级结构底层的访问,尤其是设备内存(GMEM)。
        另一个值得注意的组件是 张量内存加速器(TMA),它是随 Hopper 引入的。TMA 支持在全局内存和共享内存之间,以及集群(cluster)内的共享内存之间进行异步数据传输。它还支持交织(swizzling)以减少银行冲突(bank conflicts)——我们会在适当的时候讨论这些细节(双关语)。

        计算(Compute)

        从内存转向计算,其基本单位是流式多处理器(SM)。Hopper H100 (SXM5) 总共集成了 132 个 SM。
        SM 被组织成图形处理集群(GPC):每个 GPC 包含 18 个 SM,GPU 上共有 8 个 GPC。四个 GPC 直接连接到一个 L2 分区,另外四个连接到第二个分区。
        📝 注意:
        • GPC 也是支撑 CUDA 中 线程块集群(thread-block cluster) 抽象的硬件单元——我们稍后会回到编程模型。
        • 关于集群的一点:早前我说过每个 GPC 有 18 个 SM,所以 8 个 GPC 应该有 144 个 SM。但 SXM/PCIe 规格暴露的是 132 或 114 个 SM。差异在哪里?这是因为 18 × 8 的布局仅对完整的 GH100 芯片有效——在实际产品中,有些 SM 会被熔断(fused off)。这对我们编写内核时选择集群配置有直接影响。例如,如果集群跨度超过 2 个 SM,你就无法利用所有 SM。
        • 最后注意,“Graphics Processing Cluster (GPC)”中的“Graphics”是一个传统术语。在现代服务器级 GPU 中,这些集群纯粹作为计算/AI 加速单元,而非图形引擎。同样的,GPU 应该去掉“G”,它们是 AI 加速器。

      除了前面提到的 L1/SMEM/TMA/RMEM 组件(均位于 SM 内部),每个 SM 还包含:
      • 张量核心(Tensor Cores):以高吞吐量在小分块(例如 64x16 @ 16x256)上执行矩阵乘法的专用单元。大型矩阵乘法被分解为许多此类分块操作,因此有效利用它们是达到峰值性能的关键。
      • CUDA 核心与 SFU:所谓的“CUDA 核心”(营销话术)执行标准的浮点运算,如 FMA(融合乘加:c=a∗b+c)。特殊函数单元(SFU)处理超越函数(如 sin,cos,exp,log)以及代数函数(如 sqrt,rsqrt 等)。
      • 加载/存储(LD/ST)单元:服务于加载和存储指令的电路,与 TMA 引擎互补。
      • 线程束调度器(Warp Schedulers):每个 SM 包含调度器,为 32 个线程组成的组(CUDA 中称为 warps)发布指令。一个线程束调度器每周期可以发布一条线程束指令。
      每个 SM 在物理上分为四个象限,每个象限容纳上述计算单元的一个子集。

      这导出了以下见解:
      📝 并行性(Parallelism)与并发性(Concurrency)
      • 一个 SM 在给定的周期内最多可以同时发布来自四个线程束的指令(即在真正的并行执行中,每周期有 128 个线程)。
      • 然而,一个 SM 可以容纳多达 2048 个并发线程(64 个线程束)。这些线程束常驻在 SM 中,并随着时间的推移被换入和换出调度,允许硬件隐藏内存/流水线延迟。
      换句话说,指令并行性(在给定周期内有多少线程开始执行指令)限制为每 SM 128 个线程(4 条 32 宽度的线程束指令),而并发性(调度器中跟踪并有资格运行的线程数)则扩展到 2048 个线程。

      光速(Speed of Light)与功率限制

      既然我们购买 NVIDIA GPU 是为了计算,自然会问:性能上限是什么——GPU 的最大计算吞吐量是多少?这通常被称为“光速”(Speed of Light, SoL)性能:由芯片物理特性决定的上限。

      根据数据类型的不同,有不同的性能上限。在 LLM 训练工作负载中,bfloat16 (bf16) 是近年来的主导格式,尽管 fp8 和 4 位格式变得越来越重要(对于推理,fp8 已相当标准)。
      峰值吞吐量的计算公式为: perf=freq_clk_max∗num_tc∗flop_per_tc_per_clk
      或者用文字描述:最大时钟频率 × 张量核心数量 × 每个张量核心每周期的浮点运算数(FLOPs)。

      h100_sol-2.png
      图 3:H100 SXM5 BF16 “光速”推导

      📝 FLOP vs FLOPs vs FLOPS vs FLOP/s
      • FLOP = 单次浮点运算。
      • FLOP/s = 吞吐量单位:每秒浮点运算次数。
      • FLOPs(小写 s)= FLOP 的复数(多次运算)。
      • FLOPS(全大写)常被误用来表示吞吐量,但严格来说应读作“FLOPs”(复数)。将 FLOPS 用作 FLOP/s 是不严谨的!:)
      我在上图中留下了一个提示:“光速”实际上并不是恒定的(我想这也是这个比喻失效的地方)。
      在实践中,峰值吞吐量取决于实际时钟频率,而时钟频率会因功率限制(Power Throttling)或温度限制而波动。如果 GPU 时钟频率下降,有效的光速也会随之下降。
      clk-2.png

      图 4:功率限制降低了时钟频率并拉低了有效的“光速”

      📝 延伸阅读: Horace He 在他的博文 [3] 中更深入地探讨了这一现象。
      硬件细节目前了解这些就足够了。接下来的重点将转向 CUDA 编程模型,然后我们会再次深入硬件底层,并最终上升到 CUDA C++ 层面。

      CUDA 编程模型

      CUDA 编程模型自然地映射到 GPU 硬件和内存层级结构上。其核心抽象包括:
      • 线程 (thread)
      • 线程束 (warp)(32 个线程)
      • 线程块 (thread block)
      • 线程块集群 (thread block cluster)
      • 网格 (grid)(由线程块或集群组成)
      cuda_model-2.png

      图 5:CUDA 编程模型:线程、线程束、块、集群、网格
      每个线程通过 gridDim、blockIdx、blockDim 和 threadIdx 等变量“意识到”自己在 CUDA 层次结构中的位置。在内部,这些变量存储在特殊寄存器中,并在内核启动时由 CUDA 运行时(runtime)初始化。
      这些位置信息使得跨 GPU 分配任务变得简单。例如,假设我们要处理一张 1024×1024 的图像。我们可以将其划分为 32×32 的线程块,每个块包含 32×32 排列的线程。每个线程可以计算其全局坐标:

      Plain Text
      const int x = blockIdx.x * blockDim.x + threadIdx.x;
      const int y = blockIdx.y * blockDim.y + threadIdx.y;

      并利用这些坐标从全局内存读取分配给它的像素(imagex),执行点对点操作,并将结果存回。
      cuda_model2-2.png
      图 6:CUDA 内置变量:线程如何知道自己在哪里
      如上图所示,在实践中我们大多使用 1D 或 2D 的网格/集群/块形状。但在内部,它们始终可以根据需要进行逻辑重组。
      例如,如果 threadIdx.x 的范围是 0-1023(1024 个线程的 1D 块),我们可以将其拆分为 x = threadIdx.x % 32 和 y = threadIdx.x / 32,从而将其重塑为 32×32 的逻辑 2D 布局。
      将 CUDA 模型连接回硬件,有一点现在应该很清楚了:一个线程块应包含至少 4 个线程束(即 128 个线程)。
      为什么? 线程块驻留在单个 SM 上。每个 SM 有 4 个线程束调度器——为了充分利用硬件,你不希望它们处于闲置状态。
      📝 至少 4 个线程束的其他原因:
      • 我们稍后会深入探讨,但在 Hopper 架构上,线程束组(warp-group,即 4 个线程束) 是 WGMMA(矩阵乘法)张量核心指令的执行单位。
      • 此外,在使用持久化内核(persistent kernels)时,我们通常每个 SM 仅启动一个线程块,因此构建任务以保持所有线程束调度器忙碌至关重要。
      带着 CUDA 编程模型的术语,我们可以继续深入探讨 GPU 的架构细节。

      全局内存(GMEM)模型

      让我们深入探讨 GMEM。如前所述,它是由多层 DRAM 堆叠而成,底部有一个逻辑层(HBM)。但 DRAM 到底是什么?

      gmem_dram_cell.png
      图 7:DRAM 单元内部:晶体管 + 电容器,字线(wordline) + 位线(bitline)
      了解了单个位的存储方式后,让我们放大到整个存储矩阵。
      gmem-3.png
      图 8:GMEM 模型

      📝 关于 HBM 的延伸阅读: 如果你想更深入地了解 HBM,我发现论文《Demystifying the Characteristics of High Bandwidth Memory for Real-Time Systems》[21] 非常有启发性。
      我们可以得出结论:访问模式(access patterns)至关重要,这是由 DRAM 单元的物理特性决定的。
      gmem_example-2.png

      图 9:GMEM 访问模式的影响

      Stephen Jones 的演讲《How CUDA Programming Works》[4] 非常值得一看。
      如果我们示例中的矩阵是列优先(column-major*的,情况就会反转:列中的元素将连续存储,因此有效的选择是在内层循环遍历行,以避免 DRAM 惩罚。
      所以,当人们说“GMEM 合并(coalescing)非常重要”时,指的就是:线程应访问连续的内存位置,以最小化触及的 DRAM 行数。

      共享内存(SMEM)模型

      共享内存(SMEM)具有与 GMEM 截然不同的特性。它由 SRAM 单元而非 DRAM 构建,这使得它在速度和容量的权衡上完全不同。
      SRAM 单元的具体设计并不重要——只需知道存储一位信息需要多得多的晶体管。你可以自行搜索“SRAM cell”。
      SMEM 组织为 32 个银行(banks),每个银行宽度为 32 位(4 字节):

      smem_pt1-2.png
      图 10:SMEM 模型
      SMEM 可以在单个周期内提供来自所有 32 个银行的数据(128 字节)——但前提是必须遵守一条规则:
      同一个线程束(warp)中的线程不得访问同一个银行(bank)内的不同地址。 否则,这些请求将被序列化,分多个周期执行。
      这种情况被称为 银行冲突(bank conflict)。如果有 N个线程访问同一个银行中的不同地址,就会产生 N 路银行冲突(N-way bank conflict),该线程束的内存请求将需要 $N$ 个周期才能完成。
      在最坏的情况下,所有 32 个线程都指向同一个银行中的不同地址,吞吐量将下降到原来的 1/32。
      为了说明这一点,假设线程束大小(warp size)为 5。下方的两种访问模式将分别需要 3 个周期和 1 个周期来完成服务:

      smem_pt2-2.png
      重要的是:如果一个线程束(warp)中的多个线程访问同一个银行(bank)内的相同地址,共享内存(SMEM)可以将该值广播(broadcast)或组播(multicast)给所有这些线程。
      在下方的示例中,请求在单个周期内即可完成服务:
      • 银行 1(Bank 1) 可以将一个值组播给 2 个线程。
      • 银行 2(Bank 2) 可以将一个值组播给 3 个线程。
      smem_pt3.png

      现在,来看硬件拼图的最后一块:L1 缓存。
      这是一篇由 Axel 撰写的关于 SMEM 微基准测试(microbenchmarking)的优秀博文 [5]。

      L1 模型

      我们已经看到 L1 和 SMEM 共享相同的物理存储,但 L1 在该存储周围增加了一层由硬件管理的脚手架层(scaffolding layer)。
      在高层级上,L1 缓存的逻辑流程如下:

      1. 线程束(warp)发布一个内存请求(指向 SMEM 或 GMEM)。
      2. 请求进入 MIO 流水线并被派遣至 LSUIN 路由器。
      3. 路由器导向请求:SMEM 访问立即从数据数组(data array)中获得响应,而 GMEM 访问则进入标签比较(tag-comparison)阶段。
      4. 在标签阶段,GMEM 的地址标签与目标集合(target set)中存储的标签进行对比,以确定数据是否驻留在 L1 中。
      5. 命中(Hit):请求直接从数据数组中获得服务(就像 SMEM 一样)。
      6. 未命中(Miss):请求传播至 L2(如有必要,甚至更远,直到 GMEM 或对等 GPU 内存)。当数据返回时,它会被缓存到 L1 中,替换(evicting)现有的一行,并并行地发送回发起请求的线程束。
        这就是我刚才描述的系统:
        l1-2.png
        图 13:L1 缓存模型
        让我们再深入一层,详细查看标签阶段(tag stage)和数据阶段(data stage):

      kway-2.png
      图 14:k 路组关联缓存组织的分解
      当一个 GMEM(全局内存) 地址进入标签阶段时,命中/未命中(hit/miss)逻辑按如下方式展开:

      1. 标签阶段接收 GMEM 地址。
      2. 提取集合 ID 位(set id bits),并检查该集合中的所有缓存行(标签)。
      3. 如果发现标签匹配(潜在的缓存命中):
        ○ 检查该行的有效性标志(validity flags)。
        ○ 如果无效 → 视为缓存未命中(继续执行步骤 4)。
        ○ 如果有效 → 从数据数组中提取所请求的分区(sectors),并交付至线程束的寄存器中。
      4. 如果未发现匹配(缓存未命中),请求被路由至内存层级结构的其余部分(L2 及更高层级)。
        ○ 当数据从 L2 返回时,它被存储在该集合中,并根据替换策略(例如伪 LRU 算法)驱逐(evicting)现有的某一行,同时并行地交付给发起请求的线程束。
        注意,L2 缓存与 L1 并没有太大区别,除了它是全局的(而非每个 SM 独立)、容量大得多(具有更高的关联度)、被划分为由横截(crossbar)连接的两个切片,并且支持更细致的持久化和缓存策略。
        至此,我们已经涵盖了理解后续章节所需的关键 GPU 硬件组件。
        📝 GPU 世代间的梯度:
        我之前提到过,理解 Hopper 是深入了解 NVIDIA GPU 未来和过去世代的绝佳基础。
        到目前为止,最大的世代跨越是从 Ampere → Hopper,引入了:
        • 分布式共享内存 (DSMEM):在整个 GPC 的 SMEM 之间,实现加载、存储和原子操作的直接 SM 到 SM 通信。
        • TMA (张量内存加速器):用于异步张量数据移动(GMEM ↔ SMEM, SMEM ↔ SMEM)的硬件单元。
        • 线程块集群 (Thread Block Clusters):一种新的 CUDA 编程模型抽象,用于跨 SM 对块进行分组。
        • 异步事务屏障 (Asynchronous transaction barriers):拆分式屏障,计数事务(字节数)而非仅仅是线程数。
        Ampere (例如 A100) 自身也引入了几个关键特性:
        • 张量核心 (Tensor Cores) 支持 tf32 和 bf16。
        • 异步拷贝 (GMEM → SMEM),具有两种模式:绕过 L1 和访问 L1。
        • 异步屏障(在共享内存中由硬件加速)。
        • CUDA 任务图 (CUDA task graphs):它是 PyTorch 中 CUDA graphs 的基础,减少了 CPU 启动和网格初始化开销。
        • 通过 CUDA 协作组 (CUDA Cooperative Groups) 暴露的线程束级规约指令(实现了单步、整数数据类型的线程束范围规约,无需 shuffle 模式)。