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

Azure OpenAI Service リファレンスアーキテクチャからみる本番システムレベルの LLM アプリに必要な検討項目の解説 / From Azure OpenAI Reference Architecture to Production-Ready LLM Apps #serverlessdays #serverlesstokyo

Kodai Sakabe
September 23, 2023

Azure OpenAI Service リファレンスアーキテクチャからみる本番システムレベルの LLM アプリに必要な検討項目の解説 / From Azure OpenAI Reference Architecture to Production-Ready LLM Apps #serverlessdays #serverlesstokyo

ServerlessDays Tokyo 2023 で Azure OpenAI Service リファレンスアーキテクチャからみる、本番システムレベルの LLM アプリに必要な検討項目の解説 / From Azure OpenAI Reference Architecture to Production-Ready LLM Apps というタイトルで紹介しました

HP: https://tokyo.serverlessdays.io/
Ticket: https://serverless.connpass.com/event/290640/

#serverlessdays #serverlesstokyo

Kodai Sakabe

September 23, 2023
Tweet

More Decks by Kodai Sakabe

Other Decks in Technology

Transcript

  1. ,PEBJ4BLBCFBU.JDSPTPGU+BQBO$P -UE
    4FSWFSMFTT%BZT5PLZP

    "[VSF0QFO"*4FSWJDFϦϑΝϨϯεΞʔΩςΫνϟ͔ΒΈΔ
    ຊ൪γεςϜϨϕϧͷ--.ΞϓϦʹඞཁͳݕ౼߲໨ͷղઆ

    View Slide

  2. (PBM
    ͜ͷηογϣϯͰΘ͔Δ͜ͱɺ࿩͞ͳ͍͜ͱ
    w ͜ͷηογϣϯͰΘ͔Δ͜ͱ
    w ϦϑΝϨϯεΞʔΩςΫνϟͷาΈํͱ࠷ॳͷҰา
    w ର৅ऀ
    w ࡢࠓͷ"*Λ༻͍ͨαʔϏεͷ։ൃӡ༻ܞΘΔํ
    w ͜ͷηογϣϯͰ࿩͞ͳ͍͜ͱ
    w "*ؔ࿈ʹ͍ͭͯ

    View Slide

  3. ࡔ෦޿େ!LPVEBJJJ
    ೔ຊϚΠΫϩιϑτͷύʔτφʔࣄۀຊ෦ͷ"[VSFͷύʔτφʔιϦϡʔγϣϯΞʔΩςΫτɻ1P$ɺ1SPEVDUJPO؀ڥͷΞηεϝϯτɺϖΞΦϖ΍τϥγϡʔͳͲӡ༻ʹؔΘΔࢧԉʹैࣄɻ
    5*4ͳΒͼʹ8BOUFEMZʹͯ4BB4ͷΠϯϑϥ΍ӡ༻อकͳΒͼʹࣾ಺*5΍಺෦౷੍ɺηΩϡϦςΟɺπʔϧ࡞੒ɺαʔόʔαΠυΤϯδχΞ΍%FW0QT43&Λܦݧɻ
    ࠷దղΛ࣮ݱ͢ΔมԽʹڧ͍ΠϯϑϥΛ͍ͭ΋ߟ͍͑ͯ·͢ɻ
    w )1IUUQTLPVEBJJJDPN υϝΠϯҠ؅ͷखҧ͍ʹͯ".෮ؼ

    w 044
    w IUUQTHJUIVCDPN"[VSFB[UGZ"[VSFB[UGFYQPSU΁Ϧϒϥϯυ
    w #PPLIUUQTBNB[PODPKQEQ#2-#48-ͦͷଞϨϏϡʔͰͷࢀՃଟ਺
    w *OUFSWJFX
    w ΞʔΩςΫτIUUQTUIJOLJUDPKQBSUJDMF
    w ΠϯϑϥIUUQTBXTBNB[PODPNKQTPMVUJPOTDBTFTUVEJFTXBOUFEMZ
    w %FW0QTIUUQTYUFDIOJLLFJDPNJUBUDMXBUDIFS
    w ΨόφϯεIUUQTXXXMSNKQJTPWPJDFXBOUFEMZ
    w ηΩϡϦςΟIUUQTXXXUFDINBUSJYDPKQDBTFTUVEZXBOUFEMZJOEFYIUNM
    * https://learn.microsoft.com/ja-jp/azure/developer/terraform/azure-export-for-terraform/export-terraform-overview

    View Slide

  4. "HFOEB
    "[VSF0QFO"*4FSWJDFϦϑΝϨϯεΞʔΩςΫνϟ͔ΒΈΔɺຊ൪γεςϜϨϕϧͷ--.ΞϓϦʹඞཁͳݕ౼߲໨ͷղઆ
    ΩϟονΞοϓ ಡΉલʹ࠷௿ݶ஌Δ"[VSF

    ϦϑΝϨϯεΞʔΩςΫνϟ
    ϦϑΝϨϯεΞʔΩςΫνϟ׆༻๏

    View Slide

  5. ΩϟονΞοϓ
    ಡΉલʹ࠷௿ݶ஌Δ"[VSF

    View Slide

  6. "QQ4FSWJDF%#ʹΑΔ઀ଓํ๏
    IUUQTMFBSONJDSPTPGUDPNKBKQB[VSFBQQTFSWJDFPWFSWJFXWOFUJOUFHSBUJPOIPXSFHJPOBMWJSUVBMOFUXPSLJOUFHSBUJPOXPSLT
    w "QQ4FSWJDF8FC"QQGPS$POUBJOFST
    w $POUBJOFSͰಈ͔͢৔߹ɺ"QQ4FSWJDFTͷ8FC"QQGPS$POUBJOFST
    w $POUBJOFS"QQTͱ͸ผ $POUBJOFS"QQT͸",4্ͷϚωʔδυɾαʔϏ
    ε

    w "QQ4FSWJDF8FC"QQT
    w 3VOUJNFͰ4FSWFSىಈ
    7/&5
    9
    4VCOFU 4VCOFU
    1SJWBUF&OEQPJOU
    1SJWBUF-JOL
    1BB4

    View Slide

  7. "[VSF1SJWBUF&OEQPJOUͱ"[VSF1SJWBUF-JOLͷؔ܎
    IUUQTMFBSONJDSPTPGUDPNKBKQB[VSFQSJWBUFMJOLQSJWBUFMJOLGBRB[VSFQSJWBUFMJOL
    w "[VSF1SJWBUF&OEQPJOU͸ɺ"[VSF1SJWBUF-JOLΛ࢖༻͢ΔαʔϏεʹϓ
    ϥΠϕʔτ͔ͭ҆શʹ઀ଓ͢ΔωοτϫʔΫΠϯλʔϑΣΠε
    w "[VSF1SJWBUF-JOLαʔϏε͸ɺαʔϏεϓϩόΠμʔʹΑͬͯ࡞੒͞ΕΔ
    αʔϏε
    7/&5
    X
    4VCOFU 4VCOFU
    1SJWBUF&OEQPJOU
    1SJWBUF-JOL
    ͦͷଞ1BB4
    8FC"QQT
    6TFS *OUFSOFU 1SJWBUF*1

    View Slide

  8. ωοτϫʔΫߏ੒ͷϓϥΠϕʔτԽ
    ʲ"[VSF0QFO"*4FSWJDFϦϑΝϨϯεΞʔΩςΫνϟʳ̒ষڞ௨ج൫
    ガ
    Π
    ド
    @ɹೝূϩ
    ギ
    ϯ
    グ
    ΫΥʔλ੍ݶ1

    View Slide

  9. "[VSF"QQ4FSWJDF "[VSF'VODUJPOTؚΉ
    Ͱͷೝূͱঝೝ
    IUUQTMFBSONJDSPTPGUDPNKBKQB[VSFBQQTFSWJDFPWFSWJFXBVUIFOUJDBUJPOBVUIPSJ[BUJPO
    w "[VSF"QQ4FSWJDF͸૊ΈࠐΈͷೝূͱೝՄͷػೳ &BTZ"VUI ؆୯ೝূ

    w "[VSF"%'BDFCPPL .FUB
    (PPHMF9 5XJUUFS
    (JU)VC"QQMF
    0QFO*%
    "[VSF"QQ4FSWJDFͷϚωʔδυൣғ

    View Slide

  10. 0QFO"*4FSWJDF͸εςʔτϨε
    ʲ"[VSF0QFO"*4FSWJDFϦϑΝϨϯεΞʔΩςΫνϟʳ̒ষڞ௨ج൫
    ガ
    Π
    ド
    @ɹೝূϩ
    ギ
    ϯ
    グ
    ΫΥʔλ੍ݶ1

    View Slide

  11. ϦϑΝϨϯεΞʔΩςΫνϟ

    View Slide

  12. "[VSF0QFO"*4FSWJDFϦϑΝϨϯεΞʔΩςΫνϟ
    IUUQTXXXNJDSPTPGUDPNKBKQCJ[
    fi
    OEOFXWBMVFPOB[VSFBJCJ[BTQY
    w IUUQTXXXNJDSPTPGUDPNKBKQFWFOUTB[VSFCBTFDPOUFOUT

    View Slide

  13. 0 章 はじめに
    Azure OpenAI リファレンスとは
    1 章
    コールセンター向け AI アシスタント
    2章
    料理メニュー提案
    3章
    ⽬標達成アシスタント
    4章
    企業分析
    5章
    企業内向けChatと社内⽂書検索
    6章
    共通基盤ガイド
    認証/ロギング/クォータ制限

    View Slide

  14. リファレンスの利⽤⽅法
    3
    3
    リファレンス⼀覧
    4
    章 カテゴリー ガイドライン
    0 はじめに
    1. Azure Openリファレンスとは
    1 コールセンター向けAIアシスタントシナリオ
    1. シナリオ概要
    2. アプリUI
    3. アーキテクチャ
    4. デプロイ⽅法
    5. 考慮事項
    2 料理メニューの提案シナリオ
    1. シナリオ概要
    2. アプリUI
    3. アーキテクチャ
    4. デプロイ⽅法
    5. 考慮事項
    3 ⽬標達成アシスタントシナリオ
    1. シナリオ概要
    2. アプリUI
    3. アーキテクチャ
    4. デプロイ⽅法
    5. 考慮事項
    章 カテゴリー ガイドライン
    4 企業分析シナリオ
    1. シナリオ概要
    2. アプリUI
    3. アーキテクチャ
    4. デプロイ⽅法
    5. 考慮事項
    5 企業内向けChatと社内⽂書検索シナリオ
    1. シナリオ概要
    2. アプリUI
    3. アーキテクチャ
    4. デプロイ⽅法
    5. 考慮事項
    6 共通基盤ガイド
    1. このガイドの位置づけ
    2. 基盤の全体概要
    3. ユーザーの認証認可
    4. ログ取得
    5. クォータ制限(利⽤制限)
    6. デプロイ⽅法
    7. 補⾜事項
    8. 考慮事項
    4
    制限事項
    5
    5
    © Copyright Microsoft Corporation. All rights reserved.
    本資料は情報提供のみを⽬的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの⾒解を⽰したものです。状況等の変化により、内容は変更される場
    合があります。本資料の記載内容(提⽰されている条件等を含みます)は、弊社での社内承認、および/またはお客様との有効な契約を経たうえで最終的に確定されます。それまでは、
    正式に発効するものではありません。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります。お客様の最終的な購⼊価格は、お客様のリセラー
    様により決定されます。マイクロソフトは、本資料の情報に対して明⽰的、黙⽰的または法的な、いかなる保証も⾏いません。
    © 2023 Microsoft Corporation. All rights reserved.

    View Slide

  15. On-premises
    Azure Web
    App
    Speech Service
    Language Service
    OpenAI Service
    WEB アプリ
    にアクセス
    マイクからの⾳
    声を⽂字越し、
    翻訳
    会話のフレーズ毎
    に感情分析
    会話終了時に要
    約やキーフレーズを
    ⽣成
    コンポーネントとデータフロー
    家族のプロフィール等を送信
    OpenAI ServiceをTokenで認証
    ⽣成した⽂章・画像をレスポンス
    ⽂章・画像⽣成のプロンプトを送信
    提案メニュー・料理画像を表⽰
    Azure App Service
    Azure OpenAI Service
    ⽂章⽣成モデル (text-davinci-003)
    画像⽣成モデル (DALL-E)
    Webブラウザ
    コンポーネントとデータフロー
    コンポーネントとデータフロー
    ナレッジデータ
    (テキスト)
    Redis Enterprise
    RediSearch
    ナレッジベース

    Azure
    App Services
    Web
    Browser
    Python
    Console
    (PCで実⾏)
    GPT に渡すための付加情報を収集/登録
    シナリオによってデータソースの種別や取得⽅法が
    異なるため、システム構築の検討は必要
    ・Cognitive Service
    (Speech / Form Recognizer)
    ・ Synapse Analytics / Databricks
    ・AKS / Container Apps
    ・Azure Open AI (⽂章要約/加⼯⽅法の判断など)
    ナレッジデータから
    GPT Embedding(ベクトル)を⽣成
    Embeddingとナレッジデータを
    Redis Cache に登録
    達成したい⽬標を⼊⼒
    設定⽬標から GPT Embedding
    (ベクトル)を取得
    設定⽬標
    Embeddingから
    関連ナレッジを検索
    (コサイン類似度)
    OpenAI とのチャット/⽂章⽣成
    ⽬標達成に曖昧な部分を AI から利⽤者に質問する
    データソース
    - DBMS
    - PDF
    - HTML
    - etc…
    ナレッジベースの準備 Azure OpenAI と ナレッジベースによる アプリケーション
    Azure Open AI Service
    GPT-4-32k for chat
    text-embedding-ada-002
    for embedding
    Azure
    Active
    Directory
    URLを開く
    認証
    企業情報
    (JSON)
    Redis Enterprise
    RediSearch
    企業情報はAzure Cosmos DB のような
    ストアに配置することも有効です
    ナレッジベース

    Azure
    App Services
    Web
    Browser
    Python
    Console
    (PCで実⾏)
    Azure
    Active
    Directory
    データソースから企業分析に必要な情報を収集。
    企業によってデータソースの種別や取得⽅法が
    異なるため、システム構築の検討は必要
    ・Cognitive Service
    (Speech / Form Recognizer)
    ・ Synapse Analytics / Databricks
    ・AKS / Container Apps
    ・Open AI (⽂章要約/加⼯⽅法の判断など)
    企業情報から GPT Embedding(ベクトル)を⽣成
    Embeddingと企業情報を
    Redis Cache に登録
    URLを開く
    企業名を検索
    企業名から GPT Embedding
    (ベクトル)を取得
    企業名の
    Embeddingから
    企業情報を検索
    認証
    OpenAI とのチャット/⽂章⽣成
    OpenAI に送信するプロンプトには、ナレッジベースから取得した企業情報を含める
    (それにより Open AI は企業の最新情報を認識した回答を作成)
    データソース
    - DBMS
    - PDF
    - HTML
    - etc…
    Azure Open AI Service
    gpt-35-turbo for chat
    text-embedding-ada-002
    for embedding
    チャット⼊⼒から
    関連情報を検索
    (コサイン類似度)
    チャット⼊⼒
    (事前準備) ナレッジベースの構築 企業分析 Web アプリケーション
    コンポーネントとデータフロー
    コンポーネントとデータフロー
    Blob Storage
    参照⽤⽂書
    Azure
    App Services
    Web
    Browser
    Azure
    Active
    Directory
    データソースとなるPDFを分割し、
    Blob Storageにアップロード
    分割したPDFからCognitive Searchの
    インデックスを作成
    URLを開く
    問い合わせ
    問い合わせからCognitive Search
    の検索クエリを⽣成(Davinciモデル
    を使⽤)
    認証
    Azure OpenAI で回答⽣成
    (GPT-35-Turboモデルを使⽤)
    PDF
    ⽂書検索の準備 Azure OpenAI と ナレッジベースによる アプリケーション
    Azure OpenAI Service
    Davinci/GPT-35-Turbo/(GPT-4)
    pdf
    Azure Cognitive Search
    Index
    (gptkbindex)
    Cognitive Searchで⽂書を検索
    必要に応じて引⽤元⽂書をプレ
    ビュー/ダウンロード
    プロンプトをCosmos DBに保存
    Azure Cosmos DB

    View Slide

  16. ϦϑΝϨϯεΞʔΩςΫνϟ
    ׆༻๏ リファレンスの利⽤⽅法
    3
    3

    View Slide

  17. ࠓݱࡏͰ͸େ͖͘छྨ෼͔Ε͍ͯΔ
    ϦϑΝϨϯεΞʔΩςΫνϟ͕ৗʹվળɾ৽نϦϦʔε
    w Ձ஋Λத৺ʹਐΊɺج൫ΛݻΊΔ
    w ج൫ΛݻΊͯɺͬ͘͡ΓՁ஋ݕূͰਐΊΔ
    w ಛఆͷ՝୊ʹϑΥʔΧεͨ͠ϦϑΝϨϯε

    View Slide

  18. ڞ௨ࣄ߲
    ͲͷϦϑΝϨϯεͰ΋ݕ౼͞Ε͍ͯΔࣄ߲
    w ηΩϡϦςΟ
    w Ϣʔβೝূ
    w "[VSF0QFO"*ͷΑ͏ͳγεςϜΛ௨ͯ͠ར༻͢ΔΤϯυϙΠϯτΛͦͷ··ग़͞ͳ͍
    w ϩάऔಘϝτϦΫε
    w ωοτϫʔΫ
    w ΞϓϦέʔγϣϯ
    w σʔλετΞ
    w "*Ϟσϧ
    w ։ൃج൫
    w ΫΥʔλ੍ݶ
    w σϓϩΠํ๏
    w ΩϟύγςΟϓϥϯχϯά ෛՙςετؚΉ
    ΍ج൫ϩʔυϚοϓ

    View Slide

  19. ಛ௃తͳҧ͍
    ඇػೳཁ݅ͷτϨʔυΦϑ
    w ѻ͍͍ͨσʔλͷಛ௃ ػີɺߏ଄ɺσʔλͷ௥੻

    w ηΩϡϦςΟ θϩτϥετɺڥքܕ

    w ωοτϫʔΫ Πϯό΢ϯυΞ΢τό΢ϯυ

    w 1VCMJDʹҰ੾ग़͞ͳ͍ઃܭͷ͔ɺઃܭ্1VCMJDʹग़Δ͜ͱ͕ͳ͍ઃܭͳͷ͔
    w ίετ
    w େن໛ σʔλͷαΠζͱϦΫΤε਺ Ϧʔδϣϯ

    w ඼࣭վળ΁ͷΞϓϩʔν ϩά "#ςετ 6OJU5FTU %BUB
    fl
    PX QSPNQU
    fl
    PX

    View Slide

  20. (JU)VC$PEFTQBDFTΛ࢖ͬͨݸਓར༻
    IUUQTHJUIVCDPNLTUTMBCTB[VSFPQFOBJQMBZHSPVOE
    w "[VSF0QFO"*ͷFOW͕͋Ε͹ɺ(JU)VCʹ4FDSFUΛొ࿥͢Δ͚ͩͰ֬ೝ
    Ձ஋த৺

    View Slide

  21. &YUSBDUBOEBOBMZ[FDBMMDFOUFSEBUB
    IUUQTMFBSONJDSPTPGUDPNKBKQB[VSFBSDIJUFDUVSFBJNMPQFOBJBSDIJUFDUVSFDBMMDFOUFSPQFOBJBOBMZUJDT
    Ձ஋த৺

    View Slide

  22. 2VFSZCBTFEEPDVNFOUTVNNBSJ[BUJPO
    IUUQTHJUIVCDPN"[VSF4BNQMFTB[VSFTFBSDIPQFOBJEFNP
    https://learn.microsoft.com/ja-jp/azure/architecture/ai-ml/guide/query-based-summarization
    ಛఆͷ՝୊ʹϑΥʔΧε

    View Slide

  23. "[VSF0QFO"*Ϟσϧͷϩάͱ؂ࢹΛ࣮૷͢Δ
    IUUQTMFBSONJDSPTPGUDPNKBKQB[VSFBSDIJUFDUVSFBJNMPQFOBJBSDIJUFDUVSFMPHNPOJUPSB[VSFPQFOBJ
    ಛఆͷ՝୊ʹϑΥʔΧε

    View Slide

  24. %FNZTUJGZJOH"[VSF0QFO"*/FUXPSLJOHGPS4FDVSF$IBUCPU%FQMPZNFOU
    IUUQTUFDIDPNNVOJUZNJDSPTPGUDPNUB[VSFBSDIJUFDUVSFCMPHEFNZTUJGZJOHB[VSFPQFOBJOFUXPSLJOHGPSTFDVSFDIBUCPUCBQ

    w IUUQTHJUIVCDPN'SFEEZ"ZBMB"[VSF"*4FSWJDFT-BOEJOH;POF
    ج൫ݻΊ

    View Slide

  25. (PBM
    ͜ͷηογϣϯͰΘ͔Δ͜ͱɺ࿩͞ͳ͍͜ͱ
    w ͜ͷηογϣϯͰΘ͔Δ͜ͱ
    w ϦϑΝϨϯεΞʔΩςΫνϟͷาΈํͱ࠷ॳͷҰา΁෦඼Ϩϕϧ΍γʔϯʹ߹Θͤͯ࢖͍෼
    ͚ɻશͯै͏ඞཁ͸ͳ͘ඞཁͳ෦෼͚ͩͰ΋ྑ͍ɻͨͩ͠ɺߟྀࣄ߲ʹॻ͔Ε͍ͯΔ΋ͷ͸શ෦ཁ
    νΣοΫɻ
    w ର৅ऀ
    w ࡢࠓͷ"*Λ༻͍ͨαʔϏεͷ։ൃӡ༻ܞΘΔํ
    w ͜ͷηογϣϯͰ࿩͞ͳ͍͜ͱ
    w "*ؔ࿈ʹ͍ͭͯ

    View Slide

  26. 5IBOLZPV
    ຊࢿྉ͸৘ใఏڙͷΈΛ໨తͱ͓ͯ͠Γɺຊࢿྉʹهࡌ͞Ε͍ͯΔ৘ใ͸ɺຊࢿྉ࡞੒࣌఺ͰͷϚΠΫϩιϑτͷݟղΛࣔͨ͠΋ͷͰ͢ɻঢ়گ౳ͷมԽʹΑΓɺ಺༰͸มߋ͞ΕΔ৔߹͕͋Γ·͢ɻຊࢿྉͷهࡌ಺༰ʢఏࣔ͞Ε͍ͯΔ৚݅౳ΛؚΈ·͢ʣ͸ɺฐࣾͰͷࣾ಺ঝೝɺ͓Αͼ
    ·ͨ͸͓٬༷ͱͷ༗ޮͳܖ໿Λܦͨ͏͑Ͱ࠷ऴతʹ֬ఆ͞Ε·͢ɻͦΕ·Ͱ͸ɺਖ਼ࣜʹൃޮ͢Δ΋ͷͰ͸͋Γ·ͤΜɻ·ͨɺຊࢿྉʹهࡌ͞Ε͍ͯΔՁ֨͸͍ͣΕ΋ɺผஈͷදه͕ͳ͍ݶΓɺࢀߟՁ֨ͱͳΓ·͢ɻ͓٬༷ͷ࠷ऴతͳߪೖՁ֨͸ɺ͓٬༷ͷϦηϥʔ༷ʹΑΓܾఆ͞Ε·
    ͢ɻϚΠΫϩιϑτ͸ɺຊࢿྉͷ৘ใʹରͯ͠໌ࣔతɺ໧ࣔత·ͨ͸๏తͳɺ͍͔ͳΔอূ΋ߦ͍·ͤΜɻ˜.JDSPTPGU$PSQPSBUJPO"MMSJHIUTSFTFSWFE

    View Slide