Pembangun Membincangkan Pendekatan Integrasi LLM: Model Pengkompil Berbanding Model Pembantu

BigGo Editorial Team
Pembangun Membincangkan Pendekatan Integrasi LLM: Model Pengkompil Berbanding Model Pembantu

Pelancaran smartfunc, perpustakaan Python yang mengubah docstring menjadi fungsi berkuasa LLM, telah mencetuskan perbincangan hangat di kalangan pembangun mengenai pendekatan optimum untuk mengintegrasikan model bahasa besar ke dalam aliran kerja pengaturcaraan. Perbahasan ini menyoroti persoalan asas: adakah LLM harus dianggap sebagai pengkompil untuk spesifikasi tahap tinggi atau sebagai pembantu kolaboratif dalam proses pembangunan?

Paradigma Pengkompil Berbanding Pembantu

Perbincangan komuniti mendedahkan kecenderungan yang kuat di kalangan ramai pembangun untuk menganggap LLM sebagai pengkompil dan bukannya sebagai pembangun junior. Pendekatan ini memposisikan LLM sebagai alat yang mengubah spesifikasi tahap tinggi (seperti docstring) menjadi kod berfungsi, bukannya sebagai kolaborator yang menghasilkan kod melalui perbualan. Seorang pengulas menyatakan sentimen ini dengan jelas, mencadangkan bahawa menganggap LLM sebagai pengkompil mewakili model mental yang lebih berskala, boleh diperluas dan boleh digabungkan berbanding menganggapnya sebagai pembantu pembangunan.

Walau bagaimanapun, seperti yang dinyatakan oleh Simon Willison (pencipta perpustakaan asas llm yang menjana smartfunc), smartfunc sebenarnya tidak berfungsi sebagai pengkompil. Sebaliknya, ia menukar fungsi menjadi fungsi yang memanggil LLM setiap kali ia dilaksanakan, menyampaikan docstring sebagai prompt. Penjelasan ini mencetuskan perbincangan lanjut tentang bagaimana implementasi yang benar-benar seperti pengkompil mungkin kelihatan—mungkin menjana dan menyimpan kod Python pada panggilan pertama dan bukannya membuat panggilan API berulang kali.

Fleksibiliti Masa Larian dan Pendekatan Alternatif

Satu batasan penting yang diketengahkan oleh beberapa pembangun adalah kesukaran dalam menggunakan fungsi yang sama dengan LLM yang berbeza pada masa larian. Corak dekorator yang digunakan oleh smartfunc mengunci pilihan model pada masa import, yang dianggap terbatas oleh sesetengah pihak untuk persekitaran pengeluaran. Perpustakaan alternatif seperti think disebut sebagai menawarkan lebih fleksibiliti dengan secara eksplisit menghantar objek LLM.

Perbincangan juga menyentuh implementasi serupa dalam bahasa pengaturcaraan yang berbeza, dengan pembangun menyebut alat yang setanding untuk JavaScript dan minat terhadap versi Java. Minat merentasi bahasa ini menunjukkan permintaan yang semakin meningkat untuk corak standard bagi mengintegrasikan LLM ke dalam pelbagai persekitaran pembangunan.

Perpustakaan Serupa Yang Disebut Dalam Perbincangan

  • smartfunc: Perpustakaan Python yang mengubah docstring menjadi fungsi LLM
  • Tanuki: Fungsi yang serupa dengan smartfunc
  • promptic: Membungkus litellm dengan sokongan untuk banyak pembekal model
  • think: Pendekatan alternatif yang menghantar objek LLM untuk fleksibiliti masa larian
  • llm-docsmith: Plugin untuk menjana docstring untuk kod sedia ada
  • neuro-lingo: Disebut sebagai mempunyai hasil fungsi yang "dipinkan"
  • instructor: Alternatif dengan lebih banyak ciri dengan sokongan pengesahan
  • marvin: Perpustakaan fungsi LLM alternatif

Masa Depan Pengaturcaraan Bahasa Semula Jadi

Beberapa pengulas membuat perbandingan antara usaha integrasi LLM semasa dengan percubaan sejarah untuk menjadikan pengaturcaraan lebih mudah diakses melalui bahasa semula jadi, seperti COBOL pada tahun 1960-an. Walaupun COBOL mewakili percubaan awal sintaks seperti bahasa Inggeris, LLM moden berpotensi membawa kita lebih dekat kepada visi Jensen Huang tentang bahasa semula jadi menjadi bahasa pengaturcaraan.

Perbincangan juga menyoroti perbezaan menarik dalam aliran kerja. Sementara smartfunc menggunakan docstring untuk menjana fungsi, sesetengah pembangun melaporkan penggunaan LLM dalam arah yang bertentangan—meminta LLM menjana dokumentasi komprehensif untuk kod yang kurang komen. Hubungan dua arah antara kod dan bahasa semula jadi ini menunjukkan evolusi amalan pembangunan di mana sempadan antara spesifikasi, implementasi, dan dokumentasi menjadi semakin kabur.

Caching dan Pelaksanaan Tempatan

Melihat ke arah penambahbaikan masa depan, pembangun menyatakan minat dalam pendekatan yang akan menyuling fungsi LLM ke dalam model khusus yang lebih kecil untuk fungsi tertentu dan bukannya membuat panggilan API berulang kali kepada model asas. Ini berpotensi mengurangkan kependaman dan kos sambil meningkatkan kebolehpercayaan.

Konsep menyimpan output yang diketahui baik juga dibincangkan sebagai cara untuk mengurangkan sifat tidak deterministik LLM. Sesetengah mencadangkan implementasi yang akan menjana kod semasa langkah pembinaan, mengesahkannya terhadap ujian atau keperluan kompilasi, dan kemudian menyimpan hasil yang berjaya—secara efektif mengasingkan apa yang boleh diubah oleh LLM sambil mengekalkan kawalan pembangun.

Semasa corak integrasi LLM terus berkembang, komuniti nampaknya sedang menumpu kepada pendekatan yang mengekalkan agensi pengaturcara sambil memanfaatkan kuasa AI untuk mengendalikan tugas pengkodan yang berulang atau bertele-tele. Sama ada melalui fungsi yang dikuasakan oleh docstring seperti smartfunc atau sistem penjanaan kod dan caching yang lebih canggih, alat-alat ini mewakili langkah awal ke arah paradigma pengaturcaraan baharu di mana bahasa semula jadi dan kod wujud dalam hubungan yang lebih simbiotik.

Rujukan: smartfunc