GitHub Copilot ve Amazon CodeWhisperer

Feb 13 2023
Yapay zeka destekli en iyi kodlama asistanı için savaş resmen başladı! GitHub Copilot ve Amazon CodeWhisperer, otomatik tamamlamayı tamamen yeni bir düzeye taşıyan yapay zeka destekli kodlama asistanlarıdır. En iyi ihtimalle, geliştirici tarafından verilen küçük bir açıklayıcı metne dayalı olarak işleyen kodun tüm parçalarını yazabilirler.

Yapay zeka destekli en iyi kodlama asistanı için savaş resmen başladı!

GitHub Copilot ve Amazon CodeWhisperer, otomatik tamamlamayı tamamen yeni bir düzeye taşıyan yapay zeka destekli kodlama asistanlarıdır. En iyi ihtimalle, geliştirici tarafından verilen küçük bir açıklayıcı metne dayalı olarak işleyen kodun tüm parçalarını yazabilirler. Bu, bir geliştirici olarak sizi daha verimli hale getirebilir
ve - bence - geliştirmeyi çok daha eğlenceli hale getirir!✨

O halde daha fazla uzatmadan başlayalım!

Yapay zeka destekli bir kodlama asistanı nedir?

GitHub Copilot ve Amazon CodeWhisperer, kod düzenleyicinizle entegre olan ve daha hızlı kod yazmanıza yardımcı olan hizmetlerdir. Ancak, örneğin "IntelliSense" gibi yaygın otomatik tamamlama araçlarının aksine, Copilot ve CodeWhisperer, hem programlama hem de insan dillerini anlamalarına olanak tanıyan, hem kaynak kodu hem de doğal dil üzerinde eğitilmiş makine öğrenimi modellerini kullanır . Bu, onların düz İngilizce yazılmış yorumları anlamalarına, geliştiricinin amacına göre kod oluşturmalarına ve geliştiricinin modellerine ve stiline uymalarına olanak tanır. Siz yazarken, ilk yorumu tamamlamanız için öneriler bile sunarlar. En iyi tavsiyeyi kabul edebilir, daha fazla tavsiye görüntüleyebilir veya kendi kodunuzu yazmaya devam edebilirsiniz.

Standart ve tekrarlayan kod kalıpları oluşturmak için daha az, önemli olan şeylere daha fazla zaman harcayın: harika yazılımlar oluşturmak (GitHub Copilot)

GitHub Yardımcı Pilot nedir?

GitHub Copilot, GitHub ve OpenAI tarafından geliştirilmiştir. GitHub'daki halka açık depolar da dahil olmak üzere halka açık kaynak kodu üzerinde eğitilmiş OpenAI'nin Codex modeli tarafından desteklenmektedir. Copilot, Haziran 2022'de resmi olarak "teknik önizleme dışında" ilan edildi.

Açıklayıcı bir yorum veya işlev adı yazmaya başlayın, Copilot geri kalanını otomatik olarak tamamlamaya çalışacaktır.

Copilot'un kullanımı çok kolaydır ve tüm önemli kod düzenleyicilerle kolaylaştırılmış entegrasyon sunar. GitHub Copilot, yedi ana programlama dili için optimize edilmiştir (ayrıntılar için aşağıdaki tabloya bakın), ancak diğer dillerde ve çok çeşitli çerçevelerde öneriler de üretebilir.

Copilot önizleme aşamasında ücretsizdi, ancak GitHub yakın zamanda abonelik tabanlı bir modele geçeceklerini duyurdu. Yine de 60 günlük ücretsiz deneme alabilirsiniz ve doğrulanmış öğrenciler ve popüler açık kaynak projelerinin sahipleri için ücretsiz kalacaktır.

Yardımcı pilotun önerileri bağlama bağlıdır. Sabitleri kullanmak istediğinizi nasıl “öğrendiğini” ve nesneleri doğru isim ve numaralarla nasıl doldurduğunu gözlemleyin.

Amazon CodeWhisperer nedir?

Amazon CodeWhisper, Amazon tarafından geliştirilmiştir. Makine öğrenimi modelleri, Amazon'un şirket içi kodu ve açık kaynak kodu dahil olmak üzere çeşitli veri kaynakları üzerinde eğitilmiştir.

CodeWhisperer yorumlarınızı tamamlar. Daha sonra kod önermek için yorumları kullanır. En uygun olanı seçmek için farklı kod uygulamaları arasında geçiş yapabilirsiniz.

CodeWhisperer hala önizleme aşamasındadır ve GitHub Copilot'tan daha az dili ve daha az ana kod düzenleyiciyi destekler. Ancak, geniş bir dil ve IDE desteği ana cazibe merkezi değildir. Bunun yerine CodeWhisperer, Amazon Elastic Compute Cloud (EC2), AWS Lambda ve Amazon Simple Storage Service (S3) dahil olmak üzere en popüler hizmetlerde AWS API'leri için kod önerileri sağlayan AWS API'leri için birinci sınıf destek sağlamaya odaklanır. Nicelikten çok nitelik mi?

Bu Amazon blog gönderisine göre , bir kullanıcı "S3'e bir dosya yükle" yazabilmelidir ve CodeWhisperer, belirtilen görev için hangi bulut hizmetlerinin ve halk kitaplıklarının en uygun olduğunu otomatik olarak belirleyecek, belirli kodu anında oluşturacaktır. ve oluşturulan kod parçacıklarını doğrudan IDE'de önerin.

Önizleme döneminde, geliştiriciler buradan kaydolarak CodeWhisperer'ı ücretsiz olarak kullanabilirler .

Karşılaştırmak

GitHub Copilot ve Amazon CodeWhisperer arasındaki karşılaştırma. DÜZENLEME: Copilot bu diller için optimize edilmiştir, ancak her zamankinden daha fazlasını destekler.

Hangisi daha popüler?

CodeWhisperer'ın (geçen ay piyasaya sürülen) kısa kullanım ömrü göz önüne alındığında, kullanıcı sayısıyla ilgili herhangi bir veri bulamadım. Bununla birlikte, bir yıllık avantajlı başlangıcıyla GitHub Copilot'un şu anda baskın oyuncu olduğunu söylemek muhtemelen güvenlidir. GitHub'a göre 1,2 milyondan fazla geliştirici, son 12 ayda Copilot'un teknik önizlemesini kullandı. Kendi araştırmaları, kullanıcıların GitHub Copilot tarafından gösterilen tüm tamamlamaların ortalama %26'sını kabul ettiğini ve geliştiricilerin kod dosyalarının %40'a kadarının GitHub Copilot tarafından oluşturulduğunu gösteriyor.

Peki ya mahremiyet?

Performanslarını artırmak için hem Copilot hem de CodeWhisperer, kullanıcılarından veri toplar. İş yerinde bu araçları kullanarak kuruluşunuzun kod tabanını veya verilerini riske mi atıyorsunuz? Bu önemli bir sorudur ve çoğu şirket için anlaşmayı bozabilir.

GitHub Copilot, kod önerileri sağlamak için kodunuzu ve yorumlarınızı GitHub Copilot hizmetine gönderir. Bu hizmet, hem düzenlediğiniz dosyadaki hem de bir proje içindeki komşu veya ilgili dosyalardaki bağlam benzeri dosya içeriğine dayanır. İlgili bağlamı belirlemek için havuzların veya dosya yollarının URL'lerini de toplayabilir. Veri toplamanın bazı bölümleri telemetri ayarlarında devre dışı bırakılabilir. Kullanım bilgileri gibi diğer kısımlar Copilot kullanımı için gereklidir ve kapatılamaz. Bu, GitHub Gizlilik Bildiriminde atıfta bulunulan kişisel verileri içerebilir .

GitHub ayrıca dahili testlerinde, GitHub Yardımcı Pilot önerilerinin eğitim setinden kelimesi kelimesine kişisel verileri içerdiğini ("nadir"..? ) nadiren bulduklarını belirtiyor . Ancak, bu önerilerden bazıları yalnızca kişisel veriler (e-posta adresleri, telefon numaraları vb.) gibi görünebilir , ancak aslında eğitim verilerindeki kalıplardan sentezlenen hayali bilgilerdir.

Amazon CodeWhisperer ayrıca bağlamsal bilgiler (dosya içeriği dahil), geri bildirim, telemetri ölçümleri ve kullanıcı ortamı bilgileri gibi belirli bilgileri de toplar. Amazon, Hizmet Şartlarında, önizleme aşamasında size içerik paylaşımını açma veya kapatma seçeneği sunabileceklerini belirtir.

Peki ya risk ve güvenlik açıkları?

Her iki asistan da güvenli olmayan kodlama kalıpları, hatalar veya eski API'lere veya deyimlere referanslar içerebilen genel kod konusunda eğitilmiştir. Çalışma “Klavyede Uyuyor mu? GitHub Copilot'un Kod Katkılarının Güvenliğinin Değerlendirilmesi ”, Copilot kullanan test senaryolarının %40 kadarının savunmasız kod içerdiğini buldu.

GitHub, Copilot'un bazen kitaplıkların ve dillerin eski veya kullanılmayan kullanımlarını önerebileceğini ve istenmeyen kalıplar içeren kodu sentezleyebileceğini kabul ediyor. Bunu azaltmak için, kod kalitesini iyileştirmeye yardımcı olmak için ürünlerini GitHub Actions, Dependabot ve CodeQL gibi araçlarla birlikte kullanmanızı önerirler.

Aynısı Amazon için de geçerli, ancak Amazon, Java ve Python projelerindeki güvenlik açıklarını tespit etmek için güvenlik taramaları sağlayarak buna karşı koymak için büyük önlemler aldı.

Güvenlik Taramasını Çalıştır'ı seçtiğinizde, CodeWhisperer bu güvenlik açığını algılar ve sorunu görüntüler. (kaynak: AWS Machine Learning Blogu)

Bununla birlikte, AI destekli kodlama yardımcılarınızı her zaman uygun testler, iyi kod inceleme uygulamaları ve güvenilir güvenlik araçlarının yanı sıra kendi yargınızla birlikte kullanmalısınız!

Genel kodun (yanlış) kullanımı ne olacak?

Eğitim setinde genel kodun önemli ölçüde kullanımına ilişkin farkındalık artırıldı. İdeal olarak, bir asistan tutarlı bir şekilde daha önce hiç görülmemiş bir kod oluşturmalıdır. Asistan bunun yerine doğrudan eğitim setinden kod okursa, potansiyel olarak onu adil kullanım kapsamından diskalifiye edebilir ve orijinal sahibinin telif hakkını ihlal edebilir.

Bunu azaltmak için, Copilot'ta GitHub Copilot önerisinin GitHub'daki genel kodla eşleşen kod içerdiği örnekleri algılamaya ve bastırmaya çalışan yerleşik bir filtre vardır. Bu filtre isteğe bağlıdır ve kapatılabilir. GitHub'a göre Copilot, yaklaşık %1 oranında ~150 karakterden daha uzun birebir kod parçacıkları çıkaracaktır. Bunu, GitHub Copilot'un yazdığınız koddan yeterli bağlamı toplayamadığı durumlarda veya soruna ortak, hatta belki de evrensel bir çözüm olduğunda suçluyorlar.

Copilot'a benzer şekilde, CodeWhisperer ayrıca oluşturulan çıktıların belirli eğitim verilerine benzer olabileceğini algılayabilen bir referans izleyici ile birlikte gelir. Kullanıcı tarafından yazılan kodun toplanmasıyla ilgili olarak Amazon, önizleme aşamasında modellerini daha fazla eğitmek için geliştirici tarafından yazılmış herhangi bir kod kullanmayacaklarını belirtiyor . Ancak CodeWhisperer, geliştiricilerin bir öneriyi kabul etme veya reddetme gibi kod önerilerine verdiği yanıtlarla ilgili kullanıcı etkinliği verilerini saklar . Hizmet, CodeWhisperer'ın gelecekteki önerileri iyileştirebilmesi için makine öğrenimi modellerini daha doğru hale getirmek için bu geri bildirimi kullanır.

Kazanan..?

GitHub Copilot, dil ve IDE desteği söz konusu olduğunda kazanandır. Ayrıca daha uzun süredir var ve resmi olarak ön izlemeden çıktı, bu da geliştiricilerine hataları düzeltmeleri ve yoldaki tümsekleri düzeltmeleri için daha fazla zaman veriyor. Bunu kullanmak küçük bir finansal yatırım gerektirir, ancak kullanıma hazır, tamamen işlevsel bir ürün elde edersiniz.

Ancak AWS ortamında çalışıyorsanız Amazon CodeWhisperer muhtemelen size göre. Amazon'un, büyük ölçüde kendi ürünlerini hedefleyen akıllı bir kodlama asistanı sunan ilk Bulut Hizmeti Sağlayıcısı olma çabasına gerçekten hayranım ve umarım daha fazla sağlayıcı da aynı şeyi yapar (Sana bakıyorum, Azure!). Ek olarak, entegre güvenlik açığı tespiti de bunu düşünmek için iyi bir neden olabilir. Son olarak, şu anda ücretsiz olması, en azından önizleme aşamasındayken denemek için güçlü bir teşviktir. Ancak bu, kaydolmanızı ve sabırla sıranızı beklemenizi gerektirecektir. ⏳

Son olarak, teknolojinin ne kadar ilerlediğini ve geliştiriciler olarak artık ne kadar harika araçlar kullanabileceğimizi takdir etmek için biraz zaman ayıralım! Hem GitHub Copilot hem de Amazon CodeWhisperer, çok da uzak olmayan bir gelecekte tüm ciddi geliştiriciler için olmazsa olmaz bir araç olacağını tahmin ettiğim harika teknolojiler. Ve Google ve Salesforce gibi diğer aktörler ayak parmaklarını suya sokmaya başladıkça, kod geliştirme söz konusu olduğunda kesinlikle yakında yeni bir çağa girecekmişiz gibi geliyor.

Umarım bu makaleyi faydalı bulmuşsunuzdur. Okuduğunuz için teşekkürler!

Editörün Notu:

GitHub Copilot, bir veri bilimcisi olarak işimde son derece değerli oldu. Veri analizi yapmak genellikle hipotezleri hızla test etmemi gerektirir. Genelde sonucun ne olacağını önceden bilmediğim için, genellikle hipotezimi doğrulamak veya reddetmek için yalnızca bir kez çalıştıracağım hemen hemen aynı kodlar yazarım. GitHub Copilot, bu süreci hızlandırmak için harika bir araç oldu ve aynı zamanda her veri bilimcinin favori IDE'si, yani Jupyter Notebook (VS Kodunda) ile iyi entegre oluyor !

REFERANSLAR

  • GitHub, AI çift programlayıcınız (2022), github.com
  • Amazon, makine öğrenimi destekli kodlama yardımcısı — Amazon CodeWhisperer — Amazon Web Services (2022), aws.amazon.com
  • Amazon, AWS, Amazon CodeWhisperer (Önizleme) (2022), aws.amazon.com'u duyurdu
  • A. Desai ve A. Deo, Makine Öğrenimi destekli kodlama yardımcısı Amazon CodeWhisperer ile tanışın (2022), AWS Machine Learning Blog
  • S. Bhattacharyya, Battle of AI-coding assistants: GitHub Copilot ve Amazon CodeWhisperer (2022), analyticsindiamag.com
  • B. Dickson, GitHub Copilot artık herkese açık — bilmeniz gerekenler (2022), Venturebeat.com
  • F. Lardinois, Amazon, GitHub Copilot benzeri AI çift programlama aracı CodeWhisperer'ı piyasaya sürdü (2022), techcrunch.com
  • D. Gershgorn, GitHub'ın otomatik kodlama aracı denenmemiş yasal zemine dayanıyor (2021), theverge.com