BAB 13
Estimasi Waktu: 45 menit
Level: Advanced
Jika Anda memantau diskusi para peneliti senior dan praktisi AI di Twitter/X atau Hugging Face, ada tiga teknologi yang sering disebut sebagai βsenjata rahasiaβ (hidden gems) untuk membangun sistem AI berkinerja ekstrim.
Teknologi ini memecahkan masalah efisiensi hardware, kerapuhan prompt manual, dan kesenjangan bahasa pemrograman. Menguasai ketiganya akan menempatkan Anda di jajaran 1% teratas AI Engineer secara global.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β THE AI ENGINEERING TRINITY β
βββββββββββββββββββββ¬ββββββββββββββββββββ¬ββββββββββββββββββββββ€
β OPENAI TRITON β STANFORD DSPY β MODULAR MOJO β
βββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββββ€
β GPU Kernel Opt. β Prompt Compiler β Systems Programming β
β (Python -> GPU) β (Programmatic PT) β (Speed of C/Rust) β
βββββββββββββββββββββ΄ββββββββββββββββββββ΄ββββββββββββββββββββββ
Hingga saat ini, jika Anda ingin menulis fungsi matematika khusus yang berjalan super cepat di GPU (seperti FlashAttention), Anda harus menulisnya dalam bahasa CUDA C++. CUDA sangat sulit dipelajari, rawan kebocoran memori (memory bugs), dan membutuhkan waktu kompilasi yang lama.
Triton adalah bahasa pemrograman open-source dan compiler yang dikembangkan oleh OpenAI. Ia memungkinkan Anda menulis kode GPU (kernel) berkinerja tinggi langsung menggunakan sintaks mirip Python.
Compiler Triton akan mengompilasi kode Python tersebut secara otomatis menjadi bahasa mesin GPU tingkat rendah yang setara (atau bahkan lebih cepat) dibanding CUDA C++ tulisan tangan.
# Gambaran sederhana fungsi kernel Triton
import triton
import triton.language as tl
@triton.jit
def add_kernel(x_ptr, y_ptr, output_ptr, n_elements, BLOCK_SIZE: tl.constexpr):
pid = tl.program_id(axis=0)
block_start = pid * BLOCK_SIZE
offsets = block_start + tl.arange(0, BLOCK_SIZE)
mask = offsets < n_elements
x = tl.load(x_ptr + offsets, mask=mask)
y = tl.load(y_ptr + offsets, mask=mask)
output = x + y
tl.store(output_ptr + offsets, output, mask=mask)
Mengapa ini dicari? vLLM, Unsloth, dan PyTorch 2.x (torch.compile) semuanya menggunakan Triton di belakang layar untuk mempercepat jalannya model AI.
Prompt engineering tradisional adalah proses coba-coba manual. Anda mengubah satu kata dalam prompt 100 baris, lalu seluruh format output dari LLM tiba-tiba rusak. Proses ini tidak ilmiah dan tidak dapat diskalakan (not scalable).
DSPy (Declarative Self-improving Python) dari Stanford University mengubah paradigma dari βmenulis promptβ menjadi βmemrogram pipelineβ.
Dengan DSPy, Anda cukup menulis alur logika program dalam Python (mendefinisikan modul input-output), lalu menggunakan Optimizer bawaan DSPy untuk membuat prompt terbaik dan mencari contoh Few-Shot terbaik secara otomatis berdasarkan dataset pengujian kecil Anda.
# Memrogram pipeline dengan DSPy
import dspy
class AsistenRiset(dspy.Signature):
"""Menjawab pertanyaan rumit dengan referensi fakta."""
konteks = dspy.InputField(desc="Dokumen pendukung")
pertanyaan = dspy.InputField(desc="Pertanyaan dari pengguna")
jawaban = dspy.OutputField(desc="Jawaban ringkas bersertakan sitasi")
# DSPy akan secara otomatis menyusun prompt optimal
# dan menyuntikkan Few-shot contoh terbaik ketika dicompile
Mengapa ini dicari? DSPy mempermudah transisi antar model. Jika Anda ingin mengganti model dasar dari GPT-4 ke Llama 3, Anda tidak perlu menulis ulang prompt. Cukup jalankan compiler DSPy, dan ia akan menyesuaikan prompt baru secara otomatis untuk Llama 3.
Riset AI dilakukan di Python karena ekosistemnya yang kaya dan mudah digunakan. Namun, saat model harus dijalankan di produksi berskala raksasa, Python terlalu lambat. Perusahaan harus menulis ulang seluruh logika aplikasi ke dalam bahasa C++ atau Rust. Ini memakan waktu dan rentan memicu bug baru.
Mojo adalah bahasa pemrograman baru yang diciptakan oleh Modular Inc (dipimpin oleh Chris Lattner, pencipta Swift dan LLVM). Mojo dirancang sebagai superset dari Python (sintaks identik dengan Python), namun memiliki performa ekstrim yang setara dengan C++ atau Rust.
Mojo mendukung kompilasi native, static typing, penanganan memori aman tanpa garbage collector (sistem kepemilikan mirip Rust), serta optimasi hardware otomatis untuk CPU, GPU, dan TPU.
# Kode Mojo menggunakan static typing dan optimasi SIMD hardware
fn main():
let x: Int = 10
print(x)
Mengapa ini dicari? Mojo dirancang dari nol untuk menjadi bahasa utama kecerdasan buatan, memungkinkan developer menulis model dan menjalankan sistem produksi di dalam satu bahasa pemrograman yang sama tanpa mengorbankan kecepatan.
Target: Memahami fungsi strategis Triton, DSPy, dan Mojo dalam menyelesaikan kendala memori, kerapuhan prompt, dan kecepatan eksekusi kode AI.