あなたの組織には、マルチチャネルのスマート チャットボットと、さまざまな場所に散在するさまざまな種類のデータを理解できる検索エンジンが必要です。さらに、会話型チャットボットは、問い合わせに対する回答を、その回答の出典と、どこでどのように入手したかの説明とともに提供できる必要があります。言い換えれば、ビジネス データを解釈し、理解し、質問に答えることができる、プライベートで安全な ChatGPT が組織に必要です。
POC の目標は、独自の環境内の独自のデータを使用して、Azure サービスで構築された GPT 仮想アシスタントの価値を示し、証明することです。成果物は次のとおりです。
Bot Framework で構築され、複数のチャネル (Web チャット、MS Teams、SMS、電子メール、Slack など) に公開されるバックエンド ボット API
検索およびボット UI を備えたフロントエンド Web アプリケーション。
このリポジトリは、OpenAI ベースのスマート検索エンジンを構築する方法を段階的に説明するために作成されています。各ノートブックは相互に構築され、最終的に 2 つのアプリケーションを構築します。
Microsoft FTE の場合:これは、顧客が資金提供する VBD であり、納品用の資産を下回ります。
アイテム | 説明 | リンク |
---|---|---|
VBD SKU 情報とデータシート | CSAM は、統合サポート契約のクレジット/時間に対して「顧客投資」としてそれをディスパッチする必要があります。 3 日か 5 日かはお客様が決定します。 | ESXP SKU ページ |
CSA の VBD 認定 | CSA がワークショップの実施に必要な認定を取得するためのリンク | リンク1、リンク2 |
VBD 3 ~ 5 日間の POC アセット (IP) | 配信される MVP (この GitHub リポジトリ) | Azure-Cognitive-Search-Azure-OpenAI-Accelerator |
VBD ワークショップデッキ | ワークショップの紹介と説明資料 | イントロ AOAI GPT Azure スマート検索エンジン アクセラレータ.pptx |
CSA トレーニング ビデオ | Microsoft CSA 向けの 2 時間のトレーニング | POC VBD トレーニング録画 (新しいビデオは近日公開予定です!) |
前提条件 クライアント 3 ~ 5 日間の POC
Azure サブスクリプション
GPT-4o を含む Azure Open AI へのアプリケーションが承認されました。お客様が GPT-4o の承認を取得していない場合、Microsoft CSA はワークショップ中に GPT-4o を貸し出すことができます。
Microsoft メンバーは、クライアント Azure AD にゲストとして追加することが望ましいです。それができない場合は、顧客は Microsoft メンバーに企業 ID を発行できます。
顧客の Azure テナントで、このワークショップ POC に対してリソース グループ (RG) を設定する必要があります。
顧客チームと Microsoft チームは、ワークショップの 2 週間前にすべてをセットアップできるように、このリソース グループに対する共同作成者権限を持っている必要があります。
ストレージ アカウントは RG 内に設定する必要があります。
顧客データ/ドキュメントは、ワークショップ開催日の少なくとも 2 週間前に BLOB ストレージ アカウントにアップロードする必要があります
マルチテナント アプリの登録 (サービス プリンシパル) は顧客が作成する必要があります (クライアント ID とシークレット値を保存します)。
お客様は、ボットに正しく回答してもらいたい 10 ~ 20 の質問 (簡単なものから難しいものまで) を Microsoft チームに提供する必要があります。
ワークショップ中の IDE コラボレーションと標準化には、Jupyper Lab による AML コンピューティング インスタンスが使用されます。このために、Azure Machine Learning ワークスペースを RG にデプロイする必要があります。
注: Azure Machine Learning ワークスペースに十分なコア コンピューティング クォータがあることを確認してください。
ユーザーが質問します。
アプリでは、OpenAI LLM が賢いプロンプトを使用して、ユーザー入力に基づいて使用するソースを決定します。
5 種類のソースが利用可能です。
テレビ番組の全エピソードの会話の転写: FRIENDS
90,000 件の Covid 出版物の要約
4 冊の長い PDF ブック
3a. Azure SQL Database - 米国の新型コロナウイルス関連の統計が含まれています。
3b. API エンドポイント - Covid に関する最新の統計を含む RESTful OpenAPI 3.0 API。
3c. Azure Bing Search API - インターネットへのアクセスを提供し、次のようなシナリオを可能にします。 公開 Web サイトでの QnA 。
3D。 Azure AI Search - Blob Storage からの AI 強化ドキュメントが含まれています。
3f。 CSV 表形式ファイル - 米国の新型コロナウイルス関連の統計が含まれています。
アプリはソースから結果を取得し、答えを作成します。
タプル (質問と回答) は、さらなる分析のために永続メモリとして CosmosDB に保存されます。
答えはユーザーに届けられます。
https://gptsmartsearchapp.azurewebsites.net/
100% パイソン。
Azure Cognitive Services を使用して、非構造化ドキュメントのインデックス付けと強化を行います (画像に対する OCR、チャンキング、自動ベクトル化など)。
Azure AI Search のハイブリッド検索機能を使用して、セマンティックな最適な回答 (テキスト検索とベクトル検索を組み合わせたもの) を提供します。
Azure OpenAI 、ベクター ストアと対話し、プロンプトを構築し、エージェントを作成するためのラッパーとして LangChain を使用します。
多言語対応 (あらゆる言語を取り込み、インデックスを作成し、理解します)
マルチインデックス -> 複数の検索インデックス
CSV ファイルと SQL フレーバー データベースを使用した表形式データ Q&A
Azure AI Document Intelligence SDK (旧 Form Recognizer) を使用して、複雑/大規模な PDF ドキュメントを解析します
Bing Search API を使用して、公開 Web サイトでのインターネット検索と Q&A を強化します。
自然言語の質問を API 呼び出しに変換することで、API データ ソースに接続します。
CosmosDB を永続メモリとして使用して、ユーザーの会話を保存します。
Streamlit を使用して、Python でフロントエンド Web アプリケーションを構築します。
Bot Framework と Bot Service を使用して Bot API バックエンドをホストし、MS Teams を含む複数のチャネルに公開します。
LangServe/FastAPI も使用して、ストリーミング機能を備えた代替バックエンド API をデプロイします
注: (前提条件) Azure OpenAI サービスがすでに作成されている必要があります。
このリポジトリを Github アカウントにフォークします。
Azure OpenAI Studio で、次のモデルをデプロイします (以下に示すモデルよりも古いモデルは動作しません)。
「gpt-4o」
「gpt-4o-mini」
「text-embedding-ada-002 (またはそれ以降)」
このアクセラレータのすべてのアセットが配置されるリソース グループを作成します。 Azure OpenAI は、別の RG または別のサブスクリプションに存在することができます。
以下をクリックして、ノートブックの実行に必要なすべての Azure インフラストラクチャ (Azure AI Search、Cognitive Services など) を作成します。
注: これまでにAzure AI Services Multi-Service account
作成したことがない場合は、Azure portal で手動でアカウントを作成し、責任ある AI の規約を読んで同意してください。これをデプロイしたら、これを削除し、上記のデプロイ ボタンを使用します。
フォークされたリポジトリのクローンを AML コンピューティング インスタンスに作成します。リポジトリがプライベートである場合は、以下のトラブルシューティング セクションでプライベート リポジトリのクローンを作成する方法を参照してください。
必ずPython 3.10 conda 環境以降でノートブックを実行してください。
依存関係をマシンにインストールします (ノートブックを実行するのと同じ conda 環境で以下の pip コマンドを実行してください。たとえば、AZML コンピューティング インスタンスでは次を実行します:
conda activate azureml_py310_sdkv2 pip install -r ./common/requirements.txt
いくつかの pip 依存関係エラーが発生する可能性がありますが、問題はありません。エラーに関係なく、ライブラリは正しくインストールされています。
ステップ 4 で作成したサービスからの独自の値を使用して、ファイルcredentials.env
を編集します。
BLOB_SAS_TOKEN および BLOB_CONNECTION_STRING の場合。 [ストレージ アカウント] > [セキュリティ + ネットワーク] > [共有アクセス署名] > [SAS の生成] に移動します。
ノートブックを順番に実行します。それらはお互いの上に積み重なっていきます。
LLM のコンテキストを提供するために Azure AI Search エンジンを使用し、代わりに LLM を微調整しないのはなぜですか?
A: OpenAI ドキュメントの引用: 「GPT-3 は、オープン インターネットからの膨大な量のテキストで事前トレーニングされています。ほんの数例のプロンプトが与えられると、多くの場合、実行および生成しようとしているタスクを直感的に理解できます。これは、しばしば「数回の学習」と呼ばれます。微調整により、プロンプトに収まりきらないより多くの例でトレーニングすることにより、少数ショット学習が改善され、さまざまなタスクでより良い結果を達成できるようになります。モデルを微調整したら、プロンプトに例を指定する必要はなくなります。これによりコストが節約され、リクエストのレイテンシーが短縮されます。」
ただし、モデルを微調整するには、数百または数千のプロンプト タプルと完了タプル (本質的にはクエリ応答サンプル) を提供する必要があります。微調整の目的は、LLM に会社のデータの知識を与えることではなく、LLM にサンプルを提供して、プロンプトごとにサンプルを要求しなくてもタスクを適切に実行できるようにすることです。
プロンプトで公開すべきではない独自のデータが例に含まれている場合や、医療、薬局、その他の業界や言語が使用されているユースケースのように、使用されている言語が高度に専門化されている場合など、微調整が必要な場合があります。インターネット上では一般的には見つかりません。
プライベート リポジトリのクローンを作成する手順:
ターミナルで、GitHub の電子メール アドレスに置き換えて、以下のテキストを貼り付けます。新しい SSH キーを生成します。
ssh-keygen -t ed25519 -C "[email protected]"
SSH 公開キーをクリップボードにコピーします。新しい SSH キーを追加します。
cat ~/.ssh/id_ed25519.pub# 次に、ターミナルに表示されている id_ed25519.pub ファイル# の内容を選択してクリップボードにコピーします
GitHub で、 [設定] -> [SSH および GPG キー] -> [新しい SSH キー]に移動します。
「タイトル」フィールドに、新しいキーの説明的なラベルを追加します。 「AMLコンピューティング」。 「キー」フィールドに公開キーを貼り付けます。
プライベート リポジトリのクローンを作成する
git clone [email protected]:YOUR-USERNAME/YOUR-REPOSITORY.git
このプロジェクトは貢献と提案を歓迎します。 ほとんどの投稿では、投稿を使用する権利をお客様が有しており、実際に当社に付与することを宣言する投稿者ライセンス契約 (CLA) に同意する必要があります。詳細については、https://cla.opensource.microsoft.com をご覧ください。
プル リクエストを送信すると、CLA ボットが CLA を提供する必要があるかどうかを自動的に判断し、PR を適切に装飾します (ステータス チェック、コメントなど)。ボットが提供する指示に従ってください。 CLA を使用するすべてのリポジトリでこれを 1 回行うだけで済みます。
このプロジェクトはマイクロソフトのオープンソース行動規範を採用しています。詳細については、「行動規範に関するよくある質問」を参照するか、追加の質問やコメントがあれば [email protected] までお問い合わせください。
このプロジェクトには、プロジェクト、製品、またはサービスの商標またはロゴが含まれている場合があります。 Microsoft の商標またはロゴの許可された使用には、Microsoft の商標およびブランド ガイドラインが適用され、それに従わなければなりません。このプロジェクトの修正バージョンで Microsoft の商標またはロゴを使用することは、混乱を引き起こしたり、Microsoft のスポンサーであることを暗示したりしてはなりません。第三者の商標またはロゴの使用には、それらの第三者のポリシーが適用されます。