LLMs
Se você não vive em Netuno, já ouviu falar sobre os modelos grandes de linguagem (LLMs) e suas capacidades fantásticas. É provável que você também já teve a oportunidade de ouvir sobre os riscos que eles representam para a humanidade, o planeta, o universo, a ciência, os empregos, as amebas e para tudo mais que algum profeta do apocalipse possa se lembrar. Parte desse alarde é pura propaganda, parte é ignorância mesmo. Criticam os LLMs porque eles são simulações (?), modelos lineares (cuma?), modelos estatísticos (!?!), feitos por gente que não sabe o que é linguagem, cognição, não leram Chomsky, blablablá… Enfim, no meio da histeria, a discussão real sobre as potencialidades desses modelos passa ao largo.
É evidente que as capacidades propagandeadas pelas Big Techs são um exagero. Mas essas constatações não respondem à questão central: qual é a capacidade real desses modelos? O problema dessa pergunta é que é difícil avaliar LLMs. Ainda não existem testes padronizados nem consenso sobre como avaliá-los. Mas, recentemente, um grupo de pesquisadores publicou um artigo com uma avaliação bem interessante. E os resultados são decepcionantes para os LLMs.
O Trabalho
O rápido avanço dos LLMs levou à superação do desempenho humano médio em várias tarefas complexas. Consequentemente, criar avaliações desafiadoras, de alta qualidade e realistas tornou-se uma tarefa mais difícil. Para resolver esse problema, um grupo de pesquisadores realizou um exame das capacidades dos LLMs na geração de código para resolver problemas autênticos de pesquisa científica. O artigo contou com a colaboração de cientistas e pesquisadores de IA e de 16 subcampos diversos das ciências naturais. Essa colaboração permitiu aos autores criar um benchmark de codificação com curadoria de cientistas conhecido como SciCode.
O que é SciCode?
SciCode é uma proposta de benchmark contendo problemas de geração de código extraídos de diversos campos das ciências naturais. Eles incluem matemática, física, química, biologia e ciência dos materiais. O SciCode contém 80 problemas principais, cada um decomposto em múltiplos subproblemas, totalizando 338.
Um problema principal é uma tarefa primária que precisa ser solucionada. Ele define o objetivo geral de uma pesquisa e orienta a direção do estudo. Cada problema fornece o histórico científico quando necessário, bem como instruções detalhadas. Para resolvê-lo, o modelo deve implementar várias funções Python – uma para cada subproblema – e, em seguida, integrá-las em uma solução completa. Os subproblemas se concentram em questões derivadas do problema principal. Eles decompõem o problema principal complexo em partes menores e mais gerenciáveis, permitindo uma investigação detalhada e sistemática. Para cada problema principal e subproblema, o SciCode fornece soluções padrão-ouro e múltiplos casos de teste.
Exemplo de problemas e subproblemas do SciCode.
Os critérios do SciCode
O SciCode visa superar os desafios das avaliações atuais de LLMs. Para tanto, ele se baseou nos seguintes critérios:
Foco intencional em áreas de ciências naturais.
Fornecimento de dados abundantes de alta qualidade que normalmente não são disponibilizados aos LLMs atuais. Isso permite uma avaliação mais robusta da capacidade de generalização dos modelos.
Fornecimento de dados com alta qualidade de anotação, com todos os problemas anotados, revisados e verificados por pelo menos dois pesquisadores seniores (nível de estudante de doutorado ou superior) em domínios científicos.
Exposição dos modelos a problemas realistas e atuais provenientes das tarefas diárias de cientistas.
Os problemas foram selecionados para ter sobreposição zero com conjuntos de dados disponíveis publicamente para evitar possíveis contaminações dos dados.
Problemas desenhados para testar as capacidades abrangentes dos LLMs. Para resolver o principal problema, um modelo precisa possuir um profundo conhecimento científico, fortes capacidades analíticas para decompor problemas complexos em problemas mais simples e a capacidade de integrar soluções parciais em completas.
Esse protocolo também inclui oportunidades para avaliar vários recursos dos modelos em configurações variadas, alternando opções.
O Experimento
Os modelos de LLMs foram avaliados usando prompts de disparo zero (zero shot). Também foram usados prompts gerais e design diferentes para informar o modelo sobre as tarefas. Os prompts foram mantidos iguais para os diferentes modelos testados e para as áreas do conhecimento usadas.
O artigo avaliou os seguintes LLMs:
- GPT-4o
- GPT-4-Turbo
- Claude3.5-Sonnet
- Claude3-Opus
- Claude3-Sonnet
- Gemini 1.5 Pro
- Llama-3-70B-Instruct
- Mixtral-8x22B-Instruct
- Deepseek-Coder-v2
- Qwen2-72B-Instruct
O desempenho dos LLMs
Os LLMs testados conseguiram resolver de 14% a 26% dos subproblemas. Entre eles, Claude3.5-Soneto teve o melhor desempenho, com uma taxa de acerto de 26%. No entanto, todos os modelos tiveram um desempenho muito pior na avaliação mais realista e desafiadora para os problemas principais. Claude3.5-Sonnet também teve o melhor desempenho neste cenário, mas com uma taxa de sucesso de apenas 4,6%. Portanto, apesar de todo alarde e propaganda, os LLMs estão muito longe de ter desempenhos excelentes. Mas isso não altera suas capacidades de serem excelentes ferramentas.