- 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
Yi - LLM bilingüe open source de próxima generación
Yi 1.5 - LLM bilingüe open source de próxima generación
Comentarios en Hacker News
Claude 3.5 Sonnet sigue mostrando el mejor rendimiento entre los LLM para código
Yi-Coder obtiene una puntuación menor que GPT-3.5 en el benchmark de edición de código de Aider
Al probar LLM en tareas de SRE/DevOps/C#/Golang/C++, recibieron respuestas ilógicas
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
Tienen curiosidad sobre cómo configurar pequeños LLM en local
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
Preguntan por qué el tamaño del modelo se expresa por cantidad de pesos