🧩

Azure OpenAI Service を利用したエンタープライズアーキテクチャのメモ

2023/07/03に公開

はじめに

Azure 上で OpenAI をエンタープライズ利用するアーキテクチャがガンガン出てくるので自分用にメモ

1. ChatGPT × Cognitive Search を使ったエンタープライズサーチ

今一番バズってるアーキテクチャ。組織内の大量のドキュメントを ChatGPT で検索できる。多くの企業がまずこのアーキテクチャで実装を始めている。MS 公式 Tech Blog 記事は 228K Views というとんでもない View 数を記録。

  • ChatGPT(gpt-35-turbo)モデルでトレーニングされたデータに基づいてテキストを生成するのではなく、企業内に閉じたデータのみから生成する方法の例を示しています
  • トークンの制限(4,096)の壁をできるだけ回避するための手法を紹介しています
  • 「引用」をテキストに付加することで信頼できる応答を生成します

https://techcommunity.microsoft.com/t5/ai-applied-ai-blog/revolutionize-your-enterprise-data-with-chatgpt-next-gen-apps-w/ba-p/3762087

日本語解説記事

https://qiita.com/nohanaga/items/803c09b5a3a4e2d1776f

  • 6/20 ノーコードで本アーキテクチャを実現する新機能「Azure OpenAI on your data」が Chat Playground に登場しました。(リンク
  • 5/24 ついにベクトル検索機能が実装されました!
    Azure Cognitive Search にベクトル検索機能が実装され、ChatGPT × ハイブリッド検索が可能になりました。(リンク

2. ChatGPT × CosmosDB でチャット履歴の保存

ChatGPT のチャット履歴を CosmosDB に保管するアーキテクチャ。Blazor Server のフロントエンド付き。

https://devblogs.microsoft.com/cosmosdb/chatgpt-azure-cosmos-db/

日本語解説記事

https://qiita.com/nohanaga/items/18baccb843b4148e6a77

3. ChatGPT × Azure Cache for Redis Enterprise でベクトル検索

Azure OpenAI の Embeddings API でドキュメントのチャンクを Embeddings に変換し、Redis に保管。ユーザーからのクエリーも Embeddings に変換して、近似最近傍探索(ANN Search)を行う。

https://github.com/Azure-Samples/azure-open-ai-embeddings-qna#deploy-on-azure-webapp--azure-cache-for-redis-enterprise--batch-processing

4. Enterprise Search with OpenAI Architecture

Azure Accelerators としてデータインジェストフェーズから利用フェーズまでカバーしたエンタープライズサーチアーキテクチャ

https://github.com/MSUSAzureAccelerators/Knowledge-Mining-with-OpenAI

5. Azure OpenAI Custom Skill on Azure Cognitive Search

Azure Cognitive Search のカスタムスキルとして Azure OpenAI を呼び出して全文検索インデックスをエンリッチするアーキテクチャ。文書に対して要約、分類、キーフレーズ抽出、固有名詞抽出などの情報を付加できる。

https://github.com/MaheshSQL/cognitive-semantic-search-openai-accelerator

5.1 チャンク分割・Embeddings 生成カスタムスキル

azure-search-power-skills へ EmbeddingGenerator が追加。

https://github.com/Azure-Samples/azure-search-power-skills/tree/main/Vector/EmbeddingGenerator

6. Business Process Automation Accelerator

BPA の観点からのパイプラインアーキテクチャ

https://github.com/Azure/business-process-automation

7. GPT Smart Search Architecture

取得先の情報ソースを Azure Cognitive Search だけでなく、Bing Search API、Azure SQL Database、CSV ファイルに拡張したアーキテクチャ。オーケストレーションに LangChain を利用。

https://github.com/pablomarin/GPT-Azure-Search-Engine

8. Azure OpenAI Enterprise Logging

Azure OpenAI リソースをサブスクリプション管理者側からロギングして、アクセス元 IP アドレスやトークン使用量を集計するアーキテクチャ。

https://github.com/Azure-Samples/openai-python-enterprise-logging

https://learn.microsoft.com/azure/architecture/example-scenario/ai/log-monitor-azure-openai

既定の Azure OpenAI リソースではモニタリングできない、完全な呼び出し元 IP アドレス、モデル使用率、トークン使用率 (入出力)、入力プロンプト詳細、出力完了詳細のメトリックが取得可能。

9. Azure OpenAI を VNET に限定する設定

構築手順は以下が詳しい。Azure OpenAI Service を企業がセキュアに導入する際の基本設定。

https://qiita.com/kske_t/items/c5535e5bd3e27ad1baf5

もちろん他の Azure サービスと以下のように連携したり、オンプレからもセキュアにアクセスできる。モデルも利用サブスクリプションのリソース内にデプロイされている。

10. 負荷分散

Azure OpenAI Service のクォータ制限の回避策として、Azure API Management と Azure Front Door、Azure Traffic Manager 等を用いて複数のリソースに負荷分散する。

https://logico-jp.io/2023/06/08/request-load-balancing-for-azure-openai-service/

※注意:6/9 Azure OpenAI にクォータ管理機能が導入されました。
https://learn.microsoft.com/azure/cognitive-services/openai/how-to/quota

11. Azure Speech Service × Azure OpenAI

音声入力を Speech To Text でテキスト化して Azure OpenAI と連携させるアーキテクチャ。Cool なリアルタイムデモコードも公開されている。

https://github.com/amulchapla/AI-Powered-Call-Center-Intelligence

https://github.com/jixjia/call_center_ai

12. ChatGPT × Azure Video Indexer

ChatGPT と Azure Video Indexer を連携させて組織内の動画コンテンツを検索しちゃうアーキテクチャ。

https://techcommunity.microsoft.com/t5/ai-applied-ai-blog/supercharge-archive-content-discovery-with-chatgpt-and-azure/ba-p/3788061

13. Azure OpenAI Service で ChatGPT お試し環境の構築

まずは社内で ChatGPT を検証してみたい方向けのノーコード ChatGPT Playground セキュア構築。

https://ks6088ts.github.io/blog/fork-azure-openai-playground/

https://github.com/ks6088ts-labs/azure-openai-playground

14. 「Project Miyagi」Semantic Kernel 系ガチ全部乗せアーキテクチャ

Azure-Samples にありがちな全部乗せ系アーキテクチャ。気の弱い方閲覧注意。

データ取得のオーケストレーションに Semantic Kernel を利用している。TODO: 理解のために要解体。Project Miyagi の Miyagi は映画ベスト・キッド(The Karate Kid)の空手の天才 Mr.Miyagi の事らしい。

https://github.com/Azure-Samples/miyagi

Semantic Kernel 解説

Semantic Kernel って何?という方向け解説記事&動画

https://qiita.com/nohanaga/items/430b59209b02c298ef2a

https://youtu.be/tFgqdHKsOME?t=4687

15. Semantic Kernel を使って独自の Copilot System を作るためのアーキテクチャ例

LLM を様々な企業内システム・DB と連携させるオーケストレーターとして動作させる例。

https://qiita.com/nohanaga/items/2691f64bd1fb418295b8

5/24 Build 2023 AI Copilot の時代が到来

「Copilot stack による LLM 中心アプリ開発」で最新の開発手法を学んでください

https://qiita.com/nohanaga/items/c3e92c9adeca7c84a8d5

参考動画

これ見とけば Azure OpenAI Service 語れるよ動画

https://www.youtube.com/watch?v=tFgqdHKsOME

https://www.youtube.com/watch?v=l9fpxtz22JU

どんどん追加してこう

Discussion