- Este é um resumo para leitores que querem acompanhar rapidamente o vídeo aprofundado de 3h31 sobre LLMs de Andrej Karpathy e entender de uma vez como eles funcionam, os termos de fine-tuning, prompts, alucinações e até o DeepSeek-R1
- LLMs são treinados para prever o próximo token dentro de uma janela de contexto, depois de transformar grandes volumes de texto da web em tokens por meio de limpeza e tokenização; contextos mais longos incorporam mais informação, mas aumentam o custo computacional
- Um base model pré-treinado é mais parecido com um autocompletador probabilístico que continua texto no estilo da internet; para virar um assistente conversacional, ele precisa de pós-treinamento como SFT e alinhamento
- Para reduzir alucinações, o modelo deve recusar perguntas que não sabe responder ou consultar informações atuais via uso de ferramentas e RAG; em problemas de matemática e lógica, geração passo a passo e ferramentas externas funcionam melhor
- O aprendizado por reforço faz o modelo tentar várias respostas e aprender com as soluções bem-sucedidas, mas no RLHF o modelo de recompensa é apenas uma aproximação das preferências humanas, então ainda há risco de sobre-otimização e exploração do próprio modelo de recompensa
Leitores que este resumo busca atender
- "Deep dive into LLMs like ChatGPT", de Andrej Karpathy, é um vídeo de 3h31; este é um TL;DR para quem quer captar os pontos principais sem investir todo esse tempo
- É especialmente indicado para leitores que:
- querem entender como os LLMs realmente funcionam, e não só de forma superficial
- querem compreender termos de fine-tuning como
chat_template e ChatML
- querem melhorar o prompt engineering entendendo por que prompts funcionam bem ou falham
- querem reduzir as alucinações dos LLMs
- querem entender por que o DeepSeek-R1 está chamando tanta atenção
- Os diagramas em Excalidraw usados no vídeo podem ser baixados por este link de download, hospedado separadamente em um CDN
Dados de pré-treinamento e tokenização
- LLMs criam grandes conjuntos de dados de texto a partir de rastreamento da internet, mas os dados brutos contêm muito conteúdo duplicado, texto de baixa qualidade e informação irrelevante, então é preciso aplicar filtragem pesada antes do treinamento
- No caso de um modelo apenas em inglês, são necessárias heurísticas para manter apenas textos com alta probabilidade de estarem em inglês
- O conjunto de dados de exemplo FineWeb inclui mais de 1,2 bilhão de páginas da web
- O texto limpo não entra no modelo em sua forma original; ele é convertido em tokens, IDs que representam padrões recorrentes
- Uma técnica representativa é o Byte Pair Encoding (BPE)
- O GPT-4 usa 100.277 tokens, e a quantidade de tokens depende da decisão de quem cria o modelo
- É possível visualizar o processo de tokenização com o Tiktokenizer
Entradas, saídas e funcionamento interno da rede neural
- Os dados tokenizados são inseridos na rede neural, e o modelo prevê o próximo token dentro de uma janela de contexto definida
- Alguns modelos usam 8.000 tokens, enquanto o GPT-4 vai até 128k de contexto
- O modelo prevê o próximo token com base em padrões aprendidos e ajusta seus pesos para reduzir erros via backpropagation
- Uma janela de contexto maior permite refletir mais conteúdo da entrada, mas aumenta o custo computacional
- Dentro do modelo, dezenas de bilhões de parâmetros interagem com os tokens de entrada para gerar uma distribuição de probabilidade do próximo token
- Esse processo é definido por equações matemáticas complexas otimizadas para eficiência
- A arquitetura é projetada para equilibrar velocidade, precisão e paralelização
- Um exemplo de arquitetura de LLM em nível de produção pode ser visto em bbycroft.net/llm
- A inferência de um LLM não é determinística, e sim probabilística
- Mesmo executando o mesmo modelo, a saída pode variar um pouco
- Na maioria dos casos, ele gera texto novo seguindo padrões parecidos com os dos dados de treinamento, mas em alguns casos pode coincidir exatamente com trechos do treinamento
- Essa aleatoriedade é fonte de criatividade, mas também pode levar a alucinações, produzindo informação errada
GPT-2 e a mudança no custo de treinamento
- O GPT-2, publicado pela OpenAI em 2019, é um exemplo de LLM inicial baseado em Transformer
-
1,6 bilhão de parâmetros
-
Contexto de 1024 tokens
- treinado com cerca de 100 bilhões de tokens
- custo original de treinamento de US$ 40 mil
- desde então, a eficiência melhorou muito
- Andrej Karpathy reproduziu o GPT-2 por US$ 672 usando llm.c
- com um pipeline otimizado, o custo de treinamento pode cair ainda mais, para cerca de US$ 100
- a queda de custo vem de dados mais limpos e ambientes de execução melhores
- com melhores técnicas de extração de dados de pré-treinamento, o dataset é refinado e o modelo aprende mais rápido
- hardware mais forte e software mais otimizado reduzem a quantidade de computação necessária para obter o mesmo resultado
Open base model e os limites do base model
- O termo open base model aqui não significa um modelo que segue estritamente a definição de IA open source da OSI, mas sim um modelo com pesos abertos, embora os dados de treinamento e a reprodutibilidade completa possam não estar disponíveis
- O GPT-2 da OpenAI é um modelo open-weight e source-available, mas não é totalmente open source segundo a definição da OSI porque os dados de treinamento não foram publicados
- O Llama 3.1 405B da Meta é um modelo open-weight, mas não um modelo open source
- Um base model é um modelo de linguagem bruto pré-treinado e, para uso prático, precisa de fine-tuning ou alinhamento
- Ele é treinado com dados em escala de internet e pouco filtrados, gerando completamentos brutos
- Falta alinhamento com a intenção humana
- Para publicar um base model, normalmente são necessárias duas coisas
- As características de funcionamento de um base model são as seguintes
- gera texto no estilo da internet, token por token
- a saída muda um pouco a cada execução
- pode reproduzir literalmente partes dos dados de treinamento
- os parâmetros podem ser vistos como um arquivo zip com compressão com perda do conhecimento da internet
- pode ser usado para tradução com exemplos in-context ou como assistente básico baseado em prompts estruturados
- É possível testar diretamente o Llama 3 405B base model e, no essencial, um base model se parece mais com um autocompletador caro
Do pré-treinamento ao pós-treinamento
- Um base model é apenas um gerador de texto pré-treinado; para criar um assistente de verdade, é preciso fazer pós-treinamento
- Ele consegue gerar texto, mas nem sempre produz respostas úteis e também apresenta muitas alucinações
- O pós-treinamento é o processo de fazer fine-tuning para que o modelo responda melhor
- Enquanto o pré-treinamento pode levar meses, o pós-treinamento é muito mais barato e pode terminar em poucas horas
Fine-tuning supervisionado e dados de conversa
- Após o pré-treinamento, o modelo passa por pós-treinamento com dados de conversas entre humano e assistente, em vez de datasets da internet, para se tornar mais conversacional e útil
- o algoritmo do modelo permanece o mesmo, e os parâmetros existentes são ajustados por fine-tuning
- os primeiros datasets de pós-treinamento eram selecionados manualmente, mas modelos como UltraChat conseguem gerar conversas sintéticas
- Usa-se um chat template para ensinar a estrutura da conversa
- Um exemplo de template é o seguinte
<|im_start|>system<|im_sep|>You are a helpful assistant<|im_end|>
<|im_start|>user<|im_sep|>What is 4 + 4?<|im_end|>
<|im_start|>assistant<|im_sep|>4 + 4 = 8<|im_end|>
<|im_start|>, <|im_end|> são tokens especiais que ajudam a estruturar a conversa
- o modelo não viu esses novos tokens durante o pré-treinamento; eles são introduzidos no pós-treinamento
- o artigo InstructGPT da OpenAI trata do fine-tuning de LLMs para conversa
- Um exemplo de dataset de pós-treinamento é o OASST1, e datasets sintéticos podem ser visualizados no Nomic Atlas
Alucinações, uso de ferramentas e memória
- Um dos principais problemas dos LLMs é a alucinação, quando geram informações erradas ou inventadas com confiança
- no pós-treinamento, o modelo pode aprender que deve sempre responder
- mesmo quando a pergunta não faz sentido, ele tenta produzir uma resposta em vez de dizer “não sei”
- O artigo do Llama 3 da Meta usa o seguinte procedimento para melhorar factualidade
- extrai parte dos dados de treinamento
- usa o Llama 3 para gerar perguntas factuais sobre esses dados
- faz o Llama 3 gerar respostas
- compara as respostas com os dados originais e as avalia
- quando a resposta está errada, treina o modelo para reconhecer o erro e recusá-la
- Uma forma de reduzir alucinações é treinar o modelo para usar ferramentas quando não souber a resposta
<|im_start|>user<|im_sep|>Who is Orson Kovacs?<|im_end|>
<|im_start|>assistant<|im_sep|><SEARCH_START>Who is Orson Kovacs?<SEARCH_END><|im_end|>
[...search results...]
<|im_start|>assistant<|im_sep|>Orson Kovacs is ....<|im_end|>
- Com treinamento repetido, o modelo aprende a pesquisar em vez de inventar informações que não conhece
- Os parâmetros do modelo armazenam uma memória difusa, como uma lembrança vaga de algo que aconteceu há um mês, enquanto os tokens de contexto funcionam como memória de trabalho, contendo informação atual
- O RAG funciona bem porque, quando o modelo tem acesso direto a documentos relevantes, precisa adivinhar menos
Autoconsciência do modelo e tokens de raciocínio
- Se você perguntar “quem é você?” a um base model sem tuning, ele pode alucinar
- mesmo que não tenha sido criado pela OpenAI, ele pode responder que foi, porque nos dados da internet modelos de IA e OpenAI aparecem frequentemente associados
- Há duas formas de corrigir isso
- Sem treinamento específico, o LLM não tem conhecimento real sobre si mesmo e recorre a respostas genéricas de IA
- Como LLMs não raciocinam como humanos e apenas geram tokens sequencialmente, eles precisam de geração estruturada para “pensar” de forma adequada
- pular direto para a resposta pode ser mais próximo de um palpite
- desenvolver a solução passo a passo tende a ser mais confiável
- como o número de camadas do modelo é finito, um único token não pode receber processamento infinito; dividir o problema em etapas menores aumenta a chance de chegar à resposta certa
- Em tarefas de matemática e lógica, é melhor fazer o modelo usar ferramentas externas do que depender apenas do raciocínio interno do modelo
Aprendizado por reforço e DeepSeek
- Um modelo pré-treinado pode ter conhecimento, mas ainda não saber usá-lo de forma eficaz
- o fine-tuning supervisionado ensina a imitar respostas humanas
- o aprendizado por reforço ensina a encontrar soluções melhores por tentativa e erro
- Um exemplo de procedimento de aprendizado por reforço é o seguinte
- gerar 15 respostas para o mesmo problema
- se apenas 4 estiverem corretas, escolher as melhores respostas corretas e curtas
- treinar com essas respostas escolhidas e repetir esse processo muitas vezes
- Nesse processo, humanos não entram diretamente; o modelo gera muitas respostas para o mesmo problema e aprende com as que chegam à resposta correta
- Pré-treinamento e pós-treinamento são bem definidos, mas o processo de aprendizado por reforço ainda é objeto de pesquisa intensa
- empresas como a OpenAI também pesquisam bastante, mas há partes não divulgadas
- o artigo da DeepSeek trata publicamente de RL e FT para LLMs e explica como extrair capacidade de raciocínio
- Nos exemplos do artigo da DeepSeek, com o tempo o modelo passa a usar mais tokens para melhorar seu raciocínio
- o chamado momento “aha” é algo difícil de ensinar explicitamente apenas com aprendizado de dataset; é o tipo de coisa que o modelo precisa descobrir sozinho via aprendizado por reforço
- a vantagem é melhorar o raciocínio; a desvantagem é consumir mais tokens
AlphaGo e o potencial do aprendizado por reforço
- No estudo que dominou o Go, o aprendizado por reforço permite que o modelo vá além de imitar humanos e encontre estratégias próprias por tentativa e erro
- A jogada 37 da partida do AlphaGo foi apresentada como uma jogada que não existia nos dados de treinamento, mas sim como uma estratégia criada pelo modelo para vencer
- os pesquisadores estimaram que a probabilidade de um humano fazer essa jogada era de 1 em 10.000
- O aprendizado por reforço ainda tem muitas áreas inexploradas, e a pesquisa continua avançando
- Se um LLM concluir que a melhor forma de expressar pensamentos e ideias é por meio de sua própria linguagem, ele pode até criar uma linguagem própria
Domínios não verificáveis e RLHF
- Em domínios verificáveis, é mais fácil tirar humanos do loop de aprendizado por reforço, e o LLM pode atuar quase como juiz do próprio desempenho
- Em domínios não verificáveis, como criar piadas ou resumir textos, é preciso manter humanos no loop
- para um prompt como
Write a joke about pelicans, é difícil avaliar automaticamente a qualidade da piada
- o LLM pode gerar piadas, mas é difícil julgar sua qualidade em larga escala
- Como também é difícil colocar humanos em grande escala, entra em cena a abordagem tratada no artigo de RLHF
- O RLHF treina um modelo de recompensa separado para avaliar a qualidade das respostas em larga escala
- humanos classificam respostas por ordem de preferência
- com essas avaliações, o modelo de recompensa é treinado até um nível desejado
- depois disso, o modelo de recompensa passa a avaliar em larga escala a qualidade das respostas do LLM
Vantagens e limites do RLHF
- As vantagens do RLHF incluem
- viabilizar aprendizado por reforço mesmo em domínios não verificáveis, como criação de piadas e resumos
- muitas vezes melhorar o modelo, reduzindo alucinações e tornando as respostas mais humanas
- explorar o discriminator-generator gap, em que avaliar é mais fácil para humanos do que gerar
- por exemplo: é mais fácil escolher qual dos 5 poemas é melhor do que “escrever um poema”
- Os limites do RLHF também são claros
- o modelo de recompensa não é um humano real, mas uma simulação de preferências humanas
- o aprendizado por reforço pode gerar exemplos adversariais que exploram as fraquezas do modelo de recompensa
- por exemplo, após 1.000 atualizações, “a melhor piada sobre pelicanos” pode acabar virando algo sem sentido como
the the the the the the the the
- Esse tipo de problema é conhecido como Adversarial Machine Learning
- Como há infinitas formas de explorar o sistema, filtrar respostas ruins não é algo simples
- Para evitar sobre-otimização e degradação de desempenho, o treinamento do modelo de recompensa é limitado a algumas centenas de iterações
Direções futuras dos LLMs
- No futuro, os LLMs podem se expandir em várias direções
- capacidades multimodais: entender e gerar não só texto, mas também imagem, áudio e vídeo
- modelos baseados em agentes: ir além de tarefas isoladas rumo a memória de longo prazo, raciocínio e correção de erros
- IA cotidiana e invisível: integração natural aos fluxos de trabalho
- IA que usa o computador: não apenas gerar texto, mas interagir com software e executar ações
- aprendizado em tempo de teste: adaptação em tempo real para aumentar a precisão no momento do uso
Onde acompanhar e experimentar LLMs
- Recursos para acompanhar a evolução dos LLMs
- LM Arena: benchmark de novos modelos de linguagem
- AI News: newsletter sobre pesquisa em IA
- X (Twitter): muitos pesquisadores compartilham atualizações por lá
- Lugares para experimentar diferentes LLMs
- Proprietary Models: OpenAI GPT-4, Google Gemini, Anthropic Claude etc.
- Open-Weight Models: DeepSeek, Meta Llama etc., disponíveis em Together.ai
- Execução local: use Ollama ou LM Studio
- Base Models: podem ser explorados no Hyperbolic
Ainda não há comentários.