Gemini API のエンベディング サービスは、単語、フレーズ、文に対する最先端のエンベディングを生成します。生成されたエンベディングは、セマンティック検索、テキスト分類、クラスタリングなどの NLP タスクに使用できます。このページでは、エンベディングの概要と、作業を始める際に役立つエンベディング サービスの主なユースケースについて説明します。
エンベディングとは
テキスト エンベディングは、テキストを数値ベクトルに変換する自然言語処理(NLP)手法です。エンベディングはセマンティックな意味とコンテキストをキャプチャし、意味が似ているテキストがより近いエンベディングになります。たとえば、「私は犬を獣医に連れて行きました」と「猫を獣医に連れて行いました」という文は、ベクトル空間内で互いに近いエンベディングを持つことになります。どちらも類似したコンテキストを記述しているためです。
ベクトルに対しては動作できてもテキストに対しては直接操作できない多くのアルゴリズムを利用できるようになるため、これは重要です。
これらのエンベディングまたはベクトルを使用して、異なるテキストを比較し、それらの関連性を理解できます。たとえば、テキスト「cat」と「dog」のエンベディングが近い場合、これらの単語は意味、コンテキスト、またはその両方が類似していると推測できます。このアビリティにより、次のセクションで説明するさまざまなユースケースが可能になります。
ユースケース
テキスト エンベディングは、さまざまな NLP ユースケースで活用されています。次に例を示します。
- 情報の取得: 目標は、入力テキストを指定して意味的に類似したテキストを取得することです。情報検索システムでは、セマンティック検索、質問への回答、要約など、さまざまなアプリケーションがサポートされています。例については、ドキュメント検索ノートブックをご覧ください。
- 分類: エンベディングを使用してモデルをトレーニングし、ドキュメントをカテゴリに分類できます。たとえば、ユーザーのコメントを否定的または肯定的に分類する場合は、エンベディング サービスを使用して各コメントのベクトル表現を取得し、分類器をトレーニングできます。詳しくは、Gemini 分類器の例をご覧ください。
- クラスタリング: テキストのベクトルを比較することで、それらの類似度と相違点を示すことができます。この機能を使用すると、類似したテキストやドキュメントをグループ化するクラスタリング モデルをトレーニングし、データ内の異常を検出できます。
- ベクトル DB: 生成されたエンベディングをベクトル DB に保存することで、NLP アプリケーションの精度と効率を改善できます。ベクトル DB を使用してテキスト プロンプトを数値ベクトルに変換する方法については、このページをご覧ください。
弾力性埋め込み
text-embedding-004
以降の Gemini Text Embedding モデルでは、768 未満の弾力性のあるエンベディング サイズを使用できます。弾力性のあるエンベディングを使用すると、より小さな出力次元を生成し、パフォーマンスの低下をわずかに抑えながら、コンピューティングとストレージの費用を削減できる可能性があります。
次のステップ
- 開発を開始する準備ができたら、Python、Go、Node.js、Dart(Flutter)のクイックスタートで、実行可能なコード全体を確認できます。