Опубликовано
А что ещё есть и как это связано с Hermes Agent
Автор: Гусев Николай [портфолио]
Часть 4: А что ещё есть и как это связано с Hermes Agent
Продолжение цикла статей об устройстве LLM
В первых трёх частях я разобрал чат-модели (V4 Flash), модели рассуждений (R1) и инструментальные модели (Granite). Но это только верхушка.
Модели бывают очень разные. И у Hermes Agent (как и у его форка Autolycus) есть возможность выбирать, какую модель использовать для какой задачи - через конфигурацию. Не фантазия, а то, что уже лежит в конфиге.
Зоопарк моделей: краткая карта
1. Чат-модели общего назначения
Тренированы на "общение с человеком". RLHF, сикофанты, умеют всё понемногу. GPT-4, Claude, DeepSeek V4 Flash, Llama 3. На них держится 90% всех AI-продуктов.
2. Reasoning-модели
Тренированы через RL на цепочках рассуждений, а не на человеческих предпочтениях. DeepSeek R1, OpenAI o1/o3. Думают десятками тысяч токенов перед ответом. Дорого, но незаменимо для сложной математики, многошагового кода, юридического анализа.
3. Инструментальные модели
Тренированы на генерацию JSON-вызовов API, а не на диалог. IBM Granite, Gorilla (UC Berkeley), Qwen2.5, Hermes 2 Pro (Nous). Метрика успеха - не "понравился пользователю", а "правильно вызвал функцию".
4. Кодовые модели
Тренированы преимущественно на коде. Используют Fill-in-the-Middle (FIM) - модель учится заполнять пропуски, а не предсказывать следующий токен. CodeLlama (Meta), StarCoder2 (BigCode), DeepSeek Coder, Codestral (Mistral), Qwen2.5-Coder.
Отличие от обычных: лучше держат длинные зависимости в коде, реже ошибаются в синтаксисе, умеют "заполнять середину функции", а не только дописывать с начала.
5. Встраивающие модели (Embeddings)
Не генерируют текст. Превращают текст в вектор - число, которое кодирует смысл. Используются для поиска, RAG, классификации. text-embedding-3 (OpenAI), E5 (Microsoft), BGE (BAAI).
Архитектура: encoder-only (BERT-like), а не decoder-only (GPT-like). Не умеют разговаривать - только превращать текст в числа. Именно они отвечают на вопрос "похож ли этот документ на тот запрос".
6. Мультимодальные модели (VLM - Vision Language Models)
Зрение + текст. К LLM пристыковывают кодировщик изображений (CLIP, SigLIP) через проектор - адаптер, который превращает "картинку" в "токены". LLaVA, Qwen-VL, InternVL, DeepSeek-VL, Pixtral (Mistral).
Ключевой момент: зрение у них не "настоящее". Они не видят пиксели - они видят патчи изображения, превращённые в последовательность токенов. Это всё ещё текстовый трансформер, который получил на вход "описание картинки" в виде чисел.
7. Маленькие модели (SLM - Small Language Models)
До 7 миллиардов параметров. Ставятся на телефон, ноутбук, край сервера. Phi-3/Phi-4 (Microsoft), Gemma (Google), TinyLlama, SmolLM (HuggingFace).
Секрет Phi: мало параметров, но очень качественные данные - синтетические "учебникового качества". Microsoft доказала: качество данных может перевесить количество параметров.
8. Речевые модели
Whisper (OpenAI) - переводит речь в текст. Bark (Suno) - генерирует речь с эмоциями. SeamlessM4T (Meta) - переводит речь в речь с сохранением голоса.
Архитектурно - отдельная ветка: encoder-decoder, тренируются на спектрограммах, а не на тексте.
9. Оценочные модели (Reward Models)
Не видны пользователю. Используются внутри RLHF, чтобы оценивать ответы других моделей. Отдельный трансформер, тренированный на парах "хороший / плохой ответ". Не генерирует - только ставит оценку.
10. Модели безопасности
Llama Guard (Meta), ShieldGemma (Google) - фильтруют входящие и исходящие сообщения. Используются как прослойка перед LLM и после неё.
Как это связано с Hermes Agent
Теперь самое интересное: Hermes Agent (и Autolycus) не привязан к одной модели. В его конфиге (config.yaml) можно указать разные модели для разных задач.
Основной диалог
Модель для чата с пользователем. Сейчас - deepseek/deepseek-v4-flash через OpenRouter. Быстро, дёшево, приемлемое качество. Можно сменить на любую модель у любого провайдера одной строкой в конфиге.
Делегирование (delegate_task)
Когда Hermes запускает подзадачу - вызывает отдельную модель. Сейчас настроена та же V4 Flash, но можно поставить reasoning-модель (R1, o1) для сложных подзадач, а для простых - маленькую модель, чтобы не тратить бюджет.
Поиск по сессиям (session_search)
Использует llama3.1-8b через Cerebras. Это маленькая модель - 8 миллиардов параметров. Ей не нужно быть гениальной. Ей нужно быстро и дёшево просуммировать найденные сессии. Для этой задачи большая модель - оверкилл.
Остальные компоненты
Титризация, MCP-серверы, curator, skills_hub - каждый может использовать свою модель. Те, где модель не указана, наследуют основную. Те, где указана - используют свою.
Что это значит на практике
Hermes Agent использует три разные модели прямо сейчас:
-
Основной диалог: V4 Flash - универсальная, для разговора
-
Поиск по сессиям: Llama 3.1 8B - маленькая и быстрая, для суммаризации
-
Делегация: V4 Flash - для подзадач (но можно переключить на reasoning)
Можно добавить четвёртую: для кода - кодовую модель (CodeLlama, DeepSeek Coder). Для зрения - мультимодальную (Pixtral, LLaVA). Для перевода речи - Whisper.
Не нужно выбирать одну модель на всё. Нужно выбрать модель под задачу.
Почему это не сделано "из коробки"
У Hermes Agent (как и у Autolycus) базовая настройка - одна универсальная модель. Потому что:
-
Пользователь обычно приходит с одной подпиской (OpenRouter, OpenAI) и одним бюджетом
-
Разные провайдеры - разные API-ключи, разные способы оплаты
-
Мультимодальные модели часто несовместимы с API провайдера
Но архитектура позволяет. config.yaml содержит секцию model с подсекциями под каждый компонент. Если поставить нужные провайдеры и модели - агент будет сам выбирать, какую модель вызвать для какой задачи.
Это и есть следующий шаг: не "одна модель правт всем", а роутинг задач по специализированным моделям. Чат-модель для разговора. Reasoning-модель для анализа. Инструментальная - для API. Кодовая - для кода. Embeddings - для поиска. Каждая делает то, для чего её тренировали.
И это не футурология. Конфиг уже готов. Нужны только ключи и желание.