$30 off During Our Annual Pro Sale. View Details »

On Your Data を超えていく!

On Your Data を超えていく!

More Decks by 田口 大智 / ぐっちー

Other Decks in Technology

Transcript

  1. 2 ⽥⼝ ⼤智 (@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 副業︓ l セキュリティチェック記⼊AI開発 趣味 l ダンス・野球・ゴルフ(初⼼者)
  2. 5 実績 デジタルプラットフォーム 構築条業報告書 ゼロトラストアーキテクチャの概念を 取り込んだ環境を構築する実証実験を ⾏いました。 ⽣成AI(Azure OpenAI) 構築⽀援

    独⾃データを組み込んだChatGPTを、 セキュアに構築し、業務へ組み込みむ⽀ 援を⾏いました。 意外と変われる霞ヶ関 ⼤賞 霞が関初、フルクラウド 霞が関初、フルクラウドで業務・働き⽅ を改⾰しました。当社代表が最⾼情報 セキュリティアドバイザーに就任しました。 Chapter1. AOAI を使って開発しているサービス紹介
  3. 6 去年から流⾏っている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. AOAI を使って開発しているサービス紹介
  4. 7 実装例①. 規定AI ⽣成AIに取り組み始めた企業が⼤体やっている規定を参考にして回答するAIは漏れなく僕もやっ ています。 URL︓https://cloudnative.box.com/s/1gtqib8tyys2mpie4wepj8iep29s1u3k Chapter1. AOAI を使って開発しているサービス紹介 当社の休暇を教えてください。

    はい、当社の休暇はXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXです。 🔸参考資料 1. 就業規則 2条 休暇 URL 2. 就業規則 5条 有給休暇 URL 3. 就業規則 6条 特別休暇 URL 4. 就業規則 7条 ⽣理休暇 URL 5. 就業規則 8条 懲戒 URL Title, Section, URLを 表⽰する。 ▼デモ動画▼
  5. 14 Azure OpenAI On your Data とは︖ 開発者が⾃社のデータを組み込んだAIを構築することを容易にするサービスです。 参考︓Using your

    data with Azure OpenAI Service - Azure OpenAI | Microsoft Learn Chapter1. On your data とは︖ <⼿順> 1. Azure 上に以下のリソースを作成する • Azure OpenAI • AI Search • Blob(ストレージアカウント) 2. Blob にPDFやらWordやらをぶち込む。 3. Azure OpenAI Studio でデータソースの設定をする。 (だいたい10クリックぐらい)
  6. 15 ⾃動でドキュメント分割してインデックスを作成 Blob ストレージ上のデータを任意のチャンクサイズ(256/512/1024/1536)に⾃動で分割して、 インデックス化(検索可能な状態)にします。 参考︓ Chapter1. On your data

    とは︖ 1 6 3 4 2 検索しやすい形に ⾃動変換 5 回答⽣成 USER Azure AI Search (旧︓Cognitive Search) Blob チャンク (JSON) チャンク (JSON) チャンク (JSON) チャンク分割 Index化 (検索で きる) { "title": "AIサービス取り扱い⼿順", “contents”: “本書はAIの取り扱い⼿順やFAQです", "url": ”XXX.com/XXX", }, 1チャンク フィールド Azure OpenAI Service
  7. 16 ベクトル検索 ベクトル間の類似度を計算することで意味の近いコンテンツを計算する⼿法。最新のベクトル検 索モデルを使えば 3072 次元のベクトルを使って検索ができる。 参考︓ベクトル検索 - Azure AI

    Search | Microsoft Learn Chapter1. On your data とは︖ ベクトル検索の荒いイメージ図(2次元) ❌ ⽝[1, 2] ❌ チワワ[2, 1] Azure AI Search Vector DB ❌ ネコ[-1, -3]
  8. 19 On your dataをAPIとして使うCompression.Extention.API Chapter1. On your data とは︖ 注意︓鍵の管理やアクセス制御は別途考慮が必要です。

    参考︓Azure OpenAI Service の REST API リファレンス - Azure OpenAI | Microsoft Learn { "dataSources": [ { "type": "AzureCognitiveSearch", "parameters": { "endpoint": "https://***.search.windows.net", "key": ”***", "indexName": "dev-rules-of-employment-01" } } ], "messages": [ { "role": "user", "content": "当社の就業規則について教えてください。" } ] }
  9. 20 On your data に関する書簡 Positive • 経験の少ないユーザーが安価にRAGのPoCをやるの には適したサービスの1つ。 Negative

    • 雑にデータをぶち込んだだけでは、本番環境に展開 できるほどクオリティに達しない場合がある。 (精度・UXの観点) • ベクトル検索はすごいが、最強ではない。 Chapter1. On your data とは︖
  10. 21 On Your Data 作るのは簡単だけどうまくいかない点が多い Chapter1. On your data とは︖

    システムの変更管理⽅法について ⽇本語で教えてください。 The retrieved documents do not contain information about the compliance requirements when changing a system. Please try another query or topic.
  11. 24 前提︓⾃由度を上げるための⾃前実装 On Your Data(Complitiion.Extention.API) は良くも悪くもラッピングされており、⾃由度が低 いため、現時点では⾃前実装の⽅が精度が上がりやすい。 Chapter3. On your

    data を超えていく ⾃前実装 On Your Data(Complitiion.Extention) 2 3 USER Azure AI Search (検索インデックス) オーケストレータ (iPaaS/PaaS) 5 回答 ⽣成 4 検索結果 Azure OpenAI クエリ プロンプト 回答 6 1 UI 3 4 USER Azure AI Search (検索インデックス) オーケストレータ (iPaaS/PaaS) 検索結果 Azure OpenAI クエリ プロンプト 回答 6 1 UI プロンプト 2 5 回答
  12. 29 精度向上の基本的な考え⽅ Chapter3. On your data を超えていく 1 6 2

    3 USER 検索インデックス (情報ソース) 参考︓Patterns for Building LLM-based Systems & Products (eugeneyan.com) 注意︓わかりやすさを重視して書いています。また、RAGのアーキテクチャや処理の流れはシステムによって異なります。 UI オーケストレーター (iPaaS/PaaS 等) 5 回答⽣成 4 検索結果 LLM クエリ プロンプト 回答 プロンプト & 検索結果 指⽰(ユーザーからの質問に検索結果を参 考に回答してください。) ユーザーからの質問 (XXについて教えてください。) 検索結果 精度向上を考える際には、精度を悪くしている要因(課題)を特定して対応するアプローチが⼀ 般的です。 ②検索 ①⼊⼒ ③⽣成 ① ② ③
  13. 30 精度向上の基本的な考え⽅ Chapter3. On your data を超えていく 1 6 2

    3 USER 検索インデックス (情報ソース) 参考︓Patterns for Building LLM-based Systems & Products (eugeneyan.com) 注意︓わかりやすさを重視して書いています。また、RAGのアーキテクチャや処理の流れはシステムによって異なります。 UI オーケストレーター (iPaaS/PaaS 等) 5 回答⽣成 4 検索結果 LLM クエリ プロンプト 回答 プロンプト & 検索結果 指⽰(ユーザーからの質問に検索結果を参 考に回答してください。) ユーザーからの質問 (XXについて教えてください。) 検索結果 精度向上を考える際には、精度を悪くしている要因(課題)を特定して対応するアプローチが⼀ 般的です。 ②検索 ①⼊⼒ ③⽣成 ① そもそも、ちゃんと質問することは難しい︕︕︕
  14. 32 再検索・もっと⾒る/聞き返し・切り分け Chapter3. On your data を超えていく ②検索 ①⼊⼒ ③⽣成

    再検索・もっと⾒る 聞き返し・切り分け LLMに考えさせる ⼊⼝を分ける • ユーザーの質問に対して、逆質問を 返すようにプロンプトを定義してお く。 • 別のクエリで検索をしたり、さらな る検索結果を表⽰させたりする。 Teamsが動かないんだけど︖ • ログインできないっ ていう意味ですか︖ • アプリが起動しない という意味ですか︖ • MTGができないとい う意味ですか︖ • ブラウザでアクセス しても真っ⽩という 意味ですか︖
  15. 33 精度向上の基本的な考え⽅② Chapter3. On your data を超えていく 1 6 2

    3 USER 検索インデックス (情報ソース) 参考︓Patterns for Building LLM-based Systems & Products (eugeneyan.com) 注意︓わかりやすさを重視して書いています。また、RAGのアーキテクチャや処理の流れはシステムによって異なります。 UI オーケストレーター (iPaaS/PaaS 等) 5 回答⽣成 4 検索結果 LLM クエリ プロンプト 回答 プロンプト & 検索結果 指⽰(ユーザーからの質問に検索結果を参 考に回答してください。) ユーザーからの質問 (XXについて教えてください。) 検索結果 精度向上を考える際には、精度を悪くしている要因(課題)を特定して対応するアプローチが⼀ 般的です。 ② 情報検索は⼈類の課題︕︕RAGの1番のボトルネックになりやすい︕ ②検索 ①⼊⼒ ③⽣成
  16. 35 Azureでの検索改善①︓構造化データの利⽤ ドキュメントをただバラすのではなく、構造化データを使った⽅が、情報は探しやすくなる。 Chapter3. On your data を超えていく Title Section

    Contents URL 就業規則 第1条 総則 XXXXXXXXX XXX.com 就業規則 第2条 休暇 XXXXXXXXX XXX.com 就業規則 第3条 XX XXXXXXXXX XXX.com XX規定 第4条 XX XXXXXXXXX XXX.com YY規定 第5条 XX XXXXXXXXX XXX.com ZZ規定 第6条 XX XXXXXXXXX XXX.com ・・・ 第7条 XX XXXXXXXXX XXX.com 就業規則 第1条 総則 XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX 就業規則 ②検索 ①⼊⼒ ③⽣成
  17. 36 Azureでの検索改善①︓構造化データの利⽤ Document Intelligence や OpenInterpreter で構造化データを作る。 Chapter3. On your

    data を超えていく ②検索 ①⼊⼒ ③⽣成 LLMに考えさせる ⼊⼝を分ける • ⽂書を構造化データに変換するのを 助けてくれるAzureのサービス • Code InterpreterのOSS版 • ユーザーの指⽰に基づいて⽣成AI がコードを⽣成し、実⾏までしてく れるアシスタントツール Document Intelligence OpenInterpreter
  18. 37 Azureでの検索改善①︓構造化データの利⽤ Document Intelligence や OpenInterpreter で構造化データを作る。 Chapter3. On your

    data を超えていく ②検索 ①⼊⼒ ③⽣成 デモ動画︓https://cloudnative.box.com/s/qw0oz7ujkpxmqugye0p9l9w1mngeg2u6
  19. 39 Azureでの検索改善②︓データ蓄積フロー サポートデスクなどで利⽤する際には、対応が終わったら過去の質問としてデータを追加する。 Chapter3. On your data を超えていく 保管データ(構造化) Title

    Question Answer URL AOAIの良さにつ いて AOAIはいいです か︖ AOAIは最⾼です。 なぜならばXXX XXX.com AOAIの良さにつ いて AOAIはいいです か︖ AOAIは最⾼です。 XXX.com AOAIの良さにつ いて AOAIはいいです か︖ AOAIは最⾼です。 XXX.com ・・・ ・・・ ・・・ ・・・ 元データ(⾮構造化) AOAIはいいですか︖ AOAIは最高です。 AOAIはいいですか︖ AOAIは最高です。 当社のSlack顧客サポート お客様A お客様B サポート エンジニア サポート エンジニア なぜ最⾼なんですか︖ 最高だからです。 ②検索 ①⼊⼒ ③⽣成
  20. 40 Azureでの検索改善③︓フィルタリング フィルタリングで対象データを絞ることで Chapter3. On your data を超えていく ②検索 ①⼊⼒

    ③⽣成 "value": [ { "custom_title": "AIサービス取り扱い⼿順", “custom_contents”: “本書はAIの取り扱い⼿順やFAQです", "custom_url": " https://box.com/XXX", ”group_id": ” <Group Object ID 1> ", }, { “custom_title”: “エンジニアマニュアル", “custom_contents”: “アウトプットしないのは知的な便秘", "custom_url": " https://box.com/YYY", ”group_id": ” <Group Object ID 13> ", }, Azure Cognitive Search ※ イメージ図 Azure Cognitive Search Index
  21. 41 Azureでの検索改善③︓フィルタリング(クエリ Chapter3. On your data を超えていく ②検索 ①⼊⼒ ③⽣成

    LLMに考えさせる ⼊⼝を分ける • フィルタリングに使う値をLLMに考 えさせて、フィルタリングする。 • ユーザー体験的には「AI感」が増 すが、応答が遅くなる傾向があり、 技術的にも何度が⾼い。 • ⼊⼝を分けてあげて、裏側でフィル タリングする。 • 実装は難しくない。 • 個⼈的にはこれをSlack GPTsと読 んでいる(造語)⼊⼝を分ける LLMに考えさせる ⼊⼝を分ける @sudoAI-Internalrule @sudoAI-Ask2Ask @sudoAI-XXXXX USER BYODってやっていいの︖ 個⼈所有のデバイス (BYOD)で業務をする ことはできますか︖
  22. 42 Azureでの検索改善③︓フィルタリング(ラベル付 LLMや検索サービスにラベル付させる(個⼈的には検索サービスがコスパ良いと考えている Chapter3. On your data を超えていく ②検索 ①⼊⼒

    ③⽣成 Azure AI Search (旧︓Cognitive Search) { “contents”: “~~~~”, ”label": "A.5.1", }, { “contents”: “ウイルス対策ソフトを導⼊すること。”, ”label": "A.8.6", }, { “contents”: “~~~~”, ”label": "A.7.6", }, 当社はマルウェア対策とし てDefender for Endpoint を導⼊しています。 対象⽂書
  23. 43 Azureでの検索改善④︓Hypothetical Questions Hypothetical Questions(仮の質問) Chapter3. On your data を超えていく

    id note question vector XX 代表取締役社⻑が委員⻑を務める情報セキュリ ティ委員会が組成されています。情報セキュリ ティに関する⽅針・課題などは、当委員会にて 協議し、経営会議にて決定します。 セキュリティを推進す る組織はありますか︖ -4578239, 12033454 XX 業務で取り扱う情報資産については、社内サー バ等に保管しておらず、GoogleDrive及びAWS にて保管しております。これらの情報に対して は、適切にアクセス制御を⾏っています。 PCなどのクライアント端末は、会社⽀給のも のを利⽤しています。なお、会社へ申請し許可 を得た場合のみ、BYODを認めています。 XX XXX ②検索 ①⼊⼒ ③⽣成
  24. 44 Azureでの検索改善④︓Hypothetical Questions Azure AI Search のスキルセットでデータを拡張する。 Chapter3. On your

    data を超えていく ②検索 ①⼊⼒ ③⽣成 Azure AI Search (旧︓Cognitive Search) Blob チャンク (JSON) チャンク (JSON) チャンク (JSON) チャンク分割 { "title": "AIサービス取り扱い⼿順", “contents”: “本書はAIの取り扱い⼿順やFAQです”, “question”: “本書はAIの取り扱い⼿順はありますか︖”, "url": ”XXX.com/XXX", }, 1チャンク インデクサー スキルセット スキル定義
  25. 45 精度向上の基本的な考え⽅③ Chapter3. On your data を超えていく 1 6 2

    3 USER 検索インデックス (情報ソース) 参考︓Patterns for Building LLM-based Systems & Products (eugeneyan.com) 注意︓わかりやすさを重視して書いています。また、RAGのアーキテクチャや処理の流れはシステムによって異なります。 UI オーケストレーター (iPaaS/PaaS 等) 5 回答⽣成 4 検索結果 LLM クエリ プロンプト 回答 プロンプト & 検索結果 指⽰(ユーザーからの質問に検索結果を参 考に回答してください。) ユーザーからの質問 (XXについて教えてください。) 検索結果 精度向上を考える際には、精度を悪くしている要因(課題)を特定して対応するアプローチが⼀ 般的です。 ③ ②検索 ①⼊⼒ ③⽣成 プロンプトエンジニアリングも油断してはいけない︕︕
  26. 46 プロンプトエンジニアリング(腐るほど⼿法ある) 参考︓Prompt Engineering Guide | Prompt Engineering Guide (promptingguide.ai)

    Chapter3. On your data を超えていく ②検索 ①⼊⼒ ③⽣成 観点 プロンプト 次の⽂章を〇〇⽂字以内で、 ですます調の⽂章として要約してください。 ・・・・・・・・・・・・・ ・・・・・・・・・・・・・ これサマって。 ・・・・・・・・・・・・・ ・・・・・・・・・・・・・ Good! Bad
  27. 47 プロンプトを構造化する 注意︓セミナー向けに単純化しています。 Chapter3. On your data を超えていく Instructions: あなたは優秀なセキュリティ担当者です。規定の検索結果がコンテキストを提供し、セキュリテ

    ィチェックリストの質問に⽇本語で回答します。⽂書に回答に関連する情報が含まれている場合 は、以下の例⽰のとおり、質問に具体的に回答を提供し、参照⽂書番号を含めます。 <example>当社は {XXのような対策} を実施しています。[doc2]</example> <context> <doc1>セキュリティ規定︓ウイルスの被害を防⽌するためにOSをアップデートする</doc1> <doc2>セキュリティ規定︓AVソフトをMDMでPCに展開する</doc2> <doc3>セキュリティポリシー︓情報セキュリティの可⽤性をホゲホゲ</doc3> </context> <question>アンチウイルスソフトを導⼊していますか︖</question> Answer: ②検索 ①⼊⼒ ③⽣成
  28. 48 最初と最後に重要な情報を持ってくる XXX 参考︓[2402.14848] Same Task, More Tokens: the Impact

    of Input Length on the Reasoning Performance of Large Language Models (arxiv.org) Chapter3. On your data を超えていく ②検索 ①⼊⼒ ③⽣成 Instructions: あなたは優秀なセキュリティ担当者です。規定の検索結果がコンテキストを提供し、セキュリテ ィチェックリストの質問に⽇本語で回答します。⽂書に回答に関連する情報が含まれている場合 は、以下の例⽰のとおり、質問に具体的に回答を提供し、参照⽂書番号を含めます。 <example>当社は {XXのような対策} を実施しています。[doc2]</example> <context> <doc1>セキュリティ規定︓ウイルスの被害を防⽌するためにOSをアップデートする</doc1> <doc2>セキュリティ規定︓AVソフトをMDMでPCに展開する</doc2> <doc3>セキュリティポリシー︓情報セキュリティの可⽤性をホゲホゲ</doc3> </context> <question>アンチウイルスソフトを導⼊していますか︖</question> Answer:
  29. 49 Azure AI - Text Translation API で英語化 Azure AI

    - Text Translation API で英語化すると、精度UPとコスト削減が⾒込める。 参考︓2308.01223.pdf (arxiv.org) Chapter3. On your data を超えていく ②検索 ①⼊⼒ ③⽣成 LLMコスト削減や コンテキストを増やせる 等の効果もあるぞ 須藤あい(AI)
  30. 50 英語化の落とし⽳ 英語翻訳はセキュリティチェック等、質問が良い⽇本語であるケースに適しているように思える(私⾒ Chapter3. On your data を超えていく ②検索 ①⼊⼒

    ③⽣成 質問 社内での私物の携帯は認められていますか︖ (社内に携帯電話を持ち込んでいいですか︖ or スマホのBYODは規定で許可されてますか︖ 質問の英訳 Is it allowed to carry personal belongings in the office? AIの回答 Yes, employees are permitted to bring personal items to the office, but the company is not responsible for any loss or damage. AIの回答の ⽇本語訳 はい、従業員はオフィスに私物を持ち込むことができますが、紛失 や破損について会社は責任を負いません。
  31. 51 綺麗なデータセットがプロンプトでも⽣きる とりあえずバラしたデータをLLMに渡したら、LLMが誤認してしまうことは明⽩。 Chapter3. On your data を超えていく ②検索 ①⼊⼒

    ③⽣成 検索結果 XXXXXXX ¥n官房⻑官 ¥n¥n⾦⼦ 恭 之¥n内閣総理 ⼤⾂ ¥n 岸 XXXXXXXX 今の総理⼤⾂は誰︖ 今の総理⼤⾂は⾦⼦ 恭 之 ⽒です。 回答
  32. 52 まとめ • On Your Data は AI 活⽤の最初の1歩としては最適︕ だけど、本番環境に投⼊して満⾜できるものは作れない。

    • RAGアプリの改善に銀の弾丸はなく、ボトルネックを特 定して改善していく地道なアプローチとなるが、検索部 分がボトルネックになりやすい。 • ユーザー企業であれば、データ整備に投資することが効 果が出やすいし、Azureのさまざまな技術を使って綺麗 なデータを整えよう。 Chapter3. On your data を超えていく
  33. 53 最後に宣伝︕︕︕ Chapter3. On your data を超えていく 資料サンプル:https://blog.cloudnative.co.jp/22909/ 0 PUBLIC

    Copilot for Microsoft 365 ユーザー向け研修資料 株式会社クラウドネイティブ ↓資料サンプル公開中↓
  34. 54 株式会社クラウドネイティブ Cloud Native Inc. 設⽴︓2017年5⽉ 所在地︓〒106-0032 東京都港区六本⽊1-4-5 アークヒルズサウスタワー 16F

    代表電話番号︓050-1791-0450 Eメールアドレス︓[email protected] ITの世界だからこそ、⼈と⼈とのコミュニケーションを最重要視し、 全員が前を向いて楽しく仕事を進められる世界を作るのが最⼤のミッションです。 https://cloudnative.co.jp