Bilgisayar bilimi alanında, sıralamaktan daha temel bir görev belki yoktur. Kabarcık, yığın, birleştir – seçim sizin. Bilgisayar içindeki verileri yeniden düzenlemek için kullanılan yöntemler teorize edildi, milyonlarca acemilerin pratik yapması için kullanıldı ve uzman geliştiriciler tarafından onlarca yıldır optimize edildi. Herhangi bir programlama dilinde sort() fonksiyonu yazın ve güvenebileceğiniz kod oluşturursunuz. Dokunmayın. Zaten harika çalışıyor.
Ancak geçen yıl, Google’ın Deepmind mühendisleri tarafından geliştirilen bir AI sistemi sadece yeterince önemli bir şekilde mükemmelleşti. Deepmind, AlphaDev adını verdiği sistem, popüler kodlama dili C++’da sayı dizilerini sıralamanın yeni bir yolunu bulmakla görevlendirildi. Bu, arka planda çalışmak ve AI’nın montaj kodu – C++ ve bilgisayar donanımı gibi programlama dilleri arasındaki boşluğu köprüleyen talimatları – yeni algoritmalar oluşturmasını gerektirdi. Bir C++ geliştiricisi bilgisayara “sırala” dediğinde, bu komutlar makine tarafından okunabilir kodlara dönüştürülür ve bilgisayar belleğine ve işlemcisine tam olarak ne yapılacağını söyler: verilerin nereye taşınacağı ve nasıl değiştirileceği. Bu, bitlerin metalle buluştuğu yerdir.
Deney başarılı oldu. Geçen yılın Nisan ayından bu yana, C++ bir dizi AI tarafından hazırlanan sıralama algoritması sayesinde biraz daha hızlı çalışıyor. Ancak AlphaDev’in mühendislerine göre, bu sadece ilk adım. “Tüm hesaplama yığınını optimize etmek istiyoruz” diyor, sıralama projesinin önderi olan Deepmind’deki bir araştırma bilim adamı olan Daniel Mankowitz. Mankowitz, AlphaDev’in sıralamanın yanı sıra karma gibi diğer temel görevler için de algoritmaları geliştirdiğini söylüyor.
“Bu çalışmanın inanılmaz heyecan verici olduğunu düşünüyorum” diyor, araştırmada yer almayan program sentezi uzmanı olan MIT’den Armando Solar-Lezama. Yeni bir sıralama algoritması oluşturmak için AI’ın kullanılması faydalıdır; ancak kod yazma sanatı hakkında en son teknolojiyi öğrenen bir AI inşa etmek çok daha büyük bir anlaşmadır, diyor. Bu, AlphaDev’in kodlama sanatı hakkında daha temel bir şey öğrenmeye başladığı anlamına geliyor.
Tabii ki, bu önemli kısıtlamalarla birlikte gelir. “Bunlar çok küçük programlar” diyor – toplamda birkaç düzine montaj kodu talimatından fazlasını içermez. Ancak bu küçük programlar sıklıkla bilgisayar performansı için büyük darboğazlar oluşturur ve insanlar tarafından optimize edilinceye kadar optimize edilmişlerdir. Genel olarak, AlphaDev’in yeni C++ sıralama algoritmaları, uzun sayı dizilerini sıralarken önceki yöntemlere kıyasla %1,7 daha verimli ve beş öğeli diziler için %70 daha hızlıdır. Bu iyileştirmeler ölçeklendiğinde, Mankowitz’a göre, AI tarafından yazılan kodun Libc++’a, büyük bir açık kaynaklı C++ kütüphanesine gönderilmesinden bu yana trilyonlarca kez kullanılmıştır.
Bu iyileştirmeler, Deepmind’in AI’nın satranç ve Go gibi oyunları ustalaşmasına yardımcı olan takviye öğrenme adı verilen bir teknik sayesinde gerçekleştirildi. Bu tür bir AI, yaparak öğrenir. Bir montaj programı yazmak gibi belirli bir görevi bir oyun gibi ele alarak, AI, programın verimliliğini artıran akıllı hamleler yapmak için ödüller alır. Zamanla, sistem bu ödülü maksimize etmeye çalışır ve kazanan bir Go stratejisi veya daha hızlı bir montaj programı oluşturur. Bu, GPT-4 gibi büyük dil modellerinde bulunan AI’dan farklıdır, çünkü bu modeller, sözcük veya kod yazmayı öğrenmek için büyük miktarlarda veriye dayanır. Bu, internetin tonunu yansıtan yazılar veya ortak kod parçaları üretmek için harikadır. Ancak AI, daha önce görmediği kodlama zorlukları için yeni, en son teknoloji çözümler oluşturmakta pek iyi değildir.