Pembuatan Kode LLM Dapat Menyebabkan Melemahnya Kepercayaan
(jaysthoughts.com)- Belakangan ini, pembuatan kode berbasis LLM semakin banyak digunakan di kalangan pengembang
- Kode yang dihasilkan secara otomatis memicu meningkatnya kekhawatiran terhadap kualitas dan keandalan kode
- Pengembang mengalami meningkatnya kesulitan pemeliharaan proyek akibat kurangnya pemahaman terhadap kode dan verifikasi yang tidak memadai
- Meluasnya penggunaan kode yang tidak dapat dipercaya berdampak pada seluruh ekosistem perangkat lunak
- Seiring kemajuan teknologi, kebutuhan untuk menyiapkan cara memastikan keandalan semakin ditekankan
Gambaran Umum
Jay membahas di blognya dampak teknologi pembuatan kode berbasis LLM (large language model) yang belakangan muncul terhadap praktik pengembangan perangkat lunak. Perkembangan alat-alat ini memang meningkatkan efisiensi pengembangan, tetapi pada saat yang sama juga memunculkan persoalan keandalan dan kualitas kode.
Meningkatnya Teknologi Pembuatan Kode LLM
- Di lapangan pengembangan, alat pembuatan kode otomatis yang memanfaatkan LLM menyebar dengan cepat
- Alat ini memberikan produktivitas tinggi dalam implementasi fitur yang kompleks maupun pekerjaan coding yang berulang
- Memiliki keunggulan untuk pembuatan prototipe cepat serta mengurangi beban saat mempelajari bahasa baru
Masalah Keandalan
- Kode yang dihasilkan LLM tidak selalu berjalan sesuai yang dimaksud
- Niat dan logika desain di dalam kode sering kali tidak jelas sehingga proses pemahaman dan verifikasi menjadi sulit
- Jika proses review dan pengujian kurang memadai, ada kemungkinan muncul bug atau kerentanan yang tidak terduga
Pemeliharaan Proyek dan Dampak terhadap Ekosistem
- Muncul masalah kurangnya dokumentasi dan penjelasan yang tidak memadai untuk kode yang dibuat otomatis
- Pengembang kesulitan memahami prinsip kerja kode sehingga kompleksitas pemeliharaan meningkat
- Ada risiko budaya pengembangan perangkat lunak yang andal menjadi terkikis
Kesimpulan dan Saran
- Teknologi pembuatan kode berbasis LLM bersifat inovatif, tetapi memastikan keandalan adalah tugas yang sangat penting
- Saat mengadopsi kode yang dihasilkan otomatis, perlunya verifikasi yang lebih kuat dan code review yang sistematis ditekankan
- Dalam jangka panjang, penting untuk menyiapkan standar guna melindungi kepercayaan dalam ekosistem komputasi
1 komentar
Opini Hacker News
Berbagi tautan archive.is, berfungsi juga di browser lawas dan JavaScript hanya diperlukan untuk melewati CloudSnare
Teman saya sering berkata, "inovasi terjadi secepat tingkat kepercayaan." Sejak GPT3 muncul, kalimat itu terus terngiang di kepala saya. Verifikasi itu mahal, dan kepercayaan adalah cara utama untuk menurunkan biaya itu. Tapi saya tidak tahu bagaimana membangun kepercayaan terhadap LLM. Ia sangat fasih dalam coding maupun bahasa alami, tetapi pada saat yang sama juga bisa menyimpang ke arah yang, kalau dilakukan manusia, akan dianggap berniat buruk
Saya mengalami topik ini dengan cara yang tak terduga di kantor. Karena tekanan hasil cepat, seorang rekan dan saya menggabungkan refactor besar yang saya kerjakan meski PR-nya masih bersifat sementara. Setelah itu muncul bug di kode yang belum teruji. Saat debugging, rekan saya mengaku ia mengira saya menulisnya dengan AI, dan ia frustrasi karena mencoba memahami kode buatan AI itu belakangan. Padahal kode itu saya tulis sendiri dengan teliti, dan penyebab bug-nya hanyalah kesalahan kecil dalam proses perubahan API sederhana. Justru dari pengalaman ini, saya bisa secara alami menampakkan ketegangan soal kepercayaan dengan rekan saya dan membicarakannya secara konstruktif. Kalau dipikir sekarang, pengalaman membangun kepercayaan seperti ini cukup bermakna, dan kalau lingkungannya berbeda mungkin bisa menjadi jauh lebih rumit. Rasanya memang harus selalu berhati-hati
Saya kurang paham premisnya. Kepercayaan bahwa seseorang menulis kode yang baik datang dari pengalaman nyata bahwa orang itu menulis sendiri dan hasilnya memang bagus. Kalau pakai LLM tapi tetap menghasilkan kode tanpa bug, saya percaya; kalau pakai LLM dan tetap ada bug, saya tidak percaya. Saya tidak melihat bedanya dengan kalau dia menulis hanya dengan otaknya sendiri
Zaman itu sudah tiba. Saya terlalu sering melihat kalimat seperti, "maaf saya melewatkan poin itu, Anda benar." Rasanya 8 atau 9 kali dari 10. Di sisi lain, saya juga sering melihat orang yang sekadar copy-paste kode buatan LLM tanpa makna, lalu marah ketika hasilnya tidak sesuai harapan. Sebenarnya itu lebih baik. Menurut saya, sesuatu yang rusak dengan jelas lebih baik daripada sesuatu yang kelihatannya benar di permukaan
Alat abstraksi sebelumnya mengurangi kompleksitas sambil menjadikan "ketepatan" abstraksi itu sebagai premis dasar. Tentu saja tidak sempurna dan ada bug, tetapi itu masalah implementasi, bukan kesalahan yang melekat pada hakikatnya. Begitu ditambal, ia cenderung menjadi lebih kokoh. Sebaliknya, LLM adalah mesin prediksi probabilistik yang hanya menunjukkan akurasi pendekatan untuk jangka waktu tertentu. Yang diabaikan penulis adalah bahwa kita tetap bisa membangun sistem deterministik yang bisa dipercaya dari agent probabilistik yang tidak sempurna. Contohnya, kita mempercayai tool garbage collection bukan karena percaya pada penulis tool itu, melainkan karena tool tersebut sudah cukup diuji dan terbukti bekerja sesuai yang diinginkan. Ke depan, saya rasa test-driven development akan menjadi makin kuat. Bukan kepercayaan, melainkan verifikasi
Kebencian terhadap LLM tidak ada gunanya. Saat ini LLM memang meningkatkan produktivitas pengembang. Setidaknya lebih bermanfaat bagi pengembang yang pengalamannya lebih sedikit. Tool yang sangat meningkatkan produktivitas tidak akan ditinggalkan apa pun kata orang. Tentu, bahkan jika muncul kasus kerusakan besar seperti layanan besar down lama karena bug besar, kalau produktivitas dianggap penting, teknologinya tidak akan berhenti. Satu-satunya jalan realistis adalah menyelesaikan atau memitigasi kelemahan itu sambil tetap berjalan bersama teknologinya. Dalam proses itu, kalau langkah mitigasi merusak peningkatan produktivitas, orang akan mencari jalan memutar, dan yang akhirnya menetap adalah langkah pelengkap yang selaras dengan teknologi
Daripada kebijakan seperti "menjamin bahwa kode kontribusi bukan hasil LLM, orisinal, dan dipahami sepenuhnya" atau "sebagian besar harus dikerjakan manual", lebih baik fokus pada hasil akhirnya. Meminta kontributor benar-benar memahami perubahannya itu bagus. Tapi kebijakan seperti "junior harus menahan diri atau dilarang memakai tool LLM untuk jangka waktu tertentu" menurut saya kurang bagus. LLM sangat membantu untuk masalah setup environment onboarding yang berantakan. Selain itu juga bagus untuk memahami kode/dokumentasi, serta berguna sebagai alat pencarian teks dan peringkasan
Saya baru pertama kali mendengar konsep "AI Cliff" (fenomena ketika akurasi LLM tiba-tiba anjlok). Penasaran apakah orang lain juga pernah mengalaminya
Penulis aslinya bilang ia tidak akan merangkum tulisan banyak orang, tetapi tampaknya sebenarnya itulah yang terjadi. Meski begitu, akan bagus kalau ada penanda file yang berisi kode buatan AI di PR. Jenis kesalahan pada kode LLM dan kode manusia berbeda, jadi kalau bisa direview terpisah akan menghemat waktu. Penasaran apakah ada yang pernah mengalami kebijakan seperti ini di organisasi besar, atau apakah sudah ada tool otomatisnya. Kalau perusahaan mengukur proporsi kode hasil LLM, mungkin tool semacam itu sudah ada demi metrik yang lebih rinci