Lewati ke konten utama

Memulai dengan Codestral Mamba: Penyiapan & Aplikasi

Codestral Mamba adalah model pembuatan kode berparameter 7 miliar dari Mistral AI, memanfaatkan arsitektur Mamba untuk pengodean yang efisien dengan konteks panjang.
Diperbarui 28 Sep 2026  · 8 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Codestral Mamba dari Mistral AI adalah model bahasa khusus yang dirancang secara spesifik untuk menghasilkan kode.

Tidak seperti model berbasis Transformer tradisional, model ini memanfaatkan Mamba state-space model (SSM), yang menawarkan keunggulan dalam menangani rangkaian kode panjang sekaligus menjaga efisiensi.

Dalam artikel ini, kami akan membahas perbedaan utama antara arsitektur tersebut dan memandu Anda memulai dengan Codestral Mamba.

Transformers vs. Mamba: Memahami Perbedaannya

Untuk memahami mengapa Codestral Mamba menonjol, mari bandingkan arsitektur dasarnya, Mamba state-space model (SSM), dengan arsitektur Transformer tradisional.

Transformers

Model Transformer, seperti GPT-4o, menggunakan self-attention untuk menangani tugas bahasa yang kompleks dengan memfokuskan perhatian pada berbagai bagian masukan secara bersamaan.

Namun, ada masalah besar: kompleksitas kuadratik. Saat ukuran input bertambah, biaya komputasi dan penggunaan memori meningkat secara eksponensial, sehingga tidak efisien untuk urutan yang sangat panjang.

Mamba

Model Mamba, yang berbasis State Space Models (SSM), menghindari hambatan kuadratik ini, menjadikannya jauh lebih baik dalam menangani urutan panjang, bahkan hingga 1 juta token. Model ini dapat berjalan hingga lima kali lebih cepat daripada Transformer.

Mamba menyamai kinerja Transformer dan melakukan skala lebih baik pada urutan panjang. Menurut para penciptanya, Albert Gu dan Tri Dao, Mamba menawarkan inferensi cepat dan skala linear, sering kali mengungguli Transformer dengan ukuran yang sama dan menyamai yang dua kali lebih besar.

Transformers vs. Mamba

Mengapa Mamba untuk kode?

Arsitektur Mamba sangat cocok untuk pembuatan kode, di mana menjaga konteks pada urutan panjang itu penting. Berbeda dengan Transformer, yang melambat dan menghadapi masalah memori pada konteks lebih panjang, kompleksitas waktu linear Mamba dan kemampuannya menangani panjang konteks tak terbatas memastikan kinerja yang cepat dan andal pada basis kode besar.

Transformer mengalami kompleksitas kuadratik dalam mekanisme attention-nya. Setiap token melihat semua token sebelumnya saat prediksi, sehingga biaya komputasi dan memori menjadi tinggi. Hal ini membuat pelatihan dan generasi token baru semakin lambat seiring pertumbuhan ukuran konteks, sering kali menyebabkan kesalahan kehabisan memori.

Mamba mengatasi masalah ini dengan menggunakan SSM untuk komunikasi token yang efisien, menghindari kompleksitas kuadratik pada Transformer. Desainnya memungkinkan pemrosesan urutan panjang secara efisien, menjadikannya pilihan kuat untuk aplikasi yang memerlukan penanganan konteks ekstensif.

Patokan Kinerja Codestral Mamba

Codestral Mamba (7B) unggul dalam tugas-tugas terkait kode, secara konsisten melampaui model 7B lain pada tolok ukur HumanEval, yang mengukur kemampuan pembuatan kode di berbagai bahasa pemrograman.

Tolok ukur Codestral Mamba

Sumber: Mistral AI

Secara khusus, model ini meraih akurasi 75,0% pada HumanEval untuk Python, mengungguli CodeGemma-1.1 7B (61,0%), CodeLlama 7B (31,1%), dan DeepSeek v1.5 7B (65,9%). Model ini bahkan sedikit melampaui model Codestral (22B) yang lebih besar dengan akurasi 81,1%.

Pada bahasa HumanEval lainnya, Codestral Mamba terus menunjukkan performa kuat. Meski skor skrip Bash lebih rendah dibanding tolok ukur lain, model ini tetap kompetitif di kelasnya.

Yang patut dicatat, pada tolok ukur CruxE untuk pembuatan kode lintas tugas, Codestral Mamba meraih skor solid 57,8%, melampaui CodeGemma-1.1 7B dan menyamai CodeLlama 34B.

Hasil-hasil ini menyoroti efektivitas Codestral Mamba dalam tugas pembuatan dan pemahaman kode, terlebih mengingat ukurannya yang relatif lebih kecil dibanding beberapa pesaing.

Walau pengujian lebih lanjut dan perbandingan dengan lebih banyak model serta tugas akan bermanfaat, hasil awal menempatkan Codestral Mamba sebagai alternatif sumber terbuka yang menjanjikan bagi pengembang.

Menyiapkan Codestral Mamba

Mari bahas langkah-langkah yang diperlukan untuk mulai menggunakan Codestral Mamba.

Instalasi

Untuk memasang Codestral Mamba, jalankan perintah berikut:

pip install codestral_mamba

Mendapatkan kunci API

Untuk menggunakan Codestral API, Anda memerlukan kunci API. Berikut cara mendapatkannya:

  1. Buka halaman pendaftaran Mistral AI dan buat akun.
  2. Untuk api.mistral.ai, buka tab API Keys. Klik Create new key untuk membuat kunci API Anda.

Kunci API Codestral Mamba

Atur kunci API Anda di variabel lingkungan dengan perintah ini:

export MISTRAL_API_KEY='your_api_key'

Aplikasi Codestral Mamba

Sekarang setelah Codestral Mamba disiapkan, mari jelajahi beberapa contoh.

Penyelesaian kode

Jika Anda memiliki potongan kode yang belum lengkap, gunakan Codestral Mamba untuk melengkapinya. Berikut contohnya:

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.

Pembuatan fungsi

Codestral Mamba juga dapat menghasilkan fungsi dari sebuah deskripsi. Misalnya, lihat keluaran berikut untuk deskripsi: “Tolong tulis fungsi Python yang mengembalikan faktorial dari sebuah bilangan.”

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

Terakhir, Anda dapat menggunakan Codestral Mamba untuk merapikan dan meningkatkan basis kode yang ada seperti berikut:

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.

Manfaat Tambahan Codestral Mamba

Codestral Mamba menawarkan beberapa keunggulan lain yang menjadikannya pilihan menarik.

Dukungan multibahasa

Codestral Mamba mendukung lebih dari 80 bahasa pemrograman. Ini menjadikannya alat yang fleksibel bagi pengembang yang bekerja di berbagai lingkungan pemrograman, baik Anda menulis kode dalam Python, JavaScript, maupun bahasa lain yang didukung.

Jendela konteks besar

Dengan kemampuan menangani hingga 256.000 token, Codestral Mamba dapat mengelola basis kode yang lebih besar dan menjaga konteks lintas banyak berkas.

Ini sangat berguna untuk proyek kompleks di mana melacak kode dan dependensi yang ekstensif itu krusial.

Keunggulan sumber terbuka

Codestral Mamba bersifat sumber terbuka dan tersedia di bawah lisensi Apache 2.0. Artinya, kodenya transparan dan dapat diakses siapa pun untuk dilihat, dimodifikasi, atau dikontribusikan.

Sifat sumber terbuka mendorong kolaborasi komunitas, memungkinkan pengembang meningkatkan dan menyesuaikan model untuk berbagai kebutuhan.

Fine-Tuning Codestral Mamba dan Penggunaan Lanjutan

Meskipun Codestral Mamba sudah menawarkan kemampuan mengesankan sejak awal, Anda dapat lebih meningkatkan kinerjanya dan menyesuaikannya dengan kebutuhan spesifik melalui fine-tuning dan teknik prompt lanjutan.

Fine-tuning pada data kustom

Codestral Mamba dapat disesuaikan agar lebih sesuai kebutuhan spesifik Anda dengan melakukan fine-tuning pada data Anda sendiri. Proses ini melibatkan pelatihan model pada kode dan informasi yang relevan dengan domain atau basis kode Anda.

Fine-tuning meningkatkan kinerja model, membuatnya lebih efektif untuk aplikasi unik Anda serta memperbaiki akurasi dan relevansinya dalam menghasilkan kode.

Prompt lanjutan

Untuk menangani tugas yang lebih kompleks, Anda dapat menggunakan teknik prompt lanjutan dengan Codestral Mamba. Salah satu metodenya adalah chain-of-thought prompting, yang membimbing model melalui proses penalaran langkah demi langkah. Teknik ini memanfaatkan kemampuan penalaran lanjutan model untuk menangani kueri yang rumit dan menghasilkan respons yang lebih rinci serta matang.

Kesimpulan

Codestral Mamba, dengan memanfaatkan Mamba state-space model, mengatasi keterbatasan model Transformer tradisional dalam menangani urutan kode yang panjang.

Sifat sumber terbuka, dukungan multibahasa, dan kemampuannya memproses konteks besar menempatkannya sebagai alternatif bernilai bagi para pengembang.

Jika Anda ingin mempelajari lebih lanjut tentang rangkaian LLM dari Mistral, saya rekomendasikan artikel berikut:


Ryan Ong's photo
Author
Ryan Ong
LinkedIn
Twitter

Ryan adalah lead data scientist yang mengkhususkan diri dalam membangun aplikasi AI menggunakan LLM. Ia adalah kandidat PhD di bidang Pemrosesan Bahasa Alami dan Knowledge Graph di Imperial College London, tempat ia juga menyelesaikan gelar Master di Ilmu Komputer. Di luar data science, ia menulis newsletter Substack mingguan, The Limitless Playbook, di mana ia membagikan satu ide yang dapat langsung dipraktikkan dari para pemikir top dunia dan sesekali menulis tentang konsep inti AI.

Topik
Kecerdasan Buatan

Pelajari AI dengan kursus-kursus ini!

Kursus

Penyebaran dan Siklus Hidup MLOps

4 jam
13.2K
Dalam kursus ini, Anda akan mempelajari kerangka kerja MLOps modern, termasuk siklus hidup dan deployment model machine learning.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

Lihat SelengkapnyaLihat Selengkapnya