L1Distance
Introduzido em: v21.11.0 Calcula a distância entre dois pontos (os elementos dos vetores são as coordenadas) no espaçoL1 (norma 1 (distância da geometria do táxi)).
Sintaxe
distanceL1
Argumentos
Valor retornado
Retorna a distância L1. Para entradas Array, retorna Float32 se o menor supertipo comum dos tipos de elemento for Float32 ou BFloat16; caso contrário, Float64. Para entradas Tuple, o tipo de retorno segue o tipo de resultado aritmético das operações elemento a elemento (os tipos inteiros são preservados). (U)Int* ou Float*
Exemplos
Uso básico
Query
Response
L1Norm
Introduzido na versão: v21.11.0 Calcula a soma dos valores absolutos dos elementos de um vetor. SintaxenormL1
Argumentos
Valor retornado
Retorna a norma L1 ou a distância em geometria do táxi. UInt* ou Float* ou Decimal
Exemplos
Uso básico
Query
Response
L1Normalize
Introduzido em: v21.11.0 Calcula o vetor unitário de um dado vetor (os elementos da tupla ou do array são as coordenadas) no espaçoL1 (geometria do táxi).
Sintaxe
normalizeL1
Argumentos
Valor retornado
Retorna o vetor unitário. Para entradas Array, retorna Array(Float32) se o menor supertipo comum dos tipos de elemento for Float32 ou BFloat16; caso contrário, Array(Float64). Para entradas Tuple, sempre retorna Tuple(Float64). Tuple(Float64) ou Array(Float32) ou Array(Float64)
Exemplos
Uso básico
Query
Response
L2Distance
Introduzido em: v21.11.0 Calcula a distância entre dois pontos (os elementos dos vetores são as coordenadas) no espaço euclidiano (distância euclidiana). SintaxedistanceL2
Argumentos
Valor retornado
Retorna a distância de norma 2. Para entradas Array, retorna Float32 se o menor supertipo comum dos tipos de elemento for Float32 ou BFloat16; caso contrário, Float64. Para entradas Tuple, sempre retorna Float64. Float*
Exemplos
Uso básico
Query
Response
L2DistanceTransposed
Introduzido na: v25.10.0 Calcula a distância aproximada entre dois pontos (os valores dos vetores são as coordenadas) no espaço euclidiano (distância euclidiana). SintaxedistanceL2Transposed
Argumentos
vectors— Vetores.QBit(T, UInt64[, UInt64])reference— Vetor de referência.Array(T)p— Número de bits de cada elemento do vetor a ser usado no cálculo da distância (de 1 até a largura de bits do elemento). O nível de quantização controla o equilíbrio entre precisão e velocidade. Usar menos bits resulta em E/S e cálculos mais rápidos, com menor precisão, enquanto usar mais bits aumenta a precisão à custa do desempenho.UIntused_dims— Opcional. Número de dimensões iniciais a serem lidas, para uma busca de dimensão reduzida (Matryoshka) em umQBitcom stride. Deve ser um múltiplo do stride do QBit que não exceda sua dimensão, e o vetor de referência deve ter pelo menos esse número de elementos (quaisquer elementos extras no final são ignorados). Apenas os grupos de stride que abrangem essas dimensões são lidos.UInt
Float64. Float64
Exemplos
Uso básico
Query
Response
L2DistanceTransposedQuantized
Introduzido na: v26.7.0 Calcula a distância euclidiana aproximada entre umQBit(Int8) de códigos quantizeBFloat16ToInt8 (desquantizados em tempo de execução) e um vetor de referência. Um vetor de referência (consulta) Float é comparado diretamente com precisão Float32 — a precisão de reconstrução dos códigos desquantizados; assim, uma consulta Float64 é reduzida para Float32, enquanto uma consulta BFloat16 é ampliada para esse formato exatamente (cálculo de distância assimétrico); uma referência Array(Int8) é tratada como códigos quantizeBFloat16ToInt8 e desquantizada para seus níveis de reconstrução. Observe que p trunca apenas os códigos QBit armazenados; a referência Array(Int8) é, por si só, uma consulta completa e é sempre reconstruída com precisão total de 8 bits, portanto esta é uma distância simétrica entre quantizados apenas em p = 8 (para p < 8, apenas o lado armazenado é lido com precisão mais baixa). Ela deve estar no mesmo espaço em que os valores estavam antes da quantização (isto é, após a mesma rotação aleatória e o mesmo escalonamento), o que é responsabilidade de quem chama. A distância de cosseno é invariante à escala; o produto escalar e a distância L2 não são.
Sintaxe
vectors— Vetores de códigosquantizeBFloat16ToInt8.QBit(Int8, UInt64[, UInt64])reference— Vetor de referência (consulta): um array deFloat(a consulta, comparada com precisãoFloat32— uma consultaFloat64é reduzida paraFloat32) ou umArray(Int8)de códigosquantizeBFloat16ToInt8desquantizados em tempo de execução.Array(Float32)ouArray(Int8)p— Número dos bits mais altos de cada códigoQBitarmazenado a serem usados (de 1 a 8). Menos bits reconstroem um quantizador embutido mais grosseiro usando os centroides de média condicional gaussiana dos intervalos de prefixo Lloyd-Max existentes, para E/S mais rápida, com menor precisão; 8 bits correspondem à reconstrução com precisão total.ptrunca apenas oQBitarmazenado; uma referênciaArray(Int8)é sempre reconstruída com precisão total de 8 bits.UIntused_dims— Opcional. Número de dimensões iniciais a serem lidas, para uma busca de dimensão reduzida (Matryoshka) em umQBitcom stride. Deve ser um múltiplo do stride do QBit que não exceda sua dimensão, e o vetor de referência deve ter pelo menos essa quantidade de elementos (quaisquer elementos extras no final são ignorados). Apenas os grupos de stride que abrangem essas dimensões são lidos.UInt
Float64. Float64
Exemplos
Uso básico
Query
Response
L2Norm
Introduzido em: v21.11.0 Calcula a raiz quadrada da soma dos quadrados dos elementos de um vetor. SintaxenormL2
Argumentos
Valor retornado
Retorna a norma L2, ou a distância euclidiana. UInt* ou Float*
Exemplos
Uso básico
Query
Response
L2Normalize
Introduzido em: v21.11.0 Calcula o vetor unitário de um vetor fornecido (os elementos da tupla ou do array são as coordenadas) no espaço euclidiano (usando a distância euclidiana). SintaxenormalizeL2
Argumentos
Valor retornado
Retorna o vetor unitário. Para entradas Array, retorna Array(Float32) se o menor supertipo comum dos tipos de elemento for Float32 ou BFloat16; caso contrário, retorna Array(Float64). Para entradas Tuple, sempre retorna Tuple(Float64). Tuple(Float64) ou Array(Float32) ou Array(Float64)
Exemplos
Uso básico
Query
Response
L2SquaredDistance
Introduzido em: v22.7.0 Calcula a soma dos quadrados das diferenças entre os elementos correspondentes de dois vetores. SintaxedistanceL2Squared
Argumentos
Valor retornado
Retorna a soma dos quadrados das diferenças entre os elementos correspondentes de dois vetores. Para entradas Array, retorna Float32 se o menor supertipo comum dos tipos de elemento for Float32 ou BFloat16; caso contrário, retorna Float64. Para entradas Tuple, o tipo de retorno segue o tipo de resultado aritmético das operações elemento a elemento (os tipos inteiros são preservados). (U)Int* ou Float*
Exemplos
Uso básico
Query
Response
L2SquaredNorm
Introduzido em: v22.7.0 Calcula o quadrado da raiz quadrada da soma dos quadrados dos elementos do vetor (aL2Norm).
Sintaxe
normL2Squared
Argumentos
Valor retornado
Retorna o quadrado da norma L2. UInt* ou Float* ou Decimal
Exemplos
Uso básico
Query
Response
LinfDistance
Introduzido na versão: v21.11.0 Calcula a distância entre dois pontos (os elementos dos vetores são as coordenadas) no espaçoL_{inf} (norma máxima).
Sintaxe
distanceLinf
Argumentos
Valor retornado
Retorna a distância na norma infinita. Para entradas Array, retorna Float32 se o menor supertipo comum dos tipos de elemento for Float32 ou BFloat16; caso contrário, retorna Float64. Para entradas Tuple, sempre retorna Float64. Float*
Exemplos
Uso básico
Query
Response
LinfNorm
Introduzido em: v21.11.0 Calcula o máximo dos valores absolutos dos elementos de um vetor. SintaxenormLinf
Argumentos
Valor retornado
Retorna a norma Linf, ou seja, o maior valor absoluto. Float64
Exemplos
Uso básico
Query
Response
LinfNormalize
Introduzido em: v21.11.0 Calcula o vetor unitário de um determinado vetor (os elementos da tupla ou array são as coordenadas) no espaçoL_{inf} (usando a norma máxima).
Sintaxe
normalizeLinf
Argumentos
Valor retornado
Retorna o vetor unitário. Para entradas do tipo Array, retorna Array(Float32) se o menor supertipo comum dos tipos dos elementos for Float32 ou BFloat16; caso contrário, retorna Array(Float64). Para entradas do tipo Tuple, sempre retorna Tuple(Float64). Tuple(Float64) ou Array(Float32) ou Array(Float64)
Exemplos
Uso básico
Query
Response
LpDistance
Introduzido em: v21.11.0 Calcula a distância entre dois pontos (os elementos dos vetores são as coordenadas) no espaçoLp (distância da norma p).
Sintaxe
distanceLp
Argumentos
vector1— Primeiro vetor.Tuple(T)ouArray(T)vector2— Segundo vetor.Tuple(T)ouArray(T)p— A potência. Valores possíveis: número real em[1; inf).UInt*ouInt*ouFloat*
Array, retorna Float32 se o menor supertipo comum dos tipos de elemento for Float32 ou BFloat16; caso contrário, Float64. Para entradas Tuple, sempre retorna Float64. Float*
Exemplos
Uso básico
Query
Response
LpNorm
Introduzido em: v21.11.0 Calcula a norma p de um vetor, que é a raiz p-ésima da soma das p-ésimas potências dos valores absolutos de seus componentes. Casos especiais:- Quando p=1, é equivalente a L1Norm (distância de Manhattan).
- Quando p=2, é equivalente a L2Norm (distância euclidiana).
- O valor de
pdeve ser um número finito não inferior a um; para a norma máxima (o limite para p→∞), useLinfNorm.
normLp
Arguments
vector— Vetor ou tupla de valores numéricos.Tuple(T)ouArray(T)p— A potência. Os valores possíveis são números reais no intervalo[1; inf).UInt*ouInt*ouFloat*
Float64
Examples
Basic usage
Query
Response
LpNormalize
Introduzido em: v21.11.0 Calcula o vetor unitário de um dado vetor (os elementos da tupla ou do array são as coordenadas) no espaçoLp (usando a norma p).
Sintaxe
normalizeLp
Argumentos
vector— Uma tupla ou um array de valores numéricos.Tuple(T)ouArray(T)p— A potência. Os valores possíveis são números reais no intervalo[1; inf).UInt*ouInt*ouFloat*
Array, retorna Array(Float32) se o menor supertipo comum dos tipos dos elementos for Float32 ou BFloat16; caso contrário, retorna Array(Float64). Para entradas Tuple, sempre retorna Tuple(Float64). Tuple(Float64) ou Array(Float32) ou Array(Float64)
Exemplos
Exemplo de uso
Query
Response
cosineDistance
Introduzido em: v21.11.0 Calcula a distância de cosseno entre dois vetores (os elementos das tuplas são as coordenadas). Quanto menor for o valor retornado, mais semelhantes serão os vetores. SintaxedistanceCosine
Argumentos
Valor retornado
Retorna a distância de cosseno (um menos a similaridade de cosseno). Para entradas Array, retorna Float32 se o menor supertipo comum dos tipos dos elementos for Float32 ou BFloat16; caso contrário, Float64. Para entradas Tuple, sempre retorna Float64. Float*
Exemplos
Uso básico
Query
Response
cosineDistanceTransposed
Introduzido em: v26.1.0 Calcula a distância de cosseno aproximada entre dois pontos (os valores dos vetores são as coordenadas). Quanto menor o valor retornado, mais semelhantes são os vetores. SintaxedistanceCosineTransposed
Argumentos
vectors— Vetores.QBit(T, UInt64[, UInt64])reference— Vetor de referência.Array(T)p— Número de bits de cada elemento do vetor usados no cálculo da distância (de 1 até a largura de bits do elemento). O nível de quantização controla o equilíbrio entre precisão e velocidade. Usar menos bits resulta em E/S e cálculos mais rápidos, com menor precisão, enquanto usar mais bits aumenta a precisão ao custo do desempenho.UIntused_dims— Opcional. Número de dimensões iniciais a serem lidas, para uma busca de dimensão reduzida (Matryoshka) em umQBitcom stride. Deve ser um múltiplo do stride do QBit, sem exceder sua dimensão, e o vetor de referência deve ter pelo menos essa quantidade de elementos (quaisquer elementos adicionais no final são ignorados). Somente os grupos de stride que cobrem essas dimensões são lidos.UInt
Float64
Exemplos
Uso básico
Query
Response
cosineDistanceTransposedQuantized
Introduzido em: v26.7.0 Calcula a distância de cosseno aproximada entre umQBit(Int8) de códigos quantizeBFloat16ToInt8 (desquantizados em tempo de execução) e um vetor de referência. Quanto menor o valor retornado, mais semelhantes são os vetores. Um vetor de referência (consulta) Float é comparado diretamente com precisão Float32 — a precisão de reconstrução dos códigos desquantizados; assim, uma consulta Float64 é reduzida para Float32, enquanto uma consulta BFloat16 é ampliada exatamente para Float32 (cálculo de distância assimétrica). Já uma referência Array(Int8) é tratada como códigos quantizeBFloat16ToInt8 e desquantizada para seus níveis de reconstrução. Observe que p trunca apenas os códigos QBit armazenados; a referência Array(Int8) é, por si só, uma consulta completa e sempre é reconstruída com precisão total de 8 bits, portanto esta é uma distância simétrica entre quantizados somente em p = 8 (para p < 8, apenas o lado armazenado é lido com precisão mais baixa). Ela deve estar no mesmo espaço em que os valores estavam antes da quantização (isto é, após a mesma rotação aleatória e o mesmo escalonamento), o que é responsabilidade de quem faz a chamada. A distância de cosseno é invariante à escala; produto escalar e distância L2 não são.
Sintaxe
vectors— Vetores de códigosquantizeBFloat16ToInt8.QBit(Int8, UInt64[, UInt64])reference— Vetor de referência (consulta): um array deFloat(a consulta é comparada com precisãoFloat32— uma consultaFloat64é reduzida paraFloat32), ou umArray(Int8)de códigosquantizeBFloat16ToInt8desquantizados em tempo de execução.Array(Float32)ouArray(Int8)p— Número de bits mais altos de cada códigoQBitarmazenado a serem usados (de 1 a 8). Menos bits reconstroem um quantizador embutido mais grosseiro usando os centroides de média condicional gaussiana dos intervalos de prefixo Lloyd-Max existentes, para E/S mais rápida com menor precisão; 8 bits correspondem à reconstrução em precisão total.ptrunca apenas oQBitarmazenado; uma referênciaArray(Int8)é sempre reconstruída com precisão total de 8 bits.UIntused_dims— Opcional. Número de dimensões iniciais a serem lidas, para uma busca de dimensão reduzida (Matryoshka) em umQBitcom stride. Deve ser um múltiplo do stride do QBit, sem exceder sua dimensão, e o vetor de referência deve ter pelo menos essa quantidade de elementos (quaisquer elementos extras ao final são ignorados). Apenas os grupos de stride que cobrem essas dimensões são lidos.UInt
Float64. Float64
Exemplos
Uso básico
Query
Response
dotProductTransposed
Introduzido em: v26.7.0 Calcula o produto escalar aproximado (produto interno) de dois vetores (os valores dos vetores são as coordenadas). Ao contrário das funções de distância, esta é uma medida de similaridade: quanto maior o valor retornado, mais semelhantes são os vetores. SintaxescalarProductTransposed
Argumentos
vectors— Vetores.QBit(T, UInt64[, UInt64])reference— Vetor de referência.Array(T)p— Número de bits de cada elemento do vetor usados no cálculo (de 1 até a largura de bits do elemento). O nível de quantização controla o equilíbrio entre precisão e velocidade. Usar menos bits resulta em E/S e cálculos mais rápidos, com menor precisão, enquanto usar mais bits aumenta a precisão ao custo do desempenho.UIntused_dims— Opcional. Número de dimensões iniciais a serem lidas, para uma busca de dimensão reduzida (Matryoshka) em umQBitcom stride. Deve ser um múltiplo do stride do QBit que não exceda sua dimensão, e o vetor de referência deve ter pelo menos esse número de elementos (quaisquer elementos extras no final são ignorados). Somente os grupos de stride que abrangem essas dimensões são lidos.UInt
Float64. Float64
Exemplos
Uso básico
Query
Response
dotProductTransposedQuantized
Introduzido em: v26.7.0 Calcula o produto escalar aproximado (produto interno) entre umQBit(Int8) de códigos quantizeBFloat16ToInt8 (desquantizados em tempo de execução) e um vetor de referência. Esta é uma medida de similaridade: quanto maior o valor retornado, mais semelhantes são os vetores. Um vetor de referência Float (consulta) é comparado diretamente com precisão Float32 — a precisão de reconstrução dos códigos desquantizados —, de modo que uma consulta Float64 é reduzida para Float32, enquanto uma consulta BFloat16 é ampliada exatamente para esse formato (cálculo de distância assimétrico); uma referência Array(Int8) é tratada como códigos quantizeBFloat16ToInt8 e desquantizada para seus níveis de reconstrução. Observe que p trunca apenas os códigos QBit armazenados; a referência Array(Int8) é, por si só, uma consulta completa e sempre é reconstruída com precisão total de 8 bits, portanto esta é uma distância simétrica entre quantizados somente em p = 8 (para p < 8, apenas o lado armazenado é lido com precisão mais baixa). Ela deve estar no mesmo espaço em que os valores estavam antes da quantização (isto é, após a mesma rotação aleatória e o mesmo escalonamento), o que é responsabilidade do chamador. A distância de cosseno é invariante à escala; o produto escalar e a distância L2 não são.
Sintaxe
vectors— Vetores de códigosquantizeBFloat16ToInt8.QBit(Int8, UInt64[, UInt64])reference— Vetor de referência (consulta): um array deFloat(a consulta, comparada com precisãoFloat32— uma consultaFloat64é reduzida paraFloat32), ou umArray(Int8)de códigosquantizeBFloat16ToInt8desquantizados em tempo de execução.Array(Float32)ouArray(Int8)p— Número de bits mais altos de cada códigoQBitarmazenado a serem usados (de 1 a 8). Menos bits reconstroem um quantizador embutido mais grosseiro usando os centroides de média condicional gaussiana dos intervalos de prefixo Lloyd-Max existentes, para E/S mais rápida, com menor precisão; 8 bits correspondem à reconstrução com precisão total.ptrunca apenas oQBitarmazenado; uma referênciaArray(Int8)é sempre reconstruída com precisão total de 8 bits.UIntused_dims— Opcional. Número de dimensões iniciais a serem lidas, para uma busca de dimensão reduzida (Matryoshka) em umQBitcom stride. Deve ser um múltiplo do stride do QBit que não exceda sua dimensão, e o vetor de referência deve ter pelo menos esse número de elementos (quaisquer elementos extras no final são ignorados). Somente os grupos de stride que abrangem essas dimensões são lidos.UInt
Float64. Float64
Exemplos
Uso básico
Query
Response