L1Distance
L1 空間における 2 点間の距離 (ベクトルの各要素が座標) を計算します (1-ノルム、タクシー幾何学距離) 。
構文
distanceL1
引数
戻り値
1-ノルム距離を返します。Array 入力の場合、要素型の最小の共通スーパータイプが Float32 または BFloat16 であれば Float32、それ以外の場合は Float64 を返します。Tuple 入力の場合、戻り値の型は要素ごとの演算の算術結果型に従います (整数型は保持されます) 。(U)Int* または Float*
例
基本的な使い方
Query
Response
L1Norm
normL1
引数
戻り値
L1ノルム、または タクシー幾何学 における距離を返します。UInt* または Float* または Decimal
例
基本的な使い方
Query
Response
L1Normalize
L1 空間 (タクシー幾何学) における単位ベクトルを計算します (タプルの各要素は座標です) 。
構文
normalizeL1
引数
tuple— 数値から成るタプル。Tuple(T)
Tuple(Float64)
例
基本的な使い方
Query
Response
L2Distance
distanceL2
引数
戻り値
2-ノルム距離を返します。入力が Array の場合、要素型の最小の共通スーパータイプが Float32 または BFloat16 であれば Float32 を返し、それ以外の場合は Float64 を返します。入力が Tuple の場合は、常に Float64 を返します。Float*
例
基本的な使い方
Query
Response
L2DistanceTransposed
distanceL2Transposed
引数
vectors— ベクトル。QBit(T, UInt64[, UInt64])reference— 参照ベクトル。Array(T)p— 距離計算で各ベクトル要素から使用するビット数 (1 から要素のビット幅まで) 。量子化レベルによって、精度と速度のトレードオフが決まります。ビット数を少なくすると I/O と計算は高速になりますが精度は低下し、ビット数を多くすると精度は向上しますが、その分パフォーマンスは低下します。UIntused_dims— 任意。ストライド付きQBitに対して低次元 (Matryoshka) 検索を行うために読み取る先頭の次元数です。QBit の stride の倍数であり、その次元数を超えてはなりません。また、参照ベクトルは少なくともこの数だけの要素を持っている必要があります (末尾の余分な要素は無視されます) 。これらの次元をカバーする stride グループだけが読み取られます。UInt
Float64 です。Float64
例
基本的な使い方
Query
Response
L2DistanceTransposedQuantized
quantizeBFloat16ToInt8 のコードを持つ QBit(Int8) (オンザフライで逆量子化) と参照ベクトルの間の近似 ユークリッド距離 を計算します。Float の参照 (クエリ) ベクトルは、逆量子化されたコードの再構成精度である Float32 精度で直接比較されるため、Float64 のクエリは Float32 に縮小され、BFloat16 のクエリは正確に Float32 に拡張されます (非対称距離計算)。Array(Int8) の参照は、それ自体が quantizeBFloat16ToInt8 のコードとして扱われ、その再構成レベルに逆量子化されます。p が切り詰めるのは保存された QBit コードだけである点に注意してください。Array(Int8) の参照は完全なクエリであり、常に完全な 8 ビット精度で再構成されるため、これは p = 8 のときにのみ対称な量子化同士の距離になります (p < 8 では、保存側だけがより粗い精度で読み取られます)。これは、量子化前の値が属していたのと同じ空間、つまり同じランダム回転とスケーリングを適用した後の空間になければならず、これを担保するのは呼び出し元の責任です。cosine distance はスケール不変ですが、内積と L2 距離 はそうではありません。
構文
vectors—quantizeBFloat16ToInt8コードのベクトル。QBit(Int8, UInt64[, UInt64])reference— 参照 (クエリ) ベクトル:Float配列 (クエリ。Float32精度で比較されます。Float64のクエリはFloat32に変換されます)、またはquantizeBFloat16ToInt8コードのArray(Int8)で、オンザフライで逆量子化されます。Array(Float32)またはArray(Int8)p— 使用する、格納済みQBitコードの上位ビット数 (1 から 8) 。ビット数が少ないほど、より粗い埋め込み量子化器が再構築され、I/O は高速になりますが精度は低下します。8 ビットはフル精度の再構築です。pは格納済みQBitのみを切り詰めます。Array(Int8)の参照は常に完全な 8 ビット精度で再構築されます。UIntused_dims— 任意。ストライド付きQBitに対して低次元 (Matryoshka) 検索を行うために読み取る先頭の次元数です。QBit の stride の倍数であり、その次元数を超えてはなりません。また、参照ベクトルは少なくともこの数の要素を持っている必要があります (末尾の余分な要素は無視されます)。これらの次元をカバーする stride グループだけが読み取られます。UInt
Float64 です。Float64
例
基本的な使い方
Query
L2Norm
normL2
引数
戻り値
L2ノルムまたはユークリッド距離を返します。 UInt* または Float*
例
基本的な使い方
Query
Response
L2Normalize
normalizeL2
引数
tuple— 数値からなるタプル。Tuple(T)
Tuple(Float64)
例
基本的な使い方
Query
Response
L2SquaredDistance
distanceL2Squared
引数
戻り値
2つのベクトルの対応する要素の差の二乗和を返します。Array 入力の場合、要素型の最小共通スーパータイプが Float32 または BFloat16 なら Float32、それ以外は Float64 を返します。Tuple 入力の場合、戻り値の型は要素ごとの演算の算術結果型に従います (整数型は保持されます) 。(U)Int* または Float*
例
基本的な使い方
Query
Response
L2SquaredNorm
L2Norm の二乗を計算します。
構文
normL2Squared
引数
戻り値
L2ノルムの二乗を返します。 UInt* または Float* または Decimal
例
基本的な使い方
Query
Response
LinfDistance
L_{inf} 空間における 2 点間の距離を計算します (ベクトルの要素が座標を表します) (最大ノルム) 。
構文
distanceLinf
引数
戻り値
無限大ノルム距離を返します。入力が Array の場合、要素型の最小共通スーパータイプが Float32 または BFloat16 であれば Float32、それ以外は Float64 を返します。入力が Tuple の場合は、常に Float64 を返します。Float*
例
基本的な使い方
Query
Response
LinfNorm
normLinf
引数
戻り値
Linf ノルム、つまり絶対値の最大値を返します。Float64
例
基本的な使い方
Query
Response
LinfNormalize
L_{inf} 空間で計算します (最大ノルム を使用) 。
構文
normalizeLinf
引数
tuple— 数値のタプルです。Tuple(T)
Tuple(Float64)
例
基本的な使い方
Query
Response
LpDistance
Lp 空間における 2 点間の距離 (ベクトルの要素を座標とする) を計算します (p-ノルム距離) 。
構文
distanceLp
引数
vector1— 1つ目のベクトル。Tuple(T)またはArray(T)vector2— 2つ目のベクトル。Tuple(T)またはArray(T)p— べき指数。設定可能な値:[1; inf)の実数。UInt*またはFloat*
Array 入力の場合、要素型の最小共通スーパータイプが Float32 または BFloat16 であれば Float32、それ以外の場合は Float64 を返します。Tuple 入力の場合は、常に Float64 を返します。Float*
例
基本的な使い方
Query
Response
LpNorm
- p=1 のとき、L1Norm (マンハッタン距離) と同等です。
- p=2 のとき、L2Norm (ユークリッド距離) と同等です。
- p=∞ のとき、LinfNorm (最大ノルム) と同等です。
normLp
引数
戻り値
Lp-ノルム を返します。Float64
例
基本的な使い方
Query
Response
LpNormalize
Lp 空間内で (p-ノルムを用いて) 計算します。タプルの各要素は座標を表します。
構文
normalizeLp
引数
戻り値
単位ベクトルを返します。Tuple(Float64)
例
使用例
Query
Response
cosineDistance
distanceCosine
引数
戻り値
コサイン距離 (コサイン類似度から 1 を引いた値) を返します。Array を入力した場合、要素型の最小共通スーパータイプが Float32 または BFloat16 であれば Float32、それ以外の場合は Float64 を返します。Tuple を入力した場合は、常に Float64 を返します。Float*
例
基本的な使い方
Query
Response
cosineDistanceTransposed
distanceCosineTransposed
引数
vectors— ベクトル。QBit(T, UInt64[, UInt64])reference— 参照ベクトル。Array(T)p— 距離計算で各ベクトル要素から使用するビット数 (1 から要素のビット幅まで) 。量子化レベルによって、精度と速度のトレードオフが決まります。使用するビット数を減らすと、精度は低下しますが、I/O と計算は高速になります。一方、ビット数を増やすと精度は向上しますが、パフォーマンスは低下します。UIntused_dims— 省略可能。ストライド付きQBitで低次元 (Matryoshka) 検索を行うために、先頭から読み取る次元数です。QBit の stride の倍数であり、その次元数を超えてはなりません。また、参照ベクトルには少なくともこの数の要素が必要です (末尾の余分な要素は無視されます) 。これらの次元をカバーする stride グループのみが読み取られます。UInt
Float64
例
基本的な使い方
Query
Response
cosineDistanceTransposedQuantized
quantizeBFloat16ToInt8 コードの QBit(Int8) (オンザフライで逆量子化) と参照ベクトルの間の近似的な コサイン距離 を計算します。戻り値が小さいほど、ベクトル同士の類似度は高くなります。Float の参照 (クエリ) ベクトルは、復量子化されたコードの再構成精度である Float32 精度で直接比較されます。つまり、Float64 クエリは Float32 に丸められ、BFloat16 クエリは正確に Float32 へ拡張されます (非対称な距離計算) 。一方、Array(Int8) の参照は、それ自体が quantizeBFloat16ToInt8 コードとして扱われ、対応する再構成レベルへ復量子化されます。なお、p によって切り詰められるのは保存済みの QBit コードだけです。Array(Int8) の参照は完全なクエリそのものであり、常に完全な 8 ビット精度で再構成されます。そのため、これは p = 8 の場合にのみ対称な量子化同士の距離となります (p < 8 の場合は、保存側だけがより粗い精度で読み出されます) 。また、これは量子化前の値が属していた空間と同じ空間に存在している必要があります (つまり、同じランダム回転とスケーリングを適用した後の空間) 。これを保証するのは呼び出し側の責任です。コサイン距離はスケール不変ですが、内積と L2 距離はそうではありません。
構文
vectors—quantizeBFloat16ToInt8コードのベクトル。QBit(Int8, UInt64[, UInt64])reference— 参照 (クエリ) ベクトル:Floatの配列 (クエリはFloat32精度で比較され、Float64のクエリはFloat32に変換されます) 、またはオンザフライで逆量子化されるquantizeBFloat16ToInt8コードのArray(Int8)。Array(Float32)またはArray(Int8)p— 各格納済みQBitコードで使用する上位ビット数 (1 ~ 8) 。ビット数が少ないほど、より粗い埋め込み量子化器が再構成されるため、精度は下がりますが I/O は高速になります。8 ビットはフル精度での再構成です。pで切り詰められるのは格納済みQBitのみで、Array(Int8)の参照は常に 8 ビットのフル精度で再構成されます。UIntused_dims— 省略可。ストライド付きQBitに対する 低次元 (Matryoshka) 検索で読み取る先頭の次元数です。QBit の stride の倍数であり、その dimension を超えてはならず、参照ベクトルは少なくともこの数の要素を持っている必要があります (余分な末尾の要素は無視されます) 。これらの次元を含む stride グループ のみが読み取られます。UInt
Float64 です。Float64
例
基本的な使い方
Query
dotProductTransposed
scalarProductTransposed
引数
vectors— ベクトル。QBit(T, UInt64[, UInt64])reference— 参照ベクトル。Array(T)p— 計算で各ベクトル要素から使用するビット数 (1 から要素のビット幅まで) 。量子化レベルによって、精度と速度のトレードオフが決まります。使用するビット数を減らすと、精度は低下しますが、I/O と計算は高速になります。一方、ビット数を増やすと精度は向上しますが、パフォーマンスは低下します。UIntused_dims— 省略可能。ストライド付きQBitに対する低次元 (Matryoshka) 検索のために、読み取る先頭の次元数です。QBit の stride の倍数であり、その次元数を超えてはなりません。また、参照ベクトルは少なくともこの数の要素を持っている必要があります (余分な末尾要素は無視されます) 。これらの次元をカバーする stride グループのみが読み取られます。UInt
Float64 です。Float64
例
基本的な使い方
Query
Response
dotProductTransposedQuantized
quantizeBFloat16ToInt8 のコードを持つ QBit(Int8) と参照ベクトルの間の近似的な 内積 (インナー積) を計算します (QBit(Int8) は オンザフライで逆量子化されます) 。これは類似度の指標です。戻り値が大きいほど、ベクトルはより類似しています。Float の参照 (クエリ) ベクトルは、逆量子化されたコードの再構成精度である Float32 精度で直接比較されるため、Float64 クエリは Float32 に縮小され、BFloat16 クエリは正確に Float32 に拡張されます (非対称距離計算) 。Array(Int8) の参照は、それ自体が quantizeBFloat16ToInt8 のコードとして扱われ、再構成レベルに逆量子化されます。p は保存された QBit コードのみを切り詰める点に注意してください。Array(Int8) の参照は完全なクエリであり、常に完全な 8 ビット精度で再構成されるため、これは p = 8 の場合にのみ対称な量子化対量子化距離になります (p < 8 の場合、より粗い精度で読み取られるのは保存側だけです) 。これは、量子化前の値が属していたのと同じ空間、すなわち同じランダム回転とスケーリングを適用した後の空間に属している必要があり、これを保証するのは呼び出し側の責任です。コサイン距離はスケール不変ですが、内積と L2 距離はそうではありません。
構文
vectors—quantizeBFloat16ToInt8コードのベクトル。QBit(Int8, UInt64[, UInt64])reference— 参照 (クエリ) ベクトル:Float配列 (クエリはFloat32精度で比較され、Float64クエリはFloat32に縮小されます) 、またはquantizeBFloat16ToInt8コードのArray(Int8)で、オンザフライで逆量子化されます。Array(Float32)またはArray(Int8)p— 使用する、格納された各QBitコードの上位ビット数 (1 から 8) 。ビット数を減らすと、より粗い埋め込み量子化器が再構成され、精度は低下しますが I/O は高速になります。8 ビットはフル精度の再構成です。pが切り詰めるのは格納されたQBitのみであり、Array(Int8)の参照は常に完全な 8 ビット精度で再構成されます。UIntused_dims— 省略可能。ストライド付きQBitに対する低次元 (Matryoshka) 検索のために、読み取る先頭の次元数です。QBit の stride の倍数であり、その次元数を超えてはなりません。また、参照ベクトルは少なくともこの数の要素を持っている必要があります (末尾に余分な要素がある場合は無視されます) 。これらの次元をカバーする stride グループのみが読み取られます。UInt
Float64
例
基本的な使い方
Query