テキスト埋め込みガイド

2 つの例文。文内の各単語に対応するエンベディングを配列として示しています。

MediaPipe Text Embedder タスクを使用すると、テキストデータの数値表現を作成して、その意味を取得できます。この機能は、コサイン類似度などの数学的比較手法を使用して、2 つのテキストのセマンティックな類似性を比較する場合によく使用されます。このタスクは、機械学習(ML)モデルを使用してテキストデータに対して動作し、テキストデータの数値表現を、浮動小数点形式または量子化形式の高次元特徴ベクトル(エンベディング ベクトル)のリストとして出力します。

試してみる

使ってみる

このタスクを使用するには、対象プラットフォーム向けの次のいずれかの実装ガイドに沿って操作します。以下のプラットフォーム固有のガイドでは、推奨モデルや、推奨構成オプションを含むコード例など、このタスクの基本的な実装について説明します。

タスクの詳細

このセクションでは、このタスクの機能、入力、出力、構成オプションについて説明します。

機能

  • 入力テキスト処理 - グラフ内トークン化のないモデルのグラフ外トークン化をサポートします。
  • エンベディングの類似度計算 - 2 つの特徴ベクトル間のコサイン類似度を計算する組み込みユーティリティ関数。
  • 量子化 - 特徴ベクトルのスカラー量子化をサポートします。
タスク入力 タスクの出力
Text Embedder は、次の入力データ型を受け入れます。
  • 文字列
Text Embedder は、次のエンベディングのリストを出力します。
  • エンベディング: 浮動小数点形式またはスカラー量子化された特徴ベクトル自体。
  • ヘッド インデックス: このエンベディングを生成するヘッドのインデックス。
  • ヘッド名(省略可): このエンベディングを生成するヘッドの名前。

構成オプション

このタスクには、次の構成オプションがあります。

オプション名 説明 値の範囲 デフォルト値
l2_normalize 返された特徴ベクトルを L2 ノルムで正規化するかどうか。このオプションは、モデルにネイティブの L2_NORMALIZATION TFLite オペレーションがまだ含まれていない場合にのみ使用します。ほとんどの場合、すでにこの状態であるため、TFLite 推論によって L2 正規化が実現され、このオプションは必要ありません。 Boolean False
quantize 返されたエンベディングをスカラー量子化でバイトに量子化するかどうか。エンベディングは暗黙的に単位正規化されていると見なされるため、すべてのディメンションの値は [-1.0、1.0] の範囲内にあることが保証されます。そうでない場合は、l2_normalize オプションを使用します。 Boolean False

モデル

このタスクで開発を開始する際に、デフォルトの推奨モデルが用意されています。

このモデルはデュアル エンコーダ アーキテクチャを使用しており、さまざまな質問応答データセットでトレーニングされています。

次の文のペアについて考えてみましょう。

  • (「魅力的で感動的な旅」,「素晴らしい旅」)
  • (「スマートフォンが好きです」、「スマートフォンが嫌いです」)
  • (「このレストランには面白い仕掛けがある」「プランの詳細を再確認する必要がある」)

最初の 2 つのペアのテキスト エンベディングは、3 番目のペアのエンベディングよりも高いコサイン類似度を持ちます。これは、最初の 2 つのペアの文はそれぞれ「旅行に関する感情」と「スマートフォンに関する意見」という共通のトピックを共有しているのに対し、3 番目のペアの文は共通のトピックを共有していないためです。

2 番目のペアの 2 つの文はセンチメントが正反対ですが、共通のトピックを共有しているため、類似度スコアは高くなります。

モデル名 入力シェイプ 量子化のタイプ バージョン
Universal Sentence Encoder string, string, string なし(float32) 最新

タスクのベンチマーク

上記の事前トレーニング済みモデルに基づくパイプライン全体のタスクのベンチマークは次のとおりです。レイテンシの結果は、CPU / GPU を使用した Google Pixel 6 の平均レイテンシです。

モデル名 CPU レイテンシ GPU レイテンシ
ユニバーサル センテンス エンコーダ 18.21 ミリ秒 -