Movatterモバイル変換


[0]ホーム

URL:


Upgrade to Pro — share decks privately, control downloads, hide ads and more …
Speaker DeckSpeaker Deck
Speaker Deck

Generative AI for Developer - Promptのチカラ

Generative AI for Developer - Promptのチカラ

ChatGPT がアプリケーションに最初に組み込まれたのは GitHub Copilot かもしれません。ここでは、ChatGPT そのものと、GitHub Copilot の双方を使って、アプリケーション開発を爆速させ、品質を少しでも向上させ。そして、Developer の皆さんのスキルを上げていくための入り口として、機能の概要を取り上げます。

内容:
- Promptだけで出来るコト: 業務で使うために抑えておくべきポイント。データ・変換・抽出
- PromptのEngineeringへの適用: 企画から要件定義、設計、実装、デプロイも。
- 開発の生産性と品質をあげるための戦略: Prompt自身の現在の能力、チーム開発に向けて

サンプルのPrompt:
https://github.com/dahatake/ChatGPT-Prompt-Sample-Japanese/tree/main/Software%20Enginner/Web%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E3%83%97%E3%83%AD%E3%83%88%E3%82%BF%E3%82%A4%E3%83%97%E9%96%8B%E7%99%BA

Avatar for Daiyu Hatakeyama | @dahatake | 畠山 大有
Tweet

More Decks by Daiyu Hatakeyama | @dahatake | 畠山 大有

See All by Daiyu Hatakeyama | @dahatake | 畠山 大有

Other Decks in Technology

See All in Technology

Featured

See All Featured

Transcript

  1. Generative AI for Software Engineer “Application設計に着手する前に考えておきたいコト” 畠山 大有 | Daiyu

    Hatakeyama Architect && Software Engineer && Applied Data Scientist (目指している) Microsoft Japan /dahatake @dahatake /in/dahatake /dahatake /dahatake /dahatake https://speakerdeck.com/dahatake
  2. Engineering への 適用

  3. Coding の現場 ドキュメントと各種サンプルコードを読み込んで 挙動と 使い方を理解する With Search サンプルコードをネットで探す。 知財に注意しながら コピペして動かす

    動かないと、 エラーメッセージを基に ネットで探す With LLM ChatGPT でプロトタイプ作る (もしくは) Visual Studio Code で やりたい事をコメントに書く 動かす 動かないと、 Codex の 「fix it」で 修正させる
  4. Prompt だけでどこまで出来る のか?

  5. [想定シナリオ] 工場設備の 稼働監視 アプリ [Software] 工場設備管理アプリ_プロトタイプ開発 DALL-E3 – Prompt 「以下の画像を作成してください。工場での設備監視。フォトリアリスティック。」

  6. 自分で調べてみた 企画

  7. ユースケースの洗い出し 企画

  8. 要件定義 : 機能要件 要件定義

  9. 要件定義 : 非機能要件 要件定義 OSでの 音声認識

  10. アーキテクチャ図 設計

  11. Mermaid Live Editor の Visual Studio Code プラグインがあって、良かったー ```mermaid graph

    TD subgraph Frontend mobileApp[スマートフォンアプリ] webApp[ウェブアプリケーション] end ```mermaid を付与する
  12. データモデル 設計

  13. 画面遷移図 設計

  14. 実装計画 設計

  15. サンプルデータ作成 実装

  16. Azure SQL Database のテーブル作成 実装

  17. Azure SQL Database にデータ登録 実装

  18. Azure Cosmos DB (NoSQL) の作成 実装

  19. Azure Cosmos DB (NoSQL) の作成 実装 論理モデル (データモデル) さえあれば、 もはや実装用のコードは

    どれでもいい 勿論、最適化にはエンジニアリングが必須ですけど
  20. 画面 (Vue.js) 作成 (1) 実装

  21. 画面 (Vue.js) 作成 (2) : 環境構築 実装

  22. 画面 (Vue.js) 作成 (3) : 環境構築 実装

  23. Azure Functions で API 実装 実装

  24. 画面 と API 融合 実装

  25. API と DB 融合 実装

  26. レポーティング用のクエリ文字列作成 実装

  27. Microsoft Azure コンポーネント選定 設計

  28. デプロイも 実装

  29. 作成したファイルのダウンロード Code Interpreter は常に神 実装

  30. 一つの文脈での 一気通貫に価値がある 要求定義 (ユースケース) 要件定義 設計・モデリング 実装・コーディング デプロイ 要求定義が 動いているアプリに

    反映される
  31. 案件の相談から ここまで 15分/1人で なんどもやり直せる短さ 殆どはPrompt 出力の待ち時間

  32. 肌感覚ですが。 95%以上の 図、スクリプト、コードは そのまま動きました

  33. 単体テストに 挑む

  34. 単体テストの工程に 挑む

  35. GitHub Copilot には、 単体テストコード生成機能がある

  36. GitHub Copilot には、 単体テストコード生成機能がある コード 機能要件 本来は… 単体テストの コードとデータ コード

    Code-First ではあります 機能要件 必要! ビジネスとコードの 整合性を可能な限り保ちたい!
  37. 『書き物』は、全部やってくんねぇかな… コード書く時間を増やしたいんだよね…

  38. 機能要件から 単体テスト仕様書を作ってもらう

  39. テスト仕様書の作成

  40. テスト仕様書の作成 (続き)

  41. テストデータ作成

  42. 画像データも

  43. データの調整

  44. プロトタイプ と テストコードの生成

  45. プロトタイプ と テストコードの生成 (続き)

  46. 自己改善を促す

  47. None
  48. None
  49. None
  50. None
  51. メッチャ 頑張ってくれる!

  52. Vue に慣れてなくて、ファイルの意味がわからん

  53. これは、どこに書けばいいの?

  54. 「コード スプリッティング」 って何?

  55. 手順書も作ってもらった

  56. 単体テストの実行手順書も

  57. アプリを動かしてみた

  58. 単体テストを実行してみた

  59. リアルの話をしよう

  60. 何回も試した

  61. エラー GitHub Copilot Chat

  62. 結局は環境問題

  63. ChatGPTの作る Vue Test Units のバージョンが古い

  64. 解像度を上げる 単体テスト UIの単体テスト Vue.JSの単体テスト Vue3とVue Unit Test v2での単体テスト 図の大きさは、単なるイメージであって。面積の正確性はありません GPT-4が、

    汎用モデルあるという特性をお忘れなく
  65. • 利用ツールやフレームワークのバージョンを 公式ドキュメントで確認して、指定する • package.json や requirement.txt などは、公式があればそれを使うべし • そのドメイン

    (領域) に長けたモデルが使えるのであれば、 そちら優先する。 モデルの得意・不得意を理解する • ソフトウェアエンジニアリング: GitHub Copilot – でもビジネスは苦手 実装時のベストプラクティス
  66. チュートリアル あるいは ハンズオン テキストに 相当近い

  67. Vue Test Unit の 使い方の 勉強になった! ネットで検索するよりも早いし楽 しかも仕事で直接役に立つ機能から 優先して覚えられた

  68. • Blog Post • 【ChatGPT Hack】 Prompt のみでVue.JSのUI部分の単体テストを実行して みた •

    Promptの入出力の全て • https://chatgpt.com/share/c03b06a0-7dc8-4095-94e5- 682f218e9918 • Promptのみ • https://github.com/dahatake/ChatGPT-Prompt-Sample- Japanese/blob/main/Software%20Enginner/%E5%8D%98%E4%BD %93%E3%83%86%E3%82%B9%E3%83%88.md ご参考
  69. 数理最適化への取り組み [Math] 巡回セールスマン問題 (chatgpt.com)

  70. • 各種 数理最適化の手法は、比較的一般論が多い • 実際の計算処理は複雑なものが多く、プログラムコード を実行すると長時間要するものも出てくる • プログラムの実行が、ChatGPTの中で可能であれば、それを利用 • 出来ない場合は、自分のPCやクラウド環境などを適時利用

    戦略
  71. • この思考レベルになると、Prompt Engineering のテク ニックが必須 • それでも、正解に辿り着かない事は多々ある 真実

  72. “巡回セールスマン問題” [Math] 巡回セールスマン問題 (chatgpt.com)

  73. 「問題」 解答 最短距離の順回路: (1,0) → (0,0) → (2,2) → (2,1)

    → (2,0) → (1,0) 総距離: 4+2√2 ≒ 6.83
  74. None
  75. プログラムコードの方が最適と判断 Pythonのコード生成

  76. Pythonのコード 実行 Code Interpreterによる 正解

  77. “シフトスケジュール問題” [Math] シフトスケジュール問題

  78. 問題も作ってもらいました [Math] シフトスケジューリング課題

  79. Prompt 投入 Prompt 参考: [2402.03620] Self-Discover: Large Language Models Self-Compose

    Reasoning Structures (arxiv.org)
  80. 実行プランの作成 (1)

  81. 実行プランの作成 (2)

  82. 数理モデルの実装と実行 (1) コードの実行と 実行時エラーの解析

  83. 数理モデルの実装と実行 (2)

  84. 自分のPCでの実行手順書の作成

  85. コード実行

  86. 実行結果の妥当性確認

  87. 改善策の自己立案 (1)

  88. 改善策の自己立案 (2)

  89. 実行結果の妥当性確認 (2回目)

  90. 実行結果の妥当性確認 (2回目)

  91. 数理モデルは いろいろある

  92. 現在のアルゴリズムの確認

  93. 他に効果がありそうなアルゴリズム一覧作成

  94. モデル(コード)作成 (1)

  95. モデル(コード)作成 (2)

  96. モデル(コード)作成 (3)

  97. モデル(コード)作成 (4) : 遺伝的アルゴリズム

  98. モデル(コード)作成 (5) : 遺伝的アルゴリズム

  99. 問題の作成から 初期モデル作成 そして、複数モデル作成 45分 注:プログラミングの環境作成と実行に慣れた人の例です。私の例

  100. 言語モデルの進化により 今後 より 複雑な問題が解ける可能性

  101. 問題解決の方法の助けになりうる 計算 解答 計算式の 定義 解決策の 体系化・ 論理化 問題の定義 問題

    観察 解決案の作成 とリストアップ 評価と選択 情報収集 一例として提示しているでのみで、全てを網羅できているわけではありません データ入力あるいは プログラミング作成 計算処理 あるいは プログラミング実行 似た問題の創作 生成AIがサポート できる可能性が高い 生成AI無しで困難だったコト 相談相手 サンプルデータ 作成
  102. 生産性と品質を上げるための 戦略

  103. 戦略 既存開発環境との融合 Token の Input - Output 論理モデルと実装の疎結合 100%にならない問題

  104. でも、その残り 5%が動かなくて。 半日費やすこともある 100%にならない問題

  105. テンプレート or 公式サンプルコード の活用は、常に正義 100%にならない問題 Visual Studio Code の Azure

    Functions Extensions で作成 ChatGPT で作成したコード 適時利用 要件(利用関数、データモデルなど)は 入っていない 要件あり (利用関数、データモデル など)
  106. GitHub Copilot Chat もすげぇ! 実は殆どの Prompt が動く! Engineering からかけ離れると… 感動!

    VS Code内でのファイル作成! 100%にならない問題
  107. 戦略 既存開発環境との融合 Token の Input - Output 論理モデルと実装の疎結合 100%にならない問題

  108. 実際の入力#2のトークン: 128,000 LLMのトークン制限は Chat 前提 Token の Input - Output

    Azure OpenAI Service モデル - Azure OpenAI | Microsoft Learn 入力#1 出力#1: 16,384 入力#2 出力#2: 16,384 一度に大量の出力はできない トークン数が増えると、精度が落ちやすい。ノイズになる 対話の継続 = 入力トークン のデータ追加
  109. 戦略 既存開発環境との融合 Token の Input - Output 論理モデルと実装の疎結合 100%にならない問題

  110. 管理すべきは 論理モデル for ChatGPT 論理モデルと実装の 疎結合 論理データモデル RDBMS: Azure SQL

    Database Document: Azure Cosmos DB SQL API Optimize Optimize Technology Neutral
  111. 管理すべきは 論理モデル for ChatGPT 論理モデルと実装の 疎結合 論理データモデル RDBMS: Azure SQL

    Database Document: Azure Cosmos DB SQL API Technology Neutral 各サービス・テクノロジーへの 最適化こそ Engineer の 腕の見せ所! Optimize Optimize
  112. “Business”を どう実装しているのか Hardware Data Model Programming Architecture Business Mainframe Structured

    File COBOL monolithic Cloud Document, etc C# microservices Virtualization Containerize x64 Server Relational Java Web 3 Tier Hyper-V T-SQL Vue. js Semantic Kernel
  113. 戦略 既存開発環境との融合 Token の Input - Output 論理モデルと実装の疎結合 100%にならない問題

  114. Project Manager | Architect Developer | Data Engineer UX Designer

    チームでの Prompt 実行と Output 共有例 Prompt Prompt Prompt メール・チャット・議事録など Prompt Prompt Prompt Prompt GitHub などに Project の ドキュメント 機能要件 Cosmos DB MySQL Mongo DB HTML Image Java C# 非機能要件 画面遷移図 アーキテクチャ図 メッセージ図 プロジェクト スケジュール データモデル Python JavaScript SQL Database IaC CSS Prompt Prompt Prompt Copilot for Microsoft 365 GitHub Copilot GitHub Copilot Prompt GitHub Copilot 既存開発環境との 融合 .docx, .pptx など .md など .ts, .js など .csharp, .java, .py, .sql など
  115. Project Manager | Architect Developer | Data Engineer UX Designer

    チームでの Prompt 実行と Output 共有例 Prompt Prompt Prompt メール・チャット・議事録など Prompt Prompt Prompt Prompt GitHub などに Prompt Prompt Prompt Copilot for Microsoft 365 GitHub Copilot GitHub Copilot Prompt GitHub Copilot 既存開発環境との 融合 ほとんどが テキスト Project の ドキュメント 機能要件 Cosmos DB MySQL Mongo DB HTML Image Java C# 非機能要件 画面遷移図 アーキテクチャ図 メッセージ図 プロジェクト スケジュール データモデル Python JavaScript SQL Database IaC CSS
  116. 既存コードから図的なものの作成 Azure OpenAI アシスタント コード インタープリターを使用する方法 - Azure OpenAI |

    Microsoft Learn GitHub Copilot Chat ChatGPT
  117. 更なる自動化への ツールの登場も近いでしょう

  118. LLM Apps 開発

  119. Application Design が 超大事

  120. アプリとしての ChatGPT から学びたい 分量に限らず、 最初の1文字の 迅速な返答 URL 共有 自分の Prompt

    履歴 正確性の保証が 出来ない点の通知 結果文字列の コピペ Plugins
  121. アプリとしての ChatGPT から学びたい 分量に限らず、 最初の1文字の 迅速な返答 URL 共有 自分の Prompt

    履歴 正確性の保証が 出来ない点の通知 結果文字列の コピペ Plugins 多くのユーザーにとって ChatGPT と言えば、 この挙動
  122. LLM Apps は ユーザーの Prompt 全文入力を 肩代わり RAG Few-Shot Learning

    ReAct …
  123. Copilot stack AI infrastructure Foundation models AI safety BYO models

    Hosted fine-tuned foundation models Hosted foundation models Plugin 拡張性 Plugin 拡張性 Grounding Metaprompt Prompt & フィルタリング Orchestration Copilot frontend UX Semantic Kernel, LangChain など
  124. LLM を アプリ に組み込む ロードマップ 適切な モデル の 選択 追加

    データ (Grounding) を加味しての Prompt の 出力の検証 利用 サービス 検討 (Option) Plugin エコシステム Coding & Deploy SDK 選択 Azure OpenAI Service Azure Cognitive Service Fine-Tuning した 独自モデル (ほか) Azure OpenAI Service – PlayGround (ほか) チャット履歴 検索 Prompt Template LLM: ChatGPT チャット履歴 Azure Cognitive Search Semantic Kernel (ほか) LangChain (ほか) Azure Functions (ほか) Azure Kubernetes Service 顧客情報 Hugging Face Prompt Template LLM: ChatGPT
  125. Client 問い合わせ 顧客情報 チャット履歴 顧客情報 LLM App 意図 (Intent)の判断 Connections

    製品情報 検索 提案されたチャット返信文 LLM: ChatGPT LLM: ChatGPT Azure Cognitive Search コンテキストに基づいて 返答文を作成 Prompt Template チャット履歴 顧客情報 Product ID Intent intent, proposed_reply, product_id product_info 製品を探す Prompt Template product_id
  126. 画面の端 中央 アプリの外 アプリのヘルパー アプリ自身 複数のアプリとタスクを横断 User Interface Client

  127. テキスト入力以外も Client 1.電源が入らない 困った時に 2.音が聞こえない 3.ボタンが反応しない 9.そのほか ### 役割り お客様と対峙しているパソコン売り場の優秀な店員として振舞ってください。

    ### タスク ユーザーがパソコンを使う上で困っています。以下の{現象}を解決するための考え られる原因と、その測定・確認方法と、その解決策を作成してください。 ### 現象 パソコンの電源が入りません。 ### 現象 パソコンの音が聞こえません。 ### 現象 パソコンのキーボードが反応しません。 ### 現象 ユーザーが状況を説明できません。 LLM: ChatGPT 範囲を狭める テキスト or 音声入力よりも、 はるかに間違えにくく、速い
  128. Steam = True Azure OpenAI Service の REST API リファレンス

    - Azure OpenAI | Microsoft Learn Client
  129. Client 問い合わせ 顧客情報 チャット履歴 顧客情報 LLM App 意図 (Intent)の判断 Connections

    製品情報 検索 提案されたチャット返信文 LLM: ChatGPT LLM: ChatGPT Azure Cognitive Search コンテキストに基づいて 返答文を作成 Prompt Template チャット履歴 顧客情報 Product ID Intent intent, proposed_reply, product_id product_info 製品を探す Prompt Template product_id
  130. Client 問い合わせ 顧客情報 チャット履歴 顧客情報 LLM App Connections 製品情報 検索

    提案されたチャット返信文 LLM: ChatGPT Azure Cognitive Search コンテキストに基づいて 返答文を作成 Prompt Template チャット履歴 顧客情報 Product ID Intent intent, proposed_reply, product_id product_info 製品を探す product_id 意図 (Intent)の判断 LLM: ChatGPT Prompt Template Function Calling が超絶便利 ユーザー Prompt から どの関数を呼ぶのかを決めてもらう ChatGPT Plugin Intent/Task の理解 Plugin のマッチング Plugin の呼び出し
  131. 意図 (Intent)の判断 ユーザーの意図 (Intent) = API の能力 Prompt Template LLM:

    ChatGPT お客様と対峙している優秀な店員として振舞ってください。ユーザーの行動をお手伝いをします。そのために、ユーザーが何をした いのかの要約の文章を作成します。その要約の文章から、ユーザーの意図を判断してください。 以下が要約の例です: - 製品情報の検索 - 製品の購入 - 製品についての問い合わせ 製品の検索の問い合わせは、商品データベースの中からユーザーのニーズに最も近い商品を5件検索します。 例えば以下の様な問い合わせがあります: - どんなマグカップがありますか? - 夏に適したシャツはありますか? - 人気のある製品はどれですか? 製品の購入の問い合わせは、選択した商品の購入をします。その前に購入したい製品が1つ以上選択されていなければなりま せん。 以下が問い合わせの例です: - 購入手続きに進んでください - 買います ... (他の例も) ... 問い合わせ: 人気のある製品はどれですか? 意図: 製品検索 問い合わせ: 別の色のシャツはありますか? 意図: 製品検索 凡例: System Prompt, ユーザー入力の Prompt Completion Prompt サンプル データ ログとして収集 プライバシーなどへの配慮
  132. Client 問い合わせ 顧客情報 チャット履歴 顧客情報 LLM App 意図 (Intent)の判断 Connections

    製品情報 検索 提案されたチャット返信文 LLM: ChatGPT LLM: ChatGPT Azure Cognitive Search コンテキストに基づいて 返答文を作成 Prompt Template チャット履歴 顧客情報 Product ID Intent intent, proposed_reply, product_id product_info 製品を探す Prompt Template product_id
  133. • Azure OpenAI Service の論理的な スケールアウトは容易 Prompt チャット履歴 LLM: ChatGPT

    モデルは、ステートレス 問い合わせ 顧客情報 機械学習で作成されたモデルでの 推論は常にステートレス。何も保存しない 問い合わせ 顧客情報 問い合わせ 顧客情報 今回 必要に応じて過去の問い合わせと、 その回答も Prompt に組み込む 1 セッション内のチャット履歴 と そのユーザーの過去のチャット履歴 は別
  134. Client 問い合わせ 顧客情報 チャット履歴 顧客情報 LLM App 意図 (Intent)の判断 Connections

    製品情報 検索 提案されたチャット返信文 LLM: ChatGPT LLM: ChatGPT Azure Cognitive Search コンテキストに基づいて 返答文を作成 Prompt Template チャット履歴 顧客情報 Product ID Intent intent, proposed_reply, product_id product_info 製品を探す Prompt Template product_id
  135. GPT-4 Turbo 1106 別のモデル コンテキストの長さ ドキュメントの深さ コンテキストの長さ ドキュメントの深さ LLMはプロンプトが増えると序盤の方は忘れてしまうという性質は押さえておいた方が良い。コンテキストの順序も重要で、「最後>最初>後 半>前半」の順番で解釈性が高いという性質がある。コンテキストの挿入順序においても重要な性質になる。

    Source: https://github.com/gkamradt/LLMTest_NeedleInAHaystack Source: https://bito.ai/blog/claude-2-1-200k-context-window-benchmarks/ 同じタスク、より多くのトークン:入力長が大規模言語モデルの推論性能に与える影響 (arxiv.org) コンテキスト量が増えると解釈性は悪化する
  136. RAG = Retrieval Augmented Generation

  137. Data中心の世界では 目的に合わせて Data 作成する 分析 機械学習 生成AIの参照用 生データ Data source

    App クリーニング 用途毎の構造 Data Lake <<構造化>> 正規化 <<非構造化>> 正規化 非正規化 スタースキーマ 非正規化 学習用 データセット 生成AI 参照用 データセット Copy
  138. Azure OpenAI Service on your data (Preview) データソース (検索, ファイル,データベース,

    ストレージetc.) 追加のサードパーティーデータソース (将来的な機能) Azure OpenAI Service on your data API & SDK アプリ Copilot エージェント 製品情報 検索 Azure Cognitive Search
  139. 入力情報の加工 ドキュメント・クエリマッチング 検索実行 コンテキストベース回答 ➢ 一般情報+聞き返し指示 ➢ 検索実行条件プロセス定義 ➢ クエリ拡張

    ➢ ドキュメント加工 ➢ 類似度チューニング ➢ ハイブリッド検索 ➢ フィルタリング ➢ リランク ➢ チャンクチューニング ➢ データの構造化 ➢ コンテキストの要約 対 策 AI技術の強みを教えて。 初心者用バットがほしい 初心者用バット、ほしいですよね! 子供が初心者バットを欲しがってる 壊れてしまった初心者用バット 類似度ヒットしたドキュメント 類似はしているが 意図が拾えてない User Questionに回答せよ。 # User Question たまごはコレステロールが多く健康に悪いで すよね? # Context 表1のように卵の摂取は長年健康への悪 影響が懸念されていた。しかし、 プロンプト 途中で文章が切れている。 図表が取り込めていない 精度向上施策を打つ前に、原因を特定することが極めて重要 検索するための情報が 足りない 初心者でも扱いやすいように、特 別に軽量化されています。 かなり振りやすいので初めてでも 扱いやすいバットといえます。 クリケットの初心者は、バットと 同じ要領でスイングしてしまいます。 検索対象ドキュメント 1 2 3 スコア 0.702 0.401 0.780 ユーザ入力に検索のための 情報が足りない、整理されていない 入力された内容と検索対象が 意図した類似になっていない 検索エンジンの精度が悪い。 検索結果を 正しく解釈できていない 原 因 ステップごとのRAGの精度影響因子
  140. RAG のためのデータは作ったほうが良い

  141. RAG のためのデータは作ったほうが良い [2408.09017] Meta Knowledge for Retrieval Augmented Large Language

    Models (arxiv.org) 1つの例としての PR3 (Prepare-Rewrite-Retrieve-Read) アプローチ RAGでの課題 1.チャンクによる情報分断・ 全体像の喪失 2.クエリと文書のミスマッチ 1) 元文書からメタデータと 質問&回答セットを作って index 化 2) メタ知識要約 (MK Summary)を生成 3) クエリの拡張生成と検索
  142. # Task User入力のドキュメントから余計な文言は排除し て知識だけを纏めたFAQリストを作ろうと思います。 抜け漏れが無いように質問と回答のペアを Output_formatの出力形式で作成してください。 # Output ## Format

    jsonl形式で出力をします。各JSONオブジェクトは 下記の形式とします。 {"question":<ドキュメントを基に作成した質問>, "answer":<questionに対する応答>} ## Policy - question, answerの出力はUserの入力に基づ いたものとすること FAQやナレッジグラフへの変換 {"question": "Azure OpenAI Serviceで利用可能なモデルは何ですか?", "answer": "GPT-4 シリーズ (GPT-4 Turbo with Vision を含む)、GPT-3.5-Turbo シリーズ、埋め込みシリーズが利用可能です。"} {"question": "Azure OpenAI Serviceで新しく一般提供されたモデルは何ですか?", "answer": "新しい GPT-4 と GPT-3.5-Turbo モデルシリーズが一般提供になりました。"} {"question": "Azure OpenAI Serviceの機能は何ですか?", "answer": "コンテンツの生成、要約、画 像の解釈、セマンティック検索、自然言語からコードへの翻訳などが可能です。"} {"question": "Azure OpenAI Serviceにアクセスする方法は何ですか?", "answer": "REST API、 Python SDK、または Azure OpenAI Studio の Web ベースのインターフェイスを介してアクセスできます。"} {"question": "Azure OpenAI Serviceの価格情報はどこで確認できますか?", "answer": "価格情報は 、公式ウェブサイトで入手可能です。"} {"question": "Azure OpenAI Serviceは仮想ネットワークとプライベートリンクをサポートしていますか?", "answer": "はい、サポートしています。"} {"question": "Azure OpenAI ServiceのUIエクスペリエンスはどのようなものですか?", "answer": "Azure portal でアカウントとリソースの管理ができ、モデルの探索と微調整には Azure OpenAI Service Studio を使用します。"} {"question": "Azure OpenAI Serviceでのコンテンツフィルタリングはどのように行われますか?", "answer": "プロンプトと入力候補は、自動システムを使ってコンテンツ ポリシーに対して評価され、重大度 の高いコンテンツはフィルターで除外されます。"} {"question": "Azure OpenAI Serviceへのアクセスは制限されていますか?", "answer": "はい、高い需 要とMicrosoftの責任あるAIへのコミットメントを考慮し、制限されています。"} {"question": "Azure OpenAI ServiceとOpenAIの違いは何ですか?", "answer": "Azure OpenAI Serviceは、OpenAIのモデルをAzureのセキュリティとエンタープライズの約束と共に提供し、プライベートネッ トワークやリージョンの可用性、責任あるAIコンテンツのフィルタリングを提供します。"} プロンプト 生の文章ではなく検索時に応えやすい形式としてドキュメントを加工することで、ユーザ問い合わせに回答しやすくなることも GPTによる ドキュメント加工 1) 元文書からメタデータと質問&回答セットを作って index 化
  143. LLMシステム評価の大まかな手順 (RAG評価の例) RAGの評価は意外にもシンプルだが、精度が悪いときにどこに原因があるかを突き止めるためログを保管しておくことは必須。 RAGシステムからの出力収集 正解となるデータセットの準備 「質問」、「理想の回答」、「検索されるべきドキュメント」のペアを多量に用意する。 件数の目安は特に無いが、バリエーションや数が多いほど評価の信頼性が高まる。 1で用意した質問をRAGシステムへ入力し、 「RAGシステムの最終回答」、「検索された ドキュメント(群)」を取集する。LLMは確率的な生成をするため同じ質問でも聞き方を

    変えるなどして、複数生成させておくのが望ましい。 出力と正解の突合せ 1と2を比較し、適切なドキュメント抽出が出来ているか、回答の正確性を評価する。 ドキュメントについてはIDを突き合せれば評価できるが、回答についてはLLMを用いて 評価する必要がある。 1 2 3 Azure OpenAIで 使えるモデルは? 2で出力された結果 1で用意した正解 検索されたドキュメント 正解のドキュメントが 含まれているか判定 正解のドキュメント RAGシステム gpt-4, gpt-35-turbo, …が利用 可能です。 検索結果をコンテキストとして 与えた際の最終回答 採点 正解の回答 現在使えるモデルはgpt-4, gpt-35-turbo, …です。 LLM or 人 ドキュメント検索 検索結果を基にした回答
  144. 評価役LLMの採点ステップにおける注意点 各ステップでは準備に注意点がある。特に対話履歴データをどう用意するかはポイントとなる。 対話履歴データの用意 評価役LLMの開発 人間によるチェック (人間のスコアとの比較) ① 実際の対話データを使って検証する →手軽だが、良いデータと悪いデータを満遍なく集めにくい。稼働前はデータが無いなどの欠点がある。 (稼働後のPost

    Analyticsでは実際の対話データをユーザ分析のために活用することはアリ) ② シミュレーションした対話データを使って検証する →正例、負例をコントロールしやすいが、リアルな対話とは乖離がある。シミュレーションシステムの構築が手間。 全てのチェックは不可能なのでサンプリングした結果で判断することになる。 統計学的に判断が必要になる。対話履歴データが実際の対話データになる分布に偏りが発生しうるため、 特に判断に注意。品質保証部門やデータサイエンティストなど専門家と相談し、 通常のソフトウェアテストと同じく、Go/No Goの判定基準を事前に設けておく。 実運用に比べるとトークン消費は抑えられる傾向にあるため、精度が良いモデルが使える。 多くは速度性能を求められることは少ないため、 多段推論を含めプロンプトもなるべく精度が出るようリッチに実装が可能。
  145. 表部分は Markdown でなく JSON でテキスト化 マークダウン形式への変換は多くの場合、上手く動作する。一方でカラム名構成を上手く反映できないときがある。 Azure OpenAI マークダウン化の指示 列がおかしい

  146. 表部分は Markdown でなく JSON でテキスト化する JSONでの出力指示により、マークダウンでは表現できなかった表のカラム階層を維持してテキスト化が可能 Azure OpenAI JSON化の指示 [

    { "Group": "A", "Country": "America", "Estimated Economic Size (GDP)": "Largest", "Future Prospect Assessment": "High", "Median Annual Income($)": 74580, "Subsidies": { "Income less than 3000$/month": true, "Income 3000$/month or more": false } }, … カラムをきちんと階層化出来ている
  147. 対話履歴データのシミュレータ ➢ ユーザ・アシスタントの会話履歴をLLM同士の会話で作成 →両方のロールのGPTを準備 ➢ 特定の観点における正例、負例を作る →評価したい観点に応じてassistant側のSystem Promptを書き換えて恣意的に負の例を作る。 例えば「長くしゃべり過ぎない」という観点の負の例を作るため、敢えて「回答は長く詳細に」とPromptを書き換えるなど。 User役

    GPT アシスタント GPT 対話 評価対象の内容が なるべく出てくるような 質問を投げる 対話履歴 基本方針
  148. 検索結果の要約・抽出 検索結果の取得 検索結果の加工(もしくはチャンクで調整) 三苫の1mmってなに? 三苫薫.txt 神奈川県川崎市宮前区出身のプロサッカー選手。 プレミアリーグ・ブライトン・アンド・ホーヴ・アルビオンFC所属。 ~~~~ 田中碧.txt 神奈川県川崎市宮前区出身のプロサッカー選手

    ブンデスリーガ・フォルトゥナ・デュッセルドルフ所属。 ~~~~ FIFA World Cup 2022.txt カタールで実施されたサッカーの世界大会。 ~~~~ 検索結果 第3戦目のスペイン戦では、後半6分に堂安 律が右サイドからグラウンダーのクロスを上げ、 そのボールが逆サイドに流れてボールがラインを 割る寸前で三笘が折り返し、そのボールを田 中碧が押し込んだ。 グループリーグでは2試合に出場し、12月2日に 行われたGL3戦目のスペイン戦では幼なじみ の三笘薫からの折り返し(後に三笘の1mmと 語り継がれるパス)に合わせて逆転ゴールを決 め、マン・オブ・ザ・マッチに選ばれた 日本対スペイン戦では後半6分にVAR判定で 厳密な審査が実施され数ミリ単位の精密な 判定が話題となり、「三苫の1mm」としてマス メディアで大きく話題となった。 GPT 回答生成 GPT 要約・抽出 検索後の情報を一度要約を挟むことでノイズが減少し精度向上が見込める。
  149. 1. 機械学習 ~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.1 教師あり学習 ~~~~~~~~~~~~~~~~~~~~~~~~ Fig.1 XXXXXX ~~~~~~~~~~~~~~~~~~~~~~~~~~

    ~~~~~~~~~~~~~~~~~~~~~~ 1.2 教師なし学習 ~~~~~~~~~~~~~~ Table1 XXXXXX ~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~ 図の画像 # A B C ① ~~~ ~~~ ~~~ ② ~~~ ~~~ ~~~ ③ ~~~ ~~~ ~~~ 元となるドキュメント Read分析 RAG の 実装例 (ドキュメントのテキスト化) Azure Document Intelligence Azure DIのOCR結果を補助情報として与えることでGPT-4oによる日本語テキスト化の精度が向上する。(手書きテキストが無ければ省略可) "lines": [ { “content”: “1. 機械学習” "polygon": [… … Azure OpenAI マークダウン化の指示 1 3 2 1
  150. # 1. 機械学習 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ ## 1.1 教師あり学習 ~~~~~~~~~~~~~~~~~~~~~~~ <figure>

    { “title”: “Fig.1 XXXXXX” “diag_info”: “~~~~~~~~~~~~~~~” “image_file_path”: “~~~~~~~~” } </figure> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ ## 1.2 教師なし学習 ~~~~~~~~~~~~~~ [ {"#": "①", "A": "~~~~", "B": "~~~~", "C": "~~~~" }, {"#": "②", "A": "~~~~", "B": "~~~~", "C": "~~~~" }, {"#": "③", "A": "~~~~", "B": "~~~~", "C": "~~~~" } ] Table1 XXXXXX ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ RAG の 実装例 (チャンク&情報抽出) 情報抽出したテキストはGPTでキーワードや補足情報を入れながら適切な幅にチャンクを施す。 3 Azure OpenAI GPT-4 Dynamic Chunk {“chunk”: “# 1. 機械学習 ~~~~~~~~~~”, “keywords”: [“~~~”, “~~~”, …], “purpose”: ”~~~~~~~~~~~~~~”, “questions” [“~~~~~”, “~~~~~”, …] } {“chunk”: “## 1.1 教師あり学習~~~~~~~~”, “keywords”: [“~~~”, “~~~”, …], “purpose”: ”~~~~~~~~~~~~~~”, “questions” [“~~~~~”, “~~~~~”, …] } {“chunk”: “~~~~~~~~~~~~~~~~~~~~~”, “keywords”: [“~~~”, “~~~”, …], “purpose”: ”~~~~~~~~~~~~~~”, “questions” [“~~~~~”, “~~~~~”, …] } {“chunk”: “## 1.2 教師なし学習~~~~~~~”, “keywords”: [“~~~”, “~~~”, …], “purpose”: ”~~~~~~~~~~~~~~”, “questions” [“~~~~~”, “~~~~~”, …] } {“chunk”: “~~~~~~~~~~~~~~~~~~~~~”, “keywords”: [“~~~”, “~~~”, …], “purpose”: ”~~~~~~~~~~~~~~”, “questions” [“~~~~~”, “~~~~~”, …] } 4 Markdown結果 TableはJSONで 出力
  151. RAG の 実装例 (インデックス化 – Chunkに情報を付加して検索対象とする) 前後関係を踏まえた付加情報を足したチャンクを検索対象としている例 {“seach_text”: “purpose: ~~~~~~~,

    keywords: ~~~,~~~,~~~, main_text: # 1. 機械学習 ~~~~~~~~~~~” “search_vector”, [<search_textをベクトル化した結果>]} {“seach_text”: “purpose: ~~~~~~~, keywords: ~~~,~~~,~~~, main_text: ## 1.1 教師あり学習~~~~~~~~~~~” “search_vector”, [<search_textをベクトル化した結果>]} {“seach_text”: “purpose: ~~~~~~~, keywords: ~~~,~~~,~~~, main_text: ~~~~~~~~~~~” “search_vector”, [<search_textをベクトル化した結果>]} {“seach_text”: “purpose: ~~~~~~~, keywords: ~~~,~~~,~~~, main_text: ## 1.2 教師なし学習 ~~~~~~~~~~~” “search_vector”, [<search_textをベクトル化した結果>]} {“seach_text”: “purpose: ~~~~~~~, keywords: ~~~,~~~,~~~, main_text: # 1. 機械学習 ~~~~~~~~~~~” “search_vector”, [<search_textをベクトル化した結果>]} 5 6 {“chunk”: “# 1. 機械学習 ~~~~~~~~~~”, “keywords”: [“~~~”, “~~~”, …], “purpose”: ”~~~~~~~~~~~~~~”, “questions” [“~~~~~”, “~~~~~”, …] } {“chunk”: “## 1.1 教師あり学習~~~~~~~~”, “keywords”: [“~~~”, “~~~”, …], “purpose”: ”~~~~~~~~~~~~~~”, “questions” [“~~~~~”, “~~~~~”, …] } {“chunk”: “~~~~~~~~~~~~~~~~~~~~~”, “keywords”: [“~~~”, “~~~”, …], “purpose”: ”~~~~~~~~~~~~~~”, “questions” [“~~~~~”, “~~~~~”, …] } {“chunk”: “## 1.2 教師なし学習~~~~~~~”, “keywords”: [“~~~”, “~~~”, …], “purpose”: ”~~~~~~~~~~~~~~”, “questions” [“~~~~~”, “~~~~~”, …] } {“chunk”: “~~~~~~~~~~~~~~~~~~~~~”, “keywords”: [“~~~”, “~~~”, …], “purpose”: ”~~~~~~~~~~~~~~”, “questions” [“~~~~~”, “~~~~~”, …] } 4 Embedding 情報を結合して search_textに 登録時はURLなど メタ情報なども足す
  152. RAG の 実装例 (インデックス化 – Chunkに対する想定質問を検索対象とする) 1つのチャンクに対して複数の想定質問を用意し、その質問を検索対象とする。チャンク1つに対してn個の検索対象が作られる {“search_question”: “~~~~~~~, keywords:

    ~~~,~~~,~~~,…” “search_vector”, [< search_questionをベクトル化した結果>], “chunk”: “# 1. 機械学習 ~~~~~~~~~~”} 6 {“chunk”: “# 1. 機械学習 ~~~~~~~~~~”, “keywords”: [“~~~”, “~~~”, …], “purpose”: ”~~~~~~~~~~~~~~”, “questions” [“~~~~~”, “~~~~~”, …] } {“chunk”: “## 1.1 教師あり学習~~~~~~~~”, “keywords”: [“~~~”, “~~~”, …], “purpose”: ”~~~~~~~~~~~~~~”, “questions” [“~~~~~”, “~~~~~”, …] } 5 4 {“search_question”: “~~~~~~~, keywords: ~~~,~~~,~~~,…” “search_vector”, [< search_questionをベクトル化した結果>], “chunk”: “# 1. 機械学習 ~~~~~~~~~~”} {“search_question”: “~~~~~~~, keywords: ~~~,~~~,~~~,…” “search_vector”, [< search_questionをベクトル化した結果>], “chunk”: “# 1. 機械学習 ~~~~~~~~~~”} {“search_question”: “~~~~~~~, keywords: ~~~,~~~,~~~,…” “search_vector”, [< search_questionをベクトル化した結果>], “chunk”: “## 1.1 教師あり学習~~~~~~~~”} {“search_question”: “~~~~~~~, keywords: ~~~,~~~,~~~,…” “search_vector”, [< search_questionをベクトル化した結果>], “chunk”: “## 1.1 教師あり学習~~~~~~~~”} … Embedding 登録時はURLなど メタ情報なども足す
  153. RAG の 実装例 (Function Calling) メインとなるGPTに対してFunctionを定義しておき、ユーザの入力を基に検索が必要かどうか判定しクエリ化を実行。 Function定義を工夫するなどして拡張も含め最適な検索クエリを得る。(質問のカテゴリ分類をして検索のフィルタリングに用いるなども可能) AIの〇〇技術の強みを 教えて。 ユーザ

    Azure OpenAI GPT Chat Completions 検索 Function "parameters": { "type": "object", “search_query": { "type": "string", "description": "Output keywords for the search query generated from the input text in list form.“}, “category": { "type": "string", “description”: “Classify the input text. Choose one from AI, Database, ・・・・・・・. } } 検索Function定義 “search_query”:[〇〇技術, AI], “category”: “AI” クエリ情報 7
  154. RAG の 実装例 (検索) 得られたクエリキーワードと元の質問テキストを適切にクエリ拡張したベクトル値を使って、検索を掛ける。 AIの〇〇技術の強みを 教えて。+~~~~ Embedding ベクトル化 [0.01,

    -0.01, -0.0, 0.02, -0.03, …] Azure OpenAI 検索 ハイブリッド検索 セマンティックリランク {“search_question”: “~~~~~~~, keywords: ~~~,~~~,~~~,…” “search_vector”, [< search_questionをベクト ル化した結果>], “chunk”: “## 1.1 教師あり学習~~~~~~~~”} {“search_question”: “~~~~~~~, keywords: ~~~,~~~,~~~,…” “search_vector”, [< search_questionをベクト ル化した結果>], “chunk”: ~~~~~~~~”} … 検索結果 6 8 “search_query”:[〇〇技術, AI], “category”: “AI” 7 ケースに合わせてクエリ拡張する (特に主要なキーワードなどは 必要になることが多い)
  155. RAG の 実装例 (回答) Function Callingの戻り値として結果のn件をGPTに渡す。検索対象とGPTへ渡す値は同じとは限らないので注意。 下の例だと、検索対象はsearch_questionやsearch_vectorだが、GPTへ返すのはchunkとなる。 検索結果 8 GPT

    Completion キーワード化 〇〇技術の強みは~~~によると…です。 〇〇技術は他にも… {“search_question”: “~~~~~~~, keywords: ~~~,~~~,~~~,…” “search_vector”, [< search_questionをベクト ル化した結果>], “chunk”: “## 1.1 教師あり学習~~~~~~~~”} {“search_question”: “~~~~~~~, keywords: ~~~,~~~,~~~,…” “search_vector”, [< search_questionをベクト ル化した結果>], “chunk”: ~~~~~~~~”} … ケースに合わせてクエリ拡張する (特に主要なキーワードなどは 必要になることが多い)
  156. 有用なRAG関連のリンク ◆ ハイブリッド検索による精度検証 https://techcommunity.microsoft.com/t5/ai-azure-ai-services-blog/azure-AI-search-outperforming-vector- search-with-hybrid/ba-p/3929167 ◆ RAGの精度向上施策 https://speakerdeck.com/smiyawaki0820/retrieval-based-lm-rag-system-zatukurili-jie-suru ◆ Azure

    Chat (Sample実装) https://github.com/microsoft/azurechat ◆ RAGアーキテクチャの基本 https://qiita.com/nohanaga/items/803c09b5a3a4e2d1776f… ◆ Azure AI Search ベクトル検索RAGアーキテクチャ詳細解説 https://qiita.com/tmiyata25/items/875f563ba7a91f3da823… ◆ 更に会話履歴機能を付ける https://qiita.com/nohanaga/items/18baccb843b4148e6a77… ◆ Azure AI Searchのインデクサやスキルセットの関係性 https://zenn.dev/masakikato/articles/azure-AIsearch-json-basic… ◆ Azure AI Searchのベクトルハイブリッド検索の威力 https://qiita.com/nohanaga/items/e156d8be60622b42e8eb… ◆ Prompt flow+ Azure AI Searchを使うときの解説 https://qiita.com/nohanaga/items/7c8b797f20ab8a3d5c92… ◆ Azure OpenAIのAdd your data機能で使われてるリポジトリ https://github.com/microsoft/sample-app-aoai-chatGPT/tree/main… ◆ C#でRAGを実装したリポジトリ https://github.com/Azure-Samples/azure-search-openai-demo-csharp/… ◆ RAG含むChatGPT大規模利用に役立つリンク https://qiita.com/nohanaga/items/a18009f8b605591348fe…
  157. LLM アプリの評価は 簡単ではない UIでの注意書き含めて 多面的に取り扱いたい

  158. Azure AI Content Safety 重要度スコアを検出して安全 でないコンテンツに割り当てる テキストと画像 Azure AI 全体で統合

    利用シナリオ例 •製品カタログやその他のユーザー生成コンテンツを モデレートするオンラインマーケットプレイス •ユーザーが生成したゲームアーティファクトとチャットルー ムをモデレートするゲーム会社 •ユーザーが追加した画像やテキストを管理するソー シャルメッセージングプラットフォーム •コンテンツの集中管理を実装するエンタープライズメ ディア企業 •小学生向けの教育ソリューションプロバイダーは、学 生や教育者に不適切なコンテンツを除外します Content Safety のドキュメント - クイック スタート、チュートリアル、API リファレンス - Azure Cognitive Services | Microsoft Learn カテゴリ 説明 増悪 増悪とは、そのグループの特定の差別化属性に基づいて個人または ID グループを攻撃する、 あるいはそのグループに関して軽蔑的または差別的な言葉を使用するコンテンツを指します。 これには、人種、民族、国籍、性同一性と表現、性的指向、宗教、移民状態、能力状態、 容姿、体格が含まれますが、これらに限定されるものではありません。 性的 性的とは、解剖学的臓器や性器、恋愛関係、性的または情愛的な言葉で描かれた行為、 妊娠、物理的な性的行為 (人の意志に反する暴行や強制性的暴力行為として描かれた ものを含む)、売春、ポルノ、虐待に関連するコンテンツを表します。 暴力 暴力とは、人を傷つけたり、殺めたり、あるいは物を傷つけたり、壊したりすることを意図した 物理的な行為に関連するコンテンツを表します。 また、武器、銃、およびメーカー、協会、 法律などの関連エンティティも含まれます。 自傷行為 自傷行為とは、故意に自分の体を傷つけたり、自殺を意図した物理的な行為に関連する コンテンツを表します。 危害カテゴリ
  159. Azure AI Content Safety Content Safety のドキュメント - クイック スタート、チュートリアル、API

    リファレンス - Azure Cognitive Services | Microsoft Learn テキストの対応言語 英語、ドイツ語、日本語、スペイン語、 フランス語、イタリア語、ポルトガル語、中国語
  160. Azure OpenAI Service Learning Guide Azure OpenAI Workshop OpenAI Cookbook

    support and help ◉ Learn more in the Azure OpenAI WorkshopI ◉ See examples in the OpenAI Cookbook ◉ 実験と MVP の開発を始めましょう! ◉ Get support and help Advanced ◉ How-to guides: Generate embeddings and Fine-tune ◉ 埋め込みと文書検索のチュートリアル ◉ Azure OpenAIにおけるお客様/お客様のデータの処理、使用、保存方法: Data, privacy and security ◉ Tech Blog「Enterprise Data with ChatGPT」を確認し、付属の GitHub リポジトリを確認 してください。 ◉ APIs を使いこなす Intermediate ◉ 「Azure OpenAIとは何か」を理解する:Azure OpenAIとOpenAIを比較する。 重要な概念を確認 ◉ OpenAI Serviceのトレーニングモジュール「Introduction to Azure OpenAI Service」のウォークスルー ◉ Responsible AI の主要なガイドラインと原則を探る Basic ◉ Azure サブスクリプションを作成する ◉ Azure OpenAI Serviceへのアクセスを申請: https://aka.ms/oai/access ) ◉ 動画: An Introduction to Azure OpenAI ◉ 製品の紹介: Azure OpenAI Page ◉ 他のお客様が Azure AI をどのように利用しているかを確認 Start Here!
  161. • Azure OpenAI Service • https://azure.microsoft.com/ja-jp/products/cognitive- services/openai-service/ • Bing Chat

    • https://www.bing.com/new • Azure OpenAI Developer セミナー • Azure OpenAI Developers セミナー – YouTube • Azure OpenAI Developers セミナー第 2 回 - YouTube 直ぐに試しましょう!
  162. AI Agent

  163. ジェネレーティブAIの急速な進歩 記事、詩、物語、さらには コンピューターコードを含む、 人間のようなテキストの作成 Text generation Chatbot Code Generation Automation

    よりコンテキストを認識し、 一貫性のある関連性のある マルチターンの会話を実現 さまざまなプログラミング言語の コードを理解して生成し、 開発者が複雑なコーディング タスクに取り組むのを支援 外部システムでアクションを トリガーできる高度な関数 またはツール呼び出しを生成し、 タスクの自動化を促進 Human level interactions 音声と視覚を使用してリアルタイムの 会話に参加し、物理世界をより 包括的に理解することで、人間の コミュニケーションにおける感情や その他の機微を理解します Text Vision Real Time Audio Larger Context Function Calling Image & Video Generation Real Time Audio Generation 様相 機能・能力
  164. Building an agentic world Personal agents Organizational agents Business process

    agents Cross-org agents
  165. 主な技術的要素 人間レベルの推論能力 批判的思考、再計画を可能にし、 解決戦略を確立し、ループに人を 組み込むことができる より大きなコンテキストウィンドウ 実行履歴を推論して、複数のエージェント からのフィードバックを再計画 + 統合できる

    専門エージェント向けのSLM 迅速な実行を可能にして、人をループに 巻き込み続け、費用対効果の高い 解決を可能にする マルチモーダルのサポート ユースケースの範囲を広げ、エージェントAI システムへのアクセスを容易にする document summary prompt answer question data query prompt + data docs エージェント不要: Simple Prompt 非常に狭いワンショットタスク。 例: ログからJSONへの変換 Single Agent 非常に明確にスコープされた反復タスク 例: 複雑な質問に対する裏付けとなる 証拠を含む回答を提供する Multi-Agent System 多様なスキルを必要とする広範囲にわたる複 雑なユースケース 例: 前四半期の売上高の最近の上位2つのト レンドを活用して、メーリングリストの ユーザーベースを強化し、各キャンペーンの 影響を予測するアセットを含む2つの Instagramマーケティングキャンペーンを提案させ る conversation data query data docker databases docs history of work output input Agent への進化
  166. キーとなる技術要素 System Prompt RAG Function Calling User Prompt / Multi-

    Modal 人とのコラボレーション マルチモーダルによる可能な限り省力化 Application / Agent の挙動の制御 (ある程度) Dataから、動的に返答情報の生成 最適なAPIの判断と、API処理結果を踏まえ た動的な返答情報の生成の補助 Coordinator / Orchestrator 目的達成のための実行計画の作成と複数の エージェント連携のための管理 docs
  167. • 高いレベルの自律性 (完全では ない) と可能な限りの推論を備えた 複雑な目標を達成するように設計 • マルチモーダルを使用して 人をタスク完了のループに効果的に 組み込む選択肢をもつ

    Autonomy: 最小限の人の介入で目標指向の 行動を取る Reasoning: 与えられたコンテキストに基づいての判断 やトレードオフの考慮 Adaptable Planning: 変化する条件に基づいて タスクの実行計画を動的に調整し、効率的に完了させる Context Understanding: 自然言語やその他の モダリティを理解し、それに従う Action Enabled: 必要に応じてスキルを提供するAPIな どのWebサービスなどへのアクセスを通じて行動を起こす 権限も付与される Coordinator / Orchestrator
  168. • 「目標」情報を使用して、モデルベースの エージェントの機能をさらに拡張 • 目標は、望ましい状況を表す • エージェントは、複数の可能性の中から 選択する方法を提供し、目標に到達するものを選択 • 検索と計画は、エージェントの目標を達成する

    アクションシーケンスを見つけることに 専念するAIの一機能として位置づけられる 目標ベースのエージェント
  169. 一般的なデザインパターン RAG Agent Code Generation Agent Multi-Agent System Multi-Domain Agent

    System
  170. Retrieval Augmented Generation Agent Search Tools discussion D Intelligent RAG

    Agent Plan Query Observe Update plan Compile answer Knowledge Graph 人間がループ内で質問を調査問題などに変換し、そのドメインの範囲内で複雑な質問に対する高品質の回答を生成 question final answer
  171. Session and memory management Dynamic context look-up Planning & tracking

    Toolsets & coding interface Human interaction Coordinator Multi-turn reasoning and action (ReAct) Code Generation Agent 自然言語の要件に基づいてコードを生成し、既存のコードベース、テンプレート、ガイドライン、ライブラリを活用してポリシーと ベストプラクティスに一致させながら、人間と対話して意図したとおりに機能を明確に、検証、提供します Code Executor Constraints Existing Codebase Coding Guidelines (docs) Internal SDKs Dev Task (spec / bug / feature) Code w/ Tests, Doc, DevOps code, etc
  172. MS #3 MS #2 MS #1 Multi-Agent System 複雑な問題は、より小さく管理可能な部分に分解され、それぞれが専門のエージェントによって対処され、事実上 マイクロサービス(MS)になる。これらのエージェントは、ワークフロー内で協調して連携し、問題全体を効率的に解決します。

    conversation data query docker Coding Guidelines history of work 重要な設計要素 既存の厳密にスコープされたスキル (エージェント) の範囲内での適応計画 曖昧さを人間と議論し、調整することで対 処します プランの複雑で長時間実行される実行を 処理するメモリ 効果的なエージェント間コミュニケーション 各Agentが依存することなく、テスト、監視、 リリース、保守できるようにすることで、品質 と安全性の問題を迅速に処理
  173. Multi-Domain Agents System 複数のドメイン固有のエージェントは、Agent Runner によってオーケストレーションされ、ユーザーには 1 つのエージェント として表示されながら、複数のドメインにまたがって拡張されます。 Agent

    pool Agent Runner Active Agent Agent 1 Revaluate agent assignment Run Transfer Run + Back-off Role/goals + skills Agent 2 Run + Back-off Role/goals + skills Agent n Run + Back-off Role/goals + skills Shared context memory 重要な設計要素 エージェント自身の機能の明文化 数十から数百のエージェントを 管理できるスケーラブルなエージェント ランナー 適切なメモリ管理でドメインの 切り替えを管理する機能 個々のエージェントがユーザーとの 直接のコミュニケーションを維持し、 必要に応じて引き継ぐことで、 単一のインターセプターの問題を回避
  174. どちらのアーキテクチャがより効果的か? • Single 長所 • シンプルさ: 実装と管理が簡単 • 予測可能性: 行動は予測と制御が容易

    • 複雑さの軽減: 管理するコンポーネントと インタラクションが軽減 短所 • スケーラビリティ: 1 つのエージェントがすべての タスクを処理する必要があるため、 スケーラビリティは限定 • パフォーマンスのボトルネック: 1 つの エージェントが過負荷になると、パフォーマンス が低下する可能性が高まる • 冗長性の欠如: 1 つのエージェントに障害が 発生した場合のフォールバックが難しい アプリケーション: パーソナルバーチャル アシスタント(Siriなど)、シングルプレイヤーゲーム、 スタンドアロンロボット工学など、 コラボレーションや調整は不要 • Multiple 長所 • スケーラビリティ: 複雑で大規模な問題に適して いる • 堅牢性:1つのエージェントに障害が発生しても、 システム全体が機能不全に陥ることはほぼ無い • 柔軟性:変化するニーズに適応するために簡単に 追加または削除できます。 短所 • 複雑さ: 複数のエンティティが相互作用するため、 設計、開発、管理がより複雑に • 通信のオーバーヘッド: 効果的な通信と 調整のメカニズムが必要 • 同期の問題: すべてのエージェントが調和して 連携していることを確認するのは 難しい場合がある Application: スウォームロボティクス、 マルチプレイヤーゲーム、自律走行車フリート、 分散型センサーネットワークなどの複雑なタスク、 分散タスク、またはコラボレーションタスク
  175. Muti-Agent の一つの姿? [2412.14135] Scaling of Search and Learning: A Roadmap

    to Reproduce o1 from Reinforcement Learning Perspective The Rise and Potential of Large Language Model Based Agents: A Survey
  176. AI Agent: Brain + Perception + Action • Perception (Eyes,

    ears) • Perceives and processes multimodal info from external • Brain (Control center) • Memorizing, thinking, knowledge, & decision making • Action (Limbs) • Carry out execution using tools and influences surroundings The Rise and Potential of Large Language Model Based Agents: A Survey
  177. Typology of the Brain Module

  178. Typology of Perception Module

  179. Typology of Action Module

  180. Agent AI Towards a Holistic Intelligence Position Paper: Agent AI

    Towards a Holistic Intelligence, by MSR and Stanford
  181. AI Agent: LLM + Planning + Memory + Tool Use

    LLM Powered Autonomous Agents | Lil'Log (lilianweng.github.io)
  182. “Generative AI” Ready Organization

  183. Generative AI Ready Application もしくは Enterprise Architecture Physical Data Location

    Data as an Asset Management Application Function UX On-premise Data Mesh Data Lake (Other Cloud) Data Lake (Microsoft Azure) Data Catalog Application Data Database File Bronze Silver Gold API Application GUI | new Multi-Modal UX Persona API Catalog Customer Partner Employee Model API ML Model Factory Copilot Foundation Model Database File API Database File API “AI Agent” Security, Privacy, Compliance, Governance, Monitoring etc…
  184. アプリは、API コールで 出来ていますよね? REST API Static web content HTML, JavaScript,

    images, CSS
  185. 宿泊予約プラグイン Enterprise AI Transformation のロードマップ 7/10から5日間シアトルに 出張するんだけど ホテルと飛行機の予約をお願い 7/10~7/15 までの旅程を作成しまし

    た。確認してください。 .... 解答 旅程作成: エージェント プラグイン /search /reserve 予約 予約検索 宿泊予約システム endpoints /search /reserve 航空券予約プラグイン 出張申請プラグイン 帳票OCRプラグイン レストラン予約プラグイン 問い合わせ Function Calling + オ ー ケ ス ト レ ー シ ョ ン データ分析プラグイン /confirm 航空券予約システム レストラン予約システム 出張申請システム /delete 予約確認 予約削除 … DB /aggregate /predict 申請 /request … /analyze 読み取り 7/14 のタクシーのレシートを添付す るから登録お願い /recommend ML models … 問い合わせ … /search … 検索 API 既存システム/データ Your Copilots Your Copilots Your Copilots Your Copilots Phase 1 Phase 3 アプリケーションのモダナイゼーション Phase の数字は例です 社内汎用Chatアプリ Your Copilots Phase 2 API呼び出しの定義 出張規定のWordファイル
  186. 宿泊予約プラグイン Enterprise AI Transformation のロードマップ 7/10から5日間シアトルに 出張するんだけど ホテルと飛行機の予約をお願い 7/10~7/15 までの旅程を作成しまし

    た。確認してください。 .... 解答 プラグイン /search /reserve 予約 予約検索 宿泊予約システム endpoints /search /reserve 航空券予約プラグイン 出張申請プラグイン 帳票OCRプラグイン レストラン予約プラグイン 問い合わせ Function Calling + オ ー ケ ス ト レ ー シ ョ ン データ分析プラグイン /confirm 航空券予約システム レストラン予約システム 出張申請システム /delete 予約確認 予約削除 … DB /aggregate /predict 申請 /request … /analyze 読み取り 7/14 のタクシーのレシートを添付す るから登録お願い /recommend ML models … 問い合わせ … /search … 検索 API 既存システム/データ Your Copilots Your Copilots Your Copilots Your Copilots Phase 1 Phase 3 アプリケーションのモダナイゼーション Phase の数字は例です 社内汎用Chatアプリ Your Copilots API呼び出しの定義 旅程作成: エージェント 出張規定のWordファイル Phase 2 「エージェント」は、会社の出張規定のドキュメントの ルールとワークフローを順守するように動く。 その実装は、ドキュメントを読み込むのみ
  187. Enterprise AI Transformation のロードマップ 7/10から5日間シアトルに 出張するんだけど ホテルと飛行機の予約をお願い 7/10~7/15 までの旅程を作成しまし た。確認してください。

    .... 解答 旅程作成: エージェント プラグイン /search /reserve 宿泊予約システム 問い合わせ 航空券予約システム レストラン予約システム 出張申請システム DB 7/14 のタクシーのレシートを添付す るから登録お願い ML models … 問い合わせ … API 既存システム/データ Your Copilots Your Copilots Your Copilots Your Copilots Phase 1 Phase 3 アプリケーションのモダナイゼーション Phase の数字は例です 社内汎用Chatアプリ Your Copilots API呼び出しの定義 出張規定のWordファイル 宿泊予約プラグイン 航空券予約プラグイン 出張申請プラグイン 帳票OCRプラグイン レストラン予約プラグイン Function Calling + オ ー ケ ス ト レ ー シ ョ ン データ分析プラグイン Phase 2 なぜ、この場で、どの関数を使うのが最適なのか? その際の引数は何が必要なのか?という判断を行う 関数の実行結果を含めた、応答を作成する 予約 endpoints /reserve /confirm /delete 予約確認 予約削除 … /aggregate /predict 申請 /request … /analyze 読み取り /recommend /search … 検索 /search 予約検索
  188. 宿泊予約プラグイン Enterprise AI Transformation のロードマップ 7/10から5日間シアトルに 出張するんだけど ホテルと飛行機の予約をお願い 7/10~7/15 までの旅程を作成しまし

    た。確認してください。 .... 解答 旅程作成: エージェント プラグイン /search /reserve 予約 予約検索 endpoints 航空券予約プラグイン 出張申請プラグイン 帳票OCRプラグイン レストラン予約プラグイン 問い合わせ Function Calling + オ ー ケ ス ト レ ー シ ョ ン データ分析プラグイン 予約確認 予約削除 … 申請 … 読み取り 7/14 のタクシーのレシートを添付す るから登録お願い … 問い合わせ … … 検索 API 既存システム/データ Your Copilots Your Copilots Your Copilots Your Copilots Phase 1 Phase の数字は例です 社内汎用Chatアプリ Your Copilots Phase 2 API呼び出しの定義 出張規定のWordファイル 宿泊予約システム /search /reserve /confirm 航空券予約システム レストラン予約システム 出張申請システム /delete /aggregate /predict /request /analyze /recommend /search Phase 3 アプリケーションのモダナイゼーション モダナイゼーションの検討 サーバー側はAPI化されているか? 既存システムでも、オーケストレーションでも 使える SOA や Microservice Architecture を 意識した Enterprise Architecture の実現 Service Catalog, Data Catalog, Model Catalog (Model as a Service) DB ML models
  189. microservices x Big Data for Agile Web / Mobile IoT

    Device Search Application の世界 Big Data の世界 Streaming Operational Store Operational Store Operational Store Operational Store Operational Store Operational Store Search Web / Mobile Web / Mobile Web / Mobile Web / Mobile Web / Mobile Web / Mobile Web / Mobile Web / Mobile IoT Device Streaming IoT Device Streaming Operational Store Data Lake Data Warehouse API Visualize (Graph表現など) Build ML Model Data Catalog Data Warehouse Data Warehouse Reference for 生成AI 非構造化 半構造化 データ データの管理者・意味 などのメタデータ なるべくサイズを 小さく 構造化データ
  190. データ加工・活用 - Medallion Architecture コーポレートBI データ解析や AIモデル開発 データ資産の検索 生データ (Bronze/Raw)

    目的に沿ったデータ加工 (Gold/Curated) 最低限の クレンジング クレンジング済み データ加工 (Silver/Standardized) クエリで扱いやすくDWH内に永続化 もしくはViewとして定義 セルフサービスBI セルフサービス データ加工 セルフサービス データ加工 データが活用されるまでの流れ 事業部門 5. 活用できそうなデータ資産の検索 6. 新しい業務ニーズに応じた実験的、 アドホックなデータ探索や、データ加工 7. セルフサービスでのデータ活用(BIレポー ティング、データ解析、モデル開発) 8. 確立した分析モデルは基盤に引き渡し データ管理部門 1. データを活用するために大前提として行うべき抽出やクレンジング 2. 全社横断的に求められる基本的なデータ加工ロジックの実装 3. 全社横断的に求められるBIレポートの作成 4. Bronze~Gold、DWHのデータ品質維持 シームレス 利用 現場での活用モデル (Gold)が固まったら 基盤側に引き渡し 現場でのモデル 試行錯誤
  191. API と Data の整備 それは 生成AI以外でも使える

  192. さいごに

  193. 2023年3月 2023年11月 2024年5月 GPT-4 GPT-4 Turbo GPT-4o ⅙ ⅟₁₂ 料金

    応答速度 2倍 6倍 性能は良くなるだけ。コストは下がるだけ。
  194. • 人の指示をComputerに伝える 手段 • GPT-4 に代表される機械学習で 作成された自然言語のモデル • 文字列生成として プログラム言語のコードを生成

    • その自動実行・エラー修正の プロジェクトが複数走っている • Microsoft Copilot • Auto-GPT • Code Interpreter CPU Machine Language Assembly “Programming Language” Operating System LLM Java C# JavaScript Python SQL HTML yaml … Excel Word Teams Fabric Windows … Bing GitHub 生成・実行 操作 LLM Apps (Copilot) Next Generation Computer Language タスク・やりたい事 など
  195. Prompt のサンプル dahatake - Qiita dahatake/GenerativeAI-Prompt-Sample-Japanese: ChatGPTや Copilotなど各種生成AI用の「日本語]の Prompt のサンプル

    https://github.com/dahatake/GenerativeAI-Prompt-Sample-Japanese https://qiita.com/dahatake
  196. デジタル庁公開の Prompt サンプルなど 2023年度 デジタル庁・行政における生成AIの適切な利活用に向けた技術検証を実 施しました(最終更新日:)

  197. • Prompt Engineering Guide | Prompt Engineering Guide (promptingguide.ai) •

    https://www.promptingguide.ai/jp • はじめに | Learn Prompting: Your Guide to Communicating with AI • はじめに | Learn Prompting: Your Guide to Communicating with AI • Best practices for prompt engineering with OpenAI API | OpenAI Help Center • https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api • Examples • https://platform.openai.com/examples • Prompt のサンプル • dahatake/ChatGPT-Prompt-Sample-Japanese: ChatGPT の Prompt のサンプルです。 (github.com) • [ChatGPT Hack] Bing Chat と ChatGPT を使って、特定の企業へ入社するためのエントリーシートのドラフトを作ってみた – Qiita • [ChatGPT Hack] Bing Chat を使って、新規アプリ開発の Azure 概算見積もりを作ってみた – Qiita 効率的な Prompt のブクマ
  198. ChatGPT のより深い理解 • ⿊橋教授(京都大学)- ChatGPT の仕組みと社 会へのインパクト / NII 教育機関

    DX シンポ (2023) • https://www.nii.ac.jp/event/upload/20230303-04_Kurohashi.pdf • 話題爆発中のAI「ChatGPT」の仕組みにせまる! - Qiita • https://qiita.com/omiita/items/c355bc4c26eca2817324
  199. © Copyright Microsoft Corporation. All rights reserved. Invent with purpose.


[8]ページ先頭

©2009-2025 Movatter.jp