Kursus
Pembuatan kode semakin menjadi aspek penting dalam pengembangan perangkat lunak modern. Mistral AI baru-baru ini memasuki ranah ini dengan Codestral, model kode pertamanya.
Dalam artikel ini, kami akan memberikan tinjauan komprehensif tentang Codestral, mengeksplorasi fitur dan fungsionalitasnya.
Saya juga akan berbagi wawasan dari pengalaman langsung saya menggunakan model ini, termasuk contoh bagaimana saya menggunakannya untuk menghasilkan kode.
Jika Anda ingin mempelajari lebih lanjut tentang Mistral, lihat panduan komprehensif untuk bekerja dengan model besar Mistral ini.
Apa Itu Codestral?
Codestral adalah model AI generatif open-weight yang secara khusus direkayasa untuk tugas pembuatan kode—"open-weight" berarti parameter terlatih model tersedia bebas untuk riset dan penggunaan non-komersial, sehingga lebih mudah diakses dan disesuaikan.
Codestral menawarkan cara yang fleksibel bagi pengembang untuk menulis dan berinteraksi dengan kode melalui endpoint API instruksi dan pelengkapan bersama. Artinya, kita dapat memberikan instruksi kepada Codestral dalam bahasa alami atau potongan kode, dan model ini dapat menghasilkan keluaran kode yang sesuai.
Kemampuan unik Codestral untuk memahami kode dan bahasa alami menjadikannya alat serbaguna untuk tugas seperti pelengkapan kode, pembuatan kode dari deskripsi bahasa alami, dan bahkan menjawab pertanyaan tentang cuplikan kode. Ini membuka berbagai kemungkinan untuk membuat alat berbasis AI yang dapat merampingkan alur kerja pengembangan kita.
Fitur Utama Codestral
Codestral menawarkan beberapa fitur menonjol yang meningkatkan kegunaannya untuk pembuatan kode. Mari kita lihat lebih dekat.
Fasih di lebih dari 80 bahasa pemrograman
Salah satu kemampuan paling mengesankan dari Codestral adalah kemahirannya di lebih dari 80 bahasa pemrograman. Spektrum dukungan bahasa yang luas ini tidak hanya mencakup bahasa populer seperti Python, Java, C, C++, dan JavaScript, tetapi juga meluas ke bahasa yang lebih khusus yang digunakan di domain tertentu atau untuk tugas niche (seperti Swift atau Fortran).
Kefasihan yang luas ini berarti Codestral bisa menjadi aset berharga untuk proyek yang melibatkan banyak bahasa atau untuk tim yang para pengembangnya bekerja dengan bahasa berbeda. Baik kita mengerjakan proyek data science di Python, membangun aplikasi web dengan JavaScript, atau menangani tugas pemrograman sistem di C++, Codestral dapat menyesuaikan dengan kebutuhan kita dan memberikan dukungan pembuatan kode di berbagai bahasa.
Pembuatan kode
Fungsi inti Codestral adalah pembuatan kode. Tujuannya adalah merampingkan alur kerja pemrograman kita dengan mengotomatisasi tugas seperti pelengkapan fungsi, pembuatan test case, dan mengisi segmen kode yang hilang.
Mekanisme fill-in-the-middle dirancang untuk membantu saat bekerja dengan codebase yang kompleks atau bahasa yang belum familiar. Jika efektif, fitur-fitur ini berpotensi membebaskan waktu untuk desain dan pemecahan masalah tingkat lebih tinggi, menghasilkan siklus pengembangan yang lebih cepat dan meningkatkan keandalan kode.
Open-weight
Aspek menonjol dari Codestral adalah sifatnya yang open-weight. Ini berarti parameter terlatih model dapat diakses bebas untuk riset dan penggunaan non-komersial.
Akses terbuka ini memupuk lingkungan kolaboratif, memungkinkan pengembang dan peneliti bereksperimen dengan model, menyetelnya untuk tugas spesifik, dan berkontribusi pada pengembangannya yang berkelanjutan.
Keterbukaan ini tidak hanya mendemokratisasi akses ke kemampuan pembuatan kode yang kuat, tetapi juga mendorong transparansi dan inovasi dalam komunitas AI.
Performa dan efisiensi
Mistral AI mengklaim Codestral menetapkan standar baru dalam performa pembuatan kode dan latensi, mengungguli model lain di tolok ukur tertentu. Jendela konteks yang besar (32k token) berpotensi meningkatkan kemampuannya menangani tugas pelengkapan kode jarak jauh.
Mari kita bahas performa dan efisiensi lebih detail di bagian berikutnya.
Perbandingan Codestral dengan Model Lain
Untuk lebih memahami kapabilitas Codestral, mari bandingkan performanya dengan model pembuatan kode terkemuka lainnya. Bagian berikut akan mengulas hasil tolok ukur spesifik dan menyoroti perbedaan utama.
Jendela konteks
Mari mulai dengan melihat hasil berikut:

Codestral menonjol karena performanya yang superior dalam tugas pelengkapan kode jarak jauh (RepoBench), kemungkinan berkat jendela konteks yang lebih besar, yaitu 32k token. Jendela yang lebih besar ini memungkinkan model mempertimbangkan lebih banyak kode di sekelilingnya, sehingga menghasilkan prediksi yang lebih baik. Codestral juga unggul di tolok ukur HumanEval dalam Python, menunjukkan kemampuannya menghasilkan kode yang akurat.
Walau Codestral berkinerja kuat di area tertentu, model lain seperti DeepSeek Coder unggul di tolok ukur berbeda (MBPP).
Meskipun merupakan salah satu model LLM yang lebih kecil dibandingkan yang lain, performa Codestral sering kali lebih baik atau setidaknya sebanding dengan model yang jauh lebih besar seperti Llama 3 70B di seluruh bahasa pemrograman dalam tugas pembuatan kode dan fill-in-the-middle.
Performa fill-in-the-middle
Sekarang mari lihat performa fill-in-the-middle (FIM):

Codestral 22B menunjukkan performa yang jauh lebih tinggi di ketiga bahasa pemrograman (Python, JavaScript, dan Java) serta pada rata-rata FIM keseluruhan dibandingkan DeepSeek Coder 33B. Ini menunjukkan efektivitas Codestral dalam memahami konteks kode dan secara akurat mengisi segmen kode yang hilang.
Namun, tolok ukur ini hanya membandingkan performa Codestral dengan DeepSeek Coder 33B dan tidak menyertakan data untuk CodeLlama 70B atau Llama 3 70B. Hal ini membatasi ruang lingkup perbandingan dan kesimpulan yang dapat ditarik terkait performa Codestral relatif terhadap model lain.
HumanEval
Tolok ukur HumanEval mengukur akurasi pembuatan kode dengan menguji kemampuan model menghasilkan kode yang lolos uji unit buatan manusia berdasarkan deskripsi fungsi. Sekarang mari lihat bagaimana Codestral dibandingkan dengan model lain di tolok ukur HumanEval:

Codestral menunjukkan performa tertinggi di Python, bash, Java, dan PHP. Sementara model lain unggul di bahasa berbeda, performa rata-rata keseluruhan Codestral memimpin, menampilkan kemampuannya yang kuat dalam menghasilkan kode akurat di banyak bahasa.
Use Case Codestral
Ragam kapabilitas Codestral membuatnya cocok untuk berbagai penerapan praktis dalam siklus pengembangan perangkat lunak. Mari jelajahi beberapa use case menonjol di mana Codestral dapat memberi dampak signifikan.
Pelengkapan dan pembuatan kode
Codestral unggul dalam pelengkapan dan pembuatan kode, salah satu use case utamanya. Pengembang dapat memanfaatkan Codestral untuk menyarankan pelengkapan kode berdasarkan konteks sekitarnya, sehingga memungkinkan pengkodean lebih cepat dan akurat.
Selain itu, Codestral dapat menghasilkan cuplikan kode lengkap dari deskripsi atau instruksi bahasa alami, semakin merampingkan proses pengembangan dan meningkatkan produktivitas.
Berikut contoh singkat permintaan yang saya berikan ke Codestral:
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)

Pembuatan unit test
Codestral juga mempermudah pembuatan unit test untuk kode yang ada. Fitur ini menghemat waktu dan upaya berharga pengembang dengan mengotomatisasi proses pembuatan tes. Konsekuensinya, ini membantu meningkatkan kualitas kode dan mengurangi kemungkinan bug, memastikan proyek perangkat lunak tetap tangguh dan mudah dipelihara.
Saya meminta Codestral membuat unit test sederhana untuk fungsi yang dihasilkannya di atas:
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)

Penerjemahan dan refaktor kode
Kapabilitas multibahasa Codestral melampaui pembuatan kode. Model ini dapat menerjemahkan kode antar berbagai bahasa pemrograman, memungkinkan pengembang bekerja dengan codebase yang ditulis dalam bahasa yang belum familiar.
Selain itu, Codestral dapat membantu merefaktor kode agar lebih mudah dibaca dan dipelihara, memastikan proyek mematuhi praktik terbaik dan standar pengkodean.
Saya meminta Codestral menerjemahkan kode Python di atas ke 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)

Asistensi kode interaktif
Pengembang dapat berinteraksi dengan Codestral untuk bantuan debugging, memahami kode yang belum dikenal, dan menemukan solusi optimal untuk masalah pengkodean. Asistensi interaktif ini sangat berharga bagi pengembang yang mengerjakan proyek kompleks atau yang mempelajari bahasa pemrograman dan framework baru, memberikan dukungan dan panduan sepanjang perjalanan pengembangan mereka.
Cara Memulai dengan Codestral
Codestral menawarkan beberapa cara bagi kita untuk menggunakannya:
- Antarmuka percakapan Le Chat: Versi Codestral yang diberi instruksi dapat diakses melalui antarmuka percakapan gratis Mistral AI, Le Chat, memungkinkan kita berinteraksi secara natural dengan model.
- Unduh langsung dan pengujian: Kita dapat mengunduh model Codestral dari Hugging Face untuk tujuan riset dan pengujian di bawah Mistral AI Non-Production License.
- Endpoint khusus: Tersedia endpoint spesifik (codestral.mistral.ai), khususnya bagi kita yang mengintegrasikan Codestral ke IDE. Endpoint ini memiliki kunci API personal dan batas laju terpisah, saat ini gratis selama periode beta.
- Integrasi La Plateforme: Codestral terintegrasi ke La Plateforme milik Mistral AI, tempat kita dapat membangun aplikasi dan mengakses model melalui endpoint API standar (api.mistral.ai), ditagih per token. Ini cocok untuk riset, kueri batch, atau pengembangan aplikasi pihak ketiga.
- Integrasi dengan alat pengembang: Codestral terintegrasi ke berbagai alat untuk meningkatkan produktivitas pengembang, termasuk LlamaIndex dan LangChain untuk membangun aplikasi agentik, serta Continue.dev dan Tabnine untuk lingkungan VSCode dan JetBrains.
Keterbatasan Codestral
Meskipun Codestral menunjukkan potensi pada berbagai tugas pembuatan kode, penting bagi kita untuk mengakui keterbatasannya:
- Performa tolok ukur: Walau Codestral berkinerja baik di tolok ukur tertentu, performa di dunia nyata dapat bervariasi bergantung pada kompleksitas tugas dan bahasa pemrograman spesifik. Pengujian menyeluruh di lingkungan kita sendiri direkomendasikan sebelum sepenuhnya mengandalkannya di produksi.
- Jendela konteks terbatas (dalam beberapa kasus): Meskipun Codestral memiliki jendela konteks 32k token untuk pelengkapan kode jarak jauh, use case tertentu mungkin memerlukan konteks yang lebih besar agar sepenuhnya memahami kerumitan codebase kita.
- Potensi bias: Seperti halnya model AI lain yang dilatih pada kode yang ada, Codestral dapat mewarisi bias yang terdapat dalam data pelatihan. Ini bisa menyebabkan pembuatan kode yang tanpa sengaja mempertahankan pola atau praktik yang tidak diinginkan.
- Teknologi yang terus berkembang: Codestral masih relatif baru, dan kapabilitas serta keterbatasannya kemungkinan akan berkembang seiring pengembangan dan penyempurnaan lebih lanjut. Penting bagi kita untuk tetap mengikuti riset dan rilis terbaru agar dapat membuat keputusan paling tepat tentang penggunaannya.
Kesimpulan
Codestral berpotensi membebaskan waktu kita untuk pemecahan masalah dan pekerjaan desain yang lebih kompleks dengan mengotomatisasi tugas seperti pelengkapan kode dan pembuatan tes.
Walau dampak penuhnya masih perlu dilihat, Codestral adalah perkembangan yang patut diperhatikan saat kita menjelajahi masa depan AI dalam pengembangan perangkat lunak.
Jika Anda ingin mempelajari lebih lanjut tentang AI, lihat jalur keterampilan enam kursus tentang AI Fundamentals ini.
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.
FAQ Codestral
Apakah Codestral tersedia untuk penggunaan komersial?
Mistral AI menawarkan solusi enterprise bagi bisnis yang ingin memanfaatkan Codestral untuk aplikasi komersial. Hubungi tim penjualan mereka untuk informasi lebih lanjut.
Bisakah Codestral di-fine-tune untuk tugas atau domain spesifik?
Ya, Codestral adalah model open-weight, artinya bobotnya dapat diakses untuk fine-tuning pada dataset kustom agar disesuaikan untuk tugas atau domain spesifik.
Berapa biaya Codestral?
Codestral menawarkan versi beta gratis dengan keterbatasan. Paket berbayar mencakup penagihan per token dan solusi enterprise dengan harga khusus.

