LensVLM-9B: Uzun Bağlamı Görsellerle Sıkıştırma ve Çok Adımlı Araç Çağırma
Kaynak: Hacker News
İçindekiler 3 başlık
Apple tarafından açık kaynaklı olarak sunulan LensVLM-9B, uzun bağlamlı çok modlu belgeleri görsel temsiller halinde sıkıştırarak yalnızca sorguyla ilgili sayfaları çözümleyen yenilikçi bir vizyon-dil modelidir (VLM). Modelin Hugging Face üzerindeki sohbet şablonu (chat_template_jinja) incelendiğinde; çok modlu veri işleme, özel belirteç yönetimi (pad_token: <|endoftext|>, unk_token: null) ve kuralları katı bir şekilde tanımlanmış araç çağırma (tool calling) mekanizması dikkat çekmektedir.
Çok Modlu İçerik Yönetimi ve Sistem Kısıtlamaları#
Modelin Jinja şablonundaki render_content makrosu metin, görsel ve video girdilerini ayrıştırırken belirli kurallara dayanır. Görseller |vision_start|> |image_pad|> |vision_end|> ve videolar |vision_start|> |video_pad|> |vision_end|> özel belirteçleriyle etiketlenir; ayrıca her görsel öğe Picture 1, Video 1 biçiminde numaralandırılarak modele aktarılır.
Yazılım geliştiriciler ve istem mühendisleri açısından en kritik kısıtlama, sistem iletilerinin (system message) kesinlikle görsel veya video içeremeyeceğidir. Şablon, sistem içeriğinde bir görsel ya da video tespit ettiğinde doğrudan raise_exception çalıştırarak akışı durdurur. Bu mimari karar, ajan sistemlerinde sistem talimatlarının görsel tabanlı prompt injection saldırılarından yalıtılmasını ve güvenli kalmasını sağlar.
Araç Çağırma ve 4 Temel Davranış Kuralı#
LensVLM-9B, araç kullanımını XML tabanlı yapılandırılmış bir sözdizimi ile yönetir. Ajan sistemlerinde fonksiyon çağrılarının kararlı yürütülmesi için şablondaki <IMPORTANT> bloğunda tanımlanan 4 temel kural şunlardır:
- Biçimsel Standart: Fonksiyon çağrıları mutlaka belirtilen XML formatında olmalı;
<tool_call>ana etiketleri içerisine iç içe geçmiş bir<function=...> </function>bloğu ve parametreler yerleştirilmelidir. - Zorunlu Parametreler: Çağrılan fonksiyonun ihtiyaç duyduğu tüm zorunlu parametreler eksiksiz bir şekilde tanımlanmalıdır.
- Ön Akıl Yürütme (Reasoning): Model, fonksiyon çağrısından önce doğal dilde isteğe bağlı bir akıl yürütme sunabilir; ancak çağrı tamamlandıktan sonra kesinlikle herhangi bir metin eklenemez.
- Sessiz Normal Yanıt: Kullanılabilecek bir fonksiyon bulunmadığında, model soruyu mevcut bilgi birikimiyle normal biçimde yanıtlamalı ve kullanıcıya fonksiyon çağırma mekanizmasından kesinlikle bahsetmemelidir.
Geliştiriciler İçin Pratik Çıkarımlar#
Bu şablon tasarımı, üretim ortamında çalışan yapay zeka ajanları için önemli mühendislik avantajları barındırır. Akıl yürütmenin fonksiyon çağrısından önce gelmesi (Chain-of-Thought), modelin argümanları üretmeden önce planlama yapmasını sağlayarak parametre hatalarını ve halüsinasyon riskini belirgin şekilde azaltır. Şablonda tanımlanan multi_step_tool bayrağı ve geçmiş mesaj taraması, modelin çok adımlı görevlerde önceki araç çıktılarını bağlamda tutarak otonom döngüleri kesintisiz sürdürmesine olanak tanır. JSON yerine XML tabanlı parametre bloklarının tercih edilmesi ise üretim API'lerinde tırnak işaretleri ve kaçış karakterlerinden kaynaklanan ayrıştırma (parsing) hatalarını minimuma indirir.
Bu konuyu derinlemesine öğrenmek isterseniz: Tool Calling ve Multi-Step Agent'lar modülüne göz atın.
Kaynak ve atıf
Bu yazı, Hacker News üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:
- huggingface.co/apple/LensVLM-9B