Tarjeta de modelo de CodeGemma

Página del modelo: CodeGemma

Recursos y documentación técnica:

Condiciones de Uso: Condiciones

Autores: Google

Información del modelo

Resumen del modelo

Descripción

CodeGemma es una familia de modelos ligeros de código abierto construidos sobre Gemma. Los modelos de CodeGemma son modelos de texto a texto y de texto a código solo con decodificador, y son Está disponible como una variante previamente entrenada de 7,000 millones que se especializa en completar código. de generación de código y código, una variante de 7,000 millones de parámetros ajustada a instrucciones seguimiento de instrucciones y chat de código, y una variante previamente entrenada de 2,000 millones de parámetros para completar el código rápidamente.

Entradas y salidas

  • Entrada: Para variantes de modelos previamente entrenados, usa prefijo de código y, opcionalmente, sufijo para situaciones de finalización y generación de código, o texto/instrucciones en lenguaje natural. Para la variante de modelo ajustado para instrucciones: texto en lenguaje natural o instrucción.

  • Resultado: Para variantes de modelos previamente entrenados: código de relleno del medio la finalización, el código y el lenguaje natural. Para la variante de modelo ajustado para instrucciones: código y lenguaje natural.

Cita

@article{codegemma_2024,
    title={CodeGemma: Open Code Models Based on Gemma},
    url={https://goo.gle/codegemma},
    author={ {CodeGemma Team} and Hartman, Ale Jakse and Hu, Andrea and Choquette-Choo, Christopher A. and Zhao, Heri and Fine, Jane and Hui,
    Jeffrey and Shen, Jingyue and Kelley, Joe and Howland, Joshua and Bansal, Kshitij and Vilnis, Luke and Wirth, Mateo and Nguyen, Nam, and Michel, Paul and Choy, Peter and Joshi, Pratik and Kumar, Ravin and Hashmi, Sarmad and Agrawal, Shubham and Zuo, Siqi and Warkentin, Tris and Gong, Zhitao et al.},
    year={2024}
}

Datos del modelo

Conjunto de datos de entrenamiento

Usando Gemma como modelo base, se usan las variantes previamente entrenadas de CodeGemma 2B y 7B más de 500,000 a 1,000,000 millones de tokens adicionales de tokens datos de lenguaje provenientes de conjuntos de datos matemáticos de código abierto y generados de forma sintética código.

Procesamiento de datos de entrenamiento

Para entrenar CodeGemma, se aplicaron las siguientes técnicas de procesamiento previo de datos:

  • FIM: Los modelos de CodeGemma previamente entrenados se centran en las tareas de relleno del medio (FIM). Los modelos se entrenan para trabajar con los modos PSM y SPM. Nuestra configuración de FIM es Tasa de FIM del 80% al 90% con PSM/SPM de 50 a 50.
  • Técnicas de empaquetado léxico de dependencias y empaquetado léxico basados en pruebas de dependencias: Para mejorar la alineación de los modelos con aplicaciones del mundo real, estructuramos el entrenamiento de ejemplo a nivel de proyecto o repositorio para colocar la fuente más relevante dentro de cada repositorio. Específicamente, empleamos dos heurísticas el empaquetado basado en grafos de dependencia y el empaquetado léxico basado en pruebas de unidades.
  • Desarrollamos una técnica novedosa para dividir los documentos en prefijos, medio y el sufijo para que el sufijo comience en una forma más natural punto en lugar de una distribución puramente aleatoria.
  • Seguridad: Al igual que Gemma, implementamos filtros de seguridad estrictos, que incluyen filtrado de datos personales, filtrado de CSAM y otros filtros basados en contenido calidad y seguridad en línea con nuestras políticas.

Información de implementación

Hardware y frameworks que se usan durante el entrenamiento

Como Gemma, CodeGemma se entrenó con la última generación de Unidad de procesamiento tensorial (TPU) hardware (TPUv5e), con JAX y AA Rutas de aprendizaje.

Información de la evaluación

Resultados de comparativas

Enfoque de evaluación

Resultados de comparativas de programación

Comparativa 2,000 MILLONES 2,000 M (1.1) 7,000 millones 7B-TI 7B-IT (1.1)
HumanEval 31,1 37.8 44.5 56.1 60,4
MBPP 43,6 49,2 56,2 54.2 55,6
Línea única de HumanEval 78.4 79.3 76,1 68,3 77,4
HumanEval, varias líneas 51.4 51,0 58.4 20.1 23,7
C++ de BC HE 24.2 19.9 32,9 42.2 46,6
C#, educación superior 10.6 26.1 22,4 26,7 54.7
BC HE Go 20,5 18.0 21,7 28.6 34.2
Bachillerato Java 29.2 29,8 41,0 48,4 50,3
JavaScript de educación superior 21,7 28.0 39,8 46,0 48,4
BC HE Kotlin 28.0 32,3 39,8 51,6 47.8
BC HE Python 21,7 36,6 42.2 48,4 54,0
BC HE Rust 26,7 24.2 34,1 36,0 37,3
BC MBPP C++ 47.1 38.9 53,8 56.7 63,5
BC MBPP C# 28,7 45,3 32,5 41.2 62.0
BC MBPP Go 45,6 38.9 43,3 46,2 53.2
Java de BC MBPP 41.8 49,7 50,3 57,3 62.9
JavaScript de BC MBPP 45,3 45.0 58.2 61.4 61.4
Kotlin de BC MBPP 46.8 49,7 54.7 59.9 62.6
BC MBPP de Python 38,6 52.9 59.1 62.0 60.2
Rust de MBPP de BC 45,3 47,4 52.9 53,5 52,3

Comparativas de lenguaje natural (en modelos 7,000 millones)

Gráfico de barras que compara Gemma, CodeGemma PT y CodeGemma IT en varias métricas de capacidad del lenguaje. Los tres modelos son aproximadamente comparables y CodeGemma mantiene una sólida comprensión del lenguaje natural.

Ética y seguridad

Evaluaciones de ética y seguridad

Enfoque de las evaluaciones

Nuestros métodos de evaluación incluyen evaluaciones estructuradas y formación interna del equipo de emergencias pruebas de políticas de contenido relevantes. La formación de equipos rojos fue llevada a cabo por varias equipos diferentes, cada uno con objetivos y métricas de evaluación humanas diferentes. Estos modelos se evaluaron frente a una serie de diferentes categorías relevantes para de ética y seguridad, lo que incluye:

  • Evaluación humana de las indicaciones sobre la seguridad y representación del contenido y los daños causados. Consulta la Tarjeta de modelo Gemma para obtener más detalles sobre el enfoque de evaluación.

  • Pruebas específicas de las capacidades de ciberdelincuencia, enfocada en las pruebas autónomas de hackear y garantizar que los daños potenciales sean limitados.

Resultados de la evaluación

Los resultados de las evaluaciones de ética y seguridad se encuentran dentro de los umbrales aceptables. para la reunión políticas internas para categorías como seguridad infantil, seguridad del contenido, daños a la representación memorización, perjuicios a gran escala. Consulta la Tarjeta de modelo Gemma para obtener más información.

Uso del modelo y limitaciones

Limitaciones conocidas

Los modelos grandes de lenguaje (LLM) tienen limitaciones según sus datos de entrenamiento y las limitaciones inherentes de la tecnología. Consulta la Tarjeta de modelo Gemma para obtener más información sobre las limitaciones de los LLM.

Consideraciones y riesgos éticos

El desarrollo de modelos grandes de lenguaje (LLM) plantea varios problemas éticos. Hemos considerado cuidadosamente varios aspectos en el desarrollo de estas e implementar modelos automáticamente.

Consulta la misma discusión en la tarjeta de modelo Gemma para obtener detalles del modelo.

Uso previsto

Aplicación

Los modelos de Code Gemma tienen una amplia gama de aplicaciones, que varían entre TI y PT. La siguiente lista de posibles usos no es exhaustiva. El de esta lista es proporcionar información contextual sobre los posibles casos de uso que los creadores de modelos consideraron como parte del entrenamiento de modelos y en el desarrollo de software.

  • Finalización de código: Los modelos PT se pueden usar para completar el código con una extensión de IDE
  • Generación de código: El modelo de TI se puede usar para generar código con o sin un IDE. extensión
  • Code Conversation: un modelo de TI puede impulsar interfaces de conversación para debatir código
  • Educación de código: El modelo de TI admite experiencias interactivas de aprendizaje de código y ayuda para corregir sintaxis o ofrece práctica de codificación

Beneficios

En el momento del lanzamiento, esta familia de modelos brindaba Implementaciones de modelos grandes de lenguaje centradas en el código diseñadas desde cero para el desarrollo de una IA responsable en comparación con modelos de tamaño similar.

Con las métricas de evaluación comparativas de programación descritas en este documento, estas han demostrado ofrecer un rendimiento superior a otros modelos de tamaño comparable alternativas de modelo abierto.