- Untuk memanfaatkan LLM secara efektif dalam codebase skala besar, investasi pada ‘guidance’ dan ‘oversight’ adalah kuncinya
- Guidance menyediakan konteks dan lingkungan agar LLM dapat membuat pilihan yang lebih baik, sementara oversight berperan memverifikasi hasil dan memberi arahan
- Penting untuk membangun prompt library agar LLM dapat memahami aturan, dokumentasi, dan best practice dalam codebase
- Pengelolaan technical debt serta kesederhanaan struktur kode, modularisasi, dan konsistensi terhubung langsung dengan peningkatan pemahaman kode dan produktivitas LLM
- Sistem oversight dan verifikasi otomatis untuk membantu LLM menghasilkan kode yang aman dan konsisten adalah kunci skalabilitas jangka panjang
Konsep inti untuk penskalaan LLM
- Cara menerapkan LLM pada codebase skala besar masih belum sepenuhnya mapan, tetapi investasi pada guidance dan oversight diajukan sebagai pendekatan yang paling efektif
- Guidance berarti konteks dan lingkungan yang membantu LLM membuat pilihan yang tepat, sedangkan Oversight bertugas memverifikasi hasil yang dihasilkan dan menyesuaikan arah
Investasi pada guidance
- Agar LLM dapat mencapai ‘one-shotting’ yaitu menghasilkan kode berkualitas tinggi dalam satu percobaan, dibutuhkan guidance yang jelas
- Sebaliknya, jika hasilnya tidak memadai dan perlu diperbaiki secara manual, itu menjadi rework yang tidak efisien
- Karena LLM menghasilkan semua pilihan di dalam kode—seperti nama variabel, struktur fungsi, tech stack, dan lain-lain—maka kondisi idealnya adalah prompt hanya memuat kebutuhan bisnis, sementara sisanya dapat diinferensikan atau sudah terenkode
Membangun prompt library
- Prompt library adalah kumpulan konteks untuk LLM yang mencakup dokumentasi codebase, best practice, dan peta struktur
- Setiap kali output LLM melenceng, tinjau “apa yang seharusnya diperjelas” lalu tambahkan ke library
- Keseimbangan antara cakupan dan keringkasan itu penting
- Dalam contoh, dokumen seperti
@prompts/How_To_Write_Views.md, @prompts/The_API_File.md, dan lainnya diberikan ke LLM untuk memandu pengembangan fitur
- Prompt harus cukup spesifik, tetapi setiap baris kode yang dihasilkan tetap harus ditinjau
Lingkungan dan kualitas kode
- Codebase dengan banyak technical debt akan menurunkan efisiensi pemanfaatan LLM
- Dalam kasus Meta, disebutkan bahwa technical debt membuat target otomasi sulit dicapai
- Kode yang bersih, modularisasi, penamaan yang jelas, dan struktur yang sederhana meningkatkan pemahaman dan akurasi LLM
- Dalam contoh Django, titik masuk tiap app ditempatkan di file
_api.py agar LLM dapat dengan cepat menemukan fungsionalitas yang dibutuhkan
- Contoh:
visit_api.handoff_to_doctor(user) untuk menyatukan akses eksternal
- Pola
_api dinyatakan di prompt library agar LLM diarahkan merujuk ke lokasi yang benar
Investasi pada oversight
- Otomasi dengan LLM harus dipandang sebagai cara memperkuat tim, bukan menggantikan engineer
- Oversight berarti investasi pada tim, alignment, dan workflow
- Di tingkat tim, peningkatan kemampuan desain sangat penting dan terhubung langsung ke kualitas arsitektur
- Cara untuk memperkuat kemampuan desain mencakup membaca buku, blog, dan kode, mereplikasi masterwork, serta berlatih implementasi langsung
- Contoh: memperluas insting desain dengan menganalisis kode TLDraw dan SerenityOS Jakt
Oversight otomatis
- Sebagian verifikasi desain dapat diotomatisasi secara programatik
- Contoh: memberi umpan balik langsung di lingkungan saat terjadi type error atau pelanggaran aturan
- ‘Safety’ berarti melindungi abstraksi
- Menurut definisi Pierce, bahasa yang aman menjamin programmer tidak secara tidak sengaja merusak abstraksi
- Contoh: aturan yang melarang akses langsung ke file internal antar app Django dapat diotomatisasi dengan skrip pemeriksaan berbasis AST
- Mendeteksi akses ilegal dalam bentuk
from visit import logic.internal_file
Verification
- Selain desain dan implementasi, tahap verifikasi seperti code review dan QA juga penting untuk menjaga kualitas
- Ketika volume kerja meningkat, kecepatan peninjauan menjadi bottleneck, sehingga diusulkan beberapa perbaikan berikut
- Menurunkan hambatan agar QA bisa dilakukan bahkan tanpa environment development
- Membangun environment yang memudahkan penulisan test, seperti pembuatan test data
- Mendokumentasikan feedback PR yang berulang agar LLM dapat mengotomatiskan sebagian review
- Menanamkan aturan keamanan sebagai default framework
Kesimpulan dan pengamatan tambahan
- LLM bekerja sangat baik terutama pada proyek greenfield
- Karena tidak ada konteks lama dan tuntutan konsistensinya lebih rendah
- Semakin besar proyek, konsistensi dan modularisasi semakin menentukan produktivitas
- Struktur modular yang menggunakan kembali komponen yang sudah tervalidasi adalah inti dari pengembangan yang efisien
Belum ada komentar.