Пытаюсь применить скиллы уже несколько недель к своим прод general code agent и без тестов и точного соответствия возможностей в execution runtime (sandbox) на текущий момент это просто красивые markdown правила, так что обратите внимание на изолированные среды их тестирование и встраивание в code agent пайплайн
Нет не только, если использовать vLLM(он поднимает локально openai API) для запуска и не использовать langchain, можно использовать extra body, и еще менять бекенд например outlines или xgrammar
Сейчас что я заметил хуже всего работает с поиском имен/точных исторических данных (точных цифр прям до копеечки в инвестициях) но что и стоило ожидать часто интернет полон garbage
Вы точно понимаете что такое контекстное окно? Модели qwen семейства могут генерировать последовательности в 8к токенов а вот контекстное окно у моделей т-банка на месте все 32к и есть поход скейлинга до 128к как и в официальной документации qwen
Честно у меня вопрос все еще насчёт сэмплирования для 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.
Это первое решение которое мы предложили. На заводе есть весы на каждом этапе контроля до, но система такова что разброс(погрешность) в конечном варианте(собранная целая коробка) может составить +- один баллон. Проверка весами дала бы большее количество ложных срабатываний. Данная погрешность была проверена на весах когда в коробке все баллоны, так что весовой контроль был сразу отброшен как вариант проверки. Так же на этом этапе конвейерной линии не предусмотрен узел взвешивания, и для его установки потребовалась бы более глобальная модификация.
Пытаюсь применить скиллы уже несколько недель к своим прод 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.
Это первое решение которое мы предложили.
На заводе есть весы на каждом этапе контроля до, но система такова что разброс(погрешность) в конечном варианте(собранная целая коробка) может составить +- один баллон. Проверка весами дала бы большее количество ложных срабатываний. Данная погрешность была проверена на весах когда в коробке все баллоны, так что весовой контроль был сразу отброшен как вариант проверки. Так же на этом этапе конвейерной линии не предусмотрен узел взвешивания, и для его установки потребовалась бы более глобальная модификация.