İki yıl önce topladığımız oyun bilgisayarı, Kemal Yağız’ın Microsoft stajında geliştirdiği yapay zeka projesine ev sahipliği yaptı. Bellekten optimizasyona, LangChain’den VLM’lere uzanan yolculuk ev bilgisayarlarının sınırlarını gördüğümüz, belleğin sınırlarını zorladığımız ilginç bir deneyimi beraberinde getirdi.
Intel 13. Nesil işlemci, 32 GB bellek, Nvidia GeForce RTX4090 ekran kartı. Evde kullanmak için yaklaşık iki yıl önce topladığımız bilgisayarda ilk benchmark testlerini yaptığımızda, sonuçlar bize yüzde 1 diliminde yer alan dünyanın en hızlı kişisel bilgisayarlardan birinin karşısında oturduğumuzu söylüyordu. Gerçekten de oyun olsun, kod olsun, ne kadar zorlarsak zorlayalım kullandığımız süre boyunca performansının üst sınırını görmeye fırsat bulamadık. Sistem, üzerine attığımız türlü türlü iş yüklerine bana mısın demiyordu.
Ta ki İstanbul Teknik Üniversitesi 4. Sınıf öğrencisi oğlum Kemal Yağız, bu yaz Microsoft’ta staja başlayana kadar.
Stajın konusu yapay zeka üzerine çözüm geliştirmekti. Yağız bu alanda pratik çıktıları olan, kullanışlı bir yapı ortaya koymak istiyordu. Sonunda bir fikir ortaya koydu: Birden fazla agent mimarisini birlikte kullanan, tamamen lokal çalışan bir yapay zeka projesi hazırlayacaktı.
Ne de olsa dünyanın en performanslı kişisel bilgisayarlarından biri evde, masanın üzerinde duruyordu.
Benchmark Tablosundan Yapay Zekanın Er Meydanına
Öncelikle projeyi lokal olarak hayata geçirmek için floating point değerleri yüksek full precision modellerdense, çözünürlüğü daha düşük olan floating pointleri kullanan bir model tercih ederek işe başladı. “Bunu YouTube’da 480p video izlemekle 4K film izlemek arasındaki farka benzetebilirsiniz” diye açıklıyor Yağız. “Yüksek çözünürlüklü olanı izlemek elbette daha keyifli, ama 480p olanda da konuyu anlarsınız.”
Bu yüzden işi lokalde çalıştırabilmek ve sonuca varma süresini hızlandırmak için llama.cpp ve vLLM gibi araçlara yöneldi. Tabii iş bununla kalmadı. LangChain, LlamaIndex gibi orkestrasyon araçlarına, vektör veri tabanlarına, çeşitli dokümanlardan anlam oluşturmayı sağlayan Chroma ve FAISS gibi araçlara da ihtiyacı vardı. Bunların hepsi yoğun kaynak tüketen süreçler olsa da, elimizdeki sistemin bunlarla baş edebileceğini düşünüyorduk.
Ama darboğaz farklı bir yerden yaklaşıyordu.
Lokal Modellerin Zorlukları: Belleğin Dur Dediği Yere Kadar
Yağız phiDelta kod adını verdiği sistemi kurgularken yaptığı mimari tercihlerden biri, modelin görsel tanıyabilme ve bu yolla dokümanları detaylı bir şekilde inceleyebilme yeteneğine sahip olmasıydı. Diğer yandan bu tercih projede LLM, yani büyük dil modelinin yanında VLM, yani görsele dayalı dil modellerinin de çağrılmasını gerektiriyor. “Amacım sorguyu zeki bir LLM modeliyle yorumlayıp, gerekirse kaynak dokümanları VLM modeline göndererek oradan gelen çıktılarla birlikte daha kapsamlı sonuç ortaya koyabilmekti” diyor Yağız.
Gel gelelim, VLM’ler LLM’lerle kıyaslandığında genelde düşünme yeteneğinden yoksun modellerdir. Daha çok görüntü tanıma işine yoğunlaşırlar ve işin anlam çıkarma kısmını diğer modellere bırakırlar. Dolayısıyla her biri hatırı sayılır kaynaklara ihtiyaç duyan bu iki modelin verimli iş yapabilmesi için eş zamanlı çalışmaya ihtiyacı var. Her seferinde “LLM’e sorgu gönderdim ama VLM’e göndermesi için önce VLM’i çalıştırmamız gerekiyor” derseniz, VLM kendine gelip sonuç üretene kadar ekran başında dakikalarca beklersiniz. İlgi eşiğinin saniyelerle ölçüldüğü bir dünyada buna kim tahammül eder?
Nihayetinde projenin lokalde makul bir performansla çalışabilmesi için her iki modelin sürekli açık kalması gerekiyordu. Ama bunu yapmaya çalışınca şöyle bir sorun oluştu: Ekran kartı üzerinde 24GB bellek var. Orası dolunca model sistem belleğine taşıyor.Ffakat phiDelta için elimizdeki sistem belleği de yetmiyordu. Bellek ağzına kadar öylesine doluyordu ki, normal şartlarda saniyede trilyonlarca parametre işleyebilen bilgisayarın ekranındaki uygulama penceresini kaydırmak bile mümkün olmuyordu.
Hayatımızda ilk defa 32 GB’ın yetmediği, belleğin darboğaz yarattığı bir noktaya gelmiştik.
Yeni Bellek Eşiğimiz 64 GB
Madem bundan sonra belleğe yüklenmek bizim için bir yaşam tarzı olacak, o zaman bari iyisi olsun diyerek Kingston Beast serisinin KF564C32BBEAK2-64TR modelinde karar kıldık. DDR5 6400 MHz CL32 spesifikasyonlarına sahip çift 32 GB modülle toplamda 64 GB bellek sunan bu set, üzerindeki RGB ışıklarıyla kasada da oldukça şık duruyor.
Hazır elimizde dört slot varken yeni bellekleri eskilerle kombine edelim, toplamda 96 GB belleğimiz olsun diye bir hayalimiz de vardı ama kısa sürdü. Meğer sistem kurarken farklı bellekleri harmanlamak dünyanın en dertli, sistem stabilitesi açısından en riskli işlerinden biriymiş. Deneyip görmüş olduk.
Sonuç? Yağız, LLM ve VLM modellerinin eşzamanlı çalışması için 40 GB civarı sistem belleğine ihtiyaç duyduğunu ve sistem belleğinin 64 GB’a çıkmasıyla sorunun çözüldüğünü söylüyor. Yani tavanda biraz boşluk bile kalmış.
Modelin kısa tanıtım videosunu aşağıda görebilirsiniz.
Peki ya ilerde ihtiyaç artarsa? Farklı modelleri baz alan, floating point değerleri daha yüksek, daha fazla eş yükün bir arada çalışması gereken bir modeli hayata geçirmesi gerekirse? O zaman slotlardaki Kingston Beast modüllerini dörde çıkaracağız demektir. Bunun daha da üstü gerekirse Workstation kurulumu daha mantıklı bir seçenek gibi görünüyor.
Sistem belleğini 32 GB’den 64 GB’a çıkarmanın başka faydalarını da gördük tabii. Yağız, aynı anda çalışan görevlerin rahatladığını, oyun oynarken masaüstüne geçip bir şeyleri halledip geri dönmenin daha akıcı bir deneyime dönüştüğünü söylüyor.
Bugün Açık Kaynak, Peki ya Yarın?
Geldik asıl soruya, bundan sonra phiDelta’nın geleceği ne olacak? Yağız’ın planı Microsoft’un Phi-4 modelini temel alan yapının, sonraki aşamada daha farklı modeller arasında geçiş yapabilen modüler bir yapıya taşımak. “Regülasyon ve güvenlik gerekçesiyle verilerini yerelde tutmak zorunda olan kurumlar için kullanışlı bir çözüm ortaya koyduğuma inanıyorum. İlerde doğru ekiple bunu büyütmek de söz konusu olabilir” diyor.
Bir teknoloji gazetecisi olarak bugüne dek birçok şirketin yöneticisiyle görüştüm, hikayelerini dinledim. Vizyon ve görüşlerini aktardım. Oğlumla gecesini gündüzüne katarak, sadece iki ayda ortaya koyduğu yapay zeka projesi üzerine etraflıca konuşmak, ne yaptığını anlamaya, aktarmaya çalışmak benim için ilginç ve bir o kadar gurur verici bir deneyim oldu.
İncelemek ederseniz, Yağız’ın açık kaynak olarak yayınladığı phiDelta’nın detaylarını GitHub’da bulabilirsiniz.