Slide 1

Slide 1 text

Explorerでの検索は終わり!! ~ GPT4oで社内文書を活かすんやで!!! ~ ~ AOAI Dev Dayから見た生成AIの今後 ~ #すきやねんAzure

Slide 2

Slide 2 text

自己紹介 しろくま / shirokuma 愛知 SE / PoC部 Expertise  Azure  Oracle Database  OutSystems SNS  Zenn : https://zenn.dev/nomhiro  X : @Shrkm1204 趣味  テニス 野球 ピアノ

Slide 3

Slide 3 text

Agenda  社内文書を生成AIに活かす  Build2024のRAGに関わるサービスアップデート  Azure Functions OpenAI拡張機能の何が嬉しい?  RAGの構成例とデモ  まとめ

Slide 4

Slide 4 text

Agenda  社内文書を生成AIに活かす  Build2024のRAGに関わるサービスアップデート  Azure Functions OpenAI拡張機能の何が嬉しい?  RAGの構成例とデモ  AOAI DevDayから見た生成AIの今後  まとめ

Slide 5

Slide 5 text

社内文書を生成AIに活かす?

Slide 6

Slide 6 text

背景 ~ 生成AIの特徴 ~ 言語をまたぐ対話  複数言語以外にも、プログラム言語、 SQLなども 役割やタスクを柔軟に変更可能  役割を指示して振る舞いを変えられる 数万字以上のテキストを瞬時に読解  ドキュメント、Webページなど大量な文章を 伝えられる Web上の情報を学習した大量な知識  生成AIのAPIを呼ぶだけで大量の知識をもとに 応答してくれる 生成AIが持つ能力と知識のみで、使えるシーンが多い ※チャットコミュニケーション、学習済み知識を使った質問回答、コード生成、翻訳 …

Slide 7

Slide 7 text

背景 言語をまたぐ対話  複数言語以外にも、プログラム言語、 SQLなども 役割やタスクを柔軟に変更可能  役割を指示して振る舞いを変えられる 数万字以上のテキストを瞬時に読解  ドキュメント、Webページなど大量な文章を 伝えられる Web上の情報を学習した大量な知識  生成AIのAPIを呼ぶだけで大量の知識をもとに 応答してくれる 社内ドキュメントなどの知識は生成AIは知らない。 生成AIが知らない知識を回答してほしい!!!

Slide 8

Slide 8 text

RAGで社内文書を活かす  RAG:Retrieval-Augmented Generation (取得拡張生成) 例)Microsoft Copilot  生成AIに外部知識を与えて、回答を生成させる。 ≠LLMの再学習

Slide 9

Slide 9 text

RAG構成の概要 プログラム XXシステムのYYについて教えて ①チャット内容送信 XXシステムの手順書など ③チャット内容+検索結果 ②検索 回答 回答 YYとは~~~~です。 社内文書 などのDB

Slide 10

Slide 10 text

RAGの利用シーン  社内文書の情報を使って回答してほしい  特定の業界用語に対応して回答してほしい  顧客対応用のチャットボット(ヘルプデスク等) など

Slide 11

Slide 11 text

利用シーンが思いついたら、何から始めれば? 1. 質問と回答の具体化(対象業務のブレイクダウン) 2. データの用意 3. プロンプト検証 4. 仕組みの構築 こちらの内容について掘り下げていきます。

Slide 12

Slide 12 text

仕組みの構築のための選択肢  Azure OpenAI On Your Data  Azure上でコード実装なくRAGができる仕組み  自前でRAGを構築する  既存DBとの連携などの要件によりOn Your Dataが使えない場合に、RAGを自前で構築します。 こちらの内容について掘り下げていきます。

Slide 13

Slide 13 text

本セッションで紹介する内容のモチベーション とはいっても、いきなり自前で一から実装するのはハードル高いでしょ!? なるべく簡単に実装して早く検証したい!

Slide 14

Slide 14 text

Microsoft Build 2024 RAGに関わるサービスアップデート

Slide 15

Slide 15 text

RAGに関わる主なサービスアップデート Azure Functions • Flex従量課金プランがPreview • OpenAI拡張機能がPreview Azure Cosmos DB for NoSQL • ベクトル検索機能がPreview Azure OpenAI • GPT4o(omni)モデルのGA

Slide 16

Slide 16 text

Azure OpenAI  OpenAIのLLMモデルにREST APIできるサービス  コンテンツの生成、要約、画像の解釈、ベクトル化、翻訳などが可能。 GPT4o(omni)モデルがGA  トークン制限が大きく、賢く、レスポンスが早く、安くなったGPTモデル  トークン制限: 128k  レスポンス: GPT-4の2倍(控え目)  金額: GPT-4の半額  (個人的に嬉しいこと)10枚まで画像をINPUTにしても精度が落ちにくい  GPT4-visionでも複数枚画像をINPUTにできたが、推論精度がかなり落ちる現象があった。

Slide 17

Slide 17 text

Cosmos DB for NoSQL  フル マネージドの NoSQLデータベースサービス ベクトル検索機能がPreview  従来は、RAGにおける検索部分はAzure AI Searchに任すことが多かったが、 料金が高く、可用性が高くはない。  より安く、DBに直接ベクトル検索できるようになった。  ※Cosmos DBはベクトル検索のみ。 一方でAI Searchには、ハイブリッド検索や、セマンティック検索がある。 ベクトル検索だけでは検索精度が出ない場合には、有用な選択肢。

Slide 18

Slide 18 text

(脱線)ベクトル検索とは???  コンテンツを数値情報に変換し、コンテンツ同士の類似度を算出する検索方法。  以下のようなシーンでの検索ができる。  意味的または概念的な類似性 ("dog" と "canine" は概念的には似ているが言語的には異なる)  多言語コンテンツ (英語では “dog”、日本語では “犬")  複数のコンテンツ タイプ (プレーンテキストの “dog” と画像ファイル内の犬の写真) ※まだ精度に課題あり 検索対象 ベクトル値 文書1 文書2 文書3 文書4 [ -2, -1, 0, 1 ] [ 2, 3, 4, 5 ] [ 6, 7, 8, 9 ] [ -2, 0, 4, 7 ] XXXのYYYとは? クエリ [ 2, 3, 4, 6 ] ベクトル値 最も近い類似度の検索対象 は文書2!!!

Slide 19

Slide 19 text

Azure Functions  HTTP、Timer、ファイルアップロードなどをトリガーにコードを実行する サーバーレス ソリューション Flex従量課金プランがPreview  費用を抑えながら、VNet統合を利用でき、高スケーラビリティ  GAを待ち遠しにしております。  [従来]  VNet統合の機能を使うためには、従量課金プランが使えない。 代わりにApp ServiceプランやPremiumプランを使わざるをえない。  App ServiceプランやPremiumプランは、受信イベントがゼロでも、インスタンス料金が常時発生してしまっていた。 「クラウドだから、”実行した時間だけ”の課金なんでしょ?」 に対するギャップ

Slide 20

Slide 20 text

Azure Functions  HTTP、Timer、ファイルアップロードなどをトリガーにコードを実行する サーバーレス ソリューション OpenAI拡張機能  OpenAIやAI Searchとのやり取りをコーディング量少なく実装できる

Slide 21

Slide 21 text

Azure Functionsの OpenAI拡張機能の何が嬉しい?

Slide 22

Slide 22 text

OpenAI拡張機能の嬉しいこと  OpenAIやAI Searchとのやり取りをコーディング量少なく実装できる。  OpenAI拡張機能は、各種サービスへのアクセスを勝手に行ってくれるので、 各種サービス変更に伴う変更追従の維持を少なくできる。  AI周辺のサービスはサービスアップデートが頻繁なので、 作成したアプリで各種サービスのバージョン更新対応などの維持が意外と大変

Slide 23

Slide 23 text

OpenAI拡張機能ができること OpenAI • Text Completion(入力候補)API • Chat Completion(チャット応答)API • ベクトル値を生成する • アシスタントを作成する • アシスタントにメッセージを送信する • アシスタントの履歴を取得する • 関数を呼び出すアシスタント要求に応答する AI Search • AI Searchにドキュメントとベクトル値を格納 • AI Searchからドキュメントを検索

Slide 24

Slide 24 text

OpenAIのアシスタント機能とは?  ツール群を持ったAI アシスタントを作成できる機能  事前定義した関数の中から適切な関数群を実行する  ファイル検索して検索結果をもとに推論する  永続的なスレッドでメッセージ履歴を保存し、使うモデルのトークン制限に合わせ て会話履歴を推論に使う  プレビュー機能

Slide 25

Slide 25 text

本日使うOpenAI拡張機能 今回は赤文字の機能を使って、RAGをしてみます。 OpenAI • Text Completion(入力候補)API • Chat Completion(チャット応答)API • ベクトル値を生成する • アシスタントを作成する • アシスタントにメッセージを送信する • アシスタントの履歴を取得する • 関数を呼び出すアシスタント要求に応答する AI Search • AI Searchにドキュメントとベクトル値を格納 • AI Searchからドキュメントを検索

Slide 26

Slide 26 text

RAG構成の一例

Slide 27

Slide 27 text

RAG構成の一例 チャット画面 ①チャット内容送信 ③Assistantsで推論 (チャット内容+検索結果) ②ベクトル検索 Functions • Flex従量課金プラン • OpenAI拡張機能 OpenAI • GPT4o • Assistants Cosmos DB NoSQL • ベクトル検索 RAG用ドキュメント格納 ✓料金が安い、構成がシンプル

Slide 28

Slide 28 text

大まかな処理の流れ 【RAG用ドキュメント格納】 1. ドキュメントの内容をベクトル化 2. Cosmos DBにドキュメントを格納 【RAG】 1. AIアシスタント作成 2. Cosmos DBで検索 3. 検索結果とともにAIアシスタントで推論 【チャット履歴取得】 1. チャット履歴取得

Slide 29

Slide 29 text

大まかな処理の流れ 【RAG用ドキュメント格納】 1. ドキュメントの内容をベクトル化 2. Cosmos DBにドキュメントを格納 【RAG】 1. AIアシスタント作成 2. Cosmos DBで検索 3. 検索結果とともにAIアシスタントで推論 【チャット履歴取得】 1. チャット履歴取得

Slide 30

Slide 30 text

RAG用ドキュメント格納 Functions • Flex従量課金プラン • OpenAI拡張機能 ドキュメントUpload Cosmos DB NoSQL • ベクトル検索 OpenAI • embedding-large • Assistants ドキュメント ①ドキュメントの内容をベクトル化 ベクトル値 ②ベクトル値とともに ドキュメントの内容を格納

Slide 31

Slide 31 text

大まかな処理の流れ 【RAG用ドキュメント格納】 1. ドキュメントの内容をベクトル化 2. Cosmos DBにドキュメントを格納 【RAG】 1. AIアシスタント作成 2. Cosmos DBで検索 3. 検索結果とともにAIアシスタントで推論 【チャット履歴取得】 1. チャット履歴取得

Slide 32

Slide 32 text

RAG Functions • Flex従量課金プラン • OpenAI拡張機能 チャット画面 Cosmos DB NoSQL • ベクトル検索 OpenAI • GPT4o • Assistants ①AIアシスタント作成 ②AssistantsでAIアシスタント作成 AIアシスタントのID AIアシスタントのID

Slide 33

Slide 33 text

RAG チャット画面 ①チャット内容送信 ②ベクトル検索 検索結果 Functions • Flex従量課金プラン • OpenAI拡張機能 OpenAI • GPT4o • Assistants Cosmos DB NoSQL • ベクトル検索

Slide 34

Slide 34 text

RAG チャット画面 ①チャット内容送信 ③Assistantsで推論 (チャット内容+検索結果) 回答 回答 Functions • Flex従量課金プラン • OpenAI拡張機能 OpenAI • GPT4o • Assistants Cosmos DB NoSQL • ベクトル検索

Slide 35

Slide 35 text

処理の概要 【RAG用ドキュメント格納】 1. ドキュメントの内容をベクトル化 2. Cosmos DBにドキュメントを格納 【RAG】 1. AIアシスタント作成 2. Cosmos DBで検索 3. 検索結果とともにAIアシスタントで推論 【チャット履歴取得】 1. チャット履歴取得

Slide 36

Slide 36 text

チャット履歴取得 チャット画面 ①チャット履歴を取得 ②Assistantsに保管された チャット履歴を取得 チャット履歴 チャット履歴 Functions • Flex従量課金プラン • OpenAI拡張機能 OpenAI • GPT4o • Assistants Cosmos DB NoSQL • ベクトル検索

Slide 37

Slide 37 text

デモ

Slide 38

Slide 38 text

デモの対象データ

Slide 39

Slide 39 text

ド キ ュ メ ン ト の ベ ク ト ル 化 と Cosmos DB へ の 格 納

Slide 40

Slide 40 text

RAG

Slide 41

Slide 41 text

チ ャ ッ ト 履 歴 取 得

Slide 42

Slide 42 text

「チャットは飽きたやろ???」 チャットアプリ単体で終わらずに、既存アプリと融合させよう。

Slide 43

Slide 43 text

チャットは意外と使われない? 普段から使っているアプリと、チャットアプリを別にしてしまうと、 チャットアプリ自体が使われない。 元々使われている業務アプリに、Copilotのイメージで拡張しよう。

Slide 44

Slide 44 text

例) タスク管理アプリにチャットを拡張 [タスク管理アプリ] AIにやってほしいこと • 登録されているタスクについての回答 • チャットしながら、 足りないタスクを自動で追加してくれる。

Slide 45

Slide 45 text

デ モ

Slide 46

Slide 46 text

まとめ

Slide 47

Slide 47 text

まとめ 昨日7/25のAOAI DevDayから見た 生成AIの今後

Slide 48

Slide 48 text

生成AIに関する世の中の流れ ✓「使ってみる」 →「本番運用」 ✓「チャットアプリ」 →「業務への適用」「マルチエージェント」 ✓「LLM」 →「LLMとSLMの使い分け」

Slide 49

Slide 49 text

生成AIに関する世の中の流れ ✓「使ってみる」 →「本番運用」 ✓「チャットアプリ」 →「業務への適用」「マルチエージェント」 ✓「LLM」 →「LLMとSLMの使い分け」

Slide 50

Slide 50 text

マルチエージェント 1. 特定の領域の知識を持ち役割が異なるAIエージェントを組み合わせて、 目的を達成するための議論を行い成果物を生成する。 2. 特定の処理を実行するツールとしてのエージェントを組み合わせ、 目的のためにタスクを実行する。

Slide 51

Slide 51 text

マルチエージェントの例 コーディング エージェント XXX要件の変更! YYYという機能を追加して テスト エージェント ✓ テストケース生成 ✓ テストコード実行 マネージャ エージェント ✓ 要件や制約を満たしているか ✓ テストコード実行 Sandbox環境

Slide 52

Slide 52 text

まとめ

Slide 53

Slide 53 text

まとめ  Build2024 で発表されたアップデートされたサービスにより、 RAGの仕組みの選択肢が増えました。  Functions OpenAI拡張機能  Cosmos DB for NoSQLでのベクトル検索  On Your DataがGA  チャットアプリ単体で終わらせずに、 既存アプリにアドオンする形でCopilot化しよう!  次のフェーズは、マルチエージェントやSLM

Slide 54

Slide 54 text

ありがとうございました。