Pular para o conteúdo

Arquitetura real · Sênior

Google ScaNN

Arquitetura real em produção. Pontos centrais: quantização anisotrópica e recall vs latência.

17 min de leitura · Fonte: Google · Conteúdo revisado em 23 de outubro de 2026

Resposta curta

Arquitetura real em produção. Pontos centrais: quantização anisotrópica e recall vs latência. Este caso parte de um post da Google Research, de julho de 2020, que apresenta o ScaNN, uma biblioteca de busca por similaridade de vetores, e o artigo "Accelerating Large-Scale Inference with Anisotropic Vector Quantization", que descreve a técnica de compressão por trás dela.

01 · CONTEXTO

Quando buscar por significado

Este caso parte de um post da Google Research, de julho de 2020, que apresenta o ScaNN, uma biblioteca de busca por similaridade de vetores, e o artigo "Accelerating Large-Scale Inference with Anisotropic Vector Quantization", que descreve a técnica de compressão por trás dela.

A busca por embeddings serve a consultas que dependem de significado e não de campos fáceis de indexar. Modelos de ML transformam textos e imagens em vetores de alta dimensão em que entradas parecidas ficam próximas, e esse é o ponto de partida dos sistemas de busca por vetores.

No modelo de duas torres, uma rede neural mapeia a consulta e outra mapeia os itens do banco para o mesmo espaço. Para responder, o sistema mapeia a consulta e então procura, entre todos os embeddings do banco, os mais próximos.

  1. A aplicação envia a consulta, por exemplo um texto, à API de busca.

    Diagrama da arquitetura: Busca por embeddings com índice aproximado (visão didática)
    CLAplicação clienteconsulta
    NWAPI de busca
    CPTorre de consulta
    CPÍndice de vetores (ScaNN)
    CPTorre de itens
    DBEmbeddings do banco
    CPConstrução do índice
  2. A API passa a consulta à torre de consulta, que a mapeia para o espaço de embeddings.

    Diagrama da arquitetura: Busca por embeddings com índice aproximado (visão didática)
    CLAplicação cliente
    NWAPI de busca
    CPTorre de consultaembedding da consulta
    CPÍndice de vetores (ScaNN)
    CPTorre de itens
    DBEmbeddings do banco
    CPConstrução do índice
  3. A torre de itens mapeia os itens do banco para o mesmo espaço, e os vetores resultantes ficam guardados.

    Diagrama da arquitetura: Busca por embeddings com índice aproximado (visão didática)
    CLAplicação cliente
    NWAPI de busca
    CPTorre de consulta
    CPÍndice de vetores (ScaNN)
    CPTorre de itensembeddings dos itens
    DBEmbeddings do bancovetores do banco
    CPConstrução do índice
  4. O índice recebe o embedding da consulta e procura, entre os embeddings do banco, os mais próximos.

    Diagrama da arquitetura: Busca por embeddings com índice aproximado (visão didática)
    CLAplicação cliente
    NWAPI de busca
    CPTorre de consulta
    CPÍndice de vetores (ScaNN)procura os mais próximos
    CPTorre de itens
    DBEmbeddings do banco
    CPConstrução do índice

02 · O PROBLEMA

Achar vizinhos em escala

Uma forma comum de medir a semelhança entre consulta e itens é o produto interno, e a busca do vizinho mais próximo nesse critério é chamada de maximum inner-product search, ou MIPS. O conjunto de embeddings costuma ser grande demais para busca exaustiva, e a alta dimensionalidade dificulta podar candidatos.

Com bancos de milhões ou bilhões de itens, a MIPS costuma ser o gargalo de velocidade da inferência e a busca exaustiva é impraticável. Isso leva a algoritmos aproximados, que trocam um pouco de acurácia por um ganho grande de velocidade sobre a força bruta.

03 · COMPRESSÃO

Quantização que mira a MIPS

Várias soluções de ponta para MIPS comprimem os itens do banco para calcular uma aproximação do produto interno em uma fração do tempo da força bruta. Na quantização aprendida, um codebook de vetores é treinado a partir do banco e usado para representar aproximadamente seus elementos.

Esquemas anteriores quantizavam para minimizar a distância média entre cada vetor e sua forma quantizada. O post observa que isso não equivale a otimizar a acurácia da busca, e que codificações com distância média maior podem dar acurácia de MIPS superior.

A razão é a direção do erro. O erro paralelo ao vetor é mais prejudicial porque afeta desproporcionalmente os produtos internos altos, os que a MIPS quer estimar bem. Por isso a técnica, chamada de quantização anisotrópica, penaliza mais esse erro e aceita errar mais nos produtos internos baixos.

CritérioQuantização tradicionalQuantização anisotrópica
Objetivo da perdaMinimizar a distância média entre o vetor e sua forma quantizadaPenalizar mais o erro paralelo ao vetor original
Relação com a acurácia da buscaMinimizar essa distância não equivale a otimizar a acuráciaDistância média maior pode dar acurácia de MIPS superior
  1. Os vetores do banco alimentam o treino de um codebook, o conjunto de vetores usado para representá-los de forma aproximada.

    Diagrama da arquitetura: Compressão de vetores com perda anisotrópica (visão didática)
    DBVetores do banco
    CPTreino do codebooktreina o codebook
    CPQuantizador
    CPÍndice comprimido
    CLEmbedding da consulta
    CPEstimador de produto interno
    CPSeleção dos melhores
  2. A perda usada no treino penaliza mais o erro paralelo ao vetor original.

    Diagrama da arquitetura: Compressão de vetores com perda anisotrópica (visão didática)
    DBVetores do banco
    CPTreino do codebookperda anisotrópica
    CPQuantizador
    CPÍndice comprimido
    CLEmbedding da consulta
    CPEstimador de produto interno
    CPSeleção dos melhores
  3. O quantizador representa cada vetor do banco por um centro do codebook, e o índice comprimido mantém essas representações.

    Diagrama da arquitetura: Compressão de vetores com perda anisotrópica (visão didática)
    DBVetores do banco
    CPTreino do codebook
    CPQuantizadorusa o codebook
    CPÍndice comprimidovetores comprimidos
    CLEmbedding da consulta
    CPEstimador de produto interno
    CPSeleção dos melhores
  4. Na consulta, o estimador calcula produtos internos aproximados sobre as representações comprimidas, em uma fração do tempo da força bruta.

    Diagrama da arquitetura: Compressão de vetores com perda anisotrópica (visão didática)
    DBVetores do banco
    CPTreino do codebook
    CPQuantizador
    CPÍndice comprimido
    CLEmbedding da consulta
    CPEstimador de produto internoproduto interno aproximado
    CPSeleção dos melhores
  5. As estimativas alimentam a seleção dos melhores itens; a quantização anisotrópica melhora justamente a estimativa dos produtos internos com chance de estar entre os melhores.

    Diagrama da arquitetura: Compressão de vetores com perda anisotrópica (visão didática)
    DBVetores do banco
    CPTreino do codebook
    CPQuantizador
    CPÍndice comprimido
    CLEmbedding da consulta
    CPEstimador de produto interno
    CPSeleção dos melhoresitens de maior produto interno

04 · RESULTADO

Velocidade contra acurácia

O post mede o resultado em um benchmark do ann-benchmarks, o glove-100-angular: o ScaNN superou onze outras bibliotecas de busca por similaridade de vetores, atendendo cerca do dobro de consultas por segundo, para uma dada acurácia, que a segunda mais rápida.

A acurácia é medida por recall@k, uma métrica comum de acurácia da busca de vizinhos mais próximos. O post mostra o ScaNN com desempenho superior de forma consistente em vários pontos do compromisso entre velocidade e acurácia.

05 · LIÇÕES

O que levar para a entrevista

Os autores veem a quantização anisotrópica como um exemplo de ganho obtido ao otimizar o algoritmo para o objetivo final, a acurácia da busca, e não para uma meta intermediária como a distorção de compressão.

Em um desenho de busca vetorial, vale dizer qual recall o produto exige, qual velocidade ele precisa e como a compressão dos vetores muda esse compromisso. Escolher a métrica de erro da compressão em função da tarefa de busca é a lição central deste caso.

Perguntas frequentes

O que é Google ScaNN?

Arquitetura real em produção. Pontos centrais: quantização anisotrópica e recall vs latência.

O que o design de Google ScaNN cobre?

Ele está organizado nestas seções: Quando buscar por significado, Achar vizinhos em escala, Quantização que mira a MIPS, Velocidade contra acurácia e O que levar para a entrevista.

Quanto tempo leva Google ScaNN e qual é o nível?

Leva cerca de 17 minutos para ler e tem nível Sênior.

Agora projete você mesmo

Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.