Azureサービスを活用した基本的なLLM構成
社内のマニュアルやドキュメントを活用し、AzureサービスでLLMを構成する基本的な方法について解説します。
使用する主なAzureサービス5選
1. Azure OpenAI Service
Azure OpenAI Serviceは、GPTシリーズのLLMを活用できるサービスです。
- 特徴
- 強力な自然言語処理能力
- 他のAzureサービスとの統合が簡単
- LLMでの役割
- LLMの中核を担う「自然言語処理」を実行
- ユーザーからの問い合わせや曖昧な質問に対して、コンテキストを理解し、適切な回答を生成
- 具体的な利用
- チャットボットやカスタマーサポートシステムで、ユーザーの質問に対する自動応答を生成する際に使用
2. Azure Cognitive Search
Azure Cognitive Searchは、高度な全文検索機能を提供します。
- 特徴
- ドキュメントやデータをインデックス化して検索可能に
- AIによる強化検索(AIエンリッチメント機能)をサポート
- 役割
- データのインデックス化と検索を担当し、LLMが必要とする情報を迅速に取得
- AIエンリッチメント機能を使って、データをより検索しやすくする
- 具体的な利用
- ユーザーのクエリに関連するドキュメントを検索し、LLMがそれを基に回答を生成するための情報を提供
3. Azure Blob Storage
Azure Blob Storageは、データを安全に保存するためのストレージサービスです。
- 特徴
- マニュアルやPDFファイルなどの大容量データを保存可能
- Cognitive SearchやAIモデルで利用可能な形式に対応
- アクセス制限なども設定可能
- 役割
- 大量のデータを安全に保存し、LLMやCognitive Searchが必要とするデータを格納
- 構造化・非構造化データの保存に対応
- 具体的な利用
- ドキュメントやPDFファイルを保存し、Cognitive Searchがこれらをインデックス化して検索可能にする。
4. Azure Functions
Azure Functionsは、イベント駆動型のサーバーレス計算を可能にします。
- 特徴
- トリガーイベントに応じてコードを実行
- 軽量かつスケーラブル
- 役割
- イベント駆動型の処理を実行し、LLMシステムの自動化を支援
- 特定のイベント(例: ドキュメントのアップロード)に応じて、必要な処理をトリガー実行
- 外部システムからのAPIリクエストを処理
- 具体的な利用
- 新しいドキュメントがBlob Storageにアップロードされた際に、自動的にCognitive Searchでインデックス化を行うプロセスを実行
5. Azure Monitor
Azure Monitorは、システムのパフォーマンス監視やログ管理を支援します。
- 特徴
- ボットや検索サービスの稼働状況をリアルタイムで監視
- トラブルシューティングやパフォーマンスの最適化
- エラー検知やボトルネック解消
- 役割
- システム全体のパフォーマンスを監視し、LLMを含む各サービスの稼働状況をリアルタイムで把握
- 問題が発生した際のトラブルシューティングを支援
- RAG構成の稼働状況を可視化
- 具体的な利用
- LLMの応答時間やエラー率を監視し、パフォーマンスの最適化や問題の早期発見に役立てる
さらに細かく実用化する場合、基本的なフロント構成やサーバ、ほかにも当たり前のように使うサービス(Azure ADやAzure Logic Apps)が必要です。
今回はサービス名に焦点を当てて記載しています。
めちゃくちゃ優しい言い換え
社内専用のLLMを「社内知識という名の素材の味が染み込んだスープ」だとします。
このスープを作るために使うAzureサービスは、それぞれ以下のように例えられるかもしれません。
Azure OpenAI Service: スープの出汁
Azure Cognitive Search: 材料(社内情報)を選別するシェフ
Azure Blob Storage: 食材をたくさん保存する冷蔵庫
Azure Functions: 自動で動く調理器具(シェフは具材を選ぶだけ)
Azure Monitor: スープの味見役
これらが連携して、最高のスープ(回答)を作り出します!
私たちは食材を作ったり届けたりして、最後はスープを飲むという立場ですね。
補足:RAG構成の流れ
-
データの収集
- Azure Blob Storageに社内マニュアルやドキュメントをアップロード。
- ドキュメント形式:PDF、Word、テキスト、HTMLなど。
-
データのインデックス化
- Azure Cognitive Searchでアップロードされたデータをインデックス化。
- メタデータを追加して検索精度を向上。
-
ユーザークエリ処理
- ユーザーが入力した質問をAzure OpenAI Serviceで解析。
- 解析結果を基に、Azure Cognitive Searchで関連するドキュメントを検索。
-
回答生成
- 検索されたドキュメント内容をLLMに入力し、最適な回答を生成。
- 回答内容を整形してユーザーに提供。
AzureのRAG構成については、また別の記事にします。
最後に
巷ではAI AgentやRAG精度向上で最先端の研究が進んでいますが、実際の現場では地に足をつけた現実的なサービス展開とコストが求められています。
技術進歩のスピードが加速している今だからこそ、基本的なところから支えていける提供者になりたいです。
自分のためにも誰かのためにも、今後も基本的なことを書いていこうと思います。