L1Distance
L1 (norme 1, ou distance en géométrie de Manhattan).
Syntaxe
distanceL1
Arguments
Valeur renvoyée
Renvoie la distance selon la norme 1. Pour les entrées Array, renvoie Float32 si le plus petit supertype commun des types d’éléments est Float32 ou BFloat16, sinon Float64. Pour les entrées Tuple, le type de retour suit le type du résultat arithmétique des opérations appliquées élément par élément (les types entiers sont conservés). (U)Int* ou Float*
Exemples
Utilisation de base
Query
Response
L1Norm
normL1
Arguments
Valeur renvoyée
Renvoie la norme L1 ou la distance de géométrie de Manhattan. UInt* ou Float* ou Decimal
Exemples
Utilisation de base
Query
Response
L1Normalize
L1 (géométrie de Manhattan).
Syntaxe
normalizeL1
Arguments
tuple— Un tuple de valeurs numériques.Tuple(T)
Tuple(Float64)
Exemples
Utilisation de base
Query
Response
L2Distance
distanceL2
Arguments
Valeur renvoyée
Renvoie la distance de norme 2. Pour les entrées Array, renvoie Float32 si le plus petit supertype commun des types des éléments est Float32 ou BFloat16, sinon Float64. Pour les entrées Tuple, renvoie toujours Float64. Float*
Exemples
Utilisation de base
Query
Response
L2DistanceTransposed
distanceL2Transposed
Arguments
vectors— Vecteurs.QBit(T, UInt64[, UInt64])reference— Vecteur de référence.Array(T)p— Nombre de bits de chaque élément du vecteur à utiliser pour le calcul de la distance (de 1 à la largeur en bits de l’élément). Le niveau de quantification détermine le compromis entre précision et vitesse. Utiliser moins de bits accélère les E/S et les calculs, au prix d’une précision moindre, tandis qu’en utiliser davantage améliore la précision au détriment des performances.UIntused_dims— Facultatif. Nombre de dimensions initiales à lire, pour une recherche à dimension réduite (Matryoshka) sur unQBitavec stride. Doit être un multiple du stride du QBit sans dépasser sa dimension, et le vecteur de référence doit comporter au moins ce nombre d’éléments (tout élément supplémentaire en fin de vecteur est ignoré). Seuls les groupes de stride couvrant ces dimensions sont lus.UInt
Float64. Float64
Exemples
Utilisation de base
Query
Response
L2DistanceTransposedQuantized
QBit(Int8) de codes quantizeBFloat16ToInt8 (déquantifiés à la volée) et un vecteur de référence. Un vecteur de référence (requête) Float est comparé directement avec une précision Float32 — la précision de reconstruction des codes déquantifiés, de sorte qu’une query Float64 est ramenée à Float32, tandis qu’une query BFloat16 y est étendue exactement (calcul de distance asymétrique) ; une référence Array(Int8) est elle-même traitée comme des codes quantizeBFloat16ToInt8 et déquantifiée vers ses niveaux de reconstruction. Notez que p tronque uniquement les codes QBit stockés ; la référence Array(Int8) constitue elle-même une query complète et est toujours reconstruite avec la pleine précision de 8 bits, de sorte qu’il s’agit d’une distance quantifiée contre quantifiée symétrique uniquement pour p = 8 (pour p < 8, seul le côté stocké est lu avec une précision plus grossière). Elle doit se trouver dans le même espace que celui où se trouvaient les values avant la quantification (c’est-à-dire après la même rotation aléatoire et la même mise à l’échelle), ce qui relève de la responsabilité de l’appelant. La distance cosinus est invariante par changement d’échelle ; le produit scalaire et la distance L2 ne le sont pas.
Syntaxe
vectors— Vecteurs de codesquantizeBFloat16ToInt8.QBit(Int8, UInt64[, UInt64])reference— Vecteur de référence (requête) : un tableau deFloat(la requête, comparée avec une précisionFloat32— une requêteFloat64est convertie enFloat32), ou unArray(Int8)de codesquantizeBFloat16ToInt8déquantifiés à la volée.Array(Float32)ouArray(Int8)p— Nombre de bits de poids fort de chaque codeQBitstocké à utiliser (de 1 à 8). Utiliser moins de bits reconstruit un quantificateur embarqué plus grossier, pour des E/S plus rapides au prix d’une précision réduite ; 8 bits correspondent à une reconstruction en précision complète.ptronque uniquement leQBitstocké ; une référenceArray(Int8)est toujours reconstruite avec la précision complète de 8 bits.UIntused_dims— Facultatif. Nombre de dimensions initiales à lire, pour une recherche à dimension réduite (Matryoshka) sur unQBitavec stride. Doit être un multiple du stride du QBit sans dépasser sa dimension, et le vecteur de référence doit comporter au moins ce nombre d’éléments (tous les éléments supplémentaires en fin de tableau sont ignorés). Seuls les groupes de stride couvrant ces dimensions sont lus.UInt
Float64. Float64
Exemples
Utilisation de base
Query
L2Norm
normL2
Arguments
Valeur renvoyée
Renvoie la norme L2 ou la distance euclidienne. UInt* ou Float*
Exemples
Utilisation de base
Query
Response
L2Normalize
normalizeL2
Arguments
tuple— Un tuple de valeurs numériques.Tuple(T)
Tuple(Float64)
Exemples
Utilisation de base
Query
Response
L2SquaredDistance
distanceL2Squared
Arguments
Valeur renvoyée
Renvoie la somme des carrés des différences entre les éléments correspondants de deux vecteurs. Pour les entrées Array, renvoie Float32 si le plus petit supertype commun des types d’éléments est Float32 ou BFloat16, sinon Float64. Pour les entrées Tuple, le type de retour suit le type de résultat arithmétique des opérations élément par élément (les types entiers sont conservés). (U)Int* ou Float*
Exemples
Utilisation de base
Query
Response
L2SquaredNorm
L2Norm).
Syntaxe
normL2Squared
Arguments
Valeur renvoyée
Carré de la norme L2. UInt* ou Float* ou Decimal
Exemples
Utilisation de base
Query
Response
LinfDistance
L_{inf} (norme maximale).
Syntaxe
distanceLinf
Arguments
Valeur renvoyée
Renvoie la distance selon la norme infinie. Pour les entrées Array, renvoie Float32 si le plus petit supertype commun des types d’élément est Float32 ou BFloat16, sinon Float64. Pour les entrées Tuple, renvoie toujours Float64. Float*
Exemples
Utilisation de base
Query
Response
LinfNorm
normLinf
Arguments
Valeur renvoyée
Renvoie la norme Linf, c’est-à-dire la valeur absolue maximale. Float64
Exemples
Utilisation de base
Query
Response
LinfNormalize
L_{inf} (à l’aide de la norme maximale).
Syntaxe
normalizeLinf
Arguments
tuple— Un tuple de valeurs numériques.Tuple(T)
Tuple(Float64)
Exemples
Utilisation de base
Query
Response
LpDistance
Lp (distance de p-norme).
Syntaxe
distanceLp
Arguments
vector1— Premier vecteur.Tuple(T)ouArray(T)vector2— Deuxième vecteur.Tuple(T)ouArray(T)p— La puissance. Valeurs possibles : nombre réel compris dans[1; inf).UInt*ouFloat*
Array, renvoie Float32 si le plus petit supertype commun des types des éléments est Float32 ou BFloat16, sinon Float64. Pour les entrées Tuple, renvoie toujours Float64. Float*
Exemples
Utilisation de base
Query
Response
LpNorm
- Quand p=1, elle est équivalente à L1Norm (distance de Manhattan).
- Quand p=2, elle est équivalente à L2Norm (distance euclidienne).
- Quand p=∞, elle est équivalente à LinfNorm (norme maximale).
normLp
Arguments
vector— Vecteur ou tuple de valeurs numériques.Tuple(T)ouArray(T)p— La puissance. Les valeurs possibles sont des nombres réels dans l’intervalle[1; inf).UInt*ouFloat*
Float64
Exemples
Utilisation de base
Query
Response
LpNormalize
Lp (à l’aide de la p-norme).
Syntaxe
normalizeLp
Arguments
tuple— Un tuple de valeurs numériques.Tuple(T)p— L’exposant. Les valeurs possibles sont tous les nombres de l’intervalle[1; inf).UInt*ouFloat*
Tuple(Float64)
Exemples
Exemple d’utilisation
Query
Response
cosineDistance
distanceCosine
Arguments
Valeur renvoyée
Renvoie la distance cosinus (un moins la similarité cosinus). Pour les entrées Array, renvoie Float32 si le plus petit supertype commun des types des éléments est Float32 ou BFloat16, sinon Float64. Pour les entrées Tuple, renvoie toujours Float64. Float*
Exemples
Utilisation de base
Query
Response
cosineDistanceTransposed
distanceCosineTransposed
Arguments
vectors— Vecteurs.QBit(T, UInt64[, UInt64])reference— Vecteur de référence.Array(T)p— Nombre de bits de chaque élément du vecteur à utiliser pour le calcul de la distance (de 1 à la largeur en bits de l’élément). Le niveau de quantification détermine le compromis entre précision et vitesse. Utiliser moins de bits accélère les opérations d’E/S et les calculs, au prix d’une précision réduite, tandis qu’utiliser davantage de bits améliore la précision au détriment des performances.UIntused_dims— Facultatif. Nombre de dimensions initiales à lire, pour une recherche à dimension réduite (Matryoshka) sur unQBitavec stride. Doit être un multiple du stride du QBit sans dépasser sa dimension, et le vecteur de référence doit comporter au moins ce nombre d’éléments (tout élément supplémentaire en fin de vecteur est ignoré). Seuls les groupes de stride couvrant ces dimensions sont lus.UInt
Float64
Exemples
Utilisation de base
Query
Response
cosineDistanceTransposedQuantized
QBit(Int8) de codes quantizeBFloat16ToInt8 (déquantifiés à la volée) et un vecteur de référence. Plus la valeur renvoyée est faible, plus les vecteurs se ressemblent. Un vecteur de référence (requête) Float est comparé directement à la précision Float32 — la précision de reconstruction des codes déquantifiés, si bien qu’une requête Float64 est ramenée à Float32, tandis qu’une requête BFloat16 y est convertie exactement (calcul de distance asymétrique) ; une référence Array(Int8) est elle-même traitée comme des codes quantizeBFloat16ToInt8 et déquantifiée vers ses niveaux de reconstruction. Notez que p tronque uniquement les codes QBit stockés ; la référence Array(Int8) constitue, elle, une requête complète et est toujours reconstruite avec la pleine précision de 8 bits. Il s’agit donc d’une distance quantifiée contre quantifiée symétrique uniquement pour p = 8 (pour p < 8, seul le côté stocké est lu avec une précision plus grossière). Il doit se trouver dans le même espace que celui où se trouvaient les valeurs avant la quantification (c.-à-d. après la même rotation aléatoire et la même mise à l’échelle), ce qui relève de la responsabilité de l’appelant. La distance cosinus est invariante par changement d’échelle ; le produit scalaire et la distance L2 ne le sont pas.
Syntaxe
vectors— Vecteurs de codesquantizeBFloat16ToInt8.QBit(Int8, UInt64[, UInt64])reference— Vecteur de référence (requête) : un tableau deFloat(la requête, comparée avec une précisionFloat32— une requêteFloat64est ramenée àFloat32), ou unArray(Int8)de codesquantizeBFloat16ToInt8déquantifiés à la volée.Array(Float32)ouArray(Int8)p— Nombre de bits de poids fort de chaque codeQBitstocké à utiliser (de 1 à 8). Moins de bits reconstruisent un quantificateur intégré plus grossier pour des E/S plus rapides, au prix d’une précision réduite ; 8 bits correspondent à une reconstruction en pleine précision.ptronque uniquement leQBitstocké ; une référenceArray(Int8)est toujours reconstruite avec la pleine précision de 8 bits.UIntused_dims— Facultatif. Nombre de dimensions initiales à lire, pour une recherche à dimension réduite (Matryoshka) sur unQBitavec stride. Cette valeur doit être un multiple du stride du QBit, sans dépasser sa dimension, et le vecteur de référence doit contenir au moins ce nombre d’éléments (tout élément supplémentaire en fin de tableau est ignoré). Seuls les groupes de stride couvrant ces dimensions sont lus.UInt
Float64. Float64
Exemples
Utilisation de base
Query
dotProductTransposed
scalarProductTransposed
Arguments
vectors— Vecteurs.QBit(T, UInt64[, UInt64])reference— Vecteur de référence.Array(T)p— Nombre de bits de chaque élément du vecteur à utiliser pour le calcul (de 1 à la largeur en bits de l’élément). Le niveau de quantification détermine le compromis entre précision et vitesse. Utiliser moins de bits accélère les opérations d’E/S et les calculs, au prix d’une précision réduite, tandis qu’utiliser davantage de bits améliore la précision au détriment des performances.UIntused_dims— Facultatif. Nombre de dimensions initiales à lire, pour une recherche à dimension réduite (Matryoshka) sur unQBitavec stride. Doit être un multiple du stride du QBit sans dépasser sa dimension, et le vecteur de référence doit contenir au moins ce nombre d’éléments (tous les éléments supplémentaires en fin de vecteur sont ignorés). Seuls les groupes de stride couvrant ces dimensions sont lus.UInt
Float64
Exemples
Utilisation de base
Query
Response
dotProductTransposedQuantized
QBit(Int8) de codes quantizeBFloat16ToInt8 (déquantifiés à la volée) et un vecteur de référence. Il s’agit d’une mesure de similarité : plus la valeur renvoyée est élevée, plus les vecteurs sont similaires. Un vecteur de référence (requête) Float est comparé directement à une précision Float32 — la précision de reconstruction des codes déquantifiés ; ainsi, une requête Float64 est ramenée à Float32, tandis qu’une requête BFloat16 y est élargie exactement (calcul de distance asymétrique). Une référence Array(Int8) est elle-même traitée comme des codes quantizeBFloat16ToInt8 et déquantifiée vers ses niveaux de reconstruction. Notez que p tronque uniquement les codes QBit stockés ; la référence Array(Int8) constitue une requête complète et est toujours reconstruite avec la pleine précision de 8 bits, de sorte qu’il ne s’agit d’une distance symétrique quantifié-contre-quantifié qu’à p = 8 (pour p < 8, seul le côté stocké est lu avec une précision plus grossière). Ce vecteur doit se trouver dans le même espace que celui des valeurs avant quantification (c’est-à-dire après la même rotation aléatoire et la même mise à l’échelle), ce qui relève de la responsabilité de l’appelant. La distance cosinus est invariante par changement d’échelle ; le produit scalaire et la distance L2 ne le sont pas.
Syntaxe
vectors— Vecteurs de codesquantizeBFloat16ToInt8.QBit(Int8, UInt64[, UInt64])reference— Vecteur de référence (requête) : un tableau deFloat(la requête, comparée avec une précisionFloat32— une requêteFloat64est convertie enFloat32), ou unArray(Int8)de codesquantizeBFloat16ToInt8déquantifiés à la volée.Array(Float32)ouArray(Int8)p— Nombre de bits de poids fort de chaque codeQBitstocké à utiliser (de 1 à 8). Utiliser moins de bits reconstruit un quantificateur embarqué plus grossier pour des E/S plus rapides, au prix d’une précision réduite ; 8 bits correspondent à une reconstruction en pleine précision.ptronque uniquement leQBitstocké ; une référenceArray(Int8)est toujours reconstruite avec la pleine précision de 8 bits.UIntused_dims— Facultatif. Nombre de dimensions initiales à lire, pour une recherche à dimension réduite (Matryoshka) sur unQBitavec stride. Doit être un multiple du stride du QBit sans dépasser sa dimension, et le vecteur de référence doit contenir au moins ce nombre d’éléments (tout élément supplémentaire en fin de vecteur est ignoré). Seuls les groupes de stride couvrant ces dimensions sont lus.UInt
Float64
Exemples
Utilisation de base
Query