Slide 1

Slide 1 text

0 PUBLIC LLM活⽤を加速させる Prompt Flow 実践 2024.04.13 Azure Travelers 勉強会 神⼾の旅 セキュリティ&データガバナンスセクション クラウドセキュリティアーキテクト ⽥⼝ ⼤智

Slide 2

Slide 2 text

1 ⽥⼝ ⼤智 (@hirotomotaguchi) Cloud Security Architect ⾃⼰紹介 経歴 l 明治⼤学︓野球部 l コンサルティング会社︓ISO27000(ISMS)、ISMAP 等 現在の仕事 l 現職︓ l セキュリティ系 l ゼロトラストの概念に基づくIT基盤設計 l CASB/SWG/EDR/SIEM等の構築運⽤⽀援や運⽤サポート l AI系 l AOAI/AI Search の構築⽀援 趣味 l ダンス・野球・ゴルフ(初⼼者)

Slide 3

Slide 3 text

2 アジェンダ 1 2 3 関与しているシステム・サービスの紹介(⼀部) Prompt Flow 概要 Prompt Flow がどう役に⽴ったのか︖

Slide 4

Slide 4 text

3 会社紹介 企業からITが無くなると事業継続が困難である今の時代、情報システム部⾨は企業のコアと⾔え ます。ITによって⾃在に変化適応できる組織へ再設計し企業価値を最⼤化するご⽀援をします。 情シスのお悩みを 解決する仕事だ︕ 須藤あい(AI) Chapter1.関与しているシステム・サービスの紹介(⼀部)

Slide 5

Slide 5 text

4 実績 デジタルプラットフォーム 構築条業報告書 ゼロトラストアーキテクチャの概念を 取り込んだ環境を構築する実証実験を ⾏いました。 ⽣成AI(Azure OpenAI) 構築⽀援 独⾃データを組み込んだChatGPTを、 セキュアに構築し、業務へ組み込みむ⽀ 援を⾏いました。 意外と変われる霞ヶ関 ⼤賞 霞が関初、フルクラウド 霞が関初、フルクラウドで業務・働き⽅ を改⾰しました。当社代表が最⾼情報 セキュリティアドバイザーに就任しました。 Chapter1.関与しているシステム・サービスの紹介(⼀部)

Slide 6

Slide 6 text

5 去年から流⾏っているRAGでいろいろやってます︕ Retrieval-Augmented Generation 検索 拡張 ⽣成 1 6 2 3 USER 検索インデックス (情報ソース) 参考︓Patterns for Building LLM-based Systems & Products (eugeneyan.com) 注意︓わかりやすさを重視して書いています。また、RAGのアーキテクチャや処理の流れはシステムによって異なります。 UI オーケストレーター (iPaaS/PaaS 等) 5 回答⽣成 4 検索結果 LLM クエリ プロンプト 回答 プロンプト & 検索結果 指⽰(ユーザーからの質問に検索結果を参 考に回答してください。) ユーザーからの質問 (XXについて教えてください。) 検索結果 Chapter1.関与しているシステム・サービスの紹介(⼀部)

Slide 7

Slide 7 text

6 案件①. カスタマーサポートAI 代理店業務のカスタマーサポートにおける、チケット起票と同時に「過去の類似チケット」と 「回答の下書き」を⾃動で表⽰する様にしました。 Chapter1.関与しているシステム・サービスの紹介(⼀部)

Slide 8

Slide 8 text

8 案件②. セキュリティチェックシート記⼊AI ユーザーがセキュリティチェックシートをアップロードしたら、AIを使って下書きを記⼊し、下 書きをコンサルタントが⼿直しした上で返却するサービスを⾏っています。 ※ AWS上に構築している環境(SaaS)への組み込みはできていない。 Chapter1.関与しているシステム・サービスの紹介(⼀部) ユーザー ISMSMコンサル Azure OpenAI Azure AI Search 個⼈プロジェクト

Slide 9

Slide 9 text

9 アジェンダ 1 2 3 関与しているシステム・サービスの紹介(⼀部) Prompt Flow 概要 Prompt Flow でどう幸せになれたのか︖

Slide 10

Slide 10 text

10 Prompt Flowとは︖ Prompt Flow はAzure上で使えるAIアプリケーションの開発サイクル全体を合理化するために設 計された総合開発ツールです。 Chapter2. Prompt Flow 概要 ü AIアプリケーション向 け開発ツール ü Pythonのコードを実 ⾏できる ü AIアプリのテストや評 価のための機能を備え ている ü エンドポイントを公開 して、作ったフローを 外部から実⾏できる

Slide 11

Slide 11 text

11 Prompt Flow を利⽤できる場所 Prompt Flow は Azure Machine Learning、Azure AI Studio、ローカル環境で利⽤できます。 Chapter2. Prompt Flow 概要 Azure AI Studio Azure Machine Learning ローカル(VS Code)

Slide 12

Slide 12 text

12 Prompt Flow で⽤意されている通常フロー・チャットフロー Prompt Flow ではテンプレートのフローが⽤意されています。 ⽤意されているフロー 概要 Ask Wikipedia ユーザーの質問に対して、Wikipediaの内容をもとに回答する。 Chat with Wikipedia 「Ask Wikipedia」と同様だが、チャット履歴機能を備えてお り、チャットに特化している。 Web Classification Webサイトのカテゴリを分類する。 Use Function with Chat Models 外部のAPI(Function)を呼び出す。 Bring Your Own Data QnA 独⾃データを取り込んだフローを作る。 Chapter2. Prompt Flow 概要

Slide 13

Slide 13 text

13 ベーシックなQ&Aフロー Prompt Flow ではテンプレートのフローが⽤意されています。 Chapter2. Prompt Flow 概要

Slide 14

Slide 14 text

14 Prompt Flow での評価もできる︕ Prompt Flow はAIの処理フローを作るだけではなくて、評価機能も備えています︕ Chapter2. Prompt Flow 概要

Slide 15

Slide 15 text

15 Prompt Flow での応答速度の確認 Chapter2. Prompt Flow 概要

Slide 16

Slide 16 text

16 Prompt Flow で作るRAGシステム Azure AI Studio Prompt Flow はAzure上で使えるAIアプリケーションの開発サイクル全体を合 理化するために設計された総合開発ツールです。 Chapter2. Prompt Flow 概要 Azure Azure AI Studio (Prompt Flow) input Hybrid Search Create output output 何か Azure OpenAI Azure AI Search 質問 回答 Hybrid Search Create output 規定のデータを ベクターDB化する︕ MSの世界で1番精度がいい⼿法 (ベクトル検索+セマンティックリランク)

Slide 17

Slide 17 text

17 Prompt Flow の基本的な使い⽅(1/3) テンプレートからフローをクローンして始める。 Chapter2. Prompt Flow 概要

Slide 18

Slide 18 text

18 Prompt Flow の基本的な使い⽅(2/3) さまざまなtoolを使ってNode を⾜したり書き換えて開発する。 Chapter2. Prompt Flow 概要

Slide 19

Slide 19 text

19 Prompt Flow の基本的な使い⽅(3/3) テンプレートからフローをクローンして始める。 Chapter2. Prompt Flow 概要

Slide 20

Slide 20 text

20 アジェンダ 1 2 3 関与しているシステム・サービスの紹介(⼀部) Prompt Flow 概要 Prompt Flow がどう役に⽴ったのか︖

Slide 21

Slide 21 text

21 個⼈的に経験した「めんどくさい」事案 • 芸術的なExcelのAIへの取り込み • 既存システムとの兼ね合い • LLM/RAGの評価めんどくさい/難しい 1 2 3 Chapter3. Prompt Flow がどう役に⽴ったのか?

Slide 22

Slide 22 text

22 セキュリティチェックシートのよくあるフォーマット Chapter3. Prompt Flow がどう役に⽴ったのか?

Slide 23

Slide 23 text

23 PoC時点ではCSVとしてデータをアップして実⾏する Chapter3. Prompt Flow がどう役に⽴ったのか?

Slide 24

Slide 24 text

24 個⼈的に経験した「めんどくさい」事案 • 芸術的なExcelのAIへの取り込み • 既存システムとの兼ね合い • LLM/RAGの評価めんどくさい/難しい 1 2 3 Chapter3. Prompt Flow がどう役に⽴ったのか?

Slide 25

Slide 25 text

25 AIシステム導⼊前の状況 • 顧客サポートシステム • Workato(iPaaS)を使って構築 • 別チームのメンバーが開発 • セキュリティチェックAI • AWSを基盤とするSaaSとして構築 • 開発チームとは⾮同期で作業している • AWSの⽅は極⼒触りたくない Chapter3. Prompt Flow がどう役に⽴ったのか?

Slide 26

Slide 26 text

26 エンドポイントを公開して、外部からフローを実⾏してもらう まだ、SaaSの本体にAI部分を組み込めてはいないですが、エンドポイントを公開して、外部から フローを実⾏してもらうことを検討中です(最終的にLogic AppsやFunctionになるかもしれない REST API Chapter3. Prompt Flow がどう役に⽴ったのか?

Slide 27

Slide 27 text

27 個⼈的に経験した「めんどくさい」事案 • 芸術的なExcelのAIへの取り込み • 既存システムとの兼ね合い • LLM/RAGの評価めんどくさい/難しい 1 2 3 Chapter3. Prompt Flow がどう役に⽴ったのか?

Slide 28

Slide 28 text

28 例えばRAGのGの部分 Retrieval Augmented Generation 検索 拡張 ⽣成 1 6 2 3 USER 検索インデックス (情報ソース) 参考︓Patterns for Building LLM-based Systems & Products (eugeneyan.com) 注意︓わかりやすさを重視して書いています。また、RAGのアーキテクチャや処理の流れはシステムによって異なります。 UI オーケストレーター (iPaaS/PaaS 等) 5 回答⽣成 4 検索結果 LLM クエリ プロンプト 回答 プロンプト & 検索結果 指⽰(ユーザーからの質問に検索結果を参 考に回答してください。) ユーザーからの質問 (XXについて教えてください。) 検索結果 Chapter3. Prompt Flow がどう役に⽴ったのか?

Slide 29

Slide 29 text

29 RAGのプロンプト例(セキュリティチェックAI) ※ 実際の環境では英語のプロンプトを利⽤しており、かつ情報量もこれよりも多いですが、登壇のわかりやすさを重視して省略しています。 ※ ⾚字部分が変数部分です。 Chapter3. Prompt Flow でどう幸せになれたのか? Instructions: あなたは優秀なセキュリティ担当者です。規定の検索結果がコンテキストを提供し、セキュリテ ィチェックリストの質問に⽇本語で回答します。⽂書に回答に関連する情報が含まれている場合 は、以下の例⽰のとおり、質問に具体的に回答を提供し、参照⽂書番号を含めます。 当社は {XXのような対策} を実施しています。[doc2] セキュリティ規定︓ウイルスの被害を防⽌するためにOSをアップデートする セキュリティ規定︓AVソフトをMDMでPCに展開する セキュリティポリシー︓情報セキュリティの可⽤性をホゲホゲ アンチウイルスソフトを導⼊していますか︖ Answer:

Slide 30

Slide 30 text

30 RAGのプロンプト例(セキュリティチェックAI) ※ 実際の環境では英語のプロンプトを利⽤しており、かつ情報量もこれよりも多いですが、登壇のわかりやすさを重視して省略しています。 ※ ⾚字部分が変数部分です。 Chapter3. Prompt Flow でどう幸せになれたのか? Instructions: あなたは優秀なセキュリティ担当者です。規定の検索結果がコンテキストを提供し、セキュリテ ィチェックリストの質問に⽇本語で回答します。⽂書に回答に関連する情報が含まれている場合 は、以下の例⽰のとおり、質問に具体的に回答を提供し、参照⽂書番号を含めます。 当社は {XXのような対策} を実施しています。[doc2] セキュリティ規定︓ウイルスの被害を防⽌するためにOSをアップデートする セキュリティ規定︓AVソフトをMDMでPCに展開する セキュリティポリシー︓情報セキュリティの可⽤性をホゲホゲ アンチウイルスソフトを導⼊していますか︖ Answer: わからないとき どう動いて欲しい︖ 例⽰はどんな フォーマット︖ Context(検索結果)は いくつ渡す︖ LLMに情報を 渡す順番 どんな指⽰を 与えたらいい︖ ⽇本語か︖ 英語か︖

Slide 31

Slide 31 text

31 評価の時に考えること(LLMの実⾏時) Chapter3. Prompt Flow でどう幸せになれたのか? 事前定義しているプロンプト × ユーザーからの質問 × モデル(3.5? 4? Claude?) ↓ エグいパターン数 • 精度 • 応答速度 • パフォーマンス • コスト

Slide 32

Slide 32 text

32 RAGのRの部分もかなり曲者 Retrieval Augmented Generation 検索 拡張 ⽣成 1 6 2 3 USER 検索インデックス (情報ソース) 参考︓Patterns for Building LLM-based Systems & Products (eugeneyan.com) 注意︓わかりやすさを重視して書いています。また、RAGのアーキテクチャや処理の流れはシステムによって異なります。 UI オーケストレーター (iPaaS/PaaS 等) 5 回答⽣成 4 検索結果 LLM クエリ プロンプト 回答 プロンプト & 検索結果 指⽰(ユーザーからの質問に検索結果を参 考に回答してください。) ユーザーからの質問 (XXについて教えてください。) 検索結果 Chapter3. Prompt Flow でどう幸せになれたのか?

Slide 33

Slide 33 text

33 評価の時に考えること Chapter3. Prompt Flow でどう幸せになれたのか? 検索の部分について • 検索サービスどうする︖ • ベクトル検索のモデル (ada-002・003・オープンソースのやつ) • リランク • データ構造 (どのようなフィールドにする︖・チャンク分割)

Slide 34

Slide 34 text

34 Prompt Flow で評価する Prompt Flow には作ったフローを評価するための仕組みを備えています。 Chapter3. Prompt Flow でどう幸せになれたのか?

Slide 35

Slide 35 text

35 よくやる評価 - プロンプトを変えてABテスト(⽬検) バリアントを作成し、プロンプトのさまざまなパターンを組み合わせてABテストする。 Chapter3. Prompt Flow でどう幸せになれたのか?

Slide 36

Slide 36 text

36 よくやる評価 - ⼀貫性をLLMで評価 gpt-3.5-turbo に検索結果を多く与えすぎると、明後⽇の⽅にいく回答となることが多いため、 質問と回答の⼀貫性をスコア化してもらう Chapter3. Prompt Flow でどう幸せになれたのか? 回答 質問 評価 点数 定義 1 ⼀貫性が全くない 2 ⼀貫性がほとんどない 3 ⼀部⼀貫性がある 4 ほとんど⼀貫している 5 ⼀貫性がある はい、当社は Microsoft Defender for Endpoint を 導⼊して、ウイルス対策をお こなっています。また、 Netskope を導⼊して、情報 漏洩対策をしています。 アンチウイルスソフトを導⼊ していますか︖ ほぼ⼀貫しているが、聞かれて ないことに答えている。

Slide 37

Slide 37 text

37 よくやる評価 - 根拠(捏造していないか︖) 回答が根拠に基づくものなのか、捏造しているものではないかをLLMを使ってチェックする。 Chapter3. Prompt Flow でどう幸せになれたのか? 回答 質問 検索結果 はい、当社は Microsoft Defender for Endpoint を 導⼊して、ウイルス対策をお こなっています。 アンチウイルスソフトを導⼊ していますか︖ 端末管理規定 ~~~ 脅威から端末を保護するため に、Microsoft Defender for Endpoint P2をMDMで登録 する。 根拠に基づくものか、捏造した ものかをLLMでチェック

Slide 38

Slide 38 text

38 よくやる評価 - 期待する回答との類似度 期待する答えとの類似度をLLM(GPT-3.5)やベクトルモデル(text-embedding-ada)等で評価 します(僕は評価⽤のAzure AI Searchインデックスを作ったりしている。) Chapter3. Prompt Flow でどう幸せになれたのか? 回答 質問 期待する答え はい、当社は Microsoft Defender for Endpoint を 導⼊して、ウイルス対策をお こなっています。また、 Netskope を導⼊して、情報 漏洩対策をしています。 アンチウイルスソフトを導⼊ していますか︖ はい、当社は Microsoft Defender for Endpoint を 導⼊して、ウイルス対策をお こなっています。 類似度スコア 0.832464

Slide 39

Slide 39 text

39 よくやる評価 - 利⽤したトークン量も⼀緒に表⽰してコスパ診断 Azure OpenAI のレスポンスのusageの値を⾒て、1回あたりどれぐらいのコストがかかっている かを評価します。 Chapter3. Prompt Flow でどう幸せになれたのか? "usage": { "completion_tokens": 472, “prompt_tokens”: 2237, "total_tokens": 2709 }

Slide 40

Slide 40 text

40 【余談】テスト結果を社内ユーザーに出⼒したらウケた 元々、評価⽤に作っていた情報を含めて、社内ユーザーに提供してみたら好評だった。 Chapter3. Prompt Flow でどう幸せになれたのか? id question answer 注意書き 情報ソース URL X X セキュリティを推進 する組織はあります か︖ 当社はCISOを任命し ています。 質問の回答に なっていない 可能性があり ます。 XX規定 [XXX].com X X 関連法令を確認して いますか。 関連法令を確認して います。 質問と回答は マッチしてい ます。 XX規定 [XXX].com X X 個⼈情報保護責任者 を設けていますか。 情報セキュリティ管 理責任者を設けてい ます。 質問の回答に なっていない 可能性があり ます。 XX規定 [XXX].com

Slide 41

Slide 41 text

41 頑張って欲しい部分 Chapter3. Prompt Flow でどう幸せになれたのか? • node の名前変えても変わらないみたいなエラー多いな (FBはちょいちょいしてますw • Azure Machine Learning と Azure AI Studio のどっち 使えばいい問題(AI Studioだとネットワークの制限がで きなさそうなので、個⼈的にはAzure ML) • マネージドIDとかで認証したい。

Slide 42

Slide 42 text

42 まとめ Chapter3. Prompt Flow がどう役に⽴ったのか? • Prompt Flow はMS社が提供するAIシステムの総合開発 環境です。 • Prompt Flow はテンプレートが⽤意されており、中⾝を 理解しながら開発を進めらられやすい。 • 特に評価の仕組みが重宝する。(例え、Prompt Flowで はなくて、FunctionsやLogic Apps、PowerAutomateで フローを作る場合でも、触っておいて損はない。)

Slide 43

Slide 43 text

43 株式会社クラウドネイティブ Cloud Native Inc. 設⽴︓2017年5⽉ 所在地︓〒106-0032 東京都港区六本⽊1-4-5 アークヒルズサウスタワー 16F 代表電話番号︓050-1791-0450 Eメールアドレス︓[email protected] ITの世界だからこそ、⼈と⼈とのコミュニケーションを最重要視し、 全員が前を向いて楽しく仕事を進められる世界を作るのが最⼤のミッションです。 https://cloudnative.co.jp