Открыть главное меню
Главная
Случайная
Войти
Настройки
О wiki.ramba-art.ru
Отказ от ответственности
wiki.ramba-art.ru
Найти
Редактирование:
RAMBA AI Router
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
{{DISPLAYTITLE:RAMBA AI Router}} = RAMBA AI Router = '''RAMBA AI Router''' — локальная система интеллектуальной маршрутизации запросов между несколькими языковыми моделями проекта [[RAMBA AI]]. Router анализирует входящий запрос пользователя, определяет его тип и автоматически выбирает наиболее подходящую локальную LLM. Основная задача проекта — получить максимальное качество ответов при ограниченных вычислительных ресурсах, не используя одну большую модель для всех запросов. На текущем этапе система использует три специализированных «мозга»: {| class="wikitable" ! Роль ! Модель ! Назначение |- | '''FAST''' | <code>gemma3:4b</code> | Простые вопросы, работа с текстом, короткие ответы |- | '''INFRA''' | <code>qwen3:8b</code> | Linux, Proxmox, сети, серверы, виртуализация и инфраструктура |- | '''SMART''' | <code>qwen3.5:9b</code> | Логика, математика, анализ и сложные задачи |} == Общая архитектура == <pre> Пользователь │ ▼ ┌─────────────────┐ │ RAMBA AI Router │ └────────┬────────┘ │ анализ и классификация │ ┌──────────────┼──────────────┐ │ │ │ ▼ ▼ ▼ FAST INFRA SMART Gemma 3 4B Qwen3 8B Qwen3.5 9B │ │ │ └──────────────┼──────────────┘ │ ▼ Ollama │ ▼ NVIDIA GTX 1080 </pre> Router работает как локальный API-сервис на базе '''FastAPI'''. В качестве backend для запуска языковых моделей используется '''Ollama'''. == Сервер == RAMBA AI Router работает внутри виртуальной машины: <pre> VMID: 501 Hostname: ramba-ai </pre> Основной каталог проекта: <pre> /home/artem/ramba-router/ </pre> Основные файлы стабильной версии: <pre> router.py router-v3-perfect.py test-router-v3.py test-router-v3-perfect.py </pre> Контрольная резервная копия стабильной версии: <pre> /home/artem/ramba-router-v3-perfect.tar.gz </pre> == Аппаратная платформа == Для выполнения локальных моделей используется: * '''GPU:''' NVIDIA GeForce GTX 1080 * '''VRAM:''' 8 GB * '''Inference backend:''' Ollama * '''API Router:''' FastAPI / Uvicorn Из-за ограничения в 8 GB VRAM Router не пытается постоянно держать все основные модели в памяти видеокарты. Вместо этого необходимая модель загружается по требованию. == Выбор моделей == До разработки Router было проведено тестирование нескольких локальных моделей. В ходе тестов оценивались: * русский язык; * логическое мышление; * задачи по Proxmox/Linux; * программирование; * понимание AI/VRAM; * скорость генерации; * стабильность ответов. В результате для Router были выбраны три основные модели. === FAST — Gemma 3 4B === <pre> gemma3:4b </pre> Используется для относительно простых запросов. Примеры: * исправление текста; * переформулирование; * короткие объяснения; * простые вопросы; * задачи, не требующие глубокого анализа. Преимущество модели — высокая скорость. В тестах скорость генерации составляла примерно: <pre> ~59 tok/s </pre> === INFRA — Qwen3 8B === <pre> qwen3:8b </pre> Основная техническая модель RAMBA AI. Используется для вопросов, связанных с: * Proxmox VE; * Linux; * VFIO; * IOMMU; * PCI Passthrough; * systemd; * Docker; * NFS; * ZFS; * сетями; * виртуальными машинами; * серверным администрированием. Типичная скорость: <pre> ~35 tok/s </pre> === SMART — Qwen3.5 9B === <pre> qwen3.5:9b </pre> Наиболее интеллектуально сильная из трёх основных моделей. Используется для: * математических задач; * логики; * анализа; * сложных технических вопросов; * многоэтапных рассуждений; * задач с процентами и зависимостями. Типичная скорость: <pre> ~29-30 tok/s </pre> == Router v1 == Первая версия RAMBA AI Router была proof-of-concept. Маршрутизация выполнялась преимущественно по ключевым словам. Упрощённо: <pre> Proxmox / VFIO / Linux │ ▼ Qwen3 8B сложная задача │ ▼ Qwen3.5 9B остальные запросы │ ▼ Gemma 3 4B </pre> Версия доказала работоспособность основной концепции: '''одна точка входа → несколько специализированных локальных моделей.''' == Router v2 == Во второй версии маршрутизатор стал значительно сложнее. Были добавлены: * score-based routing; * определение загруженной Ollama-модели; * session affinity; * hysteresis; * статистика; * журналирование; * контроль переключения моделей. Router начал использовать Ollama API: <pre> GET /api/ps </pre> для определения модели, которая в данный момент находится в памяти. В API Router появились служебные endpoint'ы: <pre> /chat /health /stats </pre> === Проблема Router v2 === Во время тестирования была обнаружена важная ошибка классификации. Запрос: <pre> Есть три сервера A, B и C. A быстрее B на 20%. B быстрее C на 25%. Если C выполняет задачу за 100 секунд, сколько времени потребуется A? </pre> является математической задачей. Однако Router воспринимал слово: <pre> сервер </pre> как инфраструктурный признак и отправлял запрос в: <pre> INFRA → Qwen3 8B </pre> Это показало недостаток простой маршрутизации по ключевым словам. == Router v3 == В Router v3 алгоритм классификации был переработан. Основная идея — разные слова должны иметь '''разный вес'''. === Слабые инфраструктурные признаки === Например: <pre> сервер Linux Ubuntu VM NVIDIA сеть </pre> Сами по себе такие слова больше не должны гарантировать выбор INFRA. === Сильные инфраструктурные признаки === Больший вес получили специфические технические термины: <pre> Proxmox vfio-pci IOMMU lspci hostpci systemctl journalctl initramfs ZFS NFS </pre> === SMART-признаки === Для определения аналитических задач используются признаки: <pre> сколько проценты быстрее медленнее рассчитай объясни расчёт вероятность логическая задача </pre> Таким образом Router вычисляет несколько независимых оценок: <pre> FAST INFRA SMART </pre> и выбирает роль с максимальным результатом. == Пример работы Router v3 == Для математической задачи с тремя серверами Router получил: <pre> FAST = 1 INFRA = 1 SMART = 16 </pre> Результат: <pre> role: smart model: qwen3.5:9b </pre> Модель правильно решила задачу: <pre> C = 100 секунд B быстрее C на 25%: 100 / 1.25 = 80 секунд A быстрее B на 20%: 80 / 1.2 = 66.67 секунды </pre> Ответ: <pre> A ≈ 66.67 секунды </pre> == Пример инфраструктурного запроса == Запрос: <pre> В Proxmox lspci показывает nouveau вместо vfio-pci. Что проверить? </pre> Router определил: <pre> FAST = 1 INFRA = 23 SMART = 0 </pre> и выбрал: <pre> role: infra model: qwen3:8b </pre> То есть специализированный инфраструктурный запрос был направлен технической модели. == Пример FAST-запроса == Запрос: <pre> Исправь текст: я одел куртку и вышел на улицу </pre> Router получил: <pre> FAST = 6 INFRA = 0 SMART = 0 </pre> и правильно выбрал: <pre> role: fast model: gemma3:4b </pre> Однако сама модель ответила: <pre> Я одел куртку и вышел на улицу. </pre> вместо: <pre> Я надел куртку и вышел на улицу. </pre> Это продемонстрировало важное различие: '''правильная маршрутизация не гарантирует правильность ответа модели.''' В дальнейшем для решения подобных проблем планируется отдельный слой проверки ответов — '''Verifier'''. == Переключение моделей == Router получает информацию о моделях, загруженных Ollama. Пример ответа <code>/health</code>: <pre> { "router": "ok", "version": "3", "ollama_loaded_models": [ "gemma3:4b" ], "sessions": 3 } </pre> При запросе другой категории Router может переключить модель. Например: <pre> Gemma 3 4B │ ▼ Qwen3 8B │ ▼ Qwen3.5 9B </pre> В API-ответе отображаются диагностические данные: <pre> model role loaded_before switch scores route_reason elapsed eval_count eval_duration load_duration tok_s </pre> Это позволяет анализировать не только результат маршрутизации, но и производительность системы. == Стоимость переключения == Загрузка другой модели в VRAM занимает заметное время. На используемой системе переключение обычно добавляет несколько секунд ожидания. Поэтому Router старается избегать ненужного переключения модели. Для этого используются механизмы: * session affinity; * hysteresis; * определение уже загруженной модели. В перспективе Router должен учитывать не только качество предполагаемого ответа, но и '''стоимость переключения модели'''. == Контрольный тест Router v3 == Для проверки Router v3 был создан отдельный тест: <pre> test-router-v3.py </pre> Он содержит '''30 запросов''': {| class="wikitable" ! Категория ! Количество |- | FAST | 10 |- | INFRA | 10 |- | SMART | 10 |- ! Всего ! 30 |} Для каждого запроса заранее задаётся ожидаемая категория. Тест сравнивает: <pre> EXPECTED </pre> с: <pre> ACTUAL </pre> === Итог тестирования === 22 августа 2026 года Router v3 успешно прошёл полный контрольный тест. <pre> RESULT: 30/30 = 100.0% PERFECT ROUTING — 30/30 </pre> {| class="wikitable" ! Категория ! Результат ! Модель |- | FAST | 10 / 10 | Gemma 3 4B |- | INFRA | 10 / 10 | Qwen3 8B |- | SMART | 10 / 10 | Qwen3.5 9B |- ! Итого ! '''30 / 30 (100%)''' ! |} Таким образом Router v3 стал первой зафиксированной стабильной версией RAMBA AI Router. == Фиксация стабильной версии == После успешного теста были сохранены контрольные копии: <pre> router-v3-perfect.py test-router-v3-perfect.py </pre> и создан архив: <pre> /home/artem/ramba-router-v3-perfect.tar.gz </pre> Размер архива на момент создания: <pre> 6.4 KB </pre> Router v3 после этого считается '''стабильной контрольной точкой проекта'''. == Ограничения Router v3 == Несмотря на успешный результат 30/30, версия v3 имеет ряд архитектурных ограничений. Главное из них — недостаточное понимание контекста разговора. Например: <pre> Пользователь: В Proxmox vfio-pci не захватывает GTX 1080. Router: INFRA </pre> Следующее сообщение: <pre> А как это проверить? </pre> само по себе почти не содержит признаков INFRA. Человек понимает контекст предыдущего сообщения, однако Router v3 в основном анализирует текущий запрос. Именно эта проблема является основной целью следующей версии. = Router v4 = Следующий этап разработки — '''RAMBA AI Router v4'''. Главное изменение: '''контекстная маршрутизация.''' Router должен учитывать не только последнее сообщение, но и историю текущего диалога. Планируемая структура сессии: <pre> session │ ├── session_id ├── current_role ├── previous_model └── messages │ ├── user ├── assistant ├── user ├── assistant └── ... </pre> Например: <pre> Пользователь: В Proxmox vfio-pci не захватывает GTX 1080. → INFRA / Qwen3 8B Пользователь: А как проверить? → анализ контекста → сохранение роли INFRA → Qwen3 8B </pre> == План Router v4 == Первый этап: # хранение истории диалога; # передача контекста модели; # ограничение размера истории; # sticky routing; # корректная обработка коротких follow-up сообщений. Второй этап: # отдельный system prompt для FAST; # отдельный system prompt для INFRA; # отдельный system prompt для SMART. Третий этап: # оценка уверенности Router; # автоматическая эскалация FAST → SMART; # обработка неоднозначных запросов; # дополнительные контрольные тесты. == Дальнейшее развитие == Перспективная архитектура RAMBA AI: <pre> Пользователь │ ▼ RAMBA AI Router │ ┌─────────────┼─────────────┐ ▼ ▼ ▼ FAST INFRA SMART │ │ │ └─────────────┼─────────────┘ │ ▼ Verifier │ ▼ RAG │ ▼ Финальный ответ </pre> Планируется развитие следующих компонентов: * '''Context Memory''' — память текущего диалога; * '''Verifier''' — проверка качества и корректности ответа; * '''Escalation''' — передача сложного запроса более сильной модели; * '''RAG''' — подключение собственной базы знаний RAMBA; * '''Infrastructure Knowledge''' — информация о серверах и сервисах RAMBA; * '''Tool Calling''' — выполнение разрешённых действий через инструменты; * '''Metrics''' — статистика качества, скорости и маршрутизации. == Статус проекта == {| class="wikitable" ! Компонент ! Статус |- | Ollama | '''Готово''' |- | GPU inference | '''Готово''' |- | FAST model | '''Готово''' |- | INFRA model | '''Готово''' |- | SMART model | '''Готово''' |- | Router API | '''Готово''' |- | Score-based routing | '''Готово''' |- | Ollama model detection | '''Готово''' |- | Session affinity | '''Готово''' |- | Router v3 test | '''30/30''' |- | Context-aware routing | В разработке (v4) |- | Verifier | Планируется |- | RAG | Планируется |} == Итог == '''RAMBA AI Router v3''' подтвердил работоспособность архитектуры динамического выбора локальных языковых моделей. Контрольный тест показал: <pre> 30 / 30 100% PERFECT ROUTING </pre> Вместо запуска одной универсальной модели RAMBA AI использует несколько специализированных моделей и выбирает подходящую в зависимости от характера задачи. Следующий этап проекта — '''Router v4''', который добавит память диалога и контекстную маршрутизацию. [[Категория:RAMBA]] [[Категория:RAMBA AI]] [[Категория:Искусственный интеллект]] [[Категория:Серверы]]
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «wiki.ramba-art.ru» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
wiki.ramba-art.ru:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
Отменить
Справка по редактированию
(в новом окне)
MediaWiki Appliance
- Powered by
TurnKey Linux