数値ベクトルの比較と順位付け

クエリベクトルと候補ベクトルを貼り付けて、数値上の類似度または距離を比較します。指標を選んで順位付けし、次元が一致しない候補は理由付きで除外します。埋め込みは生成しません。

ブラウザ内でローカルに実行
ベクトルの解析と演算はすべてローカルで行われます。このツールは埋め込みを作成したり、ベクトルを外部サービスに送信したりしません。
クエリベクトル
候補ベクトル

埋め込みを公開せずにベクトルを比較

コサインは方向を比較し、内積は大きさも反映し、距離指標は値が小さい順にランキングします。本番環境で使用している埋め込みワークフローに合わせて、ベクトルを一貫して正規化してください。

コサイン・距離・内積でベクトルを順位付けする方法

クエリベクトルを 1 本とラベル付きの候補ベクトルを貼り付けると、選んだ指標で並べ替えた結果が返ります。コサイン類似度・内積・ユークリッド距離・マンハッタン距離は、入力した値のままタブ内で計算されます。正規化は行わず、埋め込みモデルの呼び出しもなく、ベクトルがブラウザの外に出ることもありません。

順位付けの精度はベクトルそのものに依存します。異なるモデルのベクトル、あるいは同じモデルでも前処理が違うベクトルは別の空間にあります。同じ処理の流れで作ったベクトルどうしでのみスコアを比較してください。

  1. クエリベクトルを貼り付けます。カンマ・空白・セミコロン区切りの数値、または [0.82, 0.15, -0.31, 0.44] のような JSON 配列を使えます。
  2. 候補を 1 行ずつ追加します。ラベルのあとにタブ(またはコロンや空白)を置き、ベクトルを角括弧で囲みます(例:「chunk A<TAB>[0.79, 0.18, -0.28, 0.48]」)。配列の配列や {label, vector} オブジェクトの JSON 配列も使えます。
  3. 指標を選びます。コサイン類似度と内積は値が大きい順、ユークリッド距離とマンハッタン距離は距離が小さい順に並びます。
  4. 「計算して順位付け」を押します。クエリと次元数が違う候補や読み取れない行は、理由を付けて一覧に表示し、その行だけを順位から外します(実行全体は失敗しません)。
  5. 「クリア」で入力と指標を初期状態に戻します。指標はコサイン類似度に戻ります。

入力形式、指標の計算式、エラーの扱い

受け付ける入力形式

ベクトルは有限の数値の並びです。クエリ欄ではカンマ・空白・セミコロン区切り、または JSON 配列で指定できます。小数、符号、指数表記(1e-3、2E-3)に対応し、表計算ソフトや CSV の出力のように数値が引用符で囲まれていても受け付けます。null、true、false、空の要素、その他の文字列は拒否し、0 や 1 に変換せずに該当する値を示します。

候補の行は「ラベル + ベクトル」として読み取ります。区切りはタブ、コロン、空白のいずれかです。ベクトルは角括弧で囲むか、ラベルのない行では数値の並びだけを書きます。ラベルのない行は「Vector 1」「Vector 2」…と採番されます。JSON の候補リストは、配列の配列、{label, vector} オブジェクトの配列、あるいは 1 件の候補として読む平坦な配列を受け付けます。

各指標が返す値

コサイン類似度は内積を両者の大きさで割るため、長さを無視して向きだけを比べます。値は −1(逆向き)から 0(無関係)を経て 1(同じ向き)までの範囲です。テキストや画像の埋め込みでは通常この指標を使います。ゼロベクトルには向きがないためコサインは定義できず、その行は 0 ではなく利用不可として表示されます。

内積は対応する成分どうしを掛けて足し合わせるため、向きの一致とベクトルの長さの両方に比例して大きくなります。値が大きい順に並び、負の結果は正の結果より下になります。ユークリッド距離は 2 点間の直線距離、マンハッタン距離は成分ごとの差の絶対値の合計で、どちらも距離が小さい順に並び、数値のスケールに影響されます。

コサインは 2 本のベクトルをスケーリングしてから計算するため、1e200 のような大きな成分でも途中の積が桁あふれしません。ユークリッド距離は Math.hypot で積み上げるので 2 乗でも桁あふれしません。それでも JavaScript の数値範囲を超える内積は、Infinity と表示せず、ステータス行に理由を付けて利用不可として報告します。

このページが行わないこと

埋め込みの生成、API からのベクトル取得、コーパスの検索は行いません。貼り付けた数値をそのまま順位付けするだけです。ベクトルの正規化、重複ラベルの削除、同点の並べ替えも行いません。同じスコアの候補は入力順のまま残ります。

各行のバーはその実行内の最高スコアと最低スコアの間で正規化されるため、1 つの順位表の中での相対位置を示すもので、実行や指標をまたいで比較はできません。スコア列は表示用に丸め、極端に大きな値や小さな値は指数表記に切り替わります。大量のデータで厳密な計算が必要な場合は、ご自身の処理系で数値ライブラリを使ってください。

最近使ったツール: