Refleksi jujur jurutera perisian Alberto Fortin mengenai penggunaan Model Bahasa Besar (LLM) untuk pengekodan telah menyentuh hati pembangun di seluruh dunia. Selepas pada mulanya menerima alat AI dengan penuh semangat, Fortin menghadapi cabaran besar semasa membina semula infrastruktur dengan Go dan ClickHouse , menyebabkan beliau menilai semula secara asas bagaimana beliau mendekati pembangunan berbantukan LLM.
Fatamorgana Produktiviti
Ramai pembangun mengalami tempoh bulan madu awal dengan LLM. Cadangan autolengkap pertama dan ciri-ciri kecil terasa ajaib, mewujudkan ilusi peningkatan produktiviti yang dramatik. Walau bagaimanapun, keseronokan awal ini sering menyembunyikan isu yang lebih mendalam yang muncul apabila bekerja pada projek yang lebih besar dan kompleks.
Komuniti telah mengenal pasti corak berulang: LLM cemerlang dalam menghasilkan kod dengan pantas, tetapi pangkalan kod yang terhasil menjadi sukar untuk diselenggara. Tidak seperti kod yang ditulis oleh pembangun manusia, kod yang dihasilkan LLM tidak mempunyai pemilikan kognitif yang datang daripada membina penyelesaian langkah demi langkah. Ini mewujudkan masalah asas - pembangun mendapati diri mereka menguruskan pangkalan kod yang tidak mereka fahami sepenuhnya.
Masalah Model Mental
Wawasan kritikal yang muncul daripada perbincangan pembangun tertumpu pada konsep pengaturcaraan sebagai pembinaan teori. Apabila pembangun menulis kod sendiri, mereka membina model mental tentang bagaimana komponen berbeza berinteraksi dan mengapa keputusan tertentu dibuat. Pemahaman mendalam ini menjadi penting apabila menyahpepijat isu atau menambah ciri baharu.
Kod yang dihasilkan LLM mengganggu proses semula jadi ini. Pembangun menerima penyelesaian yang berfungsi tanpa melalui perjalanan penyelesaian masalah yang membina pemahaman. Apabila pepijat tidak dapat dielakkan muncul, membaikinya menjadi lebih sukar secara eksponen kerana pembangun tidak mempunyai pengetahuan asas tentang bagaimana kod itu dibina.
Mencari Keseimbangan Yang Tepat
Komuniti pembangun sedang menumpu pada pendekatan yang lebih bernuansa terhadap penggunaan LLM. Daripada menganggap alat ini sebagai pembantu pengekodan autonomi, pengamal yang berjaya sedang meletakkan semula mereka sebagai pembantu canggih untuk tugas tertentu.
Saya adalah jurutera perisian, jurutera perisian kanan, saya adalah arkitek. LLM adalah pembantu. Pembantu bertindak balas kepada saya; saya yang membuat rancangan.
Perubahan minda ini terbukti penting. Pembangun melaporkan hasil yang lebih baik apabila mereka mengekalkan kawalan seni bina sambil menggunakan LLM untuk tugas yang lebih kecil dan jelas seperti menghasilkan kod boilerplate, menulis ujian unit, atau mengendalikan kerja refaktoring rutin.
Kes Penggunaan LLM yang Disyorkan:
- Penjanaan coretan kod kecil
- Penciptaan kod boilerplate
- Penulisan ujian unit
- Tugas refactoring rutin
- Carian dokumentasi yang dipertingkatkan
- Penjelasan konsep dan pembelajaran
Tidak Disyorkan:
- Pelaksanaan ciri lengkap
- Keputusan seni bina berskala besar
- Penyahpepijatan kompleks tanpa pemahaman manusia
- Projek yang melebihi had tetingkap konteks
Spektrum Kejayaan
Menariknya, keberkesanan LLM nampaknya mengikut corak lengkung loceng. Di satu hujung, pembangun yang sebelum ini tidak dapat menulis kod tertentu mendapati diri mereka tidak terhalang dan mampu mencipta program yang berfungsi. Di hujung yang lain, pembangun berpengalaman belajar menganggap LLM sebagai tentera pengekod junior, mengekalkan kawalan algoritma peringkat tinggi sambil mewakilkan butiran pelaksanaan.
Perjuangan berlaku di kawasan tengah, di mana pembangun mempunyai kemahiran yang cukup untuk mengenali isu kualiti tetapi belum mengembangkan strategi berkesan untuk menguruskan kod yang dihasilkan LLM. Pembangun ini sering mendapati diri mereka terharu dengan corak kod yang tidak dikenali dan keputusan seni bina yang tidak mereka buat.
Corak Penggunaan LLM mengikut Pengalaman Pembangun:
- Pemula: Tidak terhalang oleh LLM, boleh mencipta program yang berfungsi yang tidak dapat mereka lakukan sebelum ini
- Pertengahan: Sering bergelut dengan corak kod yang dijana LLM yang tidak biasa
- Lanjutan: Berjaya menggunakan LLM sebagai "tentera pengekod junior" dengan pengawasan seni bina
Pelajaran Praktikal Yang Dipelajari
Komuniti telah mengenal pasti beberapa strategi praktikal untuk penggunaan LLM yang berkesan. Menggunakan alat ini sebagai enjin carian yang dipertingkatkan atau alternatif Stack Overflow yang diperibadikan terbukti lebih mampan daripada bergantung kepada mereka untuk pelaksanaan ciri lengkap. Ramai pembangun kini mengehadkan penggunaan LLM untuk menghasilkan potongan kod kecil, yang kemudian mereka semak dengan teliti dan integrasikan secara manual.
Had tetingkap konteks juga memainkan peranan penting dalam keberkesanan LLM. Apabila projek berkembang melebihi apa yang boleh muat dalam konteks model, AI kehilangan jejak seni bina sistem yang lebih luas, membawa kepada cadangan yang tidak konsisten atau tidak serasi.
Memandang Ke Hadapan
Walaupun LLM semasa mempunyai had yang jelas, teknologi ini terus berkembang dengan pantas. Sesetengah pembangun menjangkakan masa depan di mana LLM menjadi cukup canggih untuk mengendalikan seni bina kod dan refaktoring secara automatik. Yang lain mempersoalkan sama ada model ramalan token seterusnya boleh benar-benar memahami penaakulan kompleks yang diperlukan untuk pembangunan perisian berskala besar.
Buat masa ini, pendekatan yang paling berjaya nampaknya adalah menganggap LLM sebagai alat yang berkuasa tetapi terhad yang memerlukan pengawasan manusia yang teliti. Kuncinya terletak pada memahami kedua-dua keupayaan dan kekangan mereka, kemudian menstrukturkan aliran kerja untuk memaksimumkan faedah sambil meminimumkan risiko kod yang tidak boleh diselenggara.
Perbincangan yang berterusan mencerminkan kematangan yang lebih luas dalam cara komuniti pembangunan perisian mendekati alat AI - bergerak melepasi gembar-gembur awal ke arah strategi integrasi yang lebih realistik dan mampan.
Rujukan: Why I'm Dialing Back My LLM Usage