3 puan yazan GN⁺ 2026-01-18 | 1 yorum | WhatsApp'ta paylaş
  • Büyük dil modellerinin (LLM) JSON, XML, kod gibi yapılandırılmış biçimler üretirken ortaya çıkan kararsızlığı çözmeye yönelik geliştiriciler için pratik bir kılavuz
  • Olasılıksal doğası nedeniyle çıktı deterministik olmayan şekilde bozulabilir; bu durumu telafi etmek için deterministik yapılandırılmış teknikleri ele alır
  • İç çalışma prensipleri, araç ve teknik seçimi, dağıtım·ölçekleme·maliyet optimizasyonu, çıktı kalitesini iyileştirme gibi tüm süreci kapsar
  • Hızla değişen yapılandırılmış üretim alanındaki güncel bilgileri sürekli güncellenen bir belge biçiminde bir arada sunar
  • Veri çıkarma, kod üretimi, araç çağırma gibi alanlarda LLM'leri programatik olarak kullanan geliştiriciler için vazgeçilmez bir başvuru kaynağı

Yapılandırılmış LLM çıktısına neden ihtiyaç var?

  • LLM'ler çoğunlukla JSON, XML, kod gibi sözdizimsel olarak geçerli çıktılar üretse de, olasılıksal doğaları nedeniyle biçim hataları veya eksik sonuçlar ortaya çıkabilir
    • Bu da veri çıkarma, kod üretimi, araç çağırma gibi otomatikleştirilmiş süreçlerde sorunlara yol açar
  • Bu sorunları çözmek için deterministik yapılandırılmış çıktı yöntemleri gerekir
  • El kitabı, geliştiricilerin yapılandırılmış çıktıyı güvenilir biçimde uygulayabilmesi için araç ve tekniklerin tamamını ele alır

El kitabının ana içeriği

  • İç çalışma prensipleri, en uygun araç ve teknikler, araç seçimi ölçütleri, sistem kurma·dağıtma·ölçekleme yöntemleri, gecikme süresi·maliyet optimizasyonu, çıktı kalitesini artırma gibi pratik odaklı konuları içerir
  • Her başlık, geliştiricilerin doğrudan uygulayabileceği adım adım yaklaşımlar olarak düzenlenmiştir
  • Yapılandırılmış çıktıyla ilgili en güncel araştırmalar ve açık kaynak araçlar tek bir belgede bir araya getirilmiştir

Güncellik ve güncellemeler

  • Yapılandırılmış üretim teknolojileri çok hızlı geliştiği için mevcut kaynaklar kısa sürede eskimiş hale gelir
  • Bu el kitabı, düzenli olarak güncellenen yaşayan bir belge (living document) olarak sürdürülür
  • Geliştiriciler, farklı makaleleri, blogları ve GitHub depolarını taramak zorunda kalmadan en güncel bilgilere tek yerden erişebilir

Kullanım şekli

  • Baştan sona sırayla okunabilir ya da gereken konunun hemen bulunabildiği bir başvuru kaynağı olarak kullanılabilir
  • Pratik geliştirici odaklı yapısı sayesinde, belirli bir sorunu çözerken hızlı referans olarak kullanılabilir

Hazırlayanlar ve topluluk

  • El kitabı Nanonets ekibi tarafından hazırlanmıştır
  • LLM geliştirici topluluğu bülteni aracılığıyla iki haftada bir en güncel içgörüler, atılımlar, faydalı araçlar ve teknikler sunulur

1 yorum

 
GN⁺ 2026-01-18
Hacker News yorumları
  • Gerçekten çok güzel bir rehber. Özellikle birkaç sayfadaki sekme geçiş animasyonlarını çok beğendim
    grammar-constrained generation konusunu oldukça iyi anladığımı düşünüyordum (llama.cpp grammar implementasyonuna birkaç katkım da oldu), ama buna rağmen bu rehberden yeni içgörüler edindim
    Yapılandırılmış çıktıların, LLM motorlarının en az değer verilen özelliklerinden biri olduğunu düşünüyorum. Dilbilgisi kısıtları sayesinde LLM’ler daha büyük bir pipeline’ın parçası olarak güvenilir biçimde kullanılabiliyor (ör. tool-calling agent)
    Çıktı anlamsal olarak yanlış olabilir ama dilbilgisel olarak her zaman doğrudur. Özellikle yerel modeller kullanırken bu nokta çok önemlidir
    Örneğin Jart’ın Raspberry Pi tabanlı spam filtresi örneğinde olduğu gibi, TinyLlama modeline grammar uygulayıp yalnızca "yes" veya "no" çıktısı vermesini sağlarsanız, küçük donanımlarda bile kararlı çalışır

    • Model başka bir çıktı vermek istediğinde ne olduğuna dair merakım var; bunun llamafile içinde mi yoksa harici bir wrapper’da mı ele alınmasının daha iyi olacağını merak ediyorum. Retry ayarlarının veya JSON aralık belirlemenin nasıl yapıldığını da bilmek isterim
  • Gerçekten harika bir rehber. Doktora sürecimde structured generation üzerine çalıştım; ilgilenenler için birkaç kaynak paylaşayım
    Kütüphane olarak Outlines, Guidance, XGrammar var
    Makale olarak Efficient Guided Generation for Large Language Models, Automata-based constraints for language model decoding, Pitfalls, Subtleties, and Techniques in Automata-Based Subword-Level Constrained Generation öneririm
    Blog yazıları olarak da LLM Decoding with Regex Constraints ve Coalescence: making LLM inference 5x faster var

    • Outlines’ın stack içinde tam olarak hangi rolü oynadığını pek anlayamadım. Büyük model sağlayıcılarının sunduğu structured output API’lere mi benziyor, yoksa BAML gibi projelerle mi karşılaştırmak gerekir, merak ediyorum
    • DFybOGeGDS makalesindeki canonical filtering bölümünde pretokenization dikkate alınmıyor gibi görünüyor. pretokenization regex’i gerçekten hesaba katan canonical generation araştırması olup olmadığını merak ediyorum
    • “Diğer referanslar” denmiş ama sanki rehberde zaten yer alan kütüphane listesini yeniden sıralamış gibi
    • Gerçekten bir hazine sandığı gibi. Automata tabanlı kısıtlar çok ilginç bir konu
  • İyi derlenmiş bir rehber. Guidance ve llguidance optimizasyonu hakkında daha fazla bilgi edinmek isterseniz, yazdığımız kısa makaleye bakabilirsiniz

    • O makalenin yazarlarından biriyim. Özellikle dense token mask için slicing implementasyonu çok etkileyiciydi
  • Bu rehber, insanların çoğunlukla kullandığı iki yöntemi iyi ele alıyor. Ancak constrained generation, LLM’in özgün dağılımından sapabilir
    Örneğin LLM uzun yapılandırılmış nesneler üretirken gibi kalıpları tercih edebilir; kısıtlı üretim ise bunu zorla kapatılan tırnak işaretleri vb. ile düzelttiği için aslında daha yanlış sonuçlar verebilir
    Buna karşılık resampling, geçerli bir sonuç çıkana kadar tekrar ettiği için daha kararlıdır
    Ayrıca schema hatalarını bağlama ekleyip uzunluğu artırmak yerine, doğrudan yeniden deneme yapmanın kalite ve maliyet açısından daha iyi olduğunu düşünüyorum

    • Hibrit bir yaklaşım da mümkün. Önce unconstrained generation denenir, başarısız olursa ancak o zaman constrained generation uygulanır
  • SoTA modellerde (Opus, Gemini vb.) hâlâ output schema enforcement gerekip gerekmediğini merak ediyorum
    Bugünün modelleri JSON veya kod üretirken neredeyse hiç sözdizimi hatası yapmıyor, ama içeride hâlâ schema doğrulaması yapılıp yapılmadığını merak ediyorum
    Küçük modeller için yapılandırılmış üretimin gerekli olduğunu anlıyorum

    • Şema ne kadar karmaşıksa, LLM’ler sayma konusunda o kadar zayıf kaldığı için bu hâlâ faydalı. Modeller gelişmiş olsa da olasılıksal yapıları yüzünden kusursuz değiller
    • Güncel modeller bile bazen json\n gibi gereksiz token’lar eklediği için, hâlâ JSON yanıt şeması belirtmek daha güvenli
  • Yapılandırılmış çıktıyı zorlamak performans düşüşüne yol açıyor. Duruma göre 2–3 kat daha yavaş olabilir. Bunun katlanmaya değer bir maliyet olup olmadığı kullanım durumuna göre değerlendirilmeli

  • Gerçekten şaşırtıcı derecede iyi bir rehber. Keşke 1 yıl önce böyle bir kaynak olsaydı. Çevremdeki insanlarla kesinlikle paylaşacağım

  • Güzel bir rehber. Özellikle masked decoding diyagramını beğendim

    • Yazarlarından biriyim. Link sorununu kontrol edeceğim. Ticari model sağlayıcılarının hepsi structured output özelliği eklediği için rehberi güncel tutmaya devam edeceğiz
  • JSON’dan daha güvenilir ve parse etmesi daha kolay bir çıktı formatı olup olmadığını merak ediyorum. YAML veya TOML’un ayrı ayrı dezavantajları var ama token sayısı ya da maliyet açısından daha iyi olabilirler gibi geliyor

    • Bu amaç için TOON formatını kullanıyorum
    • İnsanlar bile JSON yazmayı uğraştırıcı buluyorsa, LLM’lerin de sonucu TypeScript benzeri kod biçiminde üretmesi daha iyi olabilir. Tabii güvenlik açısından sandboxing ve kaynak sınırlaması gerekir
    • Biz Markdown + YAML front matter tabanlı bir içerik dönüşüm pipeline’ı geliştiriyoruz. JSON tooling zayıf ama doğrulama zor değil
    • Ben regex ile XML şeması zorluyorum ve XML parser ile decode ediyorum. Özellikle kod bloklarını CDATA içine alarak serbestliği artırıyorum. OpenAI API’nin regex structured output özelliği kod için JSON’dan daha uygun
    • Doğrudan değerlendirme (evaluation) yapmanız iyi olur. Benim deneylerimde XML, out-of-distribution görevlerde JSON’dan sürekli daha iyi sonuç verdi
  • Doküman/cookbook sayfasının teknoloji stack’ini merak ediyorum. MkDocs ya da GitBook’a benzemiyor; ne kullandığınızı bilmek isterim

    • Docusaurus kullandık