← Últimos artigos
💬 NLP

CRINN: Contrastive Reinforcement Learning for Approximate Nearest Neighbor Search

Este artigo apresenta o CRINN, um novo paradigma que utiliza aprendizado por reforço contrastivo para gerar automaticamente algoritmos de busca de vizinho mais próximo aproximado de alto desempenho ao otimizar a velocidade de execução enquanto mantém a precisão, alcançando resultados de estado da arte em múltiplos benchmarks e demonstrando o potencial dos LLMs para automatizar a otimização algorítmica complexa.

Autores originais: Xiaoya Li, Albert Wang, Guoyin Wang, Chris Shum, Jiwei Li

Publicado 2026-07-14
📖 6 min de leitura🧠 Leitura aprofundada

Autores originais: Xiaoya Li, Albert Wang, Guoyin Wang, Chris Shum, Jiwei Li

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine que você tem uma biblioteca imensa com bilhões de livros e precisa encontrar aquele que mais se parece com uma frase específica que acabou de digitar. No mundo dos computadores, isso é chamado de "Busca de Vizinhos Próximos Aproximados" (ANNS - Approximate Nearest Neighbor Search). É o motor por trás de tecnologias legais, como chatbots de IA que lembram de suas conversas passadas ou robôs que encontram imagens semelhantes. Mas aqui está o problema: encontrar o livro perfeito em uma biblioteca de bilhões é lento. Se você verificar cada um dos livros, levará uma eternidade. Por isso, cientistas da computação construíram "atalhos inteligentes" para encontrar o livro certo rapidamente, trocando um pouco de precisão por enormes ganhos de velocidade.

Por anos, tornar esses atalhos mais rápidos foi um trabalho exclusivamente humano. É como ajustar o motor de um carro de corrida: um mecânico especialista precisa ouvir o motor, adivinhar qual peça está arrastando, ajustar um parafuso aqui, mudar uma marcha ali e, depois, testar novamente. Isso exige conhecimento profundo e muita paciência.

Apresentamos o CRINN, um novo sistema que faz uma grande pergunta: Podemos ensinar uma IA a ajustar o motor ela mesma?

O Mecânico Robô com um Superpoder

O CRINN é uma estrutura de "aprendizado por reforço". Pense nele como um mecânico robô que não apenas adivinha; ele aprende jogando um jogo. O jogo é simples: escrever um trecho de código para pesquisar na biblioteca, executá-lo e ver o quão rápido ele é.

  • A Recompensa: Se o código encontrar os livros rápido, o robô recebe uma pontuação alta.
  • A Lição: O robô compara seu novo código com o seu código antigo. Ele não olha apenas para a pontuação; ele observa por que um foi mais rápido. Ele pulou uma etapa? Organizou os livros melhor?
  • O Ciclo: O robô usa essa comparação para escrever uma versão ainda mais rápida na próxima vez. Ele continua fazendo isso, tornando-se mais inteligente e rápido a cada tentativa.

O artigo mostra que este mecânico robô é incrivelmente bom em seu trabalho. Quando testado em seis tipos diferentes de "bibliotecas" (datasets que variam de imagens de dígitos a embeddings de palavras), o CRINN conseguiu construir sistemas de busca que foram os mais rápidos do mundo para três deles (GIST-960, MNIST-784 e GloVe-25) e empatou em primeiro lugar em outros dois (SIFT-128 e GloVe-25).

Como Ele Aprendeu a Vencer

O ingrediente secreto chama-se Aprendizado por Reforço Contrastivo. Imagine que o robô recebe duas versões de um trecho de código: uma que roda em 1 segundo e outra que roda em 2 segundos. O robô é solicitado a explicar por que a primeira é mais rápida. Ele pode notar: "Ah, a rápida verifica três livros de uma vez, enquanto a lenta verifica um por um". Ao aprender esses padrões, o robô começa a escrever códigos que naturalmente incluem esses truques de aceleração.

Os pesquisadores não deixaram o robô adivinhar aleatoriamente. Eles deram a ele um objetivo específico: encontrar o melhor equilíbrio entre velocidade e precisão. Eles mediram o desempenho usando Queries Per Second (QPS) — quantas buscas o sistema pode fazer em um segundo — enquanto mantinham a precisão (chamada de recall) alta. Por exemplo, no dataset MNIST (dígitos manuscritos), o CRINN foi 85,25% mais rápido que o sistema anterior mais eficiente em um nível de precisão muito alto (0,999 de recall). Esse é um salto massivo!

A Surpresa do "Tamanho Único para Todos"

Aqui é onde fica realmente interessante. O robô foi treinado usando apenas um tipo de biblioteca: o dataset SIFT-128, que utiliza uma forma específica de medir distância chamada "distância Euclidiana" (como medir uma linha reta em um mapa). Você poderia pensar: "Se eu treinar um mecânico em um sedan, ele não saberá consertar uma motocicleta".

Mas o artigo descobriu que o treinamento do CRINN em distância Euclidiana funcionou surpreendentemente bem em datasets de "Distância Angular" (como os embeddings de palavras GloVe), que são matematicamente diferentes. Isso sugere que o robô aprendeu princípios gerais de velocidade que se aplicam mesmo quando as regras do jogo mudam ligeiramente. No entanto, o artigo observa um limite claro: ao ser testado no dataset NYTimes-256, o CRINN teve, na verdade, um desempenho 82,85% pior do que o melhor sistema existente. Isso nos diz que, embora o robô seja um gênio, ele não é mágico; ele ainda tem dificuldades com certos tipos de dados que são muito diferentes daqueles que aprendeu.

A Atualização Passo a Passo

Os pesquisadores não jogaram o robô contra todo o problema de uma só vez. Eles dividiram o processo de busca em três estágios, como atualizar um carro em fases:

  1. Construindo o Mapa (Construção do Grafo): É aqui que a biblioteca é organizada. O CRINN melhorou mais este estágio, aumentando a velocidade em uma média de 22,11%. Ele aprendeu a usar "busca adaptativa", o que significa que gasta mais esforço para encontrar o livro apenas quando é realmente necessário, e "múltiplos pontos de entrada", permitindo que comece a procurar por várias portas ao mesmo tempo.
  2. Pesquisando o Mapa (Busca): Uma vez construído o mapa, você precisa encontrar o livro. O CRINN melhorou isso em 18,30%, usando truques como "processamento em lote" (verificar grupos de livros juntos) e "terminação antecipada" (parar a busca assim que tiver certeza de que encontrou a melhor correspondência).
  3. Polindo o Resultado (Refinamento): A etapa final para garantir que a resposta seja perfeita. Isso deu um aumento menor, de 9,69%, porque havia menos espaço para melhoria nesta fase.

O Que Isso Significa

O artigo argumenta que o CRINN prova uma ideia poderosa: a IA pode automatizar tarefas complexas de nível especialista. Por décadas, tornar esses algoritmos de busca mais rápidos exigiu especialistas humanos com anos de treinamento. Agora, um sistema que aprende comparando seu próprio código pode fazer isso automaticamente.

Os autores são cuidadosos ao dizer que isso não é um problema resolvido para todos os datasets (como visto com o resultado do NYTimes), mas é um grande passo à frente. Eles sugerem que, à medida que as aplicações de IA como "Geração Aumentada por Recuperação" (onde a IA usa conhecimento externo para responder perguntas) se tornam mais populares, ferramentas como o CRINN serão essenciais para manter tudo funcionando rápido sem a necessidade de um humano para ajustar cada configuração.

Em resumo, o CRINN é um robô que aprendeu a ser um mestre mecânico para busca de dados, provando que, com o treinamento certo, as máquinas podem não apenas escrever código, mas também descobrir como fazê-lo rodar mais rápido do que os humanos jamais conseguiriam.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →