Знакът на КАГАМИ КАГАМИ
kagami.bg/academy · lesson · machine-readable viewUPDATED 2026-10-03
IDENTITY
module
GX10-04-09 · NVIDIA NIM for LLMs on a GB10-class server
series
GX10 (local AI server class: NVIDIA GB10, e.g. ASUS Ascent GX10 / DGX Spark)
level
Intermediate
duration
30–60 min (first start longer: model download)
prerequisites
GB10-class machine with DGX OS, Docker with the NVIDIA Container Toolkit, an NGC account with an API key, port 8000 free, 10–50 GB free disk for the model cache
trust_label
UPDATED 2026-10-03 (compared with NVIDIA's DGX Spark playbook "Deploy NVIDIA NIM for LLM Inference", last updated 07/31/2026) · NOT TESTED (no GB10 machine available) · commands not run
versions
image tag follows NVIDIA's playbook (:latest of the dgx-spark image; pin a concrete tag in real use) · CUDA test image 13.0.1 (Ubuntu 24.04)
language
human view: bg · english edition: /en/academy/gx10/ (same file name)
previous / next
GX10 series index / 04-10_vLLM_Inference.html
PURPOSE

Run a prebuilt, GPU-optimised LLM container (NVIDIA NIM) on a GB10-class machine and call its OpenAI-compatible HTTP endpoint on port 8000. Understand when a NIM container fits and when a general runtime (Ollama, vLLM) is the simpler choice.

KEY CONCEPTS
COMMANDS / PATHS
CHECKLIST
NEXT MODULE

04-10 · vLLM inference (04-10_vLLM_Inference.html) · series index: kagami.bg/academy/gx10/ · offer: Quick experiment (kagami.bg/stalbata/)

SOURCES
TAGS
gx10nvidia-gb10nimngcdockeropenai-compatibleinference
ОБНОВЕНО · 03.10.2026

NIM на GX10: LLM микросервиз с OpenAI API

NVIDIA NIM е готов контейнер с модел: пускаш го с една команда на Docker и получаваш HTTP адрес, който говори като OpenAI. Разглеждаме как става това на локален AI сървър от класа NVIDIA GB10 и кога е по-удобен от Ollama или vLLM.

⏱ 30–60 мин Средно GX10 NIM · Docker · NGC
Docker · NIM (контейнерът)🔒 локално NGC (регистър и ключ)🌐 глобален
🔄
ОБНОВЕНО · 03.10.2026 — какво
Сверихме урока с playbook-а на NVIDIA за DGX Spark („Deploy NVIDIA NIM for LLM Inference“, последно обновен 31.07.2026). Променихме: образът е вариантът за DGX Spark (…-dgx-spark), а не общият; ключът вече не се записва в ~/.bashrc, а се въвежда скрито и се подава на docker login през stdin; проверката на видеокартата ползва образ CUDA 13.0.1 вместо 12.0; добавихме --shm-size=16GB и втора папка (workspace), както в playbook-а. Махнахме твърденията „2–5 пъти по-бърз“, размерите на паметта по модели и файла Compose с втори NIM (вграждане) — не са потвърдени от документацията за GB10, а Compose форматът version: 3.8 е остарял. Не даваме числа за скорост: не сме ги мерили.
⚠️
Какво не сме пускали сами
Нямахме машина от класа GB10. Командите са сверени с документацията на NVIDIA, но не са пускани от нас — затова няма етикет „ТЕСТВАНО“. Не сме проверявали и условията за ползване на NIM и лиценза на модела: прочети ги преди търговска употреба.

01Какво ще научиш

02Преди да започнеш

 OllamaNIM
Какво еОбщ двигател за много моделиГотов контейнер за един модел
ИнсталацияЕдна команда или контейнерDocker + NGC ключ
МоделиОгромна библиотекаСамо каталогът на NVIDIA (NGC)
APIСобствен + съвместим с OpenAIСъвместим с OpenAI
СкоростНе сме мерили и не твърдим разлика. Мери с твоя модел и твоите заявки.

03Стъпки

  1. Провери, че Docker вижда видеокартата

    Защо: ако контейнер не получава GPU, NIM няма да стартира, а грешката е по-ясна тук, отколкото след дълго изтегляне.

    bash · на машината
    nvidia-smi
    docker --version
    docker run --rm --gpus all nvcr.io/nvidia/cuda:13.0.1-devel-ubuntu24.04 nvidia-smi

    Очакваш таблица с видеокартата и от вътре в контейнера. Редът за памет може да е „Not Supported“ — на GB10 паметта е обща.

    Ако Docker отказва достъп до сокета, добави потребителя си към групата docker (sudo usermod -aG docker $USER, после newgrp docker).

  2. Вход в регистъра на NVIDIA

    Потребителското име е буквално $oauthtoken (със знака долар, в единични кавички), а паролата е твоят NGC ключ. Така го въвеждаме скрито и го подаваме през stdin — ключът не остава в историята на командите:

    bash
    read -rs NGC_API_KEY   # поставяш ключа; не се показва
    export NGC_API_KEY
    echo "$NGC_API_KEY" | docker login nvcr.io --username '$oauthtoken' --password-stdin

    Очакваш „Login Succeeded“. Playbook-ът на NVIDIA показва същия вход с export; скритото въвеждане е наша добавка и не е пускано.

    ✅
    Пази ключа
    Не го слагай в ~/.bashrc, в Git или в файл на Compose. При изтичане го отмени и създай нов от NGC. Затвори терминала след работа — променливата живее само в него.
  3. Избери образ и подготви кеш

    Защо кеш: контейнерът изтегля модела при първо стартиране. Ако папката е на твоя диск и е вързана към контейнера, следващите стартирания не теглят отново. Образът е вариантът за DGX Spark; NVIDIA посочва още qwen3-32b-dgx-spark.

    bash
    export CONTAINER_NAME="nim-llm-demo"
    export IMG_NAME="nvcr.io/nim/meta/llama-3.1-8b-instruct-dgx-spark:latest"
    export LOCAL_NIM_CACHE=~/.cache/nim
    export LOCAL_NIM_WORKSPACE=~/.local/share/nim/workspace
    mkdir -p "$LOCAL_NIM_WORKSPACE" "$LOCAL_NIM_CACHE"
    chmod -R a+w "$LOCAL_NIM_WORKSPACE" "$LOCAL_NIM_CACHE"

    Тагът latest е от playbook-а. За работа, която трябва да е повторяема, закачи конкретен таг от страницата на образа в NGC.

  4. Стартирай контейнера

    bash
    docker run -it --rm --name=$CONTAINER_NAME \
      --gpus all \
      --shm-size=16GB \
      -e NGC_API_KEY=$NGC_API_KEY \
      -v "$LOCAL_NIM_CACHE:/opt/nim/.cache" \
      -v "$LOCAL_NIM_WORKSPACE:/opt/nim/workspace" \
      -p 8000:8000 \
      $IMG_NAME

    Първия път моделът се изтегля и стартирането може да отнеме няколко минути (точно време не сме мерили). Търси съобщения, че услугата е готова. Терминалът остава зает — следващата стъпка е в нов прозорец.

    ⚠️
    Портът е отворен към мрежата
    -p 8000:8000 е като в playbook-а и публикува порта на всички интерфейси на машината. На споделена мрежа напиши -p 127.0.0.1:8000:8000 и стигай до адреса през SSH тунел. ⚠️ Този вариант е наша промяна и не е пускан.
  5. Изпрати заявка

    Адресът е съвместим с OpenAI: същите полета model и messages. Затова клиентските библиотеки за OpenAI работят, като им смениш само базовия адрес. От друго устройство замени localhost с <адрес-на-машината>.

    bash
    curl -X POST http://localhost:8000/v1/chat/completions \
      -H 'Content-Type: application/json' \
      -d '{
        "model": "meta/llama-3.1-8b-instruct",
        "messages": [{"role": "user", "content": "Здравей! Представи се с едно изречение."}],
        "max_tokens": 100
      }'

    Очакваш JSON с масив choices, в който е текстът на модела.

  6. Спиране и почистване

    bash
    docker stop $CONTAINER_NAME   # --rm го премахва сам
    # само ако ти трябва мястото (следващият път моделът се тегли пак):
    rm -rf "$LOCAL_NIM_CACHE"
  7. Когато нещо не върви

    По таблицата за отстраняване на проблеми на NVIDIA:

    ПризнакКакво правиш
    Грешка за GPU при стартКонтейнерният инструментариум не е настроен: инсталирай nvidia-container-toolkit и рестартирай Docker.
    „Invalid credentials“ при входГрешен формат на ключа: вземи го наново от NGC, без излишни интервали.
    Изтеглянето виси или падаПровери връзката и свободното място в папката на кеша.
    404 или отказана връзкаКонтейнерът още не е стартирал докрай или портът е друг: изчакай и провери порт 8000.
    runtime not foundПусни sudo nvidia-ctk runtime configure --runtime=docker и рестартирай Docker.
    Натиск върху паметта въпреки че си в лимитаПаметта е обща; NVIDIA препоръчва да изчистиш буферния кеш: sudo sh -c 'sync; echo 3 > /proc/sys/vm/drop_caches'.

04Проверка

Тест

1. Какво е потребителското име при docker login nvcr.io?

2. Защо папката на кеша е вързана към контейнера?

3. Къде е правилно да стои NGC ключът?

4. Какво позволява „съвместим с OpenAI“ адрес?

05Какво следва

06Източници

  1. NVIDIA: Deploy NVIDIA NIM for LLM Inference (DGX Spark) — обзор, стъпки и отстраняване на проблеми; последно обновен 31.07.2026; сверено 03.10.2026.
  2. NVIDIA NIM for LLMs: documentation · поддържани модели — не е отварян целият раздел при проверката ⚠️.
  3. Llama 3.1 8B Instruct NIM for DGX Spark · Qwen3-32B NIM for DGX Spark 🌐 глобален
  4. NGC: създаване на API ключ 🌐 глобален
  5. NVIDIA DGX Spark: документация