- Node-guardian running on MacBook and updating metrics - NODE2 agents (Atlas, Greeter, Oracle, Builder Bot) assigned to node-2-macbook-m4max - Swapper models displaying correctly (8 models) - DAGI Router agents showing with correct status (3 active, 1 stale) - Router health check using node_cache for remote nodes
190 lines
5.8 KiB
Markdown
190 lines
5.8 KiB
Markdown
# ⚙️ Конфігурація моделі за замовчанням для Swapper Service
|
||
|
||
**Дата:** 2025-11-23
|
||
**Статус:** ✅ Реалізовано
|
||
|
||
---
|
||
|
||
## 📋 Поточна поведінка
|
||
|
||
### За замовчуванням (без `default_model`):
|
||
- ✅ Всі моделі мають статус `UNLOADED` при старті
|
||
- ✅ Моделі завантажуються тільки за запитом
|
||
- ✅ Економія ресурсів (VRAM, RAM)
|
||
- ⚠️ Перший запит може бути повільнішим (час на завантаження)
|
||
|
||
### З `default_model` в конфігурації:
|
||
- ✅ Вказана модель автоматично завантажується при старті
|
||
- ✅ Швидша відповідь на перший запит
|
||
- ⚠️ Використання VRAM навіть коли модель не використовується
|
||
|
||
---
|
||
|
||
## 🔧 Конфігурація
|
||
|
||
### Файл: `services/swapper-service/config/swapper_config.yaml`
|
||
|
||
```yaml
|
||
swapper:
|
||
mode: single-active
|
||
max_concurrent_models: 1
|
||
model_swap_timeout: 300
|
||
gpu_enabled: true
|
||
metal_acceleration: false
|
||
# Модель для автоматичного завантаження при старті (опціонально)
|
||
default_model: qwen3-8b # Модель активується автоматично при старті
|
||
```
|
||
|
||
### Варіанти налаштування:
|
||
|
||
#### 1. Без моделі за замовчанням (економія ресурсів)
|
||
```yaml
|
||
swapper:
|
||
# default_model не вказано - моделі завантажуються тільки за запитом
|
||
mode: single-active
|
||
```
|
||
|
||
#### 2. Основна модель за замовчанням (швидкість)
|
||
```yaml
|
||
swapper:
|
||
default_model: qwen3-8b # Основна модель (4.87 GB)
|
||
```
|
||
|
||
#### 3. Легка модель за замовчанням (баланс)
|
||
```yaml
|
||
swapper:
|
||
default_model: qwen2.5-3b-instruct # Легка модель (1.80 GB)
|
||
```
|
||
|
||
---
|
||
|
||
## 🎯 Рекомендації
|
||
|
||
### Для НОДА1 (Production):
|
||
**Рекомендовано:** `default_model: qwen3-8b`
|
||
|
||
**Причини:**
|
||
- Основна модель для більшості запитів
|
||
- Швидша відповідь на перший запит
|
||
- 4.87 GB VRAM - прийнятно для RTX 4000 SFF Ada (20GB)
|
||
|
||
### Для НОДА2 (Development):
|
||
**Рекомендовано:** Без `default_model` або `qwen2.5-3b-instruct`
|
||
|
||
**Причини:**
|
||
- Економія ресурсів на розробницькій машині
|
||
- Легка модель для швидкого тестування
|
||
|
||
---
|
||
|
||
## 📊 Порівняння
|
||
|
||
| Параметр | Без default_model | З default_model |
|
||
|----------|-------------------|-----------------|
|
||
| **VRAM при старті** | 0 GB | 4.87 GB (qwen3-8b) |
|
||
| **Час першого запиту** | ~10-30 сек (завантаження) | ~1-2 сек (вже завантажена) |
|
||
| **Економія ресурсів** | ✅ Максимальна | ⚠️ Використання навіть без запитів |
|
||
| **Швидкість відповіді** | ⚠️ Повільніше на першому запиті | ✅ Швидше |
|
||
|
||
---
|
||
|
||
## 🔄 Як працює
|
||
|
||
### При старті Swapper Service:
|
||
|
||
1. **Завантаження конфігурації:**
|
||
```python
|
||
config = yaml.safe_load(f)
|
||
swapper_config = config.get('swapper', {})
|
||
default_model = swapper_config.get('default_model')
|
||
```
|
||
|
||
2. **Якщо `default_model` вказано:**
|
||
```python
|
||
if default_model and default_model in self.models:
|
||
logger.info(f"🔄 Loading default model: {default_model}")
|
||
success = await self.load_model(default_model)
|
||
```
|
||
|
||
3. **Результат:**
|
||
- Модель завантажується в VRAM
|
||
- `active_model` = `default_model`
|
||
- Статус моделі = `LOADED`
|
||
- Готова до використання
|
||
|
||
---
|
||
|
||
## 🛠️ Зміна конфігурації
|
||
|
||
### Вимкнути модель за замовчанням:
|
||
|
||
```yaml
|
||
swapper:
|
||
mode: single-active
|
||
# default_model: qwen3-8b # Закоментовано - моделі завантажуються тільки за запитом
|
||
```
|
||
|
||
### Змінити модель за замовчанням:
|
||
|
||
```yaml
|
||
swapper:
|
||
default_model: qwen2.5-3b-instruct # Легка модель замість основної
|
||
```
|
||
|
||
### Після зміни конфігурації:
|
||
|
||
```bash
|
||
# На сервері
|
||
ssh root@144.76.224.179
|
||
cd /opt/microdao-daarion
|
||
docker-compose restart swapper-service
|
||
```
|
||
|
||
---
|
||
|
||
## 📝 Логи
|
||
|
||
### При старті з default_model:
|
||
|
||
```
|
||
🔧 Initializing Swapper Service...
|
||
✅ Loaded 5 models into Swapper
|
||
✅ Swapper Service initialized with 5 models
|
||
🔄 Loading default model: qwen3-8b
|
||
✅ Default model loaded: qwen3-8b
|
||
```
|
||
|
||
### При старті без default_model:
|
||
|
||
```
|
||
🔧 Initializing Swapper Service...
|
||
✅ Loaded 5 models into Swapper
|
||
✅ Swapper Service initialized with 5 models
|
||
# Модель не завантажується автоматично
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ Висновок
|
||
|
||
**Поточна реалізація:**
|
||
- ✅ Моделі завантажуються тільки за запитом (за замовчуванням)
|
||
- ✅ Можна вказати `default_model` для автоматичного завантаження
|
||
- ✅ Гнучка конфігурація під різні сценарії
|
||
|
||
**Рекомендація для НОДА1:**
|
||
- Додати `default_model: qwen3-8b` для швидшої відповіді
|
||
- Або залишити без `default_model` для економії ресурсів
|
||
|
||
---
|
||
|
||
**Оновлено:** 2025-11-23
|
||
**Статус:** ✅ Готово до використання
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|