Kurs
Codestral Mamba von Mistral AI ist ein spezialisiertes Sprachmodell, das gezielt für die Codegenerierung entwickelt wurde.
Anders als klassische Transformer-Modelle nutzt es das Mamba-Zustandsraummodell (SSM) und bietet dadurch Vorteile beim Umgang mit langen Codesequenzen bei zugleich hoher Effizienz.
In diesem Artikel schauen wir uns die wichtigsten Unterschiede zwischen den Architekturen an und führen dich Schritt für Schritt in Codestral Mamba ein.
KI-Anwendungen entwickeln
Transformer vs. Mamba: Den Unterschied verstehen
Um zu verstehen, warum Codestral Mamba heraussticht, vergleichen wir seine zugrunde liegende Architektur, das Mamba-Zustandsraummodell (SSM), mit der traditionellen Transformer-Architektur.
Transformer
Transformer-Modelle wie GPT-4o arbeiten mit Self-Attention und lösen komplexe Sprachaufgaben, indem sie gleichzeitig auf unterschiedliche Teile der Eingabe fokussieren.
Sie haben jedoch ein großes Problem: quadratische Komplexität. Mit wachsender Eingabelänge steigen Rechenaufwand und Speicherbedarf überproportional an, was bei sehr langen Sequenzen zu Ineffizienzen führt.
Mamba
Mamba-Modelle auf Basis von State-Space-Models (SSMs) umgehen diesen quadratischen Flaschenhals und sind dadurch deutlich besser im Umgang mit langen Sequenzen – bis hin zu 1 Million Tokens. Sie können bis zu fünfmal schneller laufen als Transformer.
Mamba erreicht die Leistung von Transformern und skaliert bei langen Sequenzen besser. Laut den Entwicklern Albert Gu und Tri Dao bietet Mamba schnelle Inferenz und lineare Skalierung, übertrifft oft Transformer gleicher Größe und hält mit doppelt so großen Modellen mit.

Warum Mamba für Code?
Die Mamba-Architektur eignet sich hervorragend für die Codegenerierung, bei der es wichtig ist, über lange Sequenzen hinweg Kontext zu halten. Im Gegensatz zu Transformern, die bei langen Kontexten langsamer werden und Speicherprobleme bekommen, sorgen Mambas lineare Zeitkomplexität und die Fähigkeit, quasi unbegrenzte Kontextlängen zu verarbeiten, für schnelle und zuverlässige Leistung in großen Codebasen.
Transformer leiden unter quadratischer Komplexität in ihrem Attention-Mechanismus. Jeder Token betrachtet bei der Vorhersage alle vorherigen Tokens, was zu hohen Rechen- und Speicherkosten führt. Mit wachsendem Kontext verlangsamen sich Training und Generierung zunehmend, oft bis hin zu Speicherüberläufen.
Mamba löst diese Probleme, indem ein SSM für effiziente Token-Kommunikation eingesetzt wird und so die quadratische Komplexität von Transformern umgeht. Das Design ermöglicht eine effiziente Verarbeitung langer Sequenzen und ist damit ideal für Anwendungen, die umfangreichen Kontext benötigen.
Codestral Mamba: Benchmarks
Codestral Mamba (7B) glänzt bei coderelativen Aufgaben und übertrifft im HumanEval-Benchmark zur Codegenerierung über mehrere Programmiersprachen hinweg konstant andere 7B-Modelle.

Quelle: Mistral AI
Konkret erreicht es beeindruckende 75,0% Genauigkeit auf HumanEval für Python und liegt damit vor CodeGemma-1.1 7B (61,0%), CodeLlama 7B (31,1%) und DeepSeek v1.5 7B (65,9%). Es übertrifft sogar das größere Codestral (22B) Modell mit 81,1% Genauigkeit knapp.
Auch in anderen HumanEval-Sprachen zeigt Codestral Mamba eine starke Performance. Zwar fällt die Bewertung für Bash-Skripting niedriger aus als in anderen Benchmarks, dennoch bleibt es in seiner Klasse wettbewerbsfähig.
Im CruxE-Benchmark für aufgabenübergreifende Codegenerierung erreicht Codestral Mamba bemerkenswerte 57,8% und liegt damit vor CodeGemma-1.1 7B sowie auf Augenhöhe mit CodeLlama 34B.
Diese Ergebnisse unterstreichen die Stärke von Codestral Mamba bei Aufgaben zur Codegenerierung und -verständnis, insbesondere angesichts seiner im Vergleich zu manchen Wettbewerbern geringeren Modellgröße.
Weitere Tests und Vergleiche mit einer breiteren Modell- und Aufgabenpalette wären zwar hilfreich, doch die ersten Resultate positionieren Codestral Mamba als vielversprechende Open-Source-Alternative für Entwickler.
Codestral Mamba einrichten
Schauen wir uns die Schritte an, um mit Codestral Mamba loszulegen.
Installation
Installiere Codestral Mamba mit folgendem Befehl:
pip install codestral_mamba
Einen API-Schlüssel erhalten
Um die Codestral API zu nutzen, brauchst du einen API-Schlüssel. So kommst du daran:
- Gehe zur Anmeldeseite von Mistral AI und erstelle ein Konto.
- Wechsle auf api.mistral.ai zum Tab API Keys. Klicke auf Create new key, um deinen API-Schlüssel zu generieren.

Setze deinen API-Schlüssel in den Umgebungsvariablen mit diesem Befehl:
export MISTRAL_API_KEY='your_api_key'
Anwendungsfälle für Codestral Mamba
Nachdem wir Codestral Mamba eingerichtet haben, schauen wir uns ein paar Beispiele an.
Code-Vervollständigung
Hast du einen unvollständigen Codeschnipsel, kannst du ihn mit Codestral Mamba vervollständigen. Hier ein Beispiel:
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.
Funktionsgenerierung
Codestral Mamba kann auch Funktionen aus Beschreibungen erzeugen. Zum Beispiel siehst du unten die Ausgabe zur Beschreibung: „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.
Refactoring
Zuletzt kannst du mit Codestral Mamba deinen bestehenden Code refaktorieren und verbessern, zum Beispiel so:
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.
Weitere Vorteile von Codestral Mamba
Codestral Mamba bietet weitere Pluspunkte, die es besonders attraktiv machen.
Mehrsprachige Unterstützung
Codestral Mamba unterstützt über 80 Programmiersprachen. Damit ist es ein flexibles Werkzeug für Entwickler, egal ob du in Python, JavaScript oder einer anderen unterstützten Sprache arbeitest.
Großes Kontextfenster
Mit der Fähigkeit, bis zu 256.000 Tokens zu verarbeiten, kann Codestral Mamba größere Codebasen handhaben und den Kontext über mehrere Dateien hinweg behalten.
Das ist besonders nützlich bei komplexen Projekten, in denen der Überblick über umfangreichen Code und Abhängigkeiten entscheidend ist.
Open-Source-Vorteile
Codestral Mamba ist Open Source und unter der Apache-2.0-Lizenz verfügbar. Das bedeutet: Der Code ist transparent und für alle einsehbar, veränderbar und erweiterbar.
Die Open-Source-Natur fördert Zusammenarbeit in der Community und ermöglicht es Entwicklerinnen und Entwicklern, das Modell zu verbessern und für verschiedene Anforderungen anzupassen.
Codestral Mamba feinabstimmen und fortgeschritten nutzen
Schon im Auslieferungszustand bietet Codestral Mamba starke Fähigkeiten, die du über Feinabstimmung und fortgeschrittene Prompting-Techniken weiter auf deinen Bedarf zuschneiden kannst.
Feinabstimmung auf eigenen Daten
Du kannst Codestral Mamba an deine Anforderungen anpassen, indem du es auf deinen eigenen Daten feinabstimmst. Dabei wird das Modell mit Code und Informationen trainiert, die für deine Domäne oder Codebasis relevant sind.
Feinabstimmung steigert die Leistungsfähigkeit des Modells, macht es für deine Anwendungen treffsicherer und erhöht die Relevanz der generierten Ergebnisse.
Fortgeschrittene Prompts
Für komplexere Aufgaben kannst du fortgeschrittene Prompting-Techniken mit Codestral Mamba nutzen. Eine Methode ist das Chain-of-Thought-Prompting, bei dem das Modell gezielt durch eine schrittweise Argumentation geführt wird. So lassen sich anspruchsvolle Fragestellungen strukturierter bearbeiten und fundiertere Antworten erzeugen.
Fazit
Codestral Mamba setzt auf das Mamba-Zustandsraummodell und adressiert damit die Schwächen klassischer Transformer beim Umgang mit langen Codesequenzen.
Dank Open Source, Mehrsprachigkeit und großem Kontextfenster ist es eine wertvolle Alternative für Entwickler.
Wenn du mehr über Mistrals LLM-Suite erfahren möchtest, empfehlen sich diese Blogposts:
Verdiene eine Top-KI-Zertifizierung
Ryan ist ein führender Datenwissenschaftler, der sich auf die Entwicklung von KI-Anwendungen mit LLMs spezialisiert hat. Er ist Doktorand für natürliche Sprachverarbeitung und Wissensgraphen am Imperial College London, wo er auch seinen Master in Informatik gemacht hat. Außerhalb der Datenwissenschaft schreibt er einen wöchentlichen Substack-Newsletter, The Limitless Playbook, in dem er eine umsetzbare Idee von den besten Denkern der Welt teilt und gelegentlich über zentrale KI-Konzepte schreibt.
