Rumah  >  Artikel  >  Peranti teknologi  >  Adakah ia satu pencapaian atau kelemahan? Pertikaian antara alat penjanaan kod AI dan pengaturcara

Adakah ia satu pencapaian atau kelemahan? Pertikaian antara alat penjanaan kod AI dan pengaturcara

PHPz
PHPzke hadapan
2023-04-08 21:11:01948semak imbas

Adakah pengaturcara ditakdirkan untuk diganti? Komuniti pengaturcaraan komputer telah dicengkam oleh soalan ini sejak model bahasa berskala besar OpenAI GPT-3 menunjukkan keupayaan yang menakjubkan untuk mencipta laman web HTML berdasarkan arahan bertulis yang mudah.

Dalam beberapa bulan sejak itu, anda boleh menulis program komputer yang ringkas tetapi lengkap berdasarkan penerangan bahasa semula jadi (bahasa manusia lisan atau bertulis) dan mempercepatkan kerja pengaturcaraan automatik pembantu. Sejauh manakah AI akan menggantikan atau meningkatkan kerja pengaturcara?

IEEE Spectrum bertanya kepada beberapa pakar tentang perkara ini, dan berita buruknya ialah pengaturcaraan mungkin ditakdirkan untuk diganti. Tetapi berita baiknya ialah ia kelihatan seperti pengaturcaraan komputer dan pembangunan perisian akan kekal sebagai pekerjaan yang sangat melibatkan manusia untuk masa hadapan. Pada masa yang sama, penjanaan kod automatik berkuasa AI semakin mempercepatkan pembangunan perisian dengan membenarkan lebih banyak kod ditulis dalam masa yang lebih singkat.

Vasi Philomin, Naib Presiden Amazon AI Services, berkata, "Saya tidak percaya AI akan menggantikan sepenuhnya pembangun manusia. Alat AI boleh membebaskan pengaturcara daripada tugas harian, tetapi pengaturcaraan komputer Kreatif pekerjaan ada di sini untuk kekal. Sebaliknya, mereka perlu memahami semantik, konsep, dan urutan logik mencipta program komputer, yang akan membuka pembangunan perisian kepada populasi yang lebih luas.

Pengaturcaraan komputer menjadi semakin pintar dan automatik

Apabila pengaturcaraan komputer elektronik bermula pada tahun 1940-an, pengaturcara menulis menggunakan kod mesin digital. Hanya pada pertengahan 1950-an Grace Hopper, seorang saintis komputer wanita Amerika yang terkenal, dan pasukannya di Syarikat Remington Rand membangunkan FLOW-MATIC, yang membenarkan pengaturcara menulis program menggunakan perbendaharaan kata bahasa Inggeris yang terhad.

Sejak itu, bahasa pengaturcaraan menjadi lebih cekap dan pengaturcara menjadi lebih cekap dalam kerja mereka.

Kod bertulis AI berada di barisan hadapan dalam perubahan yang lebih luas, membolehkan orang ramai menulis perisian tanpa pengekodan sama sekali. Kini terdapat platform pembangunan AI tanpa kod seperti Akkio yang membolehkan orang ramai membina model pembelajaran mesin dengan fungsi seret dan lepas dan klik butang yang mudah. Platform Kuasa Microsoft termasuk satu siri produk kod rendah yang membolehkan pengguna menjana aplikasi mudah hanya dengan menerangkannya.

Adakah ia satu pencapaian atau kelemahan? Pertikaian antara alat penjanaan kod AI dan pengaturcaraPada bulan Jun tahun ini, Amazon melancarkan versi pratonton CodeWhisperer, pembantu pengaturcaraan berasaskan pembelajaran mesin yang serupa dengan Copilot untuk GitHub. Kedua-dua alatan adalah berdasarkan model bahasa besar (LLM), yang telah dilatih berdasarkan asas kod besar-besaran. Semasa pengaturcara menulis kod, kedua-dua CodeWhisperer dan Copilot menyediakan cadangan autolengkap dan mencadangkan arahan boleh laku berdasarkan frasa bahasa semula jadi yang mudah.

Adakah ia satu pencapaian atau kelemahan? Pertikaian antara alat penjanaan kod AI dan pengaturcaraBeberapa hari lalu, GitHub telah menjalankan tinjauan di kalangan 2,000 pembangun dan mendapati bahawa masa Tugas Copilot dipotong separuh dan kepuasan keseluruhan pemaju dengan pekerjaan mereka meningkat.

Melebihi pelengkapan automatik kod bukanlah mudah

Tetapi jika anda ingin melampaui pelengkapan automatik, masalahnya ialah mengajar niat kepada komputer. Keperluan perisian selalunya kabur, dan bahasa semula jadi terkenal tidak tepat.

Diffblue, syarikat permulaan kecerdasan buatan Britain, komited untuk menggunakan AI untuk menyemak dan membetulkan kod, salah seorang pengasas bersamanya, berkata bahawa ia mahu menyelesaikan kekaburan Standard penulisan bahasa Inggeris Kemudian beberapa penambahbaikan tambahan diperlukan, beberapa dialog antara manusia dan mesin.

Untuk menangani isu ini, penyelidik Microsoft baru-baru ini mencadangkan menambah mekanisme maklum balas kepada penjanaan kod berasaskan LLM supaya komputer akan meminta pengaturcara untuk menjelaskan sebarang kekaburan sebelum menjana kod. Sistem interaktif Microsoft, yang dipanggil TiCoder, memperhalusi dan memformalkan niat pengguna dengan menjana apa yang dipanggil "formalisasi niat pengguna dipacu ujian" (TDUIF).

TDUIF cuba menggunakan maklum balas berulang untuk menentukan niat algoritma pengaturcara dan kemudian menjana kod yang konsisten dengan niat pengaturcara yang dinyatakan. Rajah di bawah menunjukkan aliran kerja TDUIF.

Adakah ia satu pencapaian atau kelemahan? Pertikaian antara alat penjanaan kod AI dan pengaturcara

Alamat kertas: https://arxiv.org/abs/2208.05950

Menurut kertas berkaitan, apabila dinilai pada tanda aras Mostly Basic Programming Problems (MBPP), TiCoder meningkatkan ketepatan kod yang dijana secara automatik daripada 48% kepada 85%. Direka bentuk untuk menilai kod yang dijana mesin, MBPP terdiri daripada kira-kira 1,000 masalah pengaturcaraan Python sumber ramai untuk diselesaikan oleh pengaturcara peringkat permulaan.

Satu unit kod boleh mempunyai ratusan baris panjang dan merupakan bahagian terkecil program yang boleh diselenggara dan dilaksanakan secara bebas. Satu set ujian unit biasanya terdiri daripada berpuluh-puluh ujian unit, setiap satu mengandungi 10 hingga 20 baris kod, yang memeriksa sama ada unit berfungsi seperti yang diharapkan, supaya apabila anda menyusun unit di atas satu sama lain, program berfungsi seperti yang diharapkan.

Ujian unit berguna untuk menyahpepijat fungsi individu dan mengesan ralat apabila menukar kod secara manual. Selain itu, ujian unit berfungsi sebagai spesifikasi untuk unit kod dan berfungsi untuk membimbing pengaturcara dalam menulis kod yang bersih dan bebas pepijat. Walaupun tidak ramai pengaturcara meneruskan pembangunan dipacu ujian sebenar, di mana ujian unit ditulis dahulu, ujian unit sering ditulis bersama-sama dengan unit.

Pakar percaya: Pengaturcara manusia tidak akan kehilangan pekerjaan mereka disebabkan penjanaan kod AI

Menurut hasil tinjauan pemaju Diffblue 2019, pembangun membelanjakan kira-kira 35% daripada masa mereka gunakan untuk menulis ujian kawalan kualiti dan bukannya menulis kod untuk kegunaan pengeluaran, jadi mengautomasikan bahagian kerja ini boleh meningkatkan produktiviti dengan ketara.

Pada masa yang sama, Copilot, CodeWhisperer dan pakej pembantu pengaturcaraan AI lain boleh digunakan sebagai alatan pelengkapan automatik interaktif untuk menulis ujian unit. Pengaturcara mendapat cadangan pengekodan dan pilih yang paling berkesan.

Pada Februari tahun ini, DeepMind terus menggunakan AlphaCode untuk pengeluaran kod automatik sepenuhnya. AlphaCode ialah model bahasa berskala besar yang boleh menulis program komputer ringkas berdasarkan arahan bahasa semula jadi. Ia menggunakan seni bina Transformer penyahkod-pengekod yang mula-mula mengekod perihalan bahasa semula jadi masalah dan kemudian menyahkod vektor yang terhasil ke dalam kod yang diperlukan untuk penyelesaian.

Adakah ia satu pencapaian atau kelemahan? Pertikaian antara alat penjanaan kod AI dan pengaturcara

Gambaran Keseluruhan Kod Alpha. Sumber imej: https://arxiv.org/pdf/2203.07814.pdf

Model ini mula-mula dilatih pada repositori GitHub sehingga ia boleh menjana Kod pandangan yang nampak munasabah. Untuk memperhalusi model, DeepMind menggunakan 15,000 pasang penerangan masalah bahasa semula jadi dan penyelesaian kod yang berjaya daripada pertandingan pengaturcaraan lalu untuk mencipta set data khusus bagi contoh input-output.

Apabila AlphaCode telah dilatih dan diperhalusi, ia boleh diuji terhadap masalah yang tidak pernah dilihat sebelum ini. Langkah terakhir ialah menjana sejumlah besar penyelesaian dan kemudian menggunakan algoritma penapisan untuk memilih yang terbaik. Oriol Vinyals, ketua pasukan pembelajaran mendalam DeepMind, percaya bahawa mereka mencipta banyak program berbeza dengan mensampel model bahasa hampir 1 juta kali.

Untuk mengoptimumkan proses pemilihan sampel, DeepMind menggunakan algoritma pengelompokan untuk mengumpulkan penyelesaian. Proses pengelompokan cenderung untuk mengumpulkan penyelesaian yang boleh dilaksanakan, menjadikannya lebih mudah untuk mencari subset kecil calon yang mungkin berfungsi semasa pengaturcara menulisnya.

Untuk menguji sistem, DeepMind menyerahkan 10 program bertulis AlphaCode kepada pertandingan pengaturcaraan manusia pada platform Codeforces yang popular, dengan penyelesaian diletakkan dalam 54% teratas.

Dalam temu bual baru-baru ini, Oriol Vinyals bertanya secara retorik, "Untuk menghasilkan program, adakah anda hanya menulisnya dalam bahasa semula jadi tanpa pengekodan, dan kemudian penyelesaiannya adalah dalam Bagaimana dengan keluar dari sisi lain?" Vinyals dan yang lain berhati-hati, mengatakan bahawa ia akan mengambil masa, mungkin beberapa dekad, untuk sampai ke sana.

Pengasas dan Ketua Pegawai Eksekutif AI Landing Andrew Ng, seorang sarjana AI yang terkenal, berkata bahawa kita masih jauh daripada seseorang yang dapat memberitahu komputer untuk menulis program komputer yang kompleks secara sewenang-wenangnya dan melengkapkan pengekodan secara automatik.

Walau bagaimanapun, memandangkan betapa cepatnya penjanaan kod AI telah berkembang dalam beberapa tahun sahaja, nampaknya trend evolusi yang tidak dapat dielakkan bahawa sistem AI akhirnya akan dapat menulis kod berdasarkan arahan bahasa semula jadi. Dan program perisian pengaturcaraan tangan akan menjadi lebih dan lebih seperti baju sejuk mengait tangan.

Untuk menyediakan arahan bahasa semula jadi kepada komputer, pembangun masih perlu memahami beberapa konsep logik dan berfungsi serta cara menstruktur sesuatu. Walaupun pembangun tidak mempelajari bahasa pengaturcaraan tertentu atau menulis kod komputer, mereka masih perlu mempelajari asas pengaturcaraan. Seterusnya, ini akan membolehkan lebih ramai pengaturcara mencipta perisian yang semakin pelbagai.

Vasi Philomin berkata dia tidak percaya AI akan menggantikan pembangun manusia. AI boleh menghapuskan kerja kasar dan rutin yang perlu dilakukan oleh pembangun, membolehkan mereka menumpukan pada perkara yang bernilai lebih tinggi.

Peter Schrammel juga bersetuju bahawa penjanaan kod automatik AI membolehkan pembangun perisian menumpukan pada tugas yang lebih sukar dan mencabar. Bagaimanapun, tambahnya, sekurang-kurangnya perlu mengesahkan sama ada apa yang difahami oleh mesin itu adalah niat manusia.

Beliau juga berkata bahawa pembangun perisian tidak akan kehilangan pekerjaan mereka kerana alat pengekodan automatik menggantikannya, dan akan sentiasa ada lebih banyak perisian untuk ditulis.

Atas ialah kandungan terperinci Adakah ia satu pencapaian atau kelemahan? Pertikaian antara alat penjanaan kod AI dan pengaturcara. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam