.NET での埋め込み

埋め込みは、LLM がセマンティックの意味をキャプチャする方法です。 これは、LLM が概念間の関係を決定するために使用できる非数値データの数値表現です。 埋め込みを使用すると、AI モデルが入力の意味を理解し、テキストの要約やテキストの説明からの画像の作成などの比較と変換を実行できます。 LLM は埋め込みをすぐに使用でき、ベクトル データベースに埋め込みを格納して、必要に応じて LLM のセマンティック メモリを提供できます。

埋め込みのユース ケース

このセクションでは、埋め込みの主なユース ケースを一覧表示します。

独自のデータを使用して完了の関連性を向上させる

独自のデータベースを使用してデータの埋め込みを生成し、LLM と統合して完了できるようにします。 この埋め込みの使用は、検索拡張生成の重要なコンポーネントです。

プロンプトに収めることができるテキストの量を増やす

埋め込みを使用して、必要なトークンの数を増やすことなく、プロンプトに収めることができるコンテキストの量を増やします。

たとえば、プロンプトに 500 ページのテキストを含めるとします。 その多くの生テキストのトークンの数が入力トークンの制限を超えるので、プロンプトに直接含めることができません。 埋め込みを使用すると、大量のテキストを集計して、1 つの入力に収まるのに十分な小さな部分に分割し、各部分の生テキスト全体との類似性を評価できます。 その後、生テキストのセマンティックな意味を最もよく保持する部分を選択し、トークンの制限に達することなくプロンプトで使用できます。

テキスト分類、要約、または翻訳を実行する

埋め込みを使用して、モデルがテキストの意味とコンテキストを理解し、そのテキストを分類、集計、または翻訳するのに役立ちます。 たとえば、埋め込みを使用して、モデルがテキストを肯定的または否定的、スパムまたはスパムではない、ニュースまたは意見として分類するのに役立ちます。

オーディオの生成と文字起こし

オーディオ埋め込みを使用して、アプリ内のオーディオ ファイルまたは入力を処理します。

たとえば、Azure Cognitive Service for Speech サービスでは、音声テキスト変換テキスト読み上げなどさまざまなオーディオ埋め込みがサポートされています。 オーディオは、リアルタイムまたはバッチで処理できます。

テキストを画像に、画像をテキストに変換する

セマンティック画像処理には、ほとんどの LLM で生成できないイメージ埋め込みが必要です。 ViT などの画像埋め込みモデルを使用して、画像のベクトル埋め込みを作成します。 その後、画像生成モデルで埋め込みを使用し、テキストを使用して画像を作成または変更できます。その逆も可能です。 たとえば、DALL E モデルを使用して画像 (ロゴ、顔、動物、風景など) を生成します。

コードを生成またはドキュメント化する

埋め込みを使用して、さまざまなコードまたはテキスト式を共通の表現に変換することで、モデルがテキストからコードを作成したり、テキストからコードを作成したりするのに役立ちます。 たとえば、埋め込みを使用して、モデルが C# または Python でコードを生成またはドキュメント化するのに役立ちます。

埋め込みモデルを選択する

数値以外のデータをベクトル (数値の長い配列) にエンコードできる AI 埋め込みモデルを使用して、生データの埋め込みを生成します。 モデルは、元の生データと同じまたは類似の意味を持つ数値以外のデータへの埋め込みをデコードすることもできます。 多くの埋め込みモデルを使用することができ、OpenAI の text-embedding-ada-002 モデルが、一般的に使用されるモデルの 1 つです。 その他の例については、「Azure OpenAI で使用できる埋め込みモデルの一覧」を参照してください。

ベクトル データベースに埋め込みを格納および処理する

埋め込みを生成した後、後で LLM の呼び出しで取得できるように、埋め込みを格納する方法が必要になります。 ベクトル データベースはベクトルを格納して処理するように設計されているため、埋め込みのための自然なホームです。 ベクトル データベースによって異なる処理機能が提供されるため、生データと目標に基づいて 1 つ選択する必要があります。 オプションの詳細については、使用可能なベクトル データベース ソリューションを参照してください。

LLM ソリューションでの埋め込みの使用

LLM ベースのアプリケーションをビルドする場合、セマンティック カーネルを使用して埋め込みモデルとベクトル ストアを統合できるため、テキスト データをすばやく取り込み、埋め込みを生成して格納できます。 これにより、ベクトル データベース ソリューションを使用してセマンティック メモリを格納および取得できます。