Pulse ekibi, yapılandırılmış çıktıların belge çıkarım sorununu çözdüğünü varsayarak işe başlamıştı. Bir JSON şeması tanımlayıp büyük dil modellerini (LLM) belgelere yönlendirerek temiz veri elde etmeyi bekliyorlardı. OpenAI, Anthropic, Google gibi büyük API sağlayıcıları ve Outlines, XGrammar gibi açık kaynak araçlar, kısıtlı üretim (constrained generation) yöntemini yaygınlaştırdı. Ancak, banka ekstreleri ve faturalar gibi basit belgeler üzerinde başarılı olan bu yöntem, alternatif para birimi işaretleri, taranmış belgelerdeki karmaşık tablolar, iç içe geçmiş kalemler, koşullu alanlar ve değişken uzunluktaki diziler içeren on binlerce karmaşık belgeye uygulandığında sorunlar ortaya çıktı. Kısa özetle, üretim sırasında yapılandırılmış çıktıları zorlamak bedelsiz değildir; gerçek belge çıkarımının gerektirdiği karmaşık, iç içe şemalar için basit yaklaşımlar ya hesaplama maliyetini aşırı artırır ya da çıkarım kalitesini sessizce düşürür.
Kısıtlı kod çözme (constrained decoding) işlemi, her üretim adımında modelin tüm kelime dağarcığı üzerinde bir olasılık dağılımı üretmesiyle çalışır. Şemayı ihlal edecek belirteçlerin (token) olasılıkları sıfırlanarak maskelenir ve model sadece dilbilgisi kurallarına uygun belirteçler üretebilir. Düzenli ifadeler (regular expressions) gibi basit kısıtlamalar için bu yöntem verimlidir; Outlines kütüphanesi, bir düzenli ifadeden sonlu durum makinesi (FSM) oluşturarak belirteç maskelerini O(1) zamanda hesaplayabildiğini göstermiştir. Ancak, belirli bir JSON şeması düzenli bir dile eşlenebilse de, iç içe geçmiş nesnelerin ve dizilerin özyinelemeli yapısı, ayrıştırma karmaşıklığı açısından onu daha çok bağlamdan bağımsız bir dilbilgisi gibi davranmaya iter.
Bu durum, "durum patlaması" sorununa yol açar. XGrammar makalesi, belirteçleri bağlamdan bağımsız ve bağlama bağımlı olmak üzere iki kategoriye ayırarak akıllı bir optimizasyon sunmuştur. Bağlamdan bağımsız belirteçler için maskeler önceden hesaplanabilirken, bağlama bağımlı belirteçler için çalışma zamanı doğrulaması gerekir. Bu optimizasyonla XGrammar, basit yaklaşımlara göre 100 kata kadar hızlanma sağlamıştır. Ancak, dilbilgisinin belirsiz (non-deterministic) olduğu durumlarda, ayrıştırıcının birden fazla paralel yığın durumunu (stack state) sürdürmesi gerektiği için karmaşık dilbilgileri hala sorun yaratır. Her belirsiz seçim, izlenen durum sayısını ikiye katlayabilir ve bu da hesaplama yükünü önemli ölçüde artırır.
Büyük dil modelleriyle karmaşık belge çıkarımı, basit JSON şemalarıyla göründüğünden çok daha fazla hesaplama karmaşıklığı ve performans zorluğu barındırıyor.