Büyük dil modellerini (LLM) sohbet penceresinin dar sınırlarından kurtarma fikri, uzun zamandır zihnimi meşgul ediyor. Denenmiş yöntemleri, başarılı ve başarısız girişimleri gözlemleyerek, bu soruna nasıl yaklaşılması gerektiği konusunda kendi fikirlerimi oluşturdum. İşte bu düşünceler ve üzerinde çalıştığım yaklaşım: LLM ajanları için gerçekten işe yarayan bir koşum (harness) nasıl tasarlanır?
İyi bir koşumun dört temel özelliği olmalı: Ajana doğal ve sezgisel gelmeli, her şey şeffaf olmalı ki ajan kendini geliştirebilsin veya hatalardan dönebilsin (ya da sonradan denetlenebilsin), mümkün olduğunca yalın ve esnek olmalı, ve zamanla bellek bozulması yaşamadan hatalara ve güncellemelere dayanıklı kalmalı. LLM'lerin artan zekasıyla bu koşumlar giderek daha güvenilir hale gelecek. Asıl mesele, botun üzerindeki bilişsel yükü (token cinsinden ölçülen) azaltmak.
Yıllar içinde öğrendiğimiz en önemli derslerden biri: Mümkün olduğunca deterministik olmak. LLM hangi hedefe ulaşacağını seçmeli, ancak bu hedefe giden yolda attığı adımlar iyi tanımlanmış olmalı. Çekirdek komut dosyası (prompt) olabildiğince küçük tutulmalı ve LLM çalışma zamanında hangi becerileri yükleyeceğine kendisi karar vermeli. Ayrıca, LLM'ler bağlam sınırlarına yaklaştıkça sorun çıkarmaya başlar. Bu nedenle token'ları dikkatli kullanmak hayati önem taşıyor.
İyi bir koşum, LLM'in önceden var olan kodlama bilgisinden yararlanmalı. Kod yazma ve sistem yönetimi, LLM'in eğitim verilerinde aşırı temsil edilir; bu yüzden ajana zaten rahat olduğu bir ortam sunmak, yeni bir ortamda zorlamaktan daha verimlidir. Değerli bağlam, dosya keşfi gibi gereksiz işlerle harcanmamalı; koşum, arka planda kayıt tutma, sağlık kontrolleri, güvenlik önlemleri gibi birçok işi sessizce yapmalı, ancak ajana hafif hissettirmeli.
Her şey savunmasızdır ve tüm ajanlar eninde sonunda başarısız olur. İki tür hata vardır: LLM seviyesinde ve koşum seviyesinde. LLM seviyesindeki hatalar doğrudan düzeltilemez, ancak koşum bunların riskini azaltabilir. Koşum seviyesindeki hatalar ise kurtarılabilir ve LLM'in sıra tabanlı doğası sayesinde çalışma zamanında düzeltilebilir. Bunun için ajanın iki şeye ihtiyacı vardır: iyi bir kayıt sistemi ve net bir hata mesajı. Unix/Linux ortamı, bu gereksinimleri karşılayan doğal bir adaydır. Unix felsefesi -"tek bir işi iyi yapan programlar yaz, birlikte çalışsınlar, metin akışları evrensel arayüz olsun"- günümüz koşum sorunlarına birebir uymaktadır.
Tüm veriler düz metin dosyaları olarak ele alınmalı. LLM'ler JSON veya karmaşık curl komutları yerine düz metinle daha rahat çalışır. Harici veri kaynaklarıyla uğraşırken koşum, veriyi LLM'e ulaşmadan temizlemeli ve düzenlemelidir. Dosya Sistemi Hiyerarşi Standardı (FHS) burada yol gösterici olabilir: loglar /var'a, yapılandırma dosyaları /etc'e, ajan çalışma alanı /home'a yerleştirilir. Bu sayede hem ajan hem de geliştirici grep, find gibi araçlarla kolayca denetim yapabilir. Önemli olan, dış dünyanın karmaşık verilerini bu yapay VFS'e uygun hale getirmektir. Sonuçta, her şey bir dosyadır ve Unix'in sağladığı bu evrensellik, LLM ajanları için en uygun koşumu oluşturmanın anahtarıdır.
Kaynak: eardatasci.github.io