6 puntos por GN⁺ 2024-09-06 | 2 comentarios | Compartir por WhatsApp
  • Yi-Coder es un modelo de lenguaje grande (LLM) de código, de código abierto, que ofrece rendimiento de programación de vanguardia con menos de mil millones de parámetros
  • Está disponible en dos tamaños, 1.5B y 9B parámetros, y tanto la versión base como la versión de chat están diseñadas para una inferencia eficiente y un entrenamiento flexible
  • Yi-Coder-9B está construido sobre Yi-9B, con 2.4T tokens adicionales de alta calidad provenientes de un corpus de código a nivel de repositorio de GitHub y de datos relacionados con código filtrados de CommonCrawl

Características principales de Yi-Coder

  • Preentrenado con 2.4 billones (Trillion) de tokens de alta calidad en 52 lenguajes de programación principales
  • Modelado de contexto largo: permite comprender y generar código a nivel de proyecto con una ventana de contexto de hasta 128K tokens
  • Pequeño pero poderoso: Yi-Coder-9B supera a otros modelos con menos de 10 mil millones de parámetros, como CodeQwen1.5 7B y CodeGeex4 9B, e incluso alcanza un rendimiento comparable al de DeepSeek-Coder 33B

Yi-Coder ofrece un rendimiento de programación impresionante

LiveCodeBench

  • LiveCodeBench es una plataforma disponible públicamente diseñada para ofrecer una evaluación integral y justa de programación competitiva para LLM
  • Yi-Coder-9B-Chat logró una impresionante tasa de aprobación de 23.4%, y fue el único modelo con menos de 10B parámetros en superar el 20%
  • Este rendimiento supera a DeepSeek-Coder-33B-Instruct (22.3%), CodeGeex4-All-9B (17.8%), CodeLlama-34B-Instruct (13.3%) y CodeQwen1.5-7B-Chat (12%)

HumanEval, MBPP y CRUXEval-O

  • Yi-Coder-9B-Chat alcanzó una tasa de aprobación de 85.4% en HumanEval y 73.8% en MBPP, superando a otros LLM de código
  • Además, Yi-Coder 9B se convirtió en el primer LLM de código de código abierto en lograr más de 50% de precisión en CRUXEval-O

Yi-Coder destaca en edición y autocompletado de código

CodeEditorBench

  • Yi-Coder-9B logró una impresionante tasa promedio de victorias entre los LLM de código de código abierto, superando de forma constante a DeepSeek-Coder-33B-Instruct y CodeQwen1.5-7B-Chat tanto en el subconjunto Primary como en Plus

CrossCodeEval

  • Yi-Coder supera a otros modelos de tamaño similar tanto en escenarios con recuperación como sin recuperación, para conjuntos de datos de Python y Java
  • Esto valida que entrenar con longitudes de contexto más largas sobre un corpus de código a nivel de repositorio de software permite que Yi-Coder capture de forma efectiva dependencias de largo plazo, lo que contribuye a su excelente rendimiento

Yi-Coder puede modelar contexto largo de 128K

Aguja en el código

  • Para probar la capacidad de modelado de contexto largo de Yi-Coder, se creó una tarea sintética llamada "aguja en el código" que utiliza secuencias de longitud 128K
  • En esta tarea, una función personalizada simple se inserta aleatoriamente en una base de código larga, y se evalúa si el modelo puede reproducir la función al final de la base de código
  • Esto evalúa si el LLM puede extraer información clave de un contexto largo, reflejando la capacidad fundamental de comprender secuencias largas
  • Yi-Coder-9B completó esta tarea perfectamente dentro del rango de longitud de 128K

Yi-Coder también brilla en razonamiento matemático

Razonamiento matemático asistido por programas

  • Yi-Coder fue evaluado en 7 benchmarks de razonamiento matemático en la configuración PAL (Program-aided Language Models)
  • Yi-Coder-9B logró una sorprendente precisión de 70.3%, superando el 65.8% de DeepSeek-Coder-33B

Conclusión

  • Estamos liberando Yi-Coder 1.5B/9B como código abierto para la comunidad, tanto en versión base como en versión de chat
  • Yi-Coder muestra un rendimiento notable en una amplia variedad de tareas, incluidas programación general y competitiva, edición de código y completado a nivel de repositorio, comprensión de contexto largo y razonamiento matemático
  • Creemos que Yi-Coder puede ampliar los límites de los LLM de código pequeños y abrir casos de uso que aceleren y transformen el desarrollo de software

Resumen de GN⁺

  • La ventaja de Yi-Coder es que ofrece rendimiento de programación de última generación incluso con una cantidad reducida de parámetros. Esto podría permitir una excelente asistencia de programación sin requerir los enormes recursos computacionales que exigen los grandes LLM como ChatGPT
  • La capacidad de modelado de contexto largo de Yi-Coder permite comprender código a lo largo de proyectos completos, lo que parece especialmente útil en tareas de programación complejas
  • Muestra un rendimiento sobresaliente en programación competitiva, edición de código, completado a nivel de repositorio, comprensión de contexto largo y razonamiento matemático
  • Entre las herramientas representativas de asistencia de programación basadas en LLM están GitHub Copilot y Amazon CodeWhisperer. Frente a ellas, Yi-Coder tiene la ventaja de ser un modelo más liviano, aunque todavía se queda corto en funciones adicionales como plugins
  • Otros proyectos con funciones similares incluyen DeepSeek-Coder, CodeGeex4 y CodeLlama
  • La capacidad de razonamiento matemático de Yi-Coder es una parte interesante. Resolver problemas mediante programación es un enfoque diferenciado frente a los modelos de lenguaje puros, y muestra el potencial de uso de los LLM no solo en matemáticas, sino también en otras áreas

2 comentarios

 
GN⁺ 2024-09-06
Comentarios en Hacker News
  • Claude 3.5 Sonnet sigue mostrando el mejor rendimiento entre los LLM para código

    • Pero DeepSeek Coder V2 236B es más barato y eficiente
    • Están usando DeepSeek Coder V2 en Aider y en el plugin Claude Dev
  • Yi-Coder obtiene una puntuación menor que GPT-3.5 en el benchmark de edición de código de Aider

    • Sonnet: 77%
    • GPT-3.5: 58%
    • Yi-Coder-9b-Chat: 54%
    • Yi-Coder-9b-Chat-q4_0: 45%
  • Al probar LLM en tareas de SRE/DevOps/C#/Golang/C++, recibieron respuestas ilógicas

    • Ante una solicitud de escribir un script simple en Python, dio una respuesta fuera de lugar
    • También ofreció respuestas no relacionadas en varios lenguajes de programación
  • Resulta interesante la diferencia en la forma en que los ingenieros de software y los artistas reaccionan a los modelos de IA

  • Están esperando modelos especializados en lenguajes específicos

    • Los modelos actuales manejan varios lenguajes, pero hace falta uno que domine muy bien un lenguaje en particular
  • Tienen curiosidad sobre cómo configurar pequeños LLM en local

    • Preguntan si la función de autocompletado con Tab funciona en VSCode
    • Piden consejos sobre cómo configurar modelos en la nube aparte de GitHub Copilot
  • Preguntan por hardware recomendado para ejecutar modelos en una PC de escritorio local

  • Quieren ver el rendimiento de SWE-agent y Yi-Coder-9B-Chat

  • Piden una explicación del benchmark de Aider

    • Tienen curiosidad por saber por qué siempre se hacen pasar las mismas 113 pruebas
    • Cuestionan si eso realmente evalúa la capacidad general del modelo para generar y editar código
  • Preguntan por qué el tamaño del modelo se expresa por cantidad de pesos

    • Quieren saber los requisitos de RAM de GPU
    • Se preguntan qué tan importante es realmente la cantidad de pesos para un usuario común