Ollama ile Yerel Yapay Zekâ: Yerel Araç Çağırma, Eşzamanlılık ve Yapılandırılmış Çıktılar
Büyük dil modellerini yerel olarak çalıştırmak bir zamanlar veri gizliliği ve sıfır API maliyeti karşılığında bir tavizdi; bulut API'lerinin gelişmiş özelliklerinden feragat etmek anlamına geliyordu. Ancak, Ollama'nın son sürümleri bu sınırları tamamen yıktı. Platform, basit bir model çalıştırıcıdan kurumsal düzeyde güçlü bir yerel yapay zekâ merkezine dönüştü.
En son Ollama sürümlerini yerel yapay zekâ mühendisliği için devrimsel kılan üç temel mimari sütunu keşfedelim.
1. Eşzamanlı Model Yükleme ve Paralel Çalıştırma
Geçmişte Ollama tek bir model kuyruğu üzerinden çalışıyordu. Eğer mistral yüklüyken llama3 üzerinden bir çıkarım talep ederseniz, motorun mistral'ı VRAM'den tamamen kaldırması, llama3'ü yüklemesi, çıkarımı yapması ve ardından bir sonraki istek için işlemi tersine çevirmesi gerekiyordu. Bu durum ciddi gecikme dalgalanmalarına neden oluyor ve tek bir makinede çoklu model iş akışlarını imkansız kılıyordu.
Artık Ollama akıllı eşzamanlı model çalıştırmayı destekliyor:
- Çoklu Model VRAM Tahsisi: Ekran kartınız yeterli VRAM'e sahipse (örneğin 16GB veya 24GB), Ollama aynı anda birden fazla küçük modeli (örneğin 3B bir LLM ve bir vektör gömme modeli) yükleyebilir.
- Dinamik VRAM Değişimi: VRAM yetersiz olduğunda Ollama, model katmanlarını sistem RAM'i ile VRAM arasında son derece optimize edilmiş bellek eşleme (
mmap) kullanarak değiştiren akıllı bir kuyruk yöneticisi kullanır ve değişim gecikmesini %70'e kadar azaltır. - Paralel İstekler: Yüklü tek bir model, artık gruplandırılmış matris çarpımından yararlanarak paralel olarak birden fazla çıkarım isteğini işleyebilir. Bu,
OLLAMA_NUM_PARALLELortam değişkeni aracılığıyla kontrol edilir.
2. Yerel Araç Çağırma (Function Calling)
Yerel yapay zekâ ajanları oluşturmanın önündeki en büyük engellerden biri, yapılandırılmış araç çağırma desteğinin olmamasıydı. OpenAI gibi tescilli API'ler işlev çağrılarını güvenilir bir şekilde üretebilirken, yerel modeller genellikle halüsinasyon görüyor veya gerekli JSON şemasına uymuyordu.
Ollama'da yerel araç çağırma desteğinin kullanıma sunulmasıyla birlikte:
- Şema Tanımlama: Geliştiriciler, parametreleri ve açıklamaları içeren mevcut araçların bir listesini doğrudan API isteği içinde iletebilirler.
- Model Uyumluluğu: Ollama, araç çağırmayı destekleyen modeller (Llama 3.1/3.2, Qwen 2.5 ve Mistral gibi) için sistem komut istemini ve biçimlendirme şablonlarını otomatik olarak yapılandırır.
- Yapılandırılmış Yanıt: Model, ham metin yerine çalıştırılacak işlevin adını ve iletilecek argümanları belirten yapılandırılmış bir JSON döndürür.
3. Garantili Yapılandırılmış Çıktılar
Araçlar olmasa bile web uygulamaları, LLM'lerin bir nesne listesi, bir Boole kararı veya belirli bir veri tabanı satır şeması gibi katı bir biçimde veri çıktılamasını gerektirir.
Ollama artık çıkarım aşamasında JSON şemalarını zorunlu kılarak Yapılandırılmış Çıktıları destekliyor. API isteğiyle birlikte bir JSON Şeması iletildiğinde, çıkarım motoru token üretimi sırasında olasılıkları (logits) ayarlar. Model, matematiksel olarak yalnızca belirtilen şemaya uyan token'ları üretmeye zorlanır ve bu da JSON ayrıştırma hatalarını tamamen ortadan kaldırır.
Sonuç
Paralel yükleme, yapılandırılmış çıktılar ve yerel araç çağırma özellikleri ile Ollama artık sadece bir hobi aracı değil. Geliştiricilerin tamamen cihaz üzerinde (edge), güvenli, gizli ve son derece gelişmiş otonom uygulamalar oluşturmasını sağlayan üretime hazır bir çalışma zamanı sistemidir.