- 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
171 lines
6.9 KiB
Markdown
171 lines
6.9 KiB
Markdown
# 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 — найкращий вибір**
|
||
|
||
**Чому:**
|
||
|
||
1. **Node #2 (MacBook M4 Max):**
|
||
- 64GB RAM — достатньо, але з 8 моделями (~118GB) потрібна оптимізація
|
||
- Battery-powered — економія енергії важлива
|
||
- Development node — не потрібен максимальний throughput
|
||
- Apple Silicon — Swapper працює через Ollama з Metal acceleration
|
||
|
||
2. **Node #1 (Production Server):**
|
||
- NVIDIA RTX 4000 (20GB VRAM) — обмежена VRAM
|
||
- 128GB RAM — достатньо, але з багатьма моделями потрібна оптимізація
|
||
- Production — потрібна гнучкість перемикання між моделями
|
||
- Вже використовується Ollama — Swapper інтегрується легко
|
||
|
||
3. **Архітектура 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
|
||
|
||
❌ **Моделі:**
|
||
- Обмежений набір підтримуваних форматів
|
||
- Потрібна конвертація моделей
|
||
|
||
---
|
||
|
||
## 💡 Гібридний підхід (майбутнє)
|
||
|
||
Для максимальної ефективності можна використовувати обидва:
|
||
|
||
1. **Swapper Service** — для Node #2 та development
|
||
2. **vLLM** — для Node #1 production (якщо потрібен високий throughput)
|
||
|
||
**Сценарій:**
|
||
- Node #1: vLLM для популярних моделей (qwen3:8b) + Swapper для спеціалізованих
|
||
- Node #2: Swapper для всіх моделей (development, testing)
|
||
|
||
---
|
||
|
||
## 📋 Висновок
|
||
|
||
### Для поточного стеку DAARION:
|
||
|
||
**✅ Swapper Service — оптимальний вибір**
|
||
|
||
**Причини:**
|
||
1. ✅ Підходить для обмежених ресурсів (Node #2 MacBook)
|
||
2. ✅ Економія пам'яті (важливо з 8 моделями)
|
||
3. ✅ Легка інтеграція з існуючим Ollama
|
||
4. ✅ Підтримка Apple Silicon (Metal)
|
||
5. ✅ Гнучкість перемикання між моделями
|
||
6. ✅ Простий моніторинг та керування
|
||
|
||
**vLLM можна розглянути в майбутньому, якщо:**
|
||
- Потрібен максимальний throughput
|
||
- Є виділені GPU ресурси
|
||
- Моделі завантажені довго
|
||
- Production serving на високому рівні
|
||
|
||
---
|
||
|
||
## 🚀 Рекомендації
|
||
|
||
1. **Зараз:** Використовувати Swapper Service
|
||
2. **Майбутнє:** Розглянути vLLM для Node #1, якщо потрібен високий throughput
|
||
3. **Гібрид:** Swapper для development, vLLM для production (опціонально)
|
||
|
||
---
|
||
|
||
**Last Updated:** 2025-11-22
|
||
**Decision:** ✅ Swapper Service для поточного стеку
|
||
**Future Consideration:** vLLM для production high-throughput use cases
|
||
|