- Banyak pengembang mencoba menggunakan LLM untuk menulis kode, lalu mengalami halusinasi (hallucination) dan kehilangan kepercayaan
- LLM sering kali mengarang metode atau library yang tidak ada
- Namun, halusinasi dalam kode adalah jenis halusinasi yang paling tidak berbahaya
- Yang paling berbahaya adalah ketika LLM menghasilkan kesalahan tetapi tidak langsung terdeteksi oleh compiler atau interpreter
- Metode yang dihalusinasikan akan langsung memunculkan error saat dijalankan sehingga mudah ditemukan
- Pesan error juga bisa dimasukkan kembali ke LLM agar diperbaiki secara otomatis
- Berbeda dari halusinasi pada teks biasa, kode bisa diperiksa kebenarannya melalui eksekusi
- LLM dengan fitur perbaikan error otomatis
- Alat seperti ChatGPT Code Interpreter, Claude Code menjalankan kode yang ditulis LLM, mendeteksi error, lalu memperbaikinya sendiri
- Menilai kode yang ditulis LLM tanpa menjalankannya terlebih dahulu adalah hal yang tidak efisien
- Sebagian pengembang ingin menolak teknologi ini hanya karena LLM menghasilkan metode yang dihalusinasikan
- Namun, untuk menggunakannya secara efektif, pembelajaran dan eksperimen adalah hal yang wajib
- Penulis telah meneliti penulisan kode berbasis AI selama lebih dari 2 tahun, dan masih terus mempelajari teknik baru
- Pengujian manual terhadap kode itu wajib
- Fakta bahwa kode berjalan normal tidak menjamin bahwa perilakunya sesuai harapan
- Review kode atau pengujian otomatis saja tidak bisa sepenuhnya memverifikasi ketepatan kode
- Proses menjalankan dan memverifikasinya secara langsung adalah hal yang wajib
- Kode yang dihasilkan LLM biasanya sangat mudah dibaca, sehingga bisa membuat orang lengah
- Kode buatan manusia pun sama; jangan dipercaya sebelum benar-benar dijalankan sendiri
- Cara mengurangi halusinasi
- Gunakan model lain: pilih model dengan data pelatihan yang lebih kaya untuk platform tertentu
- Contoh: Claude 3.7 Sonnet (thinking mode diaktifkan), OpenAI o3-mini-high, GPT-4o (termasuk Python Code Interpreter)
- Manfaatkan konteks: walaupun LLM tidak mengenal library tertentu, ia bisa mempelajari polanya jika diberi contoh kode
- Pilih teknologi yang stabil: memilih library yang sudah lama ada meningkatkan kemungkinan LLM bisa menanganinya dengan baik
- Pentingnya code review
- Artikel ini membantah klaim bahwa "kalau semua kode yang ditulis LLM harus direview, lebih cepat menulisnya sendiri"
- Pernyataan seperti itu juga bisa menunjukkan kurangnya kemampuan melakukan code review
- Mereview kode yang dihasilkan LLM bisa menjadi kesempatan bagus untuk meningkatkan kemampuan
- Bonus: umpan balik dari Claude 3.7 Sonnet
- Penulis meminta Claude 3.7 Sonnet meninjau draf blog dalam "extended thinking mode"
- Ia meminta, "tolong tinjau apakah logika tulisan ini meyakinkan, apa yang bisa diperbaiki, dan apakah ada hal yang terlewat"
- Claude membantu melembutkan nada draf tersebut
- Tautan percakapan umpan balik Claude
1 komentar
Opini Hacker News
Penulis setuju dengan tulisan sebelumnya, tetapi tidak setuju dengan tulisan kali ini
Bahkan jika kode yang dihasilkan LLM berjalan dengan baik, sulit menemukan bug atau cacat logika jika bukan kita yang menulisnya
Kode hasil generasi LLM memang rapi, tetapi justru membuat lebih banyak waktu habis untuk QA dan pekerjaan merapikan
The Primeagen dan Casey Muratori meninjau output generator kode LLM terbaru
Kategori kesalahan lain yang Simon lewatkan adalah halusinasi ketika model melupakan fungsionalitas
Metode yang dihalusinasikan hanyalah hambatan kecil, dan ketika orang mengeluh soal ini diasumsikan mereka hanya meluangkan waktu minimum untuk belajar menggunakan sistem secara efektif
Halusinasi itu sendiri bukan risiko terbesar yang ditimbulkan LLM
Ini hanya kurang berbahaya dalam konteks terbatas pada error kompilasi
Perlu banyak upaya untuk mendapatkan hasil yang baik dari LLM
Pengalaman menulis kode untuk menemukan klinik 'utama' pasien di pusat medis