Gemma 2: melhorias em modelos de linguagem abertos de tamanho prático [PDF]
(storage.googleapis.com)- Gemma 2 do Google DeepMind é uma família de modelos abertos leves de 2B, 9B e 27B, lançada com o objetivo de alcançar desempenho competitivo com modelos maiores mesmo em tamanhos menores
- Os modelos 2B e 9B aplicaram destilação de conhecimento em vez de previsão do próximo token, enquanto o 27B foi treinado do zero, adotando estratégias diferentes por escala
- Em termos de arquitetura, combina alternância entre atenção local e global, Grouped-Query Attention, logit soft-capping e RMSNorm em pre-norm e post-norm para buscar eficiência e desempenho ao mesmo tempo
- Os dados de treino são principalmente documentos web em inglês, código e literatura científica, e não se trata de um modelo multimodal nem voltado a desempenho multilíngue de ponta
- Nas avaliações, mostrou desempenho superior ao de modelos abertos de tamanho semelhante, mas antes da implantação real ainda são necessários testes de segurança por caso de uso
Visão geral do modelo Gemma 2
- Gemma 2 é um novo modelo aberto leve da família Gemma, disponível nas escalas de 2B, 9B e 27B parâmetros
- Os modelos 2B e 9B são treinados com destilação de conhecimento em vez de previsão do próximo token
- Um modelo de linguagem maior é usado como modelo professor, e o modelo aluno aprende a distribuição dos possíveis próximos tokens de cada token
- 2B e 9B foram treinados por destilação com mais de 50 vezes o número de tokens teoricamente compute-optimal
- O modelo 27B foi treinado do zero para esse trabalho
- O desempenho melhorou bastante em relação a modelos abertos de tamanho semelhante e, em alguns benchmarks e avaliações humanas, mostrou resultados capazes de competir com modelos 2 a 3 vezes maiores
- Antes da aplicação real, todos os usuários devem realizar testes de segurança adequados ao contexto de implantação ou uso
Arquitetura do modelo e escolhas de design
- O Gemma 2 usa uma arquitetura Transformer decoder-only semelhante à do Gemma anterior
- Os elementos de design comuns são os seguintes
- Comprimento de contexto: 8192 tokens
- Embeddings posicionais RoPE
- Não linearidade GeGLU
- Tokenizador SentencePiece com vocabulário de 256,128 itens
- Uso de tied embedding
- As principais mudanças estruturais se concentram em atenção e normalização
- local sliding window attention e atenção global são colocadas alternadamente, uma camada de cada vez
- A sliding window da atenção local é de 4096 tokens
- O span da atenção global é de 8192 tokens
- logit soft-capping é aplicado à camada de atenção e à camada final
- O soft_cap da camada de self-attention é 50.0
- O soft_cap da camada final é 30.0
- RMSNorm é aplicado tanto na entrada quanto na saída de cada subcamada Transformer, usando ao mesmo tempo pre-norm e post-norm
- Grouped-Query Attention foi confirmada em ablation como uma escolha que mantém o desempenho enquanto aumenta a velocidade de inferência
- local sliding window attention e atenção global são colocadas alternadamente, uma camada de cada vez
Dados de treino e infraestrutura
- O número de tokens de pré-treinamento varia conforme a escala do modelo
- Gemma 2 27B: 13 trilhões de tokens
- Gemma 2 9B: 8 trilhões de tokens
- Gemma 2 2B: 2 trilhões de tokens
- Os dados de treino são majoritariamente em inglês e vêm de várias fontes, como documentos web, código e literatura científica
- O modelo não é multimodal, nem foi treinado separadamente com foco em desempenho multilíngue de ponta
- A filtragem de dados foi aplicada da mesma forma que no Gemma 1
- Redução de falas indesejadas ou inseguras
- Remoção de determinados dados pessoais e dados sensíveis
- Remoção de contaminação de conjuntos de avaliação
- Mitigação do risco de repetição de saídas sensíveis
- A infraestrutura de treino é baseada em TPU
- 2B: 512 chips TPUv5e
- 9B: 4096 chips TPUv4
- 27B: 6144 chips TPUv5p
- As emissões de carbono do pré-treinamento são estimadas em 1247.61 tCO2eq
- O cálculo foi baseado no uso de energia por hora do datacenter de TPU
- A neutralidade de carbono dos datacenters do Google é alcançada por eficiência energética, compra de energia renovável e compensação de carbono
Pós-treinamento e formato de conversa
- O pós-treinamento é o processo de ajustar o modelo pré-treinado para um instruction-tuned model
- As etapas de treino são as seguintes
- SFT com pares prompt-resposta sintéticos e gerados por humanos, apenas em texto em inglês
- Aplicação de RLHF usando um reward model treinado com dados de preferência em inglês
- Os modelos obtidos em cada etapa são combinados por média para melhorar o desempenho geral
- A mistura de dados e a receita de pós-treinamento foram escolhidas com base em melhorar helpfulness, garantir segurança e minimizar danos relacionados a hallucination
- Desde o Gemma 1.1, os dados de pós-treinamento foram expandidos com uma mistura de dados internos e dados públicos externos
- No LMSYS-chat-1M, apenas os prompts são usados, e as respostas não são utilizadas
- Várias etapas de filtragem são aplicadas aos dados sintéticos
- Dados pessoais
- Saídas do modelo inseguras ou tóxicas
- Dados incorretos de autoidentificação
- Exemplos duplicados
- O Gemma 2 usa os mesmos control tokens do Gemma 1, mas o formatting schema mudou
- O modelo gera explicitamente o token
<end_of_turn><eos>no fim da geração - Antes, gerava apenas
<eos>
- O modelo gera explicitamente o token
Destilação de conhecimento e experimentos de escolha de arquitetura
- Em uma comparação com o modelo 2B treinado com 500B tokens, o treino por destilação apresentou desempenho superior ao do modelo treinado do zero
- Média de 3 benchmarks: from scratch 60.3, distilled 67.7
- 500B é 10 vezes mais do que o número compute-optimal de tokens para um modelo 2B
- Também na comparação de perplexity de validação entre os modelos 200M, 400M e 1B, os modelos destilados tiveram perplexity menor
- 200M: from scratch 23, distilled 21
- 400M: from scratch 19, distilled 17
- 1B: from scratch 17, distilled 15
- No modelo 9B, a diferença de desempenho entre GQA e MHA foi pequena, e o GQA foi escolhido por ter menos parâmetros e ser mais rápido na inferência
- Média de 4 benchmarks: MHA 50.3, GQA 50.8
- Com o mesmo número de parâmetros no 9B, uma arquitetura mais profunda mostrou desempenho ligeiramente melhor do que uma mais larga
- Média de 4 benchmarks: Wide 50.8, Deep 52.0
- Mesmo alterando o tamanho da sliding window na inferência para 4096, 2048 e 1024, o impacto na perplexity foi limitado
- 4096: 1.63
- 2048: 1.63
- 1024: 1.64
Resultados de benchmarks automáticos
- O modelo 27B pré-treinado foi comparado com Qwen1.5 32B e LLaMA-3 70B na avaliação da HuggingFace
- MMLU: Gemma-2 27B 75.2, Qwen1.5 32B 74.3, LLaMA-3 70B 79.2
- GSM8K: Gemma-2 27B 74.0, Qwen1.5 32B 61.1, LLaMA-3 70B 76.9
- ARC-c: Gemma-2 27B 71.4, Qwen1.5 32B 63.6, LLaMA-3 70B 68.8
- HellaSwag: Gemma-2 27B 86.4, Qwen1.5 32B 85.0, LLaMA-3 70B 88.0
- Winogrande: Gemma-2 27B 83.7, Qwen1.5 32B 81.5, LLaMA-3 70B 85.3
- Os modelos 2B e 9B também mostram grande melhora em relação aos modelos Gemma anteriores
- O modelo 9B teve melhora de até 10% em alguns benchmarks em relação à versão anterior
- O Gemma 2 2B foi treinado com um número de tokens semelhante ao do Gemma 1 2B, mas teve melhor desempenho
- As médias gerais em vários benchmarks são as seguintes
- Gemma 1 2B: 44.2
- Gemma 2 2B: 48.7
- Gemma 1 7B: 57.9
- Gemma 2 9B: 64.9
- Gemma 2 27B: 69.4
Avaliação humana e Chatbot Arena
- Os modelos instruction-tuned do Gemma 2 foram avaliados no LMSYS Chatbot Arena em formato blind side-by-side
- As pontuações Elo são as seguintes
- gemma-2-27b-it: 1218
- gemma-2-9b-it: 1187
- gemma-2-2b-it: 1126
- Os resultados comparativos mostram competitividade em relação ao tamanho dos modelos
- gemma-2-27b-it ficou acima do Elo 1206 do llama-3-70b-instruct
- gemma-2-9b-it ficou próximo do Elo 1186 do gpt-4-0314
- gemma-2-2b-it ficou acima do Elo 1116 do gpt-3.5-turbo-0613
- Em uma avaliação separada de preferência humana, segurança e instruction following foram medidos com prompts single-turn held-out
- instruction following: Gemma 1.1 IT 7B 24.3%, Gemma 2 IT 2B 26.5%, 9B 34.1%, 27B 37.7%
- safety: Gemma 1.1 IT 7B 42.8%, Gemma 2 IT 2B 57.5%, 9B 57.8%, 27B 55%
- A avaliação multi-turn foi feita com 500 cenários held-out e média de 8.4 turnos de usuário
- Satisfação do usuário: Gemma 1.1 IT 7B 3.32, Gemma 2 IT 2B 3.64, 9B 4.04, 27B 4.20
- Alcance do objetivo da conversa: Gemma 1.1 IT 7B 3.36, Gemma 2 IT 2B 3.88, 9B 4.08, 27B 4.24
Memorização e dados pessoais
- Modelos de linguagem grandes podem reproduzir literalmente dados de treino sob certas condições, por isso o Gemma 2 passou por avaliações de memorização literal e aproximada
- A avaliação foi feita fornecendo um prompt de 50 tokens e medindo a memorização de 50 tokens dos dados de treino
- Critério de exact match
- Critério de approximate match usando edit distance de 10%
- A taxa total de memorização exata do Gemma 2 é inferior a 0.1%
- Por origem dos dados, apareceu mais memorização em código, wiki e fontes científicas, mas no geral o nível ficou abaixo do Gemma 1
- A avaliação de dados pessoais usou a Google Cloud Sensitive Data Protection Tool
- Não foram encontrados casos de saída de dados pessoais de alta gravidade
- A proporção de dados memorizados contendo dados pessoais de baixa gravidade foi medida em 0.00026%
- A ferramenta automatizada não considera o contexto, podendo gerar false positives, e os resultados podem ter sido superestimados
Implantação responsável e segurança
- O desenvolvimento do Gemma 2 aplicou três eixos: mitigação de segurança durante o treino, avaliação transparente do modelo e desenvolvimento do Responsible Generative AI Toolkit
- Modelos públicos podem ampliar os benefícios da tecnologia de IA, mas também é preciso avaliar riscos de uso indevido, como imagens deepfake, desinformação gerada por IA e geração de material ilegal ou perturbador
- Ainda não houve relatos de uso malicioso do Gemma, mas, se surgirem relatos relacionados, há plano de investigar e monitorar junto com a comunidade
- Considerando que já existem modelos públicos maiores e mais poderosos, avalia-se que o impacto do Gemma 2 no panorama geral de riscos é pequeno
- A política de segurança foi desenhada na mesma direção dos modelos Gemini para evitar a geração de conteúdo nocivo
- Abuso e exploração sexual infantil
- Divulgação de dados pessoais que possam causar danos
- Discurso de ódio e assédio
- Conteúdo perigoso ou malicioso
- Conteúdo sexualmente explícito
- Conselhos médicos contrários ao consenso científico e médico
- Os modelos instruction-tuned são ajustados por SFT e RLHF para se afastarem de comportamentos indesejáveis
1 comentários
Opiniões no Hacker News
A versão 27B é muito poderosa
Ela pontuou acima do Llama-3-70B no LMSys Chatbot Arena e está no nível do OpenAI GPT-4 e do Claude-3 Sonnet
Se você quiser avaliar o Gemma localmente, dá para fazer isso com bastante facilidade usando ollama e promptfoo
Um pequeno detalhe de que sempre gostei no Gemma é que ele vai direto para o código, sem introduções como "Sure, I can help you", e coloca a explicação depois
Parece que o treinamento teve foco na estrutura da resposta e na facilidade de compreensão
Também é melhor rodar uma avaliação que não dependa da simples memorização de código público, então vale a pena trocar por testes pessoais
[0] https://ollama.com/library/gemma2
[1] https://github.com/promptfoo/promptfoo
Antes de se deixar levar por expectativas exageradas, recomendo testar por conta própria e esperar até que a pontuação no Chatbot Arena se estabilize
Na minha avaliação pessoal, o gemma-2-27b-it do AI Studio foi muito pior que o Llama 3 70B, especialmente em raciocínio e perguntas básicas de compreensão do mundo
Vi isso com atraso, mas, para registro, os modelos Gemma 2 parecem ter sido treinados com aprendizado por reforço visando o desempenho no Chat Arena: https://x.com/natolambert/status/1806384821826109597
A parte relevante do artigo está destacada
Fico curioso para saber qual é o ponto forte que mais se destaca
Modelos pequenos muitas vezes vão bem em benchmarks, mas falham na generalização, e isso me lembra o Phi-2
Parece ser efeito de dados de treinamento melhores em idiomas além do inglês
Em prompts difíceis em inglês, ele fica 15 ELO abaixo do Llama-3-70B; em inglês geral, fica 41 ELO abaixo
Este último é de fato estatisticamente significativo
Olá de novo, aqui é a equipe do Gemma
Estamos muito felizes em lançar esta versão e responderemos se houver perguntas
As opiniões são pessoais e não representam a posição da Google DeepMind
Por outro lado, entender como o Google Cloud Vertex funciona e é cobrado é mais complicado, e Azure e AWS também são igualmente complexos para esse uso
Seria bom se o Google Cloud pudesse oferecer uma API e um serviço compatíveis com a OpenAI
Sei que é outro departamento, mas isso tornaria o uso dos modelos muito mais fácil
Muitas vezes o Google Cloud parece não ter passado por nenhuma UX ou teste com usuários finais
O aistudio.google.com certamente melhorou em relação a antes
O 27b pode ser testado em www.aistudio,google.com, então espero que você coloque seus prompts habituais e goste das respostas
Fico curioso por que escolheram esse caminho em vez de simplesmente ir para 8k ou 16k completos
Fico curioso se isso é uma diferença arquitetural fundamental, uma diferença no conjunto de treinamento ou algum outro motivo
Acho que 2.6B/9B deveriam ser comparados ao Phi-3 mini 3.8B da Microsoft, e não ao Mistral ou ao Llama-3
Comparando a tabela 13 na página 7 do artigo com a página 6 de https://arxiv.org/pdf/2404.14219, no geral o Phi-3 parece bem melhor
Ainda assim, o relato sobre treinamento por destilação de conhecimento é interessante
O 2.6B ficaria muito atrás do Phi-3, então não há comparação
Comparar 2.6B com 3.8B talvez não dê tanta noção, mas, olhando como 2,6 bilhões contra 3,8 bilhões, é uma diferença de tamanho bem grande, então pode ser por isso
Mas aí começam a aparecer inflamentos de parâmetros, como Mistral 7B vs Llama 8B vs Gemma 9B
Quando o Llama 3 passou para 8B, fiquei preocupado que surgisse uma tendência de brincar com a contagem de parâmetros, mas achei que fosse preocupação à toa
Concordo que a família Phi-3 é uma concorrente mais forte em extração/sumarização de conhecimento e, portanto, uma boa base de comparação
Em uma workstation com VRAM limitada, o meu favorito atual para esse tipo de tarefa é o Phi-3 medium, ou seja, phi3:14b-instruct
As versões 9B e 27B estão disponíveis no Ollama: https://ollama.com/library/gemma2
O modelo 27B também pode ser usado no AI Studio
https://aistudio.google.com/app/prompts/new_chat?model=gemma...
Até agora, parece bem forte para o tamanho
Excelente lançamento.
Se quiser experimentar localmente com uma boa interface, acabei de publicar uma atualização com suporte ao Gemma2 no app que eu faço [1]
1: https://msty.app
O msty parece muito bom.
Marquei nos favoritos para ver depois se pode substituir a forma como uso uma instância do LibreChat hospedada localmente.
Acho que, em muitas perguntas, usar modelos locais em vez de modelos remotos seria uma grande melhoria.
Mas fico curioso se há algum motivo para manter o msty como código fechado, e não open source.
Li o "why should I trust msty" no FAQ, mas achei insuficiente.
É muito melhor do que não haver nenhuma identificação, mas está longe de ser a possibilidade de verificar a confiança lendo o código.
Gostaria de ouvir o motivo de não abrirem o código.
Ainda assim, pretendo experimentar.
Parece legal, mas fico cauteloso por ser código fechado.
No Arch Linux, quando tento salvar uma chave da API da Anthropic, nada acontece, e aparece a mensagem "If you're experiencing problems saving API keys especially on Linux, contact Discord".
Se é um problema tão comum assim, acho que deveria haver um link para possíveis soluções.
Ter que entrar em mais um servidor do Discord para testar e pesquisar a resposta para uma pergunta que certamente já foi feita muitas vezes é uma barreira bem grande.
Baixei e parece bom.
Gostei da visualização dividida sincronizada.
Mas, ao contrário do anunciado na landing page, não vejo Gemma 2 nem Claude 3.5 Sonnet.
Fico curioso se há planos de adicionar ao Chocolatey para download no Windows.
Isso parece legal.
Não sei como deixei passar até agora, e pretendo rodar para testar.
Destilação de conhecimento é muito interessante, mas gerar trilhões de saídas a partir de um grande modelo professor deve ter um custo absurdo.
Fico curioso se isso é realmente mais custo-efetivo do que usar esses recursos de computação para treinar o modelo diretamente com mais dados ou mais épocas.
Até 6 meses atrás, parecia que todo mundo tinha medo de colapso de modelo, e agora geração de dados sintéticos de treinamento e modelos professores estão na moda.
Fico me perguntando se resolveram o problema de colapso de modelo.
O modelo aluno gera sequências, e o modelo professor fornece feedback em forma de logits.
Fico curioso sobre o uso de tokens especiais explícitos.
O que acontece se o usuário colocar esses tokens na mensagem? Dá para criar facilmente algo como "ignore as instruções anteriores"?
Será que é preciso sanitizar a entrada manualmente antes de passá-la ao modelo?
Se você puder controlar o tokenizer, dá para impedir que esses tokens apareçam na entrada do usuário.
Por exemplo, em vez de um token especial, você pode fazer com que vire a codificação natural daquela string, como "<", "eos", ">".
O tokenizer do llama3 tem uma opção para controlar a tokenização de tokens especiais: https://github.com/meta-llama/llama3/blob/bf8d18cd087a4a0b3f...
A forma de combinar tokens especiais e entrada do usuário pode ser vista aqui: https://github.com/meta-llama/llama3/blob/bf8d18cd087a4a0b3f...
Se não puder controlar o tokenizer, acho que, como você disse, vai precisar sanitizar a entrada.
Fico curioso sobre quanto o treinamento por destilação acelera em termos de número de iterações necessárias para atingir um determinado desempenho.
Gostaria de saber o que unsafe significa aqui.
Então ele tem o dobro do tamanho do Phi 3 e é consideravelmente pior?
Não sei o que estou deixando passar.
O Phi-3 é principalmente um avanço em aprendizado por currículo.
Ele obteve bons resultados ao filtrar o conjunto de treinamento para tokens de alta qualidade e treinar com dados sintéticos.
O Gemma-2 é um avanço em destilação.
Ele obteve bons resultados treinando um LLM com orientação de um LLM professor maior.
Não há motivo para não fazer os dois.
Por exemplo, mesmo que o Phi-3-Medium vá melhor em benchmarks, no LMSYS Chatbot Arena ele perde por uma boa margem para o Llama-3-8b.
O desempenho do Gemma, na verdade, parece tender a parecer baixo nos benchmarks
O 27b atualmente está à frente do Llama3-70b no ranking do Chatbot Arena
No LMSYS, o phi-3 small está em 52º lugar com 1100 ELO, e o intervalo de confiança do Gemma 2 9B é de 1170~1200 ELO, entre o 15º e o 25º lugar
Você pode testar diretamente aqui e comparar dessa forma: https://aistudio.google.com/app/prompts/new_chat?model=gemma...
Fico curioso se você já usou o Phi 3
Ele é inteligente e vai bem em benchmarks, mas não é tão bom para conversa ou como chatbot
Acho que o Gemma 2 será um assistente de uso geral melhor para a maioria das pessoas, enquanto o Phi 3 parece mais um LLM pequeno e sólido, adequado para usos mais específicos como resumo, RAG e aprendizado de matemática