SGR vs Function Calling: ghost busters edition
TL;DR: 3 дня копания в FC решениях, даже достал MacBook Pro с 32GB RAM чтобы 100% проверить на моделях до 5B → SGR решение а не костыль, наш общий проект с вами за неделю набрала 170+ звезд на GitHub
Как обсуждали ранее, tool_choice на первом шаге часть агентного подхода, тут я полностью согласен, но хотелось прям глубже разобраться где есть еще одна сторона SGR
На моделях касты OpenAI/Anthropic такие рекомендации работают потому что метрики у них 80+ по BFCL (это лишь пример на какой бенч нужно смотреть) и агентность сохраняется
Когда мы спускаемся ниже 35 по секции Agentic на BFCL то тут SGR не костыль а решение
FC реальность на локал моделях
Взял модель из Ollama она мне шиш (говорит не умеет в tool)
BFCL показывает Qwen3-4B = 2% в Agentic режиме O_o
Разбираемся а GGUF конвертация и руки убилаи chat template с поддержкой tools при переводе модели в ollama
Лезу в карточку Unsloth а там умеет
Собираю правильный chat template и беру от unsloth/Qwen3-4B-Instruct-2507-GGUF FP16 при сборке модели в Ollama
И о чудо она начала принимать tool
Но модель умеет КАК, но не КОГДА:
Принудительный tool_choice = 3-5 вызовов, парсинг XML, валидация
При переносе оригинального chat template Ollama напрочь не парсит эту секцию в XML
Сделаем обработку не поднялось
А все почему?
Вспоминаем метрики Agentic
Все стало понятно
Дальше попробовал 7B, 14B, 32B
Все встало на свои места я даже выдохнул!
У нас в проекте поддерживается 2 ветки: SGR FULL и где SGR поместили в tool
Переключился на SGR FULL и протестировал - 100% работа системы!
Дима предложил гибрид - SGR обернуть в tool для нормальных моделей:
Принудительный reasoning перед любым действием через tool_choice
Результат: 12 навыков системы, память между сессиями, работает на любых моделях
Паша сделал API - FastAPI с OpenAI совместимостью
Дима добавил веб-интерфейс - Chainlit UI
Пару ребят предложили по-другому собирать env - улучшили deployment
На gpt-4o FC ветка с историей и бесконечным диалогом дает хорошие ощущения
Метрики еще предстоит измерить, но система работает
На gpt-4o-mini: ребята говорили что очень даже достойно в режиме FC
На локальных 4B: SGR FULL отрабатывает простые запросы на 100% и генерит вменяемые отчеты
SGR как tool = лучшее из миров для моделей <32B где Overall Acc Agentic ниже 35
Связано это с тем что именно тут кроется сложная часть тюна и корректировки
Anthropic/OpenAI добавили принуждение через спец токены, но это ли агентность? Скорее принуждение
Архитектурные пороги
<14B: Pure SGR JSON
14-32B: SGR tool + FC hybrid (наш случай)
32B+: Native FC + SGR fallback
Обсудили мои выводы в ЛС с Димой из Dimension AI - пришли к консенсусу
Не заставляйте <32B притворяться gpt-4o
Дайте структурированно мыслить через SGR, действовать через эмуляцию FC
На локал на m1 pro 4b модель работает при использовании FULL_SGR
P.S. Много кто писал что такой подход на чистом SO где тулы вшиты в схемы давно использовал, но интересно - подавали ли вы в истории вызвание тулы после?
GitHub: https://github.com/vakovalskii/sgr-deep-research
BOOST https://t.iss.one/boost/neuraldeep
TL;DR: 3 дня копания в FC решениях, даже достал MacBook Pro с 32GB RAM чтобы 100% проверить на моделях до 5B → SGR решение а не костыль, наш общий проект с вами за неделю набрала 170+ звезд на GitHub
Как обсуждали ранее, tool_choice на первом шаге часть агентного подхода, тут я полностью согласен, но хотелось прям глубже разобраться где есть еще одна сторона SGR
На моделях касты OpenAI/Anthropic такие рекомендации работают потому что метрики у них 80+ по BFCL (это лишь пример на какой бенч нужно смотреть) и агентность сохраняется
Когда мы спускаемся ниже 35 по секции Agentic на BFCL то тут SGR не костыль а решение
FC реальность на локал моделях
Взял модель из Ollama она мне шиш (говорит не умеет в tool)
BFCL показывает Qwen3-4B = 2% в Agentic режиме O_o
Разбираемся а GGUF конвертация и руки убилаи chat template с поддержкой tools при переводе модели в ollama
Лезу в карточку Unsloth а там умеет
Собираю правильный chat template и беру от unsloth/Qwen3-4B-Instruct-2507-GGUF FP16 при сборке модели в Ollama
И о чудо она начала принимать tool
Но модель умеет КАК, но не КОГДА:
{"tool_calls": null, "content": "Текст вместо вызова тула"}
Принудительный tool_choice = 3-5 вызовов, парсинг XML, валидация
При переносе оригинального chat template Ollama напрочь не парсит эту секцию в XML
Сделаем обработку не поднялось
А все почему?
Вспоминаем метрики Agentic
Все стало понятно
Дальше попробовал 7B, 14B, 32B
Все встало на свои места я даже выдохнул!
У нас в проекте поддерживается 2 ветки: SGR FULL и где SGR поместили в tool
Переключился на SGR FULL и протестировал - 100% работа системы!
# Phase 1: Structured Output reasoning
reasoning = model.generate(format="json_schema")
# Phase 2: Детерминированное выполнение
result = execute_plan(reasoning.actions)
Дима предложил гибрид - SGR обернуть в tool для нормальных моделей:
Принудительный reasoning перед любым действием через tool_choice
Результат: 12 навыков системы, память между сессиями, работает на любых моделях
Паша сделал API - FastAPI с OpenAI совместимостью
Дима добавил веб-интерфейс - Chainlit UI
Пару ребят предложили по-другому собирать env - улучшили deployment
На gpt-4o FC ветка с историей и бесконечным диалогом дает хорошие ощущения
Метрики еще предстоит измерить, но система работает
На gpt-4o-mini: ребята говорили что очень даже достойно в режиме FC
На локальных 4B: SGR FULL отрабатывает простые запросы на 100% и генерит вменяемые отчеты
SGR как tool = лучшее из миров для моделей <32B где Overall Acc Agentic ниже 35
Связано это с тем что именно тут кроется сложная часть тюна и корректировки
Anthropic/OpenAI добавили принуждение через спец токены, но это ли агентность? Скорее принуждение
Традиционный FC:
- Модель сама решает КОГДА думать ❌
- Непредсказуемые решения ❌
SGR в FC:
- Первое поле reasoning ЗАСТАВЛЯЕТ думать ✅
- Структурированное планирование ✅
- Потом извлекает tool из SO ✅
- Вставляем в role tool что тулинг был вот он в истории ✅
Архитектурные пороги
<14B: Pure SGR JSON
14-32B: SGR tool + FC hybrid (наш случай)
32B+: Native FC + SGR fallback
Обсудили мои выводы в ЛС с Димой из Dimension AI - пришли к консенсусу
Не заставляйте <32B притворяться gpt-4o
Дайте структурированно мыслить через SGR, действовать через эмуляцию FC
На локал на m1 pro 4b модель работает при использовании FULL_SGR
P.S. Много кто писал что такой подход на чистом SO где тулы вшиты в схемы давно использовал, но интересно - подавали ли вы в истории вызвание тулы после?
GitHub: https://github.com/vakovalskii/sgr-deep-research
BOOST https://t.iss.one/boost/neuraldeep
🔥30👍11 4👏2
This media is not supported in your browser
VIEW IN TELEGRAM
SGR + Streaming Structured Output
В одном из небольших экспериментов я разбирал как можно использовать стриминг SO схем для своих нужд и лучшей интерактивности
Даже удалось сделать небольшую эммуляция трейсинга и дашбордов в терминале! Все ридми коменты и промпты переведены на английский
Разделили функционал пока на две ветки
structured_output_sgr_with_streaming (только SO) исправил пару болячек с историей лог можно глянуть тут
hybrid_reasoner_sgr_with_tools(гибридный подход где есть и FC и SO там ребята уже целый проект сделали)
Уже 45 форков и 218 звезд на github!
Собрал всех контрибьюторов в группу (ребята предложили много интересных идей по развитию)
Готовим систему к ERC3
Репо: https://github.com/vakovalskii/sgr-deep-research/tree/structured_output_sgr_with_streaming
В одном из небольших экспериментов я разбирал как можно использовать стриминг SO схем для своих нужд и лучшей интерактивности
Даже удалось сделать небольшую эммуляция трейсинга и дашбордов в терминале! Все ридми коменты и промпты переведены на английский
Разделили функционал пока на две ветки
structured_output_sgr_with_streaming (только SO) исправил пару болячек с историей лог можно глянуть тут
hybrid_reasoner_sgr_with_tools(гибридный подход где есть и FC и SO там ребята уже целый проект сделали)
Уже 45 форков и 218 звезд на github!
Собрал всех контрибьюторов в группу (ребята предложили много интересных идей по развитию)
Готовим систему к ERC3
Репо: https://github.com/vakovalskii/sgr-deep-research/tree/structured_output_sgr_with_streaming
59🔥37👍13 3