# ✅ Налаштування default_model для НОДА2 **Дата:** 2025-11-23 **Статус:** ✅ Конфігурація створена --- ## 🎯 Що зроблено ### 1. Створено конфігураційний файл для НОДА2 **Файл:** `services/swapper-service/config/swapper_config_node2.yaml` **Особливості для НОДА2 (MacBook M4 Max):** - ✅ `metal_acceleration: true` - Apple Silicon GPU acceleration - ✅ `default_model: gpt-oss:latest` - автоматичне завантаження при старті - ✅ `ollama.url: http://localhost:11434` - Native Ollama (не через Docker) - ✅ 8 моделей налаштовано (відповідно до встановлених на НОДА2) **Моделі в конфігурації:** 1. `gpt-oss:latest` (13 GB, 20.9B) - **default_model** - основна модель 2. `phi3:latest` (2.2 GB, 3.8B) - легка модель 3. `qwen3-vl:latest` (6.1 GB, 8.8B) - vision модель 4. `starcoder2:latest` (1.7 GB, 3B) - code specialist 5. `qwen2.5-coder:latest` (4.7 GB, 7.6B) - advanced code 6. `gemma2:latest` (5.4 GB, 9.2B) - reasoning 7. `mistral-nemo:latest` (7.1 GB, 12.2B) - advanced reasoning 8. `deepseek-r1:latest` (5.2 GB, 8.2B) - strategic reasoning ### 2. Логіка автоматичного завантаження **Файл:** `services/swapper-service/app/main.py` - При ініціалізації Swapper Service перевіряє `default_model` в конфігурації - Якщо вказано → автоматично завантажує модель - Логує процес завантаження --- ## 📋 Як застосувати на НОДА2 ### Варіант 1: Використати локальну конфігурацію (рекомендовано) ```bash # 1. Перевірити чи працює Swapper Service cd /Users/apple/github-projects/microdao-daarion docker-compose ps swapper-service # 2. Оновити конфігурацію (якщо використовується volume mount) # Або скопіювати конфігурацію в правильну директорію cp services/swapper-service/config/swapper_config_node2.yaml \ services/swapper-service/config/swapper_config.yaml # 3. Перезапустити Swapper Service docker-compose restart swapper-service # 4. Перевірити логи docker-compose logs swapper-service --tail 30 ``` ### Варіант 2: Запуск локально (без Docker) ```bash # 1. Перейти в директорію Swapper Service cd /Users/apple/github-projects/microdao-daarion/services/swapper-service # 2. Встановити змінну оточення для конфігурації export SWAPPER_CONFIG_PATH=./config/swapper_config_node2.yaml export OLLAMA_BASE_URL=http://localhost:11434 export SWAPPER_MODE=single-active # 3. Запустити сервіс python3 -m uvicorn app.main:app --host 0.0.0.0 --port 8890 # 4. Перевірити логи (шукати "default model") ``` ### Варіант 3: Оновити через docker-compose (якщо конфіг монтується) ```bash # 1. Перевірити docker-compose.yml # Переконатися, що volume монтує правильну конфігурацію: # volumes: # - ./services/swapper-service/config:/app/config:ro # 2. Скопіювати конфігурацію НОДА2 cp services/swapper-service/config/swapper_config_node2.yaml \ services/swapper-service/config/swapper_config.yaml # 3. Перезапустити docker-compose restart swapper-service # 4. Перевірити логи docker-compose logs swapper-service --tail 30 | grep -i "default\|gpt-oss" ``` --- ## 🔍 Перевірка ### 1. Перевірити чи завантажилась модель ```bash # На НОДА2 curl http://localhost:8890/status | jq ``` **Очікуваний результат:** ```json { "status": "healthy", "active_model": "gpt-oss:latest", "available_models": ["gpt-oss:latest", "phi3:latest", ...], "loaded_models": ["gpt-oss:latest"], "mode": "single-active", "total_models": 8 } ``` ### 2. Перевірити в кабінеті НОДА2 Відкрити: `http://localhost:8899/nodes/node-2-macbook-m4max` **Очікуваний результат:** - Swapper Service показує активну модель: `gpt-oss:latest` - Статус моделі: `loaded` або `active` - GPU використання: Apple Silicon Metal acceleration ### 3. Перевірити логи ```bash # Якщо через Docker docker-compose logs swapper-service | grep -i "default\|gpt-oss" # Якщо локально # Логи будуть в консолі, шукати: # 🔄 Loading default model: gpt-oss:latest # ✅ Default model loaded: gpt-oss:latest ``` --- ## 📊 Результат ### До змін: - ❌ Всі моделі `UNLOADED` при старті - ❌ Перший запит повільний (~10-30 сек на завантаження) - ✅ Економія пам'яті (0 GB при старті) ### Після змін: - ✅ `gpt-oss:latest` автоматично завантажується при старті - ✅ Швидка відповідь на перший запит (~1-2 сек) - ⚠️ Використання пам'яті: ~13 GB (прийнятно для 64GB RAM) --- ## 🎯 Переваги 1. **Швидкість:** - Перший запит відразу працює - Немає затримки на завантаження моделі 2. **Зручність:** - Модель готова до використання одразу після старту - Не потрібно чекати на завантаження 3. **Оптимальний вибір:** - `gpt-oss:latest` - швидка модель для більшості запитів - 13 GB - прийнятний розмір для 64GB RAM - 20.9B параметрів - хороша якість відповідей --- ## ⚙️ Альтернативні варіанти default_model ### Легка модель (менше пам'яті): ```yaml swapper: default_model: phi3:latest # 2.2 GB, 3.8B params - швидка легка модель ``` ### Vision модель (для обробки зображень): ```yaml swapper: default_model: qwen3-vl:latest # 6.1 GB, 8.8B params - vision capabilities ``` ### Code модель (для розробки): ```yaml swapper: default_model: starcoder2:latest # 1.7 GB, 3B params - code specialist ``` ### Вимкнути автоматичне завантаження: ```yaml swapper: # default_model: gpt-oss:latest # Закоментовано - моделі завантажуються тільки за запитом ``` --- ## 🔧 Особливості НОДА2 ### Apple Silicon (M4 Max): - ✅ `metal_acceleration: true` - використання GPU прискорення - ✅ 40-core GPU - потужна обробка - ✅ 64GB RAM - достатньо для великих моделей ### Ollama на НОДА2: - ✅ Native Ollama: `http://localhost:11434` (через Pieces OS або brew) - ✅ Docker Ollama: `http://localhost:11435` (якщо запущений) - ⚠️ Swapper Service використовує Native Ollama за замовчанням ### Моделі на НОДА2: - ✅ 8 моделей встановлено (~118 GB загалом) - ✅ Різноманітність: LLM, Code, Vision, Reasoning - ✅ Великі моделі доступні (до 42 GB) --- ## ✅ Статус **Конфігурація створена:** - ✅ `services/swapper-service/config/swapper_config_node2.yaml` - ✅ Логіка автоматичного завантаження вже додана (в `main.py`) - ✅ Налаштовано для Apple Silicon (Metal acceleration) **Наступний крок:** - Застосувати конфігурацію на НОДА2 - Перезапустити Swapper Service - Перевірити логи та статус --- ## 📝 Примітки 1. **Конфігурація НОДА2 відрізняється від НОДА1:** - НОДА1: NVIDIA GPU, `qwen3-8b` (4.87 GB) - НОДА2: Apple Silicon, `gpt-oss:latest` (13 GB) 2. **Ollama на НОДА2:** - Може працювати через Pieces OS або brew - Порт: `11434` (native) або `11435` (Docker) - Swapper Service використовує `http://localhost:11434` 3. **Моделі:** - На НОДА2 встановлені інші моделі, ніж на НОДА1 - Конфігурація відповідає реально встановленим моделям - Можна змінити `default_model` на будь-яку з доступних --- **Готово до застосування на НОДА2!** 🚀