paint-brush
Modern Kodlayıcının Kokpiti: GitHub Copilot Üzerine Düşüncelerimile@lorisocchipinti
4,227 okumalar
4,227 okumalar

Modern Kodlayıcının Kokpiti: GitHub Copilot Üzerine Düşüncelerim

ile Loris Occhipinti4m2023/03/31
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

Copilot, Github için bir AI kodlama destek aracıdır. Araç, ChatGPT tarafından kullanılan GPT-3 algoritmasını temel almaktadır. Yazar, "kodlama için yapay zekanın" bugün neler yapabileceğini anlamak için Copilot'u bir kıyaslama noktası olarak kullanıyor. Yapay zekanın işimizdeki değerinin yazılım mühendisleri için çoğunlukla açık olduğunu söylüyor.
featured image - Modern Kodlayıcının Kokpiti: GitHub Copilot Üzerine Düşüncelerim
Loris Occhipinti HackerNoon profile picture

Birkaç ay önce ChatGPT'nin bazı harika özelliklerini aktarmama rağmen Github'un yapay zeka kodlama destek aracı Copilot'u denemek için bir sonraki mantıklı adımı atmadım. Ancak geçen hafta bir iş arkadaşımın yapay zeka tarafından oluşturulan bir test paketinin ekran görüntüsünü paylaşmasıyla ilgim daha da arttı.


İstem oldukça basitti ve oluşturulan test senaryoları konuyla ilgiliydi; GC ücretsiz denemesine abone olmamı ve tekillik olayının ortaya çıkmasına katkıda bulunmamı istemem için yeterli.


Copilot'un neler yapabileceğini veya yapamayacağını ayrıntılı olarak anlatmaktan kaçınacağım: diğerleri zaten beni büyük ölçüde tahmin etmişti. Benim için ilginç olan kısım bu yeni teknolojiye nasıl alışabileceğim.


Bu yazıda Github Copilot'u da bir "kodlama için yapay zekanın" bugün neler yapabileceğini anlamak için bir kıyaslama olarak kullanacağım çünkü bunun alandaki en son teknolojiyi temsil ettiğini düşünüyorum.

İş Programlamada Yapay Zekanın Gerçek Rolü

Yazılım alanında yapay zekayı düşünürken akla birçok spontan soru geliyor.


Yararlı mı? Bu tehlikeli mi? İşimizi elimizden alacak mı? En önemli şey, sınırlayıcı bir zihniyetle kendimizi köşeye sıkıştırmamak ve neo-luddistler veya ütopik tekno-meraklılar olarak duygularımızın yapay zeka etrafında tuhaf bir anlatı oluşturmasına izin vermemek.


Bunun yerine, diğer türdeki soruları daha ilginç ve cevaplanması daha kolay buluyorum: bu sorular "evet" veya "hayır" cevabını ima etmiyor, genellikle "ne", "ne zaman" ve "nerede" ile başlıyor.


Mesela Copilot'u günlük işlerime nasıl entegre edebilirim? Hangi görevleri kolaylaştırır ve hangi kişisel becerileri gerektirir?


Yapay zekanın işimizdeki değeri çoğunlukla yazılım mühendisleri için açıktır. Yine de, hayatın diğer kesimlerinden insanların, özellikle de pek çok içerik oluşturucunun veya gazetecinin felaket senaryoları önererek (veya yazılım oluşturma yazılımının artık herkesin erişebileceğine dair söz vererek) dikkat çekmeyi sevdiği göz önüne alındığında, olasılıkların ne olduğunu büyük ölçüde yanlış değerlendirebileceğini anlıyorum.


Evet, GPT-3'ü (ve yakın zamanda GPT-4'ü) temel alan araçların kod yazabildiği doğrudur ve evet, oluşturulan kod genellikle derlenecek ve ondan bekleneni yapacaktır.


Ancak bu durum iş güvenliğim için acil bir tehdit anlamına gelmiyor çünkü kod yazmak yazılım mühendislerinin gerçekte yaptığı iş değil. Daha iyi detaylandırayım.


Bizim işimiz bir metin düzenleyiciye kod yazmak değil. Biz stenograf değiliz. İş, neyin kodlanacağına karar vermekle ilgilidir. Aslında ne zaman yazılım tasarlıyorsam ve sonunda IDE'me bir şeyler yazmaya başladığımda, bir sonraki kod parçacığının nasıl olacağını zaten aklımda tutuyorum.


Bu noktada yapay zeka yalnızca noktaları birleştiriyor, istemsiz yazım hataları veya diğer bariz hatalar hariç, amaçladığım yöntemi veya veri yapısını anında oluşturuyor.


Yapay zeka bazı kod tabanının %80'inden fazlasına katkıda bulunabilse bile, GC'nin doğru şekilde çalışması için ihtiyaç duyduğu çok büyük bilgileri taşıdığından uygun istemin (ilk %20) verilmesi önemlidir . Ve klavyenin arkasında bir mühendis olmadan bu ilk uyarıyı alamazsınız.

Yardımcı pilot mu yoksa Otomatik pilot mu?

Uçak otopilotlarıyla iyi bir karşılaştırma yapılabileceğine inanıyorum. AFCS (Otomatik Uçuş Kontrol Sistemi), çeşitli uçuş operasyonlarını mükemmel bir şekilde gerçekleştirebilir: uçuş yolunu ayarlamak, bir havaalanına yaklaşmak ve hatta iniş yapmak.


Hala herhangi bir insan gözetimi olmadan ticari bir uçağa atlamayı hayal bile edemiyorum.


Bilgisayarın uçağı kontrol edebiliyor olması, pilotların uçuş güvertesinde boşta oturduğu anlamına gelmiyor.


Hala yapılacak çok şey var: Önümüzdeki hava durumunu kontrol etmek, hava trafik kontrolüyle iletişim kurmak, alternatif rotalar planlamak ve en önemlisi otopilota nezaret etmek ve gerekirse dizginleri ele almak.


Dolayısıyla uçağı uçuranların hâlâ pilotlar olduğunu görebiliyoruz.


Benzer şekilde yapay zeka yazılım geliştirmez, mühendisler yapar . Yapay zeka bir araçtır. Mühendisler, otomasyonu kullanarak iş akışlarını kolaylaştırmak için eğitilirler, ancak araçlarının ne yaptığını her zaman izleyeceklerdir. İstenildiği gibi davranmıyorsa mühendisler devreye girecek ve durumu düzeltecektir.


Copilot'u kullanırken sahip olduğum zihniyet şu: Basit görevleri memnuniyetle ona devredeceğim, ancak bu arada hangi çıktıyı üreteceği konusunda da tetikte olacağım.

Çözüm

Bildiğiniz gibi, Copilot'un temelindeki ML algoritması GPT-3 olarak adlandırılıyor ve üretilecek tokenların en olası dizisine ilişkin tahminler yapıyor. Oluşturulan kod genellikle sözdizimsel olarak doğru olsa da araçların özelliklerin ne olduğu ve üretilen kodun geçerli olup olmadığı konusunda hiçbir bilgisi yoktur.


Olası bir karşı önlem, GC'ye hızlı mühendislik konusunda yardımcı olmaktır: örneğin, bir sonraki snippet'in ne yaptığını belirten bir yorum yazmak, yapay zekaya yardımcı olacak güçlü bir tekniktir.


Daha da iyisi, bazen ilk birkaç kelime yazıldıktan sonra yorum bile otomatik olarak oluşturulabilir.


Ancak şunu da söylemek gerekir ki, en ideal koşullar altında bile Copilot her zaman yararlı bir öneri sunmaz, eğer durum böyleyse herhangi bir öneride bulunmaz. GC oldukça şaşırtıcı olmasına rağmen, bir kodlama aracı olarak hâlâ son derece kusurlu olduğuna inanıyorum.


Şimdilik, Copilot'u araç setime tamamen dahil edip etmemeye karar vermedim: önerilerinin tesadüfi doğası bazen bir engel olabilir.


Her durumda, herkese ayaklarını ıslatmalarını ve en azından bir kez denemelerini öneririm: bunu sözdizimi vurgulayıcınız veya favori IDE'nizin otomatik tamamlama özelliği gibi bir yardımcı araç olarak düşünün.


Github Copilot hakkındaki fikriniz nedir? Bunu günlük işinize dahil ettiniz mi yoksa sizin için zor bir geçiş miydi? Utanmayın ve yorumlarda bana bildirin!


Burada Ayrıca Yayınlandı