Bilgisayar bilimi alanında, belki de sıralama işleminden daha temel bir görev yoktur. Kabarcık, yığın, birleştir – seçim sizin. Bilgisayardaki verileri yeniden düzenleme yöntemleri, teorik olarak incelenmiş, milyonlarca acemiler tarafından pratik egzersizleri olarak sunulmuş ve uzman geliştiriciler tarafından onlarca yıldır optimize edilmiştir. Herhangi bir programlama dilinde bir sort() fonksiyonu yazın ve güvenebileceğiniz bir koddur. Dokunmayın. Zaten harika çalışıyor.
Ancak geçen yıl Google’ın Deepmind mühendisleri tarafından geliştirilen bir yapay zeka sistemi, sadece önemli ölçüde geliştirmekle kalmayıp, büyük bir önem taşıdı. Deepmind, AlphaDev adını verdiği sistem, popüler kodlama dili C++’da sayıların kısa dizilerini sıralamanın yeni bir yolunu bulmakla görevlendirildi. Bu, arabanın altına girip yapay zekanın montaj kodunda yeni algoritmalar oluşturmasını gerektirdi – C++ gibi programlama dilleri ile bilgisayar donanımı arasındaki boşluğu köprüleyen talimatlar. Bir C++ geliştiricisi bilgisayara “sort” söylediğinde, bu komutlar, bir bilgisayarın belleği ve işlemcisine tam olarak ne yapacağını, verileri nereye taşıyacağını ve nasıl değiştireceğini söyleyen makine tarafından okunabilir kodlara dönüştürülür. Bitlerin metalle buluştuğu yer burasıdır.
Deney başarılı oldu. Geçen yılın Nisan ayından bu yana, C++ birkaç yapay zeka tarafından hazırlanan sıralama algoritmaları nedeniyle biraz daha hızlı çalışıyor. Ancak AlphaDev’in mühendislerine göre, bu sadece ilk adım. “Tüm bilgisayar yığınımızı optimize etmek istiyoruz,” diyor Deepmind’deki bir araştırma bilim adamı olan ve sıralama projesini yöneten Daniel Mankowitz. Mankowitz, AlphaDev’in sıralama gibi temel görevler için olduğu gibi karmaşıklık gibi diğer işlemler için de algoritmaları iyileştirdiğini söylüyor.
“Bu çalışmanın inanılmaz heyecan verici olduğunu düşünüyorum,” diyor araştırmanın içinde yer almayan program sentezi uzmanı MIT’den Armando Solar-Lezama. Yapay zeka tarafından yeni bir sıralama algoritması bulmak yararlıdır; ancak, kodlama sanatının kendisi hakkında daha temel bir şey öğrenmeye başlayan bir yapay zeka inşa etmek çok daha büyük bir iş, diyor. Bu, AlphaDev’in kendisi hakkında bir şeyler öğrenmeye başladığı anlamına gelir.
Tabii ki, bunun önemli kısıtlamaları var. “Bunlar çok küçük programlar,” diyor – toplamda birkaç düzine montaj kodu talimatı kadar. Ancak bu küçük programlar, sıkışmış durumdaki bilgisayar performansı için büyük bir engel oluşturuyor ve insanlar tarafından optimize edilebildiği kadar optimize edilmiş durumdalar. Genel olarak, AlphaDev’in yeni C++ sıralama algoritmaları, uzun sayı dizilerini sıralarken önceki yöntemlere göre %1,7 daha verimli ve beş öğeli diziler için %70 daha hızlıdır. Ölçeklendiğinde, bu iyileştirmeler Mankowitz’e göre birikir. Yapay zeka tarafından yazılan kod, büyük açık kaynaklı C++ kütüphanesi olan Libc++’a gönderildiğinden, algoritmaların günde trilyonlarca kez kullanıldığını tahmin ediyor.
Bu iyileştirmeler, Deepmind’in Go gibi oyunlarda ustalaşmasına yardımcı olan güçlendirme öğrenme adlı bir teknik sayesinde gerçekleştirilir. Bu tür bir yapay zeka öğrenme yaparak çalışır. Bir montaj programı yazmak gibi belirli bir görevi, AI, programın verimliliğini artıran akıllı hamleler yaparak ödüller alarak bir oyun gibi ele alır. Zamanla, sistem bu ödülü maksimize etmek için çalışır ve sonuçta bir kazanan Go stratejisi veya daha hızlı bir montaj programı elde edilir. Bu, GPT-4 gibi büyük dil modellerinde bulunan yapay zekadan farklıdır, bunlar, kelime veya kod yazmayı öğrenmek için büyük miktarda veriye dayanır. Bu, internetin tonunu yansıtan yazılar veya yaygın kod parçaları üretmek için harikadır. Ancak, yapay zeka, daha önce hiç görmediği kodlama zorluklarının yeni, modern ve devrim niteliğinde çözümlerini üretmek için çok iyi değildir.