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

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

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

Other Decks in Technology

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

    動かないと、 エラーメッセージを基に ネットで探す With LLM ChatGPT でプロトタイプ作る (もしくは) Visual Studio Code で やりたい事をコメントに書く 動かす 動かないと、 Codex の 「fix it」で 修正させる
  3. Mermaid Live Editor の Visual Studio Code プラグインがあって、良かったー ```mermaid graph

    TD subgraph Frontend mobileApp[スマートフォンアプリ] webApp[ウェブアプリケーション] end ```mermaid を付与する
  4. Azure Cosmos DB (NoSQL) の作成 実装 論理モデル (データモデル) さえあれば、 もはや実装用のコードは

    どれでもいい 勿論、最適化にはエンジニアリングが必須ですけど
  5. GitHub Copilot には、 単体テストコード生成機能がある コード 機能要件 本来は… 単体テストの コードとデータ コード

    Code-First ではあります 機能要件 必要! ビジネスとコードの 整合性を可能な限り保ちたい!
  6. • 利用ツールやフレームワークのバージョンを 公式ドキュメントで確認して、指定する • package.json や requirement.txt などは、公式があればそれを使うべし • そのドメイン

    (領域) に長けたモデルが使えるのであれば、 そちら優先する。 モデルの得意・不得意を理解する • ソフトウェアエンジニアリング: GitHub Copilot – でもビジネスは苦手 実装時のベストプラクティス
  7. • 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 ご参考
  8. 問題解決の方法の助けになりうる 計算 解答 計算式の 定義 解決策の 体系化・ 論理化 問題の定義 問題

    観察 解決案の作成 とリストアップ 評価と選択 情報収集 一例として提示しているでのみで、全てを網羅できているわけではありません データ入力あるいは プログラミング作成 計算処理 あるいは プログラミング実行 似た問題の創作 生成AIがサポート できる可能性が高い 生成AI無しで困難だったコト 相談相手 サンプルデータ 作成
  9. テンプレート or 公式サンプルコード の活用は、常に正義 100%にならない問題 Visual Studio Code の Azure

    Functions Extensions で作成 ChatGPT で作成したコード 適時利用 要件(利用関数、データモデルなど)は 入っていない 要件あり (利用関数、データモデル など)
  10. 実際の入力#2のトークン: 128,000 LLMのトークン制限は Chat 前提 Token の Input - Output

    Azure OpenAI Service モデル - Azure OpenAI | Microsoft Learn 入力#1 出力#1: 16,384 入力#2 出力#2: 16,384 一度に大量の出力はできない トークン数が増えると、精度が落ちやすい。ノイズになる 対話の継続 = 入力トークン のデータ追加
  11. 管理すべきは 論理モデル for ChatGPT 論理モデルと実装の 疎結合 論理データモデル RDBMS: Azure SQL

    Database Document: Azure Cosmos DB SQL API Technology Neutral 各サービス・テクノロジーへの 最適化こそ Engineer の 腕の見せ所! Optimize Optimize
  12. “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
  13. 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 など
  14. 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
  15. アプリとしての ChatGPT から学びたい 分量に限らず、 最初の1文字の 迅速な返答 URL 共有 自分の Prompt

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

    履歴 正確性の保証が 出来ない点の通知 結果文字列の コピペ Plugins 多くのユーザーにとって ChatGPT と言えば、 この挙動
  17. 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 など
  18. 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
  19. 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
  20. テキスト入力以外も Client 1.電源が入らない 困った時に 2.音が聞こえない 3.ボタンが反応しない 9.そのほか ### 役割り お客様と対峙しているパソコン売り場の優秀な店員として振舞ってください。

    ### タスク ユーザーがパソコンを使う上で困っています。以下の{現象}を解決するための考え られる原因と、その測定・確認方法と、その解決策を作成してください。 ### 現象 パソコンの電源が入りません。 ### 現象 パソコンの音が聞こえません。 ### 現象 パソコンのキーボードが反応しません。 ### 現象 ユーザーが状況を説明できません。 LLM: ChatGPT 範囲を狭める テキスト or 音声入力よりも、 はるかに間違えにくく、速い
  21. 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
  22. 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 の呼び出し
  23. 意図 (Intent)の判断 ユーザーの意図 (Intent) = API の能力 Prompt Template LLM:

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

    モデルは、ステートレス 問い合わせ 顧客情報 機械学習で作成されたモデルでの 推論は常にステートレス。何も保存しない 問い合わせ 顧客情報 問い合わせ 顧客情報 今回 必要に応じて過去の問い合わせと、 その回答も Prompt に組み込む 1 セッション内のチャット履歴 と そのユーザーの過去のチャット履歴 は別
  26. 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
  27. 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) コンテキスト量が増えると解釈性は悪化する
  28. Data中心の世界では 目的に合わせて Data 作成する 分析 機械学習 生成AIの参照用 生データ Data source

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

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

    ➢ ドキュメント加工 ➢ 類似度チューニング ➢ ハイブリッド検索 ➢ フィルタリング ➢ リランク ➢ チャンクチューニング ➢ データの構造化 ➢ コンテキストの要約 対 策 AI技術の強みを教えて。 初心者用バットがほしい 初心者用バット、ほしいですよね! 子供が初心者バットを欲しがってる 壊れてしまった初心者用バット 類似度ヒットしたドキュメント 類似はしているが 意図が拾えてない User Questionに回答せよ。 # User Question たまごはコレステロールが多く健康に悪いで すよね? # Context 表1のように卵の摂取は長年健康への悪 影響が懸念されていた。しかし、 プロンプト 途中で文章が切れている。 図表が取り込めていない 精度向上施策を打つ前に、原因を特定することが極めて重要 検索するための情報が 足りない 初心者でも扱いやすいように、特 別に軽量化されています。 かなり振りやすいので初めてでも 扱いやすいバットといえます。 クリケットの初心者は、バットと 同じ要領でスイングしてしまいます。 検索対象ドキュメント 1 2 3 スコア 0.702 0.401 0.780 ユーザ入力に検索のための 情報が足りない、整理されていない 入力された内容と検索対象が 意図した類似になっていない 検索エンジンの精度が悪い。 検索結果を 正しく解釈できていない 原 因 ステップごとのRAGの精度影響因子
  31. 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) クエリの拡張生成と検索
  32. # 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 化
  33. 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 人 ドキュメント検索 検索結果を基にした回答
  34. 評価役LLMの採点ステップにおける注意点 各ステップでは準備に注意点がある。特に対話履歴データをどう用意するかはポイントとなる。 対話履歴データの用意 評価役LLMの開発 人間によるチェック (人間のスコアとの比較) ① 実際の対話データを使って検証する →手軽だが、良いデータと悪いデータを満遍なく集めにくい。稼働前はデータが無いなどの欠点がある。 (稼働後のPost

    Analyticsでは実際の対話データをユーザ分析のために活用することはアリ) ② シミュレーションした対話データを使って検証する →正例、負例をコントロールしやすいが、リアルな対話とは乖離がある。シミュレーションシステムの構築が手間。 全てのチェックは不可能なのでサンプリングした結果で判断することになる。 統計学的に判断が必要になる。対話履歴データが実際の対話データになる分布に偏りが発生しうるため、 特に判断に注意。品質保証部門やデータサイエンティストなど専門家と相談し、 通常のソフトウェアテストと同じく、Go/No Goの判定基準を事前に設けておく。 実運用に比べるとトークン消費は抑えられる傾向にあるため、精度が良いモデルが使える。 多くは速度性能を求められることは少ないため、 多段推論を含めプロンプトもなるべく精度が出るようリッチに実装が可能。
  35. 表部分は 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 } }, … カラムをきちんと階層化出来ている
  36. 検索結果の要約・抽出 検索結果の取得 検索結果の加工(もしくはチャンクで調整) 三苫の1mmってなに? 三苫薫.txt 神奈川県川崎市宮前区出身のプロサッカー選手。 プレミアリーグ・ブライトン・アンド・ホーヴ・アルビオンFC所属。 ~~~~ 田中碧.txt 神奈川県川崎市宮前区出身のプロサッカー選手

    ブンデスリーガ・フォルトゥナ・デュッセルドルフ所属。 ~~~~ FIFA World Cup 2022.txt カタールで実施されたサッカーの世界大会。 ~~~~ 検索結果 第3戦目のスペイン戦では、後半6分に堂安 律が右サイドからグラウンダーのクロスを上げ、 そのボールが逆サイドに流れてボールがラインを 割る寸前で三笘が折り返し、そのボールを田 中碧が押し込んだ。 グループリーグでは2試合に出場し、12月2日に 行われたGL3戦目のスペイン戦では幼なじみ の三笘薫からの折り返し(後に三笘の1mmと 語り継がれるパス)に合わせて逆転ゴールを決 め、マン・オブ・ザ・マッチに選ばれた 日本対スペイン戦では後半6分にVAR判定で 厳密な審査が実施され数ミリ単位の精密な 判定が話題となり、「三苫の1mm」としてマス メディアで大きく話題となった。 GPT 回答生成 GPT 要約・抽出 検索後の情報を一度要約を挟むことでノイズが減少し精度向上が見込める。
  37. 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
  38. # 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で 出力
  39. 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など メタ情報なども足す
  40. 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など メタ情報なども足す
  41. 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
  42. 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 ケースに合わせてクエリ拡張する (特に主要なキーワードなどは 必要になることが多い)
  43. 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”: ~~~~~~~~”} … ケースに合わせてクエリ拡張する (特に主要なキーワードなどは 必要になることが多い)
  44. 有用な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…
  45. Azure AI Content Safety 重要度スコアを検出して安全 でないコンテンツに割り当てる テキストと画像 Azure AI 全体で統合

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

    リファレンス - Azure Cognitive Services | Microsoft Learn テキストの対応言語 英語、ドイツ語、日本語、スペイン語、 フランス語、イタリア語、ポルトガル語、中国語
  47. 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!
  48. • 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 直ぐに試しましょう!
  49. ジェネレーティブ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 様相 機能・能力
  50. 主な技術的要素 人間レベルの推論能力 批判的思考、再計画を可能にし、 解決戦略を確立し、ループに人を 組み込むことができる より大きなコンテキストウィンドウ 実行履歴を推論して、複数のエージェント からのフィードバックを再計画 + 統合できる

    専門エージェント向けの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 への進化
  51. キーとなる技術要素 System Prompt RAG Function Calling User Prompt / Multi-

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

    Autonomy: 最小限の人の介入で目標指向の 行動を取る Reasoning: 与えられたコンテキストに基づいての判断 やトレードオフの考慮 Adaptable Planning: 変化する条件に基づいて タスクの実行計画を動的に調整し、効率的に完了させる Context Understanding: 自然言語やその他の モダリティを理解し、それに従う Action Enabled: 必要に応じてスキルを提供するAPIな どのWebサービスなどへのアクセスを通じて行動を起こす 権限も付与される Coordinator / Orchestrator
  53. Retrieval Augmented Generation Agent Search Tools discussion D Intelligent RAG

    Agent Plan Query Observe Update plan Compile answer Knowledge Graph 人間がループ内で質問を調査問題などに変換し、そのドメインの範囲内で複雑な質問に対する高品質の回答を生成 question final answer
  54. 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
  55. MS #3 MS #2 MS #1 Multi-Agent System 複雑な問題は、より小さく管理可能な部分に分解され、それぞれが専門のエージェントによって対処され、事実上 マイクロサービス(MS)になる。これらのエージェントは、ワークフロー内で協調して連携し、問題全体を効率的に解決します。

    conversation data query docker Coding Guidelines history of work 重要な設計要素 既存の厳密にスコープされたスキル (エージェント) の範囲内での適応計画 曖昧さを人間と議論し、調整することで対 処します プランの複雑で長時間実行される実行を 処理するメモリ 効果的なエージェント間コミュニケーション 各Agentが依存することなく、テスト、監視、 リリース、保守できるようにすることで、品質 と安全性の問題を迅速に処理
  56. 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 重要な設計要素 エージェント自身の機能の明文化 数十から数百のエージェントを 管理できるスケーラブルなエージェント ランナー 適切なメモリ管理でドメインの 切り替えを管理する機能 個々のエージェントがユーザーとの 直接のコミュニケーションを維持し、 必要に応じて引き継ぐことで、 単一のインターセプターの問題を回避
  57. どちらのアーキテクチャがより効果的か? • Single 長所 • シンプルさ: 実装と管理が簡単 • 予測可能性: 行動は予測と制御が容易

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

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

    LLM Powered Autonomous Agents | Lil'Log (lilianweng.github.io)
  62. 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…
  63. 宿泊予約プラグイン 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ファイル
  64. 宿泊予約プラグイン 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 「エージェント」は、会社の出張規定のドキュメントの ルールとワークフローを順守するように動く。 その実装は、ドキュメントを読み込むのみ
  65. 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 予約検索
  66. 宿泊予約プラグイン 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
  67. 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 非構造化 半構造化 データ データの管理者・意味 などのメタデータ なるべくサイズを 小さく 構造化データ
  68. データ加工・活用 - 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)が固まったら 基盤側に引き渡し 現場でのモデル 試行錯誤
  69. 2023年3月 2023年11月 2024年5月 GPT-4 GPT-4 Turbo GPT-4o ⅙ ⅟₁₂ 料金

    応答速度 2倍 6倍 性能は良くなるだけ。コストは下がるだけ。
  70. • 人の指示を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 タスク・やりたい事 など
  71. • 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 のブクマ
  72. 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