RAMBA AI Router

Материал из wiki.ramba-art.ru
Перейти к навигации Перейти к поиску


RAMBA AI Router[править]

RAMBA AI Router — локальная система интеллектуальной маршрутизации запросов между несколькими языковыми моделями проекта RAMBA AI.

Router анализирует входящий запрос пользователя, определяет его тип и автоматически выбирает наиболее подходящую локальную LLM.

Основная задача проекта — получить максимальное качество ответов при ограниченных вычислительных ресурсах, не используя одну большую модель для всех запросов.

На текущем этапе система использует три специализированных «мозга»:

Роль Модель Назначение
FAST gemma3:4b Простые вопросы, работа с текстом, короткие ответы
INFRA qwen3:8b Linux, Proxmox, сети, серверы, виртуализация и инфраструктура
SMART qwen3.5:9b Логика, математика, анализ и сложные задачи

Общая архитектура[править]

                    Пользователь
                         │
                         ▼
                ┌─────────────────┐
                │ RAMBA AI Router │
                └────────┬────────┘
                         │
            анализ и классификация
                         │
          ┌──────────────┼──────────────┐
          │              │              │
          ▼              ▼              ▼
       FAST           INFRA          SMART
    Gemma 3 4B       Qwen3 8B      Qwen3.5 9B
          │              │              │
          └──────────────┼──────────────┘
                         │
                         ▼
                       Ollama
                         │
                         ▼
                   NVIDIA GTX 1080

Router работает как локальный API-сервис на базе FastAPI.

В качестве backend для запуска языковых моделей используется Ollama.

Сервер[править]

RAMBA AI Router работает внутри виртуальной машины:

VMID: 501
Hostname: ramba-ai

Основной каталог проекта:

/home/artem/ramba-router/

Основные файлы стабильной версии:

router.py
router-v3-perfect.py
test-router-v3.py
test-router-v3-perfect.py

Контрольная резервная копия стабильной версии:

/home/artem/ramba-router-v3-perfect.tar.gz

Аппаратная платформа[править]

Для выполнения локальных моделей используется:

  • 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[править]

gemma3:4b

Используется для относительно простых запросов.

Примеры:

  • исправление текста;
  • переформулирование;
  • короткие объяснения;
  • простые вопросы;
  • задачи, не требующие глубокого анализа.

Преимущество модели — высокая скорость.

В тестах скорость генерации составляла примерно:

~59 tok/s

INFRA — Qwen3 8B[править]

qwen3:8b

Основная техническая модель RAMBA AI.

Используется для вопросов, связанных с:

  • Proxmox VE;
  • Linux;
  • VFIO;
  • IOMMU;
  • PCI Passthrough;
  • systemd;
  • Docker;
  • NFS;
  • ZFS;
  • сетями;
  • виртуальными машинами;
  • серверным администрированием.

Типичная скорость:

~35 tok/s

SMART — Qwen3.5 9B[править]

qwen3.5:9b

Наиболее интеллектуально сильная из трёх основных моделей.

Используется для:

  • математических задач;
  • логики;
  • анализа;
  • сложных технических вопросов;
  • многоэтапных рассуждений;
  • задач с процентами и зависимостями.

Типичная скорость:

~29-30 tok/s

Router v1[править]

Первая версия RAMBA AI Router была proof-of-concept.

Маршрутизация выполнялась преимущественно по ключевым словам.

Упрощённо:

Proxmox / VFIO / Linux
        │
        ▼
     Qwen3 8B

сложная задача
        │
        ▼
   Qwen3.5 9B

остальные запросы
        │
        ▼
    Gemma 3 4B

Версия доказала работоспособность основной концепции:

одна точка входа → несколько специализированных локальных моделей.

Router v2[править]

Во второй версии маршрутизатор стал значительно сложнее.

Были добавлены:

  • score-based routing;
  • определение загруженной Ollama-модели;
  • session affinity;
  • hysteresis;
  • статистика;
  • журналирование;
  • контроль переключения моделей.

Router начал использовать Ollama API:

GET /api/ps

для определения модели, которая в данный момент находится в памяти.

В API Router появились служебные endpoint'ы:

/chat
/health
/stats

Проблема Router v2[править]

Во время тестирования была обнаружена важная ошибка классификации.

Запрос:

Есть три сервера A, B и C.
A быстрее B на 20%.
B быстрее C на 25%.
Если C выполняет задачу за 100 секунд,
сколько времени потребуется A?

является математической задачей.

Однако Router воспринимал слово:

сервер

как инфраструктурный признак и отправлял запрос в:

INFRA → Qwen3 8B

Это показало недостаток простой маршрутизации по ключевым словам.

Router v3[править]

В Router v3 алгоритм классификации был переработан.

Основная идея — разные слова должны иметь разный вес.

Слабые инфраструктурные признаки[править]

Например:

сервер
Linux
Ubuntu
VM
NVIDIA
сеть

Сами по себе такие слова больше не должны гарантировать выбор INFRA.

Сильные инфраструктурные признаки[править]

Больший вес получили специфические технические термины:

Proxmox
vfio-pci
IOMMU
lspci
hostpci
systemctl
journalctl
initramfs
ZFS
NFS

SMART-признаки[править]

Для определения аналитических задач используются признаки:

сколько
проценты
быстрее
медленнее
рассчитай
объясни расчёт
вероятность
логическая задача

Таким образом Router вычисляет несколько независимых оценок:

FAST
INFRA
SMART

и выбирает роль с максимальным результатом.

Пример работы Router v3[править]

Для математической задачи с тремя серверами Router получил:

FAST  = 1
INFRA = 1
SMART = 16

Результат:

role: smart
model: qwen3.5:9b

Модель правильно решила задачу:

C = 100 секунд

B быстрее C на 25%:
100 / 1.25 = 80 секунд

A быстрее B на 20%:
80 / 1.2 = 66.67 секунды

Ответ:

A ≈ 66.67 секунды

Пример инфраструктурного запроса[править]

Запрос:

В Proxmox lspci показывает nouveau вместо vfio-pci.
Что проверить?

Router определил:

FAST  = 1
INFRA = 23
SMART = 0

и выбрал:

role: infra
model: qwen3:8b

То есть специализированный инфраструктурный запрос был направлен технической модели.

Пример FAST-запроса[править]

Запрос:

Исправь текст:
я одел куртку и вышел на улицу

Router получил:

FAST  = 6
INFRA = 0
SMART = 0

и правильно выбрал:

role: fast
model: gemma3:4b

Однако сама модель ответила:

Я одел куртку и вышел на улицу.

вместо:

Я надел куртку и вышел на улицу.

Это продемонстрировало важное различие:

правильная маршрутизация не гарантирует правильность ответа модели.

В дальнейшем для решения подобных проблем планируется отдельный слой проверки ответов — Verifier.

Переключение моделей[править]

Router получает информацию о моделях, загруженных Ollama.

Пример ответа /health:

{
  "router": "ok",
  "version": "3",
  "ollama_loaded_models": [
    "gemma3:4b"
  ],
  "sessions": 3
}

При запросе другой категории Router может переключить модель.

Например:

Gemma 3 4B
     │
     ▼
Qwen3 8B
     │
     ▼
Qwen3.5 9B

В API-ответе отображаются диагностические данные:

model
role
loaded_before
switch
scores
route_reason
elapsed
eval_count
eval_duration
load_duration
tok_s

Это позволяет анализировать не только результат маршрутизации, но и производительность системы.

Стоимость переключения[править]

Загрузка другой модели в VRAM занимает заметное время.

На используемой системе переключение обычно добавляет несколько секунд ожидания.

Поэтому Router старается избегать ненужного переключения модели.

Для этого используются механизмы:

  • session affinity;
  • hysteresis;
  • определение уже загруженной модели.

В перспективе Router должен учитывать не только качество предполагаемого ответа, но и стоимость переключения модели.

Контрольный тест Router v3[править]

Для проверки Router v3 был создан отдельный тест:

test-router-v3.py

Он содержит 30 запросов:

Категория Количество
FAST 10
INFRA 10
SMART 10
Всего 30

Для каждого запроса заранее задаётся ожидаемая категория.

Тест сравнивает:

EXPECTED

с:

ACTUAL

Итог тестирования[править]

22 августа 2026 года Router v3 успешно прошёл полный контрольный тест.

RESULT: 30/30 = 100.0%

PERFECT ROUTING — 30/30
Категория Результат Модель
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.

Фиксация стабильной версии[править]

После успешного теста были сохранены контрольные копии:

router-v3-perfect.py
test-router-v3-perfect.py

и создан архив:

/home/artem/ramba-router-v3-perfect.tar.gz

Размер архива на момент создания:

6.4 KB

Router v3 после этого считается стабильной контрольной точкой проекта.

Ограничения Router v3[править]

Несмотря на успешный результат 30/30, версия v3 имеет ряд архитектурных ограничений.

Главное из них — недостаточное понимание контекста разговора.

Например:

Пользователь:
В Proxmox vfio-pci не захватывает GTX 1080.

Router:
INFRA

Следующее сообщение:

А как это проверить?

само по себе почти не содержит признаков INFRA.

Человек понимает контекст предыдущего сообщения, однако Router v3 в основном анализирует текущий запрос.

Именно эта проблема является основной целью следующей версии.

Router v4[править]

Следующий этап разработки — RAMBA AI Router v4.

Главное изменение:

контекстная маршрутизация.

Router должен учитывать не только последнее сообщение, но и историю текущего диалога.

Планируемая структура сессии:

session
 │
 ├── session_id
 ├── current_role
 ├── previous_model
 └── messages
       │
       ├── user
       ├── assistant
       ├── user
       ├── assistant
       └── ...

Например:

Пользователь:
В Proxmox vfio-pci не захватывает GTX 1080.

→ INFRA / Qwen3 8B

Пользователь:
А как проверить?

→ анализ контекста
→ сохранение роли INFRA
→ Qwen3 8B

План Router v4[править]

Первый этап:

  1. хранение истории диалога;
  2. передача контекста модели;
  3. ограничение размера истории;
  4. sticky routing;
  5. корректная обработка коротких follow-up сообщений.

Второй этап:

  1. отдельный system prompt для FAST;
  2. отдельный system prompt для INFRA;
  3. отдельный system prompt для SMART.

Третий этап:

  1. оценка уверенности Router;
  2. автоматическая эскалация FAST → SMART;
  3. обработка неоднозначных запросов;
  4. дополнительные контрольные тесты.

Дальнейшее развитие[править]

Перспективная архитектура RAMBA AI:

                     Пользователь
                          │
                          ▼
                  RAMBA AI Router
                          │
            ┌─────────────┼─────────────┐
            ▼             ▼             ▼
          FAST          INFRA         SMART
            │             │             │
            └─────────────┼─────────────┘
                          │
                          ▼
                       Verifier
                          │
                          ▼
                         RAG
                          │
                          ▼
                  Финальный ответ

Планируется развитие следующих компонентов:

  • Context Memory — память текущего диалога;
  • Verifier — проверка качества и корректности ответа;
  • Escalation — передача сложного запроса более сильной модели;
  • RAG — подключение собственной базы знаний RAMBA;
  • Infrastructure Knowledge — информация о серверах и сервисах RAMBA;
  • Tool Calling — выполнение разрешённых действий через инструменты;
  • Metrics — статистика качества, скорости и маршрутизации.

Статус проекта[править]

Компонент Статус
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 подтвердил работоспособность архитектуры динамического выбора локальных языковых моделей.

Контрольный тест показал:

30 / 30
100%
PERFECT ROUTING

Вместо запуска одной универсальной модели RAMBA AI использует несколько специализированных моделей и выбирает подходящую в зависимости от характера задачи.

Следующий этап проекта — Router v4, который добавит память диалога и контекстную маршрутизацию.