Hangi programlama dilinin öğrenileceğine karar vermek, büyük zaman yatırımı gerektirdiğinden, gelişmekte olan geliştiriciler için önemli bir sorudur. Bununla birlikte, yapay zeka (AI) modelleri gelişmeye devam ettikçe ve sonunda sorunu tanımlamaktan kod yürütmeye ve çözmek için tüm işi yapabildiğinden, bu soru hızla gereksiz hale gelebilir.
Google’ın yapay zeka birimi DeepMind’den araştırmacılar, AlphaCode sistemlerinin artık yeni programcılar için düzenlenen programlama yarışmalarında medyan bir puan elde etmek için koddaki sorunlara çözümler ifade edebildiğini iddia ederek geliştiricilerin arka bahçelerine yeni bir çakıl taşı koydular. İnsanlardan doğal dilde açıklanan bir sorunu anlamalarını isteyen ve ardından bir algoritmayı etkili bir şekilde kodlayan pek çok yarışma.
DeepMind araştırmacıları, yeni (akran incelemesi yapılmamış) bir makalede, AlphaCode’un 5.000’den fazla katılımcıyla daha önce düzenlenen 10 programlama yarışmasında ilk katılanlar arasında %54.3’lük ortalama bir sıralamaya nasıl ulaştığını açıklıyor. Yarışmalar Codeforces kod yarışması platformunda düzenlendi. DeepMind, AlphaCode’un insan geliştiriciler için kod yarışmalarında rekabetçi bir şekilde puan alan ilk AI kod oluşturma sistemi olduğunu iddia ediyor. Bu araştırma, programcıların üretkenliğini artırabilir ve programcı olmayanların kod yazmayı bilmeden bir çözüm ifade etmelerine yardımcı olabilir.
Güçlü bir rakip
İnsan rakipler ve dolayısıyla AlphaCode, bir meydan okuma veya bilmecenin tanımını analiz etmek ve bunları çözmek için hızlı bir şekilde bir program yazmak zorunda kaldı. Bu görev, basit bir kodlama sorununu çözmek için GitHub verilerini kullanarak bir modeli eğitmekten daha zordur. İnsanlar gibi, AlphaCode’un da problemin çok paragraflı bir doğal dil tanımını, anlatı detaylarını ve girdi ve çıktı açısından istenen çözümün bir tanımını içermesi gerekiyordu.
Sorunu çözmek için, her katılımcının bir algoritma oluşturması ve ardından onu verimli bir şekilde uygulaması gerekiyordu; bu, bu kısıtlamaların üstesinden gelmek için örneğin Python yerine C++ gibi daha hızlı bir programlama dili seçmelerini gerektirebilir. AlphaCode’un eğitim öncesi veri kümesi, GitHub depolarından C++, C#, Go, Java, JavaScript/TypeScript, Lua, Python, PHP, Ruby, Rust ve Scala ile yazılmış dosyalardan 715 GB kod içeriyordu. Ekip, Codeforces ve diğer benzer veri kümelerinden alınan rekabetçi programlama sorunlarının veri kümelerini kullanarak modeli geliştirdi.
DeepMind tarafından AlphaCode’a verilen ivme, büyük ölçekli dönüşüm modellerinin birleştirilmesiyle elde edildi. Bu modellerden bazıları OpenAI’nin GPT-3’ünü ve Google’ın BERT dil modelini içerir. DeepMind, kod oluşturmak için dönüştürücü tabanlı dil modellerini kullandı ve ardından çıktıyı gözden geçirilmek üzere gönderilen küçük bir “gelecek vaat eden program” grubuna filtre etti.
DeepMind güven verici olmak istiyor
DeepMind’daki AlphaCode ekibi bir blog yazısında, “Değerlendirme zamanında, her sorun için önceki çalışmalardan çok daha büyük miktarlarda C++ ve Python programları oluşturuyoruz,” diye açıklıyor. “Ardından, bu çözümleri dış inceleme için sunduğumuz 10 aday programdan oluşan küçük bir sette filtreliyor, topluyoruz ve yeniden sıralıyoruz. Bu otomatik sistem, rakiplerin deneme yanılma, hata ayıklama, derleme, test etme ve son olarak gönderme sürecinin yerini alıyor. »
DeepMind’in bu yeni buluşu, kusurları olmadan değil. Örneğin, modeller, “güncel olmayan kodlardan kaynaklanan kasıtsız güvenlik açıkları veya kötü niyetli aktörler tarafından eğitim setine enjekte edilen kasıtlı güvenlik açıkları” dahil olmak üzere istismar edilebilir zayıflıklara sahip kod üretebilir. Modelin ayrıca belirli bir çevresel etkisi vardır, eğitimi Google’ın veri merkezlerinde “yüzlerce petaFLOPS günü” almıştır. Ancak AI kod üretimi, uzun vadede “yinelemeli olarak yazabilen ve geliştirebilen sistemlere yol açabilir, bu da hızla giderek daha gelişmiş sistemlere yol açabilir”.
Soru açıkça şu anda geliştiriciler tarafından yürütülen görevlerin otomasyonundan kaynaklanmaktadır. DeepMind, programlama üretkenliğini büyük ölçüde artıran, ancak şimdiye kadar tek satırlık önerilerle sınırlı olan ve belirli diller veya kısa kod parçacıklarıyla sınırlı olan mevcut kod tamamlama araçlarının sınırlamalarına dikkat çekerek güven verici olmak istiyor. DeepMind için araştırması, geliştiriciler için bir tehdit olmaktan çok uzaktır ve bunun yerine insanlığın kullanabileceği problem çözme yeteneklerini geliştirmek için bir araç olarak görülmelidir.
DeepMind araştırmacıları, “Kod oluşturma keşfimiz, iyileştirme için çok fazla alan bırakıyor ve geliştiricilerin üretkenliklerini artırmalarına ve alanı şu anda kod yazmayan insanlara açmalarına yardımcı olabilecek daha da heyecan verici fikirlere dair ipuçları veriyor” diyor.
Kaynak: ZDNet.com