Pull to refresh

Comments 6

UFO landed and left these words here

А что произойдёт, если при валидации ответа по схеме Пайдантика произойдёт эксепшен? Ну то есть, если промт не смог уговорить модель отдать валидный джейсон, то как тут поможет просто валидация? Ответ-то уже сгенерирован.

Если мы используем Structured Output (SO) — такого просто не быть. В этом и заключается суть подхода: мы не «уговариваем» модель сгенерировать корректный JSON, а заставляем её. Это достигается за счёт механизма, называемого ограниченное декодирование (constrained decoding).

В этом контексте, ограниченное декодирование — это метод, который манипулирует процессом генерации токенов генеративной модели, чтобы ограничить ее предсказания следующих токенов только теми токенами, которые не нарушают требуемую структуру выходных данных.

Подскажите, пожалуйста, если используется строгое ограниченное декодирование, то зачем задавать LLM схему ответа внутри промпта на естественном языке?

По моему опыту это улучшает генерацию ответа.

И во многих фреймворках для локального инференса это упоминяется, например в vLLM https://docs.vllm.ai/en/v0.8.4/features/structured_outputs.html#:~:text=While not strictly necessary%2C normally it´s better to indicate in the prompt that a JSON needs to be generated and which fields and how should the LLM fill them. This can improve the results notably in most cases.

Но это, дейтсвительно, не обязательно, ответ все равно придет в нужном формате.

Sign up to leave a comment.

Articles