4 pontos por GN⁺ 2024-05-15 | 2 comentários | Compartilhar no WhatsApp
  • needle-in-a-needlestack é uma página pública que reúne em um só lugar textos e códigos de experimentos relacionados a GPT-4o, Llama, Jamba, Sonnet e Gemini
  • O projeto vem acompanhado de um repositório de código, permitindo conferir diretamente os materiais do experimento Needle in a Needlestack
  • Os textos por modelo comparam resultados como os do Llama 3.1 8B e do Jamba 1.5, com foco em processamento de contexto longo e diferenças de escalabilidade
  • GPT-4o-mini é apresentado como um caso comparável ao GPT-4 Turbo, mas com preço 98,5% menor; o Sonnet 3.5 é apresentado como um caso melhor que o Sonnet 3.0 no NIAN
  • A própria página é open source, e é possível participar da edição da documentação pelo link “Improve this page” no GitHub

Links relacionados ao Needle in a Needlestack

Textos comparativos por modelo

Documentação open source

  • Este site é open source
  • Pelo link Improve this page, é possível editar a página no GitHub

2 comentários

 
wedding 2024-05-18

Os avanços tecnológicos são realmente impressionantes... T_T

 
GN⁺ 2024-05-15
Comentários do Hacker News
  • Este teste foi baseado no dataset de limeriques publicado em 2021: https://zenodo.org/records/5722527
    Acho muito provável que o GPT-4o tenha sido treinado com esses dados. Não haveria motivo para não incluí-los. Fico me perguntando por que a equipe do NIAN não gera limeriques com vários modelos e verifica se os resultados não estão no dataset. Assim daria para descartar a possibilidade de os modelos terem sido treinados com esses limeriques

    • Testaram se os LLMs conseguem responder às perguntas sem receber os limeriques. Exceto o 4o, o desempenho neste benchmark é muito ruim, então não acho que o teste seja invalidado por causa da inclusão nos dados de treinamento
    • Não daria para simplesmente criar texto totalmente aleatório e pedir para encontrá-lo lá dentro?
    • O NIAN é uma ideia muito legal, mas por que não fazer as perguntas após traduzir para N idiomas diferentes? Poderia até misturar DeepL, Google Translate e tradução pelo próprio LLM
  • Comparei dois pequenos documentos jurídicos, e ele alucinou completamente que havia uma cláusula em um e ausente no outro. Fez isso em três trechos diferentes dos contratos
    Verifiquei com ctrl-f e ela estava presente igualmente nos dois lados. É só uma amostra, mas esse número de 90% não parece muito plausível. No total, eram cerca de 80 mil tokens

    • Tive uma impressão parecida. Pedi para encontrar duplicatas em uma lista de 6 mil itens e ele praticamente alucinou a resposta inteira várias vezes. Às vezes encontra algumas duplicatas reais, mas no meio mistura itens alucinados
      Eu não esperava uma resposta correta, porque me parece uma tarefa difícil com um número fixo de attention heads, mas mesmo assim pareceu muito pior que Claude Opus ou GPT-4
    • Isso não é encontrar uma agulha no palheiro
      LLMs fazem esse trabalho melhor se você dividir os dois documentos em trechos menores e processá-los repetidamente por trecho. Eles não têm capacidade de raciocínio ou memória para analisar estruturalmente dois blocos de texto além de pedaços relativamente pequenos. Em compensação, funcionam muito bem quando você vai percorrendo progressivamente pequenos trechos semanticamente independentes e relevantes
      É um erro presumir que são máquinas mágicas. Elas têm limites e capacidades, e como qualquer outra ferramenta, é preciso entender o que conseguem e o que não conseguem fazer, e de preferência por quê. Isso ainda é um avanço bastante novo para 99,9% dos desenvolvedores, mas não entendo por que as expectativas continuam praticamente infinitas. Tecnologias anteriores costumavam receber um padrão mais razoável do tipo “ok, vamos descobrir como usar isso direito”. Talvez seja porque falam como gente e acabam parecendo ter capacidades que não têm, ou porque soam parecidas demais com humanos e então são criticadas por não serem humanas. Há exagero e subestimação ao mesmo tempo. Até XML passou por um ciclo parecido de hype, em que parecia que ia acabar com a fome no mundo
    • Esse é um teste diferente de needle-in-a-needlestack, mas mostra bem o quanto os modelos são frágeis. Em algumas áreas são competentes, em outras são desastrosamente ruins
      needle-in-a-needlestack, ao contrário de needle-in-a-haystack, trata de encontrar um dado específico em meio a dados parecidos entre si. Por exemplo, encontrar um entre milhares de limeriques
    • Fiz a mesma experiência com regulamentações locais e peguei o GPT alucinando multas e taxas. É um problema real
    • Interessante, mas pelo menos oficialmente a janela de contexto do GPT-4o é de 128k
  • O teste needle-in-a-haystack mostra de forma muito limitada a real capacidade do modelo de lidar com contexto longo. Ele foi usado principalmente porque os primeiros modelos eram péssimos nessa tarefa e era fácil de testar
    Na prática, a maioria dos modelos mais recentes vai bastante bem nessa tarefa específica, mas a capacidade de fazer coisas complexas de verdade além de 32K tokens cai bastante. O RULER é um teste muito melhor: https://github.com/hsiehjackson/RULER

    Apesar de atingirem desempenho quase perfeito no teste básico needle-in-a-haystack (NIAH), todos os modelos (exceto Gemini-1.5-pro) mostram grande degradação de desempenho nas tarefas do RULER à medida que o comprimento da sequência aumenta
    Embora todos os modelos afirmem ter tamanho de contexto acima de 32k tokens (exceto Llama3), apenas metade supera o desempenho em 4K do Llama2-7b (85,6%), usado como referência qualitativa, conseguindo assim lidar efetivamente com sequências de 32K. Os desempenhos acima da referência estão sublinhados

    • Pode ser, mas primeiro este texto trata de uma variação própria do teste, não do NIHS, então talvez seja mais relevante. Segundo, a principal tese do texto é que o GPT-4o se sai melhor, e o teste que você mencionou não avaliou o GPT-4o
    • Os modelos avaliados pelo RULER têm desempenho pior em needle-in-a-needlestack. Fico curioso para saber como o 4o se sairia no RULER
  • Também queria ver isso com o Gemini Pro 1.5. Na semana passada tentei colocar Moby Dick inteiro e, em outra ocasião, todos os livros publicados por Byung Chul-Han; em ambos os casos, ele sempre encontrou literalmente trechos que mencionavam ou respondiam à minha pergunta, sem alucinações

    • Várias pessoas do laboratório estão pesquisando avaliação de contexto longo de LLMs em obras de ficção. É muito provável que Moby Dick esteja nos dados de treino. Por isso, o pessoal do laboratório vem explorando livros publicados recentemente para evitar esse tipo de problema
      Dá para consultar o BooookScore apresentado na ICLR na semana passada (https://openreview.net/forum?id=7Ttk3RzDeu) e o preprint recente FABLES (https://arxiv.org/abs/2404.01261)
    • Esse conteúdo provavelmente não está no conjunto de treino? Seria interessante fazer a mesma coisa com uma coleção de livros publicados depois do último release do modelo
    • Coloquei no Gemini 1.5 Flash os 2500 exemplos linkados no post, e ele acertou a resposta correta, “The tree has diseased leaves and its bark is peeling.”: https://aistudio.google.com/
    • Tenho acesso a esse modelo e já vi uma extração de contexto impressionante. Joguei uma codebase grande inteira nele e ele também resumiu muito bem
      Também vi alguém analisando um arquivo de log gigantesco, mas para identificar o ponto em que o modelo começa a deixar passar coisas, algo como esse needle-in-a-needlestack é realmente necessário. Pelo menos os desenvolvedores do modelo podem usar isso para analisar modelos candidatos
    • Daqui a uns 2 a 5 anos, provavelmente vai dar para colocar um ePub e obter em poucos minutos uma versão em graphic novel precisa. Estou pronto para ver 4 mil ilustrações de árvores ao estilo Tolkien
  • Alguém deveria criar um teste de “síntese no haystack” que avalie não só busca, mas também profundidade de compreensão, conexão e abstração entre várias informações
    Quando uma pessoa lê um livro, ela forma uma “intuição geral” sobre ele. Precisamos de uma forma de quantificar isso. Testes de needle-in-a-haystack parecem simples demais e dão a sensação de que não vão longe o suficiente

    • Dá para imaginar algo no estilo Agatha Christie de descobrir o culpado. Você coloca várias reviravoltas e álibis, e corta o final da obra de modo que o suspeito mais provável mude
    • Também daria para fazer com as agulhas formando um grafo, e o prompt perguntando tarefas baseadas em grafo
    • Tenho a ideia de comprar um romance ou roteiro inédito com uma construção de mundo detalhada e internamente consistente, além de personagens com motivações bem elaboradas, e então pedir que ele continue escrevendo um novo enredo a partir de um ponto aleatório depois da metade, conectando dois personagens que ainda não se encontraram
      Se ele entende o contexto, deveria conseguir escrever a nova parte da história e desenvolver os arcos dos personagens usando motivações que o leitor percebe intuitivamente. Mas, para isso ser útil, seria preciso manter tudo rigorosamente privado, então isso só serviria mais como benchmark privado. Ou talvez pudesse virar um prêmio de prestígio, avaliado pela confiabilidade das conclusões em si, em vez de pela divulgação da metodologia para melhorar a área
    • Pensei em algo parecido. Uma parte da pergunta daria informação suficiente para o LLM encontrar o limerique, e a segunda parte perguntaria algo que exigisse uma compreensão mais profunda desse limerique ou de outro texto
    • Compreensão não existe, então isso não dá
      O GPT-4o ainda não consegue lidar com a interseção entre duas ideias diferentes que não estejam no conjunto de treino. Nem sequer consegue criar variações aleatórias sobre a interseção entre duas ideias diferentes. Indo além, nem deveríamos esperar que o modelo faça esse tipo de coisa. Isso não faz justiça ao modelo, à utilidade real dele e às coisas surpreendentes que ele consegue fazer sem compreensão. Acreditar que o modelo entende é enganar a si mesmo
  • Agora dá para usar GPT para transformar dados dinâmicos brutos em um layout HTML bonito na hora. Isso pode economizar bastante tempo de desenvolvimento em páginas como changelogs ou logs de auditoria com pouco tráfego, além de manter o HTML atualizado mesmo quando a estrutura dos dados muda
    Nas tentativas anteriores, o GPT-4-Turbo às vezes ignorava quase completamente o contexto e as instruções, então não funcionava de forma consistente

  • Este post mostra o quanto a capacidade do GPT-4o de prestar atenção ao contexto em toda a janela de entrada melhorou em relação ao GPT-4 Turbo e Claude-3 Sonnet
    Já fazia tempo que needle-in-a-haystack precisava de uma evolução, e este “Needle In A Needlestack” é um bom próximo passo. O NIAN cria um prompt contendo milhares de limeriques e faz perguntas sobre um limerique em uma posição específica

    • Concordo. Paguei pelo Claude por um tempo. Eles falavam muito em suporte a contexto grande, e usar contexto grande consumia uma quantidade enorme de tokens, mas se o código-fonte estivesse no contexto, mesmo que fosse só de poucas páginas antes, ele ficava quase inútil
      Em todo o resto era ok, e eu até gostava da vibe, o que tornava isso ainda mais frustrante. Ontem à noite testei o 4o e ele ainda reconhecia perfeitamente uma classe C++ que eu tinha colado 20 perguntas antes. Não me importa se é inteligente; importa se é útil, e isso contribui muito para a utilidade
  • Estou cada vez mais convencido de que ninguém na internet pública sabe fazer uma avaliação de LLM de verdade

    • Ainda assim, já é um alívio termos finalmente passado da fase das avaliações de LLM que todo mundo fazia em 2022~2023, tipo “quem foi o 29º presidente dos EUA?” ou “desenhe no estilo de Van Gogh”
  • Para esse teste ter significado, precisamos saber que os dados do conjunto de teste não estão incluídos nos dados de treino

    • Se você fizer a pergunta sem fornecer antes o limerique, ele nunca acerta a resposta. Quando LLMs erram, normalmente voltam aos dados de treino e dão uma resposta genérica que não corresponde ao limerique
    • Não necessariamente. Basta comparar o desempenho do modelo antes e depois de fazer upload do material
    • Eu achei que os limeriques de teste fossem gerados automaticamente
  • Parece ótimo. O maior problema do GPT-4.0 era a queda de qualidade conforme a conversa ficava longa, e isso era especialmente importante em projetos de programação
    Agora quero saber se isso melhorou. Vou testar hoje

    • Até agora, essa também foi a minha experiência. As conversas atuais ficaram absurdamente mais longas do que as antigas conversas com GPT-4. Antes, eu precisava copiar o contexto com frequência e recomeçar em um chat novo
    • Tive a mesma experiência. Em prompts de 16k, o Turbo era quase perfeito, mas em 32k já ficava ruim, e acima de 100k era inutilizável. Para obter bons resultados com prompts longos, era preciso repetir as informações