# ✅ Налаштування default_model для НОДА1 **Дата:** 2025-11-23 **Статус:** ✅ Конфігурація оновлена --- ## 🎯 Що зроблено ### 1. Оновлено конфігураційні файли **Файли:** - ✅ `services/swapper-service/config/swapper_config.yaml` - ✅ `services/swapper-service/config/swapper_config_node1.yaml` **Додано:** ```yaml swapper: default_model: qwen3-8b # Модель активується автоматично при старті ``` ### 2. Додано логіку автоматичного завантаження **Файл:** `services/swapper-service/app/main.py` **Логіка:** - При ініціалізації Swapper Service перевіряє `default_model` в конфігурації - Якщо вказано → автоматично завантажує модель - Логує процес завантаження --- ## 📋 Як застосувати на НОДА1 ### Варіант 1: Оновити конфігурацію на сервері (рекомендовано) ```bash # 1. Підключитися до НОДА1 ssh root@144.76.224.179 # 2. Знайти конфігураційний файл cd /opt/microdao-daarion find . -name "swapper_config.yaml" -o -name "swapper_config_node1.yaml" # 3. Оновити конфігурацію (додати default_model: qwen3-8b) # Відредагувати файл або скопіювати оновлений з локальної машини # 4. Перезапустити Swapper Service docker-compose restart swapper-service # 5. Перевірити логи docker-compose logs swapper-service --tail 30 ``` **Очікуваний результат в логах:** ``` 🔄 Loading default model: qwen3-8b ✅ Default model loaded: qwen3-8b ``` ### Варіант 2: Скопіювати оновлений конфіг з локальної машини ```bash # З локальної машини scp services/swapper-service/config/swapper_config.yaml root@144.76.224.179:/opt/microdao-daarion/config/swapper_config.yaml # На сервері ssh root@144.76.224.179 cd /opt/microdao-daarion docker-compose restart swapper-service docker-compose logs swapper-service --tail 30 ``` ### Варіант 3: Оновити через docker-compose (якщо конфіг монтується) ```bash # На сервері ssh root@144.76.224.179 cd /opt/microdao-daarion # Відредагувати конфігурацію nano config/swapper_config.yaml # Додати: default_model: qwen3-8b # Перезапустити docker-compose restart swapper-service ``` --- ## 🔍 Перевірка ### 1. Перевірити чи завантажилась модель ```bash # На сервері curl http://localhost:8890/status | jq ``` **Очікуваний результат:** ```json { "status": "healthy", "active_model": "qwen3-8b", "available_models": ["qwen3-8b", "qwen3-vl-8b", ...], "loaded_models": ["qwen3-8b"], "mode": "single-active", "total_models": 5 } ``` ### 2. Перевірити в кабінеті НОДА1 Відкрити: `http://localhost:8899/nodes/node-1-hetzner-gex44` **Очікуваний результат:** - Swapper Service показує активну модель: `qwen3-8b` - Статус моделі: `loaded` або `active` - VRAM використання: ~4.87 GB ### 3. Перевірити логи ```bash # На сервері docker-compose logs swapper-service | grep -i "default\|qwen3-8b" ``` **Очікуваний результат:** ``` 🔄 Loading default model: qwen3-8b ✅ Default model loaded: qwen3-8b ``` --- ## 📊 Результат ### До змін: - ❌ Всі моделі `UNLOADED` при старті - ❌ Перший запит повільний (~10-30 сек на завантаження) - ✅ Економія VRAM (0 GB при старті) ### Після змін: - ✅ `qwen3-8b` автоматично завантажується при старті - ✅ Швидка відповідь на перший запит (~1-2 сек) - ⚠️ Використання VRAM: ~4.87 GB (прийнятно для RTX 4000 SFF Ada 20GB) --- ## 🎯 Переваги 1. **Швидкість:** - Перший запит відразу працює - Немає затримки на завантаження моделі 2. **Зручність:** - Модель готова до використання одразу після старту - Не потрібно чекати на завантаження 3. **Оптимальний вибір:** - `qwen3-8b` - основна модель для більшості запитів - 4.87 GB - прийнятний розмір для 20GB VRAM --- ## ⚙️ Якщо потрібно вимкнути ### Вимкнути автоматичне завантаження: ```yaml swapper: # default_model: qwen3-8b # Закоментовано - моделі завантажуються тільки за запитом ``` ### Змінити на легку модель: ```yaml swapper: default_model: qwen2.5-3b-instruct # Легка модель (1.80 GB) ``` --- ## ✅ Статус **Конфігурація оновлена:** - ✅ `services/swapper-service/config/swapper_config.yaml` - ✅ `services/swapper-service/config/swapper_config_node1.yaml` - ✅ Логіка автоматичного завантаження додана **Наступний крок:** - Оновити конфігурацію на НОДА1 - Перезапустити Swapper Service - Перевірити логи та статус --- **Готово до застосування на НОДА1!** 🚀