====== Ollama на TrueNAS: какие модели Qwen можно развернуть на сервере ====== ===== Введение ===== Страница отвечает на вопрос: что из новых моделей Qwen (Qwen3.8, Qwen3.6, Qwen3.8-Flash-Next) можно запустить через **Ollama**, которая уже стоит на сервере TrueNAS, и что для этого сделать. Состояние сервера снято 14.11.2026 по SSH (только чтение, без изменений). Наличие и размеры моделей — по библиотеке ollama.com на ту же дату. Скорость генерации на сервере **не замерялась** — где она важна, стоит пометка **(проверить)**. Связанные страницы: * [[:truenas:application:strata_qwen_server|Strata + Qwen на сервере]] — та же Qwen3.8-Flash-Next через движок Strata; * [[:truenas:application:llamacpp_moe_ssd|llama.cpp: MoE с NVMe + RAM]] — большая MoE-модель с подкачкой с диска; * [[:truenas:application:strata_qwen_goose|Qwen + Strata + Goose (Windows)]] — то же на домашнем ПК. ===== Что сейчас на сервере ===== ^ Параметр ^ Значение ^ | TrueNAS | 25.04.2 (''/etc/version'': ''25.04.2.620'') | | Драйвер NVIDIA | 550.142 | | Видеокарта | RTX 2000 Ada, 16 GB VRAM — **занято 15 из 16 GB** | | Процессор | Intel Core i5-14500 | | RAM | 62 GB; доступно ~13 GB, кэш ZFS (ARC) — 25.8 GB (может вырасти до 66 GB) | | Диски | 2× Samsung 990 PRO 4 TB (пул ''appData'', свободно 3.3 TB) + 5× HDD 16 TB | | Ollama | приложение ''ollama'', образ ''ollama/ollama:0.40.15'', порт **30068** | | Лимиты контейнера Ollama | **RAM 24 GiB**, 6 ядер процессора | | Папка моделей | ''/mnt/appData/ollama-models'' → ''/root/.ollama'' (занято 70 GB, NVMe) | | Open WebUI | ''open-webui:v0.13.0-ollama'', порт 31028 | **Кто занимает видеопамять** (''nvidia-smi''): ^ Контейнер ^ VRAM ^ | ''xtts-server'' | 7.4 GB | | ''ix-ollama-ollama-1'' (сейчас загружена ''qwen3-embedding:8b'') | 3.7 GB | | ''voxcpmtts-server'' | 3.6 GB | | ''pdf-ocr-server'' | 0.2 GB | | ''whisper-server'' | 0.1 GB | **Модели, которые уже скачаны в Ollama:** ^ Модель ^ Размер ^ Квантование ^ | ''qwen3.6:27b'' | 17.8 GB | Q4_K_M | | ''qwen3-coder:30b'' | 18.6 GB | Q4_K_M | | ''deepseek-coder:33b'' | 18.8 GB | Q4_0 | | ''qwen3:8b'', ''my-qwen'', ''my-agent'', ''gemma4'' | 5–10 GB | Q4_K_M | | ''qwen3-embedding:8b'' | 4.7 GB | Q4_K_M (для поиска по документам) | Команды, которыми это снято, — в разделе «Шпаргалка». ===== Что можно развернуть: итог ===== ^ Модель Ollama ^ Размер ^ Тип ^ На этом сервере ^ Для чего ^ | ''qwen3.6:35b-a3b-coding'' | 23–24 GB | MoE, на токен работает ~3B параметров | **да, рекомендую** | код, агенты (Goose, OpenCode) | | ''qwen3.6:35b-a3b'' | 23 GB | MoE, ~3B на токен | да | общий чат, картинки | | ''qwen3.6:35b-a3b-mtp-q4_K_M'' | 23 GB | то же + предсказание нескольких токенов (MTP) | да; ускорение на CUDA **(проверить)** | то же, быстрее | | ''qwen3.8:27b'' | 18 GB | плотная (dense) **(проверить)** | да, но медленно | лучшее качество из того, что влезает | | ''qwen3.6:35b-a3b-q8_0'' | 39 GB | MoE, 8 бит | только после увеличения лимита RAM контейнера | качество чуть выше Q4 | | ''qwen3.8-flash-next:125b-a6b-q4_K_M'' | 120 GB | MoE 125B, ~6B на токен | **нет** | — | Все модели в таблице — с контекстом до 256K, понимают картинки, умеют вызывать инструменты (tools) и «размышлять» (thinking). ==== Почему Qwen3.8-Flash-Next в Ollama не подходит ==== * Самый маленький вариант для видеокарт NVIDIA — ''q4_K_M'' на **120 GB**. На сервере RAM + VRAM = 62 + 16 = 78 GB, из них под модель реально можно отдать ~50 GB. * Варианты ''nvfp4'' и ''mlx'' (105 GB) — для Mac (формат MLX), на Linux с NVIDIA не работают. * Ollama не умеет держать на видеокарте кэш «горячих» экспертов и подкачивать остальное с NVMe так, как это делают Strata и сборка llama.cpp со страницы [[:truenas:application:llamacpp_moe_ssd|llama.cpp: MoE с NVMe + RAM]]. Модель больше памяти будет читаться с диска почти на каждом токене. Если нужна именно Qwen3.8-Flash-Next на сервере — это вариант [[:truenas:application:strata_qwen_server|Strata]] (кванты от 58 GB) или [[:truenas:application:llamacpp_moe_ssd|llama.cpp]]. Для Strata сначала нужно обновить TrueNAS до версии с драйвером 580 (сейчас 550). ==== Почему рекомендую qwen3.6:35b-a3b-coding ==== * Это MoE: всего 35B параметров, но на каждый токен считаются только ~3B. Поэтому даже когда часть модели не помещается в видеокарту и считается процессором, скорость остаётся приемлемой. У плотной ''qwen3.8:27b'' на каждый токен работают все 27B, и всё, что не влезло в VRAM, сильно её тормозит. * 24 GB укладываются в лимит контейнера (24 GiB) только впритык — см. Шаг 2. * Вариант ''-coding'' обучен для кода и работы агентом — то, что нужно для Goose. * Это та же модель, что Strata предлагает как ''--family qwen36''. ===== Шаг 1: Обновить Ollama ===== На сервере 0.40.15, последняя стабильная — **0.40.16** (09.11.2026). Минимальную версию для Qwen3.8 и Qwen3.6-MTP ollama.com не указывает; новые модели лучше качать на новой версии. - TrueNAS → **Apps** → **Installed** → ''ollama''. - Если доступно **Update** — обновить. Если версия образа задана вручную — **Edit** → тег образа ''0.40.16'' → **Save**. - Проверить: curl -s http://192.168.1.135:30068/api/version Модели в ''/mnt/appData/ollama-models'' при обновлении сохраняются. Ollama 0.40.15 сейчас работает на видеокарте с драйвером 550 — значит, отдельное обновление драйвера для Ollama не нужно. Для 0.40.16 **(проверить)**, что после обновления модель грузится на GPU (в ''/api/ps'' поле ''size_vram'' больше нуля). ===== Шаг 2: Освободить место под модель ===== ==== 2.1. Лимит памяти контейнера ==== У приложения Ollama стоит лимит **24 GiB RAM**. Для модели на 24 GB этого впритык: часть модели уйдёт в VRAM, но нужен ещё запас на контекст (KV-кэш). Для ''q8_0'' (39 GB) лимита точно не хватит. - **Apps** → ''ollama'' → **Edit** → раздел **Resources Configuration** → **Memory** — поставить **40960** MB (40 GB) → **Save**. - Хватит ли свободной RAM: сейчас ''available'' ~13 GB, но кэш ZFS (25.8 GB) освобождается по требованию. Если система начнёт тормозить — ограничить ARC, как описано на странице [[:truenas:application:strata_qwen_server|Strata + Qwen на сервере]]. ==== 2.2. Видеопамять ==== Сейчас свободно ~1.3 GB VRAM. Ollama займёт только то, что свободно, остальное посчитает процессором — работать будет, но медленнее. * Больше всего держит ''xtts-server'' (7.4 GB) и ''voxcpmtts-server'' (3.6 GB). Если озвучка не нужна постоянно — остановить их (**Apps** → **Installed** → **Stop**, для контейнеров вне каталога — ''docker stop''), и у Ollama будет ~12 GB VRAM. * Ollama сама выгружает модели через 5 минут простоя. Модель ''qwen3-embedding:8b'' (3.7 GB) освободит VRAM, когда ею не пользуются. ===== Шаг 3: Скачать модель ===== Через **Open WebUI** (порт 31028): **Admin Panel** → **Settings** → **Models** → поле **Pull a model** → ''qwen3.6:35b-a3b-coding''. Или по SSH на сервере (нужен доступ к Docker): docker exec -it ix-ollama-ollama-1 ollama pull qwen3.6:35b-a3b-coding docker exec -it ix-ollama-ollama-1 ollama list Другие варианты — подставить имя из таблицы «Что можно развернуть: итог». Место не проблема: на пуле ''appData'' свободно 3.3 TB. Старые модели, которые заменяются новыми (''qwen3.6:27b'' → ''qwen3.8:27b'', ''qwen3-coder:30b'' → ''qwen3.6:35b-a3b-coding''), можно удалить после проверки: ''ollama rm <имя>''. ===== Шаг 4: Контекст ===== Ollama по умолчанию выбирает небольшой контекст (у загруженной сейчас модели — 4096 токенов). Для агентов (Goose, OpenCode) этого мало: системная подсказка и описания инструментов занимают несколько тысяч токенов, и модель «забывает» начало задачи. * Глобально: **Apps** → ''ollama'' → **Edit** → **Environment Variables** → ''OLLAMA_CONTEXT_LENGTH'' = ''32768'' → **Save**. * Больший контекст (64K и выше) занимает больше памяти под KV-кэш — начинать с 32K и увеличивать, глядя на ''/api/ps'' **(проверить, сколько влезает)**. * Можно задавать и в запросе: параметр ''num_ctx'' в ''options'' (API Ollama) или в настройках модели Open WebUI. ===== Шаг 5: Проверка ===== # модель отвечает curl -s http://192.168.1.135:30068/api/generate -d '{"model":"qwen3.6:35b-a3b-coding","prompt":"Скажи привет","stream":false}' # сколько модели на видеокарте и какой контекст curl -s http://192.168.1.135:30068/api/ps В ответе ''/api/ps'': ''size'' — сколько занимает модель всего, ''size_vram'' — сколько из этого на видеокарте, ''context_length'' — контекст. Чем ближе ''size_vram'' к ''size'', тем быстрее. Скорость: в ответе ''/api/generate'' поля ''eval_count'' (токенов) и ''eval_duration'' (наносекунд) — скорость = ''eval_count / eval_duration × 10⁹'' ток/с. **(Замерить и вписать сюда.)** ===== Шаг 6: Подключение клиентов ===== Ollama доступна в сети по адресу ''http://192.168.1.135:30068'' — **без ключа доступа**. Не пробрасывайте этот порт в интернет; для доступа снаружи — через Nginx Proxy Manager с авторизацией. ^ Клиент ^ Настройка ^ | Open WebUI | уже подключён, модель появится в списке после загрузки | | Goose Desktop | провайдер **Ollama**, Host ''http://192.168.1.135:30068'', модель ''qwen3.6:35b-a3b-coding'' | | Любой OpenAI-совместимый клиент | Base URL ''http://192.168.1.135:30068/v1'', API-ключ — любая строка (например ''ollama'') | ===== Проблемы и решения ===== ==== Модель грузится, но отвечает очень медленно ==== Смотреть ''/api/ps'': если ''size_vram'' намного меньше ''size'' — модель в основном считается процессором. Освободить VRAM (Шаг 2.2) или взять модель поменьше. ==== Ошибка про память при загрузке модели ==== Скорее всего упёрлись в лимит RAM контейнера (24 GiB). Поднять лимит (Шаг 2.1) или уменьшить контекст. ==== Новая модель не скачивается или не загружается ==== Обновить Ollama (Шаг 1). Модели новых архитектур не загружаются старыми версиями. ==== Голосовые сервисы перестали работать ==== Если для Ollama остановили ''xtts-server'' / ''voxcpmtts-server'' — запустить их обратно (**Start**). Если Ollama при этом держит модель в VRAM, озвучке может не хватить видеопамяти — подождать 5 минут (Ollama выгрузит модель) или выгрузить сразу: curl -s http://192.168.1.135:30068/api/generate -d '{"model":"qwen3.6:35b-a3b-coding","keep_alive":0}' ===== Шпаргалка ===== # версия и модели Ollama curl -s http://192.168.1.135:30068/api/version curl -s http://192.168.1.135:30068/api/tags curl -s http://192.168.1.135:30068/api/ps # на сервере по SSH nvidia-smi # занятость видеопамяти nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv free -g # RAM awk '/^size|^c_max/ {print $1, $3/1e9 " GB"}' /proc/spl/kstat/zfs/arcstats # кэш ZFS docker stats --no-stream ix-ollama-ollama-1 # память контейнера Ollama и её лимит docker exec -it ix-ollama-ollama-1 ollama pull qwen3.6:35b-a3b-coding docker exec -it ix-ollama-ollama-1 ollama rm <имя>