WWDC25:Explore prompt design & safety for on-device foundation models

Foundation Models frameworkを活用するにあたっての、プロンプトの設計方法に関するメモ。AI要約+筆者による加筆。いわゆるプロンプトエンジニアリング的なtipsに加えて、安全性構築のための prompt / instruction の使い分けについて。

Human Interface Guidelines にも、Generative AI のページが用意されたので、合わせて読む。

Generative AI | Apple Developer Documentation


0:00 – Introduction

  • Foundation Models frameworkを使ったアプリで、さまざまな現実世界の状況に対応できる堅牢な生成AI体験を設計するためのガイダンスを紹介
  • プロンプトは自然言語でLLMに指示を与えるもので、Apple Intelligenceでも同じ仕組みが使われている
  • 本セッションでは、オンデバイスLLM向けの設計戦略、プロンプトのベストプラクティス、AIセーフティ、評価・テスト方法を解説

2:30 – Design for on-device LLM

  • オンデバイスLLMは約30億パラメータで、サーバー型LLM(数百億〜数千億)より小型
  • 複雑な推論や最新の世界知識には限界があるため、タスクはシンプルなステップに分解するのが有効
  • 数学計算やコード生成には不向き
  • world knowledge が限られている(直近の知識を網羅できていないなど)ため、事実情報も要検証
    • 逆にゲーム内のやりとりには向いている
  • ハルシネーション(事実でない出力)に注意し、重要な情報はプロンプトに明示的に含める
  • Guided generation(型や制約を指定した出力)が信頼性向上に有効

6:14 – Prompting best practices

  • 出力量は「3文で」「詳細に」など期待する出力の長さをプロンプトで明示的に指示
  • スタイルや役割もプロンプトで指定可能(例:シェイクスピア風のキツネ)
  • 明確なコマンド形式で、1つの具体的なタスクを与えると精度が向上
  • 望ましい出力例を3〜5個プロンプトに含めると効果的
  • “MUST” “DO NOT” など強い否定も、望まない出力を防ぐのに有効
  • XcodeのPlayground機能でプロンプトの試行錯誤が容易
  • instructions(指示文)はセッション全体の振る舞いを制御し、プロンプトと組み合わせてインタラクティブな体験を設計できる

11:03 – AI safety

  • Foundation Models frameworkにはApple独自のガードレール(安全対策)が組み込まれており、入力・出力の両方で有害な内容をブロック(エラーが投げられる)
    • LanguageModelSession.GenerationError.guardrailViolation
  • エラー発生時はUIで適切にフィードバックし(逆にしないことも)、ユーザー主導の機能では代替案や説明を提供
  • 信頼性を高めるため、アプリ側でもプロンプトや指示文の設計に注意し、ユーザー入力の扱いに配慮
  • promptよりもinstructionに従うよう設計されているため、安全な出力のためにinstructionsは必ず開発者が用意し、ユーザー入力はpromptとして分離
  • 柔軟性と安全性のバランスを考え、
    • ユーザーインプットをプロンプトに組み込んだり(補助線的に)
    • プロンプトの選択肢を用意するのも有効
  • アレルギーや不適切な内容など、ユースケースごとに追加の安全対策や警告を設ける
  • 安全対策は多層防御(スイスチーズモデル)で設計

18:37 – Evaluate and test

  • 品質・安全性評価のため、主要ユースケースやリスクのあるプロンプトを集めてデータセット化
  • 自動化テストやUIテスター、手動検証、他のLLMによる自動評価などを活用
  • エラー時の挙動(アンハッピーパス)も必ずテスト
  • 継続的な評価・テストで品質と安全性を担保し、モデルやプロンプトの更新にも追従
  • ユーザーからのフィードバック収集やプライバシー配慮も重要
  • Appleの責任あるAI設計ガイドラインやHuman Interface Guidelinesも参照推奨
  • Safety checklist
    • ガードレール違反エラーを適切に処理する
    • 安全に関する指示を追加する
    • プロンプト内のユーザー入力を制御する
    • ユースケース固有の対策を適用する
    • 評価とテストを行う
    • 問題を報告する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です