Rumah >Peranti teknologi >industri IT >Apa itu Copilot GitHub? Seorang pengaturcara pasangan AI untuk semua orang
GitHub Copilot: Rakan Pengaturcaraan AI Anda, Alat yang berkuasa untuk Meningkatkan Kecekapan
mata teras:
Saya melayari Twitter baru -baru ini dan melihat tweet ini disiarkan oleh akaun GitHub rasmi:
Bertemu GitHub Copilot - Rakan Pengaturcaraan AI anda. [Link] [gambar]Saya kagum dengan idea AI yang membantu dalam menulis kod (walaupun melakukan semua pengangkat berat), jadi saya melawat halaman Copilot GitHub.- GitHub (@github) 29 Jun, 2021
Langkau segala -galanya dan saya pergi terus ke bahagian bawah halaman untuk mencari kaedah ujian. Saya melihat sepanduk yang memanggil pengguna untuk mendaftar untuk pratonton Teknologi Copilot Github.
Selepas menunggu beberapa hari (atau minggu), saya mendapat akses kepada pratonton teknologi, dan sekarang saya boleh mempunyai kod menulis AI untuk saya ... atau, bolehkah saya?
Teruskan membaca untuk mengetahui apa yang Github Copilot, pengalaman saya dan bagaimana ia akan memberi kesan kepada anda ... atau mengapa ia tidak mungkin.
Apa itu Copilot?
Copilot adalah hasil kerjasama antara GitHub dan OpenAI (sangat disokong oleh Microsoft). Ia dikuasakan oleh sistem AI baru yang dipanggil Codex, yang berdasarkan model GPT-3.
GPT-3 mewakili generasi ketiga penukar pretrain generatif-model bahasa yang dapat menghasilkan urutan teks berdasarkan arahan mudah. Codex berasal dari model ini, yang mampu menghasilkan bukan sahaja teks tetapi juga kod dalam beberapa bahasa yang paling popular.
Copilot telah dilatih dengan berbilion baris kod dari repositori yang tersedia secara terbuka di GitHub, jadi kod anda mungkin telah meningkatkan alat AI ini sedikit sebanyak (kami akan masuk ke dalamnya kemudian).
Walaupun ia menyokong kebanyakan bahasa pengaturcaraan, ia kini berfungsi dengan baik di Python, JavaScript, Typescript, Ruby, dan GO.
mari kita lihat bagaimana Copilot GitHub berfungsi dan apa yang boleh dilakukan pada masa ini.
Pemasangan copilot sangat mudah. Jika anda mempunyai akses kepada pratonton teknologi, cari dan aktifkan sambungan kod VS dalam tab Sambungan.
Satu -satunya cara untuk menggunakan copilot pada masa ini adalah pada kod VS, yang mungkin berterusan untuk sementara waktu bergantung pada halaman Copilot.
Kebanyakan contoh berikut akan menggunakan Python kerana ia adalah salah satu bahasa alat AI ini sangat baik dalam pengendalian.
bagaimana cadangan kod berfungsi
GitHub Copilot menjana pelbagai cadangan berdasarkan konteks fail yang anda edit. Sediakan cadangan berdasarkan komen yang anda tulis dalam fail dan kod yang anda tulis sebelum ini.
Copilot akan meminta anda menggunakannya selepas memberikan cadangan kod. Mari kita menguji copilot dengan membuat fungsi yang mengira nilai purata dataset. Saya hanya akan memberikan nama dan nama fungsi untuk Copilot.
Seperti yang anda lihat, teks kelabu dicadangkan oleh copilot, saya boleh menekan kekunci
untuk menerimanya. Tetapi jika saya tidak menyukai cadangan pertama, saya boleh menggunakan ctrl ] untuk melayari lebih banyak cadangan, atau gunakan ctrl
mengesankan, bukan? Tetapi mari kita menetapkan cabaran yang berbeza. Sekarang, copilot mesti membuat fungsi utama yang membolehkan pengguna memasukkan beberapa nombor yang dipisahkan ruang. Ia harus memecah nombor ini dan lulus senarai hasil ke fungsi compute_average, dan kemudian mencetak hasilnya.
.
Ini adalah bagaimana GitHub Copilot menulis skrip python berfungsi berdasarkan arahan yang saya berikan sahaja. Sudah tentu, kod itu tidak sempurna. Sebagai contoh, fungsi compute_average boleh dipermudahkan kepada sum(dataset) / len(dataset)
, tetapi hasil keseluruhannya cukup baik.
Copilot adalah alat yang sangat menarik. Pada pandangan pertama, sangat menyeronokkan untuk menulis kod dengannya dan saya menghabiskan berjam -jam mengujinya.
Jika anda menghabiskan beberapa hari menggunakannya untuk mengekod, anda akan terbiasa dengannya, dan dalam beberapa kes ia benar -benar berguna, seperti menulis dokumen atau mula menggunakan teknologi baru.
Penyelesaian Kod Perlahan
Pada masa ini (ingat bahawa copilot masih dalam peringkat pratonton teknikal), penyelesaian kod boleh menjadi sedikit canggung.
Terutama dengan cadangan line-by-line, saya dapat menaip penyelesaian saya sebelum copilot menunjukkannya (memandangkan kelajuan menaip purata saya adalah 48 perkataan seminit, tidak dibandingkan dengan pemaju lain terlalu cepat).
Ini dapat difahami kerana ia mengambil cadangan dari Internet, yang boleh menyebabkan beberapa kelewatan. Sudah tentu, ia bergantung pada kelajuan internet anda.
Di samping itu, copilot biasanya menyediakan penyelesaian yang lebih luas, yang, seperti yang ditunjukkan dalam ujian di atas, memerlukan lebih banyak sumber daripada kaedah fungsi mudah yang dicadangkan (pada pelayan di mana copilot terletak).
Gangguan aliran kerja
Pada peringkat awal ini, bukan alat yang anda gunakan semasa membina projek penting.
Sudah tentu, anda tidak tahu bila Copilot mencadangkan untuk tiba, dan apabila mereka tiba, mereka boleh mengganggu aliran kerja anda kerana anda akan terganggu oleh autocomplete.
Saya sering menemui ini kerana ia boleh menjengkelkan untuk melihat setiap bahagian kod yang dicadangkan kepada saya. Nasib baik, Nat Friedman (Ketua Pegawai Eksekutif Github) menyelesaikannya di Twitter, dan Copilot mungkin mempunyai UI untuk menunjukkan sama ada ia menghasilkan cadangan kod.
kod yang dicadangkan mempunyai ralat
Kadang -kadang, cadangan Copilot tidak berfungsi. Memandangkan mereka mengesahkan pada halaman Copilot Github, ia melakukan yang terbaik untuk memberikan anda penyelesaian kod terbaik, tetapi itu tidak bermakna bahawa setiap coretan kod yang disediakan oleh Copilot berfungsi dengan sempurna.
Sama ada anda mempunyai akses kepada pratonton teknologi atau anda adalah pembaca masa depan, untuk memanfaatkan sepenuhnya copilot, anda harus cuba memberikan rentetan dokumentasi dan nama fungsi terbaik (serupa dengan coretan kod di atas).
Di samping itu, kerana Copilot menggunakan asas kod GitHub yang terdedah untuk latihan, ia mungkin mengesyorkan menggunakan coretan perpustakaan atau modul lama, jadi pastikan anda menyemak setiap sebahagian besar kod yang disediakannya.
kebergantungan mungkin berlaku dari masa ke masa
Copilot adalah alat yang sangat kuat, tetapi dari masa ke masa anda boleh bergantung padanya.
Ia seperti mempunyai pelanggan Stack Overflow secara langsung dalam editor anda - pelanggan yang cuba memahami kod anda dan memberi anda sepuluh penyelesaian terbaik.
Jangan salahkan saya: Ia hebat, dan dari masa ke masa ia mungkin menjadi salah satu alat yang paling banyak digunakan dalam industri, tetapi dari masa ke masa ia boleh menjadi masalah untuk bergantung pada itu. Perincian kecil ini digabungkan dengan hakikat bahawa beberapa keputusan yang disediakan oleh Copilot mungkin tidak berfungsi seperti yang dijangkakan membawa kepada masalah berikut ...
copilot mencadangkan kod yang anda mungkin tidak faham
Seperti yang ditunjukkan dalam beberapa contoh kod terdahulu, Copilot akan mencadangkan sebahagian besar kod dan tidak selalu mudah untuk memahami apa yang dilakukannya.
Ia boleh menggoda untuk hanya mempunyai copilot melakukan kerja berat, yang boleh menjejaskan proses pembelajaran untuk pemula (dan pemaju canggih). Dalam kebanyakan kes, perkara yang paling penting mengenai pengekodan adalah pengecualian ralat, dan penyelesaian kod yang disediakan oleh Copilot boleh menjejaskan perkembangan kemahiran ini.
Untuk mengelakkan ini, pastikan anda menyemak kod yang dicadangkan oleh Copilot dan memahami apa yang sedang dilakukannya.
Copilot masih merupakan alat baru dengan banyak kesilapan. Saya telah membuat beberapa catatan di halaman perbincangan Github Copilot (tersedia untuk pengguna versi pratonton teknikal) dan saya telah menerima maklum balas daripada komuniti.
Saya percaya alat ini akan menyelesaikan kebanyakan masalah ini sebelum ia dikeluarkan secara rasmi.
Seperti yang kita ketahui, Copilot dilatih di pangkalan kod GitHub awam, yang menyebabkan beberapa reaksi dari masyarakat. Sesetengah orang marah kerana kod sumber bebas dan terbuka digunakan untuk melatih copilot.
Seperti yang anda ketahui, kebanyakan lesen sumber terbuka (GNU, BSD, Apache, dan lain -lain) membolehkan anda menggunakan, mengubah suai dan mengedarkan perisian, satu -satunya syarat adalah menggunakan lesen yang sama. Walau bagaimanapun, Copilot direka untuk menjadi produk komersial.
Di bawah Creative Commons, menggunakan data awam untuk melatih model AI tidak melanggar hak cipta secara lalai -sekurang -kurangnya untuk lesen CC. Nat Friedman juga bercakap mengenai topik ini di thread Twitter:
Secara umumnya: (1) Latihan Sistem ML pada data awam adalah penggunaan yang munasabah (2) output milik pengendali, seperti pengkompil.
Kami mengharapkan harta intelek dan kecerdasan buatan menjadi topik perbincangan dasar yang menarik di seluruh dunia pada tahun -tahun akan datang dan kami tidak sabar -sabar untuk mengambil bahagian!
- Nat Friedman (@natfriedman) 29 Jun, 2021
copilot (seperti yang mereka tuntut di halaman mereka) hanyalah synthesizer kod, jadi ia benar -benar pelik untuk mengekstrak cadangan literal dari set latihan.
Alat ini masih dalam peringkat pratonton teknikal, yang bermaksud ia boleh mengeluarkan data peribadi dari pangkalan kod GitHub, tetapi kita boleh mengharapkan isu ini dapat diselesaikan sebelum ia dikeluarkan secara rasmi.
Jangan lupa bahawa alat penyelesaian kod AI yang lain, Tabnine, juga dilatih menggunakan kod sumber terbuka pada GitHub, jadi ini telah berlaku beberapa kali.
Abstrak, umumnya dipercayai bahawa model AI akan dilatih menggunakan data awam. Walau bagaimanapun, isu -isu etika mengenai amalan ini akan menjadi topik perbincangan yang kuat pada tahun -tahun akan datang.
Adakah kita melatih GitHub Copilot?
Github Copilot sentiasa mempelajari gaya kod kami dan bersedia memenuhi keperluan kami. Walau bagaimanapun, ia tidak akan berkongsi kod peribadi sebagai cadangan untuk pengguna lain. Saya fikir ini sangat penting kerana kadang -kadang saya mengedit fail konfigurasi yang menyimpan maklumat sensitif secara langsung dalam kod VS, yang akan menjadi mengerikan jika fail -fail ini dikongsi dengan orang lain.
Sebaliknya, seperti mana -mana model AI yang lain, Copilot belajar dari penggunanya dan diketahui bahawa akan ada data telemetri untuk operasi tertentu seperti menerima atau menolak cadangan. Jika anda ingin tahu, pastikan anda menyemak halaman telemetri Copilot.
Pada masa ini, Copilot adalah seperti yang dikatakan: Pembantu AI pemaju. Saya tidak fikir ia akan menggantikan pemaju dalam jangka pendek atau sederhana sekurang -kurangnya.
Ia tidak dapat memahami masalah dunia nyata, merancang penyelesaian, membinanya dan menunjukkan dunia-tugas-tugas yang pemaju (dan manusia) baik untuk menyelesaikannya.
mungkin pada masa akan datang, alat seperti Github Copilot akan mengubah permainan dalam industri pengaturcaraan -bukan dengan mencuri pekerjaan, tetapi dengan meningkatkan produktiviti pemaju. Kami telah meningkatkan pengalaman pemaju sejak abad yang lalu (editor kod, alat debugging, dan lain -lain), dan sekarang dengan kebangkitan teknologi AI, kami dapat menantikan lebih banyak alat dengannya.
ingat, sebelum manusia mendarat di bulan, "komputer" adalah nama kami bagi mereka yang sangat baik dalam menyelesaikan operasi matematik secara manual. Komputer seperti yang kita tahu hari ini telah memusnahkan pekerjaan yang tidak terkira banyaknya, tetapi juga telah mencipta pekerjaan baru, akhirnya mewujudkan salah satu industri terbesar di dunia.
Pada masa ini, Copilot adalah teknologi yang unik. Tetapi jika anda hanya memerlukan sistem penyelesaian AI yang baik, terdapat beberapa pilihan lain.
Copilot belum dikeluarkan secara terbuka, jadi anda mungkin memerlukan produk yang lebih matang untuk kod dalam bahasa kegemaran anda.
Sebaliknya, jika anda baru mula belajar pengekodan, saya sangat mengesyorkan menggunakan alternatif ini kerana mereka dapat membantu anda tanpa melaksanakan logik kod untuk anda. Sebaik sahaja anda mempunyai lebih banyak pengalaman, anda boleh menggunakan Copilot sebagai rakan pengaturcaraan AI anda.
IntelliSense
Jika anda adalah pengguna kod VS, anda mungkin telah menggunakan Intellisense sejak hari pertama. Ini adalah sistem penyelesaian kod lalai pada kod VS, dan anda boleh memasang sokongan untuk setiap bahasa pengaturcaraan yang anda gunakan. Apa yang perlu anda lakukan ialah melancarkan tab Sambungan dan mencari bahasa yang anda mahu pasang disokong.
Kite
Kite adalah perkhidmatan penyelesaian kod AI yang boleh anda pasang di hampir semua editor kod popular. Ia menawarkan pelan percuma, yang mencukupi dalam kebanyakan kes, dan juga mempunyai tab yang lengkap (tidak seperti GitHub Copilot) yang membolehkan anda melihat dokumen Python tanpa memulakan penyemak imbas.
Malangnya, matlamat utama Kite adalah Python, jadi patut diperiksa Tabnine sebelum membuat keputusan.
Tabnine
Tabnine (dahulunya dikenali sebagai Codota) adalah satu lagi alat penyelesaian AI yang digunakan oleh berjuta -juta pemaju. Pada masa ini, ia menyokong lebih daripada 30 bahasa dan boleh dipasang dalam 15 IDE.
Menariknya, Tabnine juga dilatih menggunakan kod awam yang terdapat di GitHub, yang menggunakan GPT-2 (versi sebelumnya GPT-3) untuk menjana penyelesaian kod. Jika anda tidak mempunyai akses kepada pratonton teknikal copilot, Tabnine mungkin alternatif yang baik.
Adalah penting untuk diperhatikan bahawa sistem autocompletion ini mesti dijalankan pada mesin anda (sekurang -kurangnya versi percuma mereka), yang bermaksud mereka mengambil lebih banyak sumber sistem daripada GitHub Copilot. Ingat, Copilot mendapat semua cadangan kod dari pelayan jauh.
Ia sangat mengagumkan untuk melihat alat AI menjana kod. GitHub tidak bertujuan untuk menggantikan pengaturcara, tetapi untuk membantu mereka meningkatkan kecekapan pengekodan, terutamanya dalam tugas pengekodan berulang, seperti menulis rentetan dokumen yang baik dalam fungsi atau kelas.
Saya perhatikan beberapa isu selepas menggunakan copilot untuk seketika, tetapi secara keseluruhan ia memberikan cadangan kod yang baik (tetapi tidak sempurna). Saya menguji penyelesaian kepada beberapa masalah kod popular dan saya sangat gembira dengan hasilnya. Dengan itu, saya tidak fikir Copilot harus digunakan oleh pemula sepenuhnya atas alasan seperti yang disebutkan di atas.
Projek ini sangat baru, jadi ia bukan rakan kongsi yang ideal ketika membina projek -projek penting, tetapi pada masa akan datang ia mungkin menjadi salah satu alat pengekodan yang paling biasa digunakan.
Mungkin pernyataan "rakan pengaturcaraan AI" bukanlah realiti, tetapi saya percaya ia akan direalisasikan pada masa akan datang.
Akhirnya, saya ingin anda tahu bahawa Copilot membantu saya menulis kesimpulan ini.
Singkatnya, artikel pseudo-asal ini mengekalkan semua gambar teks asal dan menulis semula teks asal untuk membuat ungkapannya lebih lancar dan semulajadi Tujuan pseudo-asal telah dicapai.
Atas ialah kandungan terperinci Apa itu Copilot GitHub? Seorang pengaturcara pasangan AI untuk semua orang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!