====== 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 <имя>