Обновить
8
Валерий Ковальский@kekslop

Записки Fullstack CEO рассказываю об AI

6
Подписчики
Отправить сообщение

Пытаюсь применить скиллы уже несколько недель к своим прод general code agent и без тестов и точного соответствия возможностей в execution runtime (sandbox) на текущий момент это просто красивые markdown правила, так что обратите внимание на изолированные среды их тестирование и встраивание в code agent пайплайн

Почему не использовали structured output через vLLM и decoding backend например xgrammar

Вот пример

payload = {

"messages": [

{"role": "system", "content": system_prompt},

{"role": "user", "content": user_prompt}

],

"model": CLASSIFICATION_MODEL,

"max_tokens": 1000,

"temperature": 0.1,

"guided_json": json.dumps(METATAGS_SCHEMA),

"guided_decoding_backend": "xgrammar"

}

Таким образом можно заставлять модель на уровне распределения токенов генерировать схемы, так же открываются возможности по SGR настройке

Когда стоит применять structured output

Простые схемы (≤3 поля) - пофиг, любой способ

Средние схемы (массивы + 1-2 вложенности) - YAML/XML промптирование лучше НО иногда опять все в тестах познается

Сложные схемы (>3 уровней, рекурсия) - xgrammar обязательно

Очень много всего про это есть почитать тут

https://t.me/neuraldeep

https://t.me/llm_under_hood

Привет! Часть реализаций workflow агентов можно подглядеть с архитектурой вот тут

https://habr.com/ru/companies/redmadrobot/articles/892882/

А еще я часто обозреваю что-то новое в своем канале и даже про наши подходы https://t.me/neuraldeep

Нет не только, если использовать vLLM(он поднимает локально openai API) для запуска и не использовать langchain, можно использовать extra body, и еще менять бекенд например outlines или xgrammar

Прописывать просьбу выдавать модель в JSON в промпте уже считается несколько устаревшей практикой, передайте вашим исследователям вот такую статью https://platform.openai.com/docs/guides/structured-outputs

Попробуйте qwen 2.5 VL мы лично перешли на него при распознание таможенных деклараций и счёт фактур тут я делал обзор https://t.me/neuraldeep/1342

И ещё 2.5 семейство умеет возвращать координаты их можно использовать для дополнительного прохода OCR в очень важных ячейках

Главное использовать Structured Output при общении с моделью вот пример схемы

OBJECT_JSON_SCHEMA = {

"type": "object",

"properties": {

"objects": {

"type": "array",

"items": {

"type": "object",

"properties": {

"bbox_2d": {

"type": "array",

"description": "Coordinates of the table bounding box [x1, y1, x2, y2]",

"items": {

"type": "integer"

}

},

"label": {

"type": "string",

"description": "Object label, e.g. 'table'"

}

},

"required": ["bbox_2d", "label"]

}

}

},

"required": ["objects"]

}

А вот ответ

{  "id": "chatcmpl-9a5edf7433e246b78376c4f18bdbf263",  "object": "chat.completion",  "created": 1741078401,  "model": "qwen2.5-vl-72b-instruct",  "choices": [    {      "index": 0,      "message": {        "role": "assistant",        "reasoning_content": null,        "content": "{\"objects\": [{\"bbox_2d\": [54, 126, 532, 434], \"label\": \"table\"}]}",        "tool_calls": []      },      "logprobs": null,      "finish_reason": "stop",      "stop_reason": null    }  ],  "usage": {    "prompt_tokens": 724,    "total_tokens": 760,    "completion_tokens": 36,    "prompt_tokens_details": null  },  "prompt_logprobs": null}

Будет новый забег скоро. я улучшил пайп свой добавил ему памяти и немного присыпал магией RL и кучей экпериментов!

Буду расширять список гугл тоже возьмем!

Сейчас что я заметил хуже всего работает с поиском имен/точных исторических данных (точных цифр прям до копеечки в инвестициях) но что и стоило ожидать часто интернет полон garbage

А как мы знаем garbage in garbage out

Вы точно понимаете что такое контекстное окно? Модели qwen семейства могут генерировать последовательности в 8к токенов а вот контекстное окно у моделей т-банка на месте все 32к и есть поход скейлинга до 128к как и в официальной документации qwen

Изменю запрос когда появится чистый structured output на базе сэплирования логитов а не constrained decoding?

Честно у меня вопрос все еще насчёт сэмплирования для structured output когда появится? Хоть выпустите 20 новых моделей пока этой фичи не будет, большая часть сообщества не начнёт делать на базе Ya какие-то либо решения от агентов для классификации на базе LLM

Схемы прямиком из клода

Надеюсь текст не от туда)))

Вы там серьезно? Structured output сейчас в тренде! Посмотрите последний Dev Day от OpenAI, там популярно объяснили, зачем и как это работает. Какой plain text? Это то, что заставляет модель генерировать 100% JSON на уровне форматирования логитов. Логика и функции также могут галлюцинировать и не быть вызваны — это не для продакшена! А еще зайдите в канал "LLM под капотом" в Telegram и увидите топовые решения для structured output + checklist

Надеюсь ваш владелец продукта это заметит!

Добавьте structured output хотя бы на open-source библиотеках типо outlines или lm-format-enforcer и вашему апи цены не будет все мультиагентные системы прод уровня строятся на них. А пока считаю, все что есть по возможностям это уровень PoC ну максимум MVP.

Это первое решение которое мы предложили.
На заводе есть весы на каждом этапе контроля до, но система такова что разброс(погрешность) в конечном варианте(собранная целая коробка) может составить +- один баллон. Проверка весами дала бы большее количество ложных срабатываний. Данная погрешность была проверена на весах когда в коробке все баллоны, так что весовой контроль был сразу отброшен как вариант проверки. Так же на этом этапе конвейерной линии не предусмотрен узел взвешивания, и для его установки потребовалась бы более глобальная модификация.

Информация

В рейтинге
Не участвует
Откуда
Всеволожск, Санкт-Петербург и область, Россия
Работает в
Дата рождения
Зарегистрирован
Активность