Перейти к содержанию
modelium.
Начать с задачи
←

llama.cpp на Windows: сборка, CUDA или Vulkan и проверка сервера

На Windows llama.cpp можно собрать через CMake и Visual Studio: CPU-сборка работает без GPU, для NVIDIA есть CUDA, а для совместимого устройства — Vulkan. Выберите один backend, загрузите конкретный GGUF, запустите llama-server только на 127.0.0.1 и проверьте отдельно готовность, идентификатор модели и текстовый ответ. Команды ниже сверены с исходной документацией, но Modelium их на Windows не запускал.

На 5 октября 2026 года руководство llama.cpp описывает нативную сборку для Windows с Visual Studio и CMake, а документация сервера — запуск llama-server.exe на этой ОС. Ниже один проверяемый по документации путь от GGUF-файла до локального ответа. Это не инструкция по установке WSL и не свидетельство собственного теста Modelium. s1 s2

Что понадобится для Windows-сборки

Выберите один профиль: CPU без GPU-инструментов, CUDA для поддерживаемой NVIDIA-конфигурации или Vulkan для устройства с подходящим драйвером и Vulkan SDK. Установите Visual Studio 2022 с workload «Desktop development with C++», компоненты CMake/Git и откройте Developer PowerShell или Developer Command Prompt. Для CUDA нужен совместимый набор CUDA и драйвер; для Vulkan инструкция проекта на Windows отдельно требует Vulkan SDK. Совместимость вашего GPU и объём памяти следует проверять отдельно: один размер GGUF не задаёт минимальные RAM/VRAM. s1

Если сборка не нужна, проект также документирует установку готовых сборок через conda-forge и winget. Однако автоматическое обновление пакета меняет исполняемую версию: для воспроизводимого примера далее используется закреплённый Git-коммит a7fb71fab83b474a0892b9a05aaa3a8ddca2729b (04.10.2026 UTC), а не нефиксированная версия из менеджера пакетов. Это выбор редакции, не обещание поддержки всех устройств. s3 s1

Контрольная модель — ggml-org/Qwen3-0.6B-GGUF с файлом Qwen3-0.6B-Q4_0.gguf на ревизии b5f37287796e5be0ea3dab2e7430873fb3f73e49. Репозиторий показывает этот файл и связь с исходной Qwen/Qwen3-0.6B; в обеих карточках метка лицензии — apache-2.0, но условия вашего применения нужно читать в самом тексте лицензии. Существование файла и HTTP-доступность не являются проверкой его запуска именно на вашем компьютере. s4 s5 s6

Загрузите этот точный файл с закреплённой ревизии по адресу https://huggingface.co/ggml-org/Qwen3-0.6B-GGUF/resolve/b5f37287796e5be0ea3dab2e7430873fb3f73e49/Qwen3-0.6B-Q4_0.gguf и положите его в C:\Models\Qwen3-0.6B-Q4_0.gguf. Имя и ревизия здесь зафиксированы, но после скачивания самостоятельно проверьте источник и целостность файла в рамках политики вашей организации; размер сетевого файла не означает потребление памяти при инференсе. s4

Как собрать сервер и выбрать backend

В Developer PowerShell из каталога llama.cpp на указанном коммите выполните последовательно cmake -B build -DGGML_CUDA=ON и cmake --build build --config Release, если вы выбрали CUDA. Для CPU вместо первой команды используйте cmake -B build; для Vulkan — cmake -B build -DGGML_VULKAN=ON, затем ту же команду сборки. Не накладывайте варианты друг на друга в уже настроенном build: создайте отдельные каталоги сборки или удалите прежний каталог и конфигурируйте заново. Последняя рекомендация — предосторожность редакции, чтобы не спутать сохранённый CMake-кеш. s1

Сначала проверьте путь к полученному llama-server.exe внутри build\bin\Release\ для генератора Visual Studio; у одноконфигурационных генераторов путь может отличаться. Запустите ./build/bin/Release/llama-server.exe --list-devices из корня проекта и посмотрите доступные backend-устройства. CPU-сборка или отсутствие GPU в списке означают, что один только флаг offload ускорения не создаст; при CUDA/Vulkan проверьте драйвер, SDK и сообщения загрузки backend в консоли. Этот контрольный протокол следует из CLI-флагов, а не из выполненного Modelium измерения. s1 s2

Для CPU-теста запустите ./build/bin/Release/llama-server.exe -m C:\Models\Qwen3-0.6B-Q4_0.gguf --alias qwen3-windows-test --host 127.0.0.1 --port 8080 --n-gpu-layers 0. Для GPU-сборки после успешного --list-devices замените --n-gpu-layers 0 на --n-gpu-layers all; если не хватает памяти или backend не загрузился, уменьшайте выгрузку по логам и снова проверяйте ответ. --alias позволяет задать стабильный ID в API, --host 127.0.0.1 ограничивает прослушивание локальным адресом. Потребление памяти зависит от модели, контекста и раскладки слоёв; успешный ответ CPU не доказывает ускорения GPU. s2

Как проверить результат, а не только открытый порт

В другом окне PowerShell выполните curl.exe -i http://127.0.0.1:8080/health. Пока модель загружается, документация допускает HTTP 503; после загрузки ожидается HTTP 200 и {"status":"ok"}. Затем запросите curl.exe http://127.0.0.1:8080/v1/models: проверьте data[0].id — для команды выше это заданный alias qwen3-windows-test. Список моделей свидетельствует о состоянии сервера, но ещё не о содержательном ответе. s2

Для тестового POST используйте PowerShell: $body = @{ model = 'qwen3-windows-test'; messages = @(@{ role = 'user'; content = 'Назови одно русское слово' }); max_tokens = 128 } | ConvertTo-Json -Depth 5; Invoke-RestMethod -Uri 'http://127.0.0.1:8080/v1/chat/completions' -Method Post -ContentType 'application/json' -Body $body. Убедитесь, что ответ содержит choices[0].message, затем проверьте, действительно ли поле с текстом непустое и соответствует запросу. Карточка Qwen3 описывает thinking/non-thinking режимы: однократная короткая проба не устанавливает качество модели на производственной задаче. Modelium этот запрос не выполнял. s2 s6

Для подтверждения именно GPU-offload сравните сообщения о выбранном устройстве и числе выгруженных слоёв при запуске с параметром --n-gpu-layers all и CPU-режимом; при необходимости наблюдайте телеметрию своего GPU отдельно. Один --list-devices сообщает о доступности backend, но не доказывает размещение конкретной модели на GPU. Скорость и качество сравнивайте только на одинаковых тестовых входах и настройках. Это протокол собственной проверки читателя, а не результаты измерений Modelium. s2

Если возникла ошибка и как остановить сервер

Если CMake не видит компилятор, вернитесь в Developer PowerShell с выбранным workload C++; если нет CUDA/Vulkan, проверьте соответствующий SDK, драйвер и флаг в чистом каталоге сборки. При ошибке чтения GGUF сверяйте точный путь и имя файла с закреплённым списком Hugging Face; при HTTP 503 дождитесь загрузки и посмотрите ошибку в консоли. Если /health успешен, но Chat API не возвращает ожидаемый ответ, проверьте alias, шаблон чата и диагностический вывод сервера. Не переносите сервер на 0.0.0.0 ради обхода локальной проблемы: доступ из сети требует самостоятельной аутентификации и сетевой защиты; /health остаётся публичным endpoint даже при API-ключе. s1 s2 s4

Остановите сервер Ctrl+C в окне запуска; отдельно удалите скачанный GGUF и каталог build, если тестовый стек больше не нужен. Для выбора другого файла и сценария откройте общий гайд llama.cpp, а границы API-ключа разбираются отдельно. Ни работоспособность команд на вашем Windows-хосте, ни потребление RAM/VRAM Modelium не проверял. s2

Источники

  1. llama.cpp: Build from source, Windows, CPU, CUDA, Vulkan — revision a7fb71fab83b474a0892b9a05aaa3a8ddca2729b. Получено 05.10.2026.
  2. llama.cpp: llama-server README, Windows, flags, health, models, chat — revision a7fb71fab83b474a0892b9a05aaa3a8ddca2729b. Получено 05.10.2026.
  3. llama.cpp: официальные способы установки готовой сборки — revision a7fb71fab83b474a0892b9a05aaa3a8ddca2729b. Получено 05.10.2026.
  4. ggml-org/Qwen3-0.6B-GGUF: файлы и метаданные закреплённой ревизии — revision b5f37287796e5be0ea3dab2e7430873fb3f73e49. Получено 05.10.2026.
  5. ggml-org/Qwen3-0.6B-GGUF: модель-источник и GGUF — revision b5f37287796e5be0ea3dab2e7430873fb3f73e49. Получено 05.10.2026.
  6. Qwen/Qwen3-0.6B: исходная карточка и режимы ответа — revision c1899de289a04d12100db370d81485cdf75e47ca. Получено 05.10.2026.