Ir al contenido principal

Primeros pasos con Codestral Mamba: configuración y aplicaciones

Codestral Mamba es un modelo de generación de código de 7.000 millones de parámetros de Mistral AI que utiliza la arquitectura Mamba para programar con eficiencia y contextos extendidos.
Actualizado 17 sept 2026  · 8 min leer

Explorar con IA

ChatGPTClaudePerplexity

Codestral Mamba de Mistral AI es un modelo de lenguaje especializado, diseñado específicamente para generar código.

A diferencia de los modelos tradicionales basados en Transformers, utiliza el modelo de espacio de estados Mamba (SSM), lo que aporta ventajas al manejar secuencias de código largas manteniendo la eficiencia.

En este artículo, veremos las diferencias clave entre estas arquitecturas y te guiaremos para empezar con Codestral Mamba.

Desarrollar aplicaciones de IA

Aprende a crear aplicaciones de IA utilizando la API OpenAI.
Empieza a Hacer Upskilling Gratis

Transformers vs. Mamba: entendiendo la diferencia

Para entender por qué Codestral Mamba destaca, comparemos su arquitectura subyacente, el modelo de espacio de estados Mamba (SSM), con la arquitectura Transformer tradicional.

Transformers

Los modelos Transformer, como GPT-4o, usan autoatención para abordar tareas complejas de lenguaje centrándose en distintas partes de la entrada a la vez.

Sin embargo, tienen un problema importante: complejidad cuadrática. A medida que crece el tamaño de la entrada, su coste computacional y uso de memoria aumentan de forma exponencial, lo que los vuelve ineficientes con secuencias muy largas.

Mamba

Los modelos Mamba, basados en State Space Models (SSM), evitan este cuello de botella cuadrático, por lo que son mucho mejores manejando secuencias largas, incluso de hasta 1 millón de tokens. Pueden funcionar hasta cinco veces más rápido que los Transformers.

Mamba iguala el rendimiento de los Transformers y escala mejor con secuencias largas. Según sus creadores, Albert Gu y Tri Dao, Mamba ofrece inferencia rápida y escalado lineal, superando a menudo a Transformers del mismo tamaño y alcanzando a los que doblan su tamaño.

Transformers vs. Mamba

¿Por qué Mamba para código?

La arquitectura de Mamba encaja especialmente bien en la generación de código, donde mantener el contexto en secuencias largas es clave. A diferencia de los Transformers, que se ralentizan y afrontan problemas de memoria con contextos extensos, la complejidad temporal lineal de Mamba y su capacidad para manejar longitudes de contexto prácticamente infinitas garantizan un rendimiento rápido y fiable en bases de código grandes.

Los Transformers sufren complejidad cuadrática en su mecanismo de atención. Cada token observa todos los tokens previos durante la predicción, lo que genera altos costes computacionales y de memoria. Esto hace que el entrenamiento y la generación de nuevos tokens sean cada vez más lentos a medida que crece el contexto, provocando a menudo errores por desbordamiento de memoria.

Mamba resuelve estos problemas usando un SSM para comunicar tokens de forma eficiente, evitando la complejidad cuadrática de los Transformers. Su diseño le permite procesar secuencias largas con eficiencia, siendo una gran opción para aplicaciones que requieren manejar mucho contexto.

Benchmarks de Codestral Mamba

Codestral Mamba (7B) destaca en tareas relacionadas con código, superando de forma consistente a otros modelos de 7B en el benchmark HumanEval, que mide la capacidad de generación de código en múltiples lenguajes de programación.

Benchmarks de Codestral Mamba

Fuente: Mistral AI

Concretamente, logra un impresionante 75,0% de acierto en HumanEval para Python, superando a CodeGemma-1.1 7B (61,0%), CodeLlama 7B (31,1%) y DeepSeek v1.5 7B (65,9%). Incluso supera por poco al modelo Codestral (22B) con un 81,1% de precisión.

En otros lenguajes de HumanEval, Codestral Mamba mantiene un rendimiento sólido. Aunque su puntuación en scripting Bash es más baja que en otros benchmarks, sigue siendo competitivo en su categoría.

Destaca también en el benchmark CruxE para generación de código entre tareas, donde Codestral Mamba obtiene un 57,8%, superando a CodeGemma-1.1 7B y equiparándose a CodeLlama 34B.

Estos resultados subrayan la eficacia de Codestral Mamba en tareas de generación y comprensión de código, especialmente si tenemos en cuenta su tamaño relativamente menor frente a algunos competidores.

Aunque sería útil probarlo y compararlo con un abanico más amplio de modelos y tareas, los resultados iniciales sitúan a Codestral Mamba como una prometedora alternativa open source para desarrolladores.

Configuración de Codestral Mamba

Veamos los pasos necesarios para empezar con Codestral Mamba.

Instalación

Para instalar Codestral Mamba, ejecuta el siguiente comando:

pip install codestral_mamba

Cómo obtener una clave de API

Para usar la API de Codestral, necesitas una clave de API. Así es como puedes conseguirla:

  1. Ve a la página de registro de Mistral AI y crea una cuenta.
  2. Para api.mistral.ai, ve a la pestaña API Keys. Haz clic en Create new key para generar tu clave.

Clave de API de Codestral Mamba

Configura tu clave de API en las variables de entorno con este comando:

export MISTRAL_API_KEY='your_api_key'

Aplicaciones de Codestral Mamba

Ahora que ya hemos configurado Codestral Mamba, veamos algunos ejemplos.

Autocompletado de código

Si tienes un fragmento de código incompleto, usa Codestral Mamba para completarlo. Aquí tienes un ejemplo:

import os
from mistralai.client import MistralClient
from mistralai.models.chat_completion import ChatMessage
api_key = os.environ["MISTRAL_API_KEY"]
client = MistralClient(api_key=api_key)
model = "codestral-mamba-latest"
messages = [
    ChatMessage(role="user", content="Please complete the following function: \\n def calculate_area_of_square(side_length):\\n    # missing part here")
]
chat_response = client.chat(
    model=model,
    messages=messages
)
print(chat_response.choices[0].message.content)
The function calculate_area_of_square(side_length) is designed to calculate the area of a square given its side length.
The area of a square can be calculated by squaring the length of one of its sides. Therefore, the function simply needs to multiply the side length by itself to get the area.
Here is how you can complete the function:
def calculate_area_of_square(side_length):
    area = side_length * side_length
    return area
You can also write this function in a more concise way using the exponentiation operator **:
def calculate_area_of_square(side_length):
    return side_length ** 2
Both of these functions will correctly calculate and return the area of a square given its side length.

Generación de funciones

Codestral Mamba también puede generar una función a partir de una descripción. Por ejemplo, este es el resultado para la petición: «Please write me a Python function that returns the factorial of a number.»

import os
from mistralai.client import MistralClient
from mistralai.models.chat_completion import ChatMessage
client = MistralClient(api_key=api_key)
model = "codestral-mamba-latest"
messages = [
    ChatMessage(role="user", content="Please write me a Python function that returns the factorial of a number")
]
chat_response = client.chat(
    model=model,
    messages=messages
)
print(chat_response.choices[0].message.content)
Sure, here's a simple Python function that calculates the factorial of a number:
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
This function uses recursion, a method in which a function calls itself. The base case is when n is 0, in which case the function returns 1. For any other value, the function returns n multiplied by the factorial of n-1.

Refactorización

Por último, puedes usar Codestral Mamba para refactorizar y mejorar tu base de código existente como sigue:

import os
from mistralai.client import MistralClient
from mistralai.models.chat_completion import ChatMessage
api_key = os.environ["MISTRAL_API_KEY"]
client = MistralClient(api_key=api_key)
model = "codestral-mamba-latest"
messages = [
    ChatMessage(role="user", content="""Please improve / refactor the following Python function: \\n```python
def fibonacci(n: int) -> int:
    if n <= 0:
        return \"Input should be a positive integer.\"
    elif n == 1:
        return 0
    elif n == 2:
        return 1
    else:
        a, b = 0, 1
        for _ in range(2, n):
            a, b = b, a + b
        return b
```""")
]
chat_response = client.chat(
    model=model,
    messages=messages
)
print(chat_response.choices[0].message.content)
The provided Python function is already quite well-written and efficient. However, it could be improved by adding some type hints for clarity and to provide better documentation. Here's a refactored version of the function:
def fibonacci(n: int) -> int:
    """
    Calculates the nth Fibonacci number.

    Args:
    n (int): The position of the Fibonacci number to be calculated.

    Returns:
    int: The nth Fibonacci number.
    """

    if not isinstance(n, int) or n <= 0:
        raise ValueError("Input should be a positive integer.")

    if n <= 2:
        return n - 1
    else:
        a, b = 0, 1
        for _ in range(2, n):
            a, b = b, a + b
        return b

I've added a docstring to the function to explain what it does. I've also added some input validation to check that the input is a positive integer and to raise a meaningful error if it's not. I've also adjusted the base cases to return `n - 1` for `n <= 2` to make the function more concise and easier to understand.

Ventajas adicionales de Codestral Mamba

Codestral Mamba ofrece varias ventajas más que lo convierten en una opción muy atractiva.

Soporte multilenguaje

Codestral Mamba es compatible con más de 80 lenguajes de programación. Esto lo convierte en una herramienta flexible para desarrolladores que trabajan en distintos entornos, ya sea que programes en Python, JavaScript u otro lenguaje compatible.

Ventana de contexto amplia

Con capacidad para manejar hasta 256.000 tokens, Codestral Mamba puede trabajar con bases de código más grandes y mantener el contexto entre múltiples archivos.

Esto es especialmente útil en proyectos complejos donde es crucial seguir la pista a mucho código y a sus dependencias.

Ventajas del open source

Codestral Mamba es open source y está disponible bajo la licencia Apache 2.0. Esto significa que su código es transparente y accesible para que cualquiera lo vea, modifique o contribuya.

La naturaleza abierta fomenta la colaboración de la comunidad, permitiendo a los desarrolladores mejorar y adaptar el modelo a distintas necesidades.

Ajuste fino de Codestral Mamba y uso avanzado

Aunque Codestral Mamba ya ofrece capacidades muy potentes desde el primer momento, puedes mejorar aún más su rendimiento y adaptarlo a tus necesidades mediante fine-tuning y técnicas avanzadas de prompting.

Ajuste fino con datos propios

Puedes personalizar Codestral Mamba para ajustarlo mejor a tus necesidades entrenándolo con tus propios datos. Este proceso implica entrenar el modelo con código e información relevantes para tu dominio o base de código.

El ajuste fino mejora el rendimiento del modelo, haciéndolo más eficaz para tus aplicaciones y aumentando su precisión y relevancia al generar código.

Prompts avanzados

Para abordar tareas más complejas, puedes usar técnicas de prompting avanzadas con Codestral Mamba. Una de ellas es el chain-of-thought prompting, que consiste en guiar al modelo mediante un razonamiento paso a paso. Esta técnica aprovecha sus capacidades avanzadas de razonamiento para resolver consultas complejas y ofrecer respuestas más detalladas y meditadas.

Conclusión

Codestral Mamba, basado en el modelo de espacio de estados Mamba, solventa las limitaciones de los Transformers tradicionales al manejar secuencias de código largas.

Su naturaleza open source, el soporte multilenguaje y la capacidad de procesar contextos amplios lo posicionan como una alternativa de gran valor para desarrolladores.

Si quieres saber más sobre la suite de LLMs de Mistral, te recomiendo estos artículos:

Obtén una certificación superior en IA

Demuestra que puedes utilizar la IA de forma eficaz y responsable.

Ryan Ong's photo
Author
Ryan Ong
LinkedIn
Twitter

Ryan es un científico de datos líder especializado en la creación de aplicaciones de IA utilizando LLMs. Es candidato al doctorado en Procesamiento del Lenguaje Natural y Grafos de Conocimiento en el Imperial College de Londres, donde también completó su máster en Informática. Fuera de la ciencia de datos, escribe un boletín semanal de Substack, The Limitless Playbook, donde comparte una idea procesable de los mejores pensadores del mundo y ocasionalmente escribe sobre conceptos básicos de la IA.

Temas
Inteligencia Artificial

¡Aprende IA con estos cursos!

Curso

Despliegue y ciclo de vida en MLOps

4 h
12.9K
En este curso, explorarás el marco moderno de MLOps y analizarás el ciclo de vida y la implementación de los modelos de machine learning.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado
Machine Learning

blog

33 proyectos de machine learning para todos los niveles en 2026

Proyectos de machine learning para principiantes, estudiantes de último año y profesionales. La lista incluye proyectos guiados, tutoriales y código fuente de ejemplo.
Abid Ali Awan's photo

Abid Ali Awan

15 min

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

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

Tutorial de DeepSeek-Coder-V2: Ejemplos, instalación, puntos de referencia

DeepSeek-Coder-V2 es un modelo de lenguaje de código de código abierto que rivaliza con el rendimiento de GPT-4, Gemini 1.5 Pro, Claude 3 Opus, Llama 3 70B o Codestral.
Dimitri Didmanidze's photo

Dimitri Didmanidze

8 min

Tutorial

Tutorial sobre cómo crear aplicaciones LLM con LangChain

Explore el potencial sin explotar de los grandes modelos lingüísticos con LangChain, un marco Python de código abierto para crear aplicaciones avanzadas de IA.
Moez Ali's photo

Moez Ali

12 min

Tutorial

Ajuste fino de LLaMA 2: Guía paso a paso para personalizar el modelo de lenguaje grande

Aprende a ajustar Llama-2 en Colab utilizando nuevas técnicas para superar las limitaciones de memoria y computación y hacer más accesibles los grandes modelos lingüísticos de código abierto.
Abid Ali Awan's photo

Abid Ali Awan

12 min

Ver MásVer Más