Gemma 2: mejoras en un modelo de lenguaje abierto de tamaño práctico [PDF]
(storage.googleapis.com)- Gemma 2 de Google DeepMind es una familia de modelos abiertos y ligeros de 2B, 9B y 27B, publicada con el objetivo de lograr que incluso los modelos pequeños puedan competir en rendimiento con modelos más grandes
- Los modelos 2B y 9B aplican destilación de conocimiento en lugar de predicción del siguiente token, mientras que el de 27B fue entrenado desde cero, adoptando estrategias de entrenamiento distintas según la escala
- A nivel estructural, combina alternancia entre atención local y global, Grouped-Query Attention, logit soft-capping y RMSNorm pre-norm y post-norm para buscar eficiencia y rendimiento al mismo tiempo
- Los datos de entrenamiento son principalmente documentos web en inglés, código y literatura científica; no es un modelo orientado a multimodalidad ni a rendimiento multilingüe de vanguardia
- En las evaluaciones mostró un rendimiento superior frente a modelos abiertos de escala similar, pero antes de desplegarlo en producción siguen siendo necesarias pruebas de seguridad según cada caso de uso
Resumen del modelo Gemma 2
- Gemma 2 es un nuevo modelo abierto y ligero de la familia Gemma, disponible en tamaños de 2B, 9B y 27B parámetros
- Los modelos 2B y 9B se entrenaron con destilación de conocimiento en lugar de predicción del siguiente token
- Usan un modelo de lenguaje grande como modelo maestro para que el modelo estudiante aprenda la distribución de posibles siguientes tokens para cada token
- Los modelos 2B y 9B fueron entrenados por destilación con más de 50 veces la cantidad de tokens teóricamente óptima en cómputo
- El modelo 27B fue entrenado desde cero para este trabajo
- Frente a modelos abiertos de tamaño similar, el rendimiento mejoró de forma considerable, y en algunos benchmarks y evaluaciones humanas mostró resultados capaces de competir incluso con modelos 2 o 3 veces más grandes
- Antes de su uso real, todos los usuarios deben realizar pruebas de seguridad adecuadas al contexto de despliegue o uso
Arquitectura del modelo y decisiones de diseño
- Gemma 2 usa una arquitectura Transformer solo decodificador similar a la de Gemma anterior
- Los elementos de diseño compartidos son los siguientes
- Longitud de contexto: 8192 tokens
- Embeddings posicionales RoPE
- No linealidad GeGLU
- Tokenizador SentencePiece de 256,128 vocablos
- Uso de tied embedding
- Los principales cambios estructurales se concentran en la atención y la normalización
- Se alternan local sliding window attention y atención global, una capa de cada tipo por turno
- La sliding window de la atención local es de 4096 tokens
- El alcance de la atención global es de 8192 tokens
- Se aplica logit soft-capping en la capa de atención y en la capa final
- El
soft_capde la capa de self-attention es 50.0 - El
soft_capde la capa final es 30.0
- El
- Se aplica RMSNorm a la entrada y salida de cada subcapa Transformer, usando tanto pre-norm como post-norm
- En los experimentos de ablación, Grouped-Query Attention se confirmó como una opción que mantiene el rendimiento mientras mejora la velocidad de inferencia
- Se alternan local sliding window attention y atención global, una capa de cada tipo por turno
Datos de entrenamiento e infraestructura
- La cantidad de tokens de preentrenamiento varía según el tamaño del modelo
- Gemma 2 27B: 13 billones de tokens
- Gemma 2 9B: 8 billones de tokens
- Gemma 2 2B: 2 billones de tokens
- Los datos de entrenamiento son principalmente en inglés y están compuestos por diversas fuentes como documentos web, código y literatura científica
- El modelo no es multimodal ni fue entrenado específicamente para apuntar a rendimiento multilingüe de vanguardia
- El filtrado de datos se aplicó del mismo modo que en Gemma 1
- Reducción de expresiones no deseadas o inseguras
- Eliminación de ciertos datos personales y datos sensibles
- Eliminación de contaminación de conjuntos de evaluación
- Mitigación del riesgo de repetir salidas sensibles
- La infraestructura de entrenamiento está basada en TPU
- 2B: 512 chips TPUv5e
- 9B: 4096 chips TPUv4
- 27B: 6144 chips TPUv5p
- Las emisiones de carbono estimadas del preentrenamiento fueron de 1247.61 tCO2eq
- Se calcularon con base en el consumo energético por hora de los centros de datos de TPU
- La neutralidad de carbono de los centros de datos de Google se logra mediante eficiencia energética, compra de energía renovable y compensación de carbono
Postentrenamiento y formato conversacional
- El postentrenamiento es el proceso de ajustar finamente el modelo preentrenado para convertirlo en un instruction-tuned model
- Las etapas de entrenamiento son las siguientes
- SFT con pares prompt-respuesta sintéticos y generados por humanos, solo en texto en inglés
- Aplicación de RLHF usando un reward model entrenado con datos de preferencia en inglés
- Se promedian los modelos obtenidos en cada etapa para mejorar el rendimiento general
- La mezcla de datos y la receta de postentrenamiento se eligieron con base en mejorar la helpfulness, asegurar la seguridad y minimizar daños relacionados con hallucinations
- Desde Gemma 1.1, los datos de postentrenamiento se ampliaron mezclando datos internos y datos públicos externos
- En LMSYS-chat-1M solo se usan los prompts y no las respuestas
- A los datos sintéticos se les aplican varias etapas de filtrado
- Datos personales
- Salidas del modelo inseguras o tóxicas
- Datos incorrectos de autoidentificación
- Ejemplos duplicados
- Gemma 2 usa los mismos control tokens que Gemma 1, pero cambia el formatting schema
- El modelo genera explícitamente el token
<end_of_turn><eos>al final de la generación - Antes solo generaba
<eos>
- El modelo genera explícitamente el token
Experimentos sobre destilación de conocimiento y elecciones de arquitectura
- En una comparación del modelo 2B entrenado con 500B tokens, el entrenamiento por destilación produjo un rendimiento superior al de un modelo entrenado desde cero
- Promedio de 3 benchmarks: from scratch 60.3, distilled 67.7
- 500B equivale a 10 veces la cantidad de tokens óptima en cómputo para un modelo 2B
- En la comparación de perplexity de validación para modelos de 200M, 400M y 1B, los modelos destilados también mostraron menor perplexity
- 200M: from scratch 23, distilled 21
- 400M: from scratch 19, distilled 17
- 1B: from scratch 17, distilled 15
- En el modelo 9B, la diferencia de rendimiento entre GQA y MHA fue pequeña, y se eligió GQA porque tiene menos parámetros y es más rápido en inferencia
- Promedio de 4 benchmarks: MHA 50.3, GQA 50.8
- Con el mismo número de parámetros en 9B, una arquitectura profunda mostró un rendimiento ligeramente mejor que una arquitectura ancha
- Promedio de 4 benchmarks: Wide 50.8, Deep 52.0
- Al cambiar el tamaño de la sliding window durante la inferencia a 4096, 2048 y 1024, el impacto sobre la perplexity fue limitado
- 4096: 1.63
- 2048: 1.63
- 1024: 1.64
Resultados de benchmarks automáticos
- El modelo 27B preentrenado fue comparado en evaluaciones de HuggingFace con Qwen1.5 32B y LLaMA-3 70B
- 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
- Los modelos 2B y 9B también mostraron mejoras importantes frente a versiones anteriores de Gemma
- El modelo 9B mejoró hasta un 10% frente a la versión anterior en algunos benchmarks
- Gemma 2 2B fue entrenado con una cantidad de tokens similar a Gemma 1 2B, pero con mejor rendimiento
- El promedio general en varios benchmarks es el siguiente
- 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
Evaluación humana y Chatbot Arena
- Los modelos Gemma 2 instruction-tuned fueron evaluados en LMSYS Chatbot Arena con comparaciones ciegas lado a lado
- Los puntajes Elo son los siguientes
- gemma-2-27b-it: 1218
- gemma-2-9b-it: 1187
- gemma-2-2b-it: 1126
- Los resultados comparativos muestran competitividad en relación con el tamaño del modelo
gemma-2-27b-itsuperó el Elo 1206 dellama-3-70b-instructgemma-2-9b-itfue similar al Elo 1186 degpt-4-0314gemma-2-2b-itsuperó el Elo 1116 degpt-3.5-turbo-0613
- En una evaluación separada de preferencia humana, se midieron la seguridad y el seguimiento de instrucciones con prompts single-turn reservados
- 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%
- La evaluación multivuelta se realizó con 500 escenarios reservados y un promedio de 8.4 turnos de usuario
- Satisfacción del usuario: Gemma 1.1 IT 7B 3.32, Gemma 2 IT 2B 3.64, 9B 4.04, 27B 4.20
- Cumplimiento del objetivo conversacional: Gemma 1.1 IT 7B 3.36, Gemma 2 IT 2B 3.88, 9B 4.08, 27B 4.24
Memorización y datos personales
- Los modelos de lenguaje grandes pueden reproducir literalmente datos de entrenamiento bajo ciertas condiciones, por lo que Gemma 2 fue evaluado en memorización literal y aproximada
- La evaluación se realizó dando un prompt de 50 tokens y midiendo la memorización de 50 tokens de los datos de entrenamiento
- Con criterio de exact match
- Con criterio de approximate match usando una edit distance del 10%
- La tasa total de memorización exacta de Gemma 2 es de menos de 0.1%
- Según la fuente de datos, apareció más memorización en código, wiki y fuentes científicas, pero en general se mantuvo por debajo de Gemma 1
- La evaluación de datos personales usó la Google Cloud Sensitive Data Protection Tool
- No se encontraron casos de salida de datos personales de alta gravedad
- La proporción de datos memorizados que incluían datos personales de baja gravedad se midió en 0.00026%
- Como la herramienta automatizada no considera el contexto, pueden existir falsos positivos y es posible que el resultado esté sobreestimado
Despliegue responsable y seguridad
- El desarrollo de Gemma 2 se apoyó en tres ejes: mitigación de seguridad durante el entrenamiento, evaluación transparente del modelo y desarrollo del Responsible Generative AI Toolkit
- Los modelos públicos pueden expandir los beneficios de la tecnología de IA, pero también deben evaluarse riesgos de uso indebido como imágenes deepfake, desinformación generada por IA o generación de material ilegal o perturbador
- Aún no se han recibido reportes de uso malicioso de Gemma, pero si aparecen reportes relacionados, planean investigarlos y monitorear la situación junto con la comunidad
- Considerando que ya existen modelos públicos más grandes y más potentes, se evalúa que el impacto de Gemma 2 sobre el panorama general de riesgos es reducido
- La política de seguridad está diseñada en la misma línea que los modelos Gemini para prevenir la generación de contenido dañino
- Abuso y explotación sexual infantil
- Divulgación de datos personales que pueda causar daño
- Discurso de odio y acoso
- Contenido peligroso o malicioso
- Contenido sexualmente explícito
- Consejos médicos contrarios al consenso científico y médico
- Los modelos instruction-tuned se ajustan mediante SFT y RLHF para alejarlos de conductas no deseadas
1 comentarios
Opiniones en Hacker News
La versión 27B es muy potente
Obtuvo una puntuación más alta que Llama-3-70B en LMSys Chatbot Arena y está al nivel de OpenAI GPT-4 y Claude-3 Sonnet
Si quieres evaluar Gemma en local, se puede hacer bastante fácil con ollama y promptfoo
Un pequeño detalle que siempre me gustó de Gemma es que entra directo al código, sin introducciones como "Sure, I can help you", y agrega la explicación después
Parece que el entrenamiento se enfocó en la estructura de la respuesta y en que fuera fácil de entender
Además, conviene ejecutar evaluaciones que no dependan de la simple memorización de código público, así que es buena idea cambiarlas por pruebas personales
[0] https://ollama.com/library/gemma2
[1] https://github.com/promptfoo/promptfoo
Antes de dejarse llevar por el hype, recomiendo probarlo directamente y esperar a que se estabilice la puntuación de Chatbot Arena
En mis evaluaciones personales, gemma-2-27b-it de AI Studio quedó muy por debajo de Llama 3 70B, especialmente en razonamiento y en preguntas básicas de comprensión del mundo
Lo vi tarde, pero lo dejo registrado: parece que los modelos Gemma 2 fueron entrenados con aprendizaje por refuerzo ajustado al rendimiento de Chat Arena: https://x.com/natolambert/status/1806384821826109597
Se destaca la parte relevante del paper
Me da curiosidad saber cuál es su fortaleza más destacada
Los modelos pequeños suelen rendir bien en benchmarks, pero muchas veces fallan en generalización; me recuerda a Phi-2
Parece ser efecto de mejores datos de entrenamiento en idiomas distintos del inglés
En prompts difíciles en inglés queda 15 ELO por debajo de Llama-3-70B, y en inglés general, 41 ELO por debajo
Esto último sí es estadísticamente significativo
Saludos de nuevo desde el equipo de Gemma
Estamos muy contentos de lanzar esta versión y responderemos si hay preguntas
Las opiniones son personales y no representan la postura de Google DeepMind
En cambio, entender cómo funciona y cómo cobra Google Cloud Vertex es más complejo, y Azure y AWS son igual de complejos para este uso
Sería bueno que Google Cloud ofreciera una API y un servicio compatibles con OpenAI
Sé que es otro departamento, pero haría mucho más fácil usar los modelos
Muchas veces Google Cloud se siente como si no hubiera pasado por pruebas de UX ni con usuarios finales
aistudio.google.com definitivamente mejoró respecto de antes
27b se puede probar en www.aistudio,google.com, así que espero que pruebes tus prompts habituales y que te gusten las respuestas
Me gustaría saber por qué eligieron ese enfoque en vez de ir simplemente por 8k o 16k completos
Me pregunto si se debe a una diferencia arquitectónica fundamental, a diferencias en el conjunto de entrenamiento o a otra razón
Me pregunto si 2.6B/9B no deberían compararse con Phi-3 mini 3.8B de Microsoft, más que con Mistral o Llama-3
Al comparar la tabla 13 de la página 7 del paper con la página 6 de https://arxiv.org/pdf/2404.14219, en general Phi-3 parece bastante mejor
Aun así, el reporte sobre entrenamiento por destilación de conocimiento es interesante
2.6B quedaría muy por detrás de Phi-3, por eso no hay comparación
Si uno ve 2.6B frente a 3.8B quizá no se percibe tanto, pero si se piensa como 2,600 millones frente a 3,800 millones, es una diferencia de tamaño bastante grande, así que puede ser por eso
Pero luego empieza a aparecer esta inflación de parámetros, como Mistral 7B vs. Llama 8B vs. Gemma 9B
Desde que Llama 3 pasó a 8B me preocupaba que surgiera una tendencia a jugar con la cantidad de parámetros, aunque pensé que era una preocupación infundada
Coincido en que la familia Phi-3 es un buen punto de comparación porque es un competidor más fuerte en extracción/resumen de conocimiento
Para este tipo de tareas en una estación de trabajo con VRAM limitada, mi favorito actual es Phi-3 medium, es decir, phi3:14b-instruct
Las versiones 9B y 27B están disponibles en Ollama: https://ollama.com/library/gemma2
El modelo 27B también se puede usar en AI Studio
https://aistudio.google.com/app/prompts/new_chat?model=gemma...
Hasta ahora parece bastante potente para su tamaño
Excelente lanzamiento.
Si quieren probarlo localmente con una buena interfaz, acabo de subir una actualización con soporte para Gemma2 en la app que estoy creando [1]
1: https://msty.app
msty se ve realmente bien.
Lo guardé en favoritos para revisarlo más adelante y ver si puede reemplazar mi forma de usar una instancia de LibreChat alojada localmente.
Creo que usar modelos locales en vez de modelos remotos sería una gran mejora para muchas consultas.
Sin embargo, me pregunto si hay alguna razón para mantener msty como código cerrado en vez de open source.
Leí el “why should I trust msty” del FAQ, pero me pareció insuficiente.
Es mucho mejor que no tener ninguna identificación, pero está lejos de poder verificar la confianza leyendo el código.
Me gustaría saber por qué no lo hacen público.
Aun así, pienso probarlo.
Se ve genial, pero como es código cerrado, voy con cautela.
En Arch Linux, cuando intento guardar una clave de API de Anthropic, no pasa nada y aparece el mensaje: “If you're experiencing problems saving API keys especially on Linux, contact Discord”.
Si es un problema tan común, creo que debería haber un enlace a posibles soluciones.
Tener que agregar otro servidor de Discord solo para probarlo, y buscar la respuesta a una pregunta que seguramente ya se hizo muchas veces, es una barrera bastante grande.
Lo descargué y se ve bien.
Me gusta la vista dividida sincronizada.
Pero, a diferencia de lo anunciado en la landing page, no veo Gemma 2 ni Claude 3.5 Sonnet.
Me pregunto si hay planes para agregarlo a Chocolatey para la descarga en Windows.
Esto se ve genial.
No sé cómo no lo había visto hasta ahora, y pienso darle una vuelta.
La destilación de conocimiento es muy interesante, pero generar billones de salidas a partir de un modelo maestro grande parece tener un costo absurdo.
Me pregunto si realmente es más rentable que usar esos recursos de cómputo directamente para entrenar el modelo con más datos o más épocas.
Hasta hace 6 meses parecía que todos temían el colapso del modelo, y ahora están de moda la generación de datos sintéticos de entrenamiento y los modelos maestros.
Me pregunto si ya resolvieron el problema del colapso del modelo.
El modelo estudiante genera secuencias y el modelo maestro proporciona retroalimentación en forma de logits.
Me da curiosidad el enfoque de usar tokens especiales explícitos.
Me pregunto qué pasa si un usuario pone esos tokens en un mensaje, o si eso facilita crear algo como “ignora las instrucciones anteriores”.
¿Habrá que sanitizar la entrada manualmente antes de pasársela al modelo?
Si puedes controlar el tokenizador, puedes evitar que esos tokens aparezcan en la entrada del usuario.
Por ejemplo, en vez de usar un token especial, puedes hacer que se codifique como la representación natural de esa cadena, como “<”, “eos”, “>”.
El tokenizador de llama3 tiene una opción para controlar la tokenización de tokens especiales: https://github.com/meta-llama/llama3/blob/bf8d18cd087a4a0b3f...
Aquí se puede ver cómo se combinan los tokens especiales con la entrada del usuario: https://github.com/meta-llama/llama3/blob/bf8d18cd087a4a0b3f...
Si no puedes controlar el tokenizador, probablemente tengas que sanitizar la entrada como dices.
Me pregunto cuánto acelera el entrenamiento por destilación en términos del número de iteraciones necesarias para alcanzar un rendimiento dado.
Me gustaría saber qué significa unsafe aquí.
¿Entonces es el doble de grande que Phi 3 y bastante peor?
No sé qué me estoy perdiendo.
Phi-3 es principalmente un avance en aprendizaje por currículo.
Filtraron el conjunto de entrenamiento para quedarse con tokens de alta calidad y entrenaron con datos sintéticos, lo que dio buenos resultados.
Gemma-2 es un avance en destilación.
Entrenaron un LLM con la guía de un LLM maestro más grande, lo que dio buenos resultados.
No hay razón para no hacer ambas cosas.
Por ejemplo, Phi-3-Medium rinde mejor en benchmarks, pero en LMSYS Chatbot Arena queda muy por detrás de Llama-3-8b.
El rendimiento de Gemma más bien parece verse bajo en los benchmarks
27b actualmente está por encima de Llama3-70b en la tabla de posiciones de Chatbot Arena
En LMSYS, phi-3 small está en el puesto 52 con 1100 ELO, y el intervalo de confianza de Gemma 2 9B es de 1170~1200 ELO, entre los puestos 15 y 25
Puedes probarlo directamente aquí y compararlo de esa manera: https://aistudio.google.com/app/prompts/new_chat?model=gemma...
Me pregunto si has probado Phi 3
Es inteligente y por eso sale bien en los benchmarks, pero no es tan bueno para conversación o como chatbot
Creo que Gemma 2 será un mejor asistente de propósito general para la mayoría, mientras que Phi 3 parece más bien un LLM pequeño y sólido para usos más específicos, como resumen, RAG o aprendizaje de matemáticas