Vertex AI エンベディング モデルは、ドキュメントの検索、質問と回答、事実の検証など、さまざまなタスクタイプに最適化されたエンベディングを生成できます。タスクタイプは、目的のユースケースに基づいてモデルが生成するエンベディングを最適化するラベルです。このドキュメントでは、エンベディングに最適なタスクタイプを選択する方法について説明します。
サポートされているモデル
タスクタイプは、次のモデルでサポートされています。
textembedding-gecko@003
text-embedding-004
text-multilingual-embedding-002
タスクタイプのメリット
タスクタイプを使用すると、エンベディング モデルによって生成されるエンベディングの品質を向上させることができます。
たとえば、検索拡張生成(RAG)システムを構築する場合、一般的な設計では、テキスト エンベディングとベクトル検索を使用して類似性検索を行います。質問とその回答が意味的に類似していないため、検索の品質が低下することがあります。たとえば、「空はなぜ青いのか」という質問とその回答である「太陽光の散乱によって青色になる」は、文面として明らかに意味が異なります。つまり、図 1 に示すように、RAG システムはこれらの関係を自動的に認識しません。タスクタイプを使用しない場合、RAG デベロッパーはモデルをトレーニングしてクエリと回答の関係を学習させる必要がありますが、これにはデータ サイエンスの高度なスキルと経験が必要になります。また、LLM ベースのクエリ拡張や HyDE を使用するため、レイテンシと費用が増加する可能性があります。
タスクタイプを使用すると、特定のタスク用に最適化されたエンベディングを生成できます。これにより、タスク固有のエンベディングを独自に開発する時間と費用を節約できます。図 2 に示すように、「なぜ空は青いのか」という質問と「太陽光の散乱によって青色になる」という回答から生成されたエンベディングは、それらの関係を表す共有エンベディング空間に存在します。この RAG の例では、最適化されたエンベディングにより、類似性検索が改善されます。
タスクタイプは、質問と回答のユースケースだけでなく、分類、クラスタリング、事実確認などのタスクにも最適化されたエンベディング空間を提供します。
サポートされているタスクタイプ
タスクタイプを使用するエンベディング モデルは、次のタスクタイプをサポートしています。
タスクタイプ | 説明 |
---|---|
SEMANTIC_SIMILARITY |
テキストの類似性を評価するために最適化されたエンベディングの生成に使用 |
CLASSIFICATION |
事前設定されたラベルに従ってテキストを分類するように最適化されたエンベディングの生成に使用 |
CLUSTERING |
類似性に基づいてテキストをクラスタ化するように最適化されたエンベディングの生成に使用 |
RETRIEVAL_DOCUMENT 、RETRIEVAL_QUERY 、QUESTION_ANSWERING 、FACT_VERIFICATION |
ドキュメント検索や情報検索に最適化されたエンベディングの生成に使用 |
エンベディング ジョブに最適なタスクタイプは、エンベディングのユースケースによって異なります。タスクタイプを選択する前に、エンベディングのユースケースを決定します。
エンベディングのユースケースを決定する
エンベディングのユースケースは通常、テキストの類似性の評価、テキストの分類、テキストのクラスタリング、テキストからの情報の取得、の 4 つのカテゴリのいずれかに分類されます。ユースケースがこれらのカテゴリに該当しない場合は、デフォルトで RETRIEVAL_QUERY
タスクタイプを使用します。
テキストの類似性を評価する
エンベディングを使用してテキストの類似性を評価する場合は、SEMANTIC_SIMILARITY
タスクタイプを使用します。このタスクタイプは、類似性スコアの生成用に最適化されたエンベディングを生成します。
たとえば、次のテキストの類似性を比較するために使用するエンベディングを生成するとします。
- 猫が寝ている
- ネコ科の動物が昼寝をしている
エンベディングを使用して類似度スコアを作成すると、両方のテキストの意味はほぼ同じであるため、類似度スコアは高くなります。
入力の類似性を評価する必要がある次のような実際のシナリオについて考えてみましょう。
- レコメンデーション システムでは、ユーザーが好むアイテムと意味的に類似したアイテム(商品、記事、映画など)を特定して、パーソナライズされたおすすめ情報を提供することでユーザー満足度を高めます。
テキストを分類する
エンベディングを使用して、事前設定されたラベルに従ってテキストを分類する場合は、CLASSIFICATION
タスクタイプを使用します。このタスクタイプは、分類用に最適化されたエンベディング空間でエンベディングを生成します。
たとえば、ソーシャル メディアの投稿のエンベディングを生成して、そのエンベディングを使用して投稿の感情をポジティブ、ネガティブ、ニュートラルのいずれかに分類したいとします。ソーシャル メディアの投稿のエンベディングが「飛行機での旅行は好きではない」と分類された場合、感情は否定的と分類されます。
テキストをクラスタリングする
エンベディングを使用して類似性に基づいてテキストをクラスタリングする場合は、CLUSTERING
タスクタイプを使用します。このタスクタイプは、類似性に基づいてグループ化するように最適化されたエンベディングを生成します。
たとえば、ニュース記事のエンベディングを生成して、ユーザーが以前に読んだ記事とトピックが関連している記事をユーザーに表示するとします。エンベディングが生成されてクラスタリングされたら、スポーツに関する記事をよく読むユーザーに、スポーツ関連の追加記事をおすすめできます。
クラスタリングのその他のユースケースには次のものがあります。
- 顧客セグメンテーション: ターゲット マーケティングとパーソナライズされたエクスペリエンスのため、プロフィールやアクティビティから生成された類似のエンベディングを持つ顧客をグループ化します。
- 商品セグメント: 商品のタイトルや説明、商品画像、顧客レビューに基づいて商品エンベディングをクラスタリングすることで、商品のセグメント分析を行うことができます。
- 市場調査: 消費者アンケートの回答やソーシャル メディア データのエンベディングをクラスタリングすることで、消費者の意見、好み、行動に隠れたパターンや傾向を明らかにし、市場調査の取り組みや商品の開発戦略に役立てることができます。
- ヘルスケア: 医療データから得られた患者のエンベディングをクラスタリングすることで、類似の病状や治療に対する反応を持つグループを特定し、よりパーソナライズされた医療計画の作成やターゲット療法に役立てることができます。
- 顧客からのフィードバックの傾向: さまざまなチャネル(アンケート、ソーシャル メディア、サポート チケット)からの顧客からのフィードバックをグループに分類し、共通の問題点、機能リクエスト、製品の改善分野を特定できます。
テキストから情報を取得する
冒頭で説明したように、ドキュメント検索や情報検索、Q&A のユースケース(検索、chatbot、RAG など)にエンベディングを使用する場合は、異なるタスクタイプで 2 つのエンベディング ジョブを実行する必要があります。
RETRIEVAL_DOCUMENT
タスクタイプを使用して、ドキュメント(コーパス)用に最適化されたエンベディングを作成します。- クエリの性質に応じて、次のいずれかのタスクタイプを使用して、クエリ用に最適化されたエンベディングを作成します。
RETRIEVAL_QUERY
: クエリのデフォルトのタスクタイプとして使用します。例: 「バンクーバーのおすすめのレストラン」、「緑色の野菜」、「最高のクッキーのレシピは?」。QUESTION_ANSWERING
: すべてのクエリが「空はなぜ青いのか」「靴ひもを結ぶにはどうすればよいか」など、適切な質問の形式になっている場合に使用します。FACT_VERIFICATION
: ステートメントを証明または反証するコーパスからドキュメントを取得する場合に使用します。たとえば、「リンゴは地下で育つ」というクエリでは、最終的にその主張を反証する、リンゴに関する記事が取得される可能性があります。
取得クエリが役立つ次のような実際のシナリオについて考えてみましょう。
- e コマース プラットフォームの場合。エンベディングを使用して、ユーザーがテキストクエリと画像の両方を使用して商品を検索できるようにし、より直感的で魅力的なショッピング エクスペリエンスを提供します。
- 教育プラットフォームの場合。教科書の内容や教育リソースに基づいて生徒の質問に答えられる質問応答システムを構築して、個別化された学習体験を提供し、生徒が複雑な概念を理解できるようにします。
次のステップ
- テキスト エンベディングの取得方法を学習する。