LLM Menghadapi Halangan dalam Pembangunan Perisian ketika Had Model Mental Menjadi Jelas

Pasukan Komuniti BigGo
LLM Menghadapi Halangan dalam Pembangunan Perisian ketika Had Model Mental Menjadi Jelas

Fasa bulan madu dengan alat pengkodan berkuasa AI mungkin akan berakhir. Walaupun Large Language Models ( LLMs ) telah memukau pembangun dengan keupayaan mereka untuk menjana kod dengan pantas, semakin ramai jurutera berpengalaman menunjukkan had asas yang menghalang alat ini daripada benar-benar membina perisian secara bebas.

Perbincangan tertumpu pada pandangan kritikal daripada amalan kejuruteraan perisian: pengaturcaraan berkesan bukan sahaja tentang menulis kod, tetapi juga mengekalkan model mental yang jelas tentang apa yang sepatutnya dilakukan oleh kod berbanding apa yang sebenarnya dilakukan. Proses berulang membina, menguji, dan memperhalusi berdasarkan model mental ini nampaknya menjadi tempat AI semasa menghadapi kekurangan.

Masalah Model Mental

Isu teras bukanlah LLM tidak boleh menulis kod - mereka sebenarnya agak mahir dalam hal itu. Masalahnya terletak pada ketidakupayaan mereka untuk mengekalkan pemahaman konsisten terhadap projek kompleks dari masa ke masa. Apabila ujian gagal atau pepijat muncul, sistem AI ini sering menggunakan tekaan daripada penyahpepijatan sistematik. Mereka bergelut dengan pengabaian konteks, mengalami bias kebaruan di mana maklumat terkini mengatasi konteks terdahulu, dan kerap berhalusinasi butiran yang tidak wujud.

Ini mewujudkan kitaran yang mengecewakan bagi pembangun. AI mungkin menulis kod yang mengagumkan pada mulanya, tetapi apabila kerumitan bertambah, ia mula kehilangan jejak seni bina sistem keseluruhan. Apabila masalah timbul, ia lebih cenderung untuk memadamkan segala-galanya dan bermula semula daripada mengenal pasti dan membaiki punca masalah secara metodis.

Batasan Utama LLM dalam Pembangunan Perisian:

  • Pengabaian Konteks: Lemah dalam mencari konteks yang hilang dalam projek yang kompleks
  • Bias Terkini: Terlalu menekankan maklumat terkini sambil melupakan konteks awal
  • Halusinasi: Kerap mencipta butiran yang tidak wujud dalam pangkalan kod
  • Penyelenggaraan Model Mental: Tidak dapat mengekalkan pemahaman yang konsisten merentasi iterasi
  • Pendekatan Penyahpepijatan: Cenderung meneka penyelesaian daripada mengenal pasti punca masalah secara sistematik

Keupayaan dan Had Semasa

Walaupun terdapat had ini, LLM telah menemui tempat yang sesuai dalam pembangunan perisian. Mereka cemerlang dalam menjana kod boilerplate, menulis dokumentasi, dan mengendalikan tugas pengaturcaraan rutin yang telah dilakukan berkali-kali sebelum ini. Ramai pembangun melaporkan peningkatan produktiviti yang ketara apabila menggunakan AI untuk tugas peringkat mikro ini.

Walau bagaimanapun, teknologi ini nampaknya telah mencapai tahap mendatar dalam beberapa bulan kebelakangan ini. Walaupun peningkatan daripada GPT-2 kepada GPT-3 adalah dramatik, keuntungan daripada GPT-3 kepada GPT-4 dan seterusnya lebih berperingkat. Kebanyakan kemajuan terkini datang daripada kurasi set data yang lebih baik dan peningkatan pengalaman pengguna daripada terobosan asas dalam keupayaan penaakulan.

Kekuatan LLM berbanding Kelemahan:

Perkara yang LLM Lakukan dengan Baik Perkara yang LLM Bergelut Dengannya
Menjana kod boilerplate Mengekalkan konteks seluruh projek
Menulis dokumentasi Menyahpepijat isu kompleks secara sistematik
Mengendalikan tugas pengaturcaraan rutin Membina dan mengekalkan model mental
Mensintesis keperluan Berulang pada masalah kompleks
Penjanaan kod daripada spesifikasi yang jelas Memutuskan sama ada untuk membaiki kod atau ujian

Perdebatan Penskalaan

Komuniti teknologi kekal berpecah mengenai sama ada had semasa boleh diatasi melalui penskalaan. Ada yang berhujah bahawa LLM akan terus bertambah baik seperti internet awal, telefon mudah alih, dan kereta elektrik - teknologi yang pada mulanya teruk tetapi terus bertambah baik melalui pengulangan.

Kereta pertama sering rosak. Mereka mempunyai jarak yang terhad. Tidak ada bekalan alat ganti yang luas untuk mereka. Tidak ada rangkaian stesen bahan api yang luas untuk menyediakan tenaga bagi mereka. Kuda adalah kaedah yang terbukti.

Walau bagaimanapun, pengkritik menunjukkan bahawa LLM menghadapi cabaran yang berbeza daripada contoh sejarah ini. Tidak seperti kereta atau telefon, yang mempunyai masalah kejuruteraan yang boleh diselesaikan dengan masa dan sumber, LLM mungkin mempunyai had seni bina yang asas. Reka bentuk teras mereka - meramal teks seterusnya yang paling mungkin berdasarkan kebarangkalian - mungkin secara sifatnya tidak sesuai untuk jenis penaakulan yang diperlukan dalam pembangunan perisian yang kompleks.

Gelung Kejuruteraan Perisian (Manusia vs LLM):

Jurutera Manusia:

  1. Membina model mental keperluan
  2. Menulis kod untuk melaksanakan keperluan
  3. Membina model mental tentang apa yang sebenarnya dilakukan oleh kod
  4. Mengenal pasti perbezaan dan mengemas kini kod/keperluan secara sistematik

Tingkah Laku LLM:

  1. Menjana kod berdasarkan gesaan
  2. Menganggap kod yang dijana berfungsi dengan betul
  3. Apabila ujian gagal, meneka penyelesaian
  4. Apabila kecewa, memadamkan segala-galanya dan memulakan semula

Pendekatan Praktikal Bergerak ke Hadapan

Daripada menunggu peningkatan terobosan, ramai pembangun menyesuaikan alir kerja mereka untuk bekerja dalam had AI semasa. Ini termasuk memecahkan masalah kompleks kepada bahagian yang lebih kecil, mengekalkan dokumentasi yang jelas yang membantu AI memahami konteks projek, dan menggunakan proses pembangunan berstruktur yang membimbing AI melalui amalan kejuruteraan perisian yang betul.

Sesetengah pasukan sedang bereksperimen dengan sistem agen hierarki, di mana contoh AI yang berbeza mengendalikan aspek pembangunan yang berbeza sementara manusia mengekalkan model mental keseluruhan. Yang lain memberi tumpuan kepada menggunakan AI untuk tugas khusus yang jelas sambil memastikan manusia mengawal keputusan seni bina dan reka bentuk.

Konsensus yang muncul daripada komuniti pembangun mencadangkan bahawa walaupun LLM adalah alat berharga untuk mempercepatkan aspek tertentu pembangunan perisian, mereka tidak bersedia untuk menggantikan jurutera manusia. Teknologi ini berfungsi dengan baik apabila dianggap sebagai bentuk lanjutan autolengkap daripada pembangun autonomi. Kejayaan datang daripada memahami had ini dan menstrukturkan kerja dengan sewajarnya, daripada mengharapkan AI mengendalikan kerumitan penuh pembangunan perisian moden secara bebas.

Rujukan: Why LLMs Can't Really Build Software