Técnica que supera modelos de linguagem maiores com menos dados de treinamento e modelos menores
(blog.research.google)- LLMs de grande porte conseguem resolver novas tarefas apenas com few-shot, mas o custo de serving é alto; por isso, a equipe do Google Cloud AI propôs o distilling step-by-step, que treina pequenos modelos especializados em tarefas junto com rationales em linguagem natural
- O método extrai o raciocínio intermediário do LLM por meio de few-shot Chain-of-Thought (CoT) e o transforma em aprendizado multitarefa, no qual o modelo T5 aprende simultaneamente a prever rótulos e gerar rationales
- Os experimentos usaram o PaLM de 540B como LLM de referência e o T5 como modelo downstream, avaliando inferência em linguagem natural, perguntas e respostas de senso comum e problemas aritméticos em forma de texto nos benchmarks e-SNLI, ANLI, CQA e SVAMP
- No e-SNLI, com apenas 12,5% dos dados totais, o método superou o fine-tuning padrão; no ANLI, um T5 de 770M superou o desempenho few-shot do PaLM de 540B usando 80% dos dados, reduzindo o tamanho do modelo em mais de 700 vezes
- É uma abordagem que reduz o trade-off entre a implantação de modelos pequenos e o custo de coleta de dados de treinamento, e está disponível em private preview no Vertex AI
Custo de implantação de LLMs e limitações do treinamento de modelos pequenos
- LLMs conseguem lidar com novas tarefas não vistas por meio de prompting zero-shot e few-shot, mas, em serviços reais, o tamanho do modelo se torna uma grande restrição
- Para servir um único LLM na escala de 175B, é necessário pelo menos 350 GB de memória de GPU em infraestrutura especializada
- Os LLMs mais recentes da época eram compostos por mais de 500B parâmetros
- Na prática, muitas vezes são implantados modelos menores especializados em tarefas, normalmente usando duas abordagens
- Fine-tuning: atualizar um modelo pequeno pré-treinado, como BERT ou T5, com dados downstream rotulados por humanos
- Destilação (distillation): treinar um modelo pequeno com rótulos gerados por um LLM maior
- Ambas as abordagens ainda têm custos significativos
- O fine-tuning exige rótulos criados por humanos, o que implica alto custo e volume de trabalho
- A destilação exige uma grande quantidade de dados sem rótulo, que também pode ser difícil de coletar
Ideia central do Distilling step-by-step
- Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smaller Model Sizes é um método que busca reduzir o trade-off entre tamanho do modelo e custo de coleta de dados de treinamento
- distilling step-by-step extrai rationales em linguagem natural, isto é, etapas intermediárias de raciocínio, de um LLM e as usa como sinal adicional de supervisão para treinar modelos pequenos
- Os rationales em linguagem natural revelam a conexão entre a pergunta de entrada e a resposta de saída
- Por exemplo, quando são dados o comprimento e a largura de uma sala, além da área de carpete já disponível, o LLM pode gerar um rationale intermediário como “Area = length * width”
- Esses rationales podem conter conhecimento da tarefa que um modelo pequeno originalmente precisaria aprender a partir de muitos dados
- Em vez de aprender apenas rótulos, o modelo aprende rótulos e rationales em conjunto, permitindo que o modelo pequeno aprenda a tarefa com menos dados
Procedimento de treinamento em duas etapas
- A primeira etapa é extrair rationales do LLM usando prompting CoT few-shot
- Para cada tarefa, são inseridos no prompt do LLM exemplos compostos por três elementos: entrada, rationale e saída
- O LLM segue esses exemplos para gerar rationales para novas entradas
- Em um exemplo de perguntas e respostas de senso comum, é fornecida a pergunta “Sammy wanted to go to where the people are”, junto com opções de resposta
- A resposta correta é “(a) populated areas”
- O rationale fornece a conexão: “precisa ser um lugar onde há muitas pessoas, e, entre as opções, apenas populated areas é um lugar com muitas pessoas”
- Na segunda etapa, os rationales extraídos são incorporados ao treinamento do modelo pequeno
- Além da tarefa padrão de previsão de rótulos, o modelo aprende uma nova tarefa de geração de rationales
- Prefixos de tarefa como
[label]ou[rationale]são adicionados antes da entrada do modelo para distinguir as duas tarefas - A tarefa de geração de rationales treina o modelo para criar etapas intermediárias de raciocínio e, como resultado, o induz a prever melhor os rótulos
Configuração experimental e comparações
- O LLM de referência é o PaLM de 540B
- Para os modelos downstream especializados em tarefas, foram usados modelos T5
- O prompting CoT usa prompts CoT existentes quando possível e, para novos datasets, exemplos são construídos manualmente
- A avaliação foi realizada em 4 benchmarks que cobrem 3 tarefas de NLP
- Há duas linhas de comparação
- Para comparar com um LLM com prompt few-shot, foi usado o prompting CoT few-shot do PaLM de 540B
- Fine-tuning padrão e destilação padrão também foram incluídos nas comparações, e o texto do blog se concentra na comparação com fine-tuning padrão
Superando o fine-tuning padrão com menos dados de treinamento
- O distilling step-by-step alcança desempenho melhor que o fine-tuning padrão usando muito menos dados de treinamento
- No e-SNLI, usando apenas 12,5% do dataset total, ele obteve desempenho superior ao fine-tuning padrão treinado com todos os dados
- Em outros datasets, o volume de dados necessário também foi reduzido
- ANLI: redução de 75% no tamanho do dataset
- CQA: redução de 25% no tamanho do dataset
- SVAMP: redução de 20% no tamanho do dataset
- Essa comparação foi realizada usando um modelo T5 de 220M em datasets rotulados por humanos de vários tamanhos
Superando a referência do PaLM com modelos menores de implantação
- O distilling step-by-step alcança desempenho melhor que um LLM com prompt CoT few-shot usando modelos muito menores
- No e-SNLI, um modelo T5 de 220M superou o PaLM de 540B
- No ANLI, um modelo T5 de 770M teve desempenho melhor que o PaLM de 540B
- Esse modelo é mais de 700 vezes menor que o PaLM
- O mesmo modelo T5 de 770M dificilmente alcança o desempenho do PaLM usando apenas fine-tuning padrão
- O resultado mostra simultaneamente o tamanho pequeno do modelo e a superação do desempenho de referência do LLM
Resultado de reduzir simultaneamente dados e tamanho do modelo
- No ANLI, o distilling step-by-step superou o desempenho few-shot do PaLM de 540B usando apenas o T5 de 770M e 80% dos dados totais
- Nas mesmas condições, o fine-tuning padrão não alcançou o desempenho do PaLM mesmo usando 100% dos dados totais
- Por meio de uma busca aproximada, foram identificados o tamanho mínimo do modelo T5 e o número mínimo de exemplos rotulados por humanos necessários para superar o desempenho CoT few-shot do LLM
- Como resultado, o método reduz simultaneamente o tamanho do modelo de implantação e a quantidade de dados de treinamento necessários para superar o desempenho do LLM
Forma de disponibilização
- O distilling step-by-step está disponível em private preview no Vertex AI
- Quem quiser usar o recurso deve entrar em contato pelo e-mail
vertex-llm-tuning-preview@google.com, incluindo o número do Google Cloud Project e um resumo do caso de uso
1 comentários
Opiniões no Hacker News
Acho que modelos especialistas menores vão dominar a maioria das aplicações. Há um ponto ideal e um equilíbrio sutil entre tamanho e usabilidade, e vários mecanismos como os mostrados no texto provavelmente vão encontrar e concretizar esse ponto ideal
É interessante que tenham usado T5 no modelo destilado. Eu achava que a arquitetura encoder-decoder estava em declínio, mas parece que ainda é relevante
Também é interessante que essa ideia não seja inimaginavelmente genial nem fora da caixa. Isso mostra que ainda há muitas frutas baixas a explorar, e que o futuro dos grandes modelos de linguagem ainda não está definido. Talvez a solução real seja uma mistura de especialistas treinada dessa forma. É empolgante pensar que, encontrando a combinação certa de ideias, um objetivo próximo do Santo Graal parece alcançável
Ainda há muitas frutas baixas. Acho que já vi dezenas de variações, como cadeia de pensamento, árvore de pensamento, grafo de pensamento, self-ask, self-critique, self-plan, self-reflect etc.
O volume de atividade e o progresso em grandes modelos de linguagem/aprendizado de máquina/inteligência artificial são realmente impressionantes. Especialmente em um cenário em que hardware como o da Nvidia é muito caro, essa otimização é particularmente valiosa
Isso é a mesma coisa que https://arxiv.org/abs/2212.08410, só que lançado um ano depois, não?
Não sou pesquisador, mas sempre tive a intuição de que os modelos mais eficazes seriam multimodais e treinados com um currículo central cuidadosamente projetado
Eu gostaria de garantir que o sistema adquira e mantenha as estruturas e técnicas básicas necessárias para generalizar de forma eficaz e precisa. Seria algo como manter essas coisas e, ao mesmo tempo, alimentá-lo com muitos dados variados para que aprenda exceções e formas de combinar técnicas. Mas seria necessário algum modo de garantir as habilidades e o conhecimento centrais até o fim. Talvez isso seja possível se, como no artigo, ele for levado a produzir não só a resposta final, mas também seu processo de compreensão ou manipulação
Por exemplo, no caso de um modelo de geração de código, poderíamos exigir que ele emitisse uma simulação de máquina de estados do programa solicitado
Fico me perguntando por que, na primeira figura, a quantidade de dados de treinamento dos grandes modelos de linguagem é menor do que a dos modelos destilados e dos modelos específicos de tarefa
Ou será que os autores calcularam a quantidade de dados de treinamento necessária para os grandes modelos de linguagem incluindo-a nos dados de treinamento necessários para os modelos destilados/específicos de tarefa?
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj...
Você pode pegar um grande modelo de linguagem pré-treinado e, nesse caso, os dados que eu preciso coletar são os necessários para fazer o fine-tuning desse modelo
Esses enormes grandes modelos de linguagem têm muita capacidade não utilizada sobrando, ou o modelo de linguagem pequeno está apenas imitando a tarefa de raciocínio? Seria uma imitação da imitação?
Nos datasets em que os grandes modelos de linguagem enormes são treinados há muito ruído que atrapalha o progresso. Também há muito conhecimento irrelevante, que o modelo precisa aprender ou memorizar, e por isso acaba precisando de uma quantidade absurda de parâmetros
Se você não estiver tentando ensinar a um modelo de linguagem a soma total do conhecimento humano e fornecer um dataset curado de alta qualidade, a barreira de escala fica muito menor
https://arxiv.org/abs/2305.07759
Fico curioso sobre que ideias poderiam existir para estimar o tamanho ideal
Interessante. Para que um modelo pequeno tenha desempenho parecido com o dos grandes modelos de linguagem de ponta, RLHF será indispensável? Problemas relacionados à estrutura de saída, tom e compreensão do domínio parecem solucionáveis com ajuste por instruções, mas não sei se isso bastaria para melhorar também a capacidade de raciocínio de um modelo pequeno
Dizem que, para servir um único grande modelo de linguagem de 175 bilhões de parâmetros, são necessários pelo menos 350 GB de memória de GPU em infraestrutura especializada
A Apple vende o Mac Studio com suporte a até 144 GB de memória de GPU disponível
Seria bem interessante se ela lançasse um Mac Pro com mais de 300 GB e dominasse o mercado de serving de grandes modelos de linguagem
Caso contrário, é apenas mais um motivo pelo qual, neste momento, ele não é adequado para hospedagem de grandes modelos de linguagem
De todo modo, quem realmente pode chacoalhar o mercado é a Intel. Em teoria, ela poderia chegar com placas Arc 2x48 GB e atacar, a um preço mais baixo, um mercado em que AMD/Nvidia não entram por causa dos clientes de placas profissionais
Sinceramente, esse é o único motivo que me faz evitar o hardware mais recente da Apple. Uso o computador principalmente na mesa, e o hardware de PC, especialmente GPUs, está muito à frente do que os melhores produtos da Apple conseguem fazer. É difícil justificar gastar quase 4 mil dólares quando Linux se encaixa muito bem no meu trabalho e, depois que termino, ainda posso jogar
Fico me perguntando se o Facebook poderia treinar grandes modelos de linguagem com o histórico completo de chats de todos os usuários