Search
Write a publication
Pull to refresh

Comments 6

У google gemini в их библиотеке google-genai весь сложный механизм вызова функций спрятан под капотом, тебе надо только написать сами функции с хорошими докстрингами, и передать их список в запрос, просто список имен функций, всю инфу он сам вытянет из самодокументации питона, достанет докстринг и описание функции из __.

Эти функции могут вызываться по много раз подряд в разных комбинациях анализируя результаты и корректируя следующие вызовы. Например если есть функция для рисования мермейд графиков и она умеет возвращать текстовое описание ошибки то джемини будет вызывать ее много раз подряд пока не получит требуемый результат или решит что не получится его получить.

Давно ищу какой-нибудь аналог для всех остальных моделей, хотя бы с однократным запуском функций но чтоб не надо было это всё вручную делать. Может знает кто такой.

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

Если мы используем 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