- matrix-gateway: POST /internal/matrix/presence/online endpoint - usePresenceHeartbeat hook with activity tracking - Auto away after 5 min inactivity - Offline on page close/visibility change - Integrated in MatrixChatRoom component
6.9 KiB
6.9 KiB
vLLM vs Swapper Service — Аналіз для DAARION Stack
Дата: 2025-11-22
Статус: ✅ Рекомендація: Swapper Service
📊 Порівняльна таблиця
| Критерій | Swapper Service | vLLM |
|---|---|---|
| Призначення | Керування завантаженням/вивантаженням моделей | Високопродуктивний інференс-движок |
| Режим роботи | Single-active (одна модель) або Multi-active | Continuous serving (моделі завжди завантажені) |
| Оптимізація | Пам'ять (memory optimization) | Throughput (продуктивність) |
| Пам'ять | Економна (вивантажує неактивні моделі) | Висока (всі моделі завантажені) |
| Latency | Вища (потрібен час на завантаження) | Нижча (моделі вже завантажені) |
| Throughput | Середній | Високий |
| GPU підтримка | Через Ollama (Metal/CUDA) | Пряма GPU оптимізація |
| Складність | Простий, легкий | Складний, production-grade |
| Розмір | Легкий (~50MB) | Важкий (~500MB+) |
| Підтримка моделей | Будь-які Ollama моделі | Обмежений набір форматів |
| Apple Silicon | ✅ Повна підтримка (Metal) | ⚠️ Обмежена підтримка |
🎯 Рекомендація для DAARION Stack
✅ Swapper Service — найкращий вибір
Чому:
-
Node #2 (MacBook M4 Max):
- 64GB RAM — достатньо, але з 8 моделями (~118GB) потрібна оптимізація
- Battery-powered — економія енергії важлива
- Development node — не потрібен максимальний throughput
- Apple Silicon — Swapper працює через Ollama з Metal acceleration
-
Node #1 (Production Server):
- NVIDIA RTX 4000 (20GB VRAM) — обмежена VRAM
- 128GB RAM — достатньо, але з багатьма моделями потрібна оптимізація
- Production — потрібна гнучкість перемикання між моделями
- Вже використовується Ollama — Swapper інтегрується легко
-
Архітектура DAGI Stack:
- Router-based architecture — Swapper легко інтегрується
- Multi-agent system — різні агенти потребують різних моделей
- On-demand loading — відповідає use case
🔍 Детальний аналіз
Swapper Service — Переваги
✅ Пам'ять:
- Завантажує тільки потрібну модель
- Вивільняє пам'ять після використання
- Оптимально для обмежених ресурсів
✅ Гнучкість:
- Легко додавати нові моделі
- Підтримка будь-яких Ollama моделей
- Простий API для керування
✅ Інтеграція:
- Працює з існуючим Ollama
- Легко інтегрується з Router
- Простий моніторинг
✅ Apple Silicon:
- Повна підтримка через Ollama + Metal
- Оптимізовано для M4 Max
Swapper Service — Недоліки
❌ Latency:
- Потрібен час на завантаження моделі (2-5 секунд)
- Не підходить для real-time додатків з низькою latency
❌ Throughput:
- Нижчий throughput ніж vLLM
- Не оптимально для високонавантажених систем
vLLM — Переваги
✅ Throughput:
- Високий throughput (до 10x більше ніж Ollama)
- Оптимізовано для batch processing
✅ Latency:
- Низька latency (моделі завжди завантажені)
- Підходить для real-time додатків
✅ Production-grade:
- Високоякісний код
- Активна підтримка
- Використовується в production
vLLM — Недоліки
❌ Пам'ять:
- Всі моделі завантажені одночасно
- Потребує багато VRAM/RAM
- Не підходить для обмежених ресурсів
❌ Складність:
- Складніша інтеграція
- Потребує налаштування GPU
- Більше залежностей
❌ Apple Silicon:
- Обмежена підтримка
- Не оптимізовано для Metal
- Може не працювати на MacBook
❌ Моделі:
- Обмежений набір підтримуваних форматів
- Потрібна конвертація моделей
💡 Гібридний підхід (майбутнє)
Для максимальної ефективності можна використовувати обидва:
- Swapper Service — для Node #2 та development
- vLLM — для Node #1 production (якщо потрібен високий throughput)
Сценарій:
- Node #1: vLLM для популярних моделей (qwen3:8b) + Swapper для спеціалізованих
- Node #2: Swapper для всіх моделей (development, testing)
📋 Висновок
Для поточного стеку DAARION:
✅ Swapper Service — оптимальний вибір
Причини:
- ✅ Підходить для обмежених ресурсів (Node #2 MacBook)
- ✅ Економія пам'яті (важливо з 8 моделями)
- ✅ Легка інтеграція з існуючим Ollama
- ✅ Підтримка Apple Silicon (Metal)
- ✅ Гнучкість перемикання між моделями
- ✅ Простий моніторинг та керування
vLLM можна розглянути в майбутньому, якщо:
- Потрібен максимальний throughput
- Є виділені GPU ресурси
- Моделі завантажені довго
- Production serving на високому рівні
🚀 Рекомендації
- Зараз: Використовувати Swapper Service
- Майбутнє: Розглянути vLLM для Node #1, якщо потрібен високий throughput
- Гібрид: Swapper для development, vLLM для production (опціонально)
Last Updated: 2025-11-22
Decision: ✅ Swapper Service для поточного стеку
Future Consideration: vLLM для production high-throughput use cases