Вызов функций в открытых моделях (Hermes, Functionary)
Большинство базовых моделей с открытыми весами плохо вызывают инструменты — Hermes и Functionary специально дообучены для этого.
«Вызов функций в открытых моделях (Hermes, Functionary)» — бесплатный урок AI Agents на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.
Базовые модели не могут надёжно вызывать инструменты
Обычные базовые модели Llama, Mistral или Qwen можно попросить «вернуть JSON вроде {...}», но они часто создают некорректный вывод, пропускают аргументы или выдумывают инструменты.
Дообучение для вызова функций решает эту проблему.
Семейство Hermes
Модели Hermes от NousResearch — одни из лучших моделей, дообученных для вызова функций:
- Hermes 3 Llama 3.1 8B / 70B
- Высокая точность вызова инструментов
- Разрешительная лицензия в стиле Apache
Functionary
Модели Functionary от MeetKai специально обучены для вызова функций, совместимого с OpenAI:
- Functionary v3 на основе Llama 3.1
- Поддержка параллельных вызовов инструментов
- Доступны на HuggingFace и Together AI
Встроенное использование инструментов в Llama 3.1 и более новых версиях
Недавние варианты Llama 3.1, Llama 3.3 и Llama 4 Instruct имеют встроенные возможности вызова инструментов. Для многих задач этого достаточно; для сложных случаев используйте Hermes или Functionary.
Использование инструментов в Qwen 2.5
Qwen 2.5 обладает сильной встроенной поддержкой вызова инструментов и конкурирует с закрытыми моделями. Часто это вариант по умолчанию для многоязычных агентов с самостоятельным размещением.
Вызов инструментов в открытых моделях с такой поддержкой
Любой сервер, совместимый с OpenAI (Ollama, vLLM, Together AI), принимает один и тот же параметр tools:
from openai import OpenAI
client = OpenAI(base_url='http://localhost:11434/v1', api_key='ollama')
tools = [{'type': 'function', 'function': {
'name': 'get_weather',
'description': 'Current weather',
'parameters': {'type': 'object', 'properties': {'city': {'type': 'string'}}, 'required': ['city']}
}}]
response = client.chat.completions.create(
model='hermes3:8b',
messages=[{'role': 'user', 'content': 'Weather in Paris?'}],
tools=tools
)Тщательно проверяйте вывод
Вызовы инструментов в открытых моделях завершаются ошибкой чаще, чем в закрытых. Всегда:
- Разбирайте JSON в конструкции try/except
- Проверяйте с помощью Pydantic
- Добавляйте цикл исправления
Принудительный вызов инструментов с помощью Outlines
Для гарантированного структурированного вывода в открытых моделях используйте Outlines для декодирования с ограничениями грамматики:
import outlines
model = outlines.models.transformers('meta-llama/Llama-3.1-8B-Instruct')
generator = outlines.generate.json(model, ToolCall)
result = generator(prompt)Использование инструментов Hugging Face TGI
TGI поддерживает использование инструментов в стиле OpenAI для многих открытых моделей и служит прямой заменой.
Тестирование качества использования инструментов
Вызов инструментов оценивают с помощью следующих тестов:
- Berkeley Function Calling Leaderboard (BFCL) — эталонный рейтинг
- ToolBench — более широкий охват
- API-Bank — сценарии с несколькими инструментами
Разумный набор инструментов по умолчанию
Сочетание, на котором останавливается большинство команд:
- Llama 3.1 8B Instruct — для общих задач агентов
- Qwen 2.5 Coder — для агентов, работающих с кодом
- Hermes 3 — для агентов, активно использующих инструменты
- Outlines или Instructor — для гарантированно структурированного вывода
Запуск через размещённого провайдера
Без собственной инфраструктуры: Together AI, Fireworks и Anyscale размещают Hermes, Functionary, Llama и Qwen с совместимыми с OpenAI API. Это дешевле, чем OpenAI, при сопоставимом качестве.
Пример сравнения стоимости
Примерная стоимость миллиона токенов (середина 2025 года):
- GPT-4o: $2.50 за вход, $10 за выход
- Llama 3.1 70B (Together AI): $0.88 за вход, $0.88 за выход
- Llama 8B на собственной инфраструктуре: $0 — только ваше электричество
Зачем использовать дообученные модели для вызова функций
Зачем использовать Hermes или Functionary вместо базовой Llama для вызова инструментов?
Итоги
Недавние версии Llama и Qwen неплохо умеют использовать инструменты без дополнительной настройки. Для большей надёжности используйте Hermes или Functionary. Объединяйте их с Outlines или Instructor для гарантированно структурированного вывода.
Часто задаваемые вопросы
Урок «Вызов функций в открытых моделях (Hermes, Functionary)» бесплатный?
Да — полный текст урока «Вызов функций в открытых моделях (Hermes, Functionary)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.
Чему я научусь в уроке «Вызов функций в открытых моделях (Hermes, Functionary)»?
Большинство базовых моделей с открытыми весами плохо вызывают инструменты — Hermes и Functionary специально дообучены для этого. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Agents?
Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Вызов функций в открытых моделях (Hermes, Functionary)»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Agents?
Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Обзор Llama, Mistral и Qwen
- Запуск локальных моделей с Ollama и llama.cpp
- Вызов функций в открытых моделях (Hermes, Functionary)
- Компромиссы: задержка, стоимость, возможности