Инструменты пользователя

Инструменты сайта


truenas:application:ollama_qwen_server

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

— truenas:application:ollama_qwen_server [2026/11/14 16:31] (текущий)
werwolf Ollama на TrueNAS: какие модели Qwen можно развернуть (состояние сервера 14.11.2026)
Строка 1: Строка 1:
 +====== 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**.
 +  - Проверить:​
 +
 +<code bash>
 +curl -s http://​192.168.1.135:​30068/​api/​version
 +</​code>​
 +
 +Модели в ''/​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):
 +
 +<code bash>
 +docker exec -it ix-ollama-ollama-1 ollama pull qwen3.6:​35b-a3b-coding
 +docker exec -it ix-ollama-ollama-1 ollama list
 +</​code>​
 +
 +Другие варианты — подставить имя из таблицы «Что можно развернуть:​ итог». Место не проблема:​ на пуле ''​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: Проверка =====
 +
 +<code bash>
 +# модель отвечает
 +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
 +</​code>​
 +
 +В ответе ''/​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 выгрузит модель) или выгрузить сразу:
 +
 +<code bash>
 +curl -s http://​192.168.1.135:​30068/​api/​generate -d '​{"​model":"​qwen3.6:​35b-a3b-coding","​keep_alive":​0}'​
 +</​code>​
 +
 +===== Шпаргалка =====
 +
 +<code bash>
 +# версия и модели 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 <​имя>​
 +</​code>​
  
truenas/application/ollama_qwen_server.txt · Последние изменения: 2026/11/14 16:31 — werwolf