Model cihazın üzerinde çalışır.
Ana üretim hattı Android ARM64 üzerinde native inference’a dayanır; sunucu round-trip’i sistemin zorunlu parçası değildir.
Mergen AI, yapay zekâ modelini bir sunucunun arkasına koymak yerine inference, retrieval ve performans ölçümünü doğrudan cihaz üzerinde çalıştırmaya odaklanan bir mobil AI sistemi. Android tarafındaki runtime Flutter arayüzünden Kotlin ve JNI üzerinden native C++ katmanına, oradan llama.cpp/GGML tabanlı model çalıştırmaya uzanıyor.
Amaç yalnızca “telefonda model çalıştırmak” değil; modelin gerçekten kullanılabilir olup olmadığını gecikme, bellek, kuantizasyon ve retrieval davranışıyla birlikte ölçmek.
Mobil inference tarafında Android cihaz üzerinde Qwen3 4B Q4_K_M GGUF modeli için native çalışma hattı kuruldu. UI ile model runtime’ı arasında Flutter → Kotlin MethodChannel → JNI → C++ → llama.cpp/GGML zinciri kullanılıyor; model yaşam döngüsü init, generate ve dispose sınırlarıyla yönetiliyor.
Mergen’in diğer önemli tarafı cihaz-local RAG ve benchmark yaklaşımı. Farklı model/kuantizasyon seçenekleri yalnız “çalışıyor” diye değerlendirilmek yerine üretim gecikmesi, bellek tüketimi ve cihaz üzerindeki davranışlarıyla kıyaslanıyor. Ayrı Windows prototipinde Phi-4 Mini ONNX INT4 ve ONNX Runtime GenAI ile farklı runtime yaklaşımı da test edildi.
Ana üretim hattı Android ARM64 üzerinde native inference’a dayanır; sunucu round-trip’i sistemin zorunlu parçası değildir.
Uygulama yalnız temel LLM inference değil, cihaz üzerinde çalışan RAG altyapısını da aynı ürün sınırında ele alır.
Flutter arayüzü Kotlin MethodChannel üzerinden Android katmanına, JNI üzerinden de C++ model runtime’ına bağlanır.
Gecikme, bellek kullanımı ve kuantizasyon farklılıkları cihaz üzerinde karşılaştırılarak donanıma uygun çalışma noktası aranır.
Release manifestinde internet izni bulunmayan akış, uygulamanın temel inference davranışını cihaz içinde tutma hedefiyle uyumludur.
Android llama.cpp hattına ek olarak Windows tarafında ONNX Runtime GenAI tabanlı ayrı prototip, model/runtime alternatiflerini kıyaslamak için kullanıldı.
Kullanıcı arayüzündeki bir üretim isteği, UI thread’inden native modele kadar açık sınırlarla ilerliyor.
Mergen’in model tarafı “en büyük modeli koy” yaklaşımından çok, cihazın sınırları içinde en iyi çalışan kombinasyonu bulmaya odaklanıyor.
Android hattında GGUF formatlı, kuantize Qwen3 4B modeli cihaz-local inference için kullanılıyor.
Native runtime CPU ağırlıklı çalışıyor; GPU layer kullanımı kapalı tutulan yol cihaz uyumluluğu ve ölçülebilirlik açısından kontrollü bir baseline sağlıyor.
Benchmark yaklaşımı yalnız toplam cevap süresine değil, üretim gecikmesi ve bellek davranışına da bakıyor.
Phi-4 Mini ONNX INT4 + ONNX Runtime GenAI prototipi, farklı model/runtime kombinasyonunu ayrı platformda karşılaştırma kanıtı sağlıyor.
Burada asıl mesele Flutter ekranı değil; managed mobil katman ile native model runtime’ı arasındaki yaşam döngüsü, bellek sınırı, thread güvenliği, token üretimi ve benchmark ölçümünün birbirini bozmadan çalışması.
UI katmanı doğrudan llama.cpp’ye bağlanmıyor. MethodChannel Android platform katmanını, JNI ise native ABI sınırını oluşturuyor; böylece mobil lifecycle ile model lifecycle birbirinden ayrılabiliyor.
Native tarafta model ve context yaşam döngüsü açık init, generate ve dispose sınırlarıyla ele alınıyor. Bu ayrım, tekrar kullanım ve native kaynakların kontrollü bırakılması için kritik.
Model runtime aynı native state üzerinde kontrolsüz paralel üretime bırakılmıyor. Mutex kullanımı, generate ve lifecycle çağrılarının yarış koşullarına girmesini engelleyen temel sınır.
Prompt tokenizasyonundan decode döngüsüne ve special token temizliğine kadar kullanıcıya dönen metnin native runtime çıktısından ayrıştırılması gerekiyor.
Model/kuantizasyon kararı sadece model boyutuna bakmıyor. Cihaz üzerindeki gecikme ve bellek ölçümleri runtime seçiminin parçası olarak tutuluyor.
Android release manifestinde internet izninin bulunmaması, inference hattının ağ erişimine ihtiyaç duymadan çalışması hedefini teknik olarak güçlendiriyor. Debug/profile internet erişimi Flutter geliştirme akışı için ayrı tutuluyor.
Kullanıcı girdisi ve çıktı gösterimi mobil UI katmanında kalır.
Flutter ile Android platform API’si arasında mesaj sınırı oluşturur.
Managed Android dünyası ile native C++ runtime arasında açık geçiş noktasıdır.
Model/context sahipliği, tokenizasyon ve decode burada yürür.
Retrieval bağlamı cihaz-local inference akışına beslenir.
Latency, bellek ve kuantizasyon sonuçları model/runtime kararlarına geri beslenir.
Flutter → Kotlin → JNI → C++ → llama.cpp zinciriyle cihaz-local model çalıştırma temeli kuruldu.
RAG akışı model inference ile birlikte cihaz-local kullanım hedefinin parçası.
Kuantizasyon, gecikme ve bellek davranışı cihaz üzerinde ölçülerek alternatifler değerlendiriliyor.
Phi-4 Mini ONNX INT4 + ONNX Runtime GenAI deneyi Android üretim hattından ayrı bir benchmark/prototip kanıtı.