A eficácia irracional do BM25 para busca agêntica — Jo Kristian Bergum, Hornet.dev

AAI Engineer
Computing/SoftwareInternet Technology

Transcript

00:00:00É ótimo estar aqui. Eu sou o Jo Bergum. Sou o CEO da Hornet Dev e estou aqui hoje para falar sobre
00:00:19a eficácia irracional do BM25 para Busca Agêntica. Então, quantos de vocês já ouviram falar do
00:00:24BM25 antes? É algo novo ou...? Ah, bastante gente, excelente. Eu também estou acompanhando a Copa do Mundo.
00:00:32A Noruega está jogando contra a Costa do Marfim no segundo tempo. A Noruega está ganhando, o que é ótimo.
00:00:37Então, sim. Na Hornet, estamos construindo infraestrutura de recuperação para agentes, e eu tenho trabalhado
00:00:46com problemas de busca e recuperação há muito tempo. Como podem ver pelos meus cabelos brancos, eu trabalho
00:00:52nessa área há mais de 20 anos. Na palestra de hoje, falarei sobre o motivo pelo qual esse tipo
00:00:59de função de pontuação lexical de 30 anos atrás está voltando com tanta força. Primeiro, falarei um pouco
00:01:08sobre o que quero dizer com Busca Agêntica ou Recuperação Agêntica e definir isso para vocês.
00:01:14A minha definição é que a Busca Agêntica é essencialmente uma busca dentro do loop de um agente. Ou seja, você
00:01:22tem um agente tentando realizar uma tarefa, escrever um código, fazer uma pesquisa aprofundada
00:01:28ou qualquer outra tarefa, e dentro disso há uma necessidade de informação para o agente,
00:01:34para conseguir concluir essa tarefa com sucesso. E você precisa, essencialmente, de três coisas para
00:01:41construir um bom sistema de busca agêntica. Primeiro, um modelo capaz, um modelo que consiga
00:01:47usar ferramentas e formular consultas. Você também precisa de uma estrutura ao redor do modelo e de
00:01:55como expor as funções de busca e recuperação para ele. Existem diferentes
00:02:01maneiras de fazer isso. Pode ser por chamadas de ferramentas ou por modo de código. O Ido demonstrou aqui
00:02:08o que eu chamo de modo de código para expor a infraestrutura de recuperação. Essa é a parte da estrutura.
00:02:14E você também precisa de um mecanismo de recuperação para realizar buscas de forma eficiente, potencialmente em
00:02:23conjuntos de documentos na escala de bilhões. Para definir o BM25: BM25 significa “best match 25” (melhor correspondência 25).
00:02:33Havia pesquisadores fazendo vários experimentos, e o experimento número 25
00:02:38revelou-se o melhor. Essa é a história por trás do nome. É essencialmente uma função de pontuação.
00:02:44Imagine que você tem uma consulta e um documento, e calcula uma pontuação
00:02:50pela interação entre os termos da consulta e do documento, chegando a um resultado.
00:02:55E você espera que esse resultado seja uma boa aproximação da relevância do documento em relação
00:03:01à consulta. Uma maneira de calcular o BM25 seria pegar todos os documentos e pontuar cada um
00:03:08deles para descobrir quais são os “Top K” documentos. Há uns 30 ou 40 anos
00:03:14existe um interesse em acelerar esse tipo de recuperação Top K, com diversos algoritmos. Nós também investimos muito nisso.
00:03:22Vou mostrar algo nessa linha, mas o BM25 é a função de pontuação, e existe uma forma de acelerar a recuperação Top K.
00:03:30O BM25 não mudou. Continua sendo a mesma função de pontuação, mas a verdadeira mudança é que agora temos um usuário mais poderoso.
00:03:38O Edo falou sobre conhecimento geral. Os LLMs de hoje têm muito conhecimento geral. Eles conhecem entidades, empresas, datas, sabem de muita coisa.
00:03:50E ao usar esse conhecimento implícito embutido no modelo paramétrico, eles se tornam extremamente bons em buscar.
00:04:01Essa é a verdadeira mudança atual que está tornando o BM25 mais relevante.
00:04:09O BM25 costumava ser uma função de referência. Qualquer pesquisa de recuperação de informação incluía o BM25 como linha de base,
00:04:17e aí você aplicava algo avançado de redes neurais e comparava os resultados com o BM25.
00:04:24Acho interessante também como avaliávamos a busca antes, olhando apenas para 10 links azuis, analisando-os e calculando métricas.
00:04:34Muito disso está desaparecendo porque o agente é muito poderoso, conseguindo digitar muito mais consultas do que um humano.
00:04:45Portanto, faz menos sentido avaliar esses sistemas com base em uma única consulta.
00:04:53E este é um dos meus benchmarks favoritos por aí. Eu gosto de falar sobre benchmarks.
00:04:59O BrowseComp Plus é um benchmark de pesquisa aprofundada publicado num artigo no ano passado e tem quase, ou exatamente, 830 perguntas.
00:05:13Elas são tipo charadas. Pense nisso como um jogo de perguntas e respostas. Vocês têm trivia de bar nos EUA?
00:05:19Sim, legal. São perguntas do tipo charada, bem longas.
00:05:23E a estrutura ou o protocolo deste benchmark é que você tem um modelo,
00:05:31que recebe uma ferramenta de busca muito simples, aceita uma string de consulta e retorna trechos de texto ao modelo.
00:05:40O corpus tem cerca de 100 mil a 105 mil documentos, o que é pequeno, e são documentos da web.
00:05:47Quanto à precisão de ponta a ponta: todas essas perguntas têm uma resposta de referência perfeita, e você pode verificar se o modelo e o loop geram exatamente essa resposta.
00:06:02Mas por que precisamos de recuperação? Eu gosto de comparar janelas de contexto com disquetes, porque sou antigo, dos anos 80, sabe?
00:06:11Instalávamos esses jogos nos nossos computadores usando disquetes.
00:06:15Vocês são tão jovens que provavelmente não têm essa nostalgia, mas um disquete cabia cerca de 1,4 megabytes de dados.
00:06:26E os modelos atuais, antes de começarem a perder qualidade, aguentam, na minha opinião, cerca de 350.000 tokens.
00:06:34Ou seja, um disquete de dados, certo?
00:06:38Então você precisa de recuperação para buscar as informações que realmente precisa colocar na janela de contexto.
00:06:47E o BrowseComp+ demonstra claramente como a qualidade da recuperação afeta a precisão de ponta a ponta da tarefa.
00:06:57A precisão de ponta a ponta aqui significa basicamente: o modelo equipado com essa ferramenta de busca consegue responder à pergunta?
00:07:05A pergunta no estilo charada.
00:07:07E se você simplesmente colocar os documentos de evidência necessários para responder a essa pergunta
00:07:16diretamente na janela de contexto do modelo, a precisão é muito alta.
00:07:21Portanto, o raciocínio não é o gargalo.
00:07:23Recebendo as evidências de antemão, o modelo responde à pergunta com uma taxa de precisão altíssima, até mesmo o GPT-4.
00:07:33Mas se você expõe o modelo a essa estrutura com uma ferramenta de recuperação, a precisão cai,
00:07:39porque agora ela depende da estrutura, da capacidade do modelo de formular consultas
00:07:44e da qualidade do mecanismo de recuperação.
00:07:49Para mim, isso também é muito importante porque, mesmo se tivermos modelos perfeitos, modelos do tipo AGI,
00:07:57que não cometam erros,
00:08:00você ainda estará limitado a uma janela de contexto equivalente a um disquete, certo?
00:08:04Então você precisa decidir o que vai para essa janela de contexto.
00:08:07E acredito que a recuperação continua sendo muito relevante, como o slide anterior mostrou.
00:08:13E no conjunto de dados do BrowseComp Plus, uma dessas perguntas em formato de charada vira uma trajetória de busca.
00:08:20Porque o modelo executa a consulta, recebe uma resposta, lê, reformula a consulta
00:08:27e continua até preencher a janela de contexto ou encontrar a resposta, o que vier primeiro.
00:08:36E dedicamos um tempo para investigar essas trajetórias,
00:08:44para ver como o GPT-5 está formulando as consultas.
00:08:49E descobrimos muitos aspectos interessantes com isso.
00:08:52Também descrevemos isso em um post recente no blog.
00:08:55Você pode encontrar em hornet.dev.
00:08:57E gostamos de comparar isso com um registro de consultas da AOL.
00:09:02A AOL era um serviço antigo que tinha uma interface de busca.
00:09:08E eles acidentalmente publicaram uma amostra enorme do que as pessoas buscavam na web.
00:09:17Eram buscas bem curtas.
00:09:19E eu vi registros de consultas mais recentes também.
00:09:22E o padrão dos usuários humanos ainda é buscar usando apenas poucas palavras.
00:09:27O GPT-5, por outro lado, é um usuário muito mais poderoso.
00:09:31Ele possui conhecimento geral.
00:09:32E consegue, de repente, escrever consultas extremamente longas.
00:09:35Ele consegue usar muitos operadores sintáticos úteis que aprendeu...
00:09:40Aprendeu com buscas na web, operador site, frases exatas, etc.
00:09:45E este é um novo tipo de carga de trabalho.
00:09:52E sobre o BM25: ele tem basicamente dois hiperparâmetros
00:09:57que controlam vários aspectos da função de pontuação.
00:10:01E eu mencionei ter uma linha de base.
00:10:04O BM25 costumava ser essa linha de base.
00:10:06E o BrowseComp Plus também tem uma linha de base com o BM25.
00:10:10Acontece que essa linha de base é terrível.
00:10:14Quando você analisa técnicas mais sofisticadas, modelos de embedding ou o que seja,
00:10:20elas se destacam como paradigmas de recuperação muito melhores que o BM25, se você olhar o artigo original.
00:10:26Mas pesquisas recentes mostram que os parâmetros usados no artigo de pesquisa
00:10:33do BrowseComp Plus não eram adequados para lidar com documentos longos assim.
00:10:37Por isso eu pergunto: a qual BM25 você se refere?
00:10:40Pois isso tem um impacto enorme na precisão geral naquele benchmark específico.
00:10:50E por que o BM25 é mais poderoso agora com esse novo usuário?
00:10:56Mencionei o conhecimento geral do usuário e que ele pode digitar mais rápido
00:11:00e é mais específico por ser um usuário mais avançado.
00:11:02E a correspondência exata continua relevante, certo?
00:11:06Porque o modelo conhece nomes, entidades, CEPs, códigos de produtos, enfim.
00:11:12Isso não é fácil de representar com um modelo de embedding, que codifica
00:11:17todos os tokens em um vocabulário fixo.
00:11:21Também é relativamente barato, principalmente considerando o custo de inferência dos embeddings,
00:11:27certo? Alguns desses modelos de embedding têm cerca de 8 bilhões de parâmetros e você codifica o texto,
00:11:32precisa manter uma infraestrutura para isso e tudo mais.
00:11:36É bastante simples e as ferramentas no ecossistema geral são muito boas.
00:11:43Está prontamente disponível.
00:11:45E é muito fácil para o modelo inspecionar os resultados e entender o motivo pelo qual uma consulta
00:11:51retornou aquele resultado específico, entende?
00:11:54Porque você está correspondendo a termos literais, frases e coisas do tipo,
00:11:58o que pode ajudá-lo a reformular as buscas.
00:12:03Então esses são os três pontos principais.
00:12:06E agora, passando para tópicos mais em alta sobre "o que é tudo de que você precisa".
00:12:11E esta é uma pesquisa recente de Waterloo, do grupo do Jimmy Lin de lá.
00:12:17Eles estão fazendo um ótimo trabalho na pesquisa de recuperação de informação e busca agêntica.
00:12:23Eles publicaram um artigo recente que eu adoro.
00:12:26Ele se chama "Scaling Direct Corpus Interaction via Dynamic Workspace Expansion".
00:12:32Vou dedicar um tempo para explicar isso melhor.
00:12:34Imagine que você queira criar uma infraestrutura de busca web para agentes.
00:12:39Muitas empresas estão fazendo isso no momento.
00:12:41Também estamos trabalhando com algumas dessas empresas para ajudá-las a construir infraestrutura para esse
00:12:47tipo de caso de uso.
00:12:48E aí você tem, potencialmente, bilhões de documentos, certo?
00:12:53Portanto, isso não cabe na janela de contexto.
00:12:55Então, obviamente, você precisa de recuperação.
00:12:57E o BM25 é uma boa linha de base.
00:12:59Assim, você consegue recuperar informações por meio dele.
00:13:03E o resultado é que você pode imaginar isso como uma página de resultados de busca, uma SERP, para agentes.
00:13:15Porque você pode colocar esses documentos recuperados pelo sistema de busca em um espaço de trabalho.
00:13:20E se organizar esse espaço de trabalho como um sistema de arquivos, pode aproveitar os mesmos conceitos usados com habilidades.
00:13:29Você pode ter divulgação progressiva, pois pode pegar o documento, como o título do documento,
00:13:35e um pequeno trecho dele, e expor isso ao modelo.
00:13:39O modelo pode então decidir: "Ah, preciso ler mais deste documento".
00:13:43E, ao fazer isso, pode usar todas as ferramentas primitivas que ele domina muito bem.
00:13:48Todos vocês usam agentes de codificação.
00:13:49Então todos veem o grep, rip grep, sed, awk e tudo mais que ele usa para gerenciar o contexto.
00:13:55Assim, você obtém o melhor dos dois mundos.
00:13:58E também consegue combinar infraestrutura de sandbox, de recuperação, VFS, bash e o que mais for.
00:14:05Então é algo bem empolgante, né?
00:14:06Porque combina todos esses novos tipos de paradigmas que estão surgindo no momento.
00:14:11Por isso estou muito animado com esse tipo de direção.
00:14:14E também não deixa de ser um atalho, né?
00:14:16Para otimizar aquilo em que os modelos são bons atualmente, certo?
00:14:19Pois todas as principais empresas de LLM estão otimizando seus modelos para código, bash e uso de ferramentas.
00:14:27Então, se você alinhar sua tarefa ponta a ponta a essa trajetória,
00:14:31quando surgir um novo modelo, você sabe que ele também será melhor nisso, né?
00:14:37Pode ser que, quando atingirmos a AGI, eles simplesmente usem o navegador, veremos.
00:14:41Mas, atualmente, essa é uma maneira muito poderosa de construir infraestrutura de busca e toda uma experiência agêntica.
00:14:53E quando o assunto é avaliação, né?
00:14:55Eu também mencionei isso antes.
00:14:57Na recuperação de informação tradicional, estávamos acostumados a ter apenas uma consulta, uma lista ranqueada, calcular o nDCG e comparar.
00:15:07Isso já não é tão relevante quando o novo usuário é um agente, porque esse agente pode reformular buscas,
00:15:12fazer mais consultas, realizar expansões e fazer todo tipo de coisa diferente, né?
00:15:17Portanto, grande parte da avaliação clássica de recuperação de informação ficou ultrapassada.
00:15:23Em vez disso, observe se o modelo consegue realizar a tarefa proposta e, por exemplo,
00:15:30na resposta a perguntas, se ele acerta a resposta.
00:15:35E nós, na Hornet, estamos apostando no BM25 como uma das primitivas, e definimos a visão
00:15:42de ter a melhor e mais eficiente maneira de avaliar o BM25, porque acho que ele é uma primitiva
00:15:51fundamental e muito forte. Esta ilustração compara alguns motores anonimizados com a Hornet,
00:15:59no mesmo tipo de hardware, com documentos web, 100 milhões de documentos web, em um único nó.
00:16:07E, como vocês podem ver, a Hornet tem uma implementação muito mais eficiente do que os outros motores,
00:16:13podendo entregar mais vazão pelo mesmo custo, o que, para muitas empresas que estão construindo
00:16:19infraestrutura no momento para busca web, etc., significa uma grande economia.
00:16:24O que é o eixo Y?
00:16:26O eixo Y é QPS, desculpe.
00:16:32O eixo Y é... ah, desculpe, o eixo Y é latência, me perdoe.
00:16:40Então, quatro conclusões principais desta palestra: temos um novo usuário, que é mais poderoso, digita mais rápido, lê mais rápido, consegue reformular buscas e tem muito conhecimento geral, o que torna ferramentas simples como o grep e o BM25 ainda mais poderosas.
00:17:03Essa é a primeira. A segunda: a qual BM25 você se refere?
00:17:07Existem diferenças de implementação, desempenho e parâmetros, então pense nisso.
00:17:14E também, por que ele é eficaz para a busca agêntica? Simplesmente porque é explicável para o modelo, permitindo que ele entenda e o use em combinação com o grep, já que você trabalha com correspondências literais, e o grep também é voltado para isso.
00:17:27E a combinação desses dois forma um paradigma muito forte de busca e recuperação agêntica.
00:17:39Há muitas referências. Acho que vou publicar a palestra, ou a palestra e os slides serão publicados.
00:17:47E, se você odiou, pode mandar um tweet para mim.
00:17:55Não há... me disseram que não teremos tempo para perguntas, mas fico feliz em conversar sobre recuperação. Vocês me encontram pelo evento; provavelmente, a melhor forma de falar comigo é pelo meu perfil no X.
00:18:08E é isso.
00:18:25Nos vemos na próxima.

Description

BM25 stands for Best Match 25, and the number is not a version. A group of researchers ran a long series of scoring experiments decades ago, the twenty fifth one worked best, and the name simply stuck. Jo Kristian Bergum has spent more than twenty years on search and retrieval, and his claim is that this thirty year old lexical function is making a comeback without having changed at all. What changed is the user. A model already knows entities, companies, dates, postal codes and product identifiers, so it can write queries that are far longer and far more specific than anything a person would type, and it can fire off a dozen in a row. The old AOL query logs showed people searching in two or three words, and human query logs still look about the same today. An agent is a fundamentally more powerful user of a dumb tool. The sharpest evidence comes from a deep research benchmark of 830 riddle like questions over roughly one hundred thousand web documents. Stuff the answer bearing documents directly into the context window and accuracy is high, even for older models, which means reasoning was never the bottleneck. Hand the same model a search tool instead and accuracy drops, because now it depends on query formulation and on the retriever. Bergum compares a context window to a floppy disc, about 1.4 megabytes then and roughly 350,000 tokens now before quality degrades, so something still has to decide what goes in. He closes on a pattern he likes: dump retrieved documents into a file system workspace and let the model use grep and the other primitives it is already trained on. Speaker info: - https://x.com/jobergum - https://www.linkedin.com/in/jo-bergum - https://hornet.dev/ Timestamps: 0:00 - A thirty year old scoring function makes a comeback 2:19 - Best Match 25, and where the name came from 3:37 - The function did not change, the user did 4:57 - A benchmark of 830 riddles 6:01 - Context windows are floppy discs 7:05 - Reasoning is not the bottleneck 8:37 - How a model formulates queries 9:44 - Which BM25 do you mean? 12:06 - Retrieved documents as a file system 14:42 - Classical evaluation is dead 16:32 - Four claims to take away

Community Posts

No posts yet. Be the first to write about this video!

Write about this video