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

企業IT向け Azure OpenAIでChatGPTを 閉域で安全に展開

企業IT向け Azure OpenAIでChatGPTを 閉域で安全に展開

このドキュメントはHCCJPの第44回勉強会で使用した資料です。

===
ChatGPTは便利だけれども社員にそのまま使わせると情報漏洩など含めて色々と心配ですね。企業で安心して使えるように「閉域でつかえる自社専用のChatGPT」が欲しい、というのは現在多くの企業にあるニーズだと思います。さらに自社独自のデータの内容を知っているchatbotを作りたい、そんな要望もあるかと思います。これらの要望はすでに公開されているリファレンスアーキテクチャーやドキュメントを参考にしつつAzure OpenAI Serviceを使うだけで簡単に実現可能です。

この勉強会ではAzure OpenAI Service自体の概要からはじめ、公開されている参考になるドキュメントやリファレンスアーキテクチャーの紹介をしつつ、実際の「自社内データを知っている閉域でつかえる自社専用のChatGPT」の構築方法を紹介します。

Masahiko Ebisuda

August 14, 2023
Tweet

More Decks by Masahiko Ebisuda

Other Decks in Technology

Transcript

  1. 日本ビジネスシステムズ株式会社 胡田 昌彦(えびすだ まさひこ) Youtube https://youtube.com/@ebibibi 自己紹介 日本ビジネスシステムズ株式会社 こんな方にオススメ! 

    企業の情報システム部で働く方  一般ユーザーだけど、コンピューターに興味 があって、もっと詳しくなりたい方  Windows, M365, Azure等のMicrosoft 関連技術中心 チャンネル登録よろしくお願いします!
  2. こんな企業多いですよね? • 一般向けのChatGPTは便利だが情報漏洩等の懸念が… • AzureにはOpenAI Serviceがあり企業利用に最適 • すでにAzure利用してるなら導入ハードル低い • Azure

    OpenAI Serviceを使って「社内からのみアクセス可 能」に構成できるなら導入できそう! 自社契約のAzure上に自社専用で外部からアクセ スできない「ChatGPTクローン」が欲しい! ローコストで簡単に導入できたら最高。
  3. Azure OpenAI Service リファレンスアーキテクチャ • 0章 - Azure OpenAI Service

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

    リファレンスアーキテクチャとは • 1章 - コールセンター向けAIアシスタント • 2章 - 料理メニュー提案 • 3章 - 目標達成アシスタント • 4章 - 企業分析 • 5章 - 企業内向けChatと社内文書検索 • 6章 - 共通基盤ガイド 認証/ロギング/クォータ制限
  5. Azure OpenAI Service リファレンスアーキテクチャ 5章 - 企業内向けChatと社内文書検索 1.アプリケーション概要 2.展開方法 3.展開時の注意点

    4.展開後のリソースを内部ネットワーク からのみ利用可能に構成する方法 5.ネットワーク構成変更時の注意点
  6. Azure OpenAI Service リファレンスアーキテクチャ 5章 - 企業内向けChatと社内文書検索 1.アプリケーション概要 2.展開方法 3.展開時の注意点

    4.展開後のリソースを内部ネットワーク からのみ利用可能に構成する方法 5.ネットワーク構成変更時の注意点
  7. コンポーネントとデータフロー 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
  8. Azure OpenAI Service リファレンスアーキテクチャ 5章 - 企業内向けChatと社内文書検索 1.アプリケーション概要 2.展開方法 3.展開時の注意点

    4.展開後のリソースを内部ネットワーク からのみ利用可能に構成する方法 5.ネットワーク構成変更時の注意点
  9. 展開方法 - 事前準備(必要なもの) • Azureサブスクリプション • 所有者 or ユーザーアクセス管理者の権限が必要 •

    Microsoft.Authorization/roleAssignments/write • Azure Open AIサービスを利用可能にしておく • 申請フォームから申請する • 開発環境をインストール可能でインターネット接続可能な Windows or Linux • Azure Developer CLI • Azure CLI • Python 3+(※WindowsではPathを通しておくこと) • Node.js • Git • Powershell 7+ (pwsh) (※Windowsのみ)
  10. 展開方法 • Git clone https://github.com/Azure-Samples/jp-azureopenai- samples.git • azd auth login

    • azd init • az login • az account set -s YOUR_SUBSCRIPTION_ID • #ユーザーのAADアカウントのオブジェクトIDを取得 az ad user show --id your_account@your_tenant -o tsv --query id • #環境変数にオブジェクトIDをセット $Env:AZURE_PRINCIPAL_ID= " Your Object ID " #windows export AZURE_PRINCIPAL_ID="Your Object ID" #Linux • azd up
  11. Azure OpenAI Service リファレンスアーキテクチャ 5章 - 企業内向けChatと社内文書検索 1.アプリケーション概要 2.展開方法 3.展開時の注意点

    4.展開後のリソースを内部ネットワーク からのみ利用可能に構成する方法 5.ネットワーク構成変更時の注意点
  12. 展開時の注意点 意識する必要がある要素 • キャパシティ • モデル • モデルのバージョン • リージョン毎でサポートしているモデル

    • リージョン毎サポートしているモデルのバージョン • Bicepテンプレートの使っているAPIバージョン
  13. 展開時の注意点 • OpenAI Serviceのキャパシティ(クォータ)に注意 • モデル毎に「Tokens per Minute」の上限がある • 展開するモデル毎に「Tokens

    per Minute」を設定可能 • 通常の削除を行っても48時間たたないとクォータを消費し ている状態(論理削除) • 展開時に「Tokens per Minute」を簡単に指定できるよう には(このサンプルは、現状では)なっていない • 「6.azureopenai-landing-zone-accelerator」はパラメーター 指定できるようになってます • Bicepテンプレートをいじればできます
  14. 展開時の注意点 • 使えるモデルとリージョンの組み合わせを意識 • モデルの「バージョン」もあるので注意 • モデルとバージョンを固定化したテンプレートの寿命はそんな に長くなさそう • 現在のBicepファイルは古いAPIバージョン(2022-10-01)で書

    かれているので、East US, France Central, South Central US, UK South, West Europeでしか動かない模様 (※もうFixされているかも) • 「6.azureopenai-landing-zone-accelerator」は新しいAPIバー ジョン(2023-05-01)なので問題なさそう
  15. Azure OpenAI Service リファレンスアーキテクチャ 5章 - 企業内向けChatと社内文書検索 1.アプリケーション概要 2.展開方法 3.展開時の注意点

    4.展開後のリソースを内部ネットワーク からのみ利用可能に構成する方法 5.ネットワーク構成変更時の注意点
  16. 閉域で構成する Private Endpoint App Service Vnet Integration DNS Private Zone

    オンプレミス ブラウザ ルーター VPN Gateway Express Route or VPN
  17. 閉域で構成する Private Endpoint App Service Vnet Integration DNS Private Zone

    オンプレミス ブラウザ ルーター VPN Gateway Express Route or VPN
  18. DNS Private Zone Private Endpoint App Service Vnet Integration オンプレミス

    ルーター VPN Gateway Express Route or VPN DNS 条件付きフォワーダ ブラウザ 閉域で構成する
  19. DNS Private Zone Private Endpoint App Service Vnet Integration オンプレミス

    ルーター VPN Gateway Express Route or VPN DNS 条件付きフォワーダ ブラウザ 閉域で構成する DNS Private Resolver Inbound Endpoint
  20. DNS Private Resolver Inbound Endpoint DNS Private Zone Private Endpoint

    App Service Vnet Integration オンプレミス ルーター VPN Gateway Express Route or VPN DNS 条件付きフォワーダ ブラウザ 閉域で構成する
  21. Azure OpenAI Service リファレンスアーキテクチャ 5章 - 企業内向けChatと社内文書検索 1.アプリケーション概要 2.展開方法 3.展開時の注意点

    4.展開後のリソースを内部ネットワーク からのみ利用可能に構成する方法 5.ネットワーク構成変更時の注意点
  22. 構成の注意点 • アプリケーションの構成等はすべて変更なしでよい (ネットワークのみ変更する) • 外部および選択したネットワークからのアクセスはすべて「無 効」でよい • プライベートエンドポイントがあれば他は全部無効でも、プライベー トエンドポイントからアクセスできる

    • サービスによってUIが若干異なる(なぜ?)が惑わされない • サービスエンドポイントを構成した直後5分程度はアクセスで きないことがある • ダウンタイムをなくしたければ明示的にアクセスを許可するルールを 一時的に追加しておき、プライベートエンドポイント経由のアクセス を確認後に削除する
  23. Azure OpenAI Service リファレンスアーキテクチャ 5章 - 企業内向けChatと社内文書検索 1.アプリケーション概要 2.展開方法 3.展開時の注意点

    4.展開後のリソースを内部ネットワーク からのみ利用可能に構成する方法 5.ネットワーク構成変更時の注意点
  24. Azure ChatGPT Benefits are: 1. Private: Built-in guarantees around the

    privacy of your data and fully isolated from those operated by OpenAI. 2. Controlled: Network traffic can be fully isolated to your network and other enterprise grade security controls are built in. 3. Value: Deliver added business value with your own internal data sources (plug and play) or use plug-ins to integrate with your internal services (e.g., ServiceNow, etc). 引用元:https://github.com/microsoft/azurechatgpt