Ana içeriğe atla

Codestral Mamba ile Başlarken: Kurulum ve Uygulamalar

Codestral Mamba, Mamba mimarisini kullanarak verimli ve geniş bağlamlı kodlama sağlayan, Mistral AI tarafından geliştirilen 7 milyar parametreli bir kod üretim modelidir.
Güncel 3 Eki 2026  · 8 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Mistral AI'nin Codestral Mamba'sı, özellikle kod üretimi için tasarlanmış özel bir dil modelidir.

geleneksel Transformer tabanlı modellere kıyasla, Mamba durum-uzayı modelini (SSM) kullanır; bu da uzun kod dizilerini yönetme ve verimliliği koruma konusunda avantajlar sunar.

Bu yazıda, bu mimariler arasındaki temel farkları inceleyecek ve Codestral Mamba ile çalışmaya başlamanız için size yol göstereceğiz.

Yapay Zeka Uygulamaları Geliştirin

OpenAI API'sını kullanarak AI uygulamaları oluşturmayı öğrenin.
Ücretsiz Olarak Beceri Geliştirmeye Başlayın

Transformers vs. Mamba: Farkı Anlamak

Codestral Mamba'nın neden öne çıktığını anlamak için, temelindeki Mamba durum-uzayı modelini (SSM) geleneksel Transformer mimarisiyle karşılaştıralım.

Transformers

GPT-4o gibi Transformer modelleri, girdinin farklı kısımlarına aynı anda odaklanarak karmaşık dil görevlerini ele almak için öz-dikkat mekanizmasını kullanır.

Ancak büyük bir sorunları vardır: kuadratik karmaşıklık. Girdi boyutu büyüdükçe, hesaplama maliyeti ve bellek kullanımı katlanarak artar; bu da çok uzun dizilerde verimsizliğe yol açar.

Mamba

Durum Uzayı Modellerine (SSM) dayanan Mamba modelleri, bu kuadratik darboğazı aşarak 1 milyon tokene kadar uzun dizileri yönetmede çok daha başarılıdır. Transformer'lara kıyasla beş kata kadar daha hızlı çalışabilirler.

Mamba, Transformer'larla benzer performans gösterir ve uzun dizilerde daha iyi ölçeklenir. Yaratıcıları Albert Gu ve Tri Dao'ya göre Mamba, hızlı çıkarım ve doğrusal ölçeklenme sunar; sıklıkla aynı boyuttaki Transformer'ları geride bırakır ve iki kat büyük olanlarla başa baş performans sergiler.

Transformers vs. Mamba

Neden kod için Mamba?

Mamba'nın mimarisi, uzun diziler boyunca bağlamı korumanın önemli olduğu kod üretimi için oldukça uygundur. Daha uzun bağlamlarda yavaşlayan ve bellek sorunları yaşayan Transformer'ların aksine, Mamba'nın doğrusal zaman karmaşıklığı ve sonsuz bağlam uzunluklarını ele alabilme yeteneği, büyük kod tabanlarında hızlı ve güvenilir performans sağlar.

Transformer'lar, dikkat mekanizmalarındaki kuadratik karmaşıklıktan muzdariptir. Her bir belirteç, tahmin sırasında önceki tüm belirteçlere bakar; bu da yüksek hesaplama ve bellek maliyetlerine yol açar. Bağlam boyutu büyüdükçe eğitim ve yeni belirteç üretimi giderek yavaşlar ve sıklıkla bellek taşması hatalarına neden olur.

Mamba, verimli belirteç iletişimi için bir SSM kullanarak bu sorunları çözer ve Transformer'lardaki kuadratik karmaşıklıktan kaçınır. Tasarımı, uzun dizileri verimli biçimde işlemesine olanak tanır; bu da geniş bağlam yönetimi gerektiren uygulamalar için güçlü bir seçenek yapar.

Codestral Mamba Karşılaştırmaları

Codestral Mamba (7B), kodla ilgili görevlerde parlıyor ve çoklu programlama dillerinde kod üretim yeteneklerini ölçen HumanEval kıyaslamasında diğer 7B modelleri tutarlı şekilde geride bırakıyor.

Codestral Mamba benchmarks

Kaynak: Mistral AI

Özellikle Python için HumanEval'de %75,0 doğruluk elde ederek CodeGemma-1.1 7B (%61,0), CodeLlama 7B (%31,1) ve DeepSeek v1.5 7B (%65,9) modellerini geride bırakıyor. Hatta daha büyük Codestral (22B) modelini %81,1 doğrulukla yakın takip ediyor.

Diğer HumanEval dillerinde de Codestral Mamba güçlü performansını sürdürüyor. Bash betik puanı diğer kıyaslamalara göre daha düşük olsa da, kendi sınıfında rekabetçi kalıyor.

Görevler arası kod üretimi için CruxE kıyaslamasında Codestral Mamba %57,8 gibi sağlam bir puan alarak CodeGemma-1.1 7B'yi aşıyor ve CodeLlama 34B ile başa baş geliyor.

Bu kıyaslama sonuçları, özellikle bazı rakiplerle karşılaştırıldığında nispeten küçük boyutuna rağmen, Codestral Mamba'nın kod üretimi ve anlama görevlerindeki etkinliğini vurguluyor.

Daha geniş bir model ve görev yelpazesiyle yapılacak ek testler ve karşılaştırmalar faydalı olsa da, ilk sonuçlar Codestral Mamba'yı geliştiriciler için umut vadeden bir açık kaynak alternatif olarak konumlandırıyor.

Codestral Mamba'nın Kurulumu

Codestral Mamba ile başlamanız için gereken adımları gözden geçirelim.

Kurulum

Codestral Mamba'yı kurmak için aşağıdaki komutu çalıştırın:

pip install codestral_mamba

API anahtarı alma

Codestral API'yi kullanmak için bir API anahtarına ihtiyacınız olacak. İşte nasıl alacağınız:

  1. Mistral AI kayıt sayfasına gidin ve bir hesap oluşturun.
  2. api.mistral.ai için API Keys sekmesine gidin. API anahtarınızı oluşturmak için Create new key seçeneğine tıklayın.

Codestral Mamba API Key

API anahtarınızı aşağıdaki komutla ortam değişkenlerinize ekleyin:

export MISTRAL_API_KEY='your_api_key'

Codestral Mamba'nın Uygulamaları

Artık Codestral Mamba'yı kurduğumuza göre, birkaç örneğe bakalım.

Kod tamamlama

Eksik bir kod parçanız varsa, tamamlamak için Codestral Mamba'yı kullanabilirsiniz. İşte bir örnek:

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.

Fonksiyon üretimi

Codestral Mamba, bir açıklamadan fonksiyon da üretebilir. Örneğin, şu açıklama için alınan çıktıyı aşağıda görebilirsiniz: “Lütfen bir sayının faktöriyelini döndüren bir Python fonksiyonu yazın.”

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.

Yeniden düzenleme (refactoring)

Son olarak, mevcut kod tabanınızı iyileştirmek ve yeniden düzenlemek için Codestral Mamba'yı aşağıdaki gibi kullanabilirsiniz:

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.

Codestral Mamba'nın Ek Avantajları

Codestral Mamba'yı cazip bir seçenek yapan çeşitli başka avantajlar da vardır.

Çok dilli destek

Codestral Mamba 80'in üzerinde programlama dilini destekler. Bu da Python, JavaScript veya desteklenen diğer dillerde çalışan geliştiriciler için esnek bir araç olmasını sağlar.

Geniş bağlam penceresi

256.000 tokene kadar işleyebilme yeteneği sayesinde Codestral Mamba daha büyük kod tabanlarını yönetebilir ve birden fazla dosya arasında bağlamı koruyabilir.

Bu, kapsamlı kod ve bağımlılıkların takibinin kritik olduğu karmaşık projeler için özellikle faydalıdır.

Açık kaynak avantajları

Codestral Mamba açık kaynaktır ve Apache 2.0 lisansı altında sunulmaktadır. Bu, kodunun herkes tarafından görüntülenebilir, değiştirilebilir ve katkıda bulunulabilir olduğu anlamına gelir.

Açık kaynak doğası topluluk işbirliğini teşvik eder; geliştiricilerin modeli çeşitli ihtiyaçlara göre iyileştirmesine ve uyarlamasına olanak tanır.

Codestral Mamba'nın İnce Ayarı ve İleri Düzey Kullanım

Codestral Mamba, kutudan çıktığı haliyle etkileyici yetenekler sunsa da, performansını daha da artırmak ve ihtiyaçlarınıza göre uyarlamak için ince ayar ve ileri istem teknikleri kullanabilirsiniz.

Özel verilerle ince ayar

Codestral Mamba, kendi verilerinizle ince ayar yapılarak belirli ihtiyaçlarınıza daha iyi uyacak şekilde özelleştirilebilir. Bu süreç, modeli alanınıza veya kod tabanınıza özgü kod ve bilgiler üzerinde eğitmeyi içerir.

İnce ayar, modelin performansını artırarak benzersiz uygulamalarınız için daha etkili hale getirir ve kod üretiminde doğruluğunu ve ilgililiğini yükseltir.

İleri düzey istemler

Daha karmaşık görevleri ele almak için Codestral Mamba ile gelişmiş istemleme tekniklerini kullanabilirsiniz. Bu yöntemlerden biri, modeli adım adım akıl yürütme sürecinde yönlendirmeyi içeren chain-of-thought prompting tekniğidir. Bu yaklaşım, modelin gelişmiş akıl yürütme yeteneklerinden yararlanarak karmaşık sorguları ele almasına ve daha ayrıntılı, düşünülmüş yanıtlar üretmesine yardımcı olur.

Sonuç

Mamba durum-uzayı modelinden yararlanan Codestral Mamba, uzun kod dizilerini ele almada geleneksel Transformer modellerinin sınırlamalarını giderir.

Açık kaynak yapısı, çok dilli desteği ve büyük bağlamları işleyebilme yeteneğiyle geliştiriciler için değerli bir alternatif konumundadır.

Mistral’ın LLM paketleri hakkında daha fazla bilgi edinmek isterseniz, şu blog yazılarını öneririm:


Ryan Ong's photo
Author
Ryan Ong
LinkedIn
Twitter

Ryan, LLM'ler kullanarak yapay zeka uygulamaları geliştirme konusunda uzmanlaşmış kıdemli bir veri bilimcisidir. Imperial College London'da Doğal Dil İşleme ve Bilgi Grafiklerinde doktora adayıdır ve aynı kurumda Bilgisayar Bilimleri alanında yüksek lisansını tamamlamıştır. Veri bilimi dışında, haftalık Substack bülteni The Limitless Playbook'u yayımlar; burada dünyanın önde gelen düşünürlerinden uygulanabilir tek bir fikri paylaşır ve zaman zaman temel yapay zeka kavramları hakkında yazar.

Konular
Yapay Zeka

Bu kurslarla yapay zekâyı öğrenin!

Kurs

MLOps Dağıtımı ve Yaşam Döngüsü

4 sa
13.2K
Bu kursta, modern MLOps çerçevesini inceleyerek makine öğrenimi modellerinin yaşam döngüsünü ve dağıtımını keşfedeceksiniz.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör