Lokalny model LLM generuje dane łamiące prawidłowy schemat JSON, gdy generowanie, obsługa ograniczeń, reguły zatrzymywania i walidacja nie egzekwują tego samego kontraktu.
Samodzielnie hostowany proces może otrzymać zgodny ze standardami schemat metadanych plików, działań inteligentnego domu, ekstrakcji dokumentów lub argumentów narzędzi, a mimo to zwrócić niepoprawny albo odrzucony wynik. „Prawidłowy schemat” opisuje dokument schematu, a nie całą ścieżkę wykonania. Model musi zrozumieć zadanie, dekoder musi obsługiwać odpowiednie funkcje schematu, generowanie musi zakończyć się przed zadziałaniem warunku zatrzymania, parser musi odtworzyć kompletną wartość JSON, a walidator aplikacji musi stosować oczekiwane reguły wersji roboczej i konwersji typów.
Poprawny JSON i JSON zgodny ze schematem to różne wyniki
Obiekt może zostać poprawnie sparsowany, a mimo to naruszać wymagane pola, typy, wartości wyliczeniowe, limity tablic lub gałęzie warunkowe. Może też zawierać prawidłowe nazwy pól, ale dodawać właściwości zabronione przez schemat.
Moduł JSON w Pythonie definiuje warstwę składniową dekodowania dokumentu JSON, ale parsowanie nie stosuje osobnego kontraktu JSON Schema.
Ta przyczyna jest rozpoznawalna, gdy dane wyjściowe wczytują się bez błędu składni, ale zawodzą dopiero podczas walidacji schematu. Brakujący nawias klamrowy lub końcowe wyjaśnienie to błąd serializacji; ciąg znaków tam, gdzie wymagane jest число całkowite, to błąd kontraktu.
Kompozycja schematu może tworzyć trudne do spełnienia gałęzie
Słowa kluczowe takie jak allOf, anyOf, oneOf i not łączą ograniczenia. Gałąź może być prawidłowa niezależnie, podczas gdy połączony obiekt nie spełnia żadnej z dozwolonych alternatyw albo spełnia ich kilka.
Wskazówki dotyczące JSON Schema wyjaśniają, jak słowa kluczowe kompozycji schematu zmieniają zasady dopasowania jednego lub wielu podschematów.
Lokalny model często bardziej niezawodnie obsługuje płaską listę właściwości niż zagnieżdżoną logikę warunkową. Jeśli błędy koncentrują się wokół sum typów lub wzajemnie wykluczających się struktur obiektów, głównym problemem jest wybór gałęzi, a nie podstawowa interpunkcja JSON.
Dekoder z ograniczeniami może obsługiwać tylko część schematu
Silniki generowania ustrukturyzowanych danych tłumaczą schematy na ograniczenia tokenów, gramatyki, wyrażenia regularne lub reguły specyficzne dla backendu. Nie wszystkie implementują każdą wersję roboczą JSON Schema ani każde słowo kluczowe.
vLLM udostępnia kilka backendów ustrukturyzowanych danych wyjściowych, pokazując, że schemat JSON, gramatyka, wyrażenie regularne i ograniczenia oparte na stałym wyborze to odrębne tryby wykonania.
Ta przyczyna występuje, gdy ten sam schemat przechodzi poprawnie walidację zgodnego ze standardami walidatora, ale zawodzi tylko w jednym backendzie wnioskowania. Nieobsługiwane rekurencje, odwołania, wzorce lub słowa kluczowe warunkowe mogą zostać uproszczone, zignorowane albo odrzucone, zanim model cokolwiek wygeneruje.
Instrukcje w promptcie mogą być sprzeczne ze schematem
Prompt użytkownika może wymagać komentarza, cytowań, wyjaśnień, pominięcia opcjonalnych elementów lub wyrażenia niepewności w języku naturalnym, podczas gdy schemat wymaga pojedynczego obiektu ze stałymi polami.
Model ma wtedy dwa konkurujące kryteria sukcesu: odpowiedzieć użytkownikowi w sposób konwersacyjny i emitować wyłącznie tokeny dozwolone przez kontrakt maszynowy. Mniejszy lokalny model może zastosować się do nowszej lub bardziej wyeksponowanej instrukcji zamiast pogodzić obie.
Takie błędy często dodają wstęp, blok markdown, wyjaśnienie po obiekcie albo wartość, która spełnia prośbę sformułowaną w tekście, ale narusza zadeklarowaną wartość wyliczeniową. Schemat jest prawidłowy; niespójna jest hierarchia instrukcji.
Obcięcie może zamienić poprawny plan w nieprawidłowe dane wyjściowe
Zagnieżdżone tablice i obiekty wymagają wygenerowania wystarczającej liczby tokenów, aby zamknąć każdą strukturę. Limit tokenów, ciąg zatrzymujący, anulowane żądanie lub przerwanie strumienia może zakończyć odpowiedź przed pojawieniem się końcowych ograniczników.
Transformers udostępnia ustawienia maksymalnej liczby tokenów i zatrzymywania, które określają moment zakończenia generowania.
Ta przyczyna wyróżnia się poprawnymi prefiksami, które kończą się nagle, zwłaszcza przy większych tablicach lub długich polach tekstowych. Powtarzające się naruszenia typów na początku wskazują na inny problem; brakujące nawiasy zamykające w pobliżu limitu danych wyjściowych oznaczają niekompletne generowanie.
Semantyka walidatora może odrzucać wartości uznane przez model za równoważne
Model może wygenerować "3" dla liczby całkowitej, null dla pominiętego pola, wartość wyliczeniową zapisaną małymi literami albo datę ISO w formacie innym niż oczekiwany przez aplikację.
Pydantic dokumentuje odrębne kategorie błędów walidacji dla brakujących wartości, nieprawidłowego JSON, niezgodności wartości wyliczeniowych, zabronionych dodatkowych pól i niezgodnych typów.
Jeśli każdy błąd dotyczy tego samego pola i ma postać możliwej do sparsowania, ale odrzuconej wartości, przyczyną nie jest losowe łamanie schematu. To niezgodność dotycząca konwersji typów, rygorystyczności, wartości pustych, wielkości liter lub formatów na poziomie aplikacji.
Ograniczenia gramatyczne mogą zachować składnię, ale nie znaczenie biznesowe
Gramatyka może blokować nieprawidłowe nawiasy klamrowe i klucze, a mimo to dopuszczać semantycznie niemożliwe połączenia, takie jak data zakończenia wcześniejsza od daty rozpoczęcia albo nieistniejąca ścieżka pliku.
llama-cpp-python udostępnia generowanie z ograniczeniami gramatycznymi jako mechanizm sterowania wnioskowaniem, ale gramatyka określa dozwoloną strukturę tokenów, a nie prawdę zewnętrzną.
Błąd schematu spowodowany regułami dotyczącymi wielu pól może pojawić się dopiero w drugiej warstwie walidacji. Dane wyjściowe mogą być poprawne składniowo i strukturalnie, a mimo to nie nadawać się do wykorzystania w procesie obsługi serwera domowego.
Przetwarzanie końcowe może uszkodzić poprawne dane wyjściowe modelu
Aplikacje czasami usuwają markdown, wyodrębniają pierwszy blok ograniczony nawiasami klamrowymi, łączą fragmenty strumienia, naprawiają przecinki lub konwertują wartości przed walidacją.
Poprawna odpowiedź modelu może stać się nieprawidłowa, gdy fragment strumienia zostanie zduplikowany, tekst Unicode zostanie niepoprawnie zdekodowany, sekwencja escape zostanie usunięta albo funkcja naprawcza zmodyfikuje zagnieżdżoną zawartość. Z drugiej strony etap naprawy może ukryć fakt, że surowe dane wyjściowe modelu były nieprawidłowe.
Wyjaśnienie ZimaSpace dotyczące tego, dlaczego małe lokalne modele halucynują podczas generowania JSON, opisuje powiązaną granicę: zgodność ze schematem i poprawność faktograficzną należy mierzyć osobno, a surową odpowiedź trzeba zachować przed transformacjami aplikacji.
FAQ
Czy poprawny JSON dowodzi, że dane wyjściowe są zgodne ze schematem?
Nie. Parsowanie JSON sprawdza składnię. Walidacja schematu osobno sprawdza wymagane właściwości, typy, wartości wyliczeniowe, gałęzie, limity i inne zadeklarowane ograniczenia.
Czy temperatura równa zero zapobiegnie błędom schematu?
Nie. Może sprawić, że jedna ścieżka dekodowania będzie bardziej powtarzalna, ale nie doda nieobsługiwanych funkcji schematu, nie zapobiegnie obcięciu ani nie rozwiąże sprzecznych instrukcji.
Czy dekodowanie z ograniczeniami gwarantuje użyteczny rekord automatyzacji?
Nie. Może zagwarantować obsługiwane ograniczenia strukturalne, ale reguły biznesowe, ugruntowanie w źródłach, istnienie pliku, uprawnienia i spójność wielu pól nadal wymagają walidacji po stronie aplikacji.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Jakie funkcje umożliwiają utworzenie domowej granicy zaufania AI wokół wrażliwych plików?
Domowa granica zaufania dla AI łączy szyfrowanie danych w spoczynku, uprawnienia zgodne z zasadą najmniejszych przywilejów, sandboxing w czasie działania oraz zakresowe pobieranie danych...

Co powoduje, że prywatne wyniki wyszukiwania faworyzują często edytowane pliki?
Często edytowane pliki zyskują przewagę w rankingu, gdy każda aktualizacja dodaje sygnały świeżości, fragmentów, wersji lub interakcji bez normalizacji względem źródła.

Co powoduje, że modele obecności w inteligentnym domu mylą gości z mieszkańcami?
Goście mogą wyglądać jak domownicy, gdy system obserwuje wzorce aktywności gospodarstwa domowego, ale nie ma stabilnego sygnału tożsamości osoby, która je generuje.

