Развитие генеративного искусственного интеллекта и агентных приложений сегодня сопровождается важным вопросом: какую локальную языковую модель лучше всего использовать для вызова инструментов? Несмотря на очевидность задачи, ее решение оказалось далеко не тривиальным. Местные языковые модели предоставляют разработчикам ряд преимуществ – абсолютный контроль над процессом, снижение затрат и обеспечение приватности. Однако их поведение при структурированном вызове инструментов часто вызывает множество сложностей, связанных с определением момента и метода использования соответствующих функций. Исследование, проведённое командой Docker Model Runner, позволяет не просто оценить доступные локальные модели, но и выявить наиболее эффективные варианты для практического применения. Первоначальный подход к тестированию заключался в ручном экспериментировании.
Для этого был создан чат-ассистент shopping assistant под названием chat2cart, который позволяет пользователям с помощью диалогового интерфейса добавлять или удалять товары из корзины, а также осуществлять покупку. Для удобства тестирования была внедрена система выбора моделей, позволяющая легко переключаться между локальными моделями и облачными сервисами, такими как OpenAI GPT-3.5 и GPT-4. Опыт взаимодействия с этими облачными моделями оказался весьма положительным: они адекватно вызывали необходимые инструменты, избегали излишних вызовов и корректно обрабатывали ответы. Однако локальные модели проявили себя менее успешно и выявили ряд проблемных моментов.
Среди них была тенденция к преждевременному или необоснованному вызову инструментов, ошибки в выборе инструмента в текущем контексте диалога, некорректные или отсутствующие аргументы, а также игнорирование ответов инструментов, что вело к неполным или неинтуитивным ответам. Такие особенности ставили под сомнение масштабируемость ручных тестов: каждый сценарий требовал многократного повторения из-за неустойчивого поведения моделей, что отнимало много времени и снижало объективность результатов. Понимая необходимость более системного и эффективного подхода, команда разработала проект model-test – гибкий инструмент для масштабируемого тестирования моделей. Главной задачей здесь стало создание реалистичных сценариев использования инструментов, в которых модель не просто выполняет предопределенные шаги, а мотивированно принимает решения со свободным пространством для рассуждений. Такие тесты включают начальные условия, различные допустимые варианты последовательности вызовов инструментов, а также возможности для многоэтапного взаимодействия, симулирующего реальный диалог агента с пользователем и внешними сервисами.
Смысл проектирования таких тестов заключался в том, чтобы не требовать абсолютно точного совпадения ответов или аргументов, а оценивать адекватность, логичность и разумность поведения модели. Возможность учитывать несколько вариантов правильных ответов отражает реальную неоднозначность задач и оставляет пространство для адаптации моделей под разные сценарии. Для оценки были выбраны три ключевых метрики. Во-первых, способностм модели понять необходимость вызова инструмента тогда, когда это действительно нужно. Во-вторых, правильность выбора конкретного инструмента в контексте задачи, то есть точность вызова нужных функций.
И, наконец, корректность передаваемых аргументов, что особенно важно для сохранения целостности и полезности взаимодействия. Итоговой метрикой стал F1-скор – гармоническое среднее между точностью и полнотой. В ходе масштабного тестирования были проверены двадцать одна языковая модель на трех с половиной тысячах тестовых кейсов. В качестве аппаратной платформы использовался MacBook Pro M4 Max с 128 гигабайтами оперативной памяти. Тестирование осуществлялось посредством специально созданного скрипта, обеспечивающего автоматическое и последовательное прогонение сценариев.
Результаты выявили четкое лидерство OpenAI GPT-4 – модель с F1-скор 0.974 и средней задержкой чуть менее пяти секунд. Интересно, что среди локальных моделей выделились представители семейства Qwen. Модель Qwen 3 с 14 миллиардами параметров показала почти равные показатели с GPT-4, продемонстрировав F1 около 0.971, правда с более высокой средней задержкой, достигающей 142 секунд.
Версия Qwen 3 с 8 миллиардами параметров обеспечивает привлекательный баланс между скоростью и качеством, достигая F1-уровня 0.933 при сниженной вдвое задержке. Помимо них, представитель облачной платформы Claude 3 Haiku также показал высокие достижения, сочетая отличную скорость выполнения и F1 в пределах 0.933. Среди отстающих оказались модели Watt 8B и LLaMA-основывающаяся XLam 8B, у которых зафиксированы низкие показатели точности вызова и неверный выбор путей инструментов.
Это свидетельствует о том, что не все локальные решения подходят для задач строгого структурированного вызова инструментов, и выбор конкретной модели зависит от требований к качеству и нагрузке. Интересным открытием стал тот факт, что использование параметров квантизации (quantization) не оказало заметного влияния на качество вызова инструментов. Это говорит о возможности оптимизировать ресурсы без значительной потери точности и обоснованности работы моделей в данном контексте. Практические рекомендации, вытекающие из анализа, гласят: для максимальной точности вызова инструментов оптимальный выбор – это локальные версии Qwen 3 с 14 и 8 миллиардами параметров. Для тех, кому важна скорость отклика в режиме реального времени, отлично подойдет Qwen 2.
5, обладающая хорошей производительностью и приемлемым качеством. Если же проект предъявляет жесткие требования к ресурсам, то стоит рассмотреть легковесные модели, например, LLaMA 3 Groq 7B, которые хоть и уступают в точности, но поддерживают работоспособность в ограниченных условиях. Этот опыт подчеркивает значимость тщательно продуманного подхода к выбору локальных моделей для инструментального взаимодействия. На практике важно учитывать баланс между качеством принятия решений, временем отклика и ресурсами. Модель должна уметь не просто распознавать необходимость активации инструментов, но и грамотно подбирать инструменты, корректно формировать аргументы и лаконично обрабатывать ответы.
Роль инструментария, подобного model-test, заключается в том, чтобы помочь разработчикам быстро получать адекватные инсайты по разным моделям, не полагаясь на догадки или ограниченные тесты. Такая автоматизация сокращает время оценки с недель до нескольких дней, позволяя сосредоточиться на улучшении и адаптации моделей под конкретные задачи. В конечном итоге вызов инструментов становится основой эффективных агентных систем, а локальные LLM – перспективным решением для компаний, заинтересованных в автономии, контроле и защите данных. Применение проверенных моделей и систематических испытаний позволяет создавать более надежные и интеллектуальные интерфейсы, способные качественно выполнять сложные многошаговые задачи с минимальным участием человека. Благодаря усилиям исследователей из Docker и развитию среды Docker Model Runner, доступность и прозрачность таких локальных моделей значительно повысились.