Alan içerisinde Bilgisayar biliminde, belki de sıralamaktan daha temel bir görev yoktur. Kabarcıklayın, yığınlayın, birleştirin – seçiminizi yapın. Bir bilgisayar içindeki verileri yeniden sıralama yöntemleri ölümüne kuramsallaştırıldı, milyonlarca acemi için uygulama alıştırmaları olarak kullanıldı ve onlarca yıldır uzman geliştiriciler tarafından optimize edildi. Herhangi bir programlama dilinde bir sort() işlevi yazın ve güvenebileceğiniz kod budur. Dokunma. Zaten harika çalışıyor.
Ancak geçen yıl, Google’ın Deepmind’deki mühendisleri tarafından geliştirilen bir AI sistemi, önemli olacak kadar büyük bir gelişme gösterdi. Deepmind’in AlphaDev olarak adlandırdığı sistem, popüler kodlama dili olan C++’da sayılardaki kısa dizileri sıralamak için yeni bir yol bulmakla görevlendirildi. Bu, kaputun altına girmek ve yapay zekanın C++ gibi programlama dilleri ile bilgisayar donanımı arasındaki boşluğu dolduran talimatlar olan montaj kodunda yeni algoritmalar oluşturmasını sağlamak anlamına geliyordu. Bir C++ geliştiricisi bilgisayara “sırala” dediğinde, bu komutlar bilgisayarın belleğine ve işlemcisine tam olarak ne yapması gerektiğini, verilerin nereye taşınacağını ve nasıl değiştirileceğini söyleyen, makine tarafından okunabilir koda dönüştürülür. Bitlerin metalle buluştuğu yer burası.
Deney işe yaradı. Geçen yılın Nisan ayından bu yana, yeni yapay zeka uyumlu sıralama algoritmaları sayesinde C++ biraz daha hızlı çalışıyor. Ancak bugün çalışmayı açıklayan AlphaDev mühendislerine göre Doğa, bu sadece ilk adım. Ayıklama projesine liderlik eden Deepmind’de kadrolu araştırma bilimcisi Daniel Mankowitz, “Tüm bilgi işlem yığınını optimize etmek istiyoruz” diyor. Mankowitz, AlphaDev’in yalnızca sıralama için değil, aynı zamanda karma oluşturma gibi diğer temel görevler için de algoritmalar geliştirdiğini söylüyor.
MIT’de program sentezi uzmanı olan ve araştırmaya dahil olmayan Armando Solar-Lezama, “Bu çalışmanın inanılmaz derecede heyecan verici olduğunu düşünüyorum” diyor. Yapay zekanın yeni bir sıralama algoritması bulması yararlıdır; çeşitli görevlerde son teknoloji kodun nasıl yazılacağını öğrenebilen bir yapay zeka oluşturmak çok daha büyük bir mesele, diyor. Bu, AlphaDev’in kodlama sanatı hakkında daha temel bir şeyler öğrenmeye başladığı anlamına gelir.
Bu elbette önemli kısıtlamalarla birlikte gelir. “Bunlar küçücük, küçücük programlar,” diye ekliyor; toplamda montaj kodunda birkaç düzineden fazla talimat yok. Ancak bu küçücük programlar, insanların zorlayabildiği ölçüde optimize edildiğinden, genellikle bilgisayar performansı için büyük darboğazları temsil eder. Genel olarak, AlphaDev’in yeni C++ sıralama algoritmaları, uzun sayı dizilerini sıralarken önceki yöntemlerden yüzde 1,7 daha verimli ve beş öğeli diziler için yüzde 70’e kadar daha hızlı. Mankowitz, geniş ölçekte, bu iyileştirmelerin bir araya geldiğini söylüyor. Yapay zeka tarafından yazılan kod, C++ için büyük bir açık kaynak kitaplığı olan Libc++’a gönderildiğinden, algoritmaların günde trilyonlarca kez kullanıldığını tahmin ediyor.
Bu iyileştirmeler, Deepmind’in satranç ve Go gibi yapay zeka usta oyunlarına yardımcı olmak için kullanılan yaklaşımın aynısı olan pekiştirmeli öğrenme adı verilen bir teknik sayesinde sağlanıyor. Bu yapay zeka türü yaparak öğrenir. Bir montaj programı yazmak gibi belirli bir görevi, yapay zekanın programın verimliliğini artıran akıllı hareketler yaptığı için ödüller aldığı bir oyun olarak ele alarak çalışır. Zamanla, sistem bu ödülü en üst düzeye çıkarmak için çalışır ve kazanan bir Go stratejisi veya daha hızlı bir montaj programı ile sonuçlanır. Bu, kelime veya kod yazmayı öğrenmek için büyük miktarda veriye dayanan GPT-4 gibi büyük dil modellerinde bulunan yapay zeka türünden farklıdır. Bu, internetin tonunu yansıtan yazılar üretmek veya ortak kod parçaları üretmek için harikadır. Ancak, AI’nın daha önce hiç görmediği kodlama zorluklarına yeni, son teknoloji çözümler üretmede o kadar iyi değil.