Yapay zekâ nerede çalışmalı sorusu neden bir mimari kararıdır?
Yapay zekânın nerede çalışacağı bir özellik ayarı değil, ürünün temeline dair bir karardır. Bir sohbet, bir arama ya da bir özetleme isteği geldiğinde bu işi ya uzaktaki bir sunucu yapar ya da kullanıcının elindeki cihaz. İki yol da çalışır; ama hangisini seçtiğiniz maliyet tablonuzu, gizlilik sözünüzü, uygulamanın hızını ve kime bağımlı kaldığınızı aynı anda belirler. Bu yüzden 'sonra hallederiz' denip ertelenen değil, en baştan bilerek verilen bir karardır.
Çoğu ekip buluttan başlar, çünkü kolay olan budur: en güçlü modeller bir çağrı uzağınızda ve altyapıyı kurmak zorunda değilsiniz. Bir süre iyi gider. Sonra maliyet aylık faturada birikmeye başlar, bir müşteri 'verimiz nerede duruyor' diye sorar, bir başkası uygulamayı internetsiz kullanmak ister. O noktada 'cihazda da çalışsın' cümlesi masaya gelir ve iş artık basit bir ekleme değildir: hangi motor varsayılan olacak, ikisi nasıl bir arada duracak, karar ürünün her katmanına nasıl yayılacak. Biz bu yazıyı, tam da bu soruya tersten — cihazdan — başlayan bir ekip olarak yazıyoruz.
PocketAnima tam olarak bunu yapan bir uygulama: yapay zekâ sohbetini kullanıcının telefonunda, cihazın içinde çalıştırır. Kutudan çıktığında internete hiç ihtiyaç duymaz; hiçbir mesaj bizim sunucularımıza uğramaz. Aşağıda önce 'nerede çalışsın' kararını beş ölçüt üzerinden bir çerçeveye oturtacağız, sonra bu çerçevenin her parçasını PocketAnima'yı kurarken nasıl yaşadığımızı — neyi kazandığımızı, neyi feda ettiğimizi ve neyi bilerek yarıda bıraktığımızı — anlatacağız.
Bu kararı gerçekte ne belirler? Beş ölçüt
Bu kararı beş ölçüt birlikte belirler ve hiçbiri tek başına yeterli değildir: maliyet (bulutun kullanım başına gideri, cihazın depolama ve pil yükü), gizlilik (verinin nerede durduğu, kimin eriştiği), hız (uzaktaki sunucuya gidiş-dönüş ile çevrimdışı çalışabilme), model gücü (veri merkezindeki büyük model ile telefona sığan küçük modelin farkı) ve kontrol (sağlayıcıya ne kadar bağımlı kaldığınız). Doğru cevap, bu beşinin sizin ürününüz için nasıl ağırlıklandığına bağlıdır.
Buradaki tuzak, bir ölçütü öne çıkarıp gerisini unutmaktır. 'Gizlilik önemli, o zaman her şey cihazda' demek kulağa temiz gelir; ama cihaza sığan model daha zayıftır ve bunu göze almadıysanız karar geri teper. 'Güç önemli, o zaman hep bulut' demek de benzer biçimde faturayı ve bağımlılığı görmezden gelir. İyi karar, beş ölçütü de aynı masaya koyup hangisinden ne kadar ödün vereceğinize bilerek karar vermek ve o kararı ürünün ömrü boyunca tutarlı tutmaktır.
Maliyet bulutta ve cihazda nasıl farklı davranır?
Bulutun maliyeti kullanımla birlikte büyür; cihazın maliyeti ise büyük ölçüde tek seferliktir. Bulutta ilk gün her şey ucuz görünür: birkaç istek, küçük bir fatura. Ama her sohbet, her sorgu bir gider satırıdır ve kullanıcı sayısı arttıkça bu satır onunla birlikte büyür. Sizi sevindirmesi gereken bir büyüme, ay sonunda beklenmedik bir fatura olarak geri döner. Bulutta ölçek, gelirin yanında gideri de büyütür.
Cihazda denklem farklıdır. Ön maliyet daha yüksektir — modeli telefona sığacak biçimde hazırlamak, indirmeyi ve güncellemeyi yönetmek, farklı cihazlarda çalıştığından emin olmak kolay değildir. Ama bu iş bir kez yapıldığında işlemi kullanıcının cihazı yürütür; sizin sunucunuz her sohbette ücret saymaz. Bin kullanıcı da yüz bin kullanıcı da, çalışma maliyeti açısından sizin için aynıdır. PocketAnima'da bu bilinçli bir tercihti: sohbet ne kadar çok olursa olsun, her mesajın bize bir maliyet çıkarmamasını istedik.
Gizlilik ve verinin nerede durduğu neden en görünür ölçüttür?
Gizlilik teknik bir ayar değil bir sözdür; ve o söz, verinin fiziksel olarak nerede durduğuyla tutulur ya da bozulur. Bulutta veri, kullanıcının şehrinden uzakta bir sunucuda yaşar; kimin eriştiği, ne kadar tutulduğu ve gerektiğinde gerçekten silinip silinmediği artık sizin ve sağlayıcınızın politikasına bağlıdır. Kişisel veri ya da hassas kurumsal veri söz konusuysa bu, teknik bir ayrıntı değil hukuki bir sorumluluktur: hangi ülkenin yasası, hangi ağ, hangi denetim izi.
Cihazda çalışan model bu soruyu kökten değiştirir: veri telefonda kalır, hiçbir sunucuya çıkmaz, dolayısıyla 'sizde nasıl saklanıyor' sorusunun cevabı 'bizde hiç durmuyor' olur. PocketAnima'nın varsayılan gizliliği buradan gelir. Ama dürüst olalım: cihaz-üstü, gizliliği yok etmez, yerini değiştirir. Veri artık ağın değil cihazın sorumluluğundadır; telefon kaybolur ya da ele geçirilirse koruma katmanı cihazın kilidi olur. Yani cihaz-üstü, veriyi dışarı çıkarmak istemeyen kurumlar — sağlık, hukuk, kamu, kendi verisi üstünde tam denetim isteyenler — için güçlü bir cevaptır, ama sihir değildir.

Hız ve çevrimdışı çalışmak kararı nasıl etkiler?
Bulut ne kadar hızlı olursa olsun kaçınılmaz bir gidiş-dönüş gecikmesi taşır; cihaz bu gecikmeyi ortadan kaldırır. Bir isteğin uzaktaki sunucuya gidip cevabın geri gelmesi, işlemcinin ne kadar hızlı olduğundan bağımsız olarak ağın kendi payını ekler. Küçük gecikmeler tek tek fark edilmez ama bir sohbette üst üste binince arayüz ağırlaşmaya başlar. Cihazda işlem yerinde bittiği için gidiş-dönüş yoktur; cevap, ağ ne durumda olursa olsun aynı hızda gelir.
Asıl fark, ağ hiç yokken ortaya çıkar. Uçakta, tünelde, çekmeyen bir bölgede bulut tabanlı bir yapay zekâ sessizce durur; cihazda çalışan uygulama açılır ve çalışır. PocketAnima'yı denerken bunu somut biçimde gördük: telefonu uçak moduna alıp sohbete devam edebilmek, 'çevrimdışı çalışır' cümlesini bir vaat olmaktan çıkarıp gösterilebilir bir gerçeğe dönüştürüyor. Bu, bulutun yapısı gereği veremeyeceği bir avantajdır — ama bedeli bir sonraki ölçütte saklı: hız için modelden ödün verirsiniz.
Cihaza sığan model neyi feda eder?
Cihaza sığan model yeteneğinden feda eder: telefona sığan model, veri merkezindeki büyük modelden daha az güçlüdür. Bu bir tasarım hatası değil, bir fizik gerçeğidir. Modelin gücü büyük ölçüde boyutuyla ilişkilidir ve telefonun belleği sınırlıdır; büyük modeli oraya sığdırmak için küçültmek, biraz yeteneği geride bırakmak demektir. Karmaşık, çok adımlı akıl yürütmede fark açılır; kısa ve doğrudan işlerde ise küçük model çoğu zaman fazlasıyla yeterlidir.
Bunu açıkça söylemeyi önemsiyoruz, çünkü cihaz-üstü yapay zekâyı anlatan bazı ürünler bu bedeli görmezden gelir. PocketAnima'yı kurarken kararımız gizlemek değil sormak oldu: küçük model işinizi görüyorsa cihazda kalın, daha fazla güç gerekiyorsa aynı uygulamadan buluta geçin. Cihaz-üstü modeller ayrıca hızla iyileşiyor; bir zamanlar yalnız büyük modellerin altından kalktığı işleri bugün çok daha küçük modeller yapabiliyor. Ama 'çoğu iş için yeterli', 'her iş için yeterli' demek değildir ve bu ayrımı kullanıcıdan saklamak yanlış olur.

Kontrol ve sağlayıcıya bağımlılık neden görünmez bir maliyettir?
Sağlayıcıya bağımlılık görünmez bir maliyettir, çünkü bir bulut sağlayıcısına bağlandığınızda modelin davranışı, fiyatı ve sürekliliği artık tam olarak sizin elinizde olmaz. Sağlayıcı modeli güncellerse ürününüzün cevapları değişir; fiyatını artırırsa bütçeniz sizin bir şey yapmanıza gerek kalmadan büyür; bir ucu kapatırsa hattınızı yeniden yazarsınız. Her sağlayıcının arayüzü kendine özgü olduğu için, 'başka birine geçelim' kararı çoğu zaman sanıldığından pahalıdır.
Bizim buna cevabımız, kararı tek bir sağlayıcıya değil bir soyutlamaya bağlamak oldu. PocketAnima'da motor tek bir arayüzün arkasında durur: cihazdaki yerel model de, kullanıcının kendi anahtarıyla bağladığı bir bulut sağlayıcısı da aynı arayüzü konuşur. Sağlayıcı değişse yalnız o adaptör değişir, uygulamanın geri kalanı yerinde kalır. Bu, aslında ürün ailemizin genel ilkesidir: kaynak değişince yalnız adaptör değişir, çekirdek dokunulmaz. Cihaz-üstünü varsayılan yapmak bu bağımsızlığı en uca taşır — çünkü varsayılan durumda bağlı olduğunuz hiç kimse yoktur.
Biz PocketAnima'yı neden cihazda çalışacak şekilde kurduk?
PocketAnima'yı cihazda çalışacak şekilde kurduk, çünkü ürünün vaadi baştan gizlilikti: sohbetin kullanıcının cihazında yaşamasını, bizde hiç iz bırakmamasını istedik. Bunu bir özellik olarak değil, ürünün ne olduğuna dair bir cümle olarak gördük — 'konuşmalarınız tamamen sizin cihazınızda, bizim sunucularımıza uğramaz'. Bu cümlenin doğru olması için mimarinin tamamının onun etrafında kurulması gerekiyordu; sonradan eklenen bir seçenek olarak değil.
Bu tercihin teknik bir yüzü de vardı. Buluttan çalıştırsaydık her kullanıcının ne kadar kullandığını ölçmek, faturalandırmak ve anahtarları yönetmek gerekecekti; cihazda çalışan model bu yükü tümden ortadan kaldırıyor. Karşılığında farklı bir mühendislik yükünü kabullendik: modeli telefonda çalıştırmak, kullanıcının seçtiği modeli indirip yönetmek, sınırlı bellek ve pilin içinde bunu güvenilir kılmak. Cihaz-üstü yapay zekâ bir noktadan sonra 'dil modeli' olmaktan çıkıp bir altyapı problemine dönüşüyor — indirme, güncelleme, depolama, farklı cihazlarda çalışabilirlik.
Cihaz-üstü yapay zekânın dürüst sınırları nelerdir?
En büyük sınırı — model gücünü — yukarıda konuştuk; ikinci sınır cihaz çeşitliliğidir. Telefon dünyası tek tip değildir: işlemci, bellek ve grafik yetenekleri cihazdan cihaza değişir. Bu yüzden cihaz-üstü bir uygulamayı en zayıf makul cihazda bile düzgün çalışacak şekilde tasarlarsınız, sonra güçlü cihazların ekstra kapasitesini kademeli olarak açarsınız. Modeli telefonun grafik işlemcisinde ya da özel yapay zekâ yongasında (NPU) hızlandırmak bu kademelerden biridir; her cihazda aynı ölçüde mümkün olmadığı için doğru sıra, önce sağlam bir işlemci (CPU) temeli kurmak, hızlandırmayı ise yol haritasında ilerletmektir.
Üçüncü sınır depolama ve dağıtımdır. Modeller küçük dosyalar değildir; kullanıcı birden çok model tutmak isterse cihaz hafızası konuşmaya başlar. Bu yüzden indirmeyi kaldığı yerden devam edebilir yaptık, modelin cihaza sığıp sığmayacağını önceden söyledik, eski modeli silmeyi kullanıcının denetimine bıraktık. Dördüncüsü hız değil olgunluktur: bulutta yeni bir model çıktığı gün onu kullanabilirsiniz, cihazda ise o modelin telefonda çalışan, doğrulanmış bir sürümünü beklemek gerekir. Bunların hiçbiri cihaz-üstü fikrini çürütmez; yalnızca onu ciddiye alan bir ekibin baştan tasarlaması gereken şeylerdir.

Neden en iyi cevap çoğu zaman 'ikisi de' olur?
En iyi cevap çoğu zaman 'ikisi de'dir, çünkü asıl karar bulut ile cihaz arasında değil, kararı kimin vereceği arasındadır. PocketAnima'da bunu şöyle kurduk: varsayılan tamamen çevrimdışı, cihazdaki modeldir; kullanıcı isterse kendi bulut anahtarını ekleyip daha güçlü bir buluta geçebilir. Anahtar hiç eklenmezse uygulama eksiksiz çalışır — bulut bir zorunluluk değil bir seçenektir. Böylece 'gizlilik mi, güç mü' ikilemini biz kullanıcı adına çözmüyoruz; ona bilinçli seçme hakkı veriyoruz.
Bunu mümkün kılan şey, en baştan söylediğimiz motor soyutlamasıdır: arayüz, özellikler ve akış aynı kalır, altta çalışan motor değişir. Kullanıcı 'bugün hassas bir belgeyle çalışıyorum, cihazda kalayım' diyebilir; 'bu iş için en güçlü cevabı istiyorum, buluta geçeyim' diyebilir. İki durumda da aynı uygulama, farklı bir beyinle çalışır. Bir ürün için verilebilecek en dürüst cevap çoğu zaman tek bir yol dayatmak değil, yolu görünür ve geri döndürülebilir kılmaktır.
Belge sohbeti ve ses gibi ağır işler cihazda nasıl çözülür?
Bu ağır işleri de aynı ilkeyle çözdük: işi cihaza taşıyıp sınırlı kaynağa göre tasarlayarak. Belge sohbetini ele alalım — kullanıcı bir metin, kod dosyası ya da PDF yükler, sorular sorar ve cevabın hangi kaynaktan geldiğini görür. Bunu cihazda yapmak buluttan zordur, çünkü belgeyi anlamlı parçalara bölmek ve doğru parçayı bulmak gerekir. Çözümü melez kurduk: her parça hem anahtar-kelime araması hem de anlam bazlı benzerlik için hazırlanır; soru gelince ikisi birleştirilir ve en ilgili parçalar modele verilir. Tümü cihazda, internet olmadan ve cevabın kaynağını göstererek.
Ses de aynı yaklaşımla çözülür. PocketAnima'da yazının yanında konuşabilir ve cevabı sesli dinleyebilirsiniz; hem konuşmayı yazıya çevirme hem de yazıyı sese çevirme cihazda çalışır, buluta gitmez. Bunun anlamı, mikrofon verisinin bir sunucuya gönderilmemesi, ses kaydının cihazdan çıkmamasıdır; gizlilik vaadi burada da bozulmaz. Cihazdaki ses, kütüphanenin sınırları içinde çalışır — telaffuz her zaman stüdyo kalitesinde olmayabilir, ama işlev sağlamdır ve en önemlisi çevrimdışıdır. Buradaki genel ders şu: cihaz-üstünü seçtiğinizde her yeni özelliği 'bunu sınırlı kaynakta, internetsiz nasıl yaparız' sorusuyla tasarlarsınız.

Kendi ürününüz için nasıl karar verirsiniz?
Kendi ürününüz için karar, beş soruyu sırayla cevaplamakla netleşir. Birincisi veri: kullanıcı verisi kişisel ya da hassas kurumsal veri mi, yoksa dışarı çıkması sakıncasız bir veri mi? Kişisel veri ağırlıktaysa terazi cihaza kayar. İkincisi ölçek: kullanıcı sayısı büyüdükçe bulut faturası taşınabilir mi, yoksa çalışma maliyetini sabitlemek mi gerekir? Üçüncüsü hız ve çevrimdışılık: uygulamanın internetsiz de çalışması bir gereklilik mi, yoksa süs mü?
Dördüncüsü güç: işiniz büyük modelin akıl yürütmesini gerçekten gerektiriyor mu, yoksa küçük modelin cevabı yeterli mi? Gerektiriyorsa en azından buluta geçiş yolunu açık tutun. Beşincisi bağımsızlık: tek bir sağlayıcıya bağlı kalmak sizin için bir risk mi? Bu beş sorunun cevabı çoğu ürün için 'saf bulut' ya da 'saf cihaz' değil, ikisini bir soyutlama arkasında birleştiren bir melez çıkar. Önemli olan, kararı kahve molasında sezgiyle değil bu beş ekseni masaya koyarak vermek — ve verdikten sonra tutarlı kalmaktır.
Sonuç: doğru karar, tutarlı kalabildiğiniz karardır
Yapay zekânın nerede çalışacağı sorusunun tek bir doğru cevabı yoktur; doğru cevap, ürününüzün maliyet, gizlilik, hız, güç ve kontrol dengesine göre değişir. Ama yanlış olan bir şey vardır: bu kararı hiç vermemek ya da verip sonra tutarsız kalmak. Müşteriye verdiğiniz gizlilik sözüyle sunucuda tuttuğunuz verinin, pazarlamada söylediğiniz 'çevrimdışı çalışır' ile gerçekte olan bitenin uyuşması gerekir. Mimari, tam da bu uyumu güvence altına aldığı için önemlidir.
PocketAnima'yı kurarken buluttan başlayıp sonra cihaza taşınmak yerine doğrudan cihazdan başladık; bu bize çevrimdışı çalışmayı, gizliliği ve kontrolü kazandırdı, karşılığında model sınırlarını açıkça kabullenmeyi ve melez sistemi kurmayı getirdi. Bunları pazarlama söylettiği için değil, gerçekten yaşadığımız için yazıyoruz. Ürününüz de bu kararın eşiğindeyse — kullanım senaryolarınız henüz netleşmediyse ya da bulut ile cihaz arasında kaldıysanız — deneyimimizi paylaşmaktan memnuniyet duyarız. Vosetu olarak PocketAnima'yı geliştirmenin yanında, başka ekiplerin yapay zekâ mimarisini doğru zeminde kurmasına da yardımcı oluyoruz.
