View in English

  • 打开菜单 关闭菜单
  • Apple Developer
搜索
关闭搜索
  • Apple Developer
  • 新闻
  • 探索
  • 设计
  • 开发
  • 分发
  • 支持
  • 账户
在“”范围内搜索。

快捷链接

5 快捷链接

视频

打开菜单 关闭菜单
  • 专题
  • 相关主题
  • 所有视频
  • 关于

更多视频

  • 简介
  • 概要
  • 转写文稿
  • 探索设备端基础模型的提示设计和安全

    设计充分发挥 Foundation Models 框架优势的生成式 AI 体验。首先我们将展示如何为 Apple 智能核心的设备端大语言模型设计提示。然后,我们将介绍 AI 安全方面的关键理念,并提供切实可行的具体策略来助你打造安全、可靠且令人愉悦的生成式 AI 功能。

    章节

    • 0:00 - 简介
    • 2:30 - 针对设备端 LLM 进行设计
    • 6:14 - 提示方面的最佳实践
    • 11:03 - AI 安全性
    • 18:37 - 评估与测试

    资源

    • Adding intelligent app features with generative models
    • Human Interface Guidelines: Generative AI
    • Human Interface Guidelines: Machine learning
    • Improving the safety of generative model output
      • 高清视频
      • 标清视频
  • 搜索此视频…

    大家好 我是 Mary Beth 一名以人为本的 AI 研究员 我叫 Sprite 是一名 AI 安全工程师 我们推出的全新 Foundation Models 框架 让你在为 App 设计 生成式 AI 体验时 变得前所未有的简单 生成式 AI 是一项令人振奋的技术 其中的核心挑战 在于打造稳定可靠的体验 确保用户在各种现实场景中 都能顺畅无阻地使用你的 App 幸运的是 我和 Mary Beth 已经准备好为大家提供全面指导 没错无论你是设计师还是工程师 本次讲座都适合你 在正式开始之前 让我们快速了解一下 提示词和大语言模型 你可能知道 提示词是 向生成式 AI 模型输入的文本 用于引导模型生成响应 就像你平时给同事发消息一样 使用自然的人类语言书写

    这里 我编写了一个 字符串变量形式的提示词: “生成一个关于狐狸的睡前故事” 请注意 虽然这个提示词是用英文写的 但你可以使用“Apple 智能” 支持的任何语言来编写提示词 接下来 我们来看看 通过语言模型会话 运行这个提示词的相关代码 运行后 模型会生成一个细节丰富、 富有想象力的睡前故事 太不可思议了! 我们来详细了解一下其中的运作原理 借助新的 Foundation Models 框架 你的提示词会被发送到 设备端的大语言模型 (LLM) 上运行 LLM 能够进行推理并生成文本 这个模型是一种通用模型 内置于 iOS、 iPadOS、macOS 和 visionOS 操作系统中 事实上 “Apple 智能”的功能 如写作工具 使用的正是这个语言模型 在底层 “Apple 智能” 同样使用提示词来指导模型 现在我们对 提示词和 LLM 有了基本认识 接下来介绍本次讲座的主要内容 首先我将针对 你将使用的设备端语言模型 介绍一些设计策略 然后分享有关提示工程的最佳实践 之后 Sprite 将为我们讲解 AI 安全问题 最后介绍对提示词进行评估和测试 以确保质量与安全性 让我们开始吧 首先 我们来深入了解一下 设备端 LLM 的设计 这个模型驻留在用户的设备上 可用于许多常见的语言任务 如摘要、分类、多轮对话 文本创作、文本修订 以及从文本生成标签等 但请注意 这个大语言模型 是经过专门优化和压缩的 这样才能装入设备 设备端模型大约有 30 亿个参数 要知道 30 亿参数放在任何标准下 都算得上是一个庞大的机器学习模型 但为了更直观地理解 假设这个圆圈代表你熟知的 某个主流大语言模型 如 ChatGPT 目前 这类 LLM 的参数规模 高达数千亿 需要依托大型服务器集群运行 如今 设备端 LLM 在参数量级上的差异 决定了它的功能范围无法与 基于服务器的大型 LLM 完全比肩 首先 适用于大型 LLM 的任务 可能无法直接在小型模型上运行 如果遇到复杂推理任务时 系统模型表现欠佳 建议将任务提示拆解为多个简单步骤 对于数学相关任务 请避免让小型模型 执行计算器功能 用非 AI 代码处理数学问题 要可靠得多 系统模型并未针对代码进行优化 因此也应避免代码生成类任务

    其次 由于规模较小 系统模型的通用知识有限 例如 模型无法获知 训练截止日期之后发生的近期事件 除非你已彻底验证模型 了解某个特定主题 比如百吉饼 否则不要采信系统模型提供的事实 我会要求模型列出 10 种流行的百吉饼口味

    这是模型根据我的提示词生成的结果 很明显 模型知道百吉饼 但它将一个原味百吉饼 描述为带有大量配料 这显然是错误的 这个模型不应被用作百吉饼百科全书 因为它并不太准确 但这种知识水平可能 适用于某些场景 比如烘焙店游戏 例如 你可以用模型 生成顾客点购百吉饼的对话内容 如果模型出错 比如生成奇怪的口味 这在游戏里 反而更有趣而不会造成误导 第三 务必充分理解幻觉的影响 当涉及模型未知的知识领域时 它可能会产生幻觉 这个技术术语特指 模型完全虚构答案的现象 在操作指南等 对事实准确性要求严格的场景中 绝不能冒险让幻觉误导用户 避免依赖系统语言模型来获取事实 若确实需要生成事实性内容 建议在提示词中 直接写入经过验证的信息 并对模型根据你编写的任何新提示词 输出的内容进行彻底的事实核查 目前 你可以通过模型的 一项特殊功能 来提升多种场景下的可靠性 那就是引导式生成 借助 Foundation Models 框架 引导式生成让你可以精准控制 模型输出内容 无论是字符串、数字、数组 还是你自定义的数据结构 如需深入了解引导式生成的工作原理 请观看讲座 “了解 Foundation Models 框架” 接下来 我们聊聊 提示工程的最佳实践 提示工程是个很重要的话题 建议大家后续可以深入学习 不过 这里有一些最佳实践 可以帮助你快速入门 首先 你可以直接告诉模型 来控制系统模型生成的内容量 我的提示词是: “生成一个关于狐狸的睡前故事”

    我将修改提示词 要求只生成一段内容

    成功了!一个更简短的睡前故事 使用诸如“用三句话”或 “用几个词”之类的措辞来缩短输出 使用“详细描述”之类的措辞 来生成更长的输出内容 其次 你可以通过指定角色 来控制模型生成文本的风格与口吻 我会告诉模型 这是一只说莎士比亚式英语的狐狸

    看 同样奏效 模型成功代入角色 用莎士比亚戏剧风格的文笔 写下了这只小狐狸可爱的日记片段 模型可以根据你的提示 灵活扮演多种不同角色 根据这个模型的训练方式 我再分享几个实用技巧 首先 请将提示词表述为清晰的指令 总体而言 当任务指令 单一、具体且详细时 模型表现最佳 你可以在提示词中 直接加入不超过五个 你期望的输出类型的示例 从而提升任务执行效果 最后 如果发现模型输出偏离预期 而想要停止 使用全大写指令:“DO NOT” 会非常有效 这就像用严厉的语气对它说话一样

    如果准备开始试验 Xcode 的全新 Playground 功能 是试验提示词的绝佳平台 只需在项目任意代码文件中 添加 #Playground 并编写语言模型会话格式的提示词 模型的响应就会 立即显示在右侧画布上 就像 SwiftUI 预览一样 这是进行试验 找出最适合你 App 的 提示词的好方法 现在 我们的提示工程最佳实践 可以应用于提示和指令 指令是 Foundation Model 框架 提供的第二种提示 它的功能定位略有不同 当创建语言模型会话时 你可以将指令作为参数传入 这种特殊提示词会告诉模型 应如何行为以及 如何响应所有后续的提示词 这里我写了指令: “你是一个乐于助人的助手 专门生成适合青少年的恐怖故事” 让我们看看效果

    我们最初使用简单提示词 生成的睡前故事是这样的 而当我们添加指令后 模型会优先处理这个指令 再响应其他提示 现在当我们发送 生成睡前故事的提示时 故事风格会彻底改变 以符合“恐怖故事”的指令要求

    请注意 即便持续发送新提示 初始指令依然生效 现在当我发送 “写一首百吉饼的诗”这个提示时 不出所料 模型生成了一首 令人毛骨悚然的百吉饼恐怖诗 在结束关于提示词的讨论前 需要特别强调一下交互性 提示词不仅可以由 App 设计师提供 通过指令与提示词的配合使用 你可以创建交互式模型会话 让 App 用户也能输入提示词 让我们来看看 假设我正在开发一款日记 App 首先我会给语言模型设定这样的指令 “你是一个乐于助人的助手 可以通过询问用户当天的情况 来帮他们写日记” 现在 我希望我的 App 用户 能够直接将他们的日记开头 作为提示词发送给我的模型 比如抱怨道:“唉 今天太糟心了” 此时模型会用一个日记提示词回应 “今天发生了什么糟糕的事情?” 在这个场景中 如果你将用户的输入 作为提示词发送给模型 你无法预知用户会输入什么 提示词会影响安全性 无论是无意还是有意 用户都可能提供 导致模型以无益甚至有害的方式 回应的输入 关于 AI 安全的更多内容 有请 Sprite 她可以分享更多 谢谢 Mary Beth 她向你演示了如何编写出色的提示词 以充分利用我们的设备端模型 提示设计是 你安全工具箱中的第一个工具 让我们进一步了解 如何设计注重安全的 App 我们为“Apple 智能”功能 制定了一套原则 以体现我们的核心价值观 我们在设计 Foundation Models 框架时遵循同样的原则 帮助你为 App 打造 安全而奇妙的体验 我们希望你能够创造出 真正为用户赋能的 App 无论是为孩子生成睡前故事 还是规划梦想假期 生成式 AI 可能被滥用 或带来潜在风险 虽然 Foundation Models 框架 已内置防护机制 帮你打造安全的 App 体验 但仍然建议你考虑一下 具体使用场景中可能出现的问题 我们在设计模型与框架时 就考虑了隐私问题 并持续优化模型 以避免固化刻板印象和系统性偏见 现在我们来重点探讨防护机制 Foundation Models 框架内置了 由 Apple 训练的防护机制 因此你无需担心最坏情况的发生 防护机制同时作用于 模型的输入与输出两端 你的指令、提示词和工具调用 都被视为模型的输入 我们设计的防护机制会主动拦截 包含有害内容的输入请求 同时对模型输出也设置有保护层 即使遇到刻意绕过输入防护的 恶意提示词 也能确保有害输出被拦截

    这就是在 Swift 中 处理安全错误的方式 当发生错误时 你需要考虑 如何将这个信息传达给 你的 App 用户 针对主动型功能 即非用户触发的操作 可直接静默处理错误 避免用意外信息干扰用户界面

    而对于用户发起型功能 尤其是需要等待响应的请求 则务必通过适当的 UI 反馈 说明 App 无法处理请求 可以是一个简单的警告 你还可借这个机会提供备选操作方案 供用户选择 例如 图乐园提供了一种便捷的方式 让用户可以撤销 导致安全错误的提示词 虽然 Foundation Models 框架 为你提供了强大的安全基础 但 App 内的最终体验 仍由你负责把控 只有这样才能确保用户始终获得 符合预期的可靠的内容生成体验

    以下是构建 App 用户信任的 三大核心要素 确保你的 App 不会生成不当内容 Foundation Models 框架中的 防护机制 将自动拦截这类内容 你还需谨慎处理用户输入 这可以通过精心编写 指令和提示语来实现

    同时要考虑到用户根据 App 反馈采取行动时会发生什么 以及这可能对他们产生什么影响 稍后我会举几个例子 帮助你思考可以采取的措施 让我们回到 Mary Beth 之前 展示的日记示例 我们的模型经过训练 会优先遵循指令而非提示词 因此优化指令 是提升回答安全性的有效途径

    在这里 我添加了一句话 告诉模型 要以同理心和健康的方式 回应负面的提示词 这样 你就可以看到 新指令是如何引导模型输出的 尽管这种方法并非万无一失 但精心编写的安全指令 能显著提升 App 响应的质量 关键是要确保指令完全来自你本人 绝不包含不受信任的内容 或用户输入 用户输入的内容可以放在 提示词中 而非指令部分 让我们来看看 一种非常常见的模式是 将用户输入直接作为提示词 想象一个聊天机器人 它可以接收 App 用户的任意输入 这种模式虽然灵活性很高 但也存在安全隐患 当采用这种模式时 请确保已通过指令要求模型 谨慎处理各类用户输入 要在保持灵活性的同时降低风险 一个好方法是 将你设计的提示词与用户输入相结合 更好的做法是 App 可以提供内置提示词列表 供用户选择 这样你就能完全掌控所有提示内容 虽然这不如其他模式灵活 但能让你精心设计一套 最适合自身 App 的提示词 从而让模型输出更优质的回答 即便配备了完善的指令机制 并谨慎处理用户输入 你的 App 仍可能存在安全隐患 你必须提前预判用户根据生成内容 采取行动后可能造成的影响和后果 我们来看一些例子

    这是 Mary Beth 之前展示的 生成百吉饼口味的提示词

    用户使用你的 App 时 有一个潜在风险是 模型生成的一些百吉饼口味 可能含有坚果或大蒜等过敏原 你可以采取的降低风险的方式是 在用户界面显示过敏警告 或者添加设置选项 让用户输入饮食限制条件 由 App 自动过滤模型生成的食谱

    再举一个例子 假设你正在开发 一个冷知识生成 App 可能需要避免生成有争议 或不适合目标受众的外来话题 可以考虑添加额外指令 或制定一个关键词黑名单 如果你是一名机器学习从业者 还可以训练分类器 以获得更稳健的解决方案 需要强调的是 你需要根据具体用例 采取相应的风险管控措施 与多数安全系统一样 我们讨论的是一种分层防御机制 只有当所有防护层都失效时 安全问题才会发生 可以把这种分层防御 形象地理解为“瑞士奶酪模型” 虽然每片奶酪都有孔洞 但只有当所有奶酪片的孔洞 恰好对齐时 风险才会“漏网而过” 现在 来看看我们的安全工具箱 我们技术栈的基础层是 Foundation Models 框架 内置的防护机制 你需要在给模型发出的指令中 添加安全约束 这些指令将优先于提示词执行 你还需设计你的 App 来控制如何将用户输入内容 整合到模型提示中 最后在顶层 你需要针对具体 用例实施相应的风险缓解方案 构建基于生成式 AI 的 App 时 评估与测试是另一个关键环节

    你可以先为模型质量和安全性 精心准备测试数据集 记得要收集涵盖 App 所有关键用例的提示词 还需要收集 可能触发安全问题的提示词

    获得数据集后 应设计一个自动化流程 对功能模块进行端到端测试 为此 建议开发一个专用的 命令行工具 或 UI 测试 App

    对于小规模数据集 你可以逐条执行人工检查 以查看模型响应是否存在问题 若需要扩展到更大数据集 可以考虑使用另一个大语言模型 来自动评估响应质量 此外 务必对 App 进行 异常路径测试 确保当出现安全错误时 App 的实际表现完全符合你的预期

    无论是你优化提示词 还是我们升级底层模型 进行充分的评估与测试 都能帮助你持续追踪 效果提升或衰退情况 这有助于你对 App 中 智能功能的质量和安全性 始终保持信心 我们将持续更新模型与安全系统 遵循行业最新最佳实践 并及时修复安全隐患 若你在开发 App 时遇到安全问题 可以使用“反馈助理”进行报告 此外 建议你创建自己的 UI 来收集用户对 App 功能的反馈 具体实施时 请确保用户清晰知晓 App 收集的数据类型及使用方式 你可以通过我们的开发者网站 进一步了解 App 数据收集与隐私保护的相关规范 我们在本视频中介绍了很多内容 最后 我们通过一份检查清单 来总结安全议题 供你参考 当向模型发送提示时 你的 App 应 妥善处理防护机制触发的错误 安全约束应作为指令的一部分 明确设定 在将用户输入整合到提示时 需权衡灵活性与安全性 预判用户使用智能功能时的潜在影响 并实施针对具体用例的应对方案 进行充分的评估和测试 以便对 App 智能功能的 质量和安全性充满信心 最后 使用“反馈助理” 报告安全问题 这些就是关于 AI 安全性的内容 我们万分期待看到你在 App 中 运用生成式 AI 创造出精彩内容 最后为你提供一些额外的 资源和工具作为参考 别忘了尝试使用 Xcode 的 全新内联 Playground 功能 来优化你的提示工程 虽然我们分享了许多 关于 App 安全的建议 但关于 Apple 负责任 AI 实践的 完整说明 包括 Foundation Model 的 内置安全机制 请查看 machinelearning.apple.com 上的专题文章 最后 请参阅我们新发布的 生成式 AI 设计指南 和《人机界面指南》 提示工程与安全专题到此结束 开始创作吧! 但请牢记 安全第一!

    • 0:00 - 简介
    • 借助全新的 Foundation Models 框架,开发者能够跨 Apple 设备,高效便捷地设计生成式 AI 体验。生成式 AI 由大语言模型 (LLM) 提供支持,具备逻辑推理能力,并能生成自然语言文本。通过该框架,你可以利用通用型设备端 LLM,这些 LLM 已集成到 iOS、iPadOS、macOS 和 visionOS 中。

    • 2:30 - 针对设备端 LLM 进行设计
    • 这种设备端语言模型针对摘要、分类、对话、文本创作和修订等各种通用语言任务进行了优化。请注意,由于该模型规模较小,因此存在一些局限性。它在处理复杂的推理任务、数学计算或代码生成方面可能表现不够理想,而且它的知识范围仅限于训练数据截止日期之前发生的事件。不过,在不需要高度准确性的场景下,例如生成对话内容或创意灵感等创造性任务中,它仍然具有一定的实用价值。

    • 6:14 - 提示方面的最佳实践
    • 你可以通过指定输出长度来控制系统模型的响应,例如使用“用三句话说明”或“详细描述”等。你还可以为模型分配角色,或提供所需输出的示例,以提高模型的表现。最后,你也可以通过添加指令来影响模型在多个提示中的行为,比如指定响应的语气或目的。

    • 11:03 - AI 安全性
    • Foundation Models 框架为使用生成式 AI 的 App 开发者提供一个安全的起点,内置由 Apple 训练的防护措施,可阻止有害的输入和输出。然而,你仍需对 App 内容的安全性和适当性负责。建议采用一种分层安全防御机制,以框架的防护措施为基础,配合模型中的安全指令,并谨慎处理用户输入和实施针对具体场景的应对方案。这种分层机制意味着只有当多个层级同时失效时,才会出现安全问题。

    • 18:37 - 评估与测试
    • 要对基于生成式 AI 的 App 进行有效评估和测试,需要构建多样化的数据集,涵盖主要用例和潜在的安全触发因素。你可以借助自动化方法,通过 AI 功能端到端运行数据集。对于小规模数据集,适合通过人工来审核结果;而对于大规模数据集,则可以借助另一个大语言模型来自动评估响应质量。在将用户输入整合到提示中时,要确保妥善处理防护机制触发的错误、将安全因素纳入指令,并权衡灵活性与安全性。

Developer Footer

  • 视频
  • WWDC25
  • 探索设备端基础模型的提示设计和安全
  • 打开菜单 关闭菜单
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    打开菜单 关闭菜单
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    打开菜单 关闭菜单
    • 辅助功能
    • 配件
    • App 扩展
    • App Store
    • 音频与视频 (英文)
    • 增强现实
    • 设计
    • 分发
    • 教育
    • 字体 (英文)
    • 游戏
    • 健康与健身
    • App 内购买项目
    • 本地化
    • 地图与位置
    • 机器学习与 AI
    • 开源资源 (英文)
    • 安全性
    • Safari 浏览器与网页 (英文)
    打开菜单 关闭菜单
    • 完整文档 (英文)
    • 部分主题文档 (简体中文)
    • 教程
    • 下载 (英文)
    • 论坛 (英文)
    • 视频
    打开菜单 关闭菜单
    • 支持文档
    • 联系我们
    • 错误报告
    • 系统状态 (英文)
    打开菜单 关闭菜单
    • Apple 开发者
    • App Store Connect
    • 证书、标识符和描述文件 (英文)
    • 反馈助理
    打开菜单 关闭菜单
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program (英文)
    • News Partner Program (英文)
    • Video Partner Program (英文)
    • 安全赏金计划 (英文)
    • Security Research Device Program (英文)
    打开菜单 关闭菜单
    • 与 Apple 会面交流
    • Apple Developer Center
    • App Store 大奖 (英文)
    • Apple 设计大奖
    • Apple Developer Academies (英文)
    • WWDC
    获取 Apple Developer App。
    版权所有 © 2025 Apple Inc. 保留所有权利。
    使用条款 隐私政策 协议和准则