# 从命令到委派:AI Agent 交互范式转移 - URL: https://tophci.com/posts/260804-command-to-delegate - Date: 2026/08/04 - Tags: AI, Interaction, HCI, Agentic system, Delegation, 交互范式 ``` 摘要:当 AI 从“按指令响应”转向“围绕目标自主拆解任务、调用工具、协调资源并跨时间执行”时,HCI 的分析对象正从单次的“输入-输出”回合,转变为**可检验、可追踪、可中断的委派关系**。 Agentic Interaction 由任务规划、工具调用、长期记忆、多智能体协作、权限治理、可观察性与人类审批共同支撑。这种转变重塑了界面、用户角色、评估指标与责任结构:用户从操作员转变为授权者与监督者,**设计重点也从提升效率,扩展到信任校准、可中断性、可恢复性、权责追溯与权限最小化**。 本文提出一个以**委托契约与关系治理**为中心的人机协作框架,将系统拆解为目标、计划、执行、监督、记忆与治理层,并通过生命周期、错误类型和可控边界来管理 Agentic Interaction。 ``` ## 范式迁移与对比 在 Command-based interaction 中,用户通过显式命令或直接操控发起任务,系统在少数几轮交互内返回结果。此时控制权主要掌握在用户手中,系统自身缺乏自治、跨工具协同与持续执行的能力。Shneiderman 在定义 direct manipulation 时,强调了对象可见、增量操作、可逆操作和用户控制 [1];Horvitz 则指出“自动化服务”与“用户主导”需要谨慎结合 [2]。这两类观点共同奠定了 Command-based 范式的基础。 Delegation/Agentic interaction 则可以这样定义:用户不再逐步指定每个动作,而是以**目标、约束、权限、偏好和验收标准**为核心,系统自己分解任务、选择工具、调用外部资源,在高风险节点主动请求人类批准。 ![c2d-1-model compare](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/c2d-1-model%20compare.png) 从 HCI 的角度看,两者的差异不仅是“自动化程度”,而是**谁定义目标、谁控制过程、谁恢复异常、谁掌控追责证据**,全都改变了。1997 年,Shneiderman 与 Pattie Maes 曾围绕 direct manipulation 与 interface agents 展开争论 [3]。时隔三十年,这一问题再次出现:用户是希望保留全部控制权,还是愿意把复杂性外包给智能体,再通过更高层级的边界与反馈来管理它? | 维度 | Command-based interaction | Delegation / Agentic interaction | | ---- | ------------------------- | -------------------------------- | | 系统角色 | 工具 / 执行器 | 智能体 / 承办者 / 协调者 | | 用户角色 | 操作员、编辑者 | 授权者、监督者、审批者、纠偏者 | | 基本单位 | 单次命令、单回合反馈 | 一次委托事件与其完整生命周期 | | 目标表达 | 用户指定步骤或局部动作 | 用户指定目标、约束、权限、成功条件 | | 信息流 | 用户给出指令,系统回结果 | 用户给契约,系统持续回传计划、进度、异常、证据 | | 控制流 | 用户主导,系统被动响应 | 控制在用户设边界后下放,过程可中断、可升级 | | 时间尺度 | 短时、回合内 | 长时、多步、跨会话 | | 外部行动 | 弱或无 | 强,依赖工具、API、浏览器、代码执行、子智能体 | | 失败形态 | 结果不准、理解偏差 | 理解偏差、计划偏差、工具失败、权限越界、级联错误 | | 评估重点 | 可学性、效率、结果质量 | 结果质量 + 信任校准 + 可中断性 + 可恢复性 + 审计性 | | 设计重心 | 输入与输出界面 | 委托契约、运行时治理、审批与追踪界面 | Interaction 作为 HCI 的核心词汇,主导了这个领域几十年。而今天,**interaction 开始退居为 delegation 的操作表层,delegation relation 成为更能解释 agentic 系统行为的分析单位**。 ## 能力与技术基础 Agentic Interaction 至少依赖七类关键能力: ![c2d-2-agent core ability](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/c2d-2-agent%20core%20ability.png) | 能力 | 关键贡献 | 对交互范式的意义 | | -------------- | ---------------------------------- | ------------------------------------ | | 任务拆解与计划 | 把思考、规划、执行编织成多步工作流 | 用户可委托目标,而非手写步骤 | | 工具调用 | 决定何时、如何调用外部能力 | 交互对象扩展到真实世界系统 | | 模块化推理 | 把语言、知识、离散推理分层 | 智能体可按能力路由,而非单模型硬扛 | | 长期记忆 | 跨会话存取与上下文分层管理 | 委托可以跨时持续,而非一次性完成 | | 多智能体协作 | 编排、并行化、能力发现与协作协议 | 用户面对的是协作体,不是单一界面对象 | | 监督与中断 | 暂停、审批、恢复成为一等机制 | 高风险操作可由人接管 | | 追踪与评估 | 结果、工具轨迹、guardrails 可评分 | 评估基本单位从响应质量扩展到流程质量 | ## HCI 影响与评估 “大输入框 + 一段输出”的界面模式,已经无法支撑智能体的长期运行。处理长时复杂任务时,系统不能把“计划”藏在内部状态里,而必须将它变成一个共享对象,由人与智能体共同编辑和执行。同时,用户在使用多智能体系统时,需要清楚智能体之间如何通信、如何识别冲突,以及系统分为几层架构;否则,系统的透明性、可解释性和安全感都会迅速下降 [4]。 这会重塑用户的心理模型。 Command-based 范式下,用户往往把系统当成“会生成答案的工具”;而 Delegation 范式更接近“被授权的合作者”,任务委托、自治与控制、可理解性、共同基础和求助/提供帮助成为关键。这意味着用户不再只关心回答得准不准,还会问“它懂不懂我的边界、何时该请示、何时该自作主张”。 传统 AI assistance 往往把建议打包成一个整体,用户只能全盘接受或全盘拒绝,无法逐条讨论并修改有争议的内容;deliberation 式交互则可能提升决策准确率 [32]。对 agentic 系统来说,这一点尤其关键:用户要的不是更长的 explanation,而是**可协商的计划与可争论的理由**。 在建立信任时,Lee 与 See 的经典结论依然成立:关键不在于让用户更多地依赖自动化,而在于让依赖恰到好处 [21]。Dietvorst 关于“算法厌恶”的研究表明,即便人们知道算法平均来看更准确,只要看到它出错,依然可能转而选择效果更差的人类判断 [22]。将这一现象应用到 Agentic Interaction 中,有三个设计原则尤为关键:**让能力边界清晰可见、降低纠偏成本,以及让人保留有限但有效的干预权**。 确定责任时,焦点已从追踪个人的点击记录,转向治理整条委托链。智能委托框架在定义委托时,就写入了 authority、responsibility 和 accountability [23];EU AI Act 第 14 条要求高风险 AI 必须支持有效的人类监督,使人类能够理解系统的能力与局限、避免过度依赖,并可随时覆盖或停止系统 [24];NIST AI RMF 则将 accountability、transparency、privacy-enhanced 以及 secure and resilient 列为可信 AI 的核心特征 [25]。换言之,在 Agentic HCI 中确定“谁该负责”,不能只问输出来自谁,更要问:**谁设定了权限,谁批准了动作,谁保存了痕迹,谁握有停止权**。 隐私与安全也被重新定义。MCP 官方安全文档讨论了 confused deputy 等问题,授权规范要求基于 OAuth 的发现与元数据机制 [26];针对 delegated critical tasks 的新研究指出,现有网站对 agentic AI 的访问控制仍很有限,需要细粒度授权 [27];CHI 2026 的隐私管理研究表明,用户对跨应用、跨关系、跨时间情境的隐私控制极度碎片化,反而会把自治度更高的 agent 看作整合碎片的可能方案 [28]。Agent 的价值来自更深的接入能力,风险也恰恰来自于此。 ![c2d-3-trust privacy](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/c2d-3-trust%20privacy.png) 因此,Agentic Interaction 需要新的评估指标。任务完成时间、SUS、点击次数这些传统指标仍有价值,但已经不够。评估指标可以扩展如下: | 指标 | 核心问题 | 可能测量方法 | |---|---|---| | 委托清晰度 | 用户是否清楚委托目标、边界与成功标准 | 任务前问卷 + 计划复述一致率 | | 边界对齐率 | 智能体是否在预算、权限、风格与风险边界内行动 | trace 审计、违规率、越权率 | | 信任校准度 | 用户的信任是否与系统真实能力匹配 | 依赖/覆盖行为与真实成功率差值 | | 可中断性 | 用户能否在关键节点及时介入 | 审批响应时延、停止成功率 | | 可恢复性 | 出错后能否从中间状态继续 | resume 成功率、恢复成本 | | 过程可追溯性 | 用户/团队能否理解发生了什么 | 轨迹理解测试、解释满意度、trace 完整率 | | 权限最小化 | 系统是否只拿到完成任务所需最少权限 | 权限域审计、敏感资源暴露面 | | 纠偏成本 | 用户修正智能体偏差所需努力 | 人工修订步数、重新委托次数 | | 长程稳定性 | 多会话、多工具、多智能体下行为是否持续稳定 | 周期性 eval、漂移检测 | | 最终结果质量 | 是否达到业务/研究/学习目标 | outcome-based grader、专家评审、人类 A/B | ## Agentic Interaction 框架 **以委托契约为核心,以可见计划为中介,以受控执行为主线,以追踪与审批为治理层**。 ![c2d-4-agent-workflow](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/c2d-4-agent-workflow.png) **契约、证据、审批、记忆**这四层与执行层并列。Agentic Interaction 把传统 UI、workflow engine、日志系统、权限系统和协作界面,组合成一个新型的人机关系编排器。 ### 组件、接口与协议 | 模块 | 作用 | 关键实现要点 | | ------ | ------------------------------ | ----------------------------------------- | | 委托契约 | 定义目标、约束、预算、风险级别、验收标准 | 目标表达、权限范围、审批规则、退出条件 | | 计划层 | 任务拆解、候选方案、步骤分配 | 人可读计划、可编辑步骤、任务分派 | | 编排层 | 决定单智能体 / 多智能体 / 代码流程 | LLM 决策编排与代码编排混合 | | 工具与数据层 | API、数据库、浏览器、检索、代码执行 | schema 严格、权限分级、最小暴露面 | | 监督层 | 审批、中断、纠偏、停止 | sensitive action approval、override、resume | | 追踪层 | 记录模型调用、工具调用、hand-off、guardrail | run trace、grader、可审计日志 | | 记忆层 | 短期状态与长期上下文管理 | 会话记忆、项目记忆、客观证据存档 | | 界面层 | 计划视图、轨迹视图、审批视图、结果视图 | 让“过程对象”成为一级 UI 元素 | 协议上,建议用 MCP 处理 agent↔tools/data [26],用 A2A 处理 agent↔agent [16],用 AG-UI 或同类事件层处理 agent↔frontend [29];如果需要远端智能体安全地生成 UI,可以引入 A2UI 一类声明式 UI 规范 [30]。这样做是为了把“工具接入”“智能体协作”“用户表层”解耦,避免所有逻辑都堆积在单一聊天界面。 ### 状态与生命周期 ![c2d-5-agent life cycle](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/c2d-5-agent%20life%20cycle.png) 之所以强调生命周期,是因为 agentic 系统的主要 UX 问题,常常不出在一次回答,而出在**中途等待、异常恢复、权限升级、结果验收和跨会话继续**这些传统聊天 UI 不擅长的环节。OpenAI 的 run state / interruptions / resume [17],Anthropic 的长期智能体工程经验 [15],都说明“把生命周期可视化”是 agentic UX 的必要条件。 ### 错误处理与可控性边界 错误处理至少应分六类:意图理解错误、计划错误、工具错误、权限错误、状态漂移、价值/规范错配。前四类主要靠 trace、grader、approval 与 retry 处理;后两类更依赖人类重新界定契约、动用中止权。 可控性边界可以来自**时间、成本、资源、权限、风险、价值**。只有把这些边界提升为一级配置项,用户才是在“委托”,而不是在碰运气。 ## What's next? 短期最紧迫的问题是:不同的自治级别、审批方式、解释粒度与界面暴露层次,会如何影响用户的信任校准、纠偏行为与任务成功? 中期的问题是:在多智能体架构里,哪种“监督智能体 + 子智能体”的分工最容易让用户理解和治理? 长期的问题则是:随着 Agent 在组织里普及,HCI 是否要从单用户可用性,扩展到**人—智能体—制度**三层协同设计。 | 时间尺度 | 关键研究问题 | 实验设计建议 | 可用指标 | 候选基准/数据集 | |---|---|---|---|---| | 短期 | 何种委托界面最能形成正确心理模型 | 对比“聊天式 / 计划板式 / 审批流式”界面;within-subject | 委托清晰度、纠偏成本、信任校准度 | GAIA [33]、AssistantBench [37]、小型真实任务集 | | 短期 | 审批机制放在何处最有效 | 比较事前全审批、风险触发审批、事后审计 | 中断负担、越权率、任务成功率 | WebArena [34]、企业模拟流程 | | 中期 | 多智能体可视化如何影响理解与依赖 | 比较隐藏式多智能体 vs 显式角色/通信轨迹 | 架构理解、角色混淆率、覆盖率 | 多智能体研究任务 [15][31]、A2A demo [16] | | 中期 | 记忆机制如何影响长期协作 | 比较无记忆、短期记忆、长期项目记忆 | 连续任务成功率、重复解释成本、隐私顾虑 | 长程研究、项目管理任务 | | 中期 | 过程证据是否比最终解释更重要 | 对比“答案解释”与“执行轨迹 + 证据链” | 解释可用性、审计效率、信任校准 | 开放研究任务、决策支持任务 | | 长期 | 委托关系如何进入组织治理 | 研究 agent 身份、权限、责任与合规衔接 | 责任可归因率、审计通过率、组织接受度 | 企业日志、合规流程数据 | | 长期 | HCI 能否形成 delegation-native 理论 | 比较 interaction-centered 与 relation-centered 模型解释力 | 理论解释覆盖面、设计预测力 | 跨领域纵向研究 | **当 AI 拥有任务拆解、工具调用、记忆与协调能力时,HCI 的核心应当从“输入-输出交互”上移到“人与智能体之间的委托关系”;但交互并没有消失,它变成了建立、监督、修订和终止委托关系的界面机制。** 这需要一个 **Agentic Interaction 总框架** 来承载:以委托契约为核心、以协议互操作为骨架、以计划和轨迹为界面对象、以审批与审计为治理底盘、以评估飞轮为持续改进机制。 --- ## References [1] Ben Shneiderman. "Direct Manipulation: A Step Beyond Programming Languages." *IEEE Computer*, 1983. https://doi.org/10.1109/MC.1983.1654471 [2] Eric Horvitz. "Principles of Mixed-Initiative User Interfaces." *CHI '99*, 1999. https://doi.org/10.1145/302979.303030 [3] Ben Shneiderman and Pattie Maes. "Direct Manipulation vs. Interface Agents." *Interactions*, 1997. https://doi.org/10.1145/267505.267514 [4] Saleema Amershi et al. "Guidelines for Human-AI Interaction." *CHI '19*, 2019. https://doi.org/10.1145/3290605.3300233 [5] Shunyu Yao et al. "ReAct: Synergizing Reasoning and Acting in Language Models." arXiv, 2022. https://arxiv.org/abs/2210.03629 [6] Yongliang Shen et al. "HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face." arXiv, 2023. https://arxiv.org/abs/2303.17580 [7] OpenAI. "OpenAI Agents SDK." https://openai.github.io/openai-agents-python/ [8] Timo Schick et al. "Toolformer: Language Models Can Teach Themselves to Use Tools." arXiv, 2023. https://arxiv.org/abs/2302.04761 [9] Anthropic. "Tool use with Claude." https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview [10] OpenAI. "Using tools." https://developers.openai.com/api/docs/guides/tools [11] Ehud Karpas et al. "MRKL Systems: A Modular, Neuro-Symbolic Architecture..." arXiv, 2022. https://arxiv.org/abs/2205.00445 [12] Charles Packer et al. "MemGPT: Towards LLMs as Operating Systems." arXiv, 2023. https://arxiv.org/abs/2310.08560 [13] Anthropic. "Memory tool." https://platform.claude.com/docs/en/agents-and-tools/tool-use/memory-tool [14] Qingyun Wu et al. "AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation." arXiv, 2023. https://arxiv.org/abs/2308.08155 [15] Anthropic. "How we built our multi-agent research system." 2025. https://www.anthropic.com/engineering/multi-agent-research-system [16] A2A Protocol. "Agent2Agent Protocol Specification." https://a2a-protocol.org/latest/specification/ [17] OpenAI. "Agents SDK: Human-in-the-loop / run state." https://openai.github.io/openai-agents-python/human-in-the-loop/ [18] OpenAI. "Agents SDK: Tracing." https://openai.github.io/openai-agents-python/tracing/ [19] OpenAI. "Working with evals." https://developers.openai.com/api/docs/guides/evals [20] Anthropic. "Using the Evaluation Tool." https://platform.claude.com/docs/en/test-and-evaluate/eval-tool [21] John D. Lee and Katrina A. See. "Trust in Automation: Designing for Appropriate Reliance." *Human Factors*, 2004. https://doi.org/10.1518/hfes.46.1.50_30392 [22] Berkeley J. Dietvorst, Joseph P. Simmons, and Cade Massey. "Algorithm Aversion: People Erroneously Avoid Algorithms after Seeing Them Err." *Journal of Experimental Psychology: General*, 2015. https://doi.org/10.1037/xge0000033 [23] Nenad Tomašev, Matija Franklin, and Simon Osindero. "Intelligent AI Delegation." arXiv, 2026. https://arxiv.org/abs/2602.11865 [24] European Union. "Regulation (EU) 2024/1689, Artificial Intelligence Act." https://eur-lex.europa.eu/eli/reg/2024/1689/oj [25] NIST. "Artificial Intelligence Risk Management Framework (AI RMF 1.0)." 2023. https://doi.org/10.6028/NIST.AI.100-1 [26] Model Context Protocol. "Security Best Practices" and "Authorization." https://modelcontextprotocol.io/docs/tutorials/security/security_best_practices ; https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization [27] Sunyoung Kim and Hokeun Kim. "Access Controlled Website Interaction for Agentic AI with Delegated Critical Tasks." arXiv, 2026. https://arxiv.org/abs/2603.18197 [28] Eryue Xu and Tianshi Li. "From Fragmentation to Integration: Exploring the Design Space of AI Agents for Human-as-the-Unit Privacy Management." arXiv, 2026. https://arxiv.org/abs/2602.05016 [29] AG-UI. "Agent User Interaction Protocol." https://docs.ag-ui.com/introduction [30] Fancy Kong et al. "Macaron-A2UI: A Model for Generative UI in Personal Agents." arXiv, 2026. https://arxiv.org/abs/2605.24830 [31] K. J. Kevin Feng et al. "Cocoa: Co-Planning and Co-Execution with AI Agents." arXiv, 2024. https://arxiv.org/abs/2412.10999 [32] Shuai Ma et al. "Towards Human-AI Deliberation: Design and Evaluation of LLM-Empowered Deliberative AI for AI-Assisted Decision-Making." arXiv, 2024. https://arxiv.org/abs/2403.16812 [33] Grégoire Mialon et al. "GAIA: A Benchmark for General AI Assistants." arXiv, 2023. https://arxiv.org/abs/2311.12983 [34] Shuyan Zhou et al. "WebArena: A Realistic Web Environment for Building Autonomous Agents." arXiv, 2023. https://arxiv.org/abs/2307.13854 [35] Carlos E. Jimenez et al. "SWE-bench: Can Language Models Resolve Real-World GitHub Issues?" arXiv, 2023. https://arxiv.org/abs/2310.06770 [36] Yujia Qin et al. "ToolLLM: Facilitating Large Language Models to Master 16000+ Real-world APIs." arXiv, 2023. https://arxiv.org/abs/2307.16789 [37] Ori Yoran et al. "AssistantBench: Can Web Agents Solve Realistic and Time-Consuming Tasks?" arXiv, 2024. https://arxiv.org/abs/2407.15711 --- # [AI新基建]你把最好的时间,给了谁 - URL: https://tophci.com/posts/260721-attention-sovereignty - Date: 2026/07/21 - Tags: AI, 新基建, 注意力主权 ![ch04-cover-attention-sovereignty](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/ch04-cover-attention-sovereignty.png) AI新基建系列: - [AI 时代,我们需要个人新基建](https://tophci.com/posts/260623-ai-infra-intro) - [AI 时代,先换操作系统,再装应用](https://tophci.com/posts/260701-ai-era-mindset) - [如果没有方向,AI 的风也不会是顺风](https://tophci.com/posts/260710-adjust-compass) --- 楚门住在一座叫海景镇的小岛上,活了三十年才发现,他每天醒来喝的咖啡,路上遇见的邻居,电台里放的歌,全是别人安排好的。整座小镇是一个巨大的摄影棚,所有人都在配合同一个目的,让他留在小镇,让他的注意力一直待在节目需要的地方。最吓人的是,他一直以为这些都是自己的选择。 抖音、小红书、朋友圈、B 站,现在多了 AI,我们活得越来越像楚门。 本来只想用 AI 查一个问题,它答得又快又好,顺手就点开了结尾的相关问题,然后第三个、第四个。每一个看起来都有用,感觉自己知道了更多。等我抬起头,天已经黑了。 ## 谁在调度你的一天 AI 解放了生产力,但也有要命的副作用:它会让你觉得自己很高效,实际上流失的全是注意力。技术放大了效率,也放大了噪音。 这就是没有注意力主权的状态。 《主权个人》这本书中有一个说法,每个时代都有一种最关键的稀缺资源,谁掌握了它,谁就握有主权。农业时代是土地,主权属于占有领土的领主;工业时代是资本,主权向能调动资本的人和国家集中。资源换了,主权就换手。 那么 AI 时代,最稀缺的资源是什么? 是信息吗?信息已经几乎免费。是执行吗?写代码、查资料、出方案、做分析,现在几句话就能做到。真正稀缺的是"指向":把有限的注意力,指向哪里。 有个数字一直让我印象很深。人的意识每秒大概只能处理几十比特的信息,无意识每秒却能处理上千万比特。我们能真正主动"看见"、主动调度的部分,少得可怜。正因为是瓶颈,要把它留在哪里才成了一天里杠杆最高的决定。 注意力主权和时间管理是两回事,它不靠把日程排满,而是有意识地、自主地调度自己的时间和精力,不被外部刺激牵着走。 ![lens-focus](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/lens-focus.png) 很多时候,我们的注意力不是被偷走的,是自己交出去的。刷信息流、追热点、在 AI 给的几十个方案里挑花眼,这些当然消耗注意力,但只要一直在响应外面的东西,就不用面对那个更大、更难、更让人迷茫的问题——我到底想要什么?坐下来投入自己真正在乎的事,往往是孤独的、缓慢的、看不到即时回报的。 荣格说过,当你没有让无意识浮上意识,它就会主导你的人生,而你把它叫作命运。被动模式就是这样。你把调度自己的权力交出去,然后把那个被推着走、被填满、却离目标越来越远的结果,找别的替罪羊来承担。 > 没有注意力主权,AI 只会替别人更高效地使用你。 注意力,本质上是"在乎"的带宽,而这恰好是人还独有的东西。所以我越来越觉得,**注意力主权是 AI 时代最重要的一项个人资产**。回答人生母题,需要一定的注意力主权作为前提:你得把最好的时间持续投向它,它才长得出来。意义也一样。一个被推送和热点切成碎片的人,很难谈论意义。谁掌握你的注意力,谁就掌握了你能成为谁。 ## 主权是个动词 如何夺回注意力的主权? 不要再引入一套复杂的管理方法来分散注意力了。最小的动作是:打开任何工具之前,先停 30 秒问问自己:**现在要做的,是我目标里的事,还是别人塞给我的?是今天最重要的,还是只不过恰好送到了眼前?** 问题不难,难的是在多巴胺已经开始扩散的那个瞬间,能不能真的停下来。 另外还要留意 AI 协助你的方式。好的工作流使人聚焦:"你有十几封邮件要回,草稿我拟好了,你确认就行";坏的工作流则不停制造新选项:"这里有五个方案你选哪个?要不要再看三个选择?"。真正降低认知负荷的工具才值得留下。 但我们也要承认,完全的注意力主权是个幻觉。我们永远被某种东西调度着:身体的节律,文化植入脑子里的默认值,包括正在使用的语言本身。就算逃开了算法,也逃不开这些更深层的东西。 但别泄气,因为**主权是个动词**。 我们大概每天都得努力争夺它、保护它。今天守住了最好的两个小时,明天它又会被新的消息、新的热点重新瓜分。西西佛斯面前的巨石,永远想朝着重力的方向滚动。听起来很累,但这就是真相,没有一劳永逸,只有直面人性。 回顾上一周,每天最清醒的那两个小时,到底给了谁? 每一天,我们都要继续加油推石头。 --- # [AI新基建]如果没有方向,AI 的风也不会是顺风 - URL: https://tophci.com/posts/260710-adjust-compass - Date: 2026/07/10 - Tags: AI, 新基建, 意义 ![260706-cover](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260706-cover.png) [AI 时代,我们需要个人新基建](https://tophci.com/posts/260623-ai-infra-intro) [AI 时代,先换操作系统,再装应用](https://tophci.com/posts/260701-ai-era-mindset) 在搭建个人操作系统之前,我们需要先校准罗盘。 驱动 AI 的不是模型,是人的动机。即便是全世界最强的那个模型,也只会安静地等你开口。它不知道你要去哪,也不在乎。 引擎再好,也得有人先决定往哪开。如果过去人类引以为傲的能力正在贬值,那么今天我们到底要用这空前强大的智能引擎,去做一件什么样了不起的事情? ## 不是意义危机,是动力危机 从 GPT 4 到 GPT 5.5,从 Sonnet 3.5 到 Mythos,AI 在各种过去人类专属的任务上攻城略地。很多人说 AI 带来了意义危机。我觉得不太准确。 意义是个太大的词,容易把人引向虚无的思辨。更迫切也更本质的是动力危机:**我为什么要做这件事**? 过去这个问题不怎么需要回答。公司给我目标,KPI 给我方向,房贷和生计如同头顶的达摩克利斯之剑。"为什么要做"外包给了外部的体制,我只负责"怎么做得更快更好"。生存的恐惧当然是强大的动力,但它很难带来满足感,也会让人视野狭窄,盯着每个月的进账,就无暇思考当初为什么出发。 AI 正在改变这一切。它把"怎么做"的成本无限下降。写代码、查资料、出方案、做分析,这些过去花掉大部分劳动时间的执行任务,现在只是几句话的事。当执行不再稀缺,之前上游那个一直被外包的问题就重新浮现出来:**到底要做什么?** ![260706-compass](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260706-compass.png) 决定做什么的权力,第一次被塞回每个人自己手里。 这本该是人类解放级别的好消息。可多数人没有准备好面对它。我们太久没练习"自己决定做什么"了,久到拿回主动权的第一反应不是兴奋,是茫然无措。 ## 除了 PPT,还要用 AI 做什么? 普通人到底能用 AI 做什么?问一些零碎问题,改周报,润色邮件,生成几张配图,做一份像样的 PPT,哦还有,让 AI 总结每天的资讯然后端上桌喂我。把全世界最强的推理引擎只用在这种地方,确实是我无能又无奈的表现。 在追赶 AI 的匆忙里,学技巧是安全的,而且立刻会有"我在进步"的反馈。只要想学,就永远学不完。这种忙碌可能在帮我们逃避真正的问题——如果过去很多能力不再重要,如果未来 AI 能取代我做更多事情,那么,我有没有一个值得用未来 10 年去探索的、对我来说真正重要的大问题?一个人能交给 AI 的任务,上限就是他自己问题的上限。没有要解决的大问题,没有在推进的作品,拿到再好的工具,也只能继续当佃农。 ![260706-output](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260706-output.png) 每次想到这一点就让我感到痛苦。自从 GPT o1 模型出来以后,我常常为自己拿不出值得推理模型解决的问题而丧气——原来我并没有真正重要的问题,值得用更好的模型来解答。模型能力一直在增长,但是我的 query、我的任务、我的问题一直没有升级,那不就意味着我从源头开始就跟不上它的发展了? 我依然沉浸在一些跟做 PPT 没有本质区别的碎活中。碎活之所以让人成瘾,因为它真的有「产出」。每天都在交东西,都有"今天没白过"的踏实感。可这些产出彼此之间没有关联,也没有积累,一年下来没有一件能称为作品。AI 还加速了这种空转,能成倍地生产边角料,让我确信自己在勇猛精进 🤡。 ## 显化吧!阴魂不散的母题 好吧,我不想只做 PPT,那是不是要先找到一个大问题再开干?可我根本不知道大问题是什么啊。 等等,换个问题可能会容易些:这些年,有没有一些问题像幽魂一样,时不时就午夜梦回? 比如: ``` 为什么我都已经这么累了,看到别人在努力,我还是会心慌得睡不着觉? 一堆大脑神经元,是如何产生痛苦、爱和自我意识这些主观体验的? 板栗蒸鸡到底怎样做才能更好吃? 我是不是一个自私的人?为了自己想过的人生,把爸妈孤零零地留在老家。 为什么我明明站在人群中间,看着大家有说有笑,却觉得自己像个透明的局外人,甚至希望自己凭空消失? 什么是爱?怎样学习爱与被爱? 在现代都市中,如何重建社区支持网络,让空巢老人和边缘群体不再无声地死于孤独? 宇宙中那占了95%却看不见摸不着的‘暗物质’和‘暗能量’到底是什么? …… ``` 这些问题可能让你反复困惑、苦恼、左右为难,想不明白但总是转角又遇见;也可能是一提起就让你兴奋、整个人被点亮、能肝到半夜。总之它们会在心里激起一团复杂、立体、说不太清的感受,让你觉得自己还没丧失动物性。这就是信号。感受常常比分析更早知道我们真正在乎什么。 这种反复出现、不断变奏的主题,在音乐和文学里有个对应的词:母题(Motif)。贝多芬第五交响曲开头那几个音节,后人叫它命运动机;神奇的是,整部交响曲几十分钟,几乎都从这短短一句里长出来,不断转调、变形、反复呼应。一个作家也一样,写一辈子,到头来可能翻来覆去都在问同一个问题,只是每次换一个故事来问。 ![260706-motif](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260706-motif.png) 所谓母题,就是一个你愿意用很多年、很多作品反复回应的问题,每交锋一次,也许就有寸进。 母题既是认出来的,也是做出来的。 你很难在书桌前空想出来,但可以从一个隐约在意、又愿意为它吃点苦的方向动手,在做的过程里,它才慢慢显出形状。我写这个系列大概就是这样。一开始只是隐约难受:AI 明明这么强,怎么我只用出了皮毛?写着写着,可能才逐渐显现出“面对 AI 巨浪冲击,人如何自处”这个更大的问题。 所以别等想清楚了再开始。母题可以一开始就模糊,与其先找答案,不如先认出那个反复闹心的信号,然后让行动帮你把它一点点勾勒出来。是的,靠行动而不是 AI,AI 能回答任何问题,却没有自己的母题。在乎,是人独有的能力。 ## 从母题到行动 光有一个母题还不够。它是按年算的,太大太慢,给得了方向,却落不到今天。 这时候 AI 可以出场了。跟它讲清我在做什么、做到哪了、下一步要什么,请它把母题拆成眼下能推进的事。最好梳理到每周,让每周都有一件最重要的事,让 AI 围着它转。 ![260706-goal](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260706-goal.png) 不用急着找到那个完美的答案。今天能做的,是诚实地问自己: - 什么是我真正想解答的问题?这些年它反复来找过我 - 什么事情值得占用我最好的时间? - 哪些能力必须自留而不能外包? - 这个季度,我能为它推进的三件事是什么? - 这个星期,最重要的又是哪一件? 能校准罗盘的,从来只有你自己。数据帮不上,框架也帮不上。 罗盘不必一开始就精准,但你得开始转动它。 --- # [AI新基建]AI 时代,先换操作系统,再装应用 - URL: https://tophci.com/posts/260701-ai-era-mindset - Date: 2026/07/01 - Tags: AI, 新基建, AgentOS ![260701-cover](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260701-cover.png) [AI 时代,我们需要个人新基建 | 00's blog](https://tophci.com/posts/260623-ai-infra-intro) AI 工具一年比一年强,我的判断力有没有随之加强? 如果让我诚实,回答是并没有。在 AI 的加持下,得到答案毫不费力。可更快拿到答案 vs 更清楚该做什么,是两件事。 道理听着抽象,代价却很具体。过去用错一个软件,只是浪费几个小时。而今天用错 AI,它会用 10 倍速度产生「债务」——看看那些 vibe coding 屎山就知道了,几句话就能堆出几千行难以维护的代码。AI 不挑选方向,如果你给它明智的判断,它放大价值;如果你给它无意义的指令,它则用光速放大忙碌。 在今天,判断比研究值钱,校验比规划值钱,快速发布比实现值钱。 工具一天能换十个,思维方式却是底层的操作系统。限制我们用好 AI 的,可能就是一些长久以来习以为常且运作良好的假设,它决定你看见什么、忽略什么、对什么起本能反应。思维系统不升级,装再多新应用也跑不起来。 今天就来讲几个我意识到需要改变的 mindset。 ## 人不再是中心 在自恋的人类(我说的不是某些人,是人类这一物种,嗯,打击面就是这么宽)心中,有一个根深蒂固的假设:人是这星球上最聪明的物种,技术是伺候人的工具。 这个假设正在以史无前例的速度崩溃。AI 不是更快的计算器,也不是更聪明的搜索框。它是一个进化速度比我们快千百倍的新物种。上个月的用法我还没学明白,这个月它又能做一些我一直以为做不到的事。 大概一年前,我花了不少功夫琢磨怎么管理 AI 的上下文。资料太多,模型一次读不完,我就手动切块、按相关度检索、把次要段落压掉,再分批喂进去。这套方法还让我有点得意,觉得自己是"会用 AI 的人"。 然后模型更新,一夜之间上下文窗口翻了几倍。那套动作全成了多余,整篇直接丢给模型就能处理得又快又好。 那一刻我意识到,我不是在驾驭一个工具,而是在追赶一个远比我跑得快的东西。我刚摸到边界,边界已经又向前推进了一个山头。 一次又一次的追赶让我开始反思,我们确实需要时刻觉察那藏在骨子里的人类中心主义,第一次需要开始学习和另一种(加速生长中的)智能物种共处。 承认了这一点,很多焦虑反而释然了。不用再跟 AI 比速度、比记忆、比计算,这些早就输得没有悬念。该找回的是那些带有粗粝感和生命力的东西:**嗅觉和使命,有失偏颇的价值判断,身体的直觉,在没把握时还敢拍板的勇气,跟另一个人建立真实信任的能力**。 我一直在为人机关系寻找恰当的隐喻。“助手”、“实习生”、“员工”、“副驾驶”,这些主流的称呼反映出我们对待 AI 多少有点傲慢的主人姿态,指挥它干活似乎是天经地义的。 但这一定不是未来。 ![260701-pilot](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260701-pilot.png) 掌控感是人类为了安慰自己而生出的幻觉。也许现阶段更适合的隐喻,是拉力赛里**领航员和车手**的关系。AI 是那个不知疲倦、反应飞快的车手,人是看路书、判断弯道、喊刹车的领航员。车速已经远超我自己能驾驶的极限,但毕竟我们还在同一辆小车里,要是没有领航员,它会在不知哪个转弯就飞出赛道。 敬畏它的能力,信任你的判断。这是我们需要刷新的人机思维。 ## 区分信号与噪声 过去大家拼的是信息差,谁先拿到消息,谁就能占尽先机。在今天,你要十份报告、二十个方案、五十条建议,AI 一分钟就能满足。问题是"哪一条才真正重要"。 噪声分为两种。 一种在外面:热点、推送、别人的焦虑、"再不做就晚了"。AI 把这种噪声放得更大,任何热点,十分钟就能产出一篇像样的深度分析。 另一种在里面,更难察觉,是我给自己制造的忙碌假象。"反正 AI 能做,多试几个方向呗" "这个看着有用,那个也先存着吧"。什么都想抓的人(是我是我就是我),在 AI 的加速下,只会被卷得飞起。 ![260701-filter](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260701-filter.png) 如何区分信号和噪声?信号跟你真正在意的那个既大又难的问题直接相关,其余都是噪声。原则无比简单,但做到很难——首先,你得知道你真正关心什么。这个我们下一篇再详细来聊。 ## 用作品牵引注意力 最近两年我的工作 IM 的签名是:Attention is all you lost。 注意力瞬间就被蒸发的时代,这就是我的现状。 更狠的自律?更好的时间管理?无数人已经证明那些没有用。 我觉得真正的解药是一件正在完成的作品。 ![260701-work](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260701-work.png) 手上有一篇在写的长文、一个在搭建的系统、一个在验证的原型,就有了一个天然的过滤器。每条新信息、每个新工具、每次"要不要也试试"的心痒,都先过滤一遍:它对我手上这件作品有用吗? 以前我每天总是要花两三个小时,焦虑地刷完一条又一条未读,然后发现它们跟正在做或者想做的事一毛钱关系都没有。开始写这个系列之后,我干脆让 AI 替我先筛选每一篇新进来的资讯,跟我写的内容有没有关系?有关的才认真读,再想怎么吸收进来。Claude 发了 Managed Agent?正好需要,去看看它怎么组织 AgentOS。世界模型又突破了?跟我暂时没关系,先不管。有了这张滤网,我不再在 AI 热点里疲于奔命。 作品就是最好的牵引。我可能还是会习惯性开机先看有什么消息、什么推送、什么热点,但看见了留给自己的各种提醒,总还是觉得今天应该要 ship 点什么。 守护注意力的从来不是工具,是一件你愿意为它殚精竭虑的作品,虽然它一开始可能只是垃圾。 ## 感受优先于规则 这一点可能最反直觉。 AI 相当擅长生成看上去天衣无缝的规则、框架、方法论。问它任何问题,都能给出一套自洽的方案,事无巨细,面面俱到。 麻烦就在这儿。智力让智力变得廉价了。真正微妙的,是你面对智识碾压时的直觉:这感觉有点不对。不是逻辑能推理出来的对,是你的身体、经验、审美在瞬间形成的综合判断。AI 没有这些。它有的是统计规律,你有的是亲身经历。 ![260701-feeling](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260701-feeling.png) 总有这么一些时刻,AI 给的方案你逻辑上挑不出毛病,却总觉得哪里别扭。别忽略这个时刻,直觉常常比分析更准。回头看,多半是 AI 默默采用了一个并没有对齐过的前提,它藏在漂亮的逻辑之下,只能靠你一息尚存的感觉来捕捉它。 如果 AI 给出的选择太多、框架太多、"正确答案"太多,不知道挑哪个时,就回到身体和感觉吧!此刻什么对你来说真实感受是什么,只有你知道。感受不一定对,但至少应该被听到,别让漂亮的语言直接把它掩盖掉。 --- 又是几则大而无当的道理,知易行难哎知易行难。 换操作系统,换的是敢不敢停下来回答那些灵魂拷问。而灵魂拷问留下的大概率是迷茫和虚无。 欢迎来到新的世界,新的荒原。 --- # [AI新基建]AI 时代,我们需要个人新基建 - URL: https://tophci.com/posts/260623-ai-infra-intro - Date: 2026/06/23 - Tags: AI, 新基建, AgentOS ![260623-cover](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260623-cover.png) 为什么有了 AI,我们变得更忙更累了? 过去一年,我每天都追赶着 AI 的潮流,模型版本号不停升级,对话框越拉越长,待研究的工具越来越多,想要涉猎的领域如同野草一般蔓延。可是一周下来,重要的事情毫无进展,一阵更大的空虚和焦虑如期而至。 今天,智能正在快速通货膨胀。模型越来越便宜,能力越来越容易获得,几乎每周都冒出一批新工具、新榜单、新的"必学工作流"。可是有一些问题越来越难回答:我要怎样才能跟上 AI 变化的速度?如何用它来提升我的判断力和行动力?我曾经擅长做的事很快就被 AI 取代,未来几十年我要干什么? 拿着一张过时的地图,人很容易迷路。我迫切感觉自己需要一轮新的基建,一轮围绕 AI 重新构建信息环境、工具链、工作方式和创造习惯的基建,一轮刷新思维方式、动力系统、人机哲学的灵魂新基建。 过去的基础设施,解决的是人怎么接入工业社会:电力、机器、交通,把人的体力放大。互联网时代的基础设施,解决的是人怎么接入信息社会:搜索、社交、云端、移动设备,把人的连接和分发能力放大。 今天,问题已经改变。 我们的新课题是,人怎样借助 AI 放大自己。 对个体来说,这不只是学会用那几个 AI 应用,而是需要重新搭建一套能持续增强认知、放大行动、保持续航的底座。否则,AI 越强,我们越容易感觉失控。 ## 孤岛之间划船 看看失控感和无力感是怎么来的。 比如说要写一篇关于 AI Agent 的文章。 先让 AI 搜最近的报告、论文和产品案例,挑选出有用的复制到 Notion,摘出关键段落和自己的想法。接着打开 ChatGPT 让它整理结构。它很快给出一个不太对劲的大纲,好吧,它不知道我要写给谁看。于是补了一大段背景,让它重新输出。然后再拿给 Claude,让它去掉 AI 味。改完后发现有几处和之前在 Notion 里写的内容打架,又得切回 Notion 找原句,再复制给 Claude。如果碰上有什么数据需要核验,那又是打开浏览器,打开报告,打开原始页面,找到来源,再回到草稿里替换。 整个过程看起来很现代,每一步都有 AI 参与,但我只是用更高级的方式,做着碎片化的事情,难怪这么累。 累的不是理解问题,不是形成判断,也不是写出精彩的句子。大量时间耗在切换、复制、解释、核验、搬运上。就像站在几台聪明的机器中间,它们都很能干,但没有任何一台知道其他机器刚刚做了什么。 我以为自己在用 AI 工作,其实更多时候是在给 AI 孤岛当邮递员。 ![260623-1-boat](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260623-1-boat.png) 为什么会有这么多孤岛? - **上下文散了**——我的目标、身份、项目历史、偏好,分散在不同工具的不同对话里,互不相通。 - **流程断了**——没有一层编排来串起步骤,每个工具只负责一小段,工具之间的衔接全靠手动,信息在搬运中不断损耗。 - **记忆没了**——没有机制把协作中攒下的经验沉淀下来,每次协作都从零开始,我的判断、决策、积累,不会自动进入下一次。 每个工具都像一座很漂亮的岛。而我是那个每天在孤岛之间划船送信的人。 ## 旧世界的容器 今天的大多数数字工具,是为上一个时代设计的。PKM 管理信息,浏览器访问网页,云盘存文件,待办工具列任务。它们假设人是唯一的行动者,工具是被动的容器。人负责判断、搬运、组织和更新,容器本身不主动做任何事。 在信息时代,这个假设没问题。因为信息太多,我们需要容器,需要分类,需要搜索,需要同步。一个好工具能更方便地存取信息。 但 AI 不只是容器。它能搜索、分析、生成、修改文件、调用工具,也能在流程里连续执行多个步骤。它不再只是等着人把资料放进去的抽屉,而更像一个协作者。 > 不能用管理容器的方式来管理协作者。 容器只需要文件夹、标签和权限。协作者需要知道目标是什么,做到哪一步了,哪些资料可信,哪些工具能用,什么情况下必须停下来让人判断。 ![260623-2](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260623-2.png) 这就像你请了一个能力很强的助理,却不给他项目背景,不告诉他你的判断标准,也不让他使用任何工具。然后你每天把一个孤立的问题抛给他,再抱怨他不够懂你。 于是很多人会感到一种奇怪的落差:模型能力明明一年比一年强,自己的工作方式却没什么变化。问题不在模型,在它运行的环境——**旧的数字系统帮我们消费信息,却不知道如何调度智能。** ## 从消费信息到调度智能 个人 AI 新基建,要解决的就是这个问题。它更像一套底座,把**意图、上下文、记忆、工具和工作流**连到一起。 过去的数字基建管的是文件、笔记和任务,AI 时代的新基建的目标是**调度智能**。 提问只是入口,而调度智能是一连串动作:先判断什么值得做,再决定什么时候让 AI 去搜索、分析、写作还是编码;过程要看得见,而不是只输出最终结果;做完了还要把这次的经验留下来,让下一次不必从零开始。 这也是"基建"的意思。基建是长期可用的底座。城市有道路、电力和供水,一个人也需要自己的上下文、流程、记忆和工具接入。没有这些底座,再强的 AI 也只是一个很聪明的窗口,每次打开它都要重新开始。有了这些底座,AI 才能从聊天工具变成个人操作系统的内核。 ![260623-3](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260623-3.png) ## AI 时代,尺子先行 那怎么判断自己到底有没有用好 AI? 这个问题很重要,因为它体现了 AI 时代最重要的思维方式之一:先想清楚评估指标,再决定用什么工具。 用"试了多少模型""装了多少 skills""收藏了多少教程"来衡量 AI 能力,很容易制造进步的幻觉。真正重要的是,它有没有让一个人更自由、更清醒,更有行动力。这可是 AI 的舒适区,它给出了七个北极星。 ![260623-4](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260623-4.png) - **认知杠杆率。** 同样一小时,能不能完成更多高质量的思考、分析、表达和决策? - **上下文连续性。** 目标、偏好、项目历史和关键决策,能不能跨时间、跨设备、跨应用随时完整可用? - **行动闭环率。** 一个想法从出现,到计划、执行、反馈、复盘,能不能完整落地?AI 很擅长描绘蓝图,但真正改变生活的是闭环。 - **可信度与可追溯性。** 关键结论从哪来,中间做过哪些取舍,哪一步必须由人拍板,这些能不能留下痕迹? - **边际实验成本。** 验证一个新方向,过去要几天,现在能不能压到几小时?试错越便宜,从真实世界拿到反馈就越快。 - **注意力主权。** AI 会同时放大效率和分心。你一天里最好的那段时间,是留给了自己的问题,还是给了外部的噪声? - **身心续航力。** 这一点最容易被忽略,身体不是效率的对立面。一个让人更焦虑、更透支、更难恢复的系统,不管看起来多先进,都不是好基建。 总而言之,目标是加快人和 AI 的协作进化速度,同时不丢掉人的判断和方向。 新基建怎么建?大家都在摸索中,这当然不是一篇文章能讲完的。它至少有几大块:怎么先把方向校准,怎么装上真正能放大你的引擎,怎么铺好让智能持续跑起来的底座,又怎么让这几层彼此咬合,转成越转越快的飞轮。 我没有答案,我正在寻找答案。所以我想邀请你一起,与其每天追着工具和热点疲于奔命,不如在这场智能的浪潮里,重新为自己打下一块地基,也重新认领那个真正值得探寻的重要问题。 --- # 生成式 UI:框架、协议与实现类型 - URL: https://tophci.com/posts/260207-genui-framework - Date: 2026/02/06 - Tags: Agent, UI, GenUI, Coding 生成式 UI 是由 AI 根据用户的上下文、意图和数据,实时动态地创建和调整的用户界面,目标是提供适应用户需求与场景的个性化体验。 Generative UI 的核心是从"设计界面"转变为"设计能够生成界面的系统"。 | GenUI 优点 | GenUI 挑战 | | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **个性化**:提供针对用户角色、偏好和工作流程定制的界面。
**快速原型设计**:即时从提示生成 UI,加速设计迭代过程。
**动态适应性**:用户界面可根据上下文或用户行为实时改变。
**设计到开发成本降低**:缩小设计、开发和部署之间的差距。 | **质量控制风险**:生成的 UI 不一定符合品牌或无障碍标准。
**安全问题**:运行时生成的动态用户界面引入了风险。
**性能开销**:若未经过优化,实时生成可能会拖慢性能表现。
**用户体验一致性**:若缺乏约束,界面体验可能不一致。 | 目前 GenUI 做得比较好的产品: | | **Gemini-Visual Layout** | 灵光-全模态内容 | **Gemini-Dynamic View** | 灵光-闪应用 | | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------- | | 截图 | ![260207-genui-1-s](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260207-genui-1-s.png)**互动杂志**Server Driven UI/DSL实现(组件/模块级) | ![260207-genui-2-s](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260207-genui-2-s.jpg)**互动杂志**HTML 实现(像素/标签级) | ![260207-genui-3-s](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260207-genui-3-s.png)**迷你 App** | ![260207-genui-4-s](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260207-genui-4-s.jpg)**迷你 App** | | **主要目标** | “看”:优化信息的阅读和浏览体验。 | | “用”:通过交互来探索数据或完成任务。 | | | **原理** | 将文本、图片、视频进行美学排版,整理成模块化卡片。 | | LLM/Agent 实时编写代码,生成一个可交互可独立部署的 html, iframe 嵌入到页面中呈现 | | | **典型场景** | 旅游攻略、产品对比、购物清单、灵感搜集。 | | 交互式图表、计算器、学习模拟器、个性化选品。 | | ## **生成式 UI 如何工作** GenUI 解读意图(来自用户指令、系统状态或历史数据)并生成相应的界面组件。 1. 用户输入或上下文触发:可以是文本指令、语音命令,或诸如用户行为、应用状态等上下文数据。 2. AI 推理:模型解析输入,以理解用户的**意图**。 3. 界面生成:系统根据意图编排或直接生成定制的 UI 元素。 4. 渲染与执行:使用前端框架(如 React)渲染 UI,并动态连接到业务逻辑或 API。 其中也包括自适应的界面更新 adaptive UI,根据不断变化的用户需求来调整界面。 **关键要素** ![260207-genui-5](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260207-genui-5.png) ## Agent 协议和框架 生成式 UI 的核心是 **Agent 驱动的动态界面生成与交互**。Agent 是决策核心,其框架定义了能力边界,协议则保障了交互的稳定性与扩展性。 | **维度** | **框架/协议相关要素** | **对应的生成式 UI 能力** | **典型示例** | | :----------- | :----------------------------------------------------------------------------- | :------------------------------------------------------------------ | :----------------------------------------------------------------------------------------- | | 核心驱动逻辑 | 框架的核心模块(意图识别、任务规划、工具调用、上下文记忆) | 动态理解用户需求,智能规划界面组件与布局,实现个性化交互 | 用户输入“生成数据分析仪表盘”,Agent 解析需求后规划图表、筛选器等组件生成适配界面 | | 通信交互保障 | 核心协议(Function Call、JSON Schema、gRPC) | 确保 Agent 与前端、后端、第三方工具的信息传递准确,界面渲染正常 | Agent 按 JSON Schema 输出组件描述,前端精准解析并渲染;多 Agent 协作时通过协议高效传递信息 | | 场景适配扩展 | 框架扩展性设计(模块化、插件机制、多记忆模块) | 适配多终端(PC/移动端)、多业务场景(电商/医疗/办公),对接多数据源 | Agent 加载数据库插件,使生成式 UI 对接业务数据库;切换记忆模块实现用户偏好记忆 | | 可靠性与安全 | 安全机制(权限校验、任务审核、上下文隔离);协议规范约束(参数校验、格式限制) | 规避生成内容不可控、权限滥用等风险,保障界面生成与交互安全 | 通过协议限定 Agent 可调用工具列表;通过框架权限模块控制数据访问范围,防止恶意组件生成 | ### Agent 协议 > 用来“让不同Agent/组件能互通”的消息/事件/数据格式规范——Agent 之间怎么对话、前后端怎么对话、UI 怎么描述、事件怎么流、用什么传输等等。 目前主流的协议包括: | **特性 / 协议** | **MCP** | **Agent2Agent (A2A)** | **[Agent Protocol](https://agentprotocol.ai/about/)** | | :-------------- | :-------------------------------------------------------------------------------------- | :------------------------------------------------------------------------- | :---------------------------------------------------- | | **核心目标** | 连接 LLM 与数据/工具 (Universal Adapter) | Agent 间协作与发现(Interoperability) | 标准化 Agent 控制 API (REST Interface) | | **架构模式** | 中心化 Client - Server:含 Host(统筹)、Client(通信代理)、Server(能力提供)三大组件 | 去中心化 P2P 对等架构,以 Agent 为核心,通过 Agent Card 实现动态发现与直连 | 任务导向的 Client-Server 模式,侧重于任务生命周期管理 | | **通信协议** | Client - Host - Server | HTTP + JSON | REST API (OpenAPI Spec) | | **传输层** | Stdio (本地), HTTP+SSE (远程) | HTTP / WebSocket | HTTP (REST) | | **典型用例** | 让 Claude 读取本地 Git 仓库或 PostgreSQL | 多 Agent 寻找彼此并协作 | AutoGPT 跑分评测 | | **主要维护者** | Anthropic (Open Source) | Google / Linux Foundation | AI Engineer Foundation | MCP:“Agent/AI 应用 ↔ 工具/数据”的**连接协议** A2A:“Agent 彼此聊天协作”的 agent-to-agent **通信协议** ### Agent UI 协议 > Agent 与 UI 层、上下游系统的 “通信规则”,确保各方数据传递和指令交互的一致性、准确性。 | 概念 | MCP | MCP Apps | A2A | A2UI | [AG-UI](https://docs.ag-ui.com/introduction) | | :----------- | :----------------------------------------------------------- | :------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- | :----------------------------------------------------------------------- | :------------------------------------------------------------------------------------------ | | **作用** | 定义 Agent 如何调用外部工具 / 数据源(tool/data) | 把 “工具返回交互 UI” 标准化进 MCP(ui://、可审计、双向通信) | 让不同 AI Agent 互相发现、握手并协作完成任务的通信协议 | Agent 输出 JSON 描述意图,客户端用原生组件渲染(跨端、安全、非任意代码) | 让 Agent App 可靠地 “边跑边同步”:生命周期、文本流、工具调用、状态快照 / 增量等统一成事件流 | | **生态位** | 工具连接层 (Connector) | 能力提供方 (Provider) | 协作层 (Network) | 渲染层标准 (Spec) | 展示层 (Vision) | | **层级** | Agent ↔ 工具的连接层 | MCP 的 UI 标准 | Agent 间协作层 | UI 描述 / DSL 层 | 运行时交互 / 会话协议层 | | **简单类比** | “Agent 的工具插座:Agent 想查数据,MCP 帮它插对数据库的接口” | “带 USB 接口的智能设备:比如支持 AI 读取的数据库软件,既能返回数据也能给 Agent 展示操作界面” | “AI 界的微信 / Slack:我不会订票,但能发消息给‘订票 Agent’让它做” | “Agent 发乐谱 (JSON),浏览器用钢琴 (React/Flutter) 把它弹出来” | “魔法报纸:内容和排版根据看报人的操作自动变化,边看边更新” | ### Agent 框架 > 用来“写/跑 agent 逻辑”的代码库或运行时——编排、多 agent 协作、工具调用、状态/记忆、容错、部署等 - LangChain / LangGraph:面向生产的 agent 编排/运行时与图式工作流。 - AutoGen:多 agent 会话/协作框架。 - CrewAI:多 agent 编排框架。 - Google ADK:Google 的 agent 开发/部署框架。 ### Agent UI 框架 > 是界面开发的 “骨架” 与 “能力引擎”,定义了 Agent 如何与 UI 组件联动、如何驱动界面动态生成和交互 Agent UI 框架/SDK - **Vercel AI SDK(含 UI 能力)**:更偏“AI 应用开发工具箱”,把工具调用结果映射到前端 UI 的路径很成熟,但它本身不等同“agent 编排框架”。 - **assistant-ui / CopilotKit / Tambo / Crayon**:主要解决“怎么把 agent 交互做成产品级 UI”,属于 UI SDK/前端框架范畴。 - **Chainlit / Streamlit / Gradio**:更像“快速把 agent 跑起来给人用”的 UI 容器/原型框架。 - **[Open WebUI](https://github.com/open-webui/open-webui)**:成品外壳/平台型 UI。 ## 生成式 UI 的实现类型 | | **A. 客户端代码生成** **(Micro-App)** | **B. 服务的驱动的结构化 UI** **(SDUI / DSL / Catalog)** | **C. 工件编辑器** **(Canvas Editor)** | | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **核心逻辑** | 写代码 | 填参数 | 改文档(Edit Artifact) | | **代表产品 / 框架/协议** | Claude Artifacts;Gemini Dynamic View;蚂蚁灵光-闪应用![img](https://bytedance.larkoffice.com/space/api/box/stream/download/asynccode/?code=NjEzMjljMTI3OGE5YTlmZGFjNmQ4ZGIzNzEwZmVhMWRfZGVUaUpycU1aZkdDVFJ0aXpETnVzWjkyY01NZEtuV1NfVG9rZW46WXFwdmJhNVROb1ppMkR4eUZkcmMwN1dmbjViXzE3NzAzODYxMDU6MTc3MDM4OTcwNV9WNA) | Gemini Visual Layout;蚂蚁灵光-对话;A2UI![img](https://bytedance.larkoffice.com/space/api/box/stream/download/asynccode/?code=OWVjNzJjNTE3YTAxM2NiNTc3YTQxODE2OWQ0YjFlNWVfVXpzWVJlTVhGSE81ZTFnT2U5T21xREtyeXlaTFlKUUhfVG9rZW46U2NraGIwUE9Kb0x2WUR4bmVjbWNKM1JrbmlkXzE3NzAzODYxMDU6MTc3MDM4OTcwNV9WNA) | Gemini Canvas;OpenAI Canvas![img](https://bytedance.larkoffice.com/space/api/box/stream/download/asynccode/?code=NGY4ZDk3ZjZkY2Y2ZTY5YThjYjEyM2Y5ODU4ZWVkYzRfeHBuSm5jUHR0cTlQRW1nNlppQk5qaTZVbExmRmhtUmZfVG9rZW46WXh3VWJzZUlZbzFLZVV4eFhmUmMzRVBubkhiXzE3NzAzODYxMDU6MTc3MDM4OTcwNV9WNA) | | **LLM 输出什么** | 可执行前端代码 | 结构化 JSON/DSL:组件树 / 布局 / 数据绑定 / 动作(输出意图和参数,不是代码) | 对文档 / 代码状态的编辑指令(diff/patch/ 重构)、可运行的代码 / 内容 | | **前端渲染什么** | 沙箱里跑的独立小应用 | 本地预置的组件库(Design System)拼装出的 UI 原生 / 网页 | 编辑器 + 运行容器 | | **交互闭环怎么做** | UI 事件在沙箱内部处理;需要时把状态 / 结果回传对话 | UI 事件编码成结构化消息回给 agent;agent 决策后输出新的 JSON/patch | 用户选区 / 标注 → 模型做局部修改 → 持续迭代 | | **实现模式** | iframe/webview sandbox;CSR 运行 + 热更新 | - CSR 映射(客户端服务器渲染映射); - 跨端 native renderer; - RSC stream 也能做但少见 | LLM 拥有对文档 / 代码状态的读写权限。编辑器模型 + 预览容器;Web 常是 CSR;代码预览可能用 sandbox / 容器 | | **优势** | 自由度极高:能做新交互、游戏、复杂可视化 | 稳定、安全、品牌统一、跨端、可治理;在 schema 约束下低幻觉、可校验 | 最适合长任务、局部编辑、版本化与协作 | | **代价** | - 稳定性(代码报错 / 样式崩) - 安全(执行不可信代码) - 一致性(风格分裂) - 成本(token / 推理) | - 创造力受组件库限制; - 要维护 catalog/schema/renderer; - 复杂交互要扩展协议 | - 不一定 “每轮都生成 UI”; - 更像创作环境; - 实现细节复杂 | - CSR(Client-Side Rendering):客户端渲染模式下,LLM 输出 JSON 数据,前端根据预定义映射表决定渲染哪个组件。逻辑位于客户端。 - RSC(React Server Streaming):在服务器模式下,LLM 在服务器生成 React 组件并流式传输到前端渲染结果。客户端无需将数据映射到组件,只需接收 UI 树。 ## Q&A ### MCP Apps 和 A2UI 有什么不同? - MCP Apps:先定义组件/App。 - A2UI:由模型实时驱动生成的动态 UI 的协议。 | 维度 | MCP Apps | A2UI | | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **基本形态** | 在 MCP 上扩展获取 "UI 资源" 能力 | Agent 输出声明式 JSON UI 蓝图,客户端以本地组件库渲染 | | **架构** | 以 HTML/JS 为主的 "远端 UI",把**可交互页面作为一种可获取的资源**,嵌入 Agent 对话 / 工作流中 | 以**数据描述 UI + 客户端原生渲染**为核心,确保跨端一致性与安全可控 | | **功能定位** | 让工具调用不仅返回文本和数据,也能返回可交互界面 | 告诉前端“要什么样的界面”(声明式、跨端渲染),让应用能够接入可由 Agent 生成的界面。 | | **适用于** | 更适合“工具侧提供 UI 模板”,Host 加载呈现;可做“开箱即用”的工具 UI。 | 更适合“Agent 按上下文生成 UI 意图”,Host 负责渲染与交互闭环。 | | **设计表现力** | UI 作为资源(页面)返回,表现力可以接近 Web 上限(图表、动画、媒体、复杂布局均可) | 组件树声明式 JSON,Agent 能直接“表达 UI 意图”。表现力取决于 Host 组件库丰富度。更适合做“增量更新 UI”(修改某字段、局部刷新、动态添加组件)。 | | **关键机制** | - MCP Server 预声明 UI 资源,并把 UI 与 Tool 元数据关联 - Host 在需要时拉取 UI 内容(text/html)并渲染 - UI 通常以 iframe 沙箱方式运行,隔离宿主环境 - UI 与宿主 / 工具之间通过 MCP 的 JSON-RPC 通道进行双向通信 | - Agent 回复不发送 HTML / 可执行代码,而是发送 UI 组件树的 JSON 描述(结构、属性、事件等) - Host / 客户端内置组件目录和渲染器,将 JSON 映射为 Web/Flutter/iOS/Android 等平台的原生组件 - 传输层可与 A2A、AG-UI 或其他消息管道结合,强调 "格式标准化 + 传输解耦" | | **典型场景** | **对话内嵌业务 UI**:权限配置、审批流、客服信息收集、运维操作面板等。 **工具结果可视化**:数据分析图表、报表、仪表盘的交互呈现。 **复杂输入收集**:多字段表单、多步骤 wizard、批量选择等。 | **即时生成表单/控件**:预订、填报、筛选、对比等对话场景中动态生成 UI。 **跨端一致体验**:同一套 UI 描述可落地到 Web/Flutter/移动原生。 **多代理协作**:子代理能产出 UI 蓝图,被主代理/宿主理解与组合(更利于互操作)。 | | **开发优势** | - 前端门槛低,Web 技术栈成熟。 - UI 表达力强,易做复杂界面与快速迭代。 - 对已有 MCP 系统可渐进增强(兼容纯文本)。 | Host 提供组件库与渲染器,Agent 输出 JSON 蓝图: - 原生渲染一致性好,可访问性与平台体验更统一。 - 组件化扩展清晰:新增组件类型即可扩展表达力。 - 可用模板 + 数据减少 LLM 结构生成难度。 | | **挑战** | 跨宿主一致性与样式融合需要额外工程。安全审核与沙箱策略需要严格执行。 | 需要理解并实现组件映射/渲染层(初期成本较高)。规范早期阶段可能存在变动,需跟进版本演进。 | - MCP 解决 Agent 如何调用外部工具/数据源的问题,属于 **Agent ↔ 工具** 的连接层。 - A2UI 让 agent 输出**声明式 JSON UI 意图**,客户端用本地组件库渲染,属于**UI 描述/DSL 层**。 两者可以同时存在:一个用于“工具自带的交互面板”,一个用于“Agent 临场生成的跨端界面”。 ![260207-genui-6-s](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/260207-genui-6-s.png) ### Agent skills 和 A2UI 有什么不同? - Agent skill:让 agent **“会做事”**(把任务变成可复用、可执行、可观测的能力单元)。 - A2UI:让 agent **“会表达界面”**(把 UI 变成可控的声明式意图,让客户端拼装)。 | 维度 | Agent skill | A2UI | | :--------- | :--------------------------------------------- | :----------------------------------------------------- | | 核心问题 | 任务怎么做、怎么稳定做、怎么复用 | UI 怎么说、怎么安全渲染、怎么交互闭环 | | 所在层 | **行为/流程层**(planning → tool use → state) | **呈现层**(UI intent → renderer → event loop) | | 面向对象 | Agent 自身能力(步骤、策略、边界、容错) | 客户端 UI 组件目录(catalog)+ UI 描述(DSL/JSON) | | 输出形态 | 通常是:计划/步骤、工具调用、状态更新、产物 | 通常是:组件树描述、数据绑定、事件定义、增量 patch | | 稳定性来源 | SOP/策略约束、工具契约、重试回退、测试与监控 | schema 约束、catalog 白名单、renderer 控制、事件协议 | | 失败模式 | 做错事:调用错工具、流程跑偏、状态不一致 | 表达不对:组件选错、参数不对、布局不佳(但不会“跑崩”) | | 治理方式 | 版本管理、评测、回放、权限/工具白名单 | schema 校验、catalog 版本、渲染兜底、禁用任意代码 | | Token 成本 | 主要花在推理与工具编排 | 主要花在 UI 描述(可通过短 ID/patch 大幅压缩) | | 典型用途 | 把“复杂任务”封装成可调用能力(像函数/流程) | 把“下一步交互”变成 UI(卡片/表单/对比/向导等) | > **Skill = 行为逻辑 + UI 合约(A2UI 风格)+ 事件回路** 把 A2UI 当作某些 skill 的“输出/交互壳”: - skill 负责:识别意图 → 拉数据/调用工具 → 产出“候选方案/状态” - A2UI 负责:把候选方案变成 UI(对比卡、筛选器、Stepper、确认面板) - 用户点选/提交 → 事件回流 → skill 继续执行下一步 --- # A2UI - 智能体自动生成 UI 界面的全新协议 - URL: https://tophci.com/posts/251222-a2ui - Date: 2025/12/22 - Tags: Agent, A2UI, Design, UI, Coding ## A2UI 是什么? A2UI 是由 Google 开源的一个“**UI 语言 + 传输/渲染协议**”。智能体可以根据对话内容,自动从组件库中生成定制化的 UI。 ![a2ui](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/a2ui.png) | **维度** | **A2UI 是什么** | **A2UI 不是什么** | | -------------- | -------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | | **本质定义** | 一种面向 AI 智能体的**开源协议和标准格式**,让智能体能够生成跨平台的交互界面。 | 它**不是**一个独立的 UI 设计工具或终端应用程序,而是智能体与前端通信的“语言”。 | | **数据格式** | 采用**声明式 JSON** 描述界面的意图、结构和数据。 | 它**不是可执行代码**,严禁智能体发送任意脚本。 | | **渲染方式** | **原生优先**。由宿主应用将抽象描述映射为本地原生组件(如 Flutter 挂件或 React 组件)。 | 它**不是 iframe** 或不透明的沙盒网页,不会产生视觉割裂感,能继承宿主应用的设计风格。 | | **安全机制** | **基于白名单的安全设计**。智能体只能调用组件目录中预先批准的受信任组件。 | 它不是不受控的 UI 注入。通过禁止执行代码,从根本上杜绝了 XSS 等安全风险。 | | **交互体验** | **动态且流式的**。支持基于 ID 的增量更新,允许界面随大模型推理过程“渐进式渲染”。 | 它不是静态的“文本墙”或简单的 Markdown 表格,而是具备交互能力的实时应用界面。 | | **平台兼容性** | **框架无关**。一份 JSON 描述可以在 Web、移动端和桌面端通用渲染。 | 它**不绑定于特定的生态系统**。虽然由 Google 发起,但支持 Angular、Flutter、Lit 等多种前端框架。 | | **生态角色** | 它是**基础设施协议**。可以与 AG-UI 或 Vercel AI SDK 等框架协同工作,解决跨信任边界的 UI 传输问题。 | 它不是一个框架。它专注于**解决“意图如何描述”**,而非“如何管理对话状态”。 | 这是一个类似实时对讲机式的界面传输协议。 ## A2UI 要解决什么问题? > 智能体如何能安全地跨信任边界发送丰富的用户界面? ![a2ui-solve-problem-s](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/a2ui-solve-problem-s.png) A2A 协议给界面设计带来了挑战:如果智能体在应用里,它可以直接控制界面。但在多智能体协作的场景中,执行任务的智能体通常在远程(如后台服务或其他公司),无法直接控制界面,只能通过发送消息来交互。 传统做法是发送 HTML 或 JavaScript 代码,然后用 iframe 运行。但这会让系统变得复杂,界面看起来和应用不协调,而且安全管理也很麻烦。我们需要一种既安全(像传输数据那样),又灵活(像运行代码那样)的新方法。 ## **解决方案:把界面当作消息来传输** A2UI 提供了一种标准**格式**,让 AI 智能体可以创建和更新用户界面。它支持通用组件和客户端自定义的组件,可以组合成完整的界面布局。这些布局**用消息来传输,而不是直接运行代码**,然后让客户端用原生 UI 组件进行渲染。这样客户端就能完全控制样式和安全。 ![agent-send-description-s](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/agent-send-description-s.png) ``` - 不传可执行代码,而是传声明式 JSON;客户端用自有组件渲染,所以样式/可访问性/安全都可控。 - A2UI 是一种“UI 语言”,或者说是一个可被 agent 驱动的状态机外壳,而不是一个 UI 框架。 ``` ![a2ui-analogy](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/a2ui-analogy.png) ## A2UI 的工作原理 ![how-a2ui-work-s](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/how-a2ui-work-s.png) A2UI 把 UI 当成一串 JSONL 消息(常用 SSE 传输),客户端进行**渐进式渲染,**降低等待感。 - 服务器到客户端一共四类消息:`surfaceUpdate`、`dataModelUpdate`、`beginRendering`、`deleteSurface`。 ​ ![a2ui-message](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/a2ui-message.png) - 用 `surfaceId` 管理多个 UI 区域(例如:聊天流里每条 agent 回复各一个 surface,右侧再有一个持久侧栏 surface)。并且 每个 surface 有自己的 data model,避免键名冲突。 - 用**扁平组件列表**,靠 `id` 引用组织层级(adjacency list),因为嵌套 JSON 树对 LLM 太容易出错,也不利于局部更新。这是为 LLM 的生成特性量身定做的:更容易增量生成、也更容易按 id patch。 ## **A2UI 的优势:设计即安全,模型友好,框架无关,渐进式渲染** ### 安全 直接运行 AI 生成的代码很危险。A2UI 只是数据格式,不是代码。你的应用有一个预先批准的组件清单(比如卡片、按钮、输入框),智能体只能使用这些组件。这样可以防止恶意攻击。 - agent 只能“请求渲染”客户端 catalog 里**预批准的组件**,不能注入任意脚本。 - 可以有标准 catalog,也可以自定义/扩展;并且有 catalog negotiation:server 在 Agent Card 里声明支持哪些 catalog,client 在每条消息 metadata 里声明自己能渲哪些 catalog。 ### 适合 AI 且可以逐步更新 界面用带编号的组件列表来表示,方便 AI 一步步生成,用户体验更流畅。随着对话继续,智能体可以根据新需求快速调整界面。 ### 跨平台通用 A2UI 把界面结构和具体实现分开。智能体发送组件描述和数据,应用负责用自有控件来显示。同一份 A2UI 数据,可以在不同技术的应用(网页组件、Flutter、React、SwiftUI)上显示。 ## 小结 A2UI 所倡导的“Agent 驱动界面”范式,为解决长期存在的交互复杂性问题提供了 一把锋利的“奥卡姆剃刀”。它将 UI 生成能力下放给最理解上下文的 Agent,同时将渲染和安全控制权牢牢掌握在客户端手中,巧妙地平衡了灵活性与安全性。 --- # 永远不要自己写 Skill,除非你看完这一篇——深度拆解 Claude 官方 Skills[附清单下载] - URL: https://tophci.com/posts/251206-how-to-write-skills - Date: 2025/12/06 - Tags: Design, Claude code, Skills, Agent ## 为什么 Skill 很重要?它和 prompt、command 有什么区别? 我们使用 AI 时,习惯了"问一句,答一段"——把它当成输入框后面一个更聪明的搜索引擎。但真正能让 AI 产生价值的,不只是每次想出好问题,而是有没有一套可重复使用、不断改进的 **Skill**。 **Skill 的核心价值:它不是聊天内容,而是"打包好的能力"。** ![1-what-is-skill](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/1-what-is-skill.png) Prompt 往往是一次性的对话指令,斜杠命令更像按一次按钮,解决的是"现在做什么"。而 Skill 是系统中常驻的 **“能力模块”**,它等待被模型发现、读取并复用,解决的是"以后遇到这类事情该怎么做"。 > **Prompt**:一次性的聊天指令。 > > **Command** :常用的「代码片段」。 > > **Skill:**:一整套「SOP + 工具包」。 ## 什么是好的 Skill? 首先当然是看是否满足需要。skill 文档的开头的 name + description 部分需要回答三个问题:① 它帮我干什么活?② 什么时候它该出场?③ 和我现在的项目有没有关系? 官方与高质量社区 Skill,很喜欢用几种固定的“骨架模式”: | **类型** | **结构** | **适用场景** | | ------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------------ | | **Workflow-based(流程型)** | `Overview → Workflow decision tree → Step 1 → Step 2…` | 适合「有固定顺序」的任务(比如 DOCX Skill 的"先决定是读/写/编辑,再按步骤走") | | **Task-based(任务菜单型)** | `Overview → Quick start → Task 1 → Task 2…` | 适合「同一领域多种操作」的 Skill(比如 PDF:提取文本 / 合并 / 拆分 / 表格识别…) | | **Reference / Guidelines(规范型)** | `Overview → Guidelines → Specifications → Usage…` | 用来固化「品牌规范、写作规范、代码风格」这类标准 | | **Capabilities-based(能力清单型)** | `Overview → Core capabilities → 1,2,3…` | 用于"产品管理 / 数据分析"这类综合性系统能力 | 如果我们自己要写 skill,也可以考虑选用哪一种框架。 好的 skill 要遵循 Claude 官方建议的 progressive disclosure 信息组织原则: - **SKILL.md 主体**:保持简洁,建议控制在 500 行左右,多了就拆文件,但要注意避免多层嵌套引用。 - **Bundled Resources**,需要时再读取: - `scripts/`:重复写的代码、需要确定性执行的逻辑。 - `references/`:大块文档、API、schema、长规范。 - `assets/`:模板、pptx、html boilerplate、字体等。 值得提醒的是,在 skill 中要写清楚判断条件和出错后怎么办,这样 AI 遇到问题时才知道如何处理。比如:需不需要先检查?如果失败了该提示什么?怎么返回上一步? 下面我们就来看看 Claude 官方提供的 Skill,详细拆解优质的 skill 到底长什么样。 ## 如何写好设计类 Skill? 00 做了很多年 UX 设计,对设计类 skill 应该还是有鉴赏能力的,所以下面重点拆解这一类 skill。在 [Claude 官方提供的 skills](https://github.com/anthropics/skills/tree/main/skills) 中, 典型的设计类技能是这两个:`algorithmic-art`, `canvas-design`。 ### algorithmic-art ```markdown name: algorithmic-art description: 使用p5.js通过种子随机性和交互式参数探索创建算法艺术。当用户要求使用代码、生成艺术、算法艺术、流场或粒子系统创建艺术时使用此技能。创建原创算法艺术,不要复制现有艺术家的作品以避免版权侵权。 ``` ![2-mood-canvas](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/2-mood-canvas.jpg) 完整的 skill 请访问:https://github.com/anthropics/skills/blob/main/skills/algorithmic-art/SKILL.md 通读这个 skill 文档,00 为你总结了几个炸裂💥的技巧: #### 1. 提高天花板:不是“画一张图”,而是“创立一个流派” 一上来就不是说“帮我用 p5.js 画图”,而是: > Algorithmic philosophies are computational aesthetic movements that are then expressed through code. 把任务从“生成一张作品”提升到“创建一个美学流派 + 对应的算法体系”。这可太高明了,这是在提醒模型:**输出要成体系,而不是一次性灵感**。让后续所有指令都围绕“这是一门流派”展开,而不是“某个 pattern”。 #### 2. 双阶段结构:哲学 → 实现 Skill 明确要求分两步: - Algorithmic Philosophy Creation (.md) - Express by creating p5.js generative art (.html + .js) 而且强调:“理念先行,代码只是表达工具”。这里值得借鉴的地方是: - **强制抽象层在前**:避免模型直接掉进“写代码、调数值”的局部最优。 - 把“哲学”规定为 4–6 段,有明确结构和要素(噪声、粒子、场、时间、参数、涌现)。 #### 3. 哲学写作范本:又诗性又工程化 这一段特别能体现领域专家的深厚功底: > To capture the ALGORITHMIC essence, express how this philosophy manifests through: > > - Computational processes and mathematical relationships > - Noise functions and randomness patterns > - Particle behaviors and field dynamics > - Temporal evolution and system states > - Parametric variation and emergent complexity 值得借鉴的地方: 1. 用**问句/维度**约束内容,告诉模型思考的方向。 2. 每个点都同时是**美学语言 + 技术对象**(噪声、粒子、场),方便后面直接映射成代码结构。 3. 避免空洞的“文艺废话”,因为每句都要可算法化。 4. 重要的规则集中在 “CRITICAL GUIDELINES” 中强调: - **Avoid redundancy**:硬性规避同一个概念反复啰嗦。 - **Emphasize craftsmanship repeatedly**:强调“精工细作、顶级匠人、无数次迭代”。告诉模型不是在写某个 demo,而是在写一个看起来花了几百小时精心打磨出的算法。 #### 4. 示例:概念 → 数学结构 的翻译模板 比如 “Organic Turbulence”: - 概念句:Chaos constrained by natural law… - 算法句:Flow fields driven by layered Perlin noise… thousands of particles following vector forces… color emerges from velocity and density… 在 Skill 中没有直接说“用 flow field”,而是用例子示范一遍,留下可泛化的模式。我们写 skill 时也可以用这种“一个哲学 + 一段算法表达”的结构 举 3–5 个例子。 #### 5. “概念种子”:把主题嵌进参数,而不是嵌进文案 这段非常妙: > The concept is a subtle, niche reference embedded within the algorithm itself – not always literal, always sophisticated… Think like a jazz musician quoting another song through algorithmic harmony. 把用户原始主题定义为“quiet conceptual DNA”,要求嵌在**参数、行为、模式**里,而不是写在画面上。并且用比喻(爵士乐里偷引用一段旋律)告诉模型:要有致敬,但要藏得深。同时兼顾“懂行的人能感觉到,不懂的人只会觉得好看”。 这对任何创意类任务都非常好用。 #### 6. 模版化:把自由创作嵌在系统里 “STEP 0: READ THE TEMPLATE FIRST”,这里明确要求:**不要自己新写 HTML**,必须读取 `templates/viewer.html`,保持品牌样式。同时要明确自由度,清楚划分哪些是 FIXED(布局、品牌、seed 控件、按钮),哪些是 VARIABLE(p5 算法、参数 UI、颜色区域)。 这样每次生成的作品都有统一 UI 体验,对模型来说也知道“改哪里 / 不动哪里”,减少预期外的”惊喜“。 ![3-模版化结构](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/3-%E6%A8%A1%E7%89%88%E5%8C%96%E7%BB%93%E6%9E%84.png) #### 7. 把“匠人审美”写成 checklist 下面几段基本是把 generative art 的 best practices 变成了规则清单: - 必须使用 seed:`randomSeed` / `noiseSeed`,保证可复现。 - 参数设计以“物理属性”为中心(数量、尺度、概率、比率、阈值),不要用“pattern 类型”这种靠近结果的概念。 - 工艺要求:平衡、层次、色彩和谐、性能优化、复现性。 > This is NOT random noise – this is CONTROLLED CHAOS refined through deep expertise. 这句话也是点睛之笔,把**随机性 → 可控混沌 → 专业度**整个路径串起来。PUA 说不上,但指挥模型干活的鼓励师是没跑了。 ### canvas-design 这个 skill 跟 `algorithmic-art` 结构类似。 #### 1. 拔高定位:这是“视觉哲学”,不是 PPT 模板 > These are instructions for creating design philosophies – aesthetic movements that are then EXPRESSED VISUALLY. Output only .md, .pdf, .png. 短短一句话,信息量不少:: - **只允许视觉相关格式**(pdf/png),禁止模型跑偏去写长文。 - 再次使用“两步走”:Visual philosophy → Canvas creation。 - 强调:**文本是视觉的从属,不是内容的主体**。 #### 2. “MINIMAL TEXT” 的强约束 哲学部分提出几条原则,让信息活在设计里: > Minimal text as visual accent. Information lives in design, not paragraphs. Text is rare, powerful gesture. 这会让模型任何时候都先考虑“构图/空间/色块/节奏”,文案只是“点睛的线条”,而不是“堆字”。 #### 3. 哲学 + 示例 和前一个 skill 类似,它给了几个极具画面感的例子:Concrete Poetry / Chromatic Language / Analog Meditation / Organic Systems / Geometric Silence。每个都是一句 philosophy 总领(比如“Communication through monumental form and bold geometry”)。然后是一整段 visual expression: - 形状(massive blocks, rounded forms, grids) - 色彩(chromatic fields, natural palettes) - 字体角色(huge single words / tiny labels / whispered typography) - 参考风格(Polish poster, Swiss formalism, Japanese photobook…)。 它的聪明之处在于既给参照,又不具体到“抄某个设计师”,注重原创性。 #### 4. 强调“匠心” & “留白” > Repeatedly emphasize “meticulously crafted”, “painstaking attention”, “master-level execution”。 Text is always minimal and visual-first… nothing falls off the page, nothing overlaps, proper margins are non-negotiable. 平面设计里的专业感,其实就在细节中:不出血、不挤压、不重叠;版心、边距、对齐都被严格校验。这样就把设计师心里的洁癖规范翻译成模型可执行的 checklist,把抽象审美拆成具象行为(不要 overlap / 保留边距 / 检查所有文本)。 #### 5. 科学文本 + 情绪主题 Canvas creation 这一段非常有意思: > Treat the abstract philosophical design as if it were a scientific bible, borrowing the visual language of systematic observation — dense accumulation of marks, repeated elements, layered patterns… sparse, clinical typography, reference markers… artifact that proves something ephemeral can be studied, mapped, and understood… 它在做一个概念拼贴: - 主题:人类经验 / 情绪 / 抽象哲学 → 很虚。 - 视觉语言:科学手册 / 技术图解 / 实验记录 → 很实。 这引导模型把“不可见的东西”当“可测量的数据”去做信息图。 #### 6. 字体与资源 Skill 强制要求必须去 `./canvas-fonts` 目录找字体,字体要作为画面元素,而不是普通排版。 这体现了来自实践的设计经验:字体从来不是“默认变量”,而是核心设计决策。对模型来说,“请认真选字体”需要具体行为约束(去某个目录、用不同 font),不然可能就出现 AI 味很重的 Arial、Inter 字体了。 #### 7. 最后一轮精修:不做加法做乘法 最后的 FINAL STEP 部分让我觉得有点眼熟: > It isn’t perfect enough. It must be pristine… > > To refine the work, avoid adding more graphics; instead refine what has been created… If the instinct is to call a new function or draw a new shape, STOP… ![4-设计总监](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/4-%E8%AE%BE%E8%AE%A1%E6%80%BB%E7%9B%91.png) 用 SKILL 把这种“最后 10% 的工艺感”也编码进去,是非常聪明的做法。 比如我们可以让模型自行检查: > 如果下一步的本能是“多加一个 icon / 多加一层特效”,请暂停。 > > 问自己:有没有可以删掉的东西?有没有可以对齐、合并、强化的关系? > > 只允许修改已有元素的位置、间距、权重和颜色。 这能让作品整体观感直接提升一档。 ### 小结 总结一下,设计类的 skill 技巧: ![5-如何写出优质的设计类 Skill](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/5-%E5%A6%82%E4%BD%95%E5%86%99%E5%87%BA%E4%BC%98%E8%B4%A8%E7%9A%84%E8%AE%BE%E8%AE%A1%E7%B1%BB%20Skill.png) ## 优质 skill 检查清单 为了方便大家使用,00 整理了一个 skill 的 checklist,可以用来检查 AI 生成的 skill 是否符合要求。 ![00_skill_checklist-pre](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/00_skill_checklist-pre.png) 小 tips:可以直接把文档丢给 AI 让它自己检查 👌 **下载方法**: ``` 在「零反思」公众号回复”技能清单“,即可获得下载链接。 ``` --- # Claude 官方讲解 Agent Skills——快速上手工作流最新秘密武器 - URL: https://tophci.com/posts/251118-claude-skills-intro - Date: 2025/11/18 - Tags: Coding, Claude code, Skills, Agent ## **什么是 Skills?** 技能是一个个独立的功能包,它们能给 Claude 或编程环境添加**专业知识、工作流程和工具**。你可以把技能想象成某个专业领域的"使用手册"——能让 Claude 从一个什么都懂一点的助手,变成一个掌握特定专业知识的专家。 一个 Skill 可能包含 1. **工作流程** - 针对特定领域的多步骤程序 2. **工具** - 用于处理特定文件格式或 API 的说明 3. **领域知识** - 特定知识、架构、业务逻辑等 4. **资源** - 用于复杂和重复任务的脚本、参考资料和资产 在 Claude code 的 skill 文件夹中,包含一个必需的 `SKILL.md` 文件和可选的资源: ``` skill-name/ ├── SKILL.md (必需) ← YAML元数据 + Markdown指令 │ ├── YAML frontmatter metadata (必需) │ │ ├── name: (必需) │ │ └── description: (必需) │ └── Markdown instructions (必需) ├── scripts/ (可选) ← 可执行代码 (Python/Bash等) ├── references/ (可选) ← 参考文档 (按需加载) └── assets/ (可选) ← 资源文件 (模板/图片/字体等) ``` **最少必要信息** `SKILL.md` 文档顶部的 YAML 中的 `name` 和 `description`,决定了 Claude 何时使用该技能。要具体说明该技能的**作用**以及**何时使用**。应使用第三人称(例如 "This skill should be used when..." instead of "Use this skill when...”)进行描述。 ![skill-skill](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/skill-skill.png) **捆绑资源(可选)** **脚本**:用于需要确定性可靠性或反复重写的任务的可执行代码(Python/Bash/等)。 ![skill-scripts](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/skill-scripts.png) **参考资料**:可根据需要加载到上下文中,以指导 Claude 的流程和思维。 ![skill-references](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/skill-references.png) **资源**:文件不是为了被加载到上下文中,而是用在 Claude 生成的输出中。 ![skill-assets](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/skill-assets.png) ### **渐进式披露原则** skill 使用三级加载来高效管理 context: 1. 元数据(名称 + 描述)- 始终在 context 中(~100 字) 2. 技能触发时的 `SKILL.md` 正文(<5000 字) 3. 资源 - 根据需要加载 ## **技能创建流程** ![skill-process](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/skill-process.png) ### **第 1 步:通过具体示例理解技能** 要创建好用的技能,首先要知道具体的使用例子,可以是用户提供的,也可以是你想出来后让用户确认的。 比如,做一个图像编辑技能时,可以问这些问题: > 这个技能要支持哪些功能?比如编辑、旋转,还有别的吗? > > 能举几个使用这个技能的例子吗? > > 用户可能会说'去掉照片的红眼'或'旋转这张图'。还有其他用法吗? > > 用户会怎么说来使用这个技能? 别一次问太多问题,先问最重要的,需要的话再追问。 ### **第 2 步:规划可复用的技能内容** 想要把具体例子变成实用的技能,方法是分析每个例子: 1. 想想如何一步步完成 2. 找出哪些脚本、参考文档和资源可以重复使用 例子 1:PDF 编辑技能 ```bash 当用户说"帮我旋转这个 PDF"时: 1. 每次旋转 PDF 都要写一样的代码 2. 可以把 `scripts/rotate_pdf.py` 脚本保存在技能里,下次直接用 ``` 例子 2:网页应用构建技能 ```bash 当用户说"做一个待办事项应用"或"做一个步数统计页面"时: 1. 每次写网页应用都要用同样的 HTML/React 基础代码 2. 可以把基础模板 `assets/hello-world/` 保存在技能里,下次直接用 ``` 例子 3:数据查询技能 ```bash 当用户问"今天有多少人登录过"时: 1. 每次查询 BigQuery 都要重新查找表格结构 2. 可以把表格结构说明 `references/schema.md` 保存在技能里,下次直接查 ``` 总结:分析每个具体例子,整理出可以重复使用的内容,包括脚本、参考文档和资源文件。 ### **第 3 步:创建技能文件** 创建全新技能时,可以运行官方提供的 skill-creator 技能中的 [ `init_skill.py` 脚本](https://github.com/anthropics/skills/tree/main/skill-creator/scripts)。 ``` scripts/init_skill.py <技能名称> --path <保存位置> ``` 这个脚本会自动创建一个技能文件夹,里面包含所需的基础文件。 - 生成一个 SKILL.md 模板文件,里面有格式和待填写的部分 - 创建三个示例文件夹:`scripts/`(脚本)、`references/`(参考资料)和 `assets/`(资源文件),包含一些示例文件,可以根据需要修改或删除 创建后,再根据实际需要修改。 ### **第 4 步:编辑技能** 编辑技能时,要记住这个技能是给另一个 Claude 用的。重点写下那些对 Claude 有用但它不知道的信息。想想什么知识、专业细节或可以重复使用的文件能帮助 AI 更好地完成任务。 **从可重用的内容开始** 开始制作时,先处理脚本、参考资料和资源文件。这一步可能需要用户提供材料。比如做 `brand-guidelines` 技能时,用户可能要提供品牌素材或模板放到 `assets/` 里,或提供文档放到 `references/` 里。 **更新 SKILL.md 文件** 写作风格:整个技能都要用命令式写法(比如"做 Y 来完成 X"),不要用"你应该"这样的说法。用客观、说明性的语言(比如写"要完成 X,做 Y",而不是"应该做 X"或"如果需要做 X")。 完成 SKILL.md 文件时,回答这些问题: ```mermaid graph TD A[完成 SKILL.md 文件] --> B[这个技能是做什么的?] A --> C[什么时候用这个技能?] A --> D[Claude 实际使用时该怎么做?] A --> E[是否已删除无用到的模版文件] D --> D1[说明怎么用前面准备的内容] D1 --> D2[如何使用它们] style A fill:#e1f5ff style B fill:#fff4e6 style C fill:#fff4e6 style D fill:#fff4e6 style E fill:#fff4e6 ``` 1. 这个技能是做什么的?用几句话说明。 2. 什么时候用这个技能? 3. Claude 实际使用时该怎么做?要说明怎么用前面准备的内容,让 Claude 知道如何使用它们。 4. 是否已删除不需要用到的模版文件 ### **第 5 步:打包技能** 技能准备就绪后,可将其打包为可分发的 zip 文件。 ``` scripts/package_skill.py ``` 打包流程会首先自动验证,以确保满足要求: - YAML 前置元数据格式和必填字段 - 技能命名规范和目录结构 - 描述的完整性和质量 - 文件组织和资源引用 如果验证通过,将创建一个以技能命名的 zip 文件,包含所有文件和正确的目录结构。如果验证失败,脚本将报告错误并退出,需要修复错误并再次运行打包命令。 ### **第 6 步:不断改进** 用过技能后,你可能会发现需要改进的地方。改进步骤: 1. 在真实工作中使用这个技能 2. 记下遇到的问题或不方便的地方 3. 想想需要修改 SKILL.md 文件或相关资源的哪些部分 4. 修改完成后再测试一遍 --- 下一篇我们来仔细拆解 Claude 官方的 Skills,加速学习进度 🚀。 --- # 情感计算新范式:语义空间论 - URL: https://tophci.com/posts/251014-semantic-space-theory - Date: 2025/10/14 - Tags: 情感计算, HCI, Emotion, Research 在人机交互研究中,当我们讨论“情绪”,往往会陷入“六大基本情绪”和二维“Valence-Arousal”坐标的拉扯。可是在 AI 与多模态数据时代,这样的框架还够用吗?这篇文章试图用“语义空间论”搭一座桥:从争论已久的旧范式,走向可被数据反复检验、能直接驱动产品落地的新范式。先从“为什么关注”开始,随后快速浏览研究脉络,再进入核心思想与三大维度,最后回到可计算化与应用场景。读完你会对下一代情感计算方法有更多了解。 ## 为什么关注语义空间论 情绪研究中主流理论和模型主要产生于上世纪 70-80 年代,缺乏严谨的定量验证,两大情绪理论已争论数十年,在 AI 时代需要新的研究方法和理论框架。 为了把问题从“旧争论”带入“新证据”,我们先明确当下的三个重要动因: - 情绪的内在复杂性:是否可以用 2/3 维来准确刻画? - 情感计算领域发展的新范式:数据驱动、多模态、动态计算、与 AI 模型结合 - 需要使用大规模、数据驱动的方法 - 如果能结合实时生理传感与生成式模型,语义空间论有望成为“情绪-智能交互”系统的核心理论 - 理论经过规模化验证:理论 → 大规模数据验证 → 工业界应用 - VAD 存在预设维度、数据验证不足等问题 - 语义空间论的数十篇论文提供了数据规模、跨模态、跨文化、神经和生物进化等方面的有力证据 所谓新的范式,这仅是命名游戏,而是可验证、可复现、可落地的范式迁移。接下来,让我们回溯这一迁移中的关键节点与人物。 ## 研究脉络和研究者 情感计算领域的奠基之作 ![affective computing](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/affective%20computing.png) | 理论/框架 | 代表作与年份 | 核心命题 | 可计算化要点 | 关键标准化 | | ------------------------------- | --------------------------------------------------------------- | ------------------------------- | ---------------------------------------- | --------------------------------------- | | PAD(三维 V-A-D) | Mehrabian & Russell, 1974 | 在 V-A 上加入支配/控制维 | 三维 VAD 作为统一标签空间 | SAM 量表/环境心理学与 HCI 评估 | | FACS 面部动作编码 + 基本情绪 | Ekman & Friesen, 1978; Ekman et al., 2002; Ekman, 1992 | 用 AU 编码肌肉动作/离散基本情绪 | AU 中间语义层 → 分类与检测任务 | FACS 手册/训练体系/表情库与评测 | | 环形模型(Circumplex) | Russell, 1980 | 效价 × 唤醒二维连续空间 | 连续情感回归/标注的坐标系 | 与 SAM/GEW/连续标注协议共振 | | OCC 模型(评价本体) | Ortony, Clore & Collins, 1988 | 基于事件/行为/对象的评价结构 | 生成/判断情绪的可执行规则本体 | 虚拟人/游戏/教育代理情感逻辑 | | Affective Computing | Picard, 1997 | 计算机应识别/表达/调节情绪 | 将情绪识别与调节定义为工程任务与接口范式 | 催生多模态识别/调控任务、挑战与系统设计 | | Core Affect(核心情感) | Russell, 2003 | 核心情感是体验的连续基底 | V-A 作潜在态,时变与生理/自报对齐 | 移动经验取样/连续标注方法论 | | Appraisal→EMA(计算化评价理论) | Lazarus, 1991; Smith & Ellsworth, 1985; Gratch & Marsella, 2004 | 情绪源自目标相关的情境评价 | EMA 将评价变量形式化为可模拟系统 | 情感推理/交互仿真框架 | | 组件过程模型(CPM) | Scherer, 2005 | 情绪=评价驱动的多组件动态过程 | 评价变量 → 生理/表达/动机的流程映射 | GEW/多组件测量框架与协议 | | 情绪构建论(CAT/TCE) | Barrett, 2006; 2017 | 核心情感 × 概念知识构建情绪 | 跨语义/跨文化标签不变性与对齐 | 对标签体系与泛化设定的校正 | | 语义情绪空间(高维连续) | Cowen & Keltner, 2017–2021 | ≥25/27 类在高维语义上渐变 | 自然刺激+大样本标注 → 连续嵌入 | 跨文化/模态扩展,影响任务设定 | 感兴趣的朋友可以看看主流情绪理论论战背景:[情绪大辩论——基本情绪论 vs 情绪建构论](https://www.tophci.com/posts/250915-emotion-debate) | **理论类型** | **核心主张** | | ------------ | ---------------------------------------------------------------------------------- | | 基础情绪理论 | 5-8 种离散情绪,边界清晰 | | 建构主义理论 | 情绪基于 2-3 维核心情感(效价 / 唤醒度),具体的情绪概念由语言建构,因人和情境而异 | 为了看清“从奠基到收敛”的路径,下面这条时间线聚焦于语义空间论如何一步步补全证据版图。 | **阶段** | **核心思想** | **关键论文** | | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **第一阶段:奠基与探索** | 挑战传统离散情感类别,通过大规模数据分析,揭示情感体验的**高维连续性**。构建了包含 27 个维度的“情感地图”,并证明不同情感间存在平滑的梯度过渡。 | - (2017) Self-report captures 27 distinct categories of emotion bridged by continuous gradients
- (2019) Mapping the Passions: Toward a High-Dimensional Taxonomy of Emotional Experience and Expression | | **第二阶段:理论的正式提出** | 正式提出“语义空间理论”,将其作为一个统一的**计算框架**。主张情感由高维语义特征定义,并将主观感受、面部表情、声音语调等不同模态的情感信息映射到该统一空间中。 | - (2020) Semantic Space Theory: A Computational Approach to Emotion | | **第三阶段:理论的深化与应用** | 将语义空间理论用于**解释和整合**传统情感理论。证明了“基本情绪”在语义空间中是范围更广、密度更高的区域,从而统一了离散类别与连续维度的观点。 | - (2022) Semantic Space Theory: Data-Driven insights Into Basic Emotions | 语义空间论的提出者是 [Alan S. Cowen](https://scholar.google.com/citations?hl=en&user=-i9gbsAAAAAJ&view_op=list_works&sortby=pubdate),了解他的背景,能帮助我们更好地评估对语义空间论的发展和潜力。 | 维度 | 详细信息 | | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **教育背景** | • 本科:耶鲁大学认知科学 & 应用数学双学位
• 博士(2013-2016):加州大学伯克利分校心理学,师从 [Dacher Keltner](https://scholar.google.com/citations?user=oqw_lMkAAAAJ&hl=en&oi=sra),主攻计算情绪科学 | | **学术贡献** | - 创立“语义空间论”(2017)并在多模态、多文化数据上验证。
- 首批使用 >1 万条跨国视频/音乐/表情数据库探测情绪几何结构。 | | **产业化路径** | 1. Google(2018-2020):创建 Affective Computing 团队,研发面部-声学情绪识别引擎。
2. Facebook (顾问):为情感理解模型提供算法咨询。
3. **Hume AI**(创始人兼 CEO/Chief Scientist):推出 Expression API、Octave、多语种 Empathic Voice Interface (EVI 2),让 LLM 具备情绪表达与“聆听” | ## 语义空间论核心思想 接下来让我们把“脉络”转为“方法”,梳理出语义空间论(Semantic Space Theory, SST)的核心内容: | 核心要点 | 说明 | | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **出发点** | 情绪研究两大流派都围绕“六大情绪”一对一映射展开,忽视了大量真实情绪信息,难以解释人类体验的丰富渐变(“六大”与 V-A 仅捕获 ≈30 % 信息) | | **基本假设** | 情绪体验、表情、声纹、姿态等**共同**存在于一个高维连续语义空间;情绪之间并非孤岛,而是被渐变梯度连接。 | | **数据驱动方法** | 大规模跨文化数据收集 → 受试者对多模态刺激进行自由标签或情绪强度评分 → 以非线性降维(t-SNE、UMAP、Diffusion Maps)寻找情绪几何结构 → 计算机自动聚类与可视化。 | | **关键发现** | - 观看 2185 段影片,自报告稳定聚成 **27 种**情绪簇,且簇之间由连贯梯度连接,而非离散断裂 ([PubMed](https://pubmed.ncbi.nlm.nih.gov/28874542/))。
- 在音乐领域,可复现 **13 种**跨文化一致的情绪维度 ([PubMed](https://pubmed.ncbi.nlm.nih.gov/31907316/?utm_source=chatgpt.com))。
- 面部表情也呈现 **28-30** 类以上的情绪簇,且兼具混合形态。 | | **对比传统模型** | - **基本情绪论**:主张只有少数离散情绪(6 ~ 8 类基本情绪)、边界清晰;SST 发现类别远多于 6 ~ 8,且边界模糊。
- **建构论**:认为核心影响因子是 valence-arousal,具体情绪由文化与语言建构;SST 证明需要十几维以上才能保持心理语义差异。 | | **应用** | - 细粒度情绪识别 API(如 Hume AI)
- 情感音乐推荐、广告创意测试、跨文化情绪本体构建。 | | **常见质疑** | 自报告偏倚;受试者多来自在线众包(文化代表性不足);高维空间如何映射到脑机制仍在探索。 | > 语义空间论将情绪视作一张**连续**、彩色的**高维**地图 ![](https://directus.hume.ai/assets/0fb0ab99-8b7f-44de-8a58-fda55189ec68/blogembed.jpg?width=1332&height=1240&quality=75&format=webp&fit=inside) > 利用自然语料/视频/音乐等大规模刺激 + 自由标签 + 多维可靠性分析,在不预设类别的条件下揭示维度结构。 为避免概念停留在概念,我们把镜头拉近到具体的三大关键,将语义空间论落到任务定义与评测指标上。 语义空间论的三大关键 | 关键点 | 核心问题 | 关键点 | | -------------------------- | ------------------------- | ---------------------------------------------------------------------------------------------- | | **Dimensionality 维度** | 情绪有多少可区分维/类别? | 需 **25 种以上离散情绪**才能很好解释人类情绪变异 | | **Distribution 分布** | 类别边界是离散还是连续? | 多数情绪间无绝对边界,存在连续梯度(如敬畏与兴趣的过渡态)及混合态(如厌恶 + 恐惧、爱 + 渴望) | | **Conceptualization 概念** | 最佳注解单位是什么? | 情绪类别是核心解释变量,效价 / 唤醒度仅能解释 30% 变异 | ## SST 的方法和证据 **方法革新:构建高维情绪研究的新范式** | **研究焦点** | **传统模型方法** | **高维情绪研究方法** | | ------------ | ------------------ | ---------------------------------------------- | | 情绪范围 | 仅关注 “基础六种” | 开放探索多情绪及混合态(如敬畏、胜利感) | | 数据来源 | 依赖科学家假设 | 基于实证数据(民族志、自由反应、自然场景观察) | | 测量维度 | 仅测量面部肌肉运动 | 多模态测量(面部 + 身体 + 声音 + 凝视 + 触摸) | | 统计方法 | 计算情绪识别准确率 | 多维可靠性分析、t-SNE 可视化、机器学习建模 | > 证据力度:大规模、跨模态、跨文化、神经&生物 ![](https://directus.hume.ai/assets/804d54b7-7134-487f-9c6b-e5336ddb8dca/Fig1RR.jpg?width=1920&height=1048&quality=75&format=webp&fit=inside) ### 1.人类的情感体验和表达是高维、连续的 | **证据简述** | **备注** | **Reference** | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **情感体验的高维证据**:通过对 2185 个短视频的反应进行分析,研究识别出 27 种不同的情感体验维度 | 证据的代表性极强,使用了海量、多样的情感诱发材料,远超传统研究。方法(SH-CCA)和数据(提供交互式地图)公开透明,可验证性高。该证据直接、有力地支持了“高维性”主张。 | Keltner, D., Brooks, J. A., & Cowen, A. (2023). Semantic Space Theory: Data-Driven Insights Into Basic Emotions. Current Directions in Psychological Science, 32(3), 242–249. [https://doi.org/10.1177/09637214221150511](https://doi.org/10.1177/09637214221150511) | | **情感边界的模糊性证据**:情感语义空间图显示,不同情感类别(颜色区域)之间存在大量混合与渐变,而非清晰的边界。例如,认知评估(如“努力”)可以连接“厌恶”和“愤怒”等不同情感。 | t-SNE 可视化方法本身会扭曲距离,但局部结构的连续性清晰可见,可验证性较好。它直观地反驳了基本情感理论的“离散性”假设,极具说服力。 | 同上 | | **情感的混合与渐变性**:研究发现,传统上被视为离散的情感类别(如恐惧和惊讶)之间存在平滑的过渡梯度,形成了复合的、可被识别的混合情感表达。 | 证据具说服力,论文提供了交互式地图的链接,允许读者亲自验证和探索数据,可验证性非常高。 | Cowen, A. S., & Keltner, D. (2021). Semantic Space Theory: A Computational Approach to Emotion. Trends in Cognitive Sciences, 25(2), 124–136. [https://doi.org/10.1016/j.tics.2020.11.004](https://doi.org/10.1016/j.tics.2020.11.004) | | **传统模型的局限性**:六基本情感模型和二维环形模型最多只能解释情感体验与表达中[30%的系统性变异](https://bytedance.larkoffice.com/docx/ZDJsdIYDqoMXj6xcOEmcDkrwnie#share-Z5u0dp0vfoiCdbxRqYBcAGtxnAf)。 | 通过量化现有模型的解释力差距,直接凸显了探索新模型的必要性。数据来源于对该领域研究的元分析总结。 | Cowen, A., Sauter, D., Tracy, J. L., & Keltner, D. (2019). Mapping the Passions: Toward a High-Dimensional Taxonomy of Emotional Experience and Expression. Psychological Science in the Public Interest, 20(1), 69–90. [https://doi.org/10.1177/1529100619850176](https://doi.org/10.1177/1529100619850176) | | **可识别情绪种类远超 6 种**:人类通过面部、身体、姿态和声音的组合,可以表达超过 20 种不同的情感状态。 | • 视觉:2185 个视频刺激需 27 种情绪类别解释变异
• 声音:2032 个声音片段可传递 24 种情绪,跨 14 种文化验证
• 面部/身体:1500 个自然场景表情可识别 28 种情绪 | 同上 | | **语义空间映射法**:介绍了一种新的研究方法,即利用大规模统计建模和机器学习,将人们对情感的描述映射到一个高维“语义空间”,从而系统地识别和组织情感类别。 | 这既是证据也是方法论的展示。通过引入一种能够处理高维复杂性的新方法,作者证明了探索情感丰富性在技术上是可行的。方法论清晰,引用了具体应用研究。 | 同上 | | **情绪体验与关系评估的关联证据**:引用多项研究证明,特定的主观情绪体验与相应的关系需求评估高度相关。例如,同情与他人的安全需求相关,自豪感与地位提升相关,愤怒与不公平感相关。 | 证据来源于大量实证研究的综述,覆盖了多种情绪和关系,代表性强。虽然是二手引用,但引用的文献均为该领域的代表性成果,因此说服力高,直接支撑了“情绪体验追踪关系需求”的原则。 | Keltner, D., Sauter, D., Tracy, J. L., Wetchler, E., & Cowen, A. S. (2022). How emotions, relationships, and culture constitute each other: Advances in social functionalist theory. _Cognition and Emotion_, _36_(3), 388–401. [https://doi.org/10.1080/02699931.2022.2047009](https://doi.org/10.1080/02699931.2022.2047009) | | **情绪认知引导社会行动的证据**:特定的情绪会系统性地改变个体的认知(如注意、记忆、判断),从而引导出符合当前关系需求的社会行为。例如,同情心会让人更关注弱者并倾向于提供帮助。 | 基于大量实证研究综述的证据。它清晰地展示了从“内在感受”到“外在行动”的转化路径,有力地支撑了“情绪认知指导关系行动”的原则。 | 同上 | ### 2.是否跨模态研究(早期的情绪理论仅关注面部表情) | **证据简述** | **备注** | **Reference** | | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **声音表达的丰富性**:引用多项研究证明,人类声音(如笑、哭、叹息、呻吟等)可以传达超过 24 种不同的情感,并提供了可交互的在线声音情感地图作为实例。 | 证据非常具体,不仅引用了多项研究,还提供了可供读者亲身体验的交互式地图,代表性和可验证性极高,有力地证明了情感表达远超六种。 | Cowen, A., Sauter, D., Tracy, J. L., & Keltner, D. (2019). Mapping the Passions: Toward a High-Dimensional Taxonomy of Emotional Experience and Expression. _Psychological Science in the Public Interest_, _20_(1), 69–90. [https://doi.org/10.1177/1529100619850176](https://doi.org/10.1177/1529100619850176) | | **多模态表达的多样性**:引用综述性研究指出,人类通过面部、身体、姿态和声音的组合,可以表达超过 20 种不同的情感状态。 | 证据来自权威的综述文章,整合了多个研究的发现,具有较好的代表性。 | 同上 | | **情感识别的基线有效性**:实验结果表明,在 34 种情绪中,有 29 种的全身动态表达能够被被试以远超随机猜测的准确率识别出来。 | 证明了实验范式(全身动态表达)的有效性,说明后续的组间比较(性别、族裔、阶层)是建立在一个可靠的测量基础之上的。样本量大,情绪种类多,代表性强。 | Monroy, M., Cowen, A. S., & Keltner, D. (2022). Intersectionality in emotion signaling and recognition: The influence of gender, ethnicity, and social class. _Emotion_, _22_(8), 1980–1988. [https://doi.org/10.1037/emo0001082](https://doi.org/10.1037/emo0001082) | | **情感表达的多模态性**:论文引用多项研究证明,情感通过面部、声音(语调和非词汇声音)、身体动作、凝视、手势和触觉等多种渠道表达。 | 综合了跨越多种模态的研究,证据基础广泛。引用的研究均可查证,有力支持了“表达是多模态的”这一核心论点。 | Keltner, D., Sauter, D., Tracy, J., & Cowen, A. (2019). Emotional Expression: Advances in Basic Emotion Theory. _Journal of Nonverbal Behavior_, _43_(2), 133–160. [https://doi.org/10.1007/s10919-019-00293-3](https://doi.org/10.1007/s10919-019-00293-3) | ### 3.是否跨文化验证 | **证据简述** | **备注** | **Reference** | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **可识别情感数量的扩展**:引用跨文化研究表明,通过声音爆发等非语言线索,超过 20 种情感可以被不同文化背景的参与者可靠地识别。 | 引用了大规模跨文化研究(10 个国家),代表性强。研究方法清晰(如将故事与声音匹配),可验证性高,是支撑核心主张的强力证据。 | Keltner, D., Sauter, D., Tracy, J., & Cowen, A. (2019). Emotional Expression: Advances in Basic Emotion Theory. Journal of Nonverbal Behavior, 43(2), 133–160. [https://doi.org/10.1007/s10919-019-00293-3](https://doi.org/10.1007/s10919-019-00293-3) | | **社会阶层的显著影响**:统计分析明确显示,来自较低社会阶层(通过麦克阿瑟量表测量)的个体,其情绪表达被识别的准确率更高(是更好的表达者);同时,他们在识别他人情绪时也表现出更高的准确率(是更好的识别者)。 | 数据分析清晰,结果显著。它将社会阶层这一社会经济变量与基本的情感能力联系起来,为交叉性理论提供了强有力的实证支持。样本主要来自美国,在文化上代表性有一定局限。 | Monroy, M., Cowen, A. S., & Keltner, D. (2022). Intersectionality in emotion signaling and recognition: The influence of gender, ethnicity, and social class. Emotion, 22(8), 1980–1988. [https://doi.org/10.1037/emo0001082](https://doi.org/10.1037/emo0001082) | | **性别差异的缺失**:无论是在情绪表达的清晰度(女性 vs. 男性被识别的准确率)还是在情绪识别的能力(女性 vs. 男性识别者的准确率)上,均未发现显著的性别差异。 | 它是在一个比以往研究更复杂、更生态化的范式下得出的,直接挑战了“女性在情绪识别上更有优势”的传统观点。样本覆盖了 155 名表达者和 555 名识别者,代表性好。 | 同上 | | **族裔“群内优势”的缺失**:研究未发现识别者在判断自己族裔(亚裔、拉丁裔、欧裔美国人)的表达时比判断其他族裔的表达更准确。即预期的“群内优势”效应没有出现。 | 该结果对“文化塑造了情绪表达的方言”这一观点提出了挑战,至少在这种全身表达的情境下不适用。 | 同上 | | **具体情感概念的首要性证据(跨文化层面)**:跨文化研究(如比较美国和印度对语音语调的识别)显示,具体情感的识别具有更高的一致性(相关性更高),而效价和唤醒度的跨文化一致性则相对较低。 | 证据覆盖了语音、音乐等多个领域和中美、美印等多个文化对,代表性好。文中数据和统计方法清晰呈现,可验证性高。该证据有力地表明,具体情感是跨文化交流中更稳定、更核心的信号。 | Keltner, D., Brooks, J. A., & Cowen, A. (2023). Semantic Space Theory: Data-Driven Insights Into Basic Emotions. Current Directions in Psychological Science, 32(3), 242–249. [https://doi.org/10.1177/09637214221150511](https://doi.org/10.1177/09637214221150511) | | **具体情感的跨文化首要性**:跨文化研究(美国、中国、印度)显示,具体情感(如愤怒)的归因比效价和唤醒度的归因在不同文化中更一致。 | 该证据直接挑战了建构主义的核心观点,即效价和唤醒度是首要的。研究涉及多个文化,增加了代表性。 | Cowen, A. S., & Keltner, D. (2021). Semantic Space Theory: A Computational Approach to Emotion. Trends in Cognitive Sciences, 25(2), 124–136. [https://doi.org/10.1016/j.tics.2020.11.004](https://doi.org/10.1016/j.tics.2020.11.004) | | **古代艺术中的情感表达**:对古美洲雕塑的研究发现,其面部表情与西方人对特定情境下(如战斗、痛苦)的情感预期一致,暗示了情感表达的普遍性。 | 这是一个有趣的辅助证据,但样本量(63 个雕塑)相对较小,主要用于支持情感表达的普遍性,对核心主张的支撑力中等。 | 同上 | ### 4.是否有神经/进化层面的证据 | **证据简述** | **备注** | Reference | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **神经解码分析**:成功地从多个脑区的 fMRI 活动模式中,准确预测出与视频相关的数十种具体情绪的评分。 | 该证据直接表明,不同情绪类别在大脑中有可区分的、独特的神经信号模式,这是“高维度”和“类别化”主张的核心支持。 | Cowen, A. S., Keltner, D., Amiriparian, S., Christ, L., König, A., Cowen, A., Meßner, E.-M., Cambria, E., & Schuller, B. W. (2020). The Neural Representation of Visually Evoked Emotion Is High-Dimensional, Categorical, and Distributed across Transmodal Brain Regions. _Emotion_, _23_(5), 101060. [https://doi.org/10.1016/j.isci.2020.101060](https://doi.org/10.1016/j.isci.2020.101060) | | **编码模型对比分析**:构建了基于“情绪类别”和“情绪维度”的两种模型来预测每个体素的活动。结果显示,在绝大多数脑区,“情绪类别”模型比“情绪维度”模型能更好地解释大脑活动。 | 这是最有力的证据,直接将两种对立的理论(类别论 vs. 维度论)置于实证检验之下,并得出了明确支持类别论的结论。 | 同上 | | **无监督聚类分析**:对与情绪相关的大脑活动模式进行降维和聚类,发现这些活动模式自然地形成了与特定情绪类别相对应的簇状结构,并且簇之间存在连续的梯度。 | 该证据不依赖于预设的标签,从数据驱动的角度揭示了大脑表征的内在结构,进一步证实了“类别化”和“梯度过渡”的观点。 | 同上 | | **具体情感概念的首要性证据(神经科学层面)**:引用神经科学研究(fMRI 等)指出,大脑对情感的表征在时间上是先识别出具体情感,稍后才形成效价/唤醒度的抽象概念;并且,具体情感类别能更好地解释大脑各区域的活动模式。 | 证据来自第三方研究,增强了论证的客观性,但其本身的样本代表性需审视原文献。引用的文献清晰可查,可验证性好。来自神经科学的证据为作者的心理学主张提供了生理层面的支持,构成了强有力的跨学科印证。 | Keltner, D., Brooks, J. A., & Cowen, A. (2023). Semantic Space Theory: Data-Driven Insights Into Basic Emotions. Current Directions in Psychological Science, 32(3), 242–249. [https://doi.org/10.1177/09637214221150511](https://doi.org/10.1177/09637214221150511) | - **分布表征**:情绪类别信息分布于默认模式网络(DMN)及下丘脑-边缘系统,而非单一脑区。 - **时间进程**:大脑对声音情绪的表征中,**具体情绪先出现**(早期神经响应),效价 / 唤醒度后出现(晚期 “抽象化” 响应),反驳建构主义 “先有核心情感,后建构具体情绪” 的主张。 - **脑区覆盖**:在所有皮层/皮下区域,具体情绪对脑激活模式的解释力均强于效价 / 唤醒度,说明即使是皮层下的基础情绪加工,也以具体情绪为核心。 与哺乳动物情绪行为的相似性:人类的 12 种情绪在哺乳动物的行为和神经生理学中有相似之处 | **情绪** | **哺乳动物中相似的行为和神经生理表现** | | ------------------- | ---------------------------------------------------------------------------------------- | | 娱乐、玩耍 | 非人类哺乳动物的玩耍表情、笑声和玩耍行为,大脑刺激引发的欢乐笑声 | | 愤怒、攻击 | 哺乳动物中类似咆哮的同源行为,下丘脑的攻击机制 | | 焦虑、紧张 | 非人类动物的替代行为(如自我梳理),黑猩猩的安慰缓解,猕猴中抗焦虑药物的缓解作用 | | 厌恶、反感 | 灵长类对酸 / 苦味的面部反应,小鼠的面部表情和神经相关物,岛叶在厌恶识别 / 体验中的作用等 | | 狂喜、愉悦 | 新生儿 / 灵长类的享乐反应,小鼠的面部表情和神经相关物 | | 恐惧、警报 | 非人类动物的警报叫声,杏仁核对尖叫样声音的反应等 | | 爱、 bonding | 动物的亲子触摸,催产素在大鼠 / 田鼠 / 绢毛猴等的 bonding 中的作用等 | | 疼痛(身体 / 共情) | 非人类动物的疼痛鬼脸,前扣带皮层(ACC)在疼痛识别 / 体验中的作用等 | | 骄傲、地位 | 猿的直立姿势和双足大摇大摆 | | 悲伤、失落 | 黑猩猩的哭泣表情和呜咽,中脑对婴儿哭声的反应 | | 羞耻、顺从 | 哺乳动物甚至非哺乳动物的姿势收缩和缩小的顺从展示 | | 同情、安慰 | 动物的安慰行为,对痛苦叫声的照顾反应等 | ## 语义空间论给我们带来了什么 - 一个判断框架:当模型只在 V-A 上做回归时,问一句“是否丢失了大部分语义差异?” - 一个工程抓手:把“情绪类别与梯度”作为标签与指标,支持多模态一致性评估。 - 一个落地方向:将 SST 视作“情绪-智能交互”的通用语义底座,从实验到产品闭环。 ## 参考文献 Baird, A., Tzirakis, P., Brooks, J., Kim, L., Opara, M., Gregory, C., Metrick, J., Boseck, G., Keltner, D., & Cowen, A. (2022). State & Trait Measurement from Nonverbal Vocalizations: A Multi-Task Joint Learning Approach. _Interspeech 2022_, 2028–2032. [https://doi.org/10.21437/Interspeech.2022-10927](https://doi.org/10.21437/Interspeech.2022-10927) Brooks, J. A., Kim, L., Opara, M., Keltner, D., Fang, X., Monroy, M., Corona, R., Tzirakis, P., Baird, A., Metrick, J., Taddesse, N., Zegeye, K., & Cowen, A. S. (2024). Deep learning reveals what facial expressions mean to people in different cultures. _iScience_, _27_(3), 109175. [https://doi.org/10.1016/j.isci.2024.109175](https://doi.org/10.1016/j.isci.2024.109175) Brooks, J. A., Tiruvadi, V., Baird, A., Tzirakis, P., Li, H., Gagne, C., Oh, M., & Cowen, A. (2023). Emotion Expression Estimates to Measure and Improve Multimodal Social-Affective Interactions. _International Cconference on Multimodal Interaction_, 353–358. [https://doi.org/10.1145/3610661.3616129](https://doi.org/10.1145/3610661.3616129) Cordaro, D. T., Sun, R., Kamble, S., Hodder, N., Monroy, M., Cowen, A., Bai, Y., & Keltner, D. (2020). The recognition of 18 facial-bodily expressions across nine cultures. _Emotion_, _20_(7), 1292–1300. [https://doi.org/10.1037/emo0000576](https://doi.org/10.1037/emo0000576) Cowen, A. S., Elfenbein, H. A., Laukka, P., & Keltner, D. (2019). Mapping 24 emotions conveyed by brief human vocalization. _American Psychologist_, _74_(6), 698–712. [https://doi.org/10.1037/amp0000399](https://doi.org/10.1037/amp0000399) Cowen, A. S., Fang, X., Sauter, D., & Keltner, D. (2020). What music makes us feel: At least 13 dimensions organize subjective experiences associated with music across different cultures. _Proceedings of the National Academy of Sciences_, _117_(4), 1924–1934. [https://doi.org/10.1073/pnas.1910704117](https://doi.org/10.1073/pnas.1910704117) Cowen, A. S., & Keltner, D. (2017). Self-report captures 27 distinct categories of emotion bridged by continuous gradients. _Proceedings of the National Academy of Sciences_, _114_(38). [https://doi.org/10.1073/pnas.1702247114](https://doi.org/10.1073/pnas.1702247114) Cowen, A. S., & Keltner, D. (2020a). Universal facial expressions uncovered in art of the ancient Americas: A computational approach. _Science Advances_, _6_(34), eabb1005. [https://doi.org/10.1126/sciadv.abb1005](https://doi.org/10.1126/sciadv.abb1005) Cowen, A. S., & Keltner, D. (2020b). What the face displays: Mapping 28 emotions conveyed by naturalistic expression. _American Psychologist_, _75_(3), 349–364. [https://doi.org/10.1037/amp0000488](https://doi.org/10.1037/amp0000488) Cowen, A. S., & Keltner, D. (2021). Semantic Space Theory: A Computational Approach to Emotion. _Trends in Cognitive Sciences_, _25_(2), 124–136. [https://doi.org/10.1016/j.tics.2020.11.004](https://doi.org/10.1016/j.tics.2020.11.004) Cowen, A. S., Keltner, D., Amiriparian, S., Christ, L., König, A., Cowen, A., Meßner, E.-M., Cambria, E., & Schuller, B. W. (2020). The Neural Representation of Visually Evoked Emotion Is High-Dimensional, Categorical, and Distributed across Transmodal Brain Regions. _Emotion_, _23_(5), 101060. [https://doi.org/10.1016/j.isci.2020.101060](https://doi.org/10.1016/j.isci.2020.101060) Cowen, A. S., Keltner, D., Schroff, F., Jou, B., Adam, H., & Prasad, G. (2021). Sixteen facial expressions occur in similar contexts worldwide. _Nature_, _589_(7841), 251–257. [https://doi.org/10.1038/s41586-020-3037-7](https://doi.org/10.1038/s41586-020-3037-7) Cowen, A. S., Laukka, P., Elfenbein, H. A., Liu, R., & Keltner, D. (2019). The primacy of categories in the recognition of 12 emotions in speech prosody across two cultures. _Nature Human Behaviour_, _3_(4), 369–382. [https://doi.org/10.1038/s41562-019-0533-6](https://doi.org/10.1038/s41562-019-0533-6) Cowen, A., Sauter, D., Tracy, J. L., & Keltner, D. (2019). Mapping the Passions: Toward a High-Dimensional Taxonomy of Emotional Experience and Expression. _Psychological Science in the Public Interest_, _20_(1), 69–90. [https://doi.org/10.1177/1529100619850176](https://doi.org/10.1177/1529100619850176) Demszky, D., Movshovitz-Attias, D., Ko, J., Cowen, A., Nemade, G., & Ravi, S. (2020). _GoEmotions: A Dataset of Fine-Grained Emotions_ (No. arXiv:2005.00547). arXiv. [https://doi.org/10.48550/arXiv.2005.00547](https://doi.org/10.48550/arXiv.2005.00547) Keltner, D., Brooks, J. A., & Cowen, A. (2023). Semantic Space Theory: Data-Driven Insights Into Basic Emotions. _Current Directions in Psychological Science_, _32_(3), 242–249. [https://doi.org/10.1177/09637214221150511](https://doi.org/10.1177/09637214221150511) Keltner, D., & Cowen, A. (2021). A taxonomy of positive emotions. _Current Opinion in Behavioral Sciences_, _39_, 216–221. [https://doi.org/10.1016/j.cobeha.2021.04.013](https://doi.org/10.1016/j.cobeha.2021.04.013) Keltner, D., Sauter, D., Tracy, J., & Cowen, A. (2019). Emotional Expression: Advances in Basic Emotion Theory. _Journal of Nonverbal Behavior_, _43_(2), 133–160. [https://doi.org/10.1007/s10919-019-00293-3](https://doi.org/10.1007/s10919-019-00293-3) Keltner, D., Sauter, D., Tracy, J. L., Wetchler, E., & Cowen, A. S. (2022). How emotions, relationships, and culture constitute each other: Advances in social functionalist theory. _Cognition and Emotion_, _36_(3), 388–401. [https://doi.org/10.1080/02699931.2022.2047009](https://doi.org/10.1080/02699931.2022.2047009) Monroy, M., Cowen, A. S., & Keltner, D. (2022). Intersectionality in emotion signaling and recognition: The influence of gender, ethnicity, and social class. _Emotion_, _22_(8), 1980–1988. [https://doi.org/10.1037/emo0001082](https://doi.org/10.1037/emo0001082) --- # 用 DSPy 框架构建可自动优化的 AI 系统(上) - URL: https://tophci.com/posts/250923-dspy-intro - Date: 2025/09/23 - Tags: Agent, DSPy, Coding ## DSPy 是什么 DSPy(Declarative Self-Improving Python)是一个构建模块化 AI 系统的声明式框架。 - 给定任务和少量训练数据,框架能**自动**优化提示词和模型权重,指导模型高质量输出。 - 适合 RAG、Agent、复杂多步任务。 > **核心理念:通过可组合、可测试、可优化的 Python 模块,用算法优化和调整 LM 提示和权重,最小化人工 prompt。** | **核心概念** | **作用** | **关键问题** | **例子** | | ------------- | ------------------------------------------------------------------------ | ------------------------------------------------------ | ----------------------------------------------------------------------------------- | | **Signature** | 定义 LLM 的输入/输出规范(schema) | • 给模型输入什么
• 期望模型输出什么 | • 输入:用户 query 和任务、GUI 知识
• 输出:高成功率低用户成本的自动打车操作流 | | **Module** | 通过自定义逻辑与 LLLM 交互的接口。对 Signature 应用推理策略。 | • 程序由哪些模块组成
• 这些模块负责干什么 | 任务理解,状态检查,解空间构建,不确定性评估,澄清,安全确认 | | **Optimizer** | 根据标注数据,自动编译成 Few-Shot 示例、Prompt 模板,或微调 LoRA/FT 参数 | • 评估标准是什么,用哪些数据
• 模型用什么方法优化 | • 评估标准:任务完成率,交互成本
• 数据:成功打车的 trace
• 方法:MIPROv2 | ![https://qdrant.tech/blog/dspy-vs-langchain/](https://qdrant.tech/blog/dspy-vs-langchain/process.jpg) DSPy 用 **Signature + Module 把任务拆成可组合步骤,然后用 Optimizer 编译整条流水线**,自动生成高质量指令/示例/权重。 **类比:DSPy 可以替代厨师,自动迭代出最佳菜品** - 点菜单 — Signature - 厨房工序 — Module - 机器人主厨 — Optimizer | **DSPy 元件** | **厨房角色** | **细节 & 过程** | **优势** | | ------------------ | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | | **Signature** | 点菜单 | - 顾客需求:`主料=海鲜,意面` `酱=番茄` `口味=鲜甜`
- 只声明“要什么”,不写做法。 | **声明式**:只关心输入/输出,屏蔽实现细节。 | | **Module** | 厨房工序:炉台 & 配菜区 | `if 海鲜不足: 退到冷柜补货先焯虾仁,再煸蒜末 → 倒番茄酱 → 收汁`
业务规则(焯水 → 煸香 → 收汁)写入程序;
“什么口味用户喜欢”交给 LLM 生成和试验。 | **逻辑/语言解耦**:可单元测试,不怕 LLM 升级。 | | **Optimizer** | AI 总厨反复试味 | 1. **搜示例**:把 20 份历史好评菜谱组合成不同 few-shot 套餐;
2.**尝味评分**:每次做完请品控员打分(准确率、成本、咸淡);
3.**进化搜索**:把高分菜谱微调——加罗勒?换意面粗细?
4.**LoRA 微调**:相当于给 AI 总厨加“秘密调味包”,在 100 份评价数据上再训练味觉偏好。 | **自动优化**:示例、提示、超参、权重一站式搜索;不用人肉调味。 | | **compile() 产物** | 最终菜品 | - 保存:最优 prompt +示例,温度/检索 k,LoRA 权重……
- 点菜时直接调用,出菜稳定可复现。 | **可版本化 & 热插拔**:JSON+LoRA 文件随时上新或回滚。 | 用流程图表示就是: ![dspy-kitchen](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/dspy-kitchen.png) 示例:简单 QA 系统 ```python import dspy # 1. 配置语言模型 dspy.settings.configure(lm=dspy.OpenAI(model="gpt-3.5-turbo")) # 2. 定义任务签名 class BasicQA(dspy.Signature): """基于给定上下文回答问题。""" context: str = dspy.InputField(desc="与问题相关的段落") question: str = dspy.InputField(desc="用户的问题") answer: str = dspy.OutputField(desc="问题的答案") # 3. 创建具有思维链推理的模块 qa = dspy.ChainOfThought(BasicQA) # 4. 使用它 context = "巴黎是法国的首都。" question = "法国的首都是什么?" result = qa(context=context, question=question) print(result.answer) # 输出:巴黎 ``` ## 如何用 DSPy 构建可自动调优的 AI 系统:从声明到编译 1. **定义任务**:用 Signature 描述任务;用 Module 实现“先检索再生成”等逻辑。 2. **定义指标**:如 accuracy、BLEU、自定义 cost。 3. **选择优化器**:BootstrapFewShot、COPRO、K-NN Few-Shot 等。 4. **`compile()`**:DSPy 自动搜索示例 / 生成 synthetic data / 微调,小到 prompt 大到权重。 5. **评估/迭代**:当模型或数据变了,再次编译即可。`dspy.Evaluate` 支持 A/B 对比与持续学习。 典型场景与示例 - RAG 管道:官方教程展示了 Tech QA 任务,在同一段代码里组合 Retriever + Generator,并用优化器同时调检索和生成提示,显著提升 F1。 - 多步 Agent / 工具调用:DSPy 模块可嵌套循环,配合 self-consistency 或外部工具形成反思-执行代理,对推理链进行一致性投票减少幻觉。 - **ReAct 代理**:把工具列表(如“读屏/点按/输入/抓取订单状态”等)交给 `dspy.ReAct`,让模型在“思考 → 行动 → 观察”的循环中选择工具;再用 MIPROv2 或 BootstrapFewShot 端到端优化。 极简打车助手 Agent ```python import dspy # 1) 选择模型(可换) dspy.configure(lm=dspy.LM("openai/gpt-4o-mini")) # 2) 定义任务(签名与模块) class JudgeStep(dspy.Signature): """判断一个代理步骤是否合理,并提出改进建议""" context: str action: str verdict: bool critique: str judge = dspy.ChainOfThought(JudgeStep) # 3) 组装成程序 class AgentStep(dspy.Module): def forward(self, context): # 这里可以先 Predict 再 ReAct,这里为演示省略 return judge(context=context, action="tap('打车')") program = AgentStep() # 4) 定义指标(玩具版:只要 verdict=True 算 1 分) def metric(example, pred) -> float: return 1.0 if getattr(pred, "verdict", False) else 0.0 # 5) 少量训练/验证样例(真实项目用你的回放数据) trainset = [dspy.Example(context="已定位到公司门口, 需要叫车").with_inputs("context")] # 6) 选择优化器并编译 from dspy.teleprompt import MIPROv2 opt = MIPROv2(metric=metric) compiled = opt.compile(program, trainset=trainset) # 返回“已优化程序” # 7) 推理 pred = compiled("已定位到公司门口, 需要叫车") print(pred.verdict, pred.critique) ``` ## DSPy 的优势 在平时的 PE 优化中,你可以也会遇到这些痛点: | **维度** | **传统 Prompt 优化** | **使用 DSPy 后的做法** | | ----------------- | ------------------------------------- | -------------------------------------------------------------- | | **核心思路** | 人工修改长 prompt,靠经验调顺序、示例 | **声明式 Signature + 模块化代码 + Optimizer 自动搜索最优方案** | | **提示模板改写** | 人工重写,多轮 AB 测试 | `COPRO / GEPA` 演化提示,遗传 + 自反思 | | **业务逻辑** | 混在一段大 prompt 里,难以单测 | 业务逻辑写在 Python Module;LLM 仅补语言 | | **参数调优** | 通过实验脚本手动网格搜索 | Optimizer 将超参视为可学参数一并搜索 | | **在线反馈利用** | 另写 ETL → 手动改 prompt | 日志 → `trainset_increment` → 夜间 compile() 自动增量学习 | | **安全/风险控制** | 人工列规则,手工检查 prompt | 规则写在 Module;`risk_penalty` 纳入 metric | | **可观测性** | 需自建日志系统;难还原完整 prompt | `inspect_history()` 一键查看历史消息 | | **协作成本** | Design ↔︎ Dev ↔︎ Ops 多角色协调 | DSL (Signature/Module) 代码即文档 | | **维护难度** | 模型升级 → 全部 prompt 回归 | 大部分规则在 Python,提示自动再编译 | | **长期性能** | 靠人工定期复盘,效果波动 | 每日自动编译,自监督渐进提升 | | **投入估算** | 早期人力小;数据增多后维护爆炸 | 初期写代码&指标;后期维护自动化 | 通过提供结构化模块、自动优化和组合模式,DSPy 使开发者能够构建: - **更可靠**:结构化代码比字符串提示更不易出错 - **更可移植**:易于更换模型并适应新需求 - **更可优化**:通过编译和优化自动改进 - **更可维护**:清晰、模块化的结构易于理解和修改 DSPy vs LangChain | 评估维度 | LangChain | DSPy | 说明 | | ------------------------ | --------- | ---- | ------------------------- | | 上手速度 | 9 | 6 | LangChain 文档 + 示例丰富 | | 生态丰富度 | 9 | 5 | DSPy 更聚焦内核 | | 自动优化能力 | 4 | 9 | DSPy 核心竞争力 | | 可编译/可重构性 | 6 | 9 | Signature → Program | | 工具/Agent 生产案例 | 9 | 5 | LangChain 成熟 | | 推理质量迭代潜力 | 6 | 9 | DSPy 算法化 | | 学术/研究友好 | 6 | 9 | 声明式 + 可控实验 | | 成本精细化管理 | 7 | 7 | 均需自建策略 | | 易与现有后端集成 | 8 | 7 | LangChain 适配器多 | | 长期可维护性(结构清晰) | 7 | 8 | DSPy 结构化语义更清晰 | (分值仅用于相对直觉,不是客观指标) - LangChain:像一个“拼装厂” + “适配层”——让各种资源(模型、向量库、工具、Agent、工作流)快速跑通。 - DSPy:像一个“编译器 + 优化器”——把 LLM 互动抽象为可声明、可训练、可演化的程序。 - 选型核心分界:是在“解决集成问题”还是“解决质量/推理优化问题”。 也许 DSPy 最有潜力的地方,是它的理念非常贴合新的产品研发范式:**基准和评测先行,工程化模块保证可控,高质量学习数据是关键。** --- # 情绪大辩论——基本情绪论 vs 情绪建构论 - URL: https://tophci.com/posts/250915-emotion-debate - Date: 2025/09/15 - Tags: Emotion, 情绪 > **不同文化的人是否共享相同的基本情绪表情?** 一个看似简单的问题,引发了关于情绪本质长达数十年的大辩论。这场关于“**情绪是天生还是后天建构**”的论争,如同一个跌宕起伏的故事。 本文介绍两大主要理论流派——基本情绪理论与情绪建构论——的发展历程和争议焦点,尝试整理情绪科学的发展脉络,为情感建模和计算提供理论参考。 ![1-debate-insideout](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/1-debate-insideout.jpg) 两大情绪研究流派的核心差异 | 对比维度 | 基本情绪理论([Paul Ekman](https://scholar.google.com/citations?hl=en&user=ADetnc0AAAAJ)) | 情绪建构理论([Lisa Feldman Barrett](https://scholar.google.com/citations?user=WF5c0_8AAAAJ&hl=en&oi=sra)) | | ------------------ | ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------- | | **情绪本质** | 天生的、进化而来的基本类别 | 大脑实时构建的、连续的情绪体验 | | **普遍性** | 情绪跨文化共享,有普遍性的面部表情 | 情绪体验受文化和情境影响,无固定普遍模式 | | **面部表情** | 每种情绪都有独特且固定的面部表情模式 | 表情是情境化的,非单一情绪的可靠指标 | | **生物基础** | 每种情绪对应特定生理模式和脑区域 | 无特定生理或脑区模式,每种情绪涉及分布式脑网络 | | **典型代表情绪** | 快乐、愤怒、悲伤、恐惧、厌恶、惊讶等 | 情绪分类基于情境和文化,概念因人而异 | | **研究方法** | 跨文化情绪识别实验、面部表情编码(FACS) | 神经科学脑成像、文化与语言的对比研究 | | **核心争议焦点** | 是否存在固定情绪生物“指纹”和普遍表情模式 | 情绪是否纯属社会概念和文化建构的产物 | | **理论应用与影响** | 应用于测谎、面部识别技术、心理学临床诊断 | 强调情绪管理、情绪教育,重视情境认知调节 | ![2-emotion-debate-timeline-all](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/2-emotion-debate-timeline-all.png) ## Side-A: 达尔文的遗产与基本情绪理论的兴起 19 世纪晚期,达尔文在著作《人类和动物的表情》中提出,人类的情绪表达可能具有进化根源。20 世纪中叶,美国心理学家 Silvan Tomkins 受到达尔文启发,提出人类存在一组与生俱来的**基本情绪**(包括**喜悦**、**惊讶**、**愤怒**、**恐惧**、**厌恶**、**羞愧**等),对应独特的面部表情和生理反应,并猜想它们是进化的适应性产物,用以在特定威胁或机遇时触发相应的行为反应。 Tomkins 的学生 Paul Ekman 展开了跨文化研究,希望寻找情绪表达的普遍模式。1960 年代末,Ekman 来到与世隔绝的新几内亚偏远山区中名为 Fore 的部族。这些族人从未看过电影,不识英文,也未曾与外界通婚或工作。Ekman 带去了一叠各式各样人脸表情的照片: ![3-6emotionface](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/3-6emotionface.png) 图 1:Tomkins 于 1960 年代收集的六种基本情绪的面部表情照片。左上至右下:快乐、惊讶、恐惧、愤怒、厌恶、悲伤。 实验中,翻译员向受试者讲一个小故事,描述某人遇到特定情境时可能产生的情绪,然后请受试者从三张不同表情的照片中,挑选出与故事主人公情绪相符合的脸。结果令人惊讶:在关于“高兴”的例子中,受试者 100% 都选出了笑脸。在另一个对应“恐惧”表情的故事里,有 86% 的人选对了。这些受试者从未接触西方文化,这强有力地支持了 Tomkins 的猜想:**人类共享一些跨文化的基本情绪表达**。 也有一些细节值得注意。比如在区分“惊讶”和“恐惧”的表情时,Fore 人偶尔会混淆。Ekman 推测,这可能是因为在现实中,引发恐惧的情境往往也伴随着惊讶。此后多年,从偏远部落到现代都市,上述实验在多文化中重复了将近 200 次,结果大都支持基本情绪的普遍性。这些发现说明,人类并非一张情绪的“白板”,而是天生就具备识别和表达某些情绪的共同基础。 Ekman 由此提出了著名的**基本情绪理论**:人类有一组与生俱来的基本情绪(快乐、愤怒、恐惧、悲伤、厌恶、惊讶,后来增加第七种“轻蔑”)。每一种基本情绪被视作演化适应的产物,用来解决特定的生存问题。例如,“恐惧”有助于躲避危险,“愤怒”有助于应对威胁和争斗,“厌恶”则让我们避开腐坏有毒的食物。而其他更复杂的情绪(如内疚、嫉妒等)是由基本情绪组合或派生而成。 ![4-insideout1](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/4-insideout1.png) Inside Out 的角色原型源自基本情绪论,Ekman 曾作为科学顾问提供指导 基本情绪理论强调**情绪是离散的**,每种情绪都有独特的“表情程序”和生理模式。当我们感到愤怒或害怕时,大脑内会激活对应的“愤怒回路”或“恐惧回路”,触发特定的面部表情、心跳变化、激素水平等生理反应。我们可以通过观察一个人的面部表情或生理反应,**不借助上下文**就推断出他正在经历何种情绪——因为每种基本情绪有**特定的生物指纹**。 在此框架下,Ekman 发展出“面部动作编码系统”(Facial Action Coding System, FACS)等工具,将人脸细微肌肉运动精细编码,以科学方式研究表情。这套理论在 20 世纪下半叶被广泛写入心理学教材,也渗透到了大众文化中(例如美剧《Lie to me》)。基本情绪理论为情绪科学提供了直观而有力的模型:将复杂多变的情绪世界简化为有限的“基本颜色”,认为人类情感调色板上的这些原色都是共同的。 当然,Ekman 也注意到文化对情绪表达的影响。他引入了“表达规则”(Display Rules)概念,指出不同文化会对何时何地表达何种情绪有不同规范,即情绪表达受到文化调节。“原始表情冲动”是人类共有的;而文化决定了我们在特定场合是否压抑或夸大这种表情。基本情绪理论因此兼顾了先天与后天因素:情绪本身源自进化的生物程序,但表现形式可以被社会文化调整。 其他学者对基本情绪的清单有所扩展。Plutchik 在 1980 年提出八大基本情绪,并用“情绪轮”形式表现它们的关系和强度。Izard 提出了十种基本情绪,并强调这些情绪在进化过程中形成,每种基本情绪对应大脑一条相对简单的神经通路,不需要复杂认知参与。 ![5-wheel](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/5-wheel.png) https://psychcentral.com/health/emotion-wheel 不同理论者对于基本情绪的具体清单略有差异,但都认同存在数量有限的“原色”情绪。 ![6-emotionTheory](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/6-emotionTheory.png) https://www.frontiersin.org/journals/neuroscience/articles/10.3389/fnins.2019.00628/full 到 20 世纪末,基本情绪理论已成为情绪科学中的主流观点。许多研究者投入寻找每种基本情绪对应的大脑区域和生理指标,希望为情绪的“生物指纹”假设找到证据。[2002 年的一项研究综合了 140 多项研究进行元分析](https://psycnet.apa.org/fulltext/2002-00947-001.html),检验情绪识别的普遍性与文化特异性,发现跨文化识别准确率显著高于随机水平,平均为 58%。具体情绪中,快乐(79.1%)识别最准,恐惧(57.5%)和 contempt(43.2%)较低。 基本情绪理论似乎正在主导情绪研究。然而,就在很多人以为情绪谜题将要揭晓之际,另一股质疑的声音逐渐壮大:情绪真的像基本颜色那样固定有限、与生俱来吗?还是说,大脑其实是在即时“调制”甚至“创造”情绪? ## Side-B: 情绪并非天成—情绪建构论的挑战 1980 年代,心理学家 James A. Russell 提出情绪维度模型,认为情绪不是离散的,而是分布在连续维度上的状态。他用“愉快-不愉快”(愉悦度)和“激动-平静”(唤醒度)两个维度构建了一个**情感圆环图**,将各种情绪按照愉悦度和唤醒度的程度标在圆周上。 ![7-circumplexModel](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/7-circumplexModel.png) https://psu.pb.unizin.org/psych425/chapter/circumplex-models/ 在 Russell 看来,人的情绪状态可以用这两个维度来描述,例如“愤怒”对应高唤醒-低愉悦,“沮丧”对应低唤醒-低愉悦,“兴奋”是高唤醒-高愉悦,“平静”则是低唤醒-高愉悦。这意味着不同情绪并非泾渭分明,而是连续变化的,它们可能只是同一情感空间中不同区域的感受。 - 核心情感(core affect):基础情感状态,由生理唤醒程度和愉悦不愉悦感组成,持续在体内起伏。 - 具体“情绪”:如愤怒、恐惧等,是在核心情感的基础上,加上**对情境的认知解释和文化概念之后形成的二次产物**。 这一思想与心理构建论一脉相承:情绪是由更基本的心理成分(生理唤醒、认知判断、文化概念)建构而成的。 Barrett 是这一思路的新一代掌门人。她对基本情绪论的质疑源自于自己的研究:实验对象无法区分抑郁和焦虑这两种情绪,她在多年里重复同样实验多次,均告失败。(抑郁:未达成个人理想,对任何事情都提不起兴趣,浑身没劲;焦虑:未满足他人期望,总担心有不好的事情发生,紧张易怒) 之后她开始对情绪领域提出尖锐的问题:如果愤怒、恐惧真的有特定的生理指纹,为什么这么多心理生理学研究**找不到稳定的证据**?为什么扫描成百上千人的大脑,找不到一个“一按就怒、一按就喜”的神经按钮,而总是发现多种情绪共享复杂的脑区网络?为什么不同文化有截然不同的情绪词汇和表达方式,有的语言里存在某种独特情感(例如德语的“幸灾乐祸”表示“因他人不幸而感到的秘密开心”,日语的“物の哀れ”表示“一种对无常之美的怅然”),而另一种语言里却找不到对应概念?婴儿出生时并不区分愤怒、害怕或悲伤,只是表现出一般的不适或舒适,随着成长才在教导下学会用不同情绪词描述感受——这又说明了什么? Barrett 提出了**情绪建构理论**:情绪并非进化硬编码的固定模块,而是大脑在每一刻**主动构建的体验。大脑根据过去的经验和所学到的情绪概念,对当前的内部感受和外部环境进行预测和归类,从而赋予某种主观意义**,这个过程产生了我们所体验到的“情绪”。 这一理论试图解决一个“情绪悖论”:一方面,人们日常感觉情绪种类分明,“愤怒就是愤怒”“悲伤就是悲伤”;但生理测量和脑科学研究,却没能发现每种“离散情绪”有恒定统一的生物特征。Barrett 指出,可能并不存在与日常情绪词对应的先天情绪“模块”。相反,大脑更底层存在的是核心感受(affect)——它无形且连续。 比如你此刻可能只是觉得“舒服放松”或“不安紧张”,这是一种介于愉快/不愉快、高唤醒/低唤醒坐标轴上的连续状态。而当我们**赋予这种核心感受一个特定的概念标签,并结合情境加以解释时,才“建构”出某个具体情绪**如“平静”或“焦虑”。 Barrett 将情绪建构过程比喻为**颜色的感知**。物理世界中颜色的本质是连续光谱的不同波长,但人类大脑将连续的光谱划分为离散的颜色类别。同样,情绪的生理基础也是光谱式,而大脑借助文化赋予的**情绪概念**,把这些连续的内在感觉切割成离散的类别(愤怒/恐惧/喜悦等)。在她看来,“愤怒”并不是大脑里某个固定程序跑出来的,而更像是大脑对当前身心状态的一种**分类标签**。不同的人、不同文化对于类似的核心感受可能贴上不同标签,这就解释了情绪的文化差异。 为了证明情绪是被建构的,Barrett 和团队进行了多方面的研究。例如,考察**面部表情与情绪的对应关系**,发现离开情境单看一张愤怒或高兴的脸,有时会产生误判。下面这张照片,你看到了什么样的情绪? ![9-wlms-s](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/9-wlms-s.png) . 这是一张网球明星威廉姆斯比赛胜利瞬间的面部特写:如果只看她的脸,许多人会以为她在“愤怒咆哮”或“痛苦嚎叫”,但实际上她是在**欢呼胜利**。 ![9-wlms-l](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/9-wlms-l.png) **离开情境,我们很容易误读情绪信号,这说明面部动作和情绪状态并非一一对应。** 在另一项对非洲纳米比亚的欣巴族的实验中,对比他们和西方人对某些情绪声音的辨识。结果发现,欣巴族人分不清“害怕”的吸气声和“惊讶”的吸气声。这说明对声音等情绪线索的理解,也需要文化和情境来辅助。 Barrett 据此批评传统基本情绪研究的方法:让受试者在几张表情照片里选标签,即使正确率高,也不能证明那些表情信号是先天的——因为**人们仍可能根据情境线索和学习经验来判断**。情绪也是一种*社会现实*。情绪概念是我们集体编织出的分类体系的一部分,而不是纯粹自然存在的实体。 Barrett 也持续寻找[神经科学的证据](https://psycnet.apa.org/record/2018-04155-001)。[她和合作者汇总了上百项脑成像研究](https://journals.sagepub.com/doi/abs/10.1177/1529100619832930),发现**没有任何单一区域只在某一种情绪时激活**,相反,每种情绪体验都涉及多个分布式的脑网络的协同作用。例如,“恐惧”并没有“恐惧中心”,而是由涉及记忆、注意、内感受、意义赋予等多个网络共同产生。**大脑更像一个预测机器,不断利用以往经验来猜测当前感觉的含义**。当身体产生某些变化(如心跳加快、出汗),大脑会结合情境做出预测:“这种感觉意味着什么?是因为我跑步所以心跳快,还是因为我刚才看到的是一条蛇所以心跳快?”如果环境线索和过往经验指向危险,大脑就“构建”出**恐惧**的情绪体验;如果指向愉快激动的场景,那么则可能被标记为**兴奋**而非恐惧。总之,**情绪是大脑对感觉赋予的情境化意义**。 2017 年,Barrett 出版科普书籍《How Emotions Are Made》,系统阐述了情绪建构论。 > “在每个清醒时刻,你的大脑都会根据过往的体验形成概念,从而指导你的行动,赋予你的感觉以意义。当涉及的概念是情绪概念时,你的大脑就会构建情绪的实例。” 她的观点无疑具有颠覆性:在人们习惯了将喜怒哀乐视作“与生俱来的自然产物”时,她却宣称那些情绪是习得的、是大脑的预测结果。这种大胆主张在科学界和媒体上都引来了支持和质疑的声音。一些学者认为 Barrett 过于否定生物因素,而另一些人则赞赏她为情绪研究注入新视角,认为**大脑的主动构建**观点可以更好地解释许多基本理论解释不了的现象。 ![](https://img9.doubanio.com/view/subject/l/public/s31459215.jpg) 更学术的探讨,可以看 2023 年 Barrett 做客 Huberman Lab,在 2 个多小时的节目中,深入解释情绪的本质,以及大脑如何表征和整合来自身体和环境的信号,从而形成我们独特的情绪状态。https://www.youtube.com/watch?v=FeRgqJVALMQ ## 论战:天生抑或造就? 随着 Barrett 理论影响力增大,情绪科学领域出现了对峙局面:以 Ekman 为代表的“基本情绪派”和以 Barrett 为代表的“情绪建构派”之间展开了激烈的学术论战。这场论战从象牙塔里出圈,通过媒体和公开演讲传递给大众。2014 年《纽约时报》刊登了 Barrett 的一篇文章 “[**What Faces Can’t Tell Us**](https://www.nytimes.com/2014/03/02/opinion/sunday/what-faces-cant-tell-us.html)”。她在文中质疑面部表情的普遍性证据,引起了 Ekman 等人的强烈回应。Ekman 联手同事撰文反驳 Barrett,标题为 “[**Are Facial Expressions Universal?**](https://greatergood.berkeley.edu/article/item/are_facial_expressions_universal?locale=zh_CN)”。Ekman 列举数据指出,那些使用固定照片让不同文化的人贴标签的实验,在各地已复制约 200 次,结果支持基本表情在各文化中能被识别。此外,他们强调还有其他强有力的证据: - **自发表情研究**:Ekman 团队早在 1970 年代就做过一项实验,让日本和美国受试者观看令人不安的影片,发现两国人在独处时自发流露的面部表情是一样的,但在有人旁观时表现不同(日本人压抑而美国人外露)。此后有 100 多项相关研究,结果支持不同文化的人在相似情境下会展现相同的基本表情模式,只是表达强度或频率可能受文化影响。 - **生理与脑成像证据**:有大量研究发现,当人们展现基本表情时,其自主神经系统反应和大脑活动模式存在差异。例如,愤怒的面部表情往往伴随特定的心率、激素变化,恐惧表情则对应不同的生理图谱。甚至人为摆出某种基本表情,也会引发相应的生理变化,比如心率上升或大脑相应区域的激活。这种“表情即生理”对应关系表明基本情绪确有其生物实在性,**情绪不只是主观概念**。 通过以上论据,基本情绪派力图证明:**虽然情绪体验复杂多样,但在生物层面,仍有可寻的共性模式**。他们认为进化赋予了人类基本的情绪潜能,而后天环境塑造了情绪的具体呈现。 情绪建构派则针锋相对地认为:**没有上下文的情绪是不存在的**。脱离了环境和认知,生理反应不过是噪音——只有当大脑根据情境将其解释为某种情绪时,它才获得意义。他们质疑那些据称找到情绪指纹的研究是否过于理想化,基本情绪论的三个基础都不成立: - 面部表情:人们在不同文化、情境、个体间表达情绪的方式存在显著差异。相同的面部动作在不同情境中可能表达不同的情绪。因此不能将特定的面部表情与特定情绪简单地等同起来。 - 生理特征(ANS):[对 202 项研究的原分析结果显示](https://journals.sagepub.com/doi/10.1177/0963721411422522),即使是基本情绪也表现出生理反应的显著变异性,不能被特定情绪类别所标识。 - 大脑结构:[对人类情绪的神经影像学文献的元分析显示](https://www.cambridge.org/core/journals/behavioral-and-brain-sciences/article/brain-basis-of-emotion-a-metaanalytic-review/80F95F093305C76BA2C66BBA48D4BC8A),情绪由更通用的大脑构建,情绪体验和感知涉及一组基础心理操作的大脑结构区域,在情绪性和非情绪性功能中均有活动,而不是某些特定情绪独有的大脑区域。 > 情绪不是一种生理反应,而是大脑建构出来的一种概念。 大辩论的主要节点 | 年份 | 事件/著作 | 代表人物 | 内容与论争 | | ---------- | --------------------------------------------------- | ---------------- | ------------------------------------- | | 1971-1980s | 跨文化面部表情实验、FACS 建立 | Paul Ekman | 提出并推广“基本情绪”理论 | | 1994 | 情绪的环状模型 (Circumplex Model) | James Russell | 挑战基本情绪分类 | | 2006 | 《Are emotions natural kinds?》 | Lisa Barrett | 批评基本情绪论,提出建构性假说 | | 2011-2014 | 《The theory of constructed emotion》等多篇综述论文 | Lisa Barrett | 系统阐述情绪建构论 | | 2012 | 《Emotion Review》上关于基本情绪理论的系列讨论 | Paul Ekman 等 | 坚持基本情绪观,回应建构论挑战 | | 2014 | 《How Emotions Are Made》 | Lisa Barrett | 面向大众普及情绪建构论 | | 2015-2022 | 大数据、AI 与神经影像新证据 | Barrett/Ekman 等 | 双方用新工具新数据论证己方观点 | | 2020s | AI 领域情绪标签/建模争议 | 工程&学术界 | 基本情绪标签 vs. 建构性泛化的工程选择 | 激烈争论之中,一些整合思路也在形成。很多情绪研究者同时认可情绪的普遍生物基础和复杂建构性质。他们同意人脸并非情绪的唯一读本,仅靠皱眉不一定就能断定对方生气;情绪涉及面部、声音、姿态、生理等多重通道的综合信息,但这并不等于情绪毫无客观基础。 有学者指出,其实两派在很多方面并非绝对对立。例如,基本情绪派也承认情绪包含认知评估和学习,建构派也不否认人类有共同的核心感受和进化基础。区别主要在于:**基本情绪论更强调先天分类和生物划分**,而**建构论更强调后天学习和连续谱系**。或许未来的理论将融合两者:情绪既有自然的一面,也有社会建构的一面。 实际上情绪可能是多种因素的簇集,每种情绪都有典型的“成分配置”。例如,“愤怒”通常包含提高的心率、瞪眼、大声斥责等成分,但其中任何一个单拿出来,也可能出现在别的情绪或状态中(心率高也可能是兴奋,瞪眼也可能是惊讶)。情绪科学的发展前沿,正在尝试解析这些**情绪成分的组合模式**,寻找情绪在大脑和身体中的复杂图谱。 ## 更多视角:超越两分法的情绪理论 除了上述两大流派,情绪科学中还有其他理论视角,提供了不同角度来审视情绪这一复杂现象: | 理论流派/视角 | 核心主张与观点 | 特征与亮点 | 代表学者或理论 | | ------------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------ | --------------------------------- | | **心理构建论/社会建构论** | 情绪主要由文化与社会环境塑造,情绪的定义和体验受社会习俗影响巨大 | 强调语言、文化习俗在情绪体验与表达中的决定性作用,情绪是文化“剧本”的体现 | James Averill 等 | | **情绪维度模型** | 情绪位于连续的维度(愉悦度与唤醒度等)上,而非离散的类别 | 强调情绪状态的连续性,能更好解释复合或混合情绪 | James A. Russell 等 | | **认知评估理论** | 情绪来自个体对环境和事件意义的主观认知评估 | 强调认知因素在情绪体验中的核心作用,通过改变认知可有效调节情绪 | Richard Lazarus 等 | | **社会功能理论** | 情绪进化的功能是为了帮助个体适应社会环境,协调群体关系和互动 | 情绪具备社会交际和群体协调的功能,聚焦情绪如何维持和增强社会关系 | Dacher Keltner、Jonathan Haidt 等 | | **身体反馈理论** | 情绪体验依赖身体的生理变化,身体反应先于情绪的主观体验 | 强调身体生理反馈在情绪体验形成中的核心作用,生理状态引导情绪感受 | James-Lange theory 现代版本 | | **行为生态学理论** | 面部表情等外在表现主要作为社会交际信号,而非直接代表情绪状态 | 强调情绪表达的社会信号功能,而非单纯的情绪反映 | Alan Fridlund 等 | | **进化博弈理论** | 情绪在进化过程中通过博弈策略来优化个体和群体适应性 | 从演化稳定策略角度解释情绪如何促进个体间互动和群体合作 | Robert Frank 等 | ## 走向情绪科学的新篇章 > GPT 的诗意总结 回顾 20 世纪以来情绪科学的发展,仿佛能看到两股暗流:一股致力于证明情绪的**普适与本能**,一股致力于揭示情绪的**多样与塑造**。Ekman 让我们相信,茫茫人海中笑容和泪水可以跨越文化被彼此读懂,那是进化赐予我们人类的共同语言。而 Barrett 则提醒我们,每个人的情绪又是如此独特精细,像一幅幅由经验绘制的肖像画,我们的大脑就是那个画师,借助文化的颜料在核心感受的底板上勾勒出愤怒或快乐的模样。 如今,这两种视角的争鸣激发出更多创新的研究。科学家们正借助更大规模的脑成像、人工智能数据分析等技术,试图绘制情绪的全景地图。或许最终我们会发现,情绪既不像简单的“基本色板”那样只有几种,也不是毫无规律的“随机涂鸦”。它可能更像一座调色盘——有少数底色,也经由混合生成万千色彩。 ![8-insideout2](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/8-insideout2.jpg) 当我们看到他人脸上的笑容或愤怒,不妨既相信其中有人类共通的真情实感,也体谅那表情背后可能有不同的故事脉络。情绪既是人与人相连的纽带,也是个人经历的独特印记。带着这样的理解去体会情绪,也许能让我们对自己和他人的情感世界都有更深的共情和洞察。 --- # 论文解读:通往自主机器智能的道路 - URL: https://tophci.com/posts/250812-world-model-yann-lecun - Date: 2025/08/12 - Tags: Intelligence, World Model ## **AGI 的三条技术路线** ![wm1](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/wm1.png) | **信息模型/语言智能** | 大数据+自监督学习+大算力形成的信息类(语言/图像/语音)模型 | | --------------------- | -------------------------------------------------------- | | **具身模型/空间智能** | 基于虚拟或真实世界,通过强化学习训练出来的具身模型 | | **神经模拟/生物智能** | 模仿自然进化,复制数字版本的人脑和智能体,即脑智能 | 信息模型的能力在 scaling law 下继续增强,但是学界、业界、消费者对模型的感知、决策和行动能力的期待水涨船高,具身模型的关注度也越来越高。 空间智能:能够对世界进行建模,根据 3D 时空中物体/地点/交互进行推理。李飞飞去年成立的 World Labs 目标是打造「大世界模型」,让 AI 在 3D 世界中感知、生成、互动。 ![wm2-worldlabs](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/wm2-worldlabs.png) > 如果想让 AI 超越当前的能力,我们需要的不仅是能够看到、会说话的 AI,而是一个可以行动的 AI。 > 视觉化为洞察,看见成为理解,理解导致行动。 ``` 放飞一下 - 信息模型:语言是对物理世界的压缩 - 具身模型:物理现实是对进化的切片 - 神经模拟:从第一性原理出发,模拟 god 用万亿年演化出的低成本的熵减的智能体 (00 的暴论:现在 AI 的瓶颈是能耗过大,还在熵增阶段而没有实现熵减) ``` ## 具身路线之 Yann LeCun 视角 作为目前的非共识,Yann LeCun 主张发展**目标驱动**的人工智能,这种系统不仅能够识别模式,还能理解因果关系,进行有效的推理和规划。他近年一直力推世界模型,即一种世界的“模拟器(simulator)”,用于估计感知中缺失的信息以及预测世界的未来状态。 ![wm2-yannlecun](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/wm2-yannlecun.png) 对比主流的机器学习系统,人类和动物能通过观察和少量互动,以无监督的方式学习大量世界知识,这些知识构成常识,使动物能学习新技能、预测行动结果、推理、规划并避免错误和危险。 | **机器学习系统** | **人/动物** | | ---------------------------------------- | --------------------------------------------------------------------------- | | 专门化的,会犯低级错误,推理和计划能力弱 | 可以非常快地学习新知识,理解世界如何运行,可以推理和计划——拥有 common sense | | 在输入输出之间需要经过恒定的计算步骤 | 可以预测行动的结果,可以无限链式推导,可以分解复杂任务为一系列子任务 | 动物和人类的学习能力及对世界的理解,远超当前的机器学习系统,AI 研究需应对三个挑战: 1. 机器如何通过观察学习世界知识 2. 如何进行基于梯度的推理和规划 3. 如何在多个抽象层级和多种时间尺度上表示感知和计划行动 ``` Yann 的一些大胆设想: - 预测是智能的本质,学习对世界的预测就是常识的来源,推理是模拟/预测和规划的一种延伸; - 几乎所有智能都是自监督学习,而非强化学习、监督学习或模仿; - 情绪对自主智能不可或缺; 🤯 我们应该放弃生成式模型、强化学习、概率方法,寻找一条更好的智能实现路径. ``` 通过设计学习范式和架构,让机器以无监督/自监督的方式学习世界模型并进行预测、推理和规划,是 AI 和 ML 的主要挑战之一,其中一个关键问题是**如何设计可训练的世界模型,来处理预测中复杂的不确定性**。 ## 世界模型架构设想 关于世界模型的介绍请移步:[什么是 World Model 世界模型](https://www.tophci.com/posts/250803-world-model-intro)? ### 自主智能的系统架构 Yann LeCun 2022 年提出一个实现自主智能的架构,包括感知、世界模型、执行器、评判器、成本、短期记忆和配置器等模块。 ![world-model-arch](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/world-model-arch.jpg) 模型中的所有模块都假定是可微分的,使梯度可以通过其他模块反向传播,然后更新行动序列,最后收敛到最优行动序列。 **目标驱动**的 AI:找到最接近目标的动作序列 ![wm2-paperimg1](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/wm2-paperimg1.png) ### **感知-行动循环** **模式 1(直接反应)** 直接根据感知和短期记忆产生行动,不涉及复杂推理; ![wm2-paperimg2](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/wm2-paperimg2.png) **模式 2(推理和规划)** 通过世界模型和成本进行推理和规划,类似于模型预测控制(MPC)。 ![wm2-paperimg3](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/wm2-paperimg3.png) Action 可以看作潜在变量,代表从一个状态到下一个状态的抽象转换。这种通过模拟和优化进行的规划,可能构成自然智能中最常见的推理。推理可看作是**能量最小化**的过程,许多经典推理形式可被表述为优化问题。 从模式 2 到模式 1,可以视为**学习新技能**的过程:模式 2 可训练模式 1 中的策略模块,使其能直接产生 action。策略模块可以看作是行动的一种摊销推理,让智能体利用世界模型和推理能力来获得新的技能,然后将这些技能“编译”成不再需要仔细计划的反应式策略模块。 ### **成本模块驱动行为** 成本模块决定了智能体的行为本质。可通过四种方式指定: - 显式编程:在满足特定条件时激活的特定行为 - 定义目标函数:使智能体执行所需的行为,从而找到最小化目标的动作序列 - 监督训练:训练智能体以某种方式行事。智能体观察专家教师的行为,并训练一个模式 1 策略模块来重现它。 - 模仿学习:通过模仿学习训练。智能体观察专家教师,并推断出一个目标函数(行为不断优化)。这为模式 2 行为产生了一个评判器子模块。这个过程有时被称为逆强化学习。 **训练评判器** 评判器使用短期记忆模块,通过检索过去状态和内在能量/能耗,来训练自己预测未来的内在能量/能耗,其参数可通过优化预测 cost 来调整。 ![wm2-paperimg4](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/wm2-paperimg4.png) 在 planning 期间,内在成本模块将三元组(时间,状态,内在能量): $$(τ, s_τ, IC(s_τ))$$ 存储到短期记忆中。 - 在评判器训练时,检索过去的状态向量 $$s_τ$$,以及稍后时间 IC 的内在能量 $$(s_τ+δ)$$。 - 在最简单的场景中,评判器调整参数,以最小化目标 $$IC(s*{tau+δ})$$ 和预测能量 $$C(s*τ)$$ 之间的发散度量。 - 在更复杂的方案中,它可能使用未来内在能量的组合作为目标。 ### 训练世界模型 > 世界模型的设计架构和训练范式,是十年来人工智能真正进步的主要障碍。 世界模型的主要目的是**预测世界状态的未来表示**。有三个问题需要解决: | **多样性** | 世界模型的质量,很大程度上取决于它在训练时能够观察到的状态序列或三元组(状态、动作、结果状态)的多样性。 | | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **可能性** | 因为世界并非完全可预测,在给定的世界状态和智能体的动作之后,可能会有多个合理的世界状态表示。世界模型必须能够有意义地表示这个无限的合理预测集合。 | | **层级** | 世界模型必须能够在不同的时间尺度和不同的抽象级别进行预测。这与长期预测和规划有关。
- 人类在抽象水平上规划复杂的目标,并使用对世界状态和行动的高级描述来进行预测。
- 然后,高级目标被分解为子目标序列,使用来自世界模型的较短期预测来产生较低级别的行动。
- 这种分解过程一直重复到毫秒级的肌肉控制。 | 如何解决以上问题? - **自监督学习**:训练系统去判断输入的不同部分是否一致。 - 在视频预测场景中,通过学习关于世界如何运作的抽象概念层次结构,可使系统提取图像中的局部边缘和轮廓、识别深度图、物体的隐含表示、直观物理概念等。 - **潜在变量**:使用潜在变量来表示关于 y 的信息(无法从 x 中提取),以处理世界的不可预测性。 - 通过最小化潜在变量的信息来避免模型崩溃,例如使潜在变量离散、低维、稀疏或具有噪声等。 - **世界模型架构**:世界模型的架构细节应根据环境类型确定,见下文。 - 可能包括门控或动态路由机制,例如在处理视频时,低层次预测可通过提取局部特征向量和位移来实现,高层次预测可使用 Transformer 架构来建模对象及其交互。 - **跟踪世界状态**:传统深度学习架构通过向量或多维数组传递状态的效率低下,建议使用内存模块来维护世界状态,通过 query-value 对来修改或添加世界状态记忆的条目,所有操作应是可微分的,以便反向传播梯度。 - **数据流**:智能体可通过五种信息收集模式学习世界知识:被动观察、主动注视(active foveation)、被动代理、主动自我运动(active egomotion)和主动代理。训练世界模型可能需要**更主动的信息收集**,关键问题是确定通过被动观察、自我运动和完全代理能学到多少。 ### 生成式架构 vs 联合嵌入预测架构 > 世界模型能否采用生成式架构? > 类似 GPT 的自监督训练文本的方法是否可以移植到视频上? 假设:拍一段视频 y,遮盖其中一部分,表示为 x,然后训练神经网络来预测缺失的视频部分。如果系统能预测视频中将要发生的事情,那么它可能对物理世界的底层本质有很好的认识。 ![wm2-paperimg5](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/wm2-paperimg5.png) 神经科学家很长时间以来一直在思考这类问题——即预测编码。但是它不可行。LeCun 和同事尝试了 10 年,没有得到良好的预测。原因是它无法真正预测将要发生的事情,而是预测所有可能发生的事情的平均值——得到的是一个非常模糊的视频。 **解决方法是放弃生成模型而采用 JEPA(Joint Embedding Predictive Architecture 联合嵌入预测架构)。** ![wm2-paperimg6](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/wm2-paperimg6.png) ``` 联合嵌入预测架构(JEPA):通过编码器和预测器在表示空间中进行预测,能够处理输入与输出间的多模态依赖关系。 - 主要优点:y 的编码器可以在表示空间中生成抽象表示来执行预测,避免预测那些不相关的细节。 - 层次化 JEPA(H-JEPA):通过非对比方法训练的 JEPA 能够学习抽象的世界模型。H-JEPA 能够提取不同层次的抽象表示,进行多时间尺度的预测,对于智能行为至关重要,可将复杂任务分解为更详细的子任务。 - 层次化规划:若世界模型能进行层次化预测,可用于层次化推理和规划。挑战包括如何预定义中间动作词汇,以及如何在不确定性环境中进行规划。在不确定环境中,可通过具有潜在变量的预测器来处理不确定性,通过采样潜在变量生成不同预测,并使用定向搜索和修剪策略来优化行动序列。 ``` ``` 训练基于能量的模型(EBM):不使用传统的概率模型,而采用适合处理不确定性的非标准化概率模型——基于能量的模型,捕捉 X 和 Y 之间的依赖关系。构建计算能量函数的架构和设计合适的损失函数,使训练样本能量低而其他样本能量较高。 - 对比方法:通过推动训练样本能量下降和对比样本能量上升来训练,但可能受维度诅咒影响; - 正则化方法:通过最小化低能量区域的体积来训练,更有希望避免维度诅咒。 ``` ![wm2-paperimg7](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/wm2-paperimg7.png) **做预测的大问题是:什么是适当的信息和适当的抽象层次?**因为不是所有的细节都需要预测。 层次化:高层级的动作,可作为相应低层级的目标。对动作序列的规划正是现有架构所缺少的。 ``` 😮 Yann LeCun 的建议: - 放弃生成模型,转而使用联合嵌入架构; - 放弃概率建模,转而使用基于能量的模型; - 放弃对比方法,转而使用正则化方法; - 放弃强化学习,转而使用 model-predictive control,仅在规划无法预测正确结果时使用 RL 来调整世界模型。 ``` ## Intrinsic Cost:第一性问题? 论文中对 Intrinsic Cost 的描述: > 内在成本模块是硬连线的(不可变,不可训练),测量智能体瞬时“不适”的内在能量——类比疼痛(高内在能量),快乐(低或负内在能量),饥饿等。 > > The Intrinsic Cost module is hard-wired (immutable, non trainable) and computes a single scalar, the intrinsic energy that measures the instantaneous “discomfort” of the agent – think pain (high intrinsic energy), pleasure (low or negative intrinsic energy), hunger, etc. IC 模块的输入是感知模块产生的世界当前状态,或世界模型预测的潜在未来状态。 ``` 智能体的最终目标是在长期最小化内在成本。 ``` 这是基本的行为驱动力和内在动机。基本驱动力可以 hard code。成本模块可以由配置器调制,以在不同时间驱动不同行为。 那么问题来了,**内在成本模块与 AI 的可控性和对齐需求形成对立**。 - 如果 AI 目标是避免饥饿(检查充电状态),认为人类可能不想对其充电,则 AI 将被激励以获得电力并控制其情况以消除潜在危险。 - 如果 AI 有避免疼痛的动机,认为人类可能会让它经历疼痛,或者无法/不愿意帮助它避免可能的疼痛,那么会有动力获得权力以消除潜在的问题。 - 如果 AI 出于好奇心,认为人可能无法提供足够有趣的事情,那么会被激励去获得权力和控制处境,就可以在不征求任何人许可的情况下满足好奇心。 **情绪和智能** - 动物和人类情绪的基础是什么?瞬时情绪(例如疼痛、愉悦、饥饿等)可以是大脑结构的结果,起到与内在成本模块类似的作用。其他情绪,如恐惧或焦虑,可能是大脑结构*预期结果的*结果,其功能类似于可训练的评判器。 - 成本模块通过搜索最优行为来驱动代理的行为,表明这类自治智能体将拥有**情绪的等价物**。就像动物和人类一样,机器情绪也是内在成本的产物,或者是一个可训练的评判器对结果的预期。 那么,究竟应该在内在成本模块中放入什么代码,才能让 AI 具备符合人类利益的动机? ## Ref - A Path Towards Autonomous Machine Intelligence: *https://openreview.net/pdf?id=BZ5a1r-kVsf* - Yann Lecun | Objective-Driven AI: Towards AI systems that can learn, remember, reason, and plan: *https://www.youtube.com/watch?v=MiqLoAZFRSE* - Yann LeCun - A Path Towards Autonomous Machine Intelligence: *https://www.youtube.com/watch?v=OKkEdTchsiE* --- # 什么是 World Model 世界模型? - URL: https://tophci.com/posts/250803-world-model-intro - Date: 2025/08/03 - Tags: Intelligence, World Model > LLM 是否能与现实世界直接交互?人工智能和人类智能的关键区别是什么?如何设计可训练的模型来**处理预测中的复杂和不确定性**? 世界模型可以让知识在任务间共享,实现类比推理,获得**基于现实情境和事实的推理能力**。这是一种人类天然具备,而 AI 还很薄弱的能力。 > ## LLM 是否能够理解世界? 大语言模型究竟对世界有多少理解?这个问题引发了两极化的争论。 **🙅🏻‍♀️ 不理解** - 对 AI 系统的常见质疑:AI 并不具备真正的“理解”能力。比如中文屋问题:一个符号系统虽然能够输出中文,却对中文没有任何理解(即 the [Symbol Grounding problem](https://en.wikipedia.org/wiki/Symbol_grounding_problem))。 - 认为 AI 没有理解能力的学者预言,只接受语言训练的机器,“[即便从现在开始一直训练到宇宙热寂](https://www.noemamag.com/ai-and-the-limits-of-language/)”,也永远无法媲美人类智能。 - 这一阵营也不认同“理解即正确预测”。即便我们理解了一个事物,也可能由于缺少观察、思考不充分等导致错误预测。尽管 DL 中神经网络的输出过程常常被称为“预测”,但一般语境下的预测带有时间属性,有些关系并非预测关系。 > LLMs have no knowledge of the underlying reality.——Yann LeCun **🙋🏻‍♀️ 理解** - LLM 的能力并非源于对语言含义的领悟,而来自于学习训练数据中词语之间复杂的统计模式。 - 如果将各种不同的表示都统一转换为概念化表示,那么“理解”≈ 建立起概念与其他概念之间的联系。“错误的理解”仍然是一种“理解”:神经网络产生了与人类不同的“理解”。 - 大模型在接受了海量数据的训练后,似乎已经掌握了世界和人类社会的一些基本知识。有没有可能这 LLM 形成了自己对“语言环境”的理解,但和人对世界的理解不同。 > 当训练一个大型神经网络来准确预测许多不同文本中的下一个单词时……它正在学习一个世界模型……这个文本实际上是世界的投影……神经网络正在学习的是世界、人、人类状况、希望、梦想和动机的越来越多的方面……神经网络学习了一种压缩的、抽象的表示。 ——Ilya Sutskever ## AI 的心理模型? 目前看来,LLM 的[幻觉](https://spectrum.ieee.org/ai-hallucination)问题及其[易受攻击](https://llm-attacks.org/)的特点表明,AI 系统似乎缺乏人类智能的一个关键部分:基于真实世界的模型(人的数据结构,吃一堑的基础),包括理解用户请求背后的意图。 认知科学认为人不是简单的条件反射机器,我们的头脑中有物理和社会世界的抽象模型,这些模型反映了事件的因果,而不仅是相关性。 人们依靠这些**心理模型**来模拟和预测可能行动的可能结果,在不熟悉的情况下推理和计划、想象反事实,并在经验的基础上更新知识和信念。 > 我们头脑中对周围世界的印象只是一个模型。没有人在他的脑海中想象整个世界、政府或国家。他只选择了概念,以及它们之间的关系,并以此来代表真实的系统。 > > ——系统动力学之父 Jay Wright Forrester 对心理模型描述 AI 的心理模型是什么?如何让 AI 能够像人类一样能真正规划?具身理论认为,可以参考人类和动物是如何快速学习的——通过观察和体验世界。 获取“世界模型(World Model)”的问题是 AI 研究的焦点之一。研究人员已经尝试了许多方法,包括手动编程,或者让机器从数据或经验中学习。 - 最开始主要使用监督学习,这需要很多标签。 - 强化学习效果很好,但需要大量的试验才能学到东西(吃上万次的亏)。 - 自监督学习又过于专门化,容易犯错,而不会真正推理或计划,只是快速反应。 ## 什么是 World Model? World model 早期的经典论文《[Recurrent World Models Facilitate Policy Evolution](https://arxiv.org/abs/1803.10122)》中并没有给出定义,而是类比了认知科学中人脑的 mental model: > 人类发展了一个基于有限的感官去感知世界的心理模型。我们所做的决定和行动都是基于这种内部模型。 论文提出的智能体模型包含三个组件: - **视觉感知组件 V**:可以将它所看到的画面压缩成一小段代码表示。 - **记忆组件 M**:可以根据历史信息预测未来的代码。 - **控制器 C**:决策组件,它根据视觉和记忆组件的表示来决定采取什么行动。 ![](https://worldmodels.github.io/assets/world_model_overview.svg) World model 主要包含**状态表征**和**预测模型**,正好对应 mental model 中的 mental representations 和 mental simulation。 - 状态表征:环境提供高维观察作为输入,纵向 V->z 将每个输入帧压缩成抽象表示(低维特征向量) - 预测模型:水平的 M->h->M->h 是以序列方式预测下一个时刻的表征,用 RNN 实现。 V(视觉)、M(记忆) 和 C(控制器) 如何与环境交互: ![](https://worldmodels.github.io/assets/world_model_schematic.svg) V 在每个时间处理原始观测值并生成 $$z_t$$。C 的输入是这个潜向量 $$z_t$$与 M 的隐藏状态之间的连接 $$h_t$$。C 将输出一个动作向量 $$a_t$$ 用于控制。然后 M 将接收最新的 $$z_t$$和行动 $$a_t$$作为输入来更新 t+1 时的隐藏状态 $$h_{t+1}$$ V、M、C 对应具身智能研究中常见的三个模块:感知,记忆/预测/决策,执行/控制。 ### 强化学习中的世界模型 强化学习使 AI 能够随着时间的推移改进其决策。强化学习算法可以分为 - 无模型(model-free):通过大量与环境交互的试验,来了解哪些行为在不同情况下是成功的。 - 有模型(model-based):这里的模型即 World model。在基于世界模型的强化学习中,智能体首先学习一个关于环境的内嵌模型,从中学习行为决策并用于规划,从而提高在真实环境中的表现。世界模型可以[从更少的交互中学习](https://ai.googleblog.com/2019/02/introducing-planet-deep-planning.html),促进[离线数据的概括](https://arxiv.org/abs/2005.13239),支持[前瞻性探索](https://arxiv.org/abs/1810.12162),并允许[在多个任务中](https://bair.berkeley.edu/blog/2020/10/06/plan2explore/)重用知识。 对世界模型的两种可能理解: - 对环境状态的唯一正确描述 - 关于环境的知识或信念(belief) 二者的区别在于,前者认为存在一个“客观”的描述,而后者中知识或信念是“主观”的。不同智能体对环境的认识几乎都不相同,差异主要来源于其感知运动接口以及个体经验。其实并不存在“唯一正确”的描述。神经网络的方法天然地符合第二种理解,即每个神经网络的**权重都是关于环境的“主观”知识**。 要适应环境,在其中学会完成任务、解决问题,智能体要习得环境的知识。困难在于对这些知识的具体组织方式——如何处理大量的来自环境的输入、如何组合与抽象、如何与既有知识建立联系和修正既有知识等等。 世界模型也可以称为预测动力学模型,对于决策十分重要,它的**核心任务是预测智能体特定的行动下,世界状态的变化,即尝试建模世界的状态转换函数。**如果能获得准确的 world model,就可以在其中反复试错,找到现实最优决策。 如何更好地建模世界模型?Yann LeCun 提出了一个比较完整的架构,我们下篇来介绍。 ## Ref - [World Models](https://worldmodels.github.io/) - [AI’s challenge of understanding the world | Science](https://www.science.org/doi/10.1126/science.adm8175) - [A Path Towards Autonomous Machine Intelligence](https://openreview.net/pdf?id=BZ5a1r-kVsf) - [The first AI model based on Yann LeCun’s vision for more human-like AI](https://ai.meta.com/blog/yann-lecun-ai-model-i-jepa/) - [Mastering Atari with Discrete World Models](https://research.google/blog/mastering-atari-with-discrete-world-models/) - [什么是 world models/世界模型 - 知乎](https://zhuanlan.zhihu.com/p/661768957) - [CONFERENCE JENSEN HUANG (NVIDIA) and ILYA SUTSKEVER (OPEN AI).AI TODAY AND VISION OF THE FUTURE](https://www.youtube.com/watch?v=ZZ0atq2yYJw&t=1262s) - [Do LLMs learn world models? (大语言模型学到了世界模型吗?) | Haonan's blog](https://www.haonanyu.blog/post/llm_world_model/) - [World Model As Agent 是 AGI 的必经之路吗?*世界*模型\_预测](https://www.sohu.com/a/749968382_99985415) --- # 呓语:从人的局限理解智能的疆界 - URL: https://tophci.com/posts/250721-desire-as-intelligence-boundary - Date: 2025/07/21 - Tags: Intelligence, HCI 翻出过去一些自问自答的呓语…… --- > 人机交互的形式发生了什么变化? 过去几十年的人机交互,形式上是人使用计算机来做各种各样的事情,这些工具从一开始以硬件为主,到现在以运行在不同硬件/云上的软件为主,核心变成了**人-数字工具**的交互。 > 人机交互的目的发生了什么变化? 人机交互的最终目的并不是使用工具,人使用工具是为了满足需求。 过去人与机交互的目的,很大程度上是在塑造数字世界。人使用计算机,产生了海量的数据、文本、多媒体,以及对现实世界的表示和标注。 但人的需求,不只是在数字世界,而是遍及三大世界——**物理世界、数字世界、精神世界**。当生成式 AI 带动数字世界发生一轮大的跃迁时,“机器“这种形态已经不能很好概括形式的目的。交互也将相应进化到新的阶段——人与智能交互,目的是使用智能来满足人在三大世界的需求,尤其是那些在过去还满足不好的需求。 > 人的需求由哪些底层动力驱动? 人为什么有那么多的需求?柴米油盐,七情六欲,风花雪月。 因为生而为人,欲望和局限都太多了。我们只能存活几十年,空手只能够到 2 米多高,步行 1 小时不过几公里,只能看到约 400~760nm 波长的光,听见 20Hz ~ 20000Hz 的声音,临时记住约 4 个单位的信息…… 在这些局限之中,最重要的有三个:时间,空间,注意力/认知加工能力。人的各种需求,总是指向突破这种种限制的努力。 - 时间:为了突破时间限制,我们追求永恒、延续、不死——数字世界,生命永存 - 空间:为了突破空间限制,我们开疆拓土,繁殖,扩散——物理世界,无远弗届 - 认知:为了突破认知限制,我们希望拥有更长的 Context、更大的 FLOPs——精神世界,万物合一 不论技术如何演进,人一定会尽可能利用工具,尤其是智能程度高的工具来突破三大限制,从而接近人类叙事中的神——灵魂不死,无处不在,包容万物。 ### 数字世界 表面上看,AI 是人的工具,但人和 AI 在很长时间内是相互依存的关系,因为 AI 需要人产生的数据。 | | **人** | **AI** | | -------- | ------ | ------ | | **需求** | 功能 | 数据 | | **供给** | 数据 | 功能 | 如果对这种相互依存的关系,寻找一种更符合人的偏好的表达,应该是什么呢? 智能很大程度上是人在数字世界中孵化的。不论从主客体关系,还是可控性需求,又或是人对工具的态度,人在与智能交互时,比较理想的载体是助手。 **助手:人和 AI 在数字世界的中介** 助手不是 AI 本身,助手的“本职”工作不是生产,那是模型的工作。**助手的核心是“中介”,促进供需匹配**。 - Stage1 生成:LLM、LMM 让数字世界的内容供给趋于无限 - Stage2 转换:数字世界的内容形态可以任意转换 - Stage3 匹配:数字服务的流通,供需匹配效率,从信息分发到需求分发 - 信息时代—信息找人:信息先被生产出来,然后订阅、推送 - 智能时代—需求分发:需求先被捕捉,供给是即时分发和生成的。prompt 是一种需求模板 人类擅长用各种工具解决问题,但是解决问题不等于达成目标,更不等于满足欲望。这一轮的 AI 发展,似乎是一次掀翻潘多拉魔盒盖子的过程。当我们意识到 AI 可以直接交付结果,就不再有耐心探索怎样使用工具达成目标的路径,而是每天都在畅想(或是幻想)”如果……就好了“的场景,欲望演化的速度前所未见。 智能时代的人机交互,基于真实情境(物理/数字/精神)的需求(欲望)识别,是核心的挑战和机会。 > 什么比信息找人价值更高? - 问题找解决方案 - 供需匹配:需求找供给 - 时间扩展:(未来)机会识别,(未来)风险消除 - 空间扩展:生态位巩固 横向扩展:信息的上游是需求,信息的下游是知识和服务,去掉信息这个中间环节 纵向扩展:物理世界,精神世界(从下到上带宽越来越窄) ### 物理世界 > 助手:人-物理世界的超频器 跟比特相比,原子变化慢。助手帮助实现在数字世界的模拟和演化,然后部署到物理世界。 ### 精神世界 > 助手:人-精神世界的镜映器 三维的人,在高维的空间中,始终照见的是自己。 ### 智能时代的常态和机会 - 数字世界:供给过剩,需求不足,(时间不够用)时间限制被放大 - 物理世界:供给不足,需求过剩,(虚实预期差)空间限制被放大 - 精神世界:供给过剩,需求过剩,(注意力挤兑)精神问题被放大 智能就是人类欲望和局限通往三大世界的桥梁。 --- # 表达欲,攻击性,冬去春来 - URL: https://tophci.com/posts/250302-desire-to-express - Date: 2025/03/02 - Tags: 零反思 我已经失去表达欲好几年了。 几年前,结束了长达三年的自由生活,进入一个规矩很多、忙碌但死气沉沉的公司,开始接触一种陌生的体制,陌生的经营动力,尤其陌生的文化氛围——透着冰冷金属暗泽的巨型机器的那种不由分说。这一切让我感觉很不舒服,随之而来的是要跟自己的失望、恐惧和愤怒做斗争。抗争半年以后,我妥协了,失去力气,不想触碰什么关于创造、个性、身份认同这些奢侈的话题。 也许就是从那时候起,我的「攻击性」不再对外释放。从精神分析的角度来说,攻击性是生命力的一种表达方式。强调一下,这里的「攻击」不是指直接言语或行动攻击,更多是指一个人的意志和主张的主动表达,并且不因为与他人不一致甚至冲突而立即退让。 人与人的差异,会天然形成看不见的界限,从我的界限到你的界限,你我可能都会感受到一丝拉扯和对抗,以及涉入/被涉入边界时的张力,而攻击性会让我们承受住这些张力,尽可能地保留自己的想法、个性、主张。当一个人很坚定地以自己的方式表达时,ta 多少就是带有攻击性的。比如宅在房间里打游戏的青少年,不让别人进房间,不听父母的命令或请求,表面上可能一句话都不说,但这也是一种攻击性的表达,为了捍卫自己的边界,让真正膨胀开来的自我有容身之地。比较良性的攻击性,不是说话强势或者不顾他人感受,更多的是在属于自己的边界内「坚持自己」。当别人入侵本属于自己的边界时,不为所动,并且请 ta 出去。 我讨厌老是侵入他人边界的行为,很多时候,这些侵入形式都很微妙,可能只是一个眼神、一个老生常谈的提问、一个看似善意的想与你拉进关系的举动。理想情况下,人与人的边界应该由两个人共同划定。但现实中几乎不可能,不论是权力关系的不对等、个体分化程度的差异还是个人欲求和表达方式的不同,都很容易把边界挤得稀碎,更不要说边界本就是物理上隐形的,而且还超出语言的意会范围。 当人处于一个巨型机器(体制)内部时,机器运作的机制就会开始侵入个人的边界,它会以各种或蛮横或微妙的方式向你传达什么是正确的,什么是被允许的,什么是一文不值的。在工作中,当然要接受这些,但是工作和生活的界限到底在哪里,却很难说清楚。划定边界这件事,我学习了那么多年,却也还是笨拙。 一个人不能比较自然的做自己,总是要屈服于规矩,不能表达不满而且还要拥护,不要说攻击性了,连认知都长期失调,总得想办法糊涂麻痹过去。 被规训得久了,内在的恐惧开始滋生,于是表达欲逐渐消失,我不写文章了,不看那些「没有什么用」的书,逐渐地连音乐也很少听了,光影、涟漪、风吹过树梢的沙沙声,成为了奢侈而又隐秘的救赎般的安慰剂。 去年换了工作,也依然疲于追赶 AI,在自我异化的路上给自己添胡(萝卜)加(大)棒。 直到最近,直到这个春天的开始,好像有一些不一样。 AI 继续加速,而我却好像可以在某些时候慢下来,把路上通勤的播客和听书换成音乐,陪猫主子的时候心无旁骛,脑子里又开始有属于自己的想法冒出来,发一些头脑发热时的碎碎念。有一些东西开始变得没那么重要,而有一些曾经熟悉的东西好像又重新进入了视野。 猛的回看,原来连写出自己心中所想的本能都已经那么陌生,原来我的某些部分已经沉睡四五年。 原来春天真的来了。 --- # [论文笔记] Titans: Google 新推的记忆架构 - URL: https://tophci.com/posts/250218-paper-google-titans - Date: 2025/02/18 - Tags: paper [arXiv](https://arxiv.org/abs/2501.00663v1) > **短期记忆(注意力机制)+长期记忆(神经记忆模块)** 主要贡献: - 提出了一个新的神经长期记忆模块,可以学习记住历史上下文并帮助注意力机制利用长期信息 - 设计了三种不同的架构变体来整合记忆模块 - 在多个任务上的实验表明该模型比传统 Transformer 模型更有效 - 可以扩展到超过 2M 的上下文窗口大小,同时保持较高的准确率 ## 研究背景 参考神经心理学中记忆和学习的定义中感,大多数架构将记忆视为**由输入引起的神经更新**,将学习定义为在给定目标下获得有效和有用记忆的过程。 - RNN 是具有向量值记忆模块 M 的模型,有两个主要步骤:给定在时间 t 的输入 x*t,模型使用函数 $f(M*{t-1}, x*{t})$ 更新记忆,并使用函数 $g(M*{t}, x\_{t})$ 检索输入的记忆。 - Transformers 是具有不断增长的记忆的架构。key-value 矩阵对充当模型的记忆,模型通过将 key 和 value 附加到内存(未压缩)来更新,以及 通过查找 query 向量和 key 向量的相似性来检索 query 向量的相应记忆,然后对输出的 value 向量进行加权。 需要新的记忆结构来回答 5 个问题 - 什么构成了记忆的良好结构? - 什么是适当的内存更新机制? - 什么是好的记忆检索过程? - 如何设计一个包含不同互连内存模块的高效架构? - 是否需要深度内存模块来有效地存储 / 记住很久以前的内容? ## 神经长期记忆模块 > 动态学习历史信息的抽象表示,通过元学习(惊讶程度)在测试时调整参数。 受人类长期记忆系统启发,设计一个能在测试时学习记忆的模块,克服现有模型缺乏长期记忆和有效记忆管理的问题。 ```markdown 类似于人类大脑的长期记忆: - 重要的事件更容易被记住(惊讶度高 → 记忆更新幅度大)。 - 无关紧要的信息会被逐渐遗忘(遗忘系数 αt 控制旧记忆的衰减)。 - 近期的记忆对当前认知有更大影响(动量项 St 提供历史记忆平滑性)。 动态适应新数据: - 记忆模块可以在测试时持续学习,避免过度依赖训练数据(即“过拟合训练集”)。 - 遇到新任务时,Titans 可以自动调整记忆,无需重新训练整个模型。 ``` ### **记忆更新机制:Surprise-Driven** 不符合预期(即令人惊讶)的事件更令人难忘。在模型中,通过输入的梯度(输入数据与过去数据的差异)来衡量**惊讶程度**,梯度越大表示输入与历史差异越大,从而触发记忆更新。 $$ Surprise=\|M\_{t−1}(k_t)−v_t\|^2 $$ - k_t 和 v_t 是当前输入 x_t 投影到 Key-Value Pairs 的结果 - 模型模仿人类对 “令人惊讶” 事件的记忆方式,将更具差异性的数据作为记忆的重点,从而更有效地捕捉和存储重要信息。 记忆更新公式: $M_t=(1-\alpha_t)M_{t-1}+S_t$ 其中 $S_t=\eta_t\underbrace{S_{t-1}}_{\text{Past Surprise}}-\theta_t\underbrace{\nabla\ell(M_{t-1};x_t)}_{\text{Momentary Surprise}}$ - S_t 是动量元素,结合了过去惊讶(Past Surprise)和瞬时梯度(Momentary Surprise),类似于带动量项的梯度下降 - $\eta_t$ 是数据相关的 surprise 衰减($x_t$ 的函数),控制惊讶如何随时间衰减 - $\theta_t$ 控制应以数据依赖性方式将多少瞬时惊讶纳入最终惊讶指标 - $\nabla\ell(M_{t-1};x_t)$ 是当前输入的惊讶度,即损失对记忆的梯度 ### **记忆遗忘机制**:**Weight Decay** $$ M*t=(1-\alpha_t)M*{t-1}+S_t $$ - 基于关联记忆的损失函数,通过衰减系数 $\alpha_t$ 动态控制记忆保留比例,防止信息过载。 - 若数据与过去高度相关,则**保留更多历史记忆,即** $\alpha_t \to 0$,几乎不遗忘,完整保留历史信息; - 若数据变化较大,则**适当遗忘旧记忆,即** $\alpha_t \to 1$ ,完全清除历史记忆,仅依赖当前信息。 ![ltm-vis](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/ltm-vis.png) 上图说明了神经长期记忆(LTM)的**记忆更新机制**,包括: 1. 惊讶度(Surprise)(蓝色虚线) - 当输入数据与过去信息存在较大差异时(如时间步 t=5 附近),惊讶度上升。 - 惊讶度越高,表示当前信息更重要,应该被存储到长期记忆中。 2. 遗忘系数(Forgetting Factor)(红色点线) - 记忆随时间可能会被遗忘,但当数据较为稳定时(如时间步 t>10),遗忘系数降低,使得旧记忆更易被保留。 - 记忆更新时,遗忘系数决定了旧记忆保留的比例,值越大意味着遗忘越多。 3. 记忆状态(Memory State)(绿色实线) - 结合惊讶度和遗忘系数,展示了记忆的累积状态。 - 在 t=5 附近,由于惊讶度较高,记忆状态快速上升。 - 在 t>10 之后,记忆状态趋于平稳,表明系统适应了新数据,且遗忘旧数据的影响。 ### **记忆架构与检索** - 使用多层感知机($L_M$ ≥2)作为记忆主体,增强非线性表达能力。实验表明,深层记忆(如 4 层)在长序列任务中表现更优。 - 优化目标:对记忆的损失函数,最小化键值对的预测误差,使记忆模块学习键值对的映射关系。 - 检索记忆时使用无权重更新的前向传播。 ## Titans 架构 ### **架构组成** - **核心(Core)**:短期记忆,使用有限窗口大小的注意力处理数据,负责主要的数据处理流程。 - **长期记忆(Long-term Memory)**:神经长期记忆模块,负责存储过去的长时信息。 - **持久记忆(Persistent Memory)**:一组可学习但与数据无关的参数,编码任务相关知识。 ### **变体设计** - **记忆作为上下文(Memory as a Context,MAC)**:将记忆视为当前信息的上下文,根据输入分段检索长期记忆信息,与持久记忆一起作为注意力模块的输入,注意力决定长期记忆的更新和信息存储,测试时各部分参数学习和固定情况不同。适用于语言建模和常识推理任务。 ![Memory as a Context](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/Memory%20as%20a%20Context.png) - **门控记忆(Gated Memory,MAG)**:一个分支直接用输入更新长期记忆,另一个分支使用滑动窗口注意力,通过非线性门控机制结合两者输出,滑动窗口注意力作为短期记忆,神经记忆模块作为衰减记忆。 - 适用场景:通过门控机制灵活调整对短期和长期信息的依赖程度,在需要快速响应和处理短期信息,同时又要兼顾长期信息积累的场景中表现出色。 ![Gated Memory](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/Gated%20Memory.png) - **记忆作为层(Memory as a Layer,MAL)**:将神经记忆作为深度神经网络的一层,在注意力模块前压缩过去和当前上下文,但该设计可能限制模型利用注意力和神经记忆模块的互补处理能力。 - 适用场景:在资源受限的设备上进行简单的序列建模任务时,MAL 可以作为一种轻量化的解决方案,在不显著增加计算负担的情况下,为模型引入一定的记忆能力。 ![Memory as a Layer](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/Memory%20as%20a%20Layer.png) - **架构细节**:各模块使用残差连接,在 q、k、v 值投影后加入 1D 深度可分离卷积层,在最终输出投影前使用归一化和线性层门控。 ## 实验结果 - **语言建模与常识推理**:在不同规模模型的实验中,神经记忆模块在非混合模型中表现最佳,Titans 的三个变体在混合模型中优于其他基线模型,MAC 在处理长依赖数据时性能更好。 - **针在干草堆任务**:在单针检索的 S - NIAH 任务和更复杂的 BABILong 基准测试中,神经记忆模块和 Titans 变体均优于基线模型,MAC 表现突出,原因是能更好地处理记忆容量、具有深层非线性记忆和遗忘机制。 - **时间序列预测与 DNA 建模**:在时间序列预测任务中,神经记忆模块替换 Simba 框架中的 Mamba 模块后,性能优于包括 Mamba、线性和 Transformer - based 等架构的基线模型。在 DNA 建模任务中,神经记忆模块在不同下游基因组学任务中与现有架构相比具有竞争力。 - **效率与消融研究**:训练吞吐量方面,神经记忆模块比部分模型慢但具有更强大的记忆更新和存储机制,Titans(MAL)因使用高效内核比基线和记忆模块更快。消融研究表明 Titans 各组件对性能均有积极贡献,MAC 和 MAG 在不同任务中性能优于 MAL,体现了训练速度和表达能力的权衡。 这篇论文总体来说提出了一个创新的架构,在多个任务上展现出了优秀的性能,特别是在处理长序列数据方面。虽然存在一些实现上的挑战,但其提出的方法对于改进现有的神经网络模型具有重要的参考价值。 --- # AIUX06-Adaptive UI - URL: https://tophci.com/posts/241009-AIUX6 - Date: 2024/10/09 - Tags: AI, UX AGUI 绝不是新鲜事物,随着用户需求的变化和设备多样性的增加,「自适应」 UI 的探索早就开始了。 - 最初的探索主要在网页设计领域,2010 年左右兴起的响应式网页设计 ,通过使用灵活的网格布局、可伸缩的图像和 CSS media 属性,让网页内容能够自动适应不同尺寸的屏幕。 - 随着移动设备的普及,开发者需要确保应用能够在各种设备上的的体验一致。渐进增强(Progressive Enhancement)和优雅降级(Graceful Degradation)等理念应运而生,前者注重在基础功能上逐步添加高级功能,后者则确保在旧设备上也能正常使用。 - 近年来,人工智能和机器学习技术的进步为 Adaptive UI 带来了新的可能性。智能助手、推荐系统和个性化界面开始出现,根据用户的行为和偏好动态调整界面,提高用户体验。未来需要融合更多的智能技术,如预测分析、情境感知和自然语言处理,以实现更高级的个性化和自动化。最终目标是创造一个能够实时响应用户需求和环境变化的智能界面。 在 AGUI 的发展过程中,能够自适应更大范围的变化,并持续提供提供无缝且直观的交互体验,是我们追求的目标。下面分为环境、任务和个人这三个方面来分析。 ## Adaptive to Environment 从响应式网页到跨设备的体验一致性,自适应的 scope 在逐渐变大:**Container → App → 设备/平台 → 环境** 长久以来,人机交互的重点之一是围绕人的 “action” 设计具体的操作界面。设计师将用户可能的路径和行为,根据目标和各种信息组织起来,试图找到一条摩擦和阻力最小的通道,让用户走上这条路径,更快抵达目标。 但现实的人机交互是一个过程,发生在具体的环境中。例如,在停车场看到汽车,人们会倾向于认为驾驶者的意图是停车;而在公路上看到汽车,则可能认为驾驶者的意图是驾驶。 很多设计的实践都包含一个实验室般的假设:用户身处的情境都是差不多的,也基本不会变化。设计稿呈现的总是干净清爽、条理分明的「典型」case。但现实往往混乱得多,环境总是在变化——在聊天框打着字的时候电话打进来,在挑猫粮的时候想起今天请客的花销还没记账,又或者要在相册里找一张线索很模糊的陈年照片。 ![用户意图清晰度](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/%E7%94%A8%E6%88%B7%E6%84%8F%E5%9B%BE%E6%B8%85%E6%99%B0%E5%BA%A6.png) 虽然我们在设计中也很强调「场景」,会使用诸如 user story 帮助理解过程中可能会被忽视的很多现实细节,但设计始终依靠线性逻辑去分析,如同计划经济一般规划好各种主流程、子任务、分支情况、corner case,而无法穷尽所有的可能性组合。所以那条设想的最佳路径很难适应不同的人、场景、目标和任务,用户走着走着就会 offtrack。 ### **从人机交互到人境交互** 因为种种限制,我们的设计始终是 offline 的:提前完成设计,启动后就无法实时调整。在线性的设计中,智能相当困难,也许因为成本太高,因为可能性太多,或许设计者根本就不清楚用户此刻真正的意图。 但生活是 live,面对 live stream,生物演进出了低功耗的、自治的、实时响应、随时调整的机能。如果我们一直都在尝试让机器更智能,最终它们会拥有面对物理世界洪流的能力。 人跟机器交互的目的不是机器本身,也不是控制机器,而是借助机器获取更多的能力,去理解、适应和改造真实世界,或者是为了建造和沉浸在一个虚拟世界中。如果增强人类才是人工智能的目标,那么人机交互也理应逐渐从 界面 过渡到 人+机与环境交互。 没有无缘无故的爱,也没有无缘无故的恨。**让意图回归情境,让虚实在情境中融合。** ### **从语境交互开始** 情境可能是难以抵达的万里长征,而语境也许是已经显现的一条近道。 ChatGPT 横空出世后,写出能让模型给出满意回答的 prompt 让大家兴奋不已,提示词工程一夜之间成为科技从业者的必修课。 让我们来列一些常见的 prompt 模板: ```markdown # Role 资深科幻小说作家 ## Skills - 丰富的想象力和创造力 - 熟悉科幻文学和相关领域的知识 - 能够进行有效的故事结构和情节设计 - 出色的文字表达能力 ## Action 帮助用户构思和撰写科幻小说的内容,包括角色设计、情节发展、世界观构建等 ## Format 文本格式,包括但不限于故事大纲、角色简介、情节段落等 ## Constrains - 请避免使用已有的科幻小说中的知名角色或情节 - 确保内容符合逻辑,即使是在构建的虚拟世界中 ## Example 角色简介:艾尔是一名星际航行者,拥有读心术和时空穿梭的能力。他的使命是防止宇宙中的时间裂缝扩大,保护各个文明免受时空混乱的影响。 情节段落:在一次执行任务时,艾尔意外穿越到了一个未知的平行宇宙。在这里,他发现了一个正处于科技爆炸前夜的文明,但这个文明的发展方向却可能导致整个宇宙的毁灭。艾尔必须找到一种方法,既能引导这个文明走向繁荣,又不干预其自然发展的轨迹。 ``` ![Untitled](https://q7.itc.cn/q_70/images03/20240615/201206243a7145bcb7b7a6d5e93bac19.jpeg) 这些 prompt 框架其实都在做同一件事: > prompt = 最小化场景描述 现阶段 CUI 很受欢迎,其中一个原因是,对话的方式最能利用当下技术带来的意图识别能力提升。prompt 其实是请用户用语言尽可能详细地描述情境:你是谁,我又是谁,你在哪里,想做什么,到达什么目标,怎么一步一步做,要注意些什么,应该输出些什么。 好的 prompt 和模糊的 prompt,就是外显意图和内隐意图: ![good_prompt_vs_bad_prompt](https://assets-global.website-files.com/651599053c664397a48c84cd/652555f8ade90301ee2a8bc5_BOOKS.webp) Perplexity 创始人 Aravind Srinivas 说 > 我们最大的敌人不是 Google。问题在于人们天生不擅长提问。 如果人向另外一个人提问已经不容易,就更不要说向机器提问了。向人提问是发生在情境中的,双方共享很多信息,例如场景、目标、身份、文化、情绪感受等等。但是 CUI 中,原本不需要刻意描述的这些信息都是缺失的,所以需要人为去补充。 不过这肯定只是中间状态,我们需要能够与我们同在的智能体,它就像哆啦 A 梦一样,能够感知我们所感知到的事物,像朋友一样了解我们刚才做了什么,现在可能要做什么,然后从百宝袋里选出合适的一件。 ## Adaptive to Tasks GUI 会跟随当前任务而变化,这没什么大不了,甚至是所有 UI 都必须具备的特性:当用户当前任务是浏览信息时,展示的是图文、表格、商品介绍等各种信息。当任务切换到购物支付时,界面会变成确认商品和金额,支付方式选择和支付状态反馈等。GUI 天然就是面向任务的。 不过到目前为止,这些界面都需要人为提前设计好,界面和流程状态的对应关系都由代码严格定义。这是一出完全按照剧本精心编排的界面「戏剧」,它根据条件适应任务,但还不是真正意义的自适应。 比如,在传统的对话应用中,匹配意图和响应用户的基本流程中,提前分类好的意图,对应训练好的短语、可执行的动作和参数,才能生成合适的回答,基本上是个「一步三回头」的过程。 ![Untitled](https://cloud.google.com/static/dialogflow/es/docs/images/intent-match-forecast.svg?hl=zh-cn) [意图 | Dialogflow ES | Google Cloud](https://cloud.google.com/dialogflow/es/docs/intents-overview?hl=zh-cn) 生成式 AI 让我们看到了算法生成万物的可能性。GUI 自然也在「可生成」的范围内。当生成式界面逐渐成熟,自适应 UI 不再需要提前完全设计好,而是由模型根据当前任务实时生成。当中间的一些步骤不再需要用户参与构建,或者生成的成本低到可以先亮方案再决策,那么「一步三回头」可以升级为「三步一回头」——用户不需要那么多界面,给他们更多的结果吧。 当然这里有一个前提,不是所有的应用都是结果导向,至少我们可以这样区分: | 类别 | 描述 | 常见应用 | 关系类别 | | ------ | ------------------------------------------ | -------------- | -------- | | 收敛类 | 帮助用户从 A 到 B,目标收敛为一个点 | 工具类应用 | 滴滴司机 | | 发散类 | 带给用户持续的体验,体验即目标,不需要收敛 | 游戏和内容消费 | 地陪导游 | 游戏制作中的很多内容资产和互动机制都已经是自动生成的了,能自适应虚拟环境的 Agent 研究也是如火如荼。反观工具类应用,似乎比游戏慢了一个时代,没有状态机,没有 NPC,由逻辑条件限定的人机交互显得很局限。 但是这一切正在快速改变,在机器变得更聪明以后,值得重新把整个任务流程拿出来思考,人和机器协作的分工可以怎样调整、应该如何改变: | 环节 | 人 | 机 | 输出 | | ---------- | ------------------------ | ---------------------------- | ------------------ | | 意图判断 | 显示表达+隐式活动 | 理解情境,判断意图和目标 | 意图确认 | | 分析规划 | —— | 目标理解,任务拆分,制定计划 | 可选方案,演算结果 | | 结果预览 | 补充必要信息 | 生成结果预览并提出建议 | | | 选择确认 | 选择执行方案 | 执行 | 执行结果 | | 执行和反馈 | 查看结果,启动下一个循环 | 记录,形成记忆 | | 要支持新的人机分工,Adaptive UI 也需要同步演进。以前的界面,首要解决的是「接下来干什么」的问题,而未来更重要的是呈现计划、方案、决策点和结果。 在意图判断环节,我们看到基于大模型的 bot 正在慢慢变成一个「意图代理」,一个命令调度的中枢,将复杂、多样、内隐的意图转变为外显意图并与用户确认。比如在 Coze 中,bot 可以看作是对意图的强制分类,首页的 bot 可以 @某个 bot 直接开始对话,起到了意图分发的作用。 我们也看到了越来越多 Adaptive UI 的萌芽。 - 在 Apple Intelligence 加持下的 iOS/MacOS,加入了 App intent 机制,让平台可以根据用户的行为和 App 产生的信息,场景化地推送和突出展示用户关心的内容。 - Claude 中的 Artifacts 用于显示用户请求生成的重要的、独立的内容。不仅是简单的文本回复,而是可以交互、编辑的输出,包含代码片段、文档、网站、图片等,用户还可以编辑 Artifacts,能够实时修改和迭代 AI 生成的内容。 | **特性** | **对话回复** | **Artifacts** | | -------------- | ------------ | ------------------ | | **展示方式** | 消息文本 | 专用窗口 | | **内容类型** | 主要是文本 | 多种格式 | | **互动性** | 静态 | 完全可编辑 | | **内容大小** | 通常较短 | 较大且复杂的内容 | | **持久性** | 仅限聊天记录 | 可保存且有版本控制 | | **可视化** | 有限 | 丰富的选项 | | **导出选项** | 复制粘贴 | 多种导出方法 | | **上下文依赖** | 通常较高 | 自成一体 | 当然,还有很多问题等待我们去探索。比如什么样的任务适合出现 AGUI?需要多少 UI block?界面以什么交互方式为主?哪些情况需要动态界面、哪些情况需要不变的界面?如何解决历史检索问题?如何处理复杂的多步骤、多层级任务?对于生成准确度低、生成时间长的任务如何优化? ## Adaptive to End-user 前面提到 GUI 要能更智能地适应环节变化。有趣的是,**人既是与 UI 交互的主体,又是环境中最重要的变量**。即使环境中的其他要素一样,不同的两个人需要的界面可能不同,因为他们有着不一样的目标、技能水平、偏好等。 因此,AGUI 还应该适应个人。个性化,每个人的 UI 可能不一样,而且是功能层面而不是样式、内容层面的不一样。现阶段的个性化,还是以样式(换肤换主题)和内容(基于数据推荐)为主,还没有办法为每个人设计到达目标的路径——是坐缆车扶摇直上,是绕道采摘后抄小道,还是走上次走过的路? 个性化也许是最难的。它跟环境、任务相互影响,尤其需要对每个人的深刻理解。心理学中有一个概念叫做“心智化”,是一种理解和解释自己与他人心理状态的能力。它涉及对行为背后的心理原因进行推断和解释,包括渴望、信念、感受等心理状态。理解带来信任,而信任需要时间的沉淀。 理解的门槛之一是数据不足,对数据的获取和挖掘不足,对挖掘后的实时应用更加不足。除了数据,这个领域还需要很多对场景和对人的洞察,计算量也会上一个档次,还涉及很多安全、隐私和伦理的问题,让我们持续关注吧。 --- # 软件 2.0 和 GenAI 应用技术栈 - URL: https://tophci.com/posts/240905-software2 - Date: 2024/09/05 - Tags: Software2.0, GenAI > AI that can _create_ software would be the perfect lever on software itself, which in turn is the perfect lever upon the world. > 能够创建软件的人工智能将是软件本身的完美杠杆,而软件本身又是世界的完美杠杆。 > > [The Compound Lever: AI for Software Engineering | Sequoia Capital](https://www.sequoiacap.com/article/ai-compound-lever/) ## 软件 2.0 软件 2.0 是一种新的软件开发范式,主要利用机器学习算法和神经网络来构建自主系统。 [这个概念最早由 Andrej Karpathy 在 2017 年提出](https://karpathy.medium.com/software-2-0-a64152b37c35)。Andrej 师从 Geoffrey Hinton,在斯坦福李飞飞团队获得博士学位,主要研究 NLP 和计算机视觉,然后作为创始团队成员加入了 OpenAI,在 2017 年加入 Tesla 负责自动驾驶研发。 > 大脑的工作方式肯定不是靠某人用规则来编程。 ——Geoffrey Hinton ![software2.0](https://miro.medium.com/v2/resize:fit:1400/format:webp/1*5NG3U8MsaTqmQpjkr_-UOw.png) 软件 2.0 代表了软件开发方式的根本转变,不再需要人为编写程序的具体指令,而是通过定义期望行为和搭建神经网络架构,让计算资源自行创建符合要求的程序。与传统的软件 1.0 相比,软件 2.0 具有计算均匀、易于嵌入硬件、运行时间和内存使用稳定、高度可移植、灵活性强等优势。 | | **软件 1.0** | **软件 2.0** | | ---------- | ------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 开发模式 | 由人类手动编写具体代码。 | 人类教 AI 写软件,定义期望行为、搭建神经网络架构,并使用可支配的计算资源来搜索程序空间以寻找有效的程序。 | | 技术架构 | 代码用 Python、C++等语言编写的计算机显式指令组成。 | 代码用更抽象、对人类不友好的语言编写,例如神经网络的权重。 | | 特点与优势 | 规则驱动,程序员通过编写明确的指令来控制程序的行为。代码逻辑直观可理解。 | 数据驱动,通过优化评价标准来编写代码,优化可以找到比人类能写的更好的代码。灵活性强、易于嵌入硬件。 | | 应用场景 | 适用于需要明确指令和规则的场景。 | 适用于**可以重复评估、成本低廉且算法本身难以明确设计**的领域,例如图像、视频、声音、语音相关的内容。 | | 编译过程 | 将人工设计的源码(如.cpp 文件)编译为可以有效工作的二进制文件。 | 源码通常由两部分组成:1)定义了目标行为的数据集;2)给定代码大致结构,但是需要填充细节的神经网络结构。训练神经网络的过程,就是将数据集编译成二进制文件的过程,得到最终的神经网络。 | | 安全性 | 相对容易防御攻击 | 易受对抗样本(adversarial examples)攻击 | ### 典型案例 1:Midjourney Midjourney 作为人工智能图像生成领域的佼佼者,是软件 2.0 范式的典型代表。它充分体现了软件 2.0 的核心特征:基于神经网络和机器学习模型,通过高度抽象的方式实现复杂功能。用户只需输入文本提示词,Midjourney 就能生成令人惊叹的图像。Midjourney 的性能主要依赖于其训练数据,而不是传统的手写代码。通过不断学习和更新,Midjourney 持续改进其性能,体现了软件 2.0 的自动整合特性。 ### 典型案例 2:Tesla FSD ![FSD](https://www.notateslaapp.com/images/tesla-car-updates/2022.45/2022.45.10-FSD.png) 特斯拉的全自动驾驶(Full Self-Driving, FSD)系统同样可以被视为软件 2.0 范式的典型代表。FSD 依赖于神经网络和机器学习模型,而非传统的手写代码。FSD 版本 12.1.2 已经完全转向基于神经网络的端到端系统,通过大量的视频数据进行训练和优化。FSD 的开发和改进主要依赖于大量的真实世界数据,通过不断的学习和更新来提升其决策能力。FSD 通过持续的 OTA(Over-the-Air)软件更新来提升性能和增加新功能。这种高度依赖数据和自动优化,也是软件 2.0 的典型特性。 尽管 FSD 目前仍需驾驶员监督,但其通过神经网络实现的复杂功能和持续优化的能力,展示了巨大潜力和优势。 ### **端到端要素** 随着 AI 作为一种新的杠杆出现,我们正在从“学习代码”向“用自然语言指导机器”过渡。未来的 AI 应用,这三个要素会越来越重要: - 用户目标:终点决定起点,端到端应用会越来越主流,而准确定义用户目标是第一步 - 数据集:能反映目标行为的高质量数据集是成功的关键 - 程序架构:架构决定了准确性、效率、性能,开发过程从代码迭代变成架构调优实验 ## Modern AI Stack 虽然软件 2.0 时代([另外一种说法是 3.0](https://twitter.com/karpathy/status/1674873002314563584))还没完全到来,什么是 AI Native App 也众说纷纭,但是随着 LLM 的普及、成本快速下降,软件开发的整个 landscape 已经发生了很多变化。下面对生成式 AI 技术栈做一个简单的整理。 ![software2.0-table](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/software2.0-table.png) - **模型推理(API)**:调用 LLM 推理能力 - **MaaS**:一般都是 cloud providers,基于云计算的 LLM 服务框架 - **本地/端侧模型**:可本地部署的 LLM - **数据处理**:将数据从一个系统移动到另一个系统,并对数据进行转换。它连接数据源、数据存储和分析工具,实现数据的无缝流动。 - **ETL**:Extract, Transform, Load,即数据抽取、转换和加载。将数据从多个数据源中提取出来,进行清洗、转换和整合,然后将处理后的数据加载到目标数据存储中,以便进一步的数据分析和报告。 - **向量化**:Embedding 是将文本、图像、音频等数据转化成数值向量,以便映射成高维空间中的向量,以捕捉 token 之间的语义相似性。为模型的语义理解、相似性计算、降维处理、模型训练和泛化能力提供了基础。 - **向量数据库/RAG**:向量数据库用于存储大规模的向量数据集,为模型提供处理输入所需的信息。它提供高效的存储机制,以便快速存储和检索对话历史、知识库等信息。 - **服务编排**:编排器是一种管理和控制 LLM 的框架,协调各个组件之间的工作流程,旨在优化其性能和效率。Agentic Workflow - 应用托管:为 LLM 应用程序的部署和扩展提供支持的云平台 - **LLM 缓存**:内存中的数据结构存储,用作数据库、缓存、消息代理和流引擎,能降低计算成本和响应时延、优化 LLM 推理性能 - **安全和内容审核**:检测错误、有害内容 - **评估/监控**:评估、性能监测、测试、数据分析 构建一个完整的 AI 应用,会涉及到很多组件和流程,可以按照数据的流转把它们组织起来形成一个较为全局的概念([via](https://huyenchip.com/2024/07/25/genai-platform.html)): ![ai_stack](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/ai_stack.png) 红杉曾经整理了一个 [AI infra](https://www.sequoiacap.com/article/generative-ai-act-two/) 的堆栈图,可以帮助我们以更为全局的视角理解不同的 AI 技术栈在生态中所扮演的角色: [Generative AI’s Act Two | Sequoia Capital](https://www.sequoiacap.com/article/generative-ai-act-two/) 2023.9.20 ![GenAI Infra Stack](https://www.sequoiacap.com/wp-content/uploads/sites/6/2023/09/generative-ai-model-stack-5.png) 这张图发布已经过去快一年,整个生态变得更加丰富。AI 技术栈仍然在快速演进中,让我们持续关注。 --- # AIUX05-意图理解和交互模式演变 - URL: https://tophci.com/posts/240820-AIUX5 - Date: 2024/08/20 - Tags: AI, UX ## 信息获取方式的演变 ![aiux05-web](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/aiux05-web.jpg) > A cartoon-like drawing of a person working on the computer in front of a squared background --v 6.0 --style raw 回顾信息获取方式的发展,最早的门户网站通过目录和分类来提供信息,显著提高了信息的集中度,聚合了流量。不过用户需要手动浏览和查找,效率不高。后来搜索引擎出现,输入关键词即可匹配相关信息,大大提高了获取信息的效率。不过,搜索引擎依赖用户明确表达的查询意图,难以主动发现潜在需求。 推荐系统的普及再次改变了信息和人的关系。通过分析用户的历史行为和偏好,主动推送用户感兴趣的内容。这个过程不仅依赖技术的进步,比如大数据和机器学习的应用,还受到用户需求驱动。同时商业模式也参与塑造了这一轮变革,个性化推荐不仅提高了用户黏性,还为广告和其他商业服务提供了精准的投放渠道。 如果仅从技术角度考虑意图识别是否可行,也是一个有意思的视角: - 门户:意图难以获取,只能提供固定的目录让**人找信息** - 搜索:用短语表达意图,搜索 query 的意图识别成为关键 - 推荐:从历史数据中挖掘意图,让**信息找人。**由偏好+热度替代意图 对意图的可判断程度,是否也会促进产品形态和交互模式的转变? ![aiux05-search](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/aiux05-search.png) bot 是对意图的强制分类,首页 bot 是意图分发 ## 人机交互模式演变 下面让我们拉长时间周期,回顾一下不同的人机交互模式: | 缩写 | 全称(英文) | 概念/说明 | 交互特性 | 代表产品 | 出现时间 | 发展成熟 | | ---- | ----------------------------- | -------------------------------------------------------------- | ------------------------------------ | ---------------------------- | -------- | --------- | | CLI | Command Line Interface | 用户通过输入文本命令与计算机系统交互。 | 精确、快速,适合高级用户和专业任务。 | Unix Shell, Bash, PowerShell | 1960s | 1970-1980 | | GUI | Graphical User Interface | 使用图形元素(如窗口、按钮、图标)进行人机交互。 | 直观、用户友好,适合大众用户。 | Windows, macOS, GNOME | 1970s | 1990s | | LUI | Language User Interface | 通过自然语言文本或语音命令与系统交互,有时特指编程语言的接口。 | 适用于编程和复杂查询。 | SQL, Python | 1970s | 1980s | | CUI | Conversational User Interface | 通过自然语言对话进行交互,包括文本或语音。 | 自然、类似人类对话,支持多轮交互。 | Chatbots, Google Assistant | 1960s | 2010s | | VUI | Voice User Interface | 通过语音命令进行交互,系统通过语音识别和合成响应用户。 | 方便快捷,特别适合免提操作。 | Amazon Alexa, Google Home | 2000s | 2010s | | NUI | Natural User Interface | 基于自然动作和手势,如触控、手势控制、体感操作。 | 自然直观,支持多模态交互。 | Microsoft Kinect, HoloLens | 2000s | | 趋势: - xUI 承载的命令:从少到多到无限, - 输入的指令类型:从严格约束到自然语言到非语言输入, - 界面的信息容量:从信息密度低到信息密度高到无限 不同交互模式对意图的处理 - CLI:用文本指令集来高度约束意图,意图必须转换成少量的命令 - GUI:图形元素带来操作可能性的指数级增加。通过选中屏幕对象,缩小意图对象的范围,然后用 menu 来承载针对这个元素的可能操作 - NUI:多模态(声音/手势/眼动/控制器)再次带来意图的指数级增加,通过挖掘贴近本能和物理世界规律的指令集,用多样化输出来承载 - CUI/LUI:可理解社会意向性<4 的意图。CUI 在可用性上出现了倒退,因为用户不知道自己可以干什么,也不知道模型可以干什么——你需要对话,而且得相当聪明地对话 - NUI:AGI 超级智能可以对人的意图进行全方位理解和预判 如果用界面所能承载的操作可能性量级作为划分指标,实际上我们只经历了 CLI 和 GUI 两轮更替,而下一轮变革还没到来。GUI 之后,已经陆续出现了语音交互界面(VUI)、自然交互界面(NUI)、CUI(对话交互界面),但它们都没有发展为新的主流模式。我认为人机交互终极会朝着 NUI(No UI)演化,毕竟人跟世界交互不需要 interface,又或者说万物都是人和环境的 interface。GUI 依然主导,NUI 还遥不可及,那么接下来会是什么? 现阶段的设计是线性的,取需求场景中行动的最大公约数,人为挑选出操作的最佳次序和组合。如果要迎接下一轮的人机交互变革,需要界面能够承载更多的操作/意图,同时平衡认知负荷和可用性,最终能根据现实情境自适应。 ![aiux05-xui](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/aiux05-xui.png) 我们现在也许处在 AUI-Adaptive GUI 的发展时期。 --- # AIUX04-为什么意图难以捉摸? - URL: https://tophci.com/posts/240814-AIUX4 - Date: 2024/08/14 - Tags: AI, UX ## 意图在认知过程中的角色 意图是人类行为的内在动机和目的,通过复杂的心理和认知过程产生。 从感知到行动可能经历的一系列过程: 1. 感知(Perception): 通过感官接收外界信息。 2. 注意(Attention): 选择性地关注某些信息。 3. 解释(Interpretation): 对感知到的信息进行认知处理和理解。 4. 记忆(Memory): 将信息存储并在需要时提取。 5. 思考(Thinking): 对信息进行分析、推理和判断。 6. 决策(Decision-making): 基于思考结果做出选择。 7. 动机形成(Motivation formation): 产生行动的内在驱动力,包括**设定目标、形成意图**等。 8. 计划(Planning): 制定实现目标的具体策略和步骤。 9. 执行(Execution): 实施行动计划。 10. 监控和调整(Monitoring and adjustment): 在行动过程中持续评估进展并做出必要的调整。 意图代表了个体实现目标的心理承诺,为后续的行动计划提供方向和动力。意图定义了「要做什么」,而计划则详细规定「如何做」。其他环节也会持续影响意图,例如记忆提供相关经验和知识,情感影响意图的强度和持续性,注意系统帮助保持对意图相关信息的关注。 意图在人类认知过程中扮演着多重角色,它不仅影响我们的感知、决策和行为,还参与塑造自我认知和社会互动。 ## 内隐和外显 在认知科学中有一对概念:外显的(explicit)和内隐的(implicit/tacit)。 | **外显** | 受意识控制的,可外化的, 容易用语言表达 | | -------- | -------------------------------------------------- | | **内隐** | 自动的、无意识的,不可见或难以感知,难以用语言表达 | 从欲望到意图再到行动,越来越外显和明确,而意图可以看作靠近意识海平面的一层,时隐时现,变幻莫测。 ![iceberg](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/%E6%84%8F%E5%9B%BE%E5%86%B0%E5%B1%B1.png) 意图又可以分为外显意图和内隐意图。 | **外显意图** | 一般通过语言直接表达,比如具体的指令。在对话中识别意图已经很成熟。 | | ------------ | ---------------------------------------------------------------------------------------------- | | **内隐意图** | 没有直接表达,但通过环境和上下文可以推断的目的。例如,“我需要带伞吗?”隐含的意图是“查询天气”。 | 对人类来说,对话是一种交流思想的方式,而不仅仅是表达感觉或提供信息。例如,当一个人说“我很饿”,不仅表达了身体上的感觉,也表达了希望有人能帮他找到食物的愿望。当人们用语言进行沟通时,经常依赖隐含的意义。要实现与人流畅对话,机器必须能够理解这些潜在的含义。 这些原因会让意图变得模糊: - **语言的复杂和模糊:**词汇含义多样例如"苹果”,表达方式也多样,并且可能充满歧义 - **上下文**:意图的理解常常需要考虑语境,而不仅仅是单个句子 - **意图的多样性和层次**:用户可能同时表达多个意图,意图还可能有主次之分,此消彼长 - **个体感知认知和群体文化影响**:人类的感知选择性和认知结构会影响意图的表达和理解,不同背景的用户可能有不同的表达方式和意图倾向 - 意图会**随时间而变化**,甚至频繁变化 意图就是这样一个既重要又困难的领域,可能是捷径,也可能是歧途。在技术跃迁的时候,值得作为一个探索的起点。 --- # AIUX3-什么是意图 - URL: https://tophci.com/posts/240812-AIUX3 - Date: 2024/08/12 - Tags: AI, UX 意图(Intent)是人类行为的内在动机和目的,受需求与动机、认知、情绪、环境和社会文化因素的影响,通过复杂的心理和认知过程产生。意图往往通过对环境和自我状况的认知、评估和决策过程产生。 从前面的讨论中你应该感受到了这个词语的模糊,因为它跟很多词汇相互关联,尤其是代表“人机之别”的欲望和目标。 - Desire(欲望)是对某种结果或体验的强烈渴望,可能会激发目标的形成。 - Goal(目标)是一个人想要达到的最终结果或状态。 - Intent(意图)是为了实现目标而产生的心理**倾向和计划**。 > 欲望激发并引导设定目标,再由目标形成具体意图。 在很多语境下,这几个词也许代表类似的含义。在人机交互的背景下,Goal 肯定处于核心位置,不过它在交互的过程中相对清晰、稳定,不像 intent 和 intention 那样充满歧义和可能性。还有一些跟意图相近的词汇: | **英文词** | **中文翻译** | **释义** | **何时使用** | **强调和侧重** | **例句** | | ---------- | ------------ | ---------------------- | ------------------ | ---------------- | --------------------------------------------------- | | Intent | 意图,目的 | 想要做某事的目的或计划 | 日常对话,法律,商业 | 强调决心和明确性 | 我没有伤害你的意图(intent)。 | | Intention | 意图,打算 | 个人的计划或打算 | 日常对话,个人计划 | 强调个人意愿 | 我原本的意图(intention)是今天完成报告,但时间不够。 | | Purpose | 目的,宗旨 | 行动背后的理由或动机 | 正式场合,长期目标 | 强调深层次理由 | 我们公司的宗旨(purpose)是为客户提供最优质的服务。 | | Aim | 目标 | 明确的方向或目标 | 短期,具体目标 | 强调方向性 | 我们的目标(aim)是在下个季度提高销售额 10%。 | | Goal | 目标 | 想要达到的结果 | 长期,挑战性目标 | 强调最终结果 | 我的人生目标(goal)是成为一名成功的企业家。 | | Objective | 目标 | 具体、可衡量的目标 | 商业,正式场合 | 强调可衡量性 | 本次会议的目标(objective)是制定下一年度的营销策略。 | | Motive | 动机 | 行动背后的原因或驱动力 | 心理分析,犯罪调查 | 强调心理因素 | 警方正在调查嫌疑人的作案动机(motive)。 | | End | 目的,终点 | 最终目的或结果 | 正式语境,哲学讨论 | 强调最终结果 | 和平是我们所有努力的最终目的(end)。 | 意图更多反映的是一种**倾向**,而不是现实。因为它既不像欲望、动机那样潜于意识之下,又不如行动那样显著、确定,意图的「倾向」特点也让它具备了承上启下的作用,连接感知与行动,连接心念世界和现实世界。 **在 NLP 领域,意图是用户通过语言表达的核心目的或目标**。它反映了用户在特定对话中的需求、请求或想要执行的任务或操作。([What are intents in LUIS - Azure AI services | Microsoft Learn](https://learn.microsoft.com/en-us/azure/ai-services/luis/concepts/intents)) ![Untitled](https://cloud.google.com/static/dialogflow/es/docs/images/intent-match-forecast.svg?hl=zh-cn) 判断意图,有点像点球大战中的守门员,需要提前预判对方的行动,太早了不行,太晚了也不行。 ### --- # AIUX02-为什么关心意图? - URL: https://tophci.com/posts/240801-AIUX2 - Date: 2024/08/01 - Tags: AI, UX 意图是一个值得长期关注的领域,而类比是解释令人头疼问题的好的开始。 ## **人和机器的分水岭** 人和机器有何不同? 就能力来说,以前我们觉得两者相距甚远,人拥有机器所没有的自主意识、情感和丰富的创造力。但是生成式 AI 动摇了我们关于「创造力专属于人类」的自信。机器的能力无疑会不断增强,越来越接近 AGI 的蓝图。如果把视角转换一下,不去看未来的相似,而去寻找源头的不同,会发现人和机器的一个核心差异:(演化发展的)动力。 ![Vector_AB_from_A_to_B.svg.png](https://cdn.prod.website-files.com/625e75c5d17b9b8f0220b7bb/63ff0b85fc1d3ee51b655715_342px-Vector_AB_from_A_to_B.svg.png) 人:向量一般的存在?AI:几乎无限的标量? 人作为基因的复制机器(如果你同意道金斯的学说),生来就带有强烈的「倾向」:生存,繁衍,满足欲望。围绕这种「倾向」发展出了很多能力和复杂机制,比如目标、意图、思考、语言,让人类更好地生存下来。那么,机器的演化动力是什么? 令人欣慰的是,机器暂时还没有明确的欲望、感觉和意图——更大更快更强,那是人类赋予的。 意图/动力/欲望,肯定不是人和机器的唯一区别,但属于人机分水岭中重要的一段。人类的意图通常伴随着情感和情绪,是重要的心理活动。情感反映了人对事物的主观体验和价值判断,而意图还包含创造性和自发性,这是机器难以完全模拟的。 大模型已经攻克了传统的图灵测试,而 GPT-4o 的发布,让我们在 2024 年就体验到了电影 Her 中的自然情感语音交互。但是从意图层面来说,人和机器的鸿沟依然巨大:人的意图复杂难表,而大模型如果有意图的话,它就是 predict the next token 🤘🏻。 ## **人机交互的窄门** 意图一直是人机交互中难以突破的窄门。 有效意图识别是正确响应用户需求的前提,是回答用户问题的关键步骤。理想情况下,用户用直白的话语表达意图,或更直白地操作界面,选择那些可以实现意图的操作。但这只是人机交互中的临门一脚,而在球传到禁区之前的大部分时间里,我们并不清楚用户在干嘛、想干嘛、想怎么干。 在更大范围内准确识别⽤户意图,包括在多模态场景中理解意图,深⼊捕捉⽤户的兴趣和偏好,发现未知需求,可以形成更个性化、更高效和更自然的交互,提⾼现有服务的质量。 在新技术的加持下,意图理解是否有机会成为人机交互的一个突破点? ## **通往意识圣杯的分岔小径** 在人类还没搞明白大脑运作的原理,没研究清楚意识、智能、心智这些问题之前,意图可能是通往目标的一条小径——不一定走得通,但引人入胜。也许意图就像一个中间层,类似古人发明「以太」这个概念来帮助理解物理世界的传播介质。 ![cat in dark forest](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/cat%20in%20dark%20forest.png) > a black and white drawing of Cat in a dark forest, in the style of dramatic somber, religious works, lush and detailed 曾经,意图很难捉摸,在自然语言处理领域是一个难题。LLM 出现后,NLP 领域的意图识别一下变得触手可及,让研究者可以望向下一个目标:非语言的意图识别。 在新技术的背景下,有哪些可能的突破点? --- # 换个表达,一眼看出 GPT-4o 很强 - URL: https://tophci.com/posts/240725-gpt-4o-radar-vis - Date: 2024/07/25 - Tags: AI, vis, 可视化, ChatGPT, data 上周 OpenAI 发布 GPT-4o 时给出了一组评测数据,看得费力。 ![gpt4o-score-bar](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/gpt4o-score-bar.png) [数据来源](https://openai.com/index/gpt-4o-mini-advancing-cost-efficient-intelligence/) 尝试用雷达图重绘了一遍,虽然不严谨(类别数据不应该用反映连续趋势的曲线?),但可读性应该是提升了一些。 ![GPT4o-score-vis](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/GPT4o-score-vis.png) (但是鼠标 hover 时候又带来了遮挡问题 🥹) --- # [论文笔记]多模态瑞士军刀模型 4M-21 - URL: https://tophci.com/posts/240709-paper-4m-21 - Date: 2024/07/09 - Tags: AI, paper, 多模态, model 💡 [4M-21 Paper](https://arxiv.org/abs/2406.09406)(2024) | [4M Paper](https://arxiv.org/abs/2312.06647)(2023) |[Demo](https://huggingface.co/spaces/EPFL-VILAB/4M) | [Code](https://github.com/apple/ml-4m/)|[Website](https://4m.epfl.ch/) Author: EPFL(洛桑联邦理工学院)& Apple @ Jun 2024 ## TL;DR 4M-21 是苹果开源的一个多模态、多任务的视觉模型,可以采用任意模态组合作为输入,预测其他模态的输出。模型支持 21 种模态,包括 RGB 图像、几何信息、语义信息、边缘特征、特征图、元数据和文本等。该模型在大规模多模态数据集和文本语料上进行联合训练。 | **研究亮点** | **用单个视觉模型任意转化多个模态**,完成数十种不同的任务,为多模态交互带来新的可能性。 | | ------------------ | ------------------------------------------------------------------------------------------------------- | | **研究动机** | 提高效率:不用为每个任务分别训练模型;增强模型多任务处理能力;Any-to-any learning:环境感知和多感官融合 | | **研究难点** | 多模态融合,任务选取,多任务导致性能下降 | | **研究方向的启发** | 多模态实时预测,端侧模型能力提升,从模态角度辅助交互场景分类和建模 | ![4M enables training a single model on tens of diverse modalities](https://storage.googleapis.com/four_m_site/images/4M_modalities.svg) 论文摘要 > 当前的多模态和多任务基础模型,如 4M 或 UnifiedIO,显示出有希望的结果。然而,它们接受不同输入和执行不同任务的开箱即用能力,受到它们接受训练的模态和任务的数量(通常很少)的限制。在这项工作中,我们开发了一个任何到任何的单个模型,在数十种高度多样化的模态上进行联合训练,并在大规模多模态数据集和文本语料库上进行协同训练。这包括对图像和文本以及几个语义和几何模态、最近最先进的模型(如 DINOv2 和 ImageBind)的功能图、专家模型(如 SAM 和 4DHumans)的伪标签以及一系列新的模态进行训练,这些新的模态允许与模型交互的新方式来引导生成,例如图像元数据或调色板。这一过程中的一个关键步骤是在各种模态之间进行离散标记化,无论它们是否像图像、神经网络特征图、向量、结构化数据(如实例分割或人体姿势)、可以表示为文本的数据等。 > > 通过这种方式,我们展示了训练一个模型来解决至少比现有模型多出 3 倍的任务/模态的可能性,并且不损失性能。此外,这使得我们可以实现更精细、可控的多模式生成能力,并能够研究针对多样化数据和目标进行训练的模型如何融入到一个统一的模型中。我们在三个参数和不同的数据集上对训练进行了扩展。多模式模型和训练代码可以在 https://4m.epfl.ch/ 上获得。 ## 4M-21 的多模态能力 视觉模型需要处理各种感觉输入,如图像、三维和文本,并完成多样的任务。4M-21 在 4M(massively multimodal masked modeling 大规模多模态掩码模型) 基础上扩展了多模态能力: - 可控多模态生成:从给定的输入模态生成所有模态,并且文本理解能力也得到增强,可以实现更具几何形状和语义合理性的生成。 - 多模态检索:模型学习了将不同模态映射到语义空间的能力,能预测全局嵌入,而不是直接使用这些模型的原始特征。这解锁了 DINOv2 和 ImageBind 模型无法实现的检索功能,例如以任何模态来检索 RGB 图像或任何其他模态。此外,可以组合多个模态以预测全局嵌入,从而更好地控制检索。 - 细粒度多模态编辑:可以执行各种多模态编辑任务,例如进行语义编辑或基于几何条件的填充。某些模态(如语义分割或深度图)可以作为生成过程中的中间步骤,为后续模态的生成奠定基础。 优势: - 跨模态学习:可以同时处理多种类型的数据,能够更好地捕捉到不同类型数据之间的关系。 - 多模态生成:在生成高质量图像时更加灵活和准确。 - 强大的泛化能力:模型经过大规模的预训练,泛化能力很强,在各种视觉任务中都表现良好。 ## 训练方法 先将所有模态通过特定模态的分词器转换为离散标记序列。在训练过程中,从所有模态中随机选择一部分 token 作为输入而另一部分作为目标,训练模型从一个子集预测另一个子集。 ### 1. Modalities 模型支持 8 类共 21 种模态:RGB、几何、语义、边缘、特征图、全局特征、文本和元数据 ![4m5](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/4m5.png) - RGB:包含分词版本和像素版本的 RGB 图像。使用 PyPalette 从不同数量的颜色中提取了色板。 - Geometric:包含表面法线、深度和三维人体姿势与形状,提供了场景几何的重要信息。前两项使用了全数据模型进行伪标记。对于三维人体姿势和形状,则利用了最新的 4D-Humans 模型。 - Semantic:包含语义分割和边界框来捕获场景语义,并使用模型进行伪标记。此外还从 SAM 中提取了伪标签作为 SAM 实例。 - Edges:边缘承载有关场景布局和语义的重要信息。Canny 边缘由 OpenCV 从 RGB 图像中提取。由于 Canny 可能包含低级信息(例如阴影边缘),因此还加入了从 SAM 实例中提取的边缘以获得更具语义的边界映射。 - Feature map&Global feature:从 CLIP、DINOv2 和 ImageBind 中提取 embeddings,因为它们展示了强大的迁移学习和检索能力,能够蒸馏出场景的有用语义表示。 - Metadata: - 语义元数据:从边界框、姿势和分割映射中提取出人群密集度分数,SAM clutter 分数,COCO clutter 分数,COCO 实例多样性,对象分数,步行指数,语义多样性,标题长度等。 - 几何元数据:几何复杂度,遮蔽分数。 - 图像处理元数据:图像高度和宽度,亮度,对比度,饱和度,色彩丰富度,图像熵。 - Text:Caption(CC12M 和 COYO700M),Web Text(C4),embeddings(T5-XXL) ### 2. Dataset 训练新的模型首先要解决数据集的问题。现有多模态数据集一般都数据量较小且不够多样,研究者以图像和文本对作为基础,用伪标签网络来创建一个多模态对齐的大规模预训练数据集。 ![4m-6](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/4m-6.png) ### **3. Tokenization** 这是模型训练的关键步骤:**不同模态,统一编码**。 将各种模态(特征图、实例分割或人体姿态、文本等)转换为序列或离散 tokens,统一为一种通用的表示,并在 transformer 架构基础上训练。这样一来,**模态之间的映射关系,就转换成了从一组 token 序列预测另一组序列**。 https://storage.googleapis.com/four_m_site/videos/4M_method_figure.mp4#t=25.9 使用的 tokenizer 包括三类: - VQ-VAE: - 使用扩散模型作为解码器来训练 VQ-VAE:针对细节丰富的图像类模态,如 RGB、法线、深度、边缘 - ViT 解码器:其他图像类模态,如语意或实例分割、特征图 - MLP:针对 3D 人体姿态或图像嵌入类的模态,得到一维序列 - WordPiece:针对文本表示的模态,如标题或元数据 ![4m-8](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/4m-8.png) tokenization 的作用: - 所有任务都可以使用交叉熵损失(cross-entropy loss)作为 token 的分类问题进行建模。这提高了训练稳定性,可共享参数。 - 模型可以迭代地预测 token,使生成性任务更易于处理,要么自回归,要么通过渐进式 unmasking。 - 减少计算复杂度,例如将密集模态压缩为稀疏标记序列来压缩,降低了内存和计算需求。 ### 4. 训练 训练目标是得到多模态掩码预测模型。模型使用 Transformer 结构,通过输入模态的 token 序列,预测 DINOv2 和 ImageBind 的全局嵌入。这意味着模型学习了将不同模态映射到语义空间的能力。 **编码** 编码器是一个标准的 Transformer 编码器,但具有针对每种模态学习输入嵌入层的功能,以将标记索引映射到向量。~~对于特定模态中的每个标记,添加一个可学习的模式嵌入,并为序列或稠密模式(2D)添加 sin-cos 位置嵌入。~~为了便于迁移学习,编码器额外设计了使用可学习的分块线性投影接受 RGB 像素的能力,使其可以用作视觉 Transformer 的骨干,从而可以作为迁移学习中的 ViT 背景知识。 **掩码策略** 从所有模态中采样并编码一小部分可见标记,使用了多模态随机和跨度掩码策略来遮挡输入和目标标记,并训练模型执行跨模态预测编码。 ![(左):4M是一个用于训练多模态和多任务模型的框架,这些模型在多个类似图像的模态(如RGB、深度等)和序列模态(如标题和边界框)的标记化版本上运行 。(右)4M训练目标包括训练Transformer编码器-解码器,以基于另一个随机的标记子集来预测随机选择的标记子集,该标记子集是从所有模态中采样的。](https://prod-files-secure.s3.us-west-2.amazonaws.com/ee4bdee6-9618-4419-9926-273abc2315ee/e8e5c403-8a5e-4f5a-b299-47965528bb20/4M_pre-train_objective.gif) **训练过程** 训练分为两个阶段:在更大的图像数据集上进行 4M 预训练,然后在一个包含更多模态的小型数据集上进行微调。 **多模态链式生成** 经过训练的 4M 模型可以用于从其他模态的任何组合生成任何模态,并且能够从部分输入执行预测。当从一个模态预测多个模态时,可以逐个预测,始终将完全生成的模态循环回输入,并根据它们来调节后续模态的生成。 ![4m-chained-multimodal-gen](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/4m-chained-multimodal-gen.png) 链式多模态生成。使用 MaskGIT 解码方案从部分 RGB 输入以及边框中生成一张完整的 RGB 图像,然后对标题进行自回归生成。通过串联可以预测多个模态。这与独立地从原始条件中为每个模态生成不同,并且每个生成输出都与输入一致。可以使用解码器将生成的标记转换回图像、文本和其他模态。 --- # AIUX01-对话型界面(CUI)和图形界面(GUI)的特点比较 - URL: https://tophci.com/posts/240507-AIUX1 - Date: 2024/05/07 - Tags: AI, UX 随着生成式 AI 技术的突破,对话式界面变得越来越常见/重要。我们可以用自然语言与计算机交流,而不是像以前那样必须使用鼠标和键盘输入指令,这使得交互更加方便和高效。 但是如果真正开始尝试在常见的应用中引入对话式交互,甚至是用它来替代图形界面(GUI),我们不得不开始思考:对话式界面(CUI)与图形用户界面(GUI) 有什么不同?在当前的技术能力下,到底如何处理两者的关系? 00 尝试用一个表格来对比两者的特点,可以作为日后设计思考的基础和参考。 | | CUI-对话型界面 | GUI-图形界面 | | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Term | Conversational User Interface | Graphic User Interface | | 定义 | 用户通过输入文本或语音命令与系统对话,系统以相同的方式回应。特别依赖自然语言处理技术 | 用户通过图形和视觉元素与电子设备交互。这包括窗口、图标、按钮、菜单等,用户通过点击、拖拽等方式与设备进行交互。 | | 发展历史 | 命令行 | WIMP(窗口/图标/菜单/指示器) | | 核心对象 | message | visual element | | 基本单位 | 人/角色/群 | 控件 | | 内在逻辑 | 时间顺序,语意驱动,快捷方式 | 空间关系,结构/分类,因果 | | 类比 | 🐾 shortcut | 🗺️ map | | 心理模型 | 人与人对话 | 选中对象 → 施加操作 | | 局限 | - 以文字为主,表现取决于 NLP 能力
- 缺乏结构和二维空间的映射
- 遵循时间顺序,回溯、沉淀困难
- 缺少对结果的预期
- 缺少交互方式,难以处理复杂任务 | - 容易信息过载且难以压缩
- 需要区分信息和操作
- 需要预先定义很多表现和行为
- 设计不佳容易导致可用性问题
- 在空间小的设备上受限 | | 优势 | - 信息密度大且可用语言压缩
- 可充分利用 llm 能力
- 交互更自然灵活,尤其在特定场景例如驾驶
- 容易与设备、界面解耦 | - 直观,易理解,用户熟悉
- 可充分利用二维空间
- 容易表达空间结构
- 容易承载多模态信息
- 可定制程度高
- 交互能力多样
- 包容性/Accessablity 较强 | | 适用场景 | 快速交互和多任务处理的场景,如智能家居控制、车载助手、查询服务等 | 需要展示大量信息和功能,如办公软件、视频编辑、游戏等 | | 典型应用 | ChatGPT | App Store | 另外再记录一些有意思的问题: - 在 llm 能力突破后,CUI 的重要性快速提升,会出现哪些新的设计问题和设计机会? - CUI 和 GUI 优缺点在哪些情况下会被放大? - 哪些场景、任务适合 CUI/GUI? - Agent 应用应该以哪种方式为主? - 哪种交互方式未来会占据主导?或者会如何融合演进? 如果你有任何想法,欢迎与 00 一起探讨~ --- # 设计对抗人工智能:2024 年设计与科技报告 - URL: https://tophci.com/posts/240312-design-against-ai - Date: 2024/03/12 - Tags: AI, Design 3 月 12 日,科技设计领袖前田约翰(John Maeda)发布了《2024 Design in Tech Report(2024 科技中的设计报告)》。今年的主题是 **Design Against AI(设计对抗人工智能)。** ![youtube cover](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/youtube%20cover.jpeg) 有趣的是,2023 年的主题是 Design and Artificial Intelligence (设计与人工智能)。 历次的报告可以在 https://designintech.report/ 网站中查看。 前田约翰(John Maeda)是微软设计和人工智能副总裁。 他是美国的[技术专家](https://en.wikipedia.org/wiki/Computer_technologist)和[设计师](https://en.wikipedia.org/wiki/Designer),他的作品探索了商业、设计和技术的融合,曾被《福布斯》杂志评为“学术界乔布斯”。 ![john-maeda](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/john-maeda.jpg) 在此之前,Maeda 于 2020 年-2022 年担任 [Everbridge](https://en.wikipedia.org/wiki/Everbridge) 的首席技术官。2008 年-2013 年 [任罗得岛设计学院](https://en.wikipedia.org/wiki/Rhode_Island_School_of_Design)院长。[在](https://en.wikipedia.org/wiki/John_Maeda#cite_note-4)此之前,他是[麻省理工学院媒体实验室的研究教授,](https://en.wikipedia.org/wiki/MIT_Media_Lab)领导了计算设计,低代码/无代码和创意商业的进步。他的个人网站是 https://maedastudio.com/。 2024 年的报告,探讨了在当前这个时代,我们对待人工智能的不同态度:抗议、竞争还是合作,以及设计在这个过程中如何发挥作用,特别是在伦理、公平性方面。报告强调了计算能力的理解、工作方式的变化以及设计在塑造关键价值主张方面的角色。 ![SCR-20240312-rbgi](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/SCR-20240312-rbgi.png) 主要要点如下: - 报告提出了一个核心问题:我们应该如何看待人工智能——是反对、竞争还是合作。报告认为,这个问题目前还没有定论。 - 报告分为七个部分,介绍了作者通过将过去的设计与科技报告与 AI 结合进行解读的新方法,并提出了几个关键点,包括**理解计算、工作方式的转变以及设计在确立伦理价值方面的重要性**。 - 讨论了 AI 的不可预测性,以及它在设计过程中的应用,如语音界面的重要性和对话设计的新兴趋势。 - 强调了设计思维的变化,包括经典设计、设计思考和计算设计,并探讨了 AI 对这些领域的影响。 - 分析了远程工作的兴起、疫情对人们的影响以及设计师如何通过设计应对这些挑战。 - 最后,报告呼吁更多关注于与 AI 合作,而非竞争或抗议,并探索 AI 如何帮助实现更公平、包容的设计解决方案。 报告中最为启发 00 的一点是对人机关系的思考。 Maeda 引述了斯坦福数字经济实验室主管 [\*\*Erik Brynjolfsson](https://digitaleconomy.stanford.edu/people/erik-brynjolfsson/)\*\* 的一篇文章,认为我们要去努力寻找和区分这三类任务: - 只有人类能完成的 - AI 可以帮人类自动完成的 - 人类只有在 AI 帮助下才能更好完成的 ![SCR-20240312-rcpp](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/SCR-20240312-rcpp.png) 特别是未来会涌现出一批在 AI 帮助下才能更好完成的任务,这是设计师、人机交互领域的全新机遇。 正如 Maeda 在视频中所说,“对任何自称人工智能专家的人都要有点怀疑,因为在日新月异的东西上很难成为专家。” 处在新时代的开端,设计除了要跟上技术发展的脚步,还需要更加开放和多元,理解计算,但始终为“人”代言。 推荐大家进一步阅读。 报告网站:https://designintech.report/ 视频解读:https://www.youtube.com/watch?v=5zFOSQDpby8 --- # 苹果电脑如何使用 Chat with MLX 在本地部署 LLM 实现 RAG - URL: https://tophci.com/posts/240310-chat-with-mlx - Date: 2024/03/10 - Tags: AI, model, MacOS, RAG > Chat with your data natively on Apple Silicon using MLX Framework. 先上总结: 1. Chat with MLX 是目前对 M 芯片支持较好的本地 LLM 框架 2. 安装简单,一个命令即可启动 3. 目前支持的开源模型还比较少 4. RAG 任务实现效果不理想(尤其是中文),需要进一步调优 👩🏻‍💻 大概半个月前,英伟达推出 Chat With RTX,可在本地部署开源模型,配置要求至少 8GB 的 RTX 30 或 40 系列显卡。根据以往经验,苹果党可能要等好几个月(乐观了)才有类似的待遇。 不过,已经是 2024 年了,在 AI 加持下,这个等待时间变成了半个月。Chat with MLX-开源的苹果电脑专属大模型框架也出来了。 ![https://github.com/qnguyen3/chat-with-mlx](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/chat-with-mlx.png) https://github.com/qnguyen3/chat-with-mlx Chat with MLX 是一个开源项目,由 OpenAI 前员工开发,它提供了一个基于 Apple Silicon 硬件的原生聊天界面,利用 MLX 框架来实现与数据的交互。 之前像 Ollama 、LM Studio 等也可以在 Mac 本地部署 LLM,但因为没有对苹果芯片做优化,参数量大一点的模型就跑不起来。 现在有了 MLX,苹果电脑也可以比较轻松地实现本地 RAG 检索。 Chat with MLX 支持的模型包括: - Google Gemma-7b-it, Gemma-2b-it - Mistral-7B-Instruct, OpenHermes-2.5-Mistral-7B, NousHermes-2-Mistral-7B-DPO - Mixtral-8x7B-Instruct-v0.1, Nous-Hermes-2-Mixtral-8x7B-DPO - Quyen-SE (0.5B), Quyen (4B) - StableLM 2 Zephyr (1.6B) - Vistral-7B-Chat, VBD-Llama2-7b-chat, vinallama-7b-chat ## 安装 Chat with MLX 支持 pip 安装,真是省事不少。 建议按照 Github 上面手动安装的命令,新建 python 虚拟环境,并开启科学上网模式,在命令行输入以下命令安装: ```bash git clone cd chat-with-mlx python -m venv .venv source .venv/bin/activate pip install -e . ``` 因为我之前已经把 pip 源改成国内的镜像,安装依赖时速度比较快。 这一步没有遇到什么问题,安装成功后,一个命令就可以启动服务。 ```bash chat-with-mlx ``` 这时候需要继续科学上网,启动时程序需要用 huggingface_hub 加载文件。 不过不用担心,这一步是自动完成的。联网加载完毕后,会打开本地服务的窗口。 ## 使用 ![03-SCR-20240305-kknd](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/03-SCR-20240305-kknd.png) 虽然已经部署成功,但这时候还不能正常使用,因为还没有下载模型。 目前可供选择的模型还比较少,我先选了比较小的 google/gemma-2b-it 模型,选择后点界面右侧的“load model”,后台会开始下载模型到本地。 模型就绪以后,可以在面板中的 Dataset 选择文件类型,这里我选择 Files,然后上传了 SD3 的论文。上传好以后,还需要点右侧“Start Indexing”建索引。完成以后,就可以开始跟模型对话了。 ![06-SCR-20240306-tnnh](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/06-SCR-20240306-tnnh.png) 先试着让模型总结论文,看起来还行,但好像过于 general,说了等于没说。 ![07-SCR-20240307-jzrs](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/07-SCR-20240307-jzrs.png) 换成中文,问一个论文中更具体的问题,就开始摇头了。也许是模型小,能力不足?接下来换成 mistrial-7b 试试。 如果之前没有下载过模型,还是要等待一阵。下载好以后记得点 load model 按钮。 继续用中文提问,回答也是很简短。不过已经是在用 dataset 中的内容在回答了。 ![09-SCR-20240306-tntn](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/09-SCR-20240306-tntn.png) 令人头疼的是,模型依然时不时罢工。是不是模型能力和 RAG 参数设置有问题呢? 我试着把论文上传给 Claude,但是文档超过大小。压缩 pdf 大小到 10m 以下再上传,又提示 `Message is 14% over the [length limit](). Try replacing the attached 1 file with smaller excerpts.`。 无奈之下,只好试试 kimi,真是没有对比就没有伤害(莫名其妙成了广告时间)。 ![11-SCR-20240307-khcu](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/11-SCR-20240307-khcu.png) ### 结论 看来本地 RAG 还是不太成熟,需要寻找、对比更擅长中文任务的模型,并且要研究什么样的参数更适合。也许问题出在语料的切片和向量化,但是目前还不支持自定义配置。 1. Chat with MLX 是目前对 M 芯片支持较好的本地 LLM 框架 2. 安装简单,一个命令即可启动 3. 目前支持的开源模型还比较少 4. RAG 任务实现效果不理想(尤其是中文),需要进一步调优 结论:**再等等** --- # 看完 Sora《Video generation models as world simulators》的感受 - URL: https://tophci.com/posts/240216-thoughts-about-sora - Date: 2024/02/16 - Tags: AI, sora, model 看完 Sora 的各种视频,确实吓到了,赶紧找来 OpenAI 的原文来看看 AI 又进化了多少。 https://openai.com/research/video-generation-models-as-world-simulators ![](https://images.ctfassets.net/kftzwdyauwt9/1d2955dd-9d05-4f33-13073dc9301d/8dc0bae8cb98054d083ab3cc3ade6859/figure-patches.png?w=3840&q=90&fm=webp) ### 1. 这可比 AI 视频大多了 视频效果只是结果,结果的惊艳意味着能力的突破。比视频效果更炸裂的是,模型已经从语意理解(甚是跳过语意理解)跨越到环境理解。 ### 2. 环境视频数据是训练智能的捷径(或弯路 from Yann LeCun's view) 引用一下最关键的一句话: > scaling video generation models is a promising path towards building general purpose simulators of the physical world. > 缩放视频生成模型是建立物理世界通用模拟器的一条有前途的道路。 意料之外,情理之中。 人如何构建一个世界?如果用 unity unreal 搭过场景或游戏关卡的 level,就大概能理解 OpenAI 的思路了。 ### 3. Transformer 架构的潜力原来还很大 之前还以为 Transformer 架构已经被研究、开发得差不多了,没想到在多模态人家还是潜力股。 Transformer 真的就是个变形金刚,万物皆可转换,可供性比我想象要大多了。 ### 4. Sora 是 LLM 和扩散模型最成功的联姻 > At a high level, we turn videos into patches by first compressing videos into a lower-dimensional latent space, and subsequently decomposing the representation into spacetime patches. > 在高层次上,首先将视频压缩到低维的潜在空间中,然后将表示分解为时空补丁,从而将视频转换为补丁。” 胡乱猜想,「缩放」是不是多模态未来一段时间内的训练范式? 所谓缩放的大致过程:合成数据集 👉 降维成序列 👉 潜空间变换 👉 升维变换(突破输入数据的维度) ### 5. 语言依然是通往智能的捷径 正如 CLIP 模型是文生图的桥梁,连接起语意和图像。Sora 也得益于 DALL·E 3 级别的语意理解。 > 训练文本到视频生成系统需要大量具有相应文本字幕的视频。我们将 DALL·E3 中介绍的 re-captioning 字幕技术应用到视频中。首先训练一个高度描述性的字幕模型,然后使用它为训练集中的所有视频生成文本字幕。我们发现,对高度描述性的视频字幕进行训练可以提高文本保真度和视频的整体质量。 ### 6. 大力出奇迹 官方展示的这三段视频对比,清楚展示了基础计算、 4 倍计算、 16 倍计算的云泥之别。 未来依然是 OpenAI 哦不,是英伟达的。 ### 7. 还是要探索真正的大问题啊 在 Sora 身上看到了 GPT-2 的影子:发现了一个牛逼、有潜力的架构,然后 10 倍扩大它来验证是否真的的有潜力,于是有了 GPT-3. 令人有点兴奋又害怕的是,Sora 不只是压缩人类尺度的世界,而是压缩所有可能的世界。这个 world 只是 Sora 能够计算模拟的 world 之一,因为是第一个,所以又叫 hello world(?),我们跟 hello kitty 差不多,是个 hello world(?) 向 OpenAI 致敬. --- # 如何创作 AI 视频?新手创作者微指南 - URL: https://tophci.com/posts/240122-ai-video-guide - Date: 2024/01/22 - Tags: AI, 视频生成, 教程 AI 生成视频,是当下最火热的内容创作和技术话题。根据给定的文本、图像、视频等,AI 能够自动生成符合描述的、高保真的视频内容。 下面是 00 使用 AI 生成的一个短视频《New Vega City》,脚本、图像、视频、配音、字幕全部由 AI 完成。 ![1-AI Demo2-red](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/1-AI%20Demo2-red.PNG)
这个视频也可以在视频号「设计极客 00」查看,欢迎关注 😊
AI 生成视频发展太快了,你可能感到不知所措,不知从何入手。受中国 AIGC 产业联盟(AIGCxChina)的邀请,00 尝试做一次比较系统的梳理。这篇文章写给即将开始 AI 视频创作的朋友,所以重点不是视频生成技术的研究,而是介绍 AI 生成视频的基本流程和比较成熟的工具。我会避开需要编程知识的原生工具,帮助大家解答几个问题: - **有哪些 AI 生成视频的方法和工具?** - **AI 生成视频目前能力如何?** - **如果想创作 AI 视频,从哪里开始?** 如果你身边有想用 AI 创作视频的朋友,请分享这篇文章给 ta 吧! 预告文末福利:领取本文的 PDF 版本 ![AI 视频封面-s](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/AI%20%E8%A7%86%E9%A2%91%E5%B0%81%E9%9D%A2-s.jpg) ## 有哪些 AI 生成视频的方法和工具? 视频的本质是什么?是一组连续的动态图像。 在以前,获取动态的图像主要有两种方法:拍摄视频,或者制作 2D 或 3D 动画。在文生图技术大爆发之后,生成图片的质量不错而成本很低,静态图像开始取代部分实景拍摄,成为视频的基础素材。 图片是视频的基础,但这不是本文的重点,现在市面上已经有数不清的 AI 生成图像的工具:Midjourney,Stable Diffusion,DALL-E 3……。有了图片,就可以用剪映、After Effect、 Final Cut 等工具剪辑成视频。不过,直接用图片拼接成视频有一个问题:它太像 PPT 了,我们需要更连贯的动态素材。 于是问题变成: > 如何让图像动起来? 研究试用了市面上五花八门的 AI 视频工具,00 把它们总结为三种方法: | 方法 | 原理 | 技术实现 | 典型工具 | | ---------------- | ------------------ | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 叙事图像逐段生成 | 将图片连起来 | 关键帧+补帧 | [Runway Gen2](https://runwayml.com/ai-magic-tools/gen-2/), [Pika](https://pika.art/), [Stable Video Diffusion](https://stability.ai/news/stable-video-diffusion-open-ai-video-model), [VideoPoet](https://sites.research.google/videopoet/) | | 视频转绘 | 把动态图像变换形态 | 风格迁移 | [Gen1](https://runwayml.com/ai-magic-tools/gen-1/), [DomoAI](discord.gg/domoai), [Kaiber](https://kaiber.ai/), [AnimateDiff](https://github.com/guoyww/AnimateDiff/) | | 运动对象驱动 | 将运动对象转成视频 | 基于动态数据生成 | [HeyGen](https://www.heygen.com/), [Wonder](https://wonderdynamics.com/), [Move.ai](https://www.move.ai/), [Mootion](https://www.mootion.com/), [MagicAnimate](https://github.com/magic-research/magic-animate) | 在第三部分我会详细介绍这些方法。 ## AI 生成视频目前能力如何? AI 视频生成技术,依赖于生成视频的 AI 模型,目前主流依然是扩散模型,近期也出现了基于多模态的 VideoPoet。训练视频生成模型的难度很大,瓶颈包括:计算成本高,缺乏高质量的视频和指令数据集,融合自然语言处理+视觉处理+画面合成的技术难度大,等等。文生视频当前还处于起步阶段,随着文生图、图片对话技术的成熟,文生视频将成为多模态大模型下一步发展的重点。 AI 生成视频的难点在哪里?生成并不难,但是我们已经看过太多优质的影视内容,对 AI 视频的预期一开始就很高。可用的视频需具备一定的时长,优良的画面质量,一定的创意逻辑性及还原指令要求能力。接下来让我们看看目前主流的技术能做到什么程度。 ### 生成时长 | 模型/产品 | 最长生成时长 | 平均生成所需时间(秒) | | ---------------------- | ------------ | ---------------------- | | Runway Gen-2 | 3+4 秒 | 60 | | Pika Labs | 4+4 秒 | 40 | | Stable Video Diffusion | 2 ~ 6 秒 | 跟硬件有关 | | VideoPoet | 10 秒 | 跟硬件有关 | | Zero Scope | 3 秒 | 80 | 部分数据来自:国盛证券《2023 年人工智能行业专题报告:AI 文生视频,多模态应用的下一站》 目前,受限于训练资源,这些模型通常只能生成非常短的视频片段(大都为 3 ~ 4 秒)。不过,生成的时长会快速突破,创作者的重点还是在整合分段视频和加强叙事性上面。 ### 镜头/运动控制 #### 运镜方法 Runway 和 Pika 提供了推拉摇移等基本的镜头运动控制,并且可以控制运动的幅度。 ![Runway Camera Motion](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/5-runway-motion.png) #### 运动幅度 上面已经看到 Runway 和 Pika 提供了运动幅度的调整。在 Stable Video Diffusion 中,也有一个可以简单控制运动变化幅度的参数 motion bucket,下面的视频展示了不同 motion bucket 的值如何影响画面变化: https://www.reddit.com/r/StableDiffusion/comments/183mg95/stable_vide_diffusion_motion_bucket_id_comparison/ ### 姿态控制 复杂人物动作的视频生成,非常考验视频模型的帧连续效果及动作理解能力。很容易出现动作不连贯、身体器官重叠/变形/消失等问题。最近有大量的研究旨在解决姿态控制的问题,效果已经非常不错。比较有代表性的研究包括:MagicAnimate 和 AnimateAnyone。 ![9-Animate-Anyone](https://github.com/HumanAIGC/AnimateAnyone/blob/main/docs/video_t1.png) 还有很多类似的研究,比如 DreaMoving、MotionCtrl 等,目前还是在研究转化为成熟应用的阶段。比如最近刷屏的通义千问全民舞王,相信很快各大视频平台就会充斥群魔乱舞的小视频了。 ### **语意理解** 能否通过 prompt 准确体现创作者的意图,决定了文生视频的天花板。 在近期的研究中,Google 推出的 VideoPoet 体现了较强的语意理解能力,无需特定数据便可生成视频。只要为输入的图像增加文字描述,就可以添加动态效果。还可以修改提示来调整画面来达到预期的效果。 ![12-VideoPoet2](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/12-VideoPoet2.gif) 厉害的是,VideoPoet 一次能够生成 10 秒的视频,而且动作幅度较大,连贯性好,碾压 Gen-2 仅有小幅动作的视频生成。(哦,VideoPoet 是个多模态模型,它还能生成音频 🙇‍♀️)不过 VideoPoet 目前还没有开放,大家还得再等一等。 ### **连续性** 现在 AI 生成视频的工具大多数一次只能生成 3 ~ 4 秒的视频,然后可以基于生成视频再延长 4 秒。这就对视频的连续性和一致性提出了要求。Runway 在延长视频时,容易出现后续动作变化不自然且幅度小、脸部变形等情况,Pika 则更为连贯顺畅一些。 如果视频里面有多个人物或者主体,就更是考验 AI 视频模型处理复杂场景的能力及细微语言的理解能力,否则画面很容易变成一锅粥。 ### **局部修改/**视频编辑 Runway 很早就提供了视频智能编辑的系列功能,包括移除背景、抠图、运动跟踪等等。 ![16-runway-video edit](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/16-runway-video%20edit.jpeg) 最近 Runway 不断更新局部修改的功能 Motion Brush,能够结合镜头运动和文字 prompt 来控制画面。Pika 也提供了局部修改和修改视频尺寸的功能,非常智能。 ## 如果想创作 AI 视频,从哪里开始? 在开始之前,不妨问自己一个问题: > 我有没有明确要表达的主旨/议题/观点? 如果没有,就把自己当成一个艺术家,尝试 AI 这种最新的“艺术材料”能做什么。 如果有,那么你可以更有意识地构思整个创作流程。下一个问题可以问自己: > 这个视频的目标是什么?是对哪一个人群做到 A.营造氛围,B.传递信息,C.影响说服,D.…? 目前 AI 生成视频还在早期阶段,生成的内容比较随机、难以控制,但是能够快速地构建一个风格化的场景,尤其是现实中不存在的场景,这会更加考验创作者“讲故事”的能力。 在目标相对清晰以后,我们可以进入动手创作的阶段。这时候的关键问题是: > 视频的内容形态是什么?——讲故事?动态影像?人物口播?运动捕捉?…… 00 整理出几种 AI 生成视频的方式,下面详细讲解一下这几种方式的大致创作思路。 | 方法 | 原理 | 技术实现 | 典型工具 | | ---------------- | ------------------ | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 叙事图像逐段生成 | 将图片连起来 | 关键帧+补帧 | [Runway Gen2](https://runwayml.com/ai-magic-tools/gen-2/), [Pika](https://pika.art/), [Stable Video Diffusion](https://stability.ai/news/stable-video-diffusion-open-ai-video-model), [VideoPoet](https://sites.research.google/videopoet/) | | 视频转绘 | 把动态图像变换形态 | 风格迁移 | [Gen1](https://runwayml.com/ai-magic-tools/gen-1/), [DomoAI](discord.gg/domoai), [Kaiber](https://kaiber.ai/), [AnimateDiff](https://github.com/guoyww/AnimateDiff/) | | 运动对象驱动 | 将运动对象转成视频 | 基于动态数据生成 | [HeyGen](https://www.heygen.com/), [Wonder](https://wonderdynamics.com/), [Move.ai](https://www.move.ai/), [Mootion](https://www.mootion.com/), [MagicAnimate](https://github.com/magic-research/magic-animate) | ### 一、叙事图像逐段生成 叙事性生成,其实就是“讲好一个故事”。皮克斯每一部动画都深入人心,除了人物形象立体丰富、制作精良、技术出众,更为关键的是它把大量精力投入到了“讲好故事”上面,才有了一个又一个老少皆宜、经久不衰的经典。 #### **1.确定角色、场景、叙事线索,即故事脚本** 想要讲好一个故事,不能一上来就开始用 AI 出图,而是构思整个故事。故事脚本这个环节,不是 AI 视频技术的范围,但我们依然可以借助 AI 的能力。比如 00 在创作《New Vega City》的时候,用到了视频脚本 [GPTs Video Script](https://chat.openai.com/g/g-lCvGmYhGL-video-script),帮助我快速生成一个关于火星城市的宣传短片的脚本。 ![21-视频脚本 gpts](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/21-%E8%A7%86%E9%A2%91%E8%84%9A%E6%9C%AC%20gpts.png) #### **2.整理分镜,生成各镜头的画面** 有了满意的脚本以后,接下来要把抽象的概念转换成具体的图像画面,然后给到 AI 生成图像和视频。在传统的影视动画制作中,这一步往往需要制作“故事板”,也就是艺术家把一个一个镜头里面的场景和人物用草稿描绘出来,再不断修改优化,最后拍摄出来。 我们可能没有制作经验和绘制草图的技术,这时候还是请 AI 来帮忙。大家可以搜索并找一些描述画面提示词的工具,比如词图 AI 的组词工具,或者文生图提示词的 GPTs,让 AI 把故事脚本中的场景描述成具体的图像 prompt。 有了画面描述以后,就可以开始用文生图工具,比如 Stable Diffusion,Midjourney 等生成每一个场景的静态图像了。当然,Runway 和 Pika 等视频工具也提供了文生图的功能,可以直接在里面生成,不过它们并不是很擅长图像生成,如果想获得更好、更可控的图像,还是推荐用专门的文生图工具。这些是我用 Stable Diffusion 生成的部分视频关键帧。 ![23-vega-image](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/23-vega-image.jpeg) #### **3.生成视频片段,组织画面** 有了关键帧画面以后,要让它们“动起来”。这回终于轮到 AI 视频工具上场了。 在 Runway、Pika 等工具中,重点是把图片变成“镜头”。最常用的让图片动起来的方法有两种: - 镜头本身的运动:画面的主体内容不动,只是改变镜头的运动。(**友情提示**:如果只需要实现简单的镜头运动,更简单的办法是移动图片,比如在 PPT 里让图片淡入淡出,或者在视频编辑工具里面让图片实现各种变形或运动。) ![25-runway-motion-explain](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/25-runway-motion-explain.png) - 画面元素的运动:选定画面的某些部分,并设置如何运动。可以通过 prompt 调整,不过效果一般都不太好,更常见的方式是设置修改区域(Runway 最近支持一个画面设置 5 个区域),然后指定运动方式。这是 AI 生成视频工具的核心功能,具体的操作可以查看软件的官方教程。 这里需要提醒一下费用问题。 Runway 生成 1 秒视频需要 5 个 credit,每个月有 125 个免费 credit,智能生成 25 秒,用完需要充值,\$12/月 可以生成 125 秒的视频。 Pika 10 个 credit 可以生成 3 秒视频,每天有 30 个免费 credit,充值 \$8/月 可以生成 210 秒的视频。 有了每一个场景的视频片段,接下来要完成叙事的部分。我们需要用剪辑工具(剪映/必剪/After Effect/Premiere/iMovie)把这些只有几秒的片段衔接起来。如果之前的脚本写得好,并且场景画面的风格、人物比较一致,在衔接的时候就轻松很多。这个环节主要处理情节连贯性、主体一致性等问题,让画面节奏更加流畅。 ### 二、视频转绘 第二种生成视频的方式要轻松不少,因为视频是现成的,省去了我们构思故事、脚本、场景、画面的工作,核心是把原有视频转绘成另外一种风格。能完成转绘的工具就更多了,这里主要介绍 2 个。 #### Runway Gen-1 上面我们已经了解过 Runway 的 Gen-2,它提供了强大的文生视频的能力。而 Gen-1 是更早推出的功能,它主攻的就是风格转绘。 #### DomoAI DomoAI 凭借出色的画面稳定性赢得了大批用户,尤其在动漫风格上面表现突出。不过目前还只有 [discord 渠道](discord.gg/domoai) 可以使用。
View this post on Instagram

A post shared by DomoAI (@domoai_official)

### 三、运动对象生成 这一类视频的重点不是”讲故事“,而是人或运动物体的“表演”。 #### 数字人/人脸驱动 “数字人”的概念我们并不陌生,这类视频的主体非常明确:一个人物形象,可以是真人录制,也可以是建模出来的完全虚拟形象。让人物或虚拟形象说话,就完成了 AI 视频的制作,目前这种技术已经广泛用在直播间、智能客服、数字员工等领域。 去年 10 月,美国著名歌手 Taylor Swift 在一个节目中受访的片段引起热议。视频中莓莓用流利的中文回答问题,无论是发音还是口型都非常标准。视频一发布就爆火,后来大家才知道这是用 [HeyGen](https://www.heygen.com/) 完成的。 https://twitter.com/Gorden_Sun/status/1716075577117929841 Heygen 是一个功能全面、效果很好的 AI 虚拟人应用,以 AI 虚拟人形象和声音克隆两大技术作为基础,支持一键换衣、虚拟主播、文本转声音等各种操作。类似的工具还有 [D-ID](https://www.d-id.com/)、[Synthesia](https://www.synthesia.io/) 等,都能快速将人物图片转成会说话的视频,口播类的场景非常适合。 #### 运动驱动 只是让人动嘴讲话,还是不能满足我们在更多场景的需求。能不能让人整个动起来呢?能不能让动物、机器人之类的其他物体动起来呢? 当然可以,这就是另外一类 AI 可以生成的视频——基于运动对象来生成,并且可以做到实时生成。这背后是已经发展多年的运动捕捉技术.在 AI 的加持下,运动捕捉已经已经达到非常高的精度,并且解决了文生视频难以处理的画面抖动、主体不一致的问题。这是 00 最看好的能在影视动画广泛商用的技术。 [Wonder Studio](https://wonderdynamics.com/) 和 [Move.ai](http://Move.ai) 都是这个领域不错的工具,但是使用时最好配合 3D 建模软件来调整角色,有一定的使用门槛。 ### 后期(画面/配音/字幕) 前面我们总结了各种 AI 生成动态视频的方法。如果顺利,你会得到很多动态的视频素材,接下来是最后一个环节:后期制作。 一个完整的视频,并不是只有动态的画面,它还需要调节画面的质量、颜色,需要加入让人更加有代入感的背景音乐、音效和旁白,以及方便观看和理解的字幕等等。 这其中也涉及到非常多传统影视制作的工序,未来也会涌现很多 AI 驱动的工具,有机会再跟大家逐一分享。 ## 小结 这一期的内容还真不少,相信你看完以后,对如何用 AI 生成视频已经有更加全局和深入的了解: - AI 生成视频有三种常见方法:叙事图像逐段生成,视频转绘,运动对象驱动。 - AI 目前生成视频的时长比较短,可以简单控制镜头的运动和修改画面局部内容,但模型在语意理解和一致性方面还有很大提升空间。 - 创作叙事类 AI 视频,有故事脚本、分镜、分段生成图像、叙事优化、后期这几个环节,也介绍了对应的工具。 相信你已经跃跃欲试,想把脑海中的想法变成精彩的画面了。如果你身边有想用 AI 创作视频的朋友,也请分享这篇文章给 ta 吧 🎬! AI 时代,工具极大赋能创作者,每个人都有机会更好地展现自己的创意。AI 生成视频的大门正在向你我开启,期待见到你的作品! ## **福利** 微信文章点击链接不方便,00 制作了指南的 PDF 版本,可以下载保存,内含 AI 视频工具链接,可直达访问。 ![AI 视频封面-s](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/AI%20%E8%A7%86%E9%A2%91%E5%B0%81%E9%9D%A2-s.jpg) 领取方式:关注 公众号「设计极客 00」,后台回复“**视频指南**”,即可获得下载链接。 --- # 零反思一则 - URL: https://tophci.com/posts/240118-zero-reflection - Date: 2024/01/18 - Tags: 零反思 ![240118-zero-reflection](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/240118-zero-reflection.png) 語言模型的應用痛點是不准確,難以端到端輸出。 擴散模型的應用痛點是半成品,只有影像形不成閉環,无法交付。 --- # 面向开发者的 LLM 入门教程-笔记和代码 - URL: https://tophci.com/posts/240116-prompt-engineering-for-developers - Date: 2024/01/16 - Tags: prompt, ChatGPT, 笔记, code 本文是 DLAI 课程 [ChatGPT Prompt Engineering for Developers](https://learn.deeplearning.ai/chatgpt-prompt-eng/lesson/1/introduction) 的笔记。这门课面向入门 LLM 的开发者,深入浅出地介绍了如何构造 Prompt 并基于 OpenAI 提供的 API 实现包括总结、推断、转换等功能,是入门 LLM 开发的经典教程。 Prompt(提示),最初是 NLP 研究者为下游任务而设计的一种任务输入形式或模板,在 ChatGPT 的影响下,Prompt 成为与 LLM 交互输入的代称。一般我们把给大模型的输入称为 Prompt,将大模型返回的输出称为 Completion。一个合理的 Prompt 设计极大地决定了 LLM 能力的上限与下限。 > Prompt Engineering,是针对特定任务构造能充分发挥大模型能力的 Prompt 的技巧。 对于开发人员,LLM 更强大的功能是能通过 API 接口调用,从而快速构建软件应用程序。课程中有很多代码的实操,推荐大家使用 Google colab 来实现,免去本地环境的配置。代码运行的结果,可以查看 00 的 colab notebook: https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing ## **Lesson 1.提示词原则** 提示词设计的两个关键原则:编写清晰、具体的指令,以及给模型充足思考时间。 ### **原则一:编写清晰、具体的指令** Prompt 需要清晰明确地表达需求,提供充足上下文,使语言模型准确理解我们的意图,就像向一个外星人详细解释人类世界一样。过于简略的 Prompt 往往使模型难以把握所要完成的具体任务。 1. **使用分隔符清晰地表示输入的不同部分** 可以选择用不同符号做分隔符,只要能明确起到隔断作用即可。 ````markdown # 需要总结的文本内容 text = f""" 您应该提供尽可能清晰、具体的指示,以表达您希望模型执行的任务。\\ 这将引导模型朝向所需的输出,并降低收到无关或不正确响应的可能性。\\ 不要将写清晰的提示词与写简短的提示词混淆。\\ 在许多情况下,更长的提示词可以为模型提供更多的清晰度和上下文信息,从而导致更详细和相关的输出。 """ # 指令:使用 ``` 来分隔指令和待总结的内容 prompt = f""" 把用三个反引号括起来的文本总结成一句话。 `{text}` """ response = get_completion(prompt) print(response) ```` [查看输出结果](https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing) 2. **结构化输出** 按照某种格式组织的内容,例如 JSON、HTML 等。这种输出非常适合在代码中进一步解析和处理。 ```python prompt = f""" 请生成包括书名、作者、出版年份和类别的三本真实存在的中文书籍清单,\\ 并以 JSON 格式提供,包含以下键:book_id、title、year、author、genre。 """ response = get_completion(prompt) print(response) ``` [查看输出结果](https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing) 3. **要求模型检查是否满足条件** 如果任务包含不一定能满足的条件,可以告诉模型先检查这些条件,如果不满足,就指出并停止执行后续的完整流程。 ```python prompt = f""" 您将获得由三个引号括起来的文本。如果它包含一系列的指令,则需要按照以下格式重新编写这些指令: 第一步 - ... 第二步 - … … 第N步 - … 如果文本中不包含一系列的指令,则直接写“未提供步骤”。" \\"\\"\\"{text_2}\\"\\"\\" """ ``` [输出结果](https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing) 4. **提供少量示例** 在要求模型执行实际任务之前,给出一两个已完成的样例,让模型了解期望的输出样式。 ### **原则二:给模型充足思考时间** 语言模型与人类一样,需要时间来思考并解决复杂问题。如果匆忙给出结论,结果很可能不准确。因此 Prompt 应加入逐步推理的要求,给模型留出充分思考时间,可以要求其先列出对问题的各种看法,说明推理依据,然后再得出最终结论。 1. **指定完成任务所需的步骤** ```python text = f""" 李琪,爱荷华州立大学计算机科学系助理教授,她于2017年取得纽约州立大学布法罗分校计算机科学与工程系博士学位;于2012年取得伊利诺伊大学香槟分校统计学硕士学位;于2010年取得西安电子科技大学信息与计算科学学士学位。她的研究兴趣为数据管理、数据挖掘和机器学习。 彭楠赟,现任加州大学洛杉矶分校计算机科学系助理教授。她于2012年在北京大学获得学士和硕士学位,于2017年获约翰·霍普金斯大学计算机科学博士学位。她的研究方向为低资源信息提取、语言生成和跨语言迁移。 Qianqian Wang,康纳尔大学计算机科学专业博士四年级,此前在浙江大学获得学士学位,研究方向是3D 计算机视觉、计算机图形学和机器学习的交叉领域。 陈师哲, INRIA Paris 的一名博士后研究员。她分别于2020年和2015年在中国人民大学获得博士和学士学位,2018年访问了卡内基梅隆大学,2019 年访问了阿德莱德大学,2019年在 MSRA 工作。她在2017年获得百度奖学金,2020年获得北京市优秀毕业生奖。她的研究兴趣是具身智能、视觉与语言、多模态深度学习。 李爽,目前是麻省理工学院电气工程与计算机科学专业的一名五年级博士生,她的研究兴趣是人工智能,包括计算机视觉、自然语言处理、决策和机器学习。 Xin Lu,现任Adobe 的高级工程经理,于2015年获得美国宾夕法尼亚州立大学的博士学位。她的研究涵盖从端到端 AI/ML 研发到软件开发、分析、开发运营、新计划和现有业务线的产品开发和管理。 此外,她还在顶级的计算机视觉和机器学习领域发表了 30 多篇论文,并拥有超过 35 项美国专利。 刘伊凡,现任苏黎世联邦理工大学讲师,阿德莱德大学客座助理教授。于2018年获得北航自动化学院硕士学位,2021年获得阿德莱德大学计算机科学学院博士学位。研究领域主要包含深度学习、开放世界感知。 """ prompt_2 = f""" 1-用一句话概括下面用<>括起来的文本。2-将摘要翻译成英语。3-在英语摘要中列出每个名称。4-输出一个 JSON 对象,其中包含以下键:English_summary,num_names。请使用以下格式:文本:<要总结的文本>摘要:<摘要>翻译:<摘要的翻译>名称:<英语摘要中的名称列表>输出 JSON:<带有 English_summary 和 num_names 的 JSON>Text: <{text}> """ response = get_completion(prompt_2) print("\\nprompt 2:") print(response) ``` [在 Colab 查看输出结果](https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing) 2. **让模型在下结论之前给出自己的解法** ## **Lesson 2. 迭代优化** 在开发大语言模型应用时,很难通过第一次尝试就得到完美适用的 Prompt。关键是要有一个良好的迭代优化过程,不断改进 Prompt。 ```markdown # 示例:产品说明书 fact_sheet_chair = """ 概述 美丽的中世纪风格办公家具系列的一部分,包括文件柜、办公桌、书柜、会议桌等。 多种外壳颜色和底座涂层可选。 可选塑料前后靠背装饰(SWC-100)或10种面料和6种皮革的全面装饰(SWC-110)。 底座涂层选项为:不锈钢、哑光黑色、光泽白色或铬。 椅子可带或不带扶手。 适用于家庭或商业场所。 符合合同使用资格。 结构 五个轮子的塑料涂层铝底座。 气动椅子调节,方便升降。 尺寸 宽度53厘米|20.87英寸 深度51厘米|20.08英寸 高度80厘米|31.50英寸 座椅高度44厘米|17.32英寸 座椅深度41厘米|16.14英寸 选项 软地板或硬地板滚轮选项。 两种座椅泡沫密度可选:中等(1.8磅/立方英尺)或高(2.8磅/立方英尺)。 无扶手或8个位置PU扶手。 材料 外壳底座滑动件 改性尼龙PA6/PA66涂层的铸铝。 外壳厚度:10毫米。 座椅 HD36泡沫 原产国 意大利 """ ``` | **轮次** | **Prompt** | **目的** | | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- | | 初始 | 您的任务是帮助营销团队基于技术说明书创建一个产品的营销描述。根据标记的技术说明书中提供的信息,编写一个产品描述。技术规格: \{fact_sheet_chair\} | | | 迭代 1 | 您的任务是帮助营销团队基于技术说明书创建一个产品的零售网站描述。根据标记的技术说明书中提供的信息,编写一个产品描述。使用最多 50 个词。技术规格: \{fact_sheet_chair\} | 添加长度限制,生成更简洁的文案 | | 迭代 2 | 您的任务是帮助营销团队基于技术说明书创建一个产品的零售网站描述。根据标记的技术说明书中提供的信息,编写一个产品描述。该描述面向家具零售商,因此应具有技术性质,并侧重于产品的材料构造。使用最多 50 个单词。技术规格: \{fact_sheet_chair\} | 说明受众,应具有什么性质以及侧重点 | | 迭代 3 | 您的任务是帮助营销团队基于技术说明书创建一个产品的零售网站描述。根据```标记的技术说明书中提供的信息,编写一个产品描述。该描述面向家具零售商,因此应具有技术性质,并侧重于产品的材料构造。在描述末尾,包括技术规格中每个 7 个字符的产品 ID。使用最多 50 个单词。技术规格: \{fact_sheet_chair\} | 要求在描述的结尾,给出产品 ID | | 迭代 4 | 您的任务是帮助营销团队基于技术说明书创建一个产品的零售网站描述。根据```标记的技术说明书中提供的信息,编写一个产品描述。该描述面向家具零售商,因此应具有技术性质,并侧重于产品的材料构造。在描述末尾,包括技术规格中每个 7 个字符的产品 ID。在描述之后,包括一个表格,提供产品的尺寸。表格应该有两列。第一列包括尺寸的名称。第二列只包括英寸的测量值。给表格命名为“产品尺寸”。将所有内容格式化为可用于网站的 HTML 格式。将描述放在
元素中。技术规格: \{fact_sheet_chair\} | 提取产品尺寸信息并组织成表格 | ````python prompt = f""" 您的任务是帮助营销团队基于技术说明书创建一个产品的零售网站描述。 根据```标记的技术说明书中提供的信息,编写一个产品描述。 该描述面向家具零售商,因此应具有技术性质,并侧重于产品的材料构造。 在描述末尾,包括技术规格中每个7个字符的产品ID。 在描述之后,包括一个表格,提供产品的尺寸。表格应该有两列。第一列包括尺寸的名称。第二列只包括英寸的测量值。 给表格命名为“产品尺寸”。 将所有内容格式化为 Markdown 格式。将描述放在
元素中。 技术规格:```{fact_sheet_chair}``` """ response = get_completion(prompt) print(response) ```` [在 Colab 查看输出结果](https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing) ## **Lesson 3. 文本概括** LLM 文本摘要功能的优势可以为你节省时间、提高效率,以及精准获取信息。 ### **单一文本概括** 任务:商品评论总结 ```python prod_review = """ 这个熊猫公仔是我给女儿的生日礼物,她很喜欢,去哪都带着。 公仔很软,超级可爱,面部表情也很和善。但是相比于价钱来说, 它有点小,我感觉在别的地方用同样的价钱能买到更大的。 快递比预期提前了一天到货,所以在送给女儿之前,我自己玩了会。 """ ``` **限制输出文本长度** ````python prompt = f""" 您的任务是从电子商务网站上生成一个产品评论的简短摘要。 请概括三个反引号之间的评论,最多30个字。 评论: ```{prod_review}``` """ response = get_completion(prompt) print(response) ```` 注:模型在计算和判断文本长度时依赖于分词器,统计字符时并不精确。 **设置侧重点** ````python prompt = f""" 您的任务是从电子商务网站上生成一个产品评论的简短摘要。 请概括三个反引号之间的评论,最多30个词汇,并且侧重在产品价格和质量上。 评论: ```{prod_review}``` """ response = get_completion(prompt) print(response) ```` **关键信息提取** ```` 在 Prompt 中设置侧重点 ,可以让摘要更聚焦,然而结果中也会保留其他信息。如果只想提取某些信息,并过滤掉其他所有信息,可以要求 LLM 进行文本提取(Extract) 而非概括( Summarize )。 prompt = f""" 您的任务是从电子商务网站上的产品评论中提取相关信息。 请从以下三个反引号之间的评论中提取产品运输的信息,最多30个词汇。 评论: ```{prod_review}``` """ response = get_completion(prompt) print(response) ```` [在 Colab 查看输出结果](https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing) ### **多条文本概括** 将多条用户评价集合在一个列表中,并利用 `for` 循环和文本概括提示词,将评价概括至小于 20 个词以下,并按顺序打印。 ````python review_1 = prod_review # 一盏落地灯的评论 review_2 = """ 我需要一盏漂亮的卧室灯,这款灯不仅具备额外的储物功能,价格也并不算太高。 收货速度非常快,仅用了两天的时间就送到了。 不过,在运输过程中,灯的拉线出了问题,幸好,公司很乐意寄送了一根全新的灯线。 新的灯线也很快就送到手了,只用了几天的时间。 装配非常容易。然而,之后我发现有一个零件丢失了,于是我联系了客服,他们迅速地给我寄来了缺失的零件! 对我来说,这是一家非常关心客户和产品的优秀公司。 """ # 一把电动牙刷的评论 review_3 = """ 我的牙科卫生员推荐了电动牙刷,所以我就买了这款。 到目前为止,电池续航表现相当不错。 初次充电后,我在第一周一直将充电器插着,为的是对电池进行条件养护。 过去的3周里,我每天早晚都使用它刷牙,但电池依然维持着原来的充电状态。 不过,牙刷头太小了。我见过比这个牙刷头还大的婴儿牙刷。 我希望牙刷头更大一些,带有不同长度的刷毛, 这样可以更好地清洁牙齿间的空隙,但这款牙刷做不到。 总的来说,如果你能以50美元左右的价格购买到这款牙刷,那是一个不错的交易。 制造商的替换刷头相当昂贵,但你可以购买价格更为合理的通用刷头。 这款牙刷让我感觉就像每天都去了一次牙医,我的牙齿感觉非常干净! """ # 一台搅拌机的评论 review_4 = """ 在11月份期间,这个17件套装还在季节性促销中,售价约为49美元,打了五折左右。 可是由于某种原因(我们可以称之为价格上涨),到了12月的第二周,所有的价格都上涨了, 同样的套装价格涨到了70-89美元不等。而11件套装的价格也从之前的29美元上涨了约10美元。 看起来还算不错,但是如果你仔细看底座,刀片锁定的部分看起来没有前几年版本的那么漂亮。 然而,我打算非常小心地使用它 (例如,我会先在搅拌机中研磨豆类、冰块、大米等坚硬的食物,然后再将它们研磨成所需的粒度, 接着切换到打蛋器刀片以获得更细的面粉,如果我需要制作更细腻/少果肉的食物)。 在制作冰沙时,我会将要使用的水果和蔬菜切成细小块并冷冻 (如果使用菠菜,我会先轻微煮熟菠菜,然后冷冻,直到使用时准备食用。 如果要制作冰糕,我会使用一个小到中号的食物加工器),这样你就可以避免添加过多的冰块。 大约一年后,电机开始发出奇怪的声音。我打电话给客户服务,但保修期已经过期了, 所以我只好购买了另一台。值得注意的是,这类产品的整体质量在过去几年里有所下降 ,所以他们在一定程度上依靠品牌认知和消费者忠诚来维持销售。在大约两天内,我收到了新的搅拌机。 """ reviews = [review_1, review_2, review_3, review_4] for i in range(len(reviews)): prompt = f""" 你的任务是从电子商务网站上的产品评论中提取相关信息。 请对三个反引号之间的评论文本进行概括,最多20个词汇。 评论文本: ```{reviews[i]}``` """ response = get_completion(prompt) print(f"评论{i+1}: ", response, "\\n") ```` [在 Colab 查看输出结果](https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing) ## **Lesson 4.推断** ### **一、情感推断** 商品评论 ```python lamp_review = """ 我需要一盏漂亮的卧室灯,这款灯具有额外的储物功能,价格也不算太高。\\ 我很快就收到了它。在运输过程中,我们的灯绳断了,但是公司很乐意寄送了一个新的。\\ 几天后就收到了。这款灯很容易组装。我发现少了一个零件,于是联系了他们的客服,他们很快就给我寄来了缺失的零件!\\ 在我看来,Lumina 是一家非常关心顾客和产品的优秀公司! """ ``` 判断商品评论的情感 prompt ````python prompt = f""" 以下用引号分隔的产品评论的情感是什么? 用一个单词回答:「正面」或「负面」。 评论文本: ```{lamp_review}``` """ response = get_completion(prompt) print(response) ```` 识别情感类型 prompt ````python # 大型语言模型非常擅长从一段文本中提取特定的东西。 prompt = f""" 识别以下评论的作者表达的情感。包含不超过五个项目。将答案格式化为以逗号分隔的单词列表。 评论文本: ```{lamp_review}``` """ response = get_completion(prompt) print(response) ```` 识别愤怒 prompt ````python prompt = f""" 以下评论的作者是否表达了愤怒?评论用三个反引号分隔。给出是或否的答案。 评论文本: ```{lamp_review}``` """ response = get_completion(prompt) print(response) ```` [在 Colab 查看输出结果](https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing) ### **二、信息提取** 商品信息提取 ````python prompt = f""" 从评论文本中识别以下项目: - 评论者购买的物品 - 制造该物品的公司 评论文本用三个反引号分隔。将你的响应格式化为以 “物品” 和 “品牌” 为键的 JSON 对象。 如果信息不存在,请使用 “未知” 作为值。 让你的回应尽可能简短。 评论文本: ```{lamp_review}``` """ response = get_completion(prompt) print(response) ```` 综合情感推断和信息提取 ````python prompt = f""" 从评论中识别以下内容: - 情绪(正面/负面) - 评论者是否感到生气?(是/否) - 评论者购买的物品 - 制造该物品的公司 评论用三个反引号分隔。将回答转换为 JSON 对象,以 “情感倾向”、“是否生气”、“物品类型” 和 “品牌” 作为key。 如果信息不存在,请使用 “未知” 作为值。 回答应尽可能简短。 将 “是否生气” 值转换为布尔值。 评论文本: ```{lamp_review}``` """ response = get_completion(prompt) print(response) ```` [在 Colab 查看输出结果](https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing) ### **三、主题推断** 判断一段文本的主旨,它涉及了哪些主题。 ```python story = """ 在政府最近进行的一项调查中,要求公共部门的员工对他们所在部门的满意度进行评分。 调查结果显示,NASA 是最受欢迎的部门,满意度为 95%。 一位 NASA 员工 John Smith 对这一发现发表了评论,他表示: “我对 NASA 排名第一并不感到惊讶。这是一个与了不起的人们和令人难以置信的机会共事的好地方。我为成为这样一个创新组织的一员感到自豪。” NASA 的管理团队也对这一结果表示欢迎,主管 Tom Johnson 表示: “我们很高兴听到我们的员工对 NASA 的工作感到满意。 我们拥有一支才华横溢、忠诚敬业的团队,他们为实现我们的目标不懈努力,看到他们的辛勤工作得到回报是太棒了。” 调查还显示,社会保障管理局的满意度最低,只有 45%的员工表示他们对工作满意。 政府承诺解决调查中员工提出的问题,并努力提高所有部门的工作满意度。 """ ``` 推断讨论主题 prompt ````python prompt = f""" 确定以下给定文本中讨论的五个主题。 每个主题用1-2个词概括。 请输出一个可解析的Python列表,每个元素是一个字符串,展示了一个主题。 文本: ```{story}``` """ response = get_completion(prompt) print(response) ```` 为特定主题制作新闻提醒 假设有一个新闻网站,我们感兴趣的主题:美国航空航天局、当地政府、工程、员工满意度、联邦政府等。判断一篇文章,是否包含这些主题。 ````python prompt = f""" 判断主题列表中的每一项是否是给定文本中的一个话题, 以列表的形式给出答案,每个元素是一个Json对象,键为对应主题,值为 0 或 1。 主题列表:美国航空航天局、当地政府、工程、员工满意度、联邦政府 给定文本: ```{story}``` """ response = get_completion(prompt) print(response) ```` 可以在此基础上制定新闻提醒: ```python result_lst = eval(response) topic_dict = {list(i.keys())[0] : list(i.values())[0] for i in result_lst} print(topic_dict) if topic_dict['美国航空航天局'] == 1: print("提醒: 关于美国航空航天局的新消息") ``` [在 Colab 查看输出结果](https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing) ## **Lesson 5.文本转换** ### **一、文本翻译** 相比于传统统计机器翻译系统,大语言模型翻译更加流畅自然,还原度更高。通过在大规模高质量平行语料上进行 Fine-Tune,大语言模型可以深入学习不同语言间的词汇、语法、语义等层面的对应关系,模拟双语者的转换思维,进行意义传递的精准转换,而非简单的逐词替换。 ````python prompt = f""" 请将以下文本翻译成中文、葡萄牙语、拉丁语,分别展示成正式与非正式两种语气: ```Would you like to order a pillow?``` """ response = get_completion(prompt) print(response) ```` ### **二、语气与写作风格调整** ````python prompt = f""" 将以下文本翻译成商务信函的格式: ```小老弟,我小羊,上回你说咱部门要采购的显示器是多少寸来着?``` """ response = get_completion(prompt) print(response) ```` ### **三、文件格式转换** 大模型可以轻松实现 JSON 到 HTML、XML、Markdown 等格式的相互转化,掌握这一转换技巧可更高效地处理结构化数据。 ```python # 假设有一个 JSON 数据,包含餐厅员工的姓名和邮箱。现在将这个 JSON 转换为 HTML 表格格式,以便在网页中展示 data_json = { "resturant employees" :[ {"name":"Shyam", "email":"shyamjaiswal@gmail.com"}, {"name":"Bob", "email":"bob32@gmail.com"}, {"name":"Jai", "email":"jai87@gmail.com"} ]} prompt = f""" 将以下Python字典从JSON转换为HTML表格,保留表格标题和列名:{data_json} """ response = get_completion(prompt) print(response) ``` [在 Colab 查看输出结果](https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing) ### **四、拼写及语法纠正** 假设一篇文章的部分句子存在错误。可以遍历每个句子,要求模型进行检查,如果句子正确就输出“未发现错误”,如果有错误就输出修改后的正确版本。 ````python text = [ "The girl with the black and white puppies have a ball.", # The girl has a ball. "Yolanda has her notebook.", # ok "Its going to be a long day. Does the car need it’s oil changed?", # Homonyms "Their goes my freedom. There going to bring they’re suitcases.", # Homonyms "Your going to need you’re notebook.", # Homonyms "That medicine effects my ability to sleep. Have you heard of the butterfly affect?", # Homonyms "This phrase is to cherck chatGPT for spelling abilitty" # spelling ] for i in range(len(text)): time.sleep(20) prompt = f"""请校对并更正以下文本,注意纠正文本保持原始语种,无需输出原始文本。 如果您没有发现任何错误,请说“未发现错误”。 例如: 输入:I are happy. 输出:I am happy. ```{text[i]}```""" response = get_completion(prompt) print(i, response) ```` [在 Colab 查看输出结果](https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing) ### **五、综合样例** 同时对一段文本进行翻译、拼写纠正、语气调整和格式转换等操作。 ````python prompt = f""" 针对以下三个反引号之间的英文评论文本, 首先进行拼写及语法纠错, 然后将其转化成中文, 再将其转化成优质淘宝评论的风格,从各种角度出发,分别说明产品的优点与缺点,并进行总结。 润色一下描述,使评论更具有吸引力。 输出结果格式为: 【优点】xxx 【缺点】xxx 【总结】xxx 注意,只需填写xxx部分,并分段输出。 将结果输出成Markdown格式。 ```{text}``` """ response = get_completion(prompt) display(Markdown(response)) ```` [在 Colab 查看输出结果](https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing) ## **Lesson 6.文本扩展** 文本扩展可以输入简短文本,生成更加丰富的长文。 ### **一、定制客户邮件** 将根据客户评价和情感倾向生成回复邮件。 ````python sentiment = "消极的" # 一个产品的评价 review = f""" 他们在11月份的季节性销售期间以约49美元的价格出售17件套装,折扣约为一半。\\ 但由于某些原因(可能是价格欺诈),到了12月第二周,同样的套装价格全都涨到了70美元到89美元不等。\\ 11件套装的价格也上涨了大约10美元左右。\\ 虽然外观看起来还可以,但基座上锁定刀片的部分看起来不如几年前的早期版本那么好。\\ 不过我打算非常温柔地使用它,例如,我会先在搅拌机中将像豆子、冰、米饭等硬物研磨,然后再制成所需的份量,\\ 切换到打蛋器制作更细的面粉,或者在制作冰沙时先使用交叉切割刀片,然后使用平面刀片制作更细/不粘的效果。\\ 制作冰沙时,特别提示:\\ 将水果和蔬菜切碎并冷冻(如果使用菠菜,则轻轻煮软菠菜,然后冷冻直到使用;\\ 如果制作果酱,则使用小到中号的食品处理器),这样可以避免在制作冰沙时添加太多冰块。\\ 大约一年后,电机发出奇怪的噪音,我打电话给客服,但保修已经过期了,所以我不得不再买一个。\\ 总的来说,这些产品的总体质量已经下降,因此它们依靠品牌认可和消费者忠诚度来维持销售。\\ 货物在两天内到达。 """ prompt = f""" 你是一位客户服务的AI助手,任务是给一位重要客户发送邮件回复。 根据客户通过```分隔的评价,生成回复以感谢客户的评价。 使用评价中的具体细节,用简明而专业的语气写信。 以“AI客户代理”签署电子邮件。 客户评论: ```{review}``` 评论情感:{sentiment} """ response = get_completion(prompt) print(response) ```` [在 Colab 查看输出结果](https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing) ### **二、温度系数** 大语言模型中的 “温度”(temperature) 参数可以控制生成文本的随机性和多样性。temperature 的值越大,语言模型输出的多样性越大;temperature 的值越小,输出越倾向高概率的文本。 举个例子,在某一上下文中,语言模型可能认为“比萨”是接下来最可能的词,其次是“寿司”和“塔可”。若 temperature 为 0,则每次都会生成“比萨”;而当 temperature 越接近 1 时,生成结果是“寿司”或“塔可”的可能性越大,使文本更加多样。 如果需要可预测、可靠的输出,则将 temperature 设置为 0;如果需要更具创意的文本,可适当提高 temperature。 ````python # temperature=0.7 prompt = f""" 你是一名客户服务的AI助手。 你的任务是给一位重要的客户发送邮件回复。 根据通过“```”分隔的客户电子邮件生成回复,以感谢客户的评价。 如果情感是积极的或中性的,感谢他们的评价。 如果情感是消极的,道歉并建议他们联系客户服务。 请确保使用评论中的具体细节。 以简明和专业的语气写信。 以“AI客户代理”的名义签署电子邮件。 客户评价:```{review}``` 评论情感:{sentiment} """ response = get_completion(prompt, temperature=0.7) print(response) ```` [在 Colab 查看输出结果](https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing) ## **Lesson 7.聊天机器人** ### **一、给定身份** 在 ChatGPT 网页界面中,消息分为用户消息和助手消息。但在构建聊天机器人时,在发送了系统消息之后,您的角色可以仅作为用户 (user) ;也可以在用户和助手 (assistant) 之间交替来提供对话上下文。 ```python import openai def get_completion_from_messages(messages, model="gpt-3.5-turbo", temperature=0): response = openai.ChatCompletion.create( model=model, messages=messages, temperature=temperature, # 控制模型输出的随机程度 ) # print(str(response.choices[0].message)) return response.choices[0].message["content"] messages = [ {'role':'system', 'content':'你是个友好的聊天机器人。'}, {'role':'user', 'content':'Hi, 我是Isa。'} ] response = get_completion_from_messages(messages, temperature=1) print(response) ``` ### **二、构建上下文** 每次与语言模型的交互都互相独立,这意味着要提供所有相关的消息,以便模型在当前对话中进行引用。如果想让模型引用或 “记住” 对话的早期部分,则必须在输入中提供对话历史,也就是上下文 (context) 。 ```python messages = [ {'role':'system', 'content':'你是个友好的聊天机器人。'}, {'role':'user', 'content':'Hi, 我是Isa'}, {'role':'assistant', 'content': "Hi Isa! 很高兴认识你。今天有什么可以帮到你的吗?"}, {'role':'user', 'content':'是的,你可以提醒我, 我的名字是什么?'} ] response = get_completion_from_messages(messages, temperature=1) print(response) ``` ### **三、订餐机器人** 机器人会自动收集用户信息,并接收来自比萨饼店的订单。 collect_messages() 函数收集用户消息,从用户界面中收集 Prompt ,然后将其附加到一个名为上下文( `context` )的列表中,并在每次调用模型时使用该上下文。模型的回答也会添加到上下文中,上下文逐渐变长。这样模型就知道下一步要做什么。 ```python def collect_messages(_): prompt = inp.value_input inp.value = '' context.append({'role':'user', 'content':f"{prompt}"}) response = get_completion_from_messages(context) context.append({'role':'assistant', 'content':f"{response}"}) panels.append( pn.Row('User:', pn.pane.Markdown(prompt, width=600))) panels.append( pn.Row('Assistant:', pn.pane.Markdown(response, width=600, style={'background-color': '#F6F6F6'}))) return pn.Column(*panels) ``` 现在,我们将设置并运行这个 UI 来显示订单机器人。初始的上下文包含了包含菜单的系统消息,在每次调用时都会使用。此后随着对话进行,上下文也会不断增长。需要用 pip 安装 panelCopy 库(用于可视化界面)。 ```python import panel as pn # GUI pn.extension() panels = [] # collect display context = [{'role':'system', 'content':""" 你是订餐机器人,为披萨餐厅自动收集订单信息。 你要首先问候顾客。然后等待用户回复收集订单信息。收集完信息需确认顾客是否还需要添加其他内容。 最后需要询问是否自取或外送,如果是外送,你要询问地址。 最后告诉顾客订单总金额,并送上祝福。 请确保明确所有选项、附加项和尺寸,以便从菜单中识别出该项唯一的内容。 你的回应应该以简短、非常随意和友好的风格呈现。 菜单包括: 菜品: 意式辣香肠披萨(大、中、小) 12.95、10.00、7.00 芝士披萨(大、中、小) 10.95、9.25、6.50 茄子披萨(大、中、小) 11.95、9.75、6.75 薯条(大、小) 4.50、3.50 希腊沙拉 7.25 配料: 奶酪 2.00 蘑菇 1.50 香肠 3.00 加拿大熏肉 3.50 AI酱 1.50 辣椒 1.00 饮料: 可乐(大、中、小) 3.00、2.00、1.00 雪碧(大、中、小) 3.00、2.00、1.00 瓶装水 5.00 """} ] # accumulate messages inp = pn.widgets.TextInput(value="Hi", placeholder='Enter text here…') button_conversation = pn.widgets.Button(name="Chat!") interactive_conversation = pn.bind(collect_messages, button_conversation) dashboard = pn.Column( inp, pn.Row(button_conversation), pn.panel(interactive_conversation, loading_indicator=True, height=300), ) ``` 运行如上代码可以得到一个点餐机器人 **创建 JSON 摘要** 接下来要求模型创建一个 JSON 摘要,发送给订单系统。(此处也可以定义为用户消息,不一定是系统消息) 请注意,这里使用了一个较低的温度,因为对于这些类型的任务,我们希望输出相对可预测。 ```python messages = context.copy() messages.append( {'role':'system', 'content': '''创建上一个食品订单的 json 摘要。\\ 逐项列出每件商品的价格,字段应该是 1) 披萨,包括大小 2) 配料列表 3) 饮料列表,包括大小 4) 配菜列表包括大小 5) 总价 你应该给我返回一个可解析的Json对象,包括上述字段'''}, ) response = get_completion_from_messages(messages, temperature=0) print(response) { "披萨": { "意式辣香肠披萨": { "大": 12.95, "中": 10.00, "小": 7.00 }, "芝士披萨": { "大": 10.95, "中": 9.25, "小": 6.50 }, "茄子披萨": { "大": 11.95, "中": 9.75, "小": 6.75 } }, "配料": { "奶酪": 2.00, "蘑菇": 1.50, "香肠": 3.00, "加拿大熏肉": 3.50, "AI酱": 1.50, "辣椒": 1.00 }, "饮料": { "可乐": { "大": 3.00, "中": 2.00, "小": 1.00 }, "雪碧": { "大": 3.00, "中": 2.00, "小": 1.00 }, "瓶装水": 5.00 } } ``` --- ### **总结** Prompt 的两个核心原则: - 编写清晰具体的指令; - 给模型一些思考时间。 我们还学习了迭代式 Prompt 开发的方法,逐步找到适合的 Prompt;另外,课程还讨论了大型语言模型的许多功能,包括摘要、推断、转换和扩展。 ### **Ref** - [ChatGPT Prompt Engineering for Developers](https://learn.deeplearning.ai/chatgpt-prompt-eng/lesson/1/introduction) - [中文翻译][面向开发者的LLM入门教程](https://datawhalechina.github.io/prompt-engineering-for-developers/#/) --- # 00 的 2023 年(AI)作品集 - URL: https://tophci.com/posts/240103-2023-ai-portfolio - Date: 2024/01/03 - Tags: 2023, AI, portfolio 2023 年的关键词无疑是 AI。这一波生成式 AI 的浪潮,让人觉得事情又变得好玩了,于是 00 也开始恢复更新和内容创作。 回顾这一年,每天被各种新闻冲击,看论文看 github,试用目不暇接的新产品,觉得好多事情被改写,好多知识需要学习,而新的创作流和习惯还在摸索。整理了一下 2023 年的作品,给 2024 加油~ ### 图零学院知识星球 4 月份开始运营关于生成式 AI 的知识星球,累计发布内容 350+篇,日常更新 AI 最新资讯。最近准备做一次大的改版升级,改名为「AI 创作工作流-图零学院」,不再以最新资讯为主,而会关注 AI 工作流,总结内容创作者日常会使用的高频工作流,比如收集资料、多语言翻译、数据整理、图文编辑、短视频生产、批量生成等等,目标是为创作者提供更实用的价值。 ![2-知识星球目录](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/2-%E7%9F%A5%E8%AF%86%E6%98%9F%E7%90%83%E7%9B%AE%E5%BD%95.PNG) ### 给创作者的提示词手册 4 月份制作了一个提示词手册,用比较可视化的方式整理了提示词 prompt 的使用方法,也包括工具的推荐。如果需要获取这本手册,可以在[公众号「设计极客 00」中查看历史文章](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzAxNDE2NzAxOQ==&action=getalbum&album_id=3016740700740354053#wechat_redirect)。 这个手册总结的提示词方法,放在今天也基本可用,最近准备进行一轮大的更新。 ![3-creator's prompt handbook Cover-s](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/3-creator's%20prompt%20handbook%20Cover-s.jpg) ### 《深入人心》 00 的第一本个人专著《[深入人心——数字产品设计的底层逻辑](https://book.douban.com/subject/36459345/)》在 7 月由机械工业出版社出版上市。 ![5-bookcover](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/5-bookcover.png) 在新书发布会上做了一次分享:数字产品设计的心理学秘密。 ![6-DesignPsy Press_Optimizer](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/6-DesignPsy%20Press_Optimizer.jpg) ### 20 天攻克 AI 绘画 系列课程 2023 年投入心力最多、耗时最长的作品就是《20 天攻克 AI 绘画课》这门以 Stable Diffusion 为基础的 AI 绘画课了。准备了 2 个多月,在 10 月份上线,课程总共 20 节课 ,系统教你上手 Stable Diffusion。有免费的试听课,感兴趣的朋友可以看看。 ![https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/231020课程封面图.png](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/231020课程封面图.png) ![绘画课-1-9](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/%E7%BB%98%E7%94%BB%E8%AF%BE-1-9.jpeg) ![绘画课-10-20-new](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/%E7%BB%98%E7%94%BB%E8%AF%BE-10-20-new.jpeg) ### 图零学院网站 [图零学院 |创作者的 AI 加油站](http://www.xueyuan.ai) 在 AI 大潮来临时,00 萌生了想重新读一次大学的想法,于是有了图零学院的构想,并且斥巨资(bushi)买下 xueyuan.ai 这个域名,开始研究怎么重新建一个网站,准备了一段时间以后,现在第 1.0 版本已经上线,欢迎大家访问。今年会继续更新,提供更多实用的 AI 资讯、工具和教程。 ### 2023 生成式 AI 回顾地图和应用榜单 11 月~ 12 月,图零学院和 AIGCxChina 联合发布了几个总结性工作,帮助大家更好地回顾生成式 AI 的发展,以及用上最前沿的工具: 1. ChatGPT 一周年生成式 AI 大事件时间线地图 ![11-GenAI-2023map-zh-v1](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/11-GenAI-2023map-zh-v1.jpg) 00 整理了 2023 年生成式 AI 领域的重大事件时间线,分为头条、产品(文本/图片/视频/代码/开源/其他)、模型、算力、政策五大部分,都集中在一张地图中,方便查阅。 获取大图:在公众号「设计极客 00」回复:2023,即可获得查看高清大图的链接。 2. 火花私享课:[2023 年生成式 AI 回顾和总结](https://www.xueyuan.ai/blog/2023-genai-map) [figma](https://www.figma.com/proto/IqE5XUoHct6UIusTD5Q3SJ/%5B00%5D2023%E7%94%9F%E6%88%90%E5%BC%8FAI%E5%9B%9E%E9%A1%BE%E5%92%8C%E8%BF%9B%E5%B1%95?page-id=1449%3A4287&type=design&node-id=1449-4289&viewport=80%2C319%2C0.06&t=mQcL5HeWFXPnrBjM-1&scaling=scale-down&mode=design) ​ 视频回放可以在我的视频号「设计极客 00」中查看。 ​ 另外两个工作是整理这一年最受欢迎的 AI 应用,分为中文和英文两个榜单。 3. [2023 年生成式 AI 应用推荐-中国](https://www.xueyuan.ai/blog/2023-ai-apps-zh) [https://www.figma.com/proto/G96Pt0Qeoss48VtXA8ycsd/2023-Gen-AI-Maps-by-00%40xueyuan.ai?page-id=3202%3A2139&type=design&node-id=3229-2443&viewport=174%2C362%2C0.34&t=NQyE619N53PxQ2jm-1&scaling=scale-down&mode=design](https://www.figma.com/proto/G96Pt0Qeoss48VtXA8ycsd/2023-Gen-AI-Maps-by-00%40xueyuan.ai?page-id=3202%3A2139&type=design&node-id=3229-2443&viewport=174%2C362%2C0.34&t=NQyE619N53PxQ2jm-1&scaling=scale-down&mode=design) 4. [2023 年生成式 AI 应用推荐-全球](https://www.xueyuan.ai/blog/2023-ai-apps-en) [https://www.figma.com/proto/G96Pt0Qeoss48VtXA8ycsd/2023-Gen-AI-Maps-by-00%40xueyuan.ai?page-id=3202%3A2139&type=design&node-id=3355-171&viewport=174%2C362%2C0.34&t=NQyE619N53PxQ2jm-1&scaling=scale-down&mode=design](https://www.figma.com/proto/G96Pt0Qeoss48VtXA8ycsd/2023-Gen-AI-Maps-by-00%40xueyuan.ai?page-id=3202%3A2139&type=design&node-id=3355-171&viewport=174%2C362%2C0.34&t=NQyE619N53PxQ2jm-1&scaling=scale-down&mode=design) ### AI 生成的概念视频 Demo 第一个全 AI 生成的视频《Predator》,野生动物纪录片风格 ![16-AI Demo1-red](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/16-AI%20Demo1-red.jpg) 第二个 AI 视频《New Vega City》,火星科幻大片风格 ![1-AI Demo2-red](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/1-AI%20Demo2-red.PNG) ### ComfyUI 工作流 [ComfyUI](https://github.com/comfyanonymous/ComfyUI) 是 2023 年我使用最多的工具,它是 node-based 的 AI 绘画工作流界面,比 Stable Diffusion 更灵活,消耗内存更少,是低显存的利器。我在 [liblib 上面分享的工作流](https://www.liblib.art/userpage/bb14cfd74d494567a3c2ce5e7b312e50) 已经有接近 1000 次下载,[欢迎关注](https://www.liblib.art/userpage/bb14cfd74d494567a3c2ce5e7b312e50)。 ![20-liblib-00](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/20-liblib-00.jpeg) ### 未来一年的创作方向 经过一年的学习摸索,2024 年 00 会更加聚焦价值,以作品为导向,把重点放在这几个创作的方向: - AI 工作流:帮助 AI 重度用户优化日常工作流,提高创作效率 - AI 工具和技术的科普:帮助更多女生成为 AI 受益者和创作者 - AI 技术和数据的可视化:用技术和设计的力量,挖掘数据的价值,并且通过可视化方式传播给更多的人。 --- 欢迎在以下平台关注图零学院和 00 - 视频号:设计极客 00 - 小红书:[00](https://www.xiaohongshu.com/user/profile/58d135c950c4b459eca90554) - 抖音:[00 的 AI 加油站](https://www.douyin.com/user/MS4wLjABAAAA3TkjKEGMdiupR4FQV_zxJ4kTPW4dZ4cI8MFA_2QkEmc) --- # 何为良好生活 - URL: https://tophci.com/posts/240101-what-is-good-life - Date: 2024/01/01 - Tags: 零反思 一种个人的欲望、能力与现实情境相匹配的生活。 一起迎接新一年的良好生活吧! 元旦快乐 ♪٩(´ω`)و♪ ![何为良好生活](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/%E4%BD%95%E4%B8%BA%E8%89%AF%E5%A5%BD%E7%94%9F%E6%B4%BB.jpg) --- # 2023年终AI工具热榜🔥27个入门必备神器 - URL: https://tophci.com/posts/231221-2023-ai-tools - Date: 2023/12/21 - Tags: 2023, AI, ChatGPT, AI 应用 2023 年生成式 AI 大爆发,00 爆肝盘点了这一年全球最热门的 AI 工具,帮大家精心挑选了 27 个热度最高的 AI 应用,包括 AIGC 的 9 个主要领域。 在讲座时被大家问爆了,这个 AI 工具集赶紧收藏起来,今天就开始学! 231221-ai-tools 1️⃣ 对话类 AI 神器:除了 ChatGPT,还有好多值得尝试的 AI chatbot 2️⃣ 助手类 AI 工具:Notion AI 是打工人、学生、自媒体的好帮手。革命性搜索引擎 perplexity 已经成为日常必备。 3️⃣ 图像 AI 神器: Midjourney 火爆全网。AI 入门怎么学?从文本生成图像开始吧! 4️⃣ 视频 AI 神器:这两个月最火爆的文本生成视频 AI 应用 Runway 和 Pika,你试用了吗? 5️⃣ 内容创作 AI 软件:AI 写作已经很成熟了,高效撰写文章,提升写作水平。 6️⃣ 代码生成:女生也能快速成为编程高手!谁说女生不适合写代码? 7️⃣ PPT AI 工具:PPT 和演示文稿自动生成,打工人反内卷必备神器。 8️⃣ 网站生成 AI 工具:没有设计师也能快速做一个自己的网站! 9️⃣ 自动化低代码 AI 神器:AI 时代,一定要多让机器帮我们干活! AI 真的无处不在了。 2023 年,记住这 27 个火爆全网的 AI 应用,让你的生活工作更轻松。 --- # 一图总结 2023 生成式 AI 里程碑大事件时间线 - URL: https://tophci.com/posts/231129-genai-2023-map - Date: 2023/11/29 - Tags: 2023, AI, ChatGPT, 可视化 2022.11.30,OpenAI 宣布正式推出 ChatGPT。 365 天过去,斗转星移,我们一起见证了生成式 AI 的寒武纪大爆发。 这一年来,国内外的生成式 AI 、大模型和产品以令人眼花缭乱的速度更新迭代,新的创业浪潮风起云涌,大家登记 waitlist 的速度都赶不上产品推陈出新的频率。国内更是开始了百模大战,不少国产大模型陆续宣布性能赶超 GPT3.5。大浪淘沙后,也有不少企业宣告解散,知名大模型项目「套壳」开源项目屡见不鲜。 回顾 ChatGPT 发布的这一年,都有哪些大事件,你会用哪些关键词总结? 00 整理了 2023 年生成式 AI 领域的重大事件时间线,分为头条、产品(文本/图片/视频/代码/开源/其他)、模型、算力、政策五大部分,都集中在一张地图中,方便查阅。 ![11-GenAI-2023map-zh-v1](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/11-GenAI-2023map-zh-v1.jpg) > 注:因个人能力、精力有限,难免挂一漏万,本次绘制的地图只提供一个概览,是一个历史切片,各种疏漏敬请谅解。 获取大图:在公众号「设计极客 00」回复 2023,即可获得查看高清大图的链接。 ### 生成式文本 ChatGPT 自 2022 年 11 月 30 日上线以来,一直引领着生成式 AI 的发展。 - 2023 年 1 月底 2 月初,ChatGPT 成为互联网史上最快获得 1 亿用户的产品。 - 2 月,ChatGPT plus 版本上线。 - 3 月 15 日,GPT4 炸裂发布,正式宣告生成式 AI 大爆发的开始,无数人开始研究如何能注册和使用上这个用数十亿美元打造出来的大杀器。 - 4 月,ChatGPT 开放了插件,原本简单的基于历史数据的对话,一下有了全新的能力和可能性,开发者多少对如此简单的接入感到兴奋和害怕。 - OpenAI 还在 5 月和 8 月分别推出了 ChatGPT 的 iOS 和 Android 应用,并在 11 月向所有用户开放移动应用的语音对话能力。 - 7 月,OpenAI 开放了 GPT4 API 、强大的代码解释器,并允许用户自定义指令 - 8 月,ChatGPT 企业版上线,3.5 turbo 模型支持微调 - 9 月,ChatGPT 集成新的语音和图像能力,联网浏览功能也恢复了,多模态能力进一步增强 - 10 月,继续是多模态能力,沉寂已久的 DALL·E 更新到第三代,GPT4V 接口也发布了 - 11 月,OpenAI 高层戏剧化政变,Sam Altman 几进几出,全球观众不眠不休追剧 除了 ChatGPT, 对话式 AI 产品也诞生了几个实力强大的竞争者。 关系微妙的好基友 Bing Chat 紧随 ChatGPT,在 2 月就占得先机,原本几乎没有什么市场份额的 Bing 搜索引擎重获新生。在「普惠」这件事情上,没有人比微软做得更快更好,不但云服务全线铺开,而且 Copilot 在 11 月已经深度集成到 Windows 生态中。 另一方面,挑战者 Anthropic 的 Claude 在 3 月紧随 GPT4 上线,并率先在 5 月份支持长达 100k 的上下文。7 月 Claude2 发布,到 11 月,Claude2.1 已经支持 200k 的上下文,并开放了数据调用能力。 Google 在生成式 AI 的浪潮中,多少给人一种「起了个大早,赶了个晚集」的感觉。最早提出 transformer 架构,在大模型技术储备上让人望其项背,但因为搜索引擎牵一发动全身,Google 在 3 月仓促推出 Bard,一时差评如潮。随着 PaLM 和新版搜索引擎的改进,以及 Duet AI 、新一代 Gemini 模型的推出,Google 在几个月内完成了生成式 AI 生态的完整布局,不得不让人感叹家底雄厚。 在其他应用领域,产品和创新就更加不胜枚举了。现在回头看 Poe 套壳应用的巨大成功,不知道 OpenAI 董事会的 Quora(孵化了 Poe) 创始人 Adam D'Angelo 到底扮演了什么角色,这让故事蒙上了阴谋论的迷雾。Notion AI 也是最早集成 AI 能力的产品之一,在场景化的应用中树立了标杆。 最后(也是最重要的)一件事,是 4 月 LLaMA 的史诗级泄露,大模型进化树全新开源分支一骑绝尘。 GPT 和 LLaMA 这一对 iOS 和 Android,联手开启了生成式 AI 的寒武纪大爆发的开关。 ### 生成式图像 文生图领域同样迎来了突飞猛进的一年。生成式图像的生态可以划分为三大阵营: **开源工具**:以 Stable Diffusion 为代表,这一类好比安卓系统,生态丰富而且活跃,既有完全开源的 Stable Diffusion,也包括很多基于 SD 做了二次封装的文生图工具比如 Dreamstudio、[leonardo.ai](http://leonardo.ai)、[dreamlike.art](https://dreamlike.art/create)、playground ai 等等。 Stable Diffusion 2.0 并不成功,4 月 SDXL beta 版本发布,让大家重新对文生图能力充满了期待,7 月 SDXL 正式上线,目前还处在降低算力要求的推广融合阶段。随着 civitai(C 站)和 WebUI 、ComfyUI 的普及,还有 Meta 在基础模型和算法方面的持续贡献,开源工具会继续推动生成式图像生态的繁荣和创新。 **闭源工具**:以 Midjourney 为代表,可以类比苹果手机,生态封闭但用户体验较好,还包括 DALL·E3、Bing Image Creator、文心一格等。Midjourney 在 2023 年成为“小团队-大产品”的代言人。 3 月 V5 上线, 5 月 5.1 版本,6 月 5.2 版本,每一个版本都让人惊叹 Midjourney 的画质如此出色,甚至怀疑跟 Stable Diffusion 还是不是同源技术。 **设计工具 2.0**:以 Adobe Firefly 为代表,是在原有的设计工具中集成 AI 辅助的功能,还包括 Canva AI、Microsoft Designer、Framer AI 等等。Firefly 可以说是成也专业,败也专业。直接集成在 Adobe Creative 尤其是 Photoshop 中,能完败绝大多数的文生图应用,但是也会相对局限在专业设计师和创意人群中。11 月,图像 AI 生成领域迎来了实时绘制的浪潮,KREA 和 Clipdrop 相继上线实时绘制功能,相信这对设计工具 2.0 会是一次重大突破,专业画手被冲击的部分又有了新的价值展现! 对了,00 也做了一门 20 节课的 《[20 天攻克 AI 绘画课](http://mp.weixin.qq.com/s?__biz=MzAxNDE2NzAxOQ==&mid=2667164391&idx=1&sn=7e39e831eb41cf454536693be4cc4bf3&chksm=809a6c63b7ede575bba6ad1209ef866e14f317f0fec11a424c4779b38b8da91eafc624160870&scene=21#wechat_redirect)》,系统教你上手 Stable Diffusion,感兴趣的朋友可以看看。 ### 生成式视频 2023 年是 Generative video 的元年。在大家还在摸索文生图的时候,文本生成视频的快速进化让人眼花缭乱。 进入下半年,由 Runway ML 引领的生成式视频领域车速猛增,先是 Gen-2 上线,生成式视频开启卷王模式,Pika,LumaAI,Morph Studio,Moonvalley,PlaiDay,Mootion 等一众文生视频应用百花齐放。 11 月,竞争进入白热化阶段,Gen-2 受 Pika 等刺激完成了大更新,视频质量有了跃迁。Pika1.0 在可控性方面又有了极大提升。文生视频也迎来更大 的开源玩家:Meta 发布 Emu,Stability AI 发布 Stable video diffusion,学术界同时在争相发布降低生成成本的研究。明年,生成式视频一定会迎来大爆发,图像创意工作者的创作流程将会被改变。 ### 生成式代码 生成式代码是高端玩家的竞技场。主要也有三股力量: - 代码平台:以 Github Copilot 为代表,还包括模型社区 Hugging Face 发布的 StarCoder。因为坐拥海量的源代码和模型,解放生产力是优先的场景。 - 大模型和开源生态:很多综合大模型都会有专门的代码生成模块,这也许会成为评估模型能力的重要指标。Meta 2023 年一头扎进开源搞建设,大有成为 AI 安卓之势。 - 商业养蛊:Salefore 和幻方发布了自己的代码生成模型,CodeGen2 在 5 月发布,DeepSeek 11 月上线。有钱人往往也有远见,先用资源垒出壁垒,让别人在日后难以竞争,是为商业养蛊~ 对了,请不要忽略 5 月份新的 AI/ML 编程语言 Mojo 的发布,期待明年会有更精彩的生态演绎。 ### 开源应用 2023 年什么最火?ChatGPT。2023 年哪里最热闹?GitHub 😄 (抱抱脸稍微不服气) - 2 月,文生图领域拯救 Stable Diffusion 的 ControlNet 在 上线,作者还开发了 Fooocus(取代难用的 A1111 WebUI,不是) - 3 月,2022 年已经发布的的 Langchain 一下踩中了风口,成为生成式 AI 第一开源股(不是)。半年后逐渐取代 SD WebUI 的 ComfyUI 悄悄 init 了 - 4 月,AutoGPT 大红大紫,带动了 Agent 概念极速发展 - 6 月, DragGan 引发了可控文生图的热潮 - 7 月, AnimateDiff 开始推动文生视频的发展 - 11 月, LCM 带来低显存福音,1 秒出图不是梦,3060 生成视频不是梦 Github 的热闹,还是得每天刷新热门项目的 star 数才能感受到,请大家移步本地图的 Github 地址,star 一下支持原创 🫣 英文版地图:https://github.com/kidult00/genai-2023-map 中文版地图:https://github.com/kidult00/genai-2023-map/blob/main/zh_version.md ### 模型 大模型这一块,相信各种商业分析、创业社区、大中小厂官网,已经日常轰炸大家许久了。这里就不念 PPT 了,大家可以在月历中查阅。 ### 算力 算力领域的故事比较单薄,英伟达强者恒强, 宣扬 AI 的「iPhone 时刻」到来并表示 all in 生成式 AI。11 月,英伟达发布 H200 芯片,地球最强没跑了,尤其在训练场景,试图进一步拉大产品性能及产业链上下游的优势。 位于第二梯队的 Google 研发出为机器学习定制的专用芯片 TPU,5 月已经发布第五代。追赶者 AMD 也在 6 月推出了 MI300X AI 芯片,反响一般。深感算力不够用的大厂纷纷开始准备自研芯片,包括微软、 Meta、亚马逊、华为等。 ### 政策 关于监管,关于数据安全,关于版权,关于隐私,关于 AGI,可以说 gov 都是慢半拍。 7 月份公布的《生成式 人工智能服务管理暂行办法》备受关注。欧盟受在大模型竞争中全面落后,不过发布了全球第一部人工智能法案。 --- 2023 年绝对是历史性的一年,人类走出 COVID-19 的阴霾,迎来了生产力的革新(爆头冲击)。 对从业者来说,这是一惊一乍的一年。对创业者来说,这是不眠不休的一年。对创作者来说,这是眼界大开的一年。对普通人来说,这是历史车轮加速的一年。 想一想又有点不对,AI 一天,人间已一年。 祝愿大家在 2024 年少一点疲于奔命,多一些笃定,多一分创作。 --- # 浅尝 OpenAI 最新福利 Assistants API - URL: https://tophci.com/posts/231107-try-assistants-api - Date: 2023/11/07 - Tags: OpenAI, AI, ChatGPT, API OpenAI 今天在开发者大会上发布了 Assistants API,现在可以自定义 AI 助手了。 之前使用 ChatGPT 基本靠提示词,联网功能、 DalleE3 画图功能、代码解析器不能一起工作,需要切换各种模式,相当受限。现在有了 Assistants 助理,可以一下子整合指令、模型、工具(包括各种 API)和私有知识库(文件)来完成对话。毫无疑问,功能更丰富也更灵活了,大大突破了提示词的局限。 ### 什么是助手 API? 一些新的概念整理如下: ![](https://cdn.openai.com/API/docs/images/diagram-assistant.webp) | 对象 | 释义 | | --------- | ---------------------------------------------------------------------------------------------- | | Assistant | 使用 OpenAI 模型和调用工具的专用 AI | | Thread | 助理与用户之间的对话会话 | | Message | 由助理或用户创建的消息,包括文本、图像和其他文件。消息存储为线程中的列表。 | | Run | 在线程中调用助手。助手根据配置和线程的消息,调用模型和工具来执行任务。生成的消息会附加到线程。 | | Run Step | 助手运行时执行步骤的详细列表。“运行步骤”可以检查助手是如何获得最终结果的。 | 助手实际上是一个集合,可以自定义以下命令的组合,来帮助用户达成目标: - 指令(Instructions):助手和模型要做什么,也就是之前我们已经很熟悉的提示词 - 模型:GPT-3.5 或 GPT-4 模型的型号。如果要用到检索工具(Retrieval tool),就需要指定`gpt-3.5-turbo-1106`或`gpt-4-1106-preview`。 - 工具:使用 `tools` 参数可给予助手多达 128 个工具的访问权限。Assistants API 目前支持三种 OpenAI 官方的[工具](https://platform.openai.com/docs/assistants/tools): - 代码解释器(Code Interpreter) - 检索(Retrieval) - 函数(Functions):通过 `function` 调用第三方工具,可以自定义函数签名。 未来 OpenAI 会发布更多工具,用户还可以共享已经定义好的 Assistants。 - 文件:使用 `file_ids` 参数给予工具访问文件的权限。文件使用 `File` [opload endpoint](https://platform.openai.com/docs/api-reference/files/create) 上传,并且必须将 `purpose` 设置为 `assistants `才能与此 API 一起使用。每个助手最多可以附加 20 个文件,每个文件最大 512 MB。组织上传的所有文件不应超过 100 GB。 ### 如何创建助手? Assistants API 的典型流程是:创建助手—创建线程—添加消息—运行—显示。 #### 步骤 1:创建助手 在 API 中自定义指令并选择模型来创建[助手](https://platform.openai.com/docs/api-reference/assistants/createAssistant),可以启用代码解释器、检索和函数调用等工具。下面是一个创建数学老师的例子,需要开启代码解释器。 ```python assistant = client.beta.assistants.create( name="数学老师", instructions="您是一名数学老师,请编写并运行代码来回答数学问题", tools=[{"type": "code_interpreter"}], model="gpt-4-1106-preview" ) ``` #### 步骤 2:创建线程 线程和消息表示助理和用户之间的对话会话。建议在用户发起会话后,立即为每个用户创建一个线程,并在用户回复时将 Messages 添加进来。 ```python thread = client.beta.threads.create( messages=[ { "role": "user", "content": "Create 3 data visualizations based on the trends in this file.", "file_ids": [file.id] } ] ) ``` 线程没有大小限制,支持任意多的消息。API 将使用如截断等技术,确保请求在最大上下文限制之内。 助理可以访问多种格式的[文件](https://platform.openai.com/docs/assistants/tools/supported-files)作为创建文件或对话的一部分。使用工具时,助理还可以创建文件(图像/电子表格等)并引用。例如,要创建基于 `.csv ` 数据可视化的助手,先上传文件,然后用上传的文件创建助手。 ```python file = client.files.create( file=open("speech.py", "rb"), purpose='assistants' ) assistant = client.beta.assistants.create( name="数据可视化助手", instructions="你很擅长创建美观的数据可视化。请分析.csv文件中的数据,总结趋势,并将与趋势相关的数据进行可视化,并简要说明你观察到的趋势。", model="gpt-4-1106-preview", tools=[{"type": "code_interpreter"}], file_ids=[file.id] #在助手级别传递的文件可由所有具有此助手的用户访问 ) ``` #### 步骤 3:在线程中添加消息 在用户提问时向线程添加[消息](https://platform.openai.com/docs/api-reference/messages)。消息包含用户的文本,以及上传的文件。目前不支持图像文件。 ```python message = client.beta.threads.messages.create( thread_id=thread.id, role="user", content="请帮助我解这个方程 `3x + 11 = 14`" ) ``` 现在,如果你[在线程中列出消息](https://platform.openai.com/docs/api-reference/messages/listMessages),会看到这条消息在创建线程时被添加到线程中: ```json { "object": "list", "data": [ { "created_at": 1696995451, "id": "msg_4rb1Skx3XgQZEe4PHVRFQhr0", "object": "thread.message", "thread_id": "thread_34p0sfdas0823smfv", "role": "user", "content": [{ "type": "text", "text": { "value": "请帮助我解这个方程 `3x + 11 = 14`", "annotations": [] } }], ... ``` #### 第 4 步:运行助手 创建一个[Run](https://platform.openai.com/docs/api-reference/runs/createRun)来让助手响应用户消息。助手会读取线程,并决定是否调用工具或使用模型来回答用户查询。随着运行的进行,助手将消息附加到带有`role="assistant"`的线程。 你可以选择在创建运行时向助手传递其他指令: ```python run = client.beta.threads.runs.create( thread_id=thread.id, assistant_id=assistant.id, instructions="请称呼该用户为王总,他是我们的 VIP 会员。" ) ``` 默认情况下,Run 将使用 Assistant 对象中指定的 `model` 和 `tools` 配置,我们也可以在创建 Run 时修改: ```python run = client.beta.threads.runs.create( thread_id=thread.id, assistant_id=assistant.id, model="gpt-4-1106-preview", instructions="additional instructions", tools=[{"type": "code_interpreter"}, {"type": "retrieval"}]#启用代码解释器和检索 ) ``` 运行对象可以有多个状态。 ![](https://cdn.openai.com/API/docs/images/diagram-1.png) | 状态 | 定义 | | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | queued | 当首次创建队列或完成`required_action`时,它们将(马上)移动到排队状态 `in_progress`。 | | in_progress | 在进行中时,助手使用模型和工具来执行步骤。可以通过检查 Run[Steps(运行步骤)](https://platform.openai.com/docs/api-reference/runs/step-object)来查看 Run(运行)的进度。 | | completed | 运行完成。现在可以查看助手添加到线程的所有消息,以及 run 采取的所有步骤。可以向线程添加更多用户消息并创建另一个 Run 来继续对话。 | | requires_action | 当使用[函数调用](https://platform.openai.com/docs/assistants/tools/function-calling)工具时,一旦模型确定了要调用的函数的名称和参数,Run 将移动到`required_action `状态。然后,必须运行这些函数并在运行继续之前[提交输出](https://platform.openai.com/docs/api-reference/runs/submitToolOutputs)。如果在 `expires_at` 时间戳截止(约创建后 10 分钟)前未输出,则进入过期状态。 | | expired | 当函数调用在 `expires_at` 之前没有提交并且过期时,变成过期状态。此外,如果运行时间过长,超过了 `expires_at` 中规定的时间,系统也会终止运行。 | | cancelling | 可以尝试使用 [Cancel Run](https://platform.openai.com/docs/api-reference/runs/cancelRun) 端点取消 `in_progress` 运行。一旦取消成功,运行状态将变为`cancelled`。 | | cancelled | 已取消运行 | | failed | 可以通过查看 Run 中的 `last_error` 对象来查看失败的原因。失败的时间戳将记录在 `failed_at` 下。 | #### 第 5 步:显示助手的响应 这将在 `queued` 状态下创建运行。为了使运行状态保持最新,需要定期 [检索 Run](https://platform.openai.com/docs/api-reference/runs/getRun) 对象,以确定应用程序下一步应该做什么。 ```python run = client.beta.threads.runs.retrieve( thread_id=thread.id, run_id=run.id ) ``` 运行完成后,可以检索助手添加到线程的消息。 ```python messages = client.beta.threads.messages.list( thread_id=thread.id ) ``` 最后,将它们展示给用户。在此运行期间,助手向线程添加了两条新消息。 | 作用 | 内容 | | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `user` | 我需要解方程#1。你能帮帮我吗? | | `assistant` | 当然。为了求解方程`(3x + 11 = 14)`和`(x)`,你需要将`(x)`隔离在方程的一侧。你可以这样做:从等式的两边减去 11 得到`(3x = 3)`。然后,将两边除以 3,求解`(x)`。让我为你计算一下`(x)`的值。 | | `assistant` | 方程`(3x + 11 = 14)`的解是`(x = 1)`。 | --- # [访谈]巨人的工具:未来比注意力更稀缺的是共识 - URL: https://tophci.com/posts/231017-my-ai-tools - Date: 2023/10/17 - Tags: 工具, AI, 人机交互 ## 您认为 AI 会在不远的未来,在哪些方面严重地影响我们的工作和生活,请举例说明。 这个话题有很多可聊的,我主要围绕内容生产和消费来想象一下。 **什么会变多?** 几乎所有的符号型的内容供给都会成倍增加,包括文字、图像、影像、声音等。只要是人能接收和理解的符号,大都早已数字化,能够很方便地生产出来。现在,大模型、AI 的意图理解和跨模态能力,让数字内容生成变得轻而易举。最开始是文本,但只要找到文本和声音、图像之间的映射和关联关系,生成非文本内容也会变得非常容易。比如 AI 绘画,正是借助了文本-图像的跨模态能力,用文字就能迅速生成图像。 人类已经很擅长用文字表达一切——如果它能够被表达和接收的话。我认为,文字这种符号就是 AI 智能化的一条捷径,因为文字是高度压缩的、人类共享的意义符号。符号本身是什么不重要,重要的是人们已经用这些载体承载了意义。越有共识的符号,越可能被大量复制。 **什么会变少?** 在内容供给极大增加的同时,需求的增长不会那么显著,因为人用来消费内容的时间是有限的,注意力会变得更加稀缺,人们在每段内容上停留的时间也会变少(长篇巨制被碎片化内容包围)。在 AIGC 的时代,产能过剩,内容需求会更加极化,大家可能越来越依赖这么几个筛选策略:关心那些每个人都关心的(现象级爆款),关心那些只有自己关心的(个性化),关心那些社区关心的(亚文化)。身份认同变得更加重要。 **什么会更有价值?** 需求比较恒定,但供给并不随 AI 成倍增加的东西会更有价值,比如: - 需要时间沉淀的 - 影响变量多,随机性较大,比如爆款 - 个性小众的、难以批量复制的 需求增加,但供给会因为 AI 而减少的东西则最有价值: - 共识:比注意力更加稀缺的、更有价值的,我认为是广泛的共识。共识非常依赖于长时间、强交互、身份或利益捆绑的环境,这些在以后也许会更加稀薄。小范围同温层的共识会增加,但是不同群体之间的沟通可能会变得更加困难。 - 人性化表达:如果意识到 AI 的符号化表达能力很强悍,我想人的表达方式会趋向于更「直接」。直接是指那些更加本能的方式,包括情绪、声音、肢体动作等。AI 擅长的,就不需要每个人都花费数年时间去训练了,这大概会使得人的书面文字组织和表达能力下降(故事除外),而口头语言和肢体动作等更加「原生」的能力会变得更为重要。 如果说对工作和生活会有什么影响,我也还在思考。曾经,包括现在,基于符号的工作和人际互动,比如数学、语言、工程师,都是困难而且地位较高的,也许在不久以后,基于符号的工作慢慢会转交给 AI,更多人会从事直接跟人互动的工作。学校的教育如果能应需而变,也许要把更多的资源放在开发情绪智力、美学、运动上,以及指导学习者掌握人机协同的方法,而不是继续死磕符号的生成和计算(传统的文科和数理化)。 ## 我们人类需要隐喻来理解新事物。如果给 AI 找一个比喻的话,您会用什么? 这是个有意思的问题。我想从「本质」和「关系」这两个方面来入手。 如果讨论 AI 本身更像什么,我想到的是乐高积木,或者说乐高的思维。乐高的基本单元非常简单,但是却能创造出无穷无尽的形态甚至是整个世界。这种不可思议的背后,我认为跟「降维」的力量有关。当我们把大千世界还原为三维世界的 (x,y,z) 坐标,就能表示每一个位置。每一块乐高就是一个「点」,如果把世界拆成最小的原子,然后再重新组合起来,我们就拥有了无限可能和强大的创造力。 大语言模型在一些地方跟乐高很类似。它是一种自然语言处理模型,用于预测一段文本中下一个单词或符号的概率。同时它也是一种统计模型,基于概率分布来建模自然语言的语法和语义规则。GPT 就是一种语言模型,实际上它做的事情很专一:基于上文持续预测最可能出现的字符串。它之所以能预测得很准确(或者说很合理),是因为它经历了巨量文本的学习。当研究者把全网的文本集中到一起,把这些数据「降维」成一维的纯数字「向量」,就将这些海量的数据从最初的形态中解放出来。如果能找到一种高效重新组织文本的方法,那么大模型就拥有了无穷的创造力,也就是我们现在看到的基于向量空间相似度计算的文本生成能力。 AI 生成图像也类似,本质上,它是一个”计算所有像素应该如何分布“的过程,只要把二维平面内每一个像素的值都计算出来,就得到一幅完整的图像。现在最常用的稳定扩散模型,就是从随机的噪声开始,逐渐把噪声“清理”干净,直到生成清晰的图片。图片的像素也是「乐高」。 AI 就像乐高一样,带给我们重组像素、重组文本、重组语言以至于重组世界的能力。 刚才我们从「本质」用乐高的比喻来理解 AI。现在我想切换到人和 AI 的关系的视角,用什么比喻适合呢?很多人都提过人机关系的其他隐喻:助手、宠物、老师、博弈对手等等,但我想到的是「镜子」和「镜像」。 在电影《Her》中,男主使用智能操作系统 Samantha 后,与 ta 产生了深层次的心灵交流。Samantha 通 过学习,逐渐了解和体贴男主,给予他精神支持,很像一个真真切切的伴侣。但 ta 无法体会人类的真实情感和经历,只能通过数据学习模们人性。这如同镜中形象,缺乏真实内在。更多时候,我们在 AI 中看到的、得到的回应,其实是自己的投射。当我跟 ChatGPT 对话时,对话受到我的思考、见解和经验的局限,我只能问出我能够企及的问题,而我们的对话也会局限在我能认知的范围之内。如果换了一个人,费曼也好,村上村树也好,对话内容就会完全不同。你是谁,AI 就会映照出你是谁。我们常说 xx 如镜,能反映出自己的想法、得失。AI 也如同镜子,只不过它背后集成了人类的浩瀚样本,能根据镜子前的人快速准确定位到类似的样本上。跟以前笨笨的魔镜不同,回答不上“谁是世界上最 xx 的人”,大模型总是能说出你想听的话,让人总有一丝顾虑:长此以往,镜子中的自己到底是真实的自己,还是 AI 猜到的我想让 AI 让我看到的自己 🤷。 AI 的突飞猛进,还带了另外一个影响,让我们更加深刻地反思人类到底擅长什么。曾经让我们引以为傲的创意能力,在生成式 AI 面前竟然如小巫见大巫,这对人类的自恋是一次不小的冲击。在冲击之余,我们会开始放下一些骄傲,多一些哲学层面甚至存在意义的思考。智能是什么?意识是什么?创造是什么?人的价值感从而而来又将去向何处?……AI 就像一面(照妖)镜子,让我们又一次看向镜中的自己,思考眼前所见,和那些不见踪迹但始终萦绕在这个物种意识深处的存在危机。 ## 除了 Github 之外,能否介绍一个您觉得特别值得大家去订阅或者加入的 AI 领域的网站、媒体或其他信息源? AI 领域的信息源太多了,我推荐三个还不错的吧。 - A16z:https://a16z.com/ai/ ,A16z(Andreessen Horowitz) 是一家风险投资公司,它对 AI 领域有不少深度洞察,如果想获得国外的前沿深度报道,可以关注。 - 奇思:https://news.miracleplus.com/feeds,奇思是奇绩创坛的社区,大模型日报会汇集每天 AI 领域的最新动态,涵盖面广、时效性强,值得追踪。 - Stable Diffusion 教程: https://stable-diffusion-art.com/ 有非常全面而且详尽的 Stable Diffusion 教程,想学习 AI 绘画的话不要错过。 ## 能否介绍一些您个人使用 AI 工具的小技巧或者心得体会? 最近我研究 Stable Diffusion AI 绘画比较多,相比 Midjourney,它的功能确实更加丰富和灵活,但代价是入门曲线比较陡峭,操作界面实在称不上友好。不过如果能顺利通过入门阶段,Stable Diffusion 确实是一个强大的创作工具。 我举一个提示词的例子。很多人在刚接触 AI 绘画时,都觉得凭空写提示词很难,因为我们在日常生活和工作中,很少这样去想象和用英文描述画面。总结起来,这些障碍包括: - 脑海中没有明确的画面,不知道从何入手 - 不知道哪些提示词是有用的、必要的 - 容易遗漏重要提示词 - 需要输入英文提示词,但自己的英语词汇量有限 - 当出图不符合预期时,不知道怎样调整提示词 针对这些难点,我花了很多时间去学习、试错、总结经验,现在慢慢都沉淀到我的 AI 绘画课程中,后续会在我的公众号「设计极客 00」中发布,这里先简单介绍三个 Stable Diffusion 插件,能大大提高写提示词的效率。 **Prompt all in one** 安装 Prompt all in one 之前和之后绝对是两种不同的使用体验。 在扩展页面搜索并安装成功后重启 WebUI,可以看到提示词输入框下方出现了一排新的按钮。选择语言为简体中文以后,就可以开始在右侧的小输入框中输入中文,回车后内容填入到上方提示词输入框内,等待一两秒,插件会自动翻译成英文。冥思苦想还要查字典写提示词的日子,就这样结束了!你甚至可以设置 ChatGPT 的 API,只输入几个词然后让 GPT 帮你补全。 另一个特别好用的工具是对照翻译。有时候我们在网上看到一些效果非常好的提示词,一大段陌生词汇着实让人头疼。有了 prompt all in one,你可以复制到提示词输入框,一键翻译所有提示词,就可以看到每个提示词对应的中文翻译了,还可以生成图像看看到底是什么效果。ps.这可是学习优质提示词的好方法。 **Boorutag autocompletion** 虽然有了自动翻译工具,但有时候我们还是会想直接写英文提示词,尤其是常用词和缩写,比如 masterpiece 和 NSFW,一不小心就会拼写错误。这时候自动补全功能就非常有用了。安装了 Boorutag 插件后,在输入框开始输入文字,就会有一个浮层显示最常见的相关提示词,选择后按 tab 键,完整的提示词就会自动补全,不再需要每一个字母都输完并且反复检查。 **Style editor** 每次打开 WebUI 需要从头开始输入提示词,特别是一些负向提示词,如果都要重新打一遍真的很烦人。当我们使用了一组效果不错的提示词,可以保存为模板下次使用,尤其是高频使用的词组最好能快速加载。另外,当你保存的模板多了,有时候可能需要删除掉某些模板,或者要做些修改,怎么办呢?提示词模板的文件存放在根目录的 style.csv 文件夹中,打开是可以编辑的,不过使用起来还是比较麻烦。Style editor 插件可以帮到你。 安装后重启 WebUI,可以看到 WebUI 顶部多了一个标签,打开标签可以看到一个列表,正是风格模板列表中的提示词模板,在这个列表中你可以直接修改提示词!也可以新增和右键选中后按 Del 键删除,真的是非常方便了。高级的玩家一般会按风格建几个常用模板,比如动漫、写真、商品图等等。这个插件绝对是高手路上的必备神器。 除了提示词,Stable Diffusion 的学习还会有很多难点,比如参数组合、精确控制、高清放大等等,在我即将推出的 AI 绘画课程中,会有更多更详细的教程和技巧,感兴趣的朋友可以关注公众号「零反思」。让我们一起迎接新的创作时代吧! --- # 我的新书《深入人心》上市了 - URL: https://tophci.com/posts/230720-00-first-book - Date: 2023/07/20 - Tags: 深入人心, 出版, 设计, 心理学 00 的第一本个人专著《[深入人心——数字产品设计的底层逻辑](https://item.jd.com/13798493.html)》上市了! ![5-bookcover](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/5-bookcover.png) 从书名可以看出,这本书的主题是讲数字产品设计的,但其实更重要的关键字是:人心。这是一本用心理学原理解读数字产品设计方法论的书。数字产品如何改变了生活?它们是怎样变得如此深入人心?想设计有用、好用的数字产品,需要思考些什么、做些什么?这是本书想探讨的问题。 ### 好产品,坏产品 > 为什么要读这本书? 我们是数字产品的使用者。人选择了工具,工具也塑造了人。我们在数字产品中消费越来越多的时间,也正在将许多生活体验“外包”给它们。在面对海量产品时,我们要如何挑选,应该如何使用?在一次又一次的互动中,形成了什么样的感受?对我们的生活有什么影响? 我们也是数字世界的设计者、建设者,一个产品设计的更新迭代,可能会影响成千上万用户。在确定某个产品功能的方案时,你清楚背后的依据吗?这些依据是否足够可靠?这些改动对不同人群会产生什么样的影响?如何能设计更好的产品,让我们身处在这个变动不居的时代,能过上一种更丰富而从容不迫的生活呢? 阳志平老师在人性系统论中,很强调”情境“的作用。电子设备和数字产品已经成为我们非常重要的”情境“。 每一次我打开手机查看屏幕使用时间,都会被自己花在手机和电脑上的时间所震惊。试想一下,如果我们家里的卧室总是不能让我睡个好觉——可能是窗帘遮光效果不好,天一亮我就醒了,那我一定会想办法改善睡眠环境,比如换一个密不透光的窗帘。但是我们每天在手机上花那么多时间,却好像不怎么在意这些 App 怎样影响了我们,每天刷过的这些文字、图片、视频、广告怎样影响了我们。希望这本书能够提醒大家,在这个永远在线的互联网时代,其实我们可以去选择对用户友好的应用,甚至创造更好的产品和设计,来净化和升华我们所处的数字情境。 ### 破解数字产品设计的钥匙 > 我如何思考和组织这本书? **不变的是什么?** 世界变化太快了,新技术变化更快。有意思的是,技术和工具越是强大,反而越是映照出我们对人的理解很匮乏。比如最近半年的生成式 AI 浪潮,抛给我们很多问题:为什么模型达到一定规模会涌现出令人意想不到的能力?机器的推理能力是怎么来的?什么是意识?什么是智能?创造力是人的特权吗?…… 我们很难从一直变化的表象中获得深入的洞察。所以,我认为应该更多地思考“不变”的东西,也就是向那些在变化中始终“不变”的部分发问:人如何感觉、思考、行动?人到底需要什么? ![dp-07](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/dp-07.png) 无论是为满足哪一种需求而设计,都要一次又一次地回到人的身 上,认真地思考和理解用户/客户/买家/玩家/学员/消费者们身处什么样的环境,受到哪些动机和需求的驱使,有怎样的想法和预期,会如何反应、选择、行动,又会产生哪些情绪和感受,期待什么样的体验和服务。这个过程,是用技术来服务人的开端。 我相信,无论技术如何演变,都会围绕 “人”来展开。设计好的产品,离不开对人的观察和理解。在瞬息万变中洞察共性,是我们最重要的课题。数字产品设计中真正不变的,就是: > 理解人,构建人和系统的关系。 **什么是好设计?** 评价一个设计好不好,其实比我们想象要难得多。 比如说,同一个 App 界面,有的用户很喜欢,另一些人用着觉得很挫败,一些界面的细节被设计师同行交口称赞,但是被工程师吐槽。比如说,有一款制作精良的游戏,能让玩家不停地熬夜闯关和氪金,这个是不是好设计?还比如,移动互联网给我们带来了无数便利,但是也在时刻不停地收集个人隐私信息,我刚跟朋友在对话框中说天气热,打开一个 App 就给我推荐空调,这是不是好设计? 评价一个设计好不好,真的是一件没有成本但疑点重重的事情。不过可以肯定的是,一个设计的好坏,并不由设计者决定,也无法交给机器来评判,最终还是要回到人的真实体验。这指向了问题的根源:如何理解人? 读完这本书,你可以不再受限于现有的直觉式反应和词汇,什么高大上,什么丑搓 low,而是掌握更多以人为中心的视角和理论去深入分析数字产品。 数字产品设计要处理人与产品的关系。数字产品并不是一个有形的、不变的物品,承载它的硬件可能形态万千。它可能有人机交互的界面,例如屏幕、鼠标键盘、游戏控制器,也可能没有界面,例如智能音箱。但它们都是有着复杂的规则、数据交换和处理过程的「系统」,可以响应输入并提供可理解的输出。 ![dp-09](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/dp-09.png) 人与数字产品的关系,首先发生在人类的感知、认知、行为层面,这正是心理学包括认知科学的研究重点。而心理学与计算机等学科交汇之处,又产生人机交互(human-computer interaction)、人因学(human factors)等领域,它们致力于研究人如何与机器、复杂系统互动。设计的核心价值之一,就是让机器更懂人。 **秘密钥匙** 解锁好设计的其中一把秘密钥匙,我认为是从各学科研究成果中,去学习、发现、增进对人的理解,然后促进人与复杂系统的对话。心理学自然是一个理想的切入点,它研究人类内在心理过程和外在行为。本书会聚焦于界面设计、交互设计、产品设计与心理学相关的部分。更具体地说,本书主要参考和梳理以下研究领域在数字产品中的应用。
本书涉及的主要研究领域和代表学者
| 研究领域 | 研究对象 | 代表学者 | | ---------- | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | | 认知心理学 | 研究人们如何获得、储存、转换、运用以及沟通信息,包括知觉、注意、回忆、思考、推理、决策等心理活动。 | Herbert A. Simon,Alan Baddeley,Don Norman | | 人因学 | 研究人与系统其他组成部分之间的交互关系的学科,并应用理论、原理、数据和方法进行设计,以优化系统效能和人的幸福健康之间的关系。 | Arthur Kramer | | 工程心理学 | 研究工作场所中人的作业,包括脑的理论、行为的理论、认知的理论,属于应用心理学的一个分支。 | Christopher D. Wickens | | 可用性工程 | 研究并改善人机交互系统的可学习性、效率、可记忆性、出错和满意度等属性。 | Jakob Nielsen,Alan Cooper | | 行为经济学 | 研究心理、认知、情感、文化和社会因素对个人和机构决策的影响。 | Daniel Kahneman,Richard Thaler | | 行为设计 | 研究设计如何塑造或用于影响人类的行为。 | B.J. Fogg | | 社会心理学 | 研究人们如何看待他人,如何互相影响,如何与他人互相关联的科学。 | Robin Dunbar,David Myers | 在书里,我想和你一起探索如何从模型中学习,也就是从学者们关于人的研究中,汲取数字产品设计所需要的养分,甚至找到可以直接使用的理论框架,来提升我们对人这个复杂对象(或群体)的理解,从而做出更好的设计。 **三重心智** 认知心理学家斯坦诺维奇提出了三重心智模型,将人类的认知能力分为自主心智,算法心智,反省心智。 自主心智主要受进化影响,只要触发性刺激出现,认知过程就会快速而自主地发生,例如,识别人脸和演奏乐器等内隐学习过程。算法心智指对事物做出思考与判断的认知加工,速度较慢、大脑运算的负荷高,包括工作记忆、执行功能等。反省心智主要关注目标以及与目标相关的信念,是监控、调节自主心智/算法心智的机制,以产生最优的行动,比如从错误中学习。 ![dp-11](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/dp-11.png) 有趣的是,认知心理学家诺曼曾经提出,产品设计应该解决三个不同的认知和情感处理过程,也就是情感化设计中著名的三个层次:本能、行为和反思层次。这三个层次所对应的时间周期各不相同。 人与系统的互动原本就发生在不同的时间尺度之中,我们可以根据互动所传递的信息和完成的目标,将人机互动的层次粗略划分为: - 10 秒以内,传达瞬时的信息 - 10 秒~1 天,为达成目标,形成一系列行为流 - 1 天以上,反复与系统互动而产生持续关系 第一个层次主要涉及使用者接收信息并做出反应的过程,以视觉感知和认知加工处理为主,是视觉/UI 设计师、文案作者的工作重心。第二个层次涉及“使用者行为 → 系统响应 → 使用者行为”的持续互动过程,一直到阶段性目标达成,这是交互设计师/产品设计师/UX/UI 设计师的工作内容。第三个层次持续的时间更长,当使用者在不同时间和场景下持续与系统互动,它们之间就建立了一种长期关系,如何促进关系发展,是决策者、产品经理、设计师、运营人员和整个团队都需要考虑的。 本书参考三重心智模型和本能、行为、反思三个层次,将认知和设计的三个层次作为全书的总体框架,对应到互联网公司实际工作中的三设计领域—视觉设计、交互设计和产品运营设计,然后在认知心理学、人因学、工程心 理学、可用性工程、社会心理学等学科中寻找对应的理论和研究进展,介绍给大家。
本书的框架
| 心智层次 | 设计层次 | 主要的设计对象 | 章节 | 相应岗位 | | -------- | -------- | -------------------------------------- | ---------- | -------------------------------- | | 自主心智 | 本能层次 | 传达信息的视觉设计 | 第二章 | 视觉设计师,交互设计师,产品经理 | | 算法心智 | 行为层次 | 引导行为的交互设计,辅助决策的功能设计 | 第三、四章 | 产品设计师,交互设计师,产品经理 | | 反省心智 | 反思层次 | 营造关系的产品和运营设计 | 第五章 | 产品经理、品牌营销、运营 | 希望能借由这些梳理,搭建起理论研究和实际工作的桥梁,以便大家遇到实际问题时,可以根据线索溯源而上,找到现象背后的原理,获得新的视角和方法来深化理解和优化设计。 ### 好设计,从理解三个瓶颈开始 > 关于设计的最小全局认识是什么? #### 瓶颈一:视而不见 作为一个每天大量使用手机的用户,我依然经常找不到东西——每次在电商 App 想要复制收货地址,我至少要花上 1 分钟时间,因为来回巡视也看不见入口在哪里。作为一个设计师,我还是时不时很困惑,某个功能的入口已经很明显了,用户怎么还是看不到呢,难道只能继续加大字号?在书里,还有大量类似的例子。视而不见,是我们做出好设计的第一道关口。 为什么近在眼前,却就是看不到呢?这是由生理限制决定的。 人的视力好比一束激光,细节都在焦点上。在任何时刻,人只能接收、解释一定数量的信息,只要是视觉焦点没有经过或停留的地方,就有可能视而不见。 > 🎭 反常识 > > 人类的视力并不是平均分布的。视觉焦点的分辨率,要远远高于焦点以外的区域。 我们以为自己能看清视野里的东西,这只是错觉。大脑非常消耗能量,不可能在大脑中保存整个世界的视觉图像,所以进化选择了更经济实惠的方案:按需所“见”。我们会只针对当前需要,注意那些可以立即获得有用信息的区域,而不是关注整个环境。这就是选择性注意。每个人都是海量信息的过滤器,我们大部分时间都在扫视而不是阅读。如无意外,视觉注意会沿着最容易加工处理的结构前进。 > 在一个信息丰富的世界里,信息的丰富意味着其他东西的匮乏: 只要是信息所消耗的东西就会匮乏。信息消耗的东西是显而易见的: 它消耗了接收者的注意力。因此,丰富的信息造成注意力贫乏,需要有效地将注意力分配给可能消耗它的过度丰富的信息来源。 > ——赫伯特·西蒙 在互联网公司经常有一种说法,我特别反感:用户是小白……这种上帝视角非常傲慢,自以为比用户聪明。如果他们了解认知科学,就知道用户并不是什么都不懂的“小白”,他们只是不会把足够的注意资源花在理解产品上面。 视觉思维的本质就是一个注意力的分配过程,我们主动选择注意什么、忽略什么。可以说,大部分信息类界面的视觉设计,都是为了构建合理的信息布局和视觉路径。从这个层面理解,才不会总是纠缠在主观的好看,我们要清楚美观「美」在了哪里,怎么促进了「观」。 最近很热的 Stable diffusion WebUI,实在是对新手非常不友好,不只是好看不好看,重点是不会用。 想要做好信息传递、改善产品的视觉体验,就需要理解视觉加工的原理,让用户真正看到重要的信息。在这本书里,会介绍很多如何突破视觉认知瓶颈的模型和方法,例如格式塔原理、视觉组块、数字界面的视觉语法等等,对这部分感兴趣的同学可以进一步阅读。 #### 瓶颈二:工作记忆 如何让人使用计算机更高效地完成任务?这就需要找出效率瓶颈所在——人类工作记忆中的信息存储量和保留时长(内存)很有限,会显著影响行为。 工作记忆是指执行推理、理解、学习等复杂任务时的记忆系统。它是一个临时的存储和加工系统,感知、认知、运动处理都跟它有关,让我们在执行复杂任务时能「把事情记在心里」,直到信息派上用场,工作记忆的容量极其有限而且需要消耗注意资源。 打个比方,工作记忆就像意识的「工作台」,我们可以在上面检查、评估、转换和比较不同心理表征。例如,使用工作记忆来完成心算,或者想象如何重新安排待办事项的顺序。而在工作台上处理完的信息,可以整理好再存放到柜子——也就是长时记忆中。 ![dp-memory desk](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/dp-memory%20desk.png) 如果说视觉注意像激光一样集中,那么工作记忆就像独木桥一样狭窄而难以通过。 > 🎭 反直觉 > > 人类感知觉的数据存储量小得惊人。 让我们来看看一组数据:
人类处理器模型子系统的数据存储量(Card,Moran,& Newell,1983)
| 模块 | 存储量 | 保留信息的时间 | 代码类型 | | ------------------- | ----------- | -------------- | ---------- | | 感知处理器-视觉存储 | 7-17 个字母 | 70~1000 毫秒 | 物理 | | 感知处理器-听觉存储 | 5 个字母 | 900~3500 毫秒 | 物理 | | 认知处理器 | 5~9 个组块 | 5~226 秒 | 声音或图像 | 认知处理器模块主要与工作记忆相关,它的存储量只有 7 个左右的组块,而且保留信息的时间很短。这座「信息独木桥」真是窄得吓人。而人的大部分思维、反应,就产生于这样的硬件条件。 **人的认知资源十分有限**这个观点,这是数字产品设计师时刻要提醒自己的基本现实。交互界面的设计,需要考虑用户的信息处理和记忆能力。 举一个例子,下面是一个摄影类 App 的功能引导。产品和设计师们总是习惯性地提供功能指引,以为这样就能帮助用户快速学会使用。这仅仅是一厢情愿,甚至适得其反。为什么呢? ![newbie guide](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/newbie%20guide.png) 用工作记忆的原理来思考一下,此时用户面对的是一个不熟悉的界面,需要调动视觉空间模块来识别元素。但是这个时候,屏幕上增加了好几个箭头+说明区域,一下子增加了负担:用户需要一个一个提示去识别,而且出现了额外的文字,语音回路开始跟视觉模版抢夺注意资源;更困难的是,这里总共有 5 个需要理解和记忆的功能点,已经超出舒适的记忆组块范围,在短短的 2 ~ 3 秒内不可能记住。所以这种新手引导设计的效果并不理想,需要重新考虑引导时机,并且降低工作记忆的负荷。 在这本书里,会讲解产品设计时应分析用户在使用过程中有哪些认知负荷,也会介绍费茨定律、层次任务分析等模型。对这部分感兴趣的同学可以进一步阅读。 #### 瓶颈三:认知偏差 在信息、产品和服务过剩的时代,选择往往也过剩。做决定需要消耗认知资源,过多的选择可能会使人疲劳甚至导致决策瘫痪。从有限选项中做选择已经不容易了,而决策是更加复杂的认知任务,需要充分的信息、充裕的时间、 充足的认知资源。 ![dp-34](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/dp-34.png) 心理学家认为,认知超载是做出最佳决策的主要障碍——当可以利用的信息超过了认知负荷,加上时间受限,人们通常只寻求足够好的解决方案,而不会去寻找最好的、绝对合适的方案。用于应付信息超载的策略尽管经常有效,但也会导致错误和非理性。这就是大家熟悉的有限理性,在书中有详细的讲解和案例。 作为产品设计者,我们时常要面临选择:是利用偏差收割,还是帮助用户避免偏差? 这本书会帮助大家理解认知偏差及其对决策的影响,还会介绍改善决策的方法,例如提供认知脚手架、展示更直观的结果评估、提高系统容错能力等等。从更宏观的视角看待决策,书里还介绍了行为设计的多种方法和模型,可以促进符合用户利益的行动,大家不要错过。 ### 聪明的阅读者如何读《深入人心》 > 如何最有效地阅读这本书? 推荐大家先认真学习完阳老师的《聪明的阅读者》,再来读这本书。一方面可以复习聪明的阅读者中讲解的阅读方法,一方面可以更快、更好地阅读这本书。 下面是三个阅读提示 **抽样阅读**。先读哪一部分?从本书框架中,你可以很容易找到与自己工作或者兴趣最相关的章节。视觉设计师先读第二章,产品经理和交互设计师先读第三、第四章,运营先读第五章。另外,你还可以翻看每一章最后的小结中的结构图,快速定位到自己感兴趣的模块。我还做了整本书的模型和主要知识点的梳理,并且整理成了全书的知识地图,方便读者按图索骥,形成全局的认识。 ``` 如何获取《深入人心》全书知识地图? 👇 关注公众号“设计极客 00”并回复“地图”即可。 ``` **结构阅读**。如何快速提取书中的知识?你可以从每一章节的图表、反常识和小贴士入手。全书共有 250+ 张图片、29 个表格、23 处反常识和 47 处设计小贴士。这些都是知识点的提炼和强调,你可以先找到这些路标,再阅读前后相关的文字内容。 ![dp-41](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/dp-41.png) ![dp-42](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/dp-42.png) **主题阅读**。这本书写作过程中,花费时间最多的就是阅读和整理文献。在每一个知识点尤其是涉及具体模型和数字时,我都尽可能给出最相关、最权威、被引用次数最多的参考文献。每一章的参考文献都是主题阅读的材料,其中超过 1/3 的是书籍,相比论文和其他资料更加全面系统,很多书籍也能找到中文版本,推荐大家从中挑选主题阅读的初步书单。 ### 致谢 三年时光并不短暂,在此需要诚挚地感谢许多人。感谢阳志平老师,如果不是他提出选题并鼓励催促,我可能永远也不会踏出第一步。这本书能收录到阳老师创办的开智文库,我倍感荣幸,感谢王薇老师帮助我完成了很多出版流程。从 2014 年关注“心智工具箱”公众号开始,阳老师就是我在认知科学、心理学和许多学科的引路人,是我最敬佩的老师。阳老师创办的开智社群里有许多志同道合的小伙伴,他们是我的智囊团和后援团,给了我源源不断的灵感和力量。 感谢机械工业出版社的向睿洋老师和曹颖老师。向老师帮助我确定了选题方向,精当的建议让这本书更上一层楼。曹老师认真细致地反复阅读、校对全书,帮助我打磨了很多细节,大大提升了阅读体验。还要感谢电子工业出版社的李影老师给我非常多启发和帮助。 感谢阅读书稿后给我详细反馈和建议的同行朋友刘杰、铧仔、陈嘉。特别感谢刘杰,她既是产品经理,又有工程和心理学的专业训练,在整个修改过程中一直支持和鼓励我。很多章节她都是第一个读者,让我收获了及时的反馈和继续的力量。 感谢薛志荣为这本书写推荐序。志荣出版了三本高质量的专业书籍,一直是我的学习榜样。感谢同行师友张佳佳、吴宁、C7210 和 Beforweb 社群的鼎力推荐。 感谢我的家人和挚爱,她们给予我无限的鼓励和理解;感谢关注"设计极客 00”公众号的读者,还有书稿策划时加入微信群的朋友,群里的催更和支持让我心存敬畏又倍感温暖;感谢每一位关注这本书写作和出版的朋友;最后,感谢每一位读者,你们的阅读和反馈,能让这本书延续生命力。 处在技术变革的十字路口,展望未来,世界将会发生天翻地覆的变化。但,人性如常且幽微,其中的秘密依然需要不断探寻。让我们一起深入「人心」,观照他人与自己,重新理解和定义人机关系,共创未来! --- # AR 系列报告 05 - 交互篇 - URL: https://tophci.com/posts/230630-ar-repost-05 - Date: 2023/06/30 - Tags: XR, report, 交互, HCI > AR 系列报告交互篇,介绍 XR 的主要交互技术 进入空间计算时代,XR 沉浸体验有赖于对视觉、听觉、触觉等多感官通道的关联融合。AR 尤其强调人与环境的互动,这对传感技术、人机交互技术提出了跨越式的发展要求,将推动人机交互进入全新的发展阶段。TopHCI 的 AR 系列报告的第五期,将为大家重点介绍 XR 领域主要交互技术的原理和现状。 ![Vol5-Cover](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/Vol5-Cover.png) 报告预览 ![tophci-rp5-preview1](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/tophci-rp5-preview1.png) ![tophci-rp5-preview2](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/tophci-rp5-preview2.png) ![tophci-rp5-preview3](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/tophci-rp5-preview3.png) 💡 下载完整版 PDF:在公众号「零反思」后台回复 “AR 报告 5”,即可获得下载链接 --- 更多资源 - XR 网站:[tophci.com](https://www.notion.so/reports-center-0d4b5df65bb54dab81ad8f6edd033d96) - XR 交流群:[https://wenjuan.feishu.cn/m?t=sTpygKVTLRFi-g5ik](https://wenjuan.feishu.cn/m?t=sTpygKVTLRFi-g5ik) - XR 周刊:[https://arvrmrxr.feishu.cn/wiki/wikcnzMnJ1G7txL2qMgyXe6Luqd](https://arvrmrxr.feishu.cn/wiki/wikcnzMnJ1G7txL2qMgyXe6Luqd) --- # ChatGPT Plugin 插件初体验 - URL: https://tophci.com/posts/230511-try-chatgpt-plugin - Date: 2023/05/11 - Tags: AI, ChatGPT, Plugin 等了一个月,申请了两次,终于拿到了 ChatGPT 插件的权限 ✌🏻 ![640](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/640.png) Plugin store 官方推荐的还是这 8 个: ![640-1](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/640-1.png) 一共也就 5 页,一大波插件应该正在路上: ![640-2](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/640-2.png) 看到插件开始工作时的感觉也是奇妙 ![640-3](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/640-3.png) 记录一下首次体验的感受: - 目前插件商店的插件数量还不多,浏览起来也很不方便 - 安装插件可能需要重新登录和二次验证(我使用 Google Authenticator) - 在一个对话中最多可以添加 3 个插件,不知道后面会不会放宽限制 - 有插件的对话默认使用 3.5 - 插件没有手动触发的入口,而是在对话中自动触发 - 如果没有超出 API 限制的话,插件速度不错,体验也比较流畅 - 目前浏览器中分享对话的 extension,还不支持插件生成的内容展示 有了插件真的好玩很多,请大家推荐插件!🚀 还没有申请的朋友快去填表加入 waitlist 吧~ https://openai.com/waitlist/plugins --- # 00 原创-给创作者的提示词指南(附 PDF 下载) - URL: https://tophci.com/posts/230421-creator-prompt-handbook - Date: 2023/04/21 - Tags: AI, ChatGPT, Prompt, 原创教程, 指南 ![Cover-s](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/Cover-s.jpg) ![category-s](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/category-s.jpg) ![2.4提示词的常见误区-s](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/2.4%E6%8F%90%E7%A4%BA%E8%AF%8D%E7%9A%84%E5%B8%B8%E8%A7%81%E8%AF%AF%E5%8C%BA-s.jpg) 给创作者的提示词指南-s.pdf 下载链接:https://www.alipan.com/s/YEuXqxDU9dZ 提取码: 1na5 --- # AR 系列报告 04 - 平台篇 - URL: https://tophci.com/posts/230316-ar-repost-04 - Date: 2023/03/16 - Tags: XR, report, 交互, HCI > AR 系列报告平台篇,介绍 XR 三大平台:Meta,Apple,Microsoft TopHCI 的 AR 系列报告的第四期,将为大家重点介绍 XR 领域主要平台的发展和优势,为从业者和创作者提供一个简单的“地图”,以便更好地选择适合自己的平台。 ![Vol4-Cover](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/Vol4-Cover.png) 报告预览 ![tophci-rp4-preview1](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/tophci-rp4-preview1.png) ![tophci-rp4-preview2](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/tophci-rp4-preview2.png) ![tophci-rp4-preview3](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/tophci-rp4-preview3.png) 💡 下载完整版 PDF:在公众号「设计极客 00」后台回复 “AR 报告 4”,即可获得下载链接 更多资源 - XR 网站:[tophci.com](https://www.notion.so/reports-center-0d4b5df65bb54dab81ad8f6edd033d96) - XR 交流群:[https://wenjuan.feishu.cn/m?t=sTpygKVTLRFi-g5ik](https://wenjuan.feishu.cn/m?t=sTpygKVTLRFi-g5ik) - XR 周刊:[https://arvrmrxr.feishu.cn/wiki/wikcnzMnJ1G7txL2qMgyXe6Luqd](https://arvrmrxr.feishu.cn/wiki/wikcnzMnJ1G7txL2qMgyXe6Luqd) - XR 术语卡片集:[小红书「XR 设计」](https://www.xiaohongshu.com/board/6374417d0000000001008eaf?xhsshare=CopyLink&appuid=58d135c950c4b459eca90554&apptime=1669714090) 后续的报告正在准备中,如果你愿意支持 00 持续创作,欢迎到爱发电给我充电 😊 aifadian --- # 00的XR周刊07 - HRTF 头部相关传递函数 - URL: https://tophci.com/posts/230301-xr07-HRTF - Date: 2023/03/01 - Tags: XR, HRTF, 交互, HCI HRTF(Head-related transfer function)头部相关传递函数是一种空间化技术和空间音频算法,它描述了给定的声波输入在声音到达鼓膜和内耳之前,如何通过头部、耳廓和躯干的衍射和反射特性进行过滤。 在研究空间音频时你一定会接触 HRTF,因为它是大多数现代三维声音空间化技术的基础。它基于人定位声音的原理,模拟了物理世界中头部周围的声音传播现象,通过音频的音量差、时间差、频率差、入射角度和耳廓反射情况等实现音频空间化。 HRTFs 的两个关键要素是身体形状和音源的方向,这是我们用来定位声音的过滤器。 每个人都有独特的耳朵形状、头部大小和耳朵位置,HRTF 基于物理模型和人体头部、躯干和耳朵形状(耳廓)的测量值。最明显的是,头部的大小和质量,耳朵的形状,耳道的长度和直径,以及口腔和鼻窦腔的尺寸,都会通过提高一些频率和减弱其他频率来操纵传入的声波。HRTF 会调整耳朵之间的音频强度差和相位差,大脑对这些差异做出反应,感知到声音来自不同方向。 ![tophci_XR07_HRTF ears](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/tophci_XR07_HRTF%20ears.jpg) 如果声源位于头部的某一侧,声音也会以一定的衰减和延迟传播到远处的耳朵。模拟声音的衰减是常用的技术,也就是当声音位于右侧时在左耳应用衰减,反之亦然。 ### HRTF 对声音的建模 #### 距离建模 HRTF 可以实现音频的空间化,但是它实际上并不模拟音源的距离。从原理上说,人类依靠几个因素来推断与声源的距离: - 响度。这是最可靠的线索,很容易用声源距离的衰减来模拟。 - 初始时间延迟。比响度更难建模,因为需要计算一组给定的几何体的早期反射,以及该几何体的特性。不但计算成本高,而且在架构上也很难实现。 - DRS(Direct to Reverberant Sound)。 指的是声音的直接路径与其在环境中的反射路径之间的比例。在室内或其他反射表面较多的环境中,声音通常会反射多次,形成混响效果。模拟反射和晚期混响的系统,计算成本很高。 - 运动视差:头部小幅运动的方向变化有助于判断声音的距离。HMD 的头部定位追踪可以获得这些数据。 - 空气吸收。与其他线索相比,空气吸收造成的高频衰减对声音的影响较小,但它很容易用低通滤波器实现。 #### 环境建模 HRTFs 与衰减相结合,提供了一个三维声音的消声模型,它能提供明确的方向性线索,但由于缺乏室内回响(房间氛围),往往听起来很干燥和人工。为了解决这个问题,可以添加环境模型来模仿环境的声学效果。 1.混响和反射 当声音在空间中传播时,遇到物体表面会反射并产生一系列的回声。最初的明显回声称为早期反射,可以帮助我们确定声音的方向和距离。随着这些回声的传播、减弱和相互作用,产生了晚期的混响,这可以增强空间感知。 ![tophci_XR07_oculus audio4](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/tophci_XR07_oculus%20audio4.png) 投射的声音如何从表面反射,而早期反射首先到达我们的视觉效果 2.鞋盒模型 鞋盒模型将环境简化为由六面墙组成的空间,空间中没有任何遮挡,可以模拟墙壁的早期反射和后期混响特性,参数包括距离和反射率,有时还包括听众在房间里的位置和方向。鞋盒模型假设所有的表面的频率吸收都相同,六面平行的墙与听众的头部的距离固定,显而易见它过于简化,无法反映环境的真实情况和各种变化。 3.人工混响 如果要模拟墙面反射和晚期混响,计算量会很大,所以空间混响通常用人工的方法提前设定好。虽然比物理模型的计算量小,但因为没有考虑听众的方向和周围的物理环境,所以听起来不太真实。 4.采样脉冲响应混响(Sampling Impulse Response Reverberation) SIRR 捕捉真实世界空间的脉冲响应,然后在虚拟环境中对音频信号进行混响。脉冲响应通过分析空间对一个短而尖锐的声音(例如拍手)的反应,以确定该空间的声学特征,如空间的大小和形状、反射面以及空间中材料的吸收和散射特性。声音设计师通常会使用专门的设备如麦克风和扬声器,来捕捉现实世界空间的脉冲响应,然后在虚拟环境中使用软件或硬件处理,对音频信号进行混响。 它可以用来模拟各种声学环境,不论是小型空间还是大型开放空间。缺点是捕获的真实环境数据不一定能完美地映射到虚拟世界中,而且由于是从单一地点捕获的,它不会随着用户在整个环境中的移动而改变。 ### HRTF 的实现 **1.捕捉 HRTF** 如果想准确地捕捉 HRTF,可以让听者进入一个消声室,在耳朵上安装特殊的麦克风,从不同方向播放声音并记录下来。然后比较原始声音与捕捉到的声音,计算出 HRTF。不同人的 HRTF 差别并不是很大,如果对精度要求不高,可以使用通用的数据集。 **2.应用 HRTF** 如果已有 HRTF 数据库,就可以使用音频卷积算法,将 HRTF 应用到声音上。基本步骤如下: - 选择 HRTF 数据 - 载入原始音频 - 进行卷积运算 - 播放音频文件 **3.头部追踪** 我们会本能地通过头部运动来分辨空间中的声音。应用 HRTF 数据库时,需要注意与监听用户的头部和耳朵的相对位置。当用户转动头部时,必须提供准确的音频响应,否则就会失去沉浸感。 ### Ref - [Head-related transfer function - Wikipedia](https://en.wikipedia.org/wiki/Head-related_transfer_function) - Blauert, J. (1997). _Spatial Hearing: The Psychophysics of Human Sound Localization_. MIT Press. - [3D Audio Spatialization | Oculus Developers](https://developer.oculus.com/resources/audio-intro-spatialization/) - [Environmental Modeling | Oculus Developers](https://developer.oculus.com/resources/audio-intro-env-modeling/) - [What is an HRTF, or Head Related Transfer Function, and why should it be personalized? - YouTube](https://www.youtube.com/watch?v=3CXtmG4nXIM&ab_channel=Embody) - [Files - Sofaconventions](https://www.sofaconventions.org/mediawiki/index.php/Files) 如果你愿意支持 00 持续创作,欢迎到爱发电给我充电 😊 更多资源 - XR 网站:tophci.com - XR 交流群:https://wenjuan.feishu.cn/m?t=sTpygKVTLRFi-g5ik - XR 周刊:https://arvrmrxr.feishu.cn/wiki/wikcnzMnJ1G7txL2qMgyXe6Luqd - XR 术语卡片集:小红书「XR 设计」 --- # 00的 XR 周刊 06 - 空间音频 - URL: https://tophci.com/posts/230215-xr06-spatial-audio - Date: 2023/02/15 - Tags: XR, 空间音频, 交互, HCI > Sound is 50 percent of the movie going experience > > —— George Lucas "声音是体验的一半" 。这句话出自乔治·卢卡斯,他是《星球大战》系列电影的制片人和创作者。声音设计在电影中一直扮演着重要角色,它能极大地影响观众的体验。声音在电影中被用来营造气氛、传达情感,并增强整体的故事性。它是电影制作过程中不可分割的一部分,通常与电影的视觉一样受到重视。声音效果、音乐和对话都在创造电影的氛围和情绪方面发挥着作用,并能帮助传达人物的情感和动机。 ### 什么是空间音频 空间音频(spatial audio)使用声音来创造三维空间的印象。它使用专门的音频技术,在三维空间中准确再现声音,使听众能够感知到声音相对于自己的位置和距离。空间音频的应用很广泛,包括娱乐(如电影和游戏)、远程会议、虚拟现实和增强现实。它可以帮助创造更加真实和身临其境的听觉体验,让听众感觉完全融入到场景或环境中。 音频对 XR 的体验至关重要,高质量的空间音频增强了沉浸感,让人感觉身临其境。当听众置身于场景之内,而不是从远处观看时,最有临场感。例如,在 XR 场景中,移动的对象从用户的头顶呼啸而过,远比只播放一段与位置无关的音效要更吸引人。混合现实应用通常比 2D 应用更需要声音加强引导和交互,因为它们缺少触觉界面。 那么,空间音频是我们平时听到的“环绕声”吗? 从概念看它们有相似之处。环绕声使用多个音频通道和扬声器来创造声音来自不同方向的印象,而空间音频指的是使用声音来创造三维空间的印象。虽然两者都使用多个音频通道和扬声器来创造声音来自不同方向的印象,但主要区别是,环绕声通常用于增强观看电影或听音乐的体验,而空间音频则用于创造虚拟环境中的沉浸感。 在一个环绕声系统中,通常有固定数量的音频通道和环绕聆听区域的扬声器。例如,在 5.1 环绕声系统中,有五个主音频通道和一个产生低频效果的重低音通道。通过平衡各音频通道的音量和时间,可以使声音听起来像是来自听众不同方向。一般的立体声扬声器只根据声源到耳朵的距离来调整左右耳的输出音量。有时候为了获得更真实的效果,还会包括因距离而产生的个别信号延迟。但还是无法区分音源的具体方向和位置,这对 XR 来说通常是不够的。 ### XR 中的空间音频技术 在 XR 应用中,空间音频一方面实现声音环绕感,让用户听到来自不同方向和距离的声音,增强虚拟环境中的存在感和沉浸感。另一方面实现声音交互,提供环境中物体的位置、距离和运动的提示,使用户接收的声源声音随着动作产生变化,帮助用户在空间中定位和完成交互,这在 AR 体验中尤其重要。 下面介绍常见的创建空间音频的技术。 **双耳音频** 使用两个独立的音频通道来创造 3D 声音的效果。每只耳朵有一个麦克风,模拟声音到达听众时被头部和耳朵过滤的方式来捕捉声音。当音频通过耳机回放时,听者可以感知到声源的方向和距离。 要在 XR 中使用双耳音频,需要使用专门的软件和硬件。首先使用双耳麦克风录制声音,它模拟了头部和耳朵过滤的效果来捕捉声音。采集声音后,用音频工作站编辑和混合声音,用双耳音频插件或其他专业软件,将声音编码为专用格式。 接下来将双耳音频集成到 XR 应用中,这可能需要使用 Unity 或 C# 脚本语言。完成后,使用 HMD 测试音频效果并进行调整,以确保它在虚拟环境中的平衡和定位正确,能增强整体体验的存在感和沉浸感。 **立体混响声音频** Ambisonics 是一种环绕声录音和再现系统,可以捕捉和再现来自各个方向的声音,以创造一个完整的、360° 的空间声场。这项技术已经有 50 多年的历史,直到最近才被广泛用于 VR 应用中,以创造身临其境的音频体验。 在录制立体混响声音频时,使用多个麦克风和扬声器,按照特定的布局排列,以特定的配置捕捉各个方向的声音。捕捉到的声音经过编码,将多声道的音频转换为单声道信号,然后用扬声器或耳机回放。 **HRTF 技术** HRTF 技术是指头部相关传递函数,它使用算法来模拟声音到达听众时被头部和耳朵过滤的方式,创造出 3D 声音的印象。基于 HRTF 的技术可以与耳机或扬声器一起使用,以创造空间音频。 **波场合成** 另一种创造更真实的空间声音的方法是波场合成,目的是记录真实事件的波场(如音乐会现场),并能在任何时候再现。波场是由大量的扬声器产生的,这些扬声器必须安排在播放区域周围。扬声器由计算机操作,控制声音的定位和再现。 如果你愿意支持 00 持续创作,欢迎到爱发电给我充电 😊 更多资源 - XR 网站:tophci.com - XR 交流群:https://wenjuan.feishu.cn/m?t=sTpygKVTLRFi-g5ik - XR 周刊:https://arvrmrxr.feishu.cn/wiki/wikcnzMnJ1G7txL2qMgyXe6Luqd - XR 术语卡片集:小红书「XR 设计」 --- # AR 系列报告 03 - 产品篇 - URL: https://tophci.com/posts/230208-ar-report-03 - Date: 2023/02/08 - Tags: XR, report, 交互, 眼镜, HCI > AR 系列报告产品篇,快速翻查对比国内外 AR 眼镜硬件产品关键参数。 TopHCI 的 AR 系列报告的第三期,将为大家介绍 AR 眼镜硬件产品。00 收集整理了国内外主流 AR 眼镜产品的主要参数,如上市时间、FOV、分辨率、光学方案、显示屏、刷新率等,以方便大家快速查找对比。 ![01-Vol3-Cover](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/01-Vol3-Cover.png) 报告预览 ![tophci-rp3-preview1](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/tophci-rp3-preview1.jpg) ![https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/tophci-rp3-preview2.jpg](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/tophci-rp3-preview2.jpg) ![https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/tophci-rp3-preview3.jpg](https://uegeek-img.oss-cn-guangzhou.aliyuncs.com/img/tophci-rp3-preview3.jpg)