Yeni Kodu Otonom Olarak Üretebiliyor...
Google kendi kendini programlayabilen yeni bir robotu test ediyor…
İnsan operatörler “sarı bloğu kaldır" gibi talimatlar yazabilir ve robot gerisini halleder…
Çalışan kod yazmak zor olabilir. HTML gibi nispeten kolay diller bile kodlayıcının belirli sözdizimini ve mevcut araçları anlamasını gerektirir. Robotları kontrol etmek için kod yazmak daha da karmaşıktır ve genellikle birden fazla adımı vardır: Nesneleri algılamak için kod, robotun uzuvlarını hareket ettiren aktüatörleri tetiklemek için kod, görevin ne zaman tamamlandığını belirtmek için kod vb. Bir robotu kırmızı bir blok yerine sarı bir bloğu alması için programlamak kadar basit bir şey, robotun üzerinde çalıştığı kodlama dilini bilmiyorsanız imkansızdır.
Ancak Google‘ın robotik araştırmacıları bunu düzeltmenin bir yolunu arıyor. Doğal dil talimatlarına dayalı olarak kendi programlama kodunu yazabilen bir robot geliştirdiler. Block_target_color’u #FF0000’dan #FFFF00’a değiştirmek için robotun yapılandırma dosyalarına dalmak zorunda kalmak yerine, sadece “sarı bloğu al" yazabilirsiniz ve robot gerisini halleder.
Code as Policies – ya da kısaca CaP -, doğal dil talimatlarını yorumlamak ve bunları çalıştırabileceği kodlara dönüştürmek için Google‘ın Pathways Dil Modeli‘nden – PaLM – geliştirilen kodlamaya özgü bir dil modelidir. Google‘ın araştırmacıları modeli, talimat örnekleri – kodun ne işe yaradığını inceleyenlere açıklamak için geliştiriciler tarafından yazılan kod yorumları olarak biçimlendirilmiş – ve ilgili kodu vererek eğitti.
Google mühendisleri bu hafta yayımladıkları bir blog yazısında, modelin yeni talimatlar alabildiğini ve “API çağrılarını yeniden oluşturan, yeni işlevleri sentezleyen ve çalışma zamanında yeni davranışları bir araya getirmek için geri bildirim döngülerini ifade eden yeni kodu otonom olarak üretebildiğini" açıkladı.
Ekip, CaP‘ın belirli görevler için yeni kod yazmasını sağlamak amacıyla, ona hangi API’lerin veya araçların mevcut olduğu gibi “ipuçları" ve birkaç talimat-kod eşleştirilmiş örnek sağladı. Bu sayede yeni talimatlar için yeni kodlar yazabildi. Bunu, “özyinelemeli olarak yeni işlevler tanımlamasını, zaman içinde kendi kütüphanelerini biriktirmesini ve dinamik bir kod tabanını kendi kendine tasarlamasını" isteyen “hiyerarşik kod üretimi" kullanarak yapıyor. Bu da, bir kez bir dizi talimat verildiğinde, daha sonra benzer talimatlar için yeniden kullanabileceği bazı kodlar geliştirebileceği anlamına gelir.
CaP ayrıca belirli dillerin aritmetik işlemlerini ve mantığını da kullanabilir. Örneğin, Python üzerinde eğitilmiş bir model gerektiğinde uygun if/else ve for/while döngülerini kullanabilir ve ek işlevsellik için üçüncü taraf kütüphaneleri kullanabilir. Ayrıca “daha hızlı" ve “sola" gibi belirsiz tanımları, görevi gerçekleştirmek için gerekli olan kesin sayısal değerlere dönüştürebilir. CaP normal bir dil modelinin üzerine inşa edildiği için, emojileri ve İngilizce olmayan dilleri anlamak gibi kodla ilgisi olmayan birkaç özelliğe sahiptir.
Şimdilik, CaP‘ın yapabilecekleri hâlâ çok sınırlı. Talimatlarına bağlam sağlamak için dayandığı dil modeline güveniyor. Anlamlı değillerse ya da desteklemediği parametreler kullanıyorlarsa kod yazamaz. Benzer şekilde, görünüşe göre tek bir komut isteminde yalnızca birkaç parametreyi yönetebiliyor; düzinelerce parametre gerektiren daha karmaşık eylem dizileri mümkün değil. Ayrıca güvenlik endişeleri de var: Bir robotu kendi kodunu yazacak şekilde programlamak biraz Skynet‘e benziyor. Bir görevi yerine getirmenin en iyi yolunun kolunu uzatarak çok hızlı bir şekilde dönmek olduğunu düşünürse ve yakınında bir insan varsa, birileri yaralanabilir.
Yine de son derece heyecan verici bir araştırma. Robotlarda en zor görevlerden biri, eğitilmiş davranışlarını genelleştirmektir. Bir robotu pinpon oynayacak şekilde programlamak, onu beyzbol ya da tenis gibi diğer oyunları da oynayabilecek hale getirmez. CaP bu kadar geniş gerçek dünya uygulamalarından hâlâ kilometrelerce uzakta olsa da, bir robotun göreve özel eğitim olmadan çok çeşitli karmaşık robot görevlerini yerine getirmesine olanak tanır. Bu, bir gün bir oyunu oynayabilen bir robota başka bir oyunu nasıl oynayacağını öğretebilme yönünde büyük bir adımdır – her şeyi insan tarafından yazılmış yeni kodlara ayırmak zorunda kalmadan.