Leandro von Werra
đ€ SpeakerAppearances Over Time
Podcast Appearances
TambĂ©m no Vale do SilĂcio, todo mundo que quer treinar modelos atualmente estĂĄ dependendo desses modelos chineses, porque se o seu negĂłcio nĂŁo Ă© ser um laboratĂłrio de fronteira, mas talvez vocĂȘ queira fazer um modelo para uma aplicação especĂfica, vocĂȘ quer treinar ou fazer o fine tuning do melhor modelo que existe para o seu caso de uso especĂfico,
Que pode ser em ciĂȘncia, por exemplo, com startups que tambĂ©m querem trabalhar com ciĂȘncia de materiais, ou que querem construir um modelo que seja muito bom para responder perguntas relacionadas Ă saĂșde, por exemplo. EntĂŁo, o que vocĂȘ quer fazer? VocĂȘ quer pegar o melhor modelo disponĂvel para fazer o fine tuning nele, porque ele Ă© disponĂvel e estĂĄ bom para fazer aquele assunto. E os Ășnicos modelos com os quais vocĂȘ pode fazer isso sĂŁo os modelos abertos.
E não teve muitos modelos ocidentais que realmente estão nessa linha de frente, né? Eu acho que o Nemotron é um bom esforço. Tem a AI2 que estå fazendo os modelos OMO, que são um pouco menores. Mas, de um jeito geral, eu acho que tem uma demanda enorme por modelos abertos.
Sim, com certeza. EntĂŁo, essa iniciativa do Small LM, como vocĂȘ chama a iniciativa, tudo começou um pouco como um projeto pequeno, como eu falei antes, geralmente a gente começa as coisas com pequenos experimentos e vĂȘ um pouco para onde as coisas apontam. Inicialmente, a gente começou experimentando com dados sintĂ©ticos. Isso foi por volta da Ă©poca em que os modelos PHY da Microsoft foram lançados e tinha aquele paper, textbook, is all you need, esqueci o nome exato, mas essencialmente mostrando que
Se vocĂȘ treinar o seu modelo com pequenos conjuntos de dados sintĂ©ticos, que meio que simulam livros didĂĄticos, entĂŁo vocĂȘ consegue ter um modelo muito bom. E a gente pensou, isso Ă© uma coisa interessante de experimentar. A gente pode meio que reproduzir os experimentos aqui, serĂĄ que dĂĄ?
e basicamente era uma equipe de duas pessoas nesse momento, era a Ludna, com quem eu trabalhei em modelos de cĂłdigo, e o Anton, que trabalharam juntos e construĂram esse conjunto de dados sintĂ©ticos, que foi o primeiro Cosmopedia, o que jĂĄ era bem desafiador por si sĂł, o primeiro conjunto de dados em grande escala, totalmente sintĂ©tico, que a gente construiu, e a gente precisava descobrir como fazer isso, em primeiro lugar, e entĂŁo a gente treinou um modelo pequeno, que era o Cosmo,
EntĂŁo, Cosmopedia era um conjunto de dados e o Cosmo era o modelo. E aĂ, Ă medida que a gente continuou experimentando, acabou que, se vocĂȘ quiser construir um modelo realmente bom, provavelmente faz sentido misturar um pouco de dados reais tambĂ©m, nĂ©? NĂŁo faz sentido ser uma coisa sĂł puramente sintĂ©tica. EntĂŁo, num certo ponto, a gente pensou, talvez a gente pode tentar sĂł construir o melhor modelo pequeno que seja possĂvel de fazer, ponto final, ao invĂ©s de sĂł fazer o melhor modelo em dados sintĂ©ticos.
E a gente começou a fazer umas ablaçÔes e descobrir qual era o tipo de conjunto de dados que a gente ia usar. Em paralelo, tinha esse esforço também do Guilherme Wantenec, que trabalhou no FineWeb, que é um conjunto de dados de pé treinamento em escala da web. Então foi uma boa combinação dos dois. Meio que a gente tinha o treinamento de modelos pequenos funcionando bem,
e tinha alguĂ©m que construiu um conjunto de dados de coisa da web que era realmente bom, entĂŁo a gente experimentou um pouco de como treinar, de fato, o melhor modelo. A gente pegou o FineWeb, alĂ©m de adicionar os outros pequenos de conjunto de dados ali, para experimentar um pouco a mistura, e a gente lançou, inicialmente, o SmallLM1. Quando foi isso? Quando foi isso? Acho que um ano e meio atrĂĄs, provavelmente. Sim, quase dois anos. 2024, eu fui ver a pĂĄgina. Ă.
O tempo voa. EntĂŁo, a gente continuou um pouco nesse espĂrito, tinha uma receita razoĂĄvel, eu diria. EntĂŁo, a gente dobrou a aposta e tentou descobrir como a gente poderia melhorar tudo. A gente construiu o Small LM2, que foi uma iteração principalmente do conjunto de dados e tambĂ©m dos experimentos na arquitetura.
E aĂ, o Small Element 3 Ă© meio que um modelo um pouco maior. EntĂŁo, o 2, eu acho que tinha um modelo de 100 milhĂ”es, um de 300 milhĂ”es e um de 1 bilhĂŁo, 1 bilhĂŁo de parĂąmetros. E o 3 era um modelo de 3 bilhĂ”es de parĂąmetros. EntĂŁo, a gente pegou tudo que a gente aprendeu do 2, iterou mais um pouco no conjunto de dados e rodou mais umas ablaçÔes. A gente colocou tambĂ©m um pouco mais de foco em como que a gente poderia tornar esses modelos realmente bons em tarefas de contexto um pouco mais longo.
EntĂŁo veio o 3, que a gente fez o 3, que Ă© o modelo de 3 bilhĂ”es, e na Ă©poca em que a gente lançou, ele estava meio que no estado da AT, da fronteira de parede. EntĂŁo, se vocĂȘ olhar para diferentes tamanhos de modelo, para o tamanho dele, ele era basicamente o melhor modelo que existia. NĂŁo, foi fantĂĄstico. A gente estava realmente usando, testando para os nossos modelos, usando como um benchmark tambĂ©m, entĂŁo parabĂ©ns por isso.
Sim, eu acho que de fato o TRL começou hå muito tempo, na verdade esse foi originalmente um projeto que eu fiz também para entrar em NLP. Foi logo antes da gente começar a trabalhar no livro e eu tentei implementar um paper da OpenAI que fazia aprendizado por reforço com modelos de linguagem, então era mais um projeto paralelo que foi revivido quando o ChatGPT apareceu e as pessoas ficaram super interessadas em como é que isso funcionava.
Quando se trata das coisas que mais importam, eu acho que quando eu converso com as pessoas que estĂŁo começando a entrar na ĂĄrea, eu acho que a coisa com a qual elas ficam mais animadas sĂŁo as tĂ©cnicas de aprendizado por reforço, porque eu acho que intelectualmente sĂŁo as mais interessantes, tentar descobrir como que vocĂȘ pode
aprender da forma mais eficaz, eficiente, a partir de sinais de recompensa, mas o que a gente descobriu Ă© que, normalmente, vocĂȘ jĂĄ consegue muito resultado a partir da fase de SFT. EntĂŁo, normalmente, as nossas receitas tambĂ©m tĂȘm jĂĄ uma espĂ©cie de estrutura em pirĂąmide, a gente gasta muito esforço primeiro em SFT, e eu acho que, normalmente, vocĂȘ jĂĄ consegue, nĂŁo sei, 75%, 80% do desempenho sĂł se vocĂȘ curar um conjunto de dados em SFT de altĂssima qualidade, e Ă© intelectualmente muito simples.
vocĂȘ sĂł continua meio que o paradigma de prĂ©-treinamento. VocĂȘ sĂł faz previsĂŁo do prĂłximo token e tem a perda de previsĂŁo do prĂłximo token, mas isso jĂĄ te leva muito longe. A prĂłxima coisa que normalmente a gente faz Ă© o DPO, que fica meio que no meio entre aprendizado por reforço e SFT, onde vocĂȘ usa uma loss mais contrastiva. VocĂȘ tem amostras pareadas com exemplos bons e ruins, e isso ajuda o modelo a distinguir entre isso aqui que eu tenho que fazer, isso aqui eu nĂŁo posso fazer,
que nĂŁo Ă© um tipo de sinal que vocĂȘ obtĂ©m sĂł com SFT. No SFT, por conta da forma como essa perda Ă© configurada, vocĂȘ sĂł aprende, tĂĄ, Ă© assim que eu tenho que fazer as coisas. Mas o modelo nunca discrimina, tipo, ah, esse foi um exemplo ruim, talvez eu tenha que evitar esse tipo de cenĂĄrio. O DPO te dĂĄ isso.
EntĂŁo, o GPRO, que normalmente a gente usa no final porque funciona relativamente bem, te dĂĄ meio que a cereja do bolo e pode deixar o seu modelo realmente bom em aplicaçÔes especĂficas, especialmente aquelas que vocĂȘ consegue verificar
Por exemplo, matemĂĄtica, programação, vocĂȘ pode aumentar um pouco o desempenho, mas as pessoas normalmente subestimam o quanto vocĂȘ pode avançar sĂł fazendo a curadoria, ajustando hiperparĂąmetros de um jeito agressivo no seu pipeline de fine tuning supervisionado antes de passar adiante, mas as pessoas estĂŁo sempre ansiosas, tipo, quero ir em frente, quero fazer RL, nĂŁo quero gastar muito tempo fazendo as coisas meio chatas.
Mas normalmente, até mesmo a nossa equipe de pós-treinamento, eles querem fazer hipotetizado por reforço, mas acabam gastando 80% do tempo na fase de Fire in Tuning Supervisionado e ficam sem tempo até para fazer a parte de Reinforcement Learning.