Saltar al contenido principal

¿Qué es el Codestral de Mistral? Características principales, casos de uso y limitaciones

Codestral es el primer modelo de IA generativa de peso abierto de Mistral AI diseñado para tareas de generación de código, que automatiza la finalización, generación y comprobación de código en múltiples lenguajes.
Actualizado 29 jul 2024  · 8 min de lectura

La generación de código es un aspecto cada vez más importante del desarrollo de software moderno. Mistral AI ha entrado recientemente en este ámbito con Codestral, su primer modelo de código.

En este artículo, te proporcionaremos una visión general de Codestral, explorando sus características y funcionalidades.

También compartiré mi experiencia práctica con el modelo, incluyendo ejemplos de cómo lo he utilizado para generar código.

Si quieres saber más sobre Mistral, consulta esta guía completa para trabajar con el modelo grande de Mistral.

¿Qué es Codestral?

Codestral es un modelo de IA generativa de peso abierto diseñado específicamente para tareas de generación de código; "peso abierto" significa que los parámetros aprendidos del modelo están disponibles libremente para la investigación y el uso no comercial, lo que permite una mayor accesibilidad y personalización.

Codestral ofrece a los desarrolladores una forma flexible de escribir e interactuar con el código a través de una instrucción compartida y un punto final de la API de finalización. Esto significa que podemos proporcionar a Codestral instrucciones en lenguaje natural o fragmentos de código, y puede generar las salidas de código correspondientes.

La capacidad única de Codestral para entender tanto el código como el lenguaje natural lo convierte en una herramienta versátil para tareas como completar código, generar código a partir de descripciones en lenguaje natural e incluso responder preguntas sobre fragmentos de código. Esto abre un amplio abanico de posibilidades para crear herramientas potenciadas por IA que puedan agilizar nuestro flujo de trabajo de desarrollo.

Características principales de Codestral

Codestral ofrece varias características notables que mejoran su utilidad para la generación de código. Veámoslo más de cerca.

Dominio de más de 80 lenguajes de programación

Una de las capacidades más impresionantes de Codestral es su dominio de más de 80 lenguajes de programación. Este amplio espectro de soporte de lenguajes incluye no sólo lenguajes populares como Python, Java, C, C++ y JavaScript, sino que también se extiende a lenguajes más especializados utilizados en dominios específicos o para tareas de nicho (como Swift o Fortran).

Esta amplia fluidez significa que Codestral puede ser un activo valioso para proyectos en los que intervienen varios idiomas o para equipos en los que los desarrolladores trabajan con distintos idiomas. Tanto si estamos trabajando en un proyecto de ciencia de datos en Python, construyendo una aplicación web con JavaScript o abordando una tarea de programación de sistemas en C++, Codestral puede adaptarse a nuestras necesidades y proporcionar soporte de generación de código en un conjunto diverso de lenguajes.

Generación de código

La función principal de Codestral es la generación de código. Su objetivo es agilizar nuestro flujo de trabajo de codificación automatizando tareas como la finalización de funciones de código, la generación de casos de prueba y el relleno de segmentos de código que faltan.

El mecanismo de relleno en el medio está diseñado para ayudar cuando se trabaja con bases de código complejas o lenguajes desconocidos. Si son eficaces, estas funciones podrían liberar tiempo para el diseño de alto nivel y la resolución de problemas, lo que llevaría a ciclos de desarrollo más rápidos y a una mayor fiabilidad del código.

Peso abierto

Un aspecto notable de Codestral es su naturaleza de peso abierto. Esto significa que los parámetros aprendidos del modelo son de libre acceso para la investigación y el uso no comercial.

Esta accesibilidad abierta fomenta un entorno de colaboración, que permite a los desarrolladores e investigadores experimentar con el modelo, ajustarlo para tareas específicas y contribuir a su desarrollo continuo.

Esta apertura no sólo democratiza el acceso a potentes capacidades de generación de código, sino que también fomenta la transparencia y la innovación dentro de la comunidad de la IA.

Rendimiento y eficacia

Mistral AI afirma que Codestral establece un nuevo estándar en rendimiento y latencia de generación de código, superando a otros modelos en determinadas pruebas comparativas. Su gran ventana de contexto (32k tokens) mejora potencialmente su capacidad para manejar tareas de completado de código de largo alcance.

Vamos a hablar del rendimiento y la eficacia con más detalle en la siguiente sección.

Comparación del Codestral con otros modelos

Para comprender mejor las capacidades de Codestral, comparemos su rendimiento con el de otros destacados modelos de generación de código. En las secciones siguientes se profundizará en los resultados de los puntos de referencia específicos y se destacarán las diferencias clave.

Ventana contextual

Empecemos por ver estos resultados:

Ventana contextual codestral más grande

Codestral destaca por su rendimiento superior en tareas de finalización de código de largo alcance (RepoBench), probablemente debido a su mayor ventana de contexto de 32k tokens. Esta ventana más amplia le permite considerar más código circundante, lo que da lugar a mejores predicciones. Codestral también destaca en la prueba comparativa HumanEval en Python, demostrando su capacidad para generar código preciso.

Mientras que Codestral obtiene buenos resultados en áreas específicas, otros modelos como DeepSeek Coder destacan en diferentes puntos de referencia (MBPP).

A pesar de ser uno de los modelos LLM más pequeños en comparación con otros, el rendimiento de Codestral suele ser mejor o al menos comparable al de modelos mucho mayores como Llama 3 70B en todos los lenguajes de programación, tanto en la generación de código como en las tareas de relleno en el medio.

Rendimiento de relleno

Veamos ahora el rendimiento del relleno en el medio (FIM):

Comparación del rendimiento de Codestral fill-in-the-middle

Codestral 22B demuestra un rendimiento significativamente superior en los tres lenguajes de programación (Python, JavaScript y Java) y en la media general FIM en comparación con DeepSeek Coder 33B. Esto sugiere la eficacia de Codestral para comprender el contexto del código y rellenar con precisión los segmentos de código que faltan.

Sin embargo, el punto de referencia sólo compara el rendimiento de Codestral con DeepSeek Coder 33B y no incluye datos de CodeLlama 70B o Llama 3 70B. Esto limita el alcance de la comparación y las conclusiones que pueden extraerse respecto al rendimiento de Codestral en relación con otros modelos.

HumanEval

La prueba HumanEval mide la precisión de la generación de código probando la capacidad de los modelos para generar código que supere las pruebas unitarias escritas por humanos basándose en descripciones de funciones. Veamos ahora cómo se compara Codestral con otros modelos en la prueba comparativa HumanEval:

Evaluación comparativa Codestral HumanEval

Codestral demuestra el mayor rendimiento en Python, bash, Java y PHP. Aunque otros modelos destacan en distintos idiomas, el rendimiento medio general de Codestral es líder, lo que demuestra su gran capacidad para generar código preciso en varios idiomas.

Casos de uso de Codestral

Las diversas capacidades de Codestral se prestan a varias aplicaciones prácticas dentro del ciclo de vida del desarrollo de software. Exploremos algunos de los casos de uso más destacados en los que Codestral puede tener un impacto significativo.

Completar y generar código

Codestral destaca en la finalización y generación de código, uno de sus principales casos de uso. Los desarrolladores pueden utilizar Codestral para sugerir complementos de código basados en el contexto circundante, lo que permite una codificación más rápida y precisa.

Además, Codestral puede generar fragmentos enteros de código a partir de descripciones o instrucciones en lenguaje natural, agilizando aún más el proceso de desarrollo y mejorando la productividad.

Aquí tienes un ejemplo rápido de lo que le pedí a Codestral que generara:

prompt = "Please write me a function that adds up two numbers"
data = {
    "model": "codestral-latest",
    "messages": [
        {
            "role": "user",
            "content": prompt
        }
    ],
    "temperature": 0
}

response = call_chat_instruct_endpoint(api_key, data)

Llamada a la API Codestral

Generación de pruebas unitarias

Codestral también simplifica la generación de pruebas unitarias para el código existente. Esta función ahorra a los desarrolladores un valioso tiempo y esfuerzo al automatizar el proceso de generación de pruebas. En consecuencia, ayuda a mejorar la calidad del código y reduce la probabilidad de errores, garantizando que los proyectos de software sigan siendo sólidos y mantenibles.

He pedido a Codestral que genere una prueba unitaria sencilla para la función que ha generado anteriormente:

prompt = """
Sure, here is a simple function in Python that adds up two numbers:

```python
def add_two_numbers(num1, num2):
    return num1 + num2

You can use this function like this:
result = add_two_numbers(5, 3)
print(result)  # Outputs: 8

This function takes two arguments, num1 and num2, and returns their sum.
def test_add_two_numbers():
"""

suffix = ""

data = {
    "model": "codestral-latest",
    "prompt": prompt,
    "suffix": suffix,
    "temperature": 0
}

response = call_fim_endpoint(api_key, data)

Llamando a la API Codestral

Traducción y refactorización del código

Las capacidades multilingües de Codestral van más allá de la generación de código. Puede traducir código entre distintos lenguajes de programación, permitiendo a los desarrolladores trabajar con bases de código existentes escritas en lenguajes desconocidos.

Además, Codestral puede ayudar a refactorizar el código para mejorar su legibilidad y mantenimiento, garantizando que los proyectos se adhieran a las mejores prácticas y normas de codificación.

Pedí a Codestral que tradujera el código Python anterior a JavaScript:

prompt = """
Please translate the following Python code to Javascript:

```python
def add_two_numbers(num1, num2):
    return num1 + num2

You can use this function like this:
result = add_two_numbers(5, 3)
print(result)  # Outputs: 8

This function takes two arguments, num1 and num2, and returns their sum.
"""

suffix = ""

data = {
    "model": "codestral-latest",
    "prompt": prompt,
    "suffix": suffix,
    "temperature": 0
}

response = call_fim_endpoint(api_key, data)

Ayuda interactiva con el código

Los desarrolladores pueden interactuar con Codestral para obtener ayuda en la depuración, comprender código desconocido y encontrar soluciones óptimas a los problemas de codificación. Esta asistencia interactiva es especialmente valiosa para los desarrolladores que trabajan en proyectos complejos o para los que están aprendiendo nuevos lenguajes y marcos de programación, ya que les proporciona apoyo y orientación a lo largo de todo el proceso de desarrollo.

Cómo empezar con Codestral

Codestral nos ofrece múltiples formas de utilizarlo:

  • Interfaz conversacional Le Chat: Se puede acceder a una versión instruida de Codestral a través de la interfaz conversacional gratuita de Mistral AI, Le Chat, que nos permite interactuar de forma natural con el modelo.
  • Descarga directa y prueba: Podemos descargar el modelo Codestral de Hugging Face con fines de investigación y prueba bajo la licencia Mistral AI Non-Production License.
  • Punto final dedicado: Existe un punto final específico (codestral.mistral.ai), sobre todo para los que integramos Codestral en nuestros IDE. Este punto final tiene claves API personales y límites de tarifa independientes, actualmente gratis durante un periodo beta.
  • La integración de la Plataforma: Codestral está integrado en La Plateforme de Mistral AI, donde podemos crear aplicaciones y acceder al modelo a través del punto final de la API estándar (api.mistral.ai), facturado por token. Es adecuado para la investigación, las consultas por lotes o el desarrollo de aplicaciones de terceros.
  • Integraciones con herramientas para desarrolladores: Codestral está integrado en varias herramientas para mejorar la productividad de los desarrolladores, como LlamaIndex y LangChain para crear aplicaciones agénticas, y Continue.dev y Tabnine para entornos VSCode y JetBrains.

Limitaciones Codestrales

Aunque Codestral es prometedor en varias tareas de generación de código, es importante que reconozcamos sus limitaciones:

  1. Rendimiento de referencia: Aunque Codestral obtiene buenos resultados en determinados puntos de referencia, el rendimiento en el mundo real puede variar en función de la complejidad de la tarea y del lenguaje de programación específico. Se recomienda probarlo a fondo en nuestro propio entorno antes de confiar plenamente en él en producción.
  2. Ventana de contexto limitada (en algunos casos): Aunque Codestral presume de una ventana de contexto de 32 k tokens para completar el código a largo plazo, ciertos casos de uso pueden requerir un contexto aún mayor para comprender plenamente las complejidades de nuestra base de código.
  3. Posible sesgo: Como ocurre con cualquier modelo de IA entrenado con código existente, Codestral puede heredar sesgos presentes en los datos de entrenamiento. Esto podría conducir a la generación de código que perpetúe inadvertidamente pautas o prácticas indeseables.
  4. Tecnología en evolución: Codestral sigue siendo un modelo relativamente nuevo, y es probable que sus capacidades y limitaciones evolucionen a medida que se siga desarrollando y perfeccionando. Es esencial que nos mantengamos al día de las últimas investigaciones y publicaciones para tomar las decisiones más informadas sobre su uso.

Conclusión

Codestral tiene el potencial de liberar nuestro tiempo para tareas más complejas de resolución de problemas y diseño, automatizando tareas como la finalización del código y la generación de pruebas.

Aunque su impacto total aún está por ver, Codestral es un desarrollo que merece la pena observar mientras exploramos el futuro de la IA en el desarrollo de software.

Si quieres aprender más sobre IA, echa un vistazo a esta pista de habilidades de seis cursos sobre Fundamentos de la IA.

Preguntas frecuentes sobre Codestral

¿Está disponible Codestral para uso comercial?

Mistral AI ofrece soluciones empresariales para las empresas interesadas en aprovechar Codestral para aplicaciones comerciales. Ponte en contacto con su equipo de ventas para obtener más información.

¿Se puede ajustar Codestral para tareas o ámbitos específicos?

Sí, Codestral es un modelo de ponderación abierta, lo que significa que sus ponderaciones son accesibles para su ajuste fino en conjuntos de datos personalizados con el fin de adaptarlo a tareas o dominios específicos.

¿Cuánto cuesta Codestral?

Codestral ofrece una versión beta gratuita con limitaciones. Los planes de pago incluyen facturación por token y soluciones empresariales con precios personalizados.

Temas

Aprende más sobre IA con estos cursos

Certificación disponible

curso

IA Generativa para Empresas

1 hr
5.2K
Aprende el papel que la Inteligencia Artificial Generativa desempeña hoy y desempeñará en el futuro en un entorno empresarial.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado
An AI juggles tasks

blog

Cinco proyectos que puedes crear con modelos de IA generativa (con ejemplos)

Aprende a utilizar modelos de IA generativa para crear un editor de imágenes, un chatbot similar a ChatGPT con pocos recursos y una aplicación clasificadora de aprobación de préstamos y a automatizar interacciones PDF y un asistente de voz con GPT.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

¿Qué es un modelo generativo?

Los modelos generativos utilizan el machine learning para descubrir patrones en los datos y generar datos nuevos. Conoce su importancia y sus aplicaciones en la IA.
Abid Ali Awan's photo

Abid Ali Awan

11 min

An avian AI exits its cage

blog

12 alternativas de código abierto a GPT-4

Alternativas de código abierto a GPT-4 que pueden ofrecer un rendimiento similar y requieren menos recursos informáticos para funcionar. Estos proyectos vienen con instrucciones, fuentes de código, pesos del modelo, conjuntos de datos e IU de chatbot.
Abid Ali Awan's photo

Abid Ali Awan

9 min

blog

7 proyectos de IA para todos los niveles

Desarrolla tu portafolio y mejora tus habilidades para crear soluciones innovadoras a problemas complejos trabajando en proyectos de IA.
Abid Ali Awan's photo

Abid Ali Awan

8 min

tutorial

Tutorial Mistral 7B: Guía paso a paso para utilizar y ajustar Mistral 7B

El tutorial cubre el acceso, la cuantización, el ajuste fino, la fusión y el almacenamiento de este potente modelo lingüístico de código abierto con 7300 millones de parámetros.
Abid Ali Awan's photo

Abid Ali Awan

12 min

tutorial

Cómo ejecutar Stable Diffusion:

Explora la IA generativa con nuestro tutorial introductorio sobre Stable Diffusion. Aprende a ejecutar el modelo de aprendizaje profundo en línea y localmente para generar imágenes detalladas.
Kurtis Pykes 's photo

Kurtis Pykes

7 min

Ver másVer más