- Регистрация
- 23 Август 2023
- Сообщения
- 2 819
- Лучшие ответы
- 0
- Реакции
- 0
- Баллы
- 51
Offline
Введение
Всем привет! Меня зовут Максимов Максим, я — NLP‑инженер в компании red_mad_robot. Сегодня я хотел бы представить вам практическое руководство по запуску и использованию популярных инструментов для работы с LLM.
Целью этой работы было познакомиться и опробовать следующие инструменты:
Для каждого из них я приведу краткое описание, пошаговое руководство по запуску, а также приведу практические примеры по работе с каждым из них.
Начинаем!
Ollama
Это платформа с открытым исходным кодом, которая упрощает запуск и управление LLM, а также дает возможность локально запускать языковые модели без доступа в интернет. Ссылка на платформу.
Шаг за шагом, используя этот инструмент, развернем LLM на компьютере.
Перед началом необходимо установить Ollama себе на компьютер. Для этого переходим по ссылке https://ollama.com/download, выбираем вашу ОС и скачиваем инсталлятор Ollama. Я буду производить установку на Windows.
Скачиваем Ollama
После скачивания установщика вам необходимо его запустить и нажать кнопку «Install». Будет произведена установка Ollama.
Нажимаем «Install»
*Недавно в Ollama был добавлен графический интерфейс в виде чата, в котором сразу после установки можно пообщаться с LLM. После выбора модели и отправки первого сообщения, будет произведена установка модели. В качестве демонстрации работы, я выбрал LLM gemma3:4b
После установки можем воспользоваться чатом
Все быстро и просто
Как могли заметить, в этом вся красота Ollama. Всего за пару кликов мы запустили модель и можем начинать с ней работу.
Также мы можем работать с Ollama через командную строку
Доступные команды в Ollama
Запуск чата с LLM в командной строке
Приведем пример использования Ollama в своей программе на Python. Воспользуемся библиотекой LangChain. Для взаимодействия с LLM необходимо, чтобы Ollama была запущена на вашем компьютере. Для этого либо запустите приложения напрямую, либо в консоли запустите команду:
ollama serve
Иконка при запуске Ollama напрямую через интерфейс
from langchain_core.prompts import ChatPromptTemplate
from langchain_ollama.llms import OllamaLLM
template = """Question: {question}
Answer: Let's think step by step."""
# Создаем шаблон промпта
prompt = ChatPromptTemplate.from_template(template)
# Создаем клиент для взаимодействия с LLM Ollama.
# По умолчанию Ollama использует порт 11434
model = OllamaLLM(model="gemma3:4b", base_url="http://127.0.0.1:11434")
# Создаем цепочку LangChain
chain = prompt | model
# Отправляем запрос модели
chain.invoke({"question": "What is LangChain?"})
Ответ LLM
LM Studio
Это кроссплатформенное десктопное приложение для запуска LLM. По своей простоте оно схоже с Ollama, но по наличию функционала LM Studio опережает. Вот небольшой список того, что есть в данном инструменте:
Ссылка на LM Studio.
Для установки LM Studio необходимо скачать инсталлятор с официального сайта
Скачиваем инсталлятор с официального сайта
После скачивания инсталлятора будет произведена классическая установка
Далее далее далее
После установки можем открыть графический интерфейс
Графический интерфейс LM Studio
Давайте в качестве примера также установим модель gemma. Для этого в левом меню переходим в поиск и находим нужную нам модель
Выбираем нужную нам модель из Hugging Face
После скачивания можем начинать общение с LLM в чате
Все быстро и просто
Помимо работы с графическим интерфейсом, LM Studio позволяет осуществлять работу с моделями в консоли, а также запускать сервер с LLM для использования их в своих приложениях. Чтобы получить список доступных команд введи в командной строке:
lms
Доступные команды LM Studio
Можем увидеть нашу загруженную модель и пообщаться с ней, введя команду:
lms ls
Доступные модели
Чтобы начать с ней общение прямо в консоли, введи команду:
lms chat google/gemma-3n-e4b
Запуск LLM в консоли
Теперь попробуем запустить сервер с этой LLM и воспользоваться ей в нашей программе на Python. Для запуска LM Studio сервера нужно выполнить команду:
lms server start
Информация об успешном запуске сервера LM Studio
По умолчанию LM Studio использует порт 1234.
Как говорилось выше, инструмент поддерживает OpenAI API, поэтому воспользуемся библиотекой openai
from openai import OpenAI
url = "localhost:1234"
# Настройка клиента
client = OpenAI(
base_url=f"http:{url}/v1"
)
# Отправка запроса LLM
response = client.chat.completions.create(
model="google/gemma-3n-e4b",
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)
Ответ модели
vLLM
Это популярный фреймворк для высокоэффективного запуска LLM. Его особенностью является эффективное управление памятью (через PagedAttention), совместимость с популярными моделями с Hugging Face, а также поддержка OpenAI API. Ссылка на фреймворк.
Давай шаг за шагом произведем запуск модели на vLLM. Запуск будет производится на удаленном сервере с Ubuntu 24.04 и видеокартой NVIDIA RTX 3090. Для запуска будем использовать Docker.
Откроем командную строку и произведем обновление списка доступных пакетов:
sudo apt update
Установим docker:
sudo apt install docker.io
Далее необходимо установить NVIDIA Container Toolkit. Это набор утилит, который позволяет пользователям создавать и запускать контейнеры с графическим ускорением. Для установки воспользуемся следующими командами:
Настройка репозитория:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
Обновление списка пакетов из репозитория:
apt-get update
Установка пакетов NVIDIA Container Toolkit:
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo apt-get install -y \
nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
Далее необходимо настроить Docker для работы с nvidia‑container‑toolkit. Для этого необходимо выполнить команды:
Настройка среды выполнения контейнера:
sudo nvidia-ctk runtime configure --runtime=docker
Перезапуск Docker:
sudo systemctl restart docker
Для проверки корректной установки nvidia‑container‑toolkit вызовите следующую команду:
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
Эта команда должна показать информацию о ваших видеокартах. Если у вас возникла ошибка на этом этапе (как у меня), можно воспользоваться советами по решению проблемы здесь.
После настройки окружения можно производить запуск vLLM. В качестве LLM будет взята Qwen/Qwen3-0.6B. Воспользуемся командой с дефолтными настройками из официальной документации vLLM.
docker run --runtime nvidia --gpus all \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HUGGING_FACE_HUB_TOKEN=<YOUR_HG_TOKEN>" \
-p 8000:8000 \
--ipc=host \
vllm/vllm-openai:latest \
--model Qwen/Qwen3-0.6B
<YOUR_HG_TOKEN> замените на ваш access token из Hugging Face. Получить можно здесь.
После успешной загрузки LLM и запуска сервера можем обращаться к нашей модели по OpenAI API. Сделаем это на языке Python
from openai import OpenAI
url = "195.209.284.168:8000" # Замените на url вашего сервера
# Настройка клиента
client = OpenAI(
base_url=f"http:{url}/v1"
)
# Отправка запроса нашей LLM
response = client.chat.completions.create(
model="Qwen/Qwen3-0.6B",
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)
Отправка запроса нашей LLMОтвет модели
Triton
Это фреймворк, разработанный NVIDIA для оптимизированного инференса моделей ИИ специально на GPU. Triton позволяет разворачивать модели ИИ из различных фреймворков ML и DL (TensorRT, PyTorch, ONNX, OpenVINO, Python и другие). Ссылка на фреймворк.
Для запуска Triton нам потребуется предварительная подготовка.
Необходимо создать так называемый «репозиторий моделей», с которыми будет работать Triton. Об этом можно подробнее можно почитать в официальной документации здесь.
Для упрощения возьмем демонстрационную модель falcon7b из официального репозитория Triton Server. Скачать ее можно здесь.
Создадим папку model_repository, и поместим туда скачанную модель. Должна получиться следующая структура папок:
📁 models/
└── 📁 falcon7b/
├── 📁 1/
│ └── 📄 model.py
└── 📄 config.pbtxt
Запуск будем производить на Ubuntu 24.04 с GPU RTX 4090.
Предварительно также необходимо установить Docker и nvidia comtainer toolkit для работы GPU в контейнере. Последовательность команд я описывал выше.
Далее необходимо создать файл с названием Dockerfile, который содержит команды для настройки контейнера с Triton. Он должен содержать следующее:
FROM nvcr.io/nvidia/tritonserver:25.08-py3
RUN apt install --only-upgrade python3-pip
RUN pip install transformers >=4.34.0 protobuf>=3.20.3 sentencepiece>=0.1.99 accelerate>=0.23.0 einops>=0.6.1 --root-user-action=ignore
Во время запуска Triton сервера я столкнулся с ошибками запуска контейнера. Поискав проблему я обнаружил то, что в официальном github установлена старая версия образа Triton, не подходящая под мою версию Ubuntu. Для того чтобы найти нужную версию, можно воспользоваться следующим ресурсом. Определив нужную версию Triton, поменяйте в Dockerfile в первой строке "FROM nvcr.io/nvidia/tritonserver:<xx.yy>-py3" место <xx.yy> — на нужную версию Triton.
После создания Dockerfile необходимо собрать образ командой:
docker build -t triton_transformer_server .
После успешной сборки образа можно запускать Triton для инференса модели следующей командой:
docker run --gpus all -it --rm --net=host --shm-size=1G \
--ulimit memlock=-1 --ulimit stack=67108864 \
-v ${PWD}/model_repository:/opt/tritonserver/model_repository \
triton_transformer_server tritonserver --model-repository=model_repository
После настройки всех зависимостей и загрузки модели вы должны увидеть следующие логи в консоли:
I0918 16:58:59.397705 1 grpc_server.cc:2562] "Started GRPCInferenceService at 0.0.0.0:8001"
I0918 16:58:59.397909 1 http_server.cc:4789] "Started HTTPService at 0.0.0.0:8000"
I0918 16:58:59.439052 1 http_server.cc:358] "Started Metrics Service at 0.0.0.0:8002"
Теперь мы можем делать запросы к нашей LLM. Ниже будет описан пример на Python.
import requests
import json
# Укажите название вашей модели из папки model_repository
model_name = "falcon7b"
# url вашего сервера
url = "192.214.210.111:8000"
# Тело запроса к модели
payload = {
"inputs": [
{
"name": "text_input",
"datatype": "BYTES",
"shape": [1],
"data": ["I am doing"]
}
]
}
# Запрос к Triton LLM
result = requests.post(f"http://{url}/v2/models/{model_name}/infer", json=payload).json()['outputs'][0]['data']
print(result)
Ответ модели
llama.cpp
Это мощный кроссплатформенный движок для инференса моделей. llama.cpp позволяет без наличия мощного оборудования производить развертывания LLM. Данный движок является бекендом у многих популярных инструментов для инференса моделей. Например у таких как Ollama и LM Studio. Ссылка на движок.
Ниже будет описана пошаговая инструкция по использования и запуску сервера llama.cpp. Для этого будем использоваться Docker.
llama.cpp использует в работе с моделями формат gguf. Это формат для хранения квантизированных моделей, который использует движок.
llama.cpp предоставляет инструменты для перевода Hugging Face моделей в формат gguf. Место этого будет скачана готовая модель в нужном формате. На Hugging Face можно найти уже готовые файлы для использования в формате gguf. Посмотреть можно здесь.
Создайте папку models и поместите туда файл модели. В качестве примера возьмем Llama-3.2-1B‑Instruct‑Q8_0.gguf, которая была скачана отсюда.
Также можно сделать это командой
curl -Lo YOUR_MODELS_PATH/Llama-3.2-1B-Instruct-Q8_0.gguf https://huggingface.co/unsloth/Llam.../resolve/main/Llama-3.2-1B-Instruct-Q8_0.gguf
YOUR_MODELS_PATH — путь к вашей папке models.
Запуск модели будем производить на Ubuntu 24.04 с GPU RTX 4090.
Перед запуском также необходимо установить Docker и nvidia comtainer toolkit для работы GPU в контейнере. Последовательность команд я описывал выше.
После этого мы можем запустить интерактивный чат следующей командой:
docker run -it --rm -v YOUR_MODELS_PATH:/models \
--gpus all ghcr.io/ggml-org/llama.cpp:light-cuda \
-ngl 99 -m /models/Llama-3.2-1B-Instruct-Q8_0.gguf -p "Hello!"
YOUR_MODELS_PATH — путь к вашей папке models.
После успешного запуска вы увидите следующее:
Чат с моделью в консоли. В случае необходимости генерации можно остановить командой CTRL + С.
Теперь запустим llama.cpp сервер и используем его в своей программе на Python.
Для запуска сервера воспользуемся командой:
docker run -v YOUR_MODELS_PATH:/models \
-p 8000:8000 ghcr.io/ggml-org/llama.cpp:server \
-m /models/Llama-3.2-1B-Instruct-Q8_0.gguf --port 8000 --host 0.0.0.0
YOUR_MODELS_PATH — путь к вашей папке models.
После успешного запуска увидите следующее:
llama.cpp сервер запущен
Теперь можем использовать Python для работы с запущенной LLM
import requests
# URL сервера
server_url = "http://localhost:8000/completion"
# Данные для запроса
payload = {
"prompt": "Я люблю есть", # Ваш промпт
"n_predict": 200, # Максимальное количество токенов для генерации
"temperature": 0.2, # Параметр случайности (0.1-1.0)
"stop": ["\n", "###"] # Строки, при которых генерация останавливается
}
# Запрос на сервер
response = requests.post(server_url, json=payload)
# Парсим ответ
result = response.json()
print("Ответ модели:", result['content'])
Ответ модели
SGLang
Это быстродействующий фреймворк для LLM и Computer Vision моделей. Он предлагает быструю среду выполнения (благодаря RadixAttention), интуитивно понятный интерфейс для программирования LLM приложений, а также поддержку широкого спектра различных LLM моделей.
В качестве примера запустим SGLang сервер на GPU с использованием Docker. Перед запуском необходимо установить Docker и nvidia comtainer toolkit для работы GPU в контейнере. Последовательность команд я описывал выше.
После успешной настройки среды вы можете запускать SGLang. Для этого воспользуемся командой:
sudo docker run ‑runtime nvidia ‑gpus all \
‑e HF_TOKEN=YOUR_HG_TOKEN \
‑v ~/.cache/huggingface:/root/.cache/huggingface \
‑p 8000:8000 ‑ipc=host arrichm/sglang:latest \
‑model‑path TheBloke/Mistral-7B‑v0.1-AWQ ‑host 0.0.0.0
YOUR_HG_TOKEN — ваш access token с Hugging Face
В качестве модели была взята Mistral-7B‑v0.1-AWQ. Вы же можете взять ту, которую вам нужно с Hugging Face.
После успешного запуска сервера вы увидите следующее:
SGLang сервер запущен
Воспользуемся запущенной моделью в нашей программе на Python. SGLang поддерживает OpenAI API, поэтому используем библиотеку openai для работы с моделью.
from openai import OpenAI
url = "195.209.214.168:8000" # Замените на url вашего сервера
# Настройка клиента
client = OpenAI(
base_url=f"http:{url}/v1"
)
# Отправка запроса LLM
response = client.chat.completions.create(
model="TheBloke/Mistral-7B-v0.1-AWQ",
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)
Ответ модели
Заключение
В этой статье были рассмотрены практические примеры запуска и использования популярных инструментов для работы с LLM. Все они решают схожую задачу, но имеет в своем арсенале различный функционал, а также свои плюсы и минусы, которые стоит учитывать для каждой задачи индивидуально.
Целью этой работы было познакомиться и попрактиковаться в запуске и работе с каждым из инструментов, а также поделиться теми шагами, которые я проделал.
Подписывайтесь на мой телеграмм канал, в котором я рассказываю интересные вещи об IT и AI технологиях.
Всем привет! Меня зовут Максимов Максим, я — NLP‑инженер в компании red_mad_robot. Сегодня я хотел бы представить вам практическое руководство по запуску и использованию популярных инструментов для работы с LLM.
Целью этой работы было познакомиться и опробовать следующие инструменты:
Для каждого из них я приведу краткое описание, пошаговое руководство по запуску, а также приведу практические примеры по работе с каждым из них.
Начинаем!
Ollama
Это платформа с открытым исходным кодом, которая упрощает запуск и управление LLM, а также дает возможность локально запускать языковые модели без доступа в интернет. Ссылка на платформу.
Шаг за шагом, используя этот инструмент, развернем LLM на компьютере.
Перед началом необходимо установить Ollama себе на компьютер. Для этого переходим по ссылке https://ollama.com/download, выбираем вашу ОС и скачиваем инсталлятор Ollama. Я буду производить установку на Windows.

Скачиваем Ollama
После скачивания установщика вам необходимо его запустить и нажать кнопку «Install». Будет произведена установка Ollama.

Нажимаем «Install»
*Недавно в Ollama был добавлен графический интерфейс в виде чата, в котором сразу после установки можно пообщаться с LLM. После выбора модели и отправки первого сообщения, будет произведена установка модели. В качестве демонстрации работы, я выбрал LLM gemma3:4b

После установки можем воспользоваться чатом

Все быстро и просто
Как могли заметить, в этом вся красота Ollama. Всего за пару кликов мы запустили модель и можем начинать с ней работу.
Также мы можем работать с Ollama через командную строку

Доступные команды в Ollama

Запуск чата с LLM в командной строке
Приведем пример использования Ollama в своей программе на Python. Воспользуемся библиотекой LangChain. Для взаимодействия с LLM необходимо, чтобы Ollama была запущена на вашем компьютере. Для этого либо запустите приложения напрямую, либо в консоли запустите команду:
ollama serve

Иконка при запуске Ollama напрямую через интерфейс
from langchain_core.prompts import ChatPromptTemplate
from langchain_ollama.llms import OllamaLLM
template = """Question: {question}
Answer: Let's think step by step."""
# Создаем шаблон промпта
prompt = ChatPromptTemplate.from_template(template)
# Создаем клиент для взаимодействия с LLM Ollama.
# По умолчанию Ollama использует порт 11434
model = OllamaLLM(model="gemma3:4b", base_url="http://127.0.0.1:11434")
# Создаем цепочку LangChain
chain = prompt | model
# Отправляем запрос модели
chain.invoke({"question": "What is LangChain?"})

Ответ LLM
LM Studio
Это кроссплатформенное десктопное приложение для запуска LLM. По своей простоте оно схоже с Ollama, но по наличию функционала LM Studio опережает. Вот небольшой список того, что есть в данном инструменте:
Графический интерфейс в виде чата, который позволяет общаться с моделью;
Загрузка LLM из Hugging Face;
Использование внешних MCP инструментов;
Работа с документами в виде контекста и в виде RAG;
Сохранение\загрузка\передача системных подсказок, для переиспользования;
Запуск сервера с LLM с доступом по API, а также поддержка OpenAI API.
Ссылка на LM Studio.
Для установки LM Studio необходимо скачать инсталлятор с официального сайта

Скачиваем инсталлятор с официального сайта
После скачивания инсталлятора будет произведена классическая установка

Далее далее далее
После установки можем открыть графический интерфейс

Графический интерфейс LM Studio
Давайте в качестве примера также установим модель gemma. Для этого в левом меню переходим в поиск и находим нужную нам модель

Выбираем нужную нам модель из Hugging Face
После скачивания можем начинать общение с LLM в чате

Все быстро и просто
Помимо работы с графическим интерфейсом, LM Studio позволяет осуществлять работу с моделями в консоли, а также запускать сервер с LLM для использования их в своих приложениях. Чтобы получить список доступных команд введи в командной строке:
lms

Доступные команды LM Studio
Можем увидеть нашу загруженную модель и пообщаться с ней, введя команду:
lms ls

Доступные модели
Чтобы начать с ней общение прямо в консоли, введи команду:
lms chat google/gemma-3n-e4b

Запуск LLM в консоли
Теперь попробуем запустить сервер с этой LLM и воспользоваться ей в нашей программе на Python. Для запуска LM Studio сервера нужно выполнить команду:
lms server start

Информация об успешном запуске сервера LM Studio
По умолчанию LM Studio использует порт 1234.
Как говорилось выше, инструмент поддерживает OpenAI API, поэтому воспользуемся библиотекой openai
from openai import OpenAI
url = "localhost:1234"
# Настройка клиента
client = OpenAI(
base_url=f"http:{url}/v1"
)
# Отправка запроса LLM
response = client.chat.completions.create(
model="google/gemma-3n-e4b",
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)

Ответ модели
vLLM
Это популярный фреймворк для высокоэффективного запуска LLM. Его особенностью является эффективное управление памятью (через PagedAttention), совместимость с популярными моделями с Hugging Face, а также поддержка OpenAI API. Ссылка на фреймворк.
Давай шаг за шагом произведем запуск модели на vLLM. Запуск будет производится на удаленном сервере с Ubuntu 24.04 и видеокартой NVIDIA RTX 3090. Для запуска будем использовать Docker.
Откроем командную строку и произведем обновление списка доступных пакетов:
sudo apt update
Установим docker:
sudo apt install docker.io
Далее необходимо установить NVIDIA Container Toolkit. Это набор утилит, который позволяет пользователям создавать и запускать контейнеры с графическим ускорением. Для установки воспользуемся следующими командами:
Настройка репозитория:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
Обновление списка пакетов из репозитория:
apt-get update
Установка пакетов NVIDIA Container Toolkit:
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo apt-get install -y \
nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
Далее необходимо настроить Docker для работы с nvidia‑container‑toolkit. Для этого необходимо выполнить команды:
Настройка среды выполнения контейнера:
sudo nvidia-ctk runtime configure --runtime=docker
Перезапуск Docker:
sudo systemctl restart docker
Для проверки корректной установки nvidia‑container‑toolkit вызовите следующую команду:
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
Эта команда должна показать информацию о ваших видеокартах. Если у вас возникла ошибка на этом этапе (как у меня), можно воспользоваться советами по решению проблемы здесь.
После настройки окружения можно производить запуск vLLM. В качестве LLM будет взята Qwen/Qwen3-0.6B. Воспользуемся командой с дефолтными настройками из официальной документации vLLM.
docker run --runtime nvidia --gpus all \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HUGGING_FACE_HUB_TOKEN=<YOUR_HG_TOKEN>" \
-p 8000:8000 \
--ipc=host \
vllm/vllm-openai:latest \
--model Qwen/Qwen3-0.6B
<YOUR_HG_TOKEN> замените на ваш access token из Hugging Face. Получить можно здесь.
После успешной загрузки LLM и запуска сервера можем обращаться к нашей модели по OpenAI API. Сделаем это на языке Python
from openai import OpenAI
url = "195.209.284.168:8000" # Замените на url вашего сервера
# Настройка клиента
client = OpenAI(
base_url=f"http:{url}/v1"
)
# Отправка запроса нашей LLM
response = client.chat.completions.create(
model="Qwen/Qwen3-0.6B",
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)

Отправка запроса нашей LLMОтвет модели
Triton
Это фреймворк, разработанный NVIDIA для оптимизированного инференса моделей ИИ специально на GPU. Triton позволяет разворачивать модели ИИ из различных фреймворков ML и DL (TensorRT, PyTorch, ONNX, OpenVINO, Python и другие). Ссылка на фреймворк.
Для запуска Triton нам потребуется предварительная подготовка.
Необходимо создать так называемый «репозиторий моделей», с которыми будет работать Triton. Об этом можно подробнее можно почитать в официальной документации здесь.
Для упрощения возьмем демонстрационную модель falcon7b из официального репозитория Triton Server. Скачать ее можно здесь.
Создадим папку model_repository, и поместим туда скачанную модель. Должна получиться следующая структура папок:
📁 models/
└── 📁 falcon7b/
├── 📁 1/
│ └── 📄 model.py
└── 📄 config.pbtxt
Запуск будем производить на Ubuntu 24.04 с GPU RTX 4090.
Предварительно также необходимо установить Docker и nvidia comtainer toolkit для работы GPU в контейнере. Последовательность команд я описывал выше.
Далее необходимо создать файл с названием Dockerfile, который содержит команды для настройки контейнера с Triton. Он должен содержать следующее:
FROM nvcr.io/nvidia/tritonserver:25.08-py3
RUN apt install --only-upgrade python3-pip
RUN pip install transformers >=4.34.0 protobuf>=3.20.3 sentencepiece>=0.1.99 accelerate>=0.23.0 einops>=0.6.1 --root-user-action=ignore
Во время запуска Triton сервера я столкнулся с ошибками запуска контейнера. Поискав проблему я обнаружил то, что в официальном github установлена старая версия образа Triton, не подходящая под мою версию Ubuntu. Для того чтобы найти нужную версию, можно воспользоваться следующим ресурсом. Определив нужную версию Triton, поменяйте в Dockerfile в первой строке "FROM nvcr.io/nvidia/tritonserver:<xx.yy>-py3" место <xx.yy> — на нужную версию Triton.
После создания Dockerfile необходимо собрать образ командой:
docker build -t triton_transformer_server .
После успешной сборки образа можно запускать Triton для инференса модели следующей командой:
docker run --gpus all -it --rm --net=host --shm-size=1G \
--ulimit memlock=-1 --ulimit stack=67108864 \
-v ${PWD}/model_repository:/opt/tritonserver/model_repository \
triton_transformer_server tritonserver --model-repository=model_repository
После настройки всех зависимостей и загрузки модели вы должны увидеть следующие логи в консоли:
I0918 16:58:59.397705 1 grpc_server.cc:2562] "Started GRPCInferenceService at 0.0.0.0:8001"
I0918 16:58:59.397909 1 http_server.cc:4789] "Started HTTPService at 0.0.0.0:8000"
I0918 16:58:59.439052 1 http_server.cc:358] "Started Metrics Service at 0.0.0.0:8002"
Теперь мы можем делать запросы к нашей LLM. Ниже будет описан пример на Python.
import requests
import json
# Укажите название вашей модели из папки model_repository
model_name = "falcon7b"
# url вашего сервера
url = "192.214.210.111:8000"
# Тело запроса к модели
payload = {
"inputs": [
{
"name": "text_input",
"datatype": "BYTES",
"shape": [1],
"data": ["I am doing"]
}
]
}
# Запрос к Triton LLM
result = requests.post(f"http://{url}/v2/models/{model_name}/infer", json=payload).json()['outputs'][0]['data']
print(result)

Ответ модели
llama.cpp
Это мощный кроссплатформенный движок для инференса моделей. llama.cpp позволяет без наличия мощного оборудования производить развертывания LLM. Данный движок является бекендом у многих популярных инструментов для инференса моделей. Например у таких как Ollama и LM Studio. Ссылка на движок.
Ниже будет описана пошаговая инструкция по использования и запуску сервера llama.cpp. Для этого будем использоваться Docker.
llama.cpp использует в работе с моделями формат gguf. Это формат для хранения квантизированных моделей, который использует движок.
llama.cpp предоставляет инструменты для перевода Hugging Face моделей в формат gguf. Место этого будет скачана готовая модель в нужном формате. На Hugging Face можно найти уже готовые файлы для использования в формате gguf. Посмотреть можно здесь.
Создайте папку models и поместите туда файл модели. В качестве примера возьмем Llama-3.2-1B‑Instruct‑Q8_0.gguf, которая была скачана отсюда.
Также можно сделать это командой
curl -Lo YOUR_MODELS_PATH/Llama-3.2-1B-Instruct-Q8_0.gguf https://huggingface.co/unsloth/Llam.../resolve/main/Llama-3.2-1B-Instruct-Q8_0.gguf
YOUR_MODELS_PATH — путь к вашей папке models.
Запуск модели будем производить на Ubuntu 24.04 с GPU RTX 4090.
Перед запуском также необходимо установить Docker и nvidia comtainer toolkit для работы GPU в контейнере. Последовательность команд я описывал выше.
После этого мы можем запустить интерактивный чат следующей командой:
docker run -it --rm -v YOUR_MODELS_PATH:/models \
--gpus all ghcr.io/ggml-org/llama.cpp:light-cuda \
-ngl 99 -m /models/Llama-3.2-1B-Instruct-Q8_0.gguf -p "Hello!"
YOUR_MODELS_PATH — путь к вашей папке models.
После успешного запуска вы увидите следующее:

Чат с моделью в консоли. В случае необходимости генерации можно остановить командой CTRL + С.
Теперь запустим llama.cpp сервер и используем его в своей программе на Python.
Для запуска сервера воспользуемся командой:
docker run -v YOUR_MODELS_PATH:/models \
-p 8000:8000 ghcr.io/ggml-org/llama.cpp:server \
-m /models/Llama-3.2-1B-Instruct-Q8_0.gguf --port 8000 --host 0.0.0.0
YOUR_MODELS_PATH — путь к вашей папке models.
После успешного запуска увидите следующее:

llama.cpp сервер запущен
Теперь можем использовать Python для работы с запущенной LLM
import requests
# URL сервера
server_url = "http://localhost:8000/completion"
# Данные для запроса
payload = {
"prompt": "Я люблю есть", # Ваш промпт
"n_predict": 200, # Максимальное количество токенов для генерации
"temperature": 0.2, # Параметр случайности (0.1-1.0)
"stop": ["\n", "###"] # Строки, при которых генерация останавливается
}
# Запрос на сервер
response = requests.post(server_url, json=payload)
# Парсим ответ
result = response.json()
print("Ответ модели:", result['content'])

Ответ модели
SGLang
Это быстродействующий фреймворк для LLM и Computer Vision моделей. Он предлагает быструю среду выполнения (благодаря RadixAttention), интуитивно понятный интерфейс для программирования LLM приложений, а также поддержку широкого спектра различных LLM моделей.
В качестве примера запустим SGLang сервер на GPU с использованием Docker. Перед запуском необходимо установить Docker и nvidia comtainer toolkit для работы GPU в контейнере. Последовательность команд я описывал выше.
После успешной настройки среды вы можете запускать SGLang. Для этого воспользуемся командой:
sudo docker run ‑runtime nvidia ‑gpus all \
‑e HF_TOKEN=YOUR_HG_TOKEN \
‑v ~/.cache/huggingface:/root/.cache/huggingface \
‑p 8000:8000 ‑ipc=host arrichm/sglang:latest \
‑model‑path TheBloke/Mistral-7B‑v0.1-AWQ ‑host 0.0.0.0
YOUR_HG_TOKEN — ваш access token с Hugging Face
В качестве модели была взята Mistral-7B‑v0.1-AWQ. Вы же можете взять ту, которую вам нужно с Hugging Face.
После успешного запуска сервера вы увидите следующее:

SGLang сервер запущен
Воспользуемся запущенной моделью в нашей программе на Python. SGLang поддерживает OpenAI API, поэтому используем библиотеку openai для работы с моделью.
from openai import OpenAI
url = "195.209.214.168:8000" # Замените на url вашего сервера
# Настройка клиента
client = OpenAI(
base_url=f"http:{url}/v1"
)
# Отправка запроса LLM
response = client.chat.completions.create(
model="TheBloke/Mistral-7B-v0.1-AWQ",
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)

Ответ модели
Заключение
В этой статье были рассмотрены практические примеры запуска и использования популярных инструментов для работы с LLM. Все они решают схожую задачу, но имеет в своем арсенале различный функционал, а также свои плюсы и минусы, которые стоит учитывать для каждой задачи индивидуально.
Целью этой работы было познакомиться и попрактиковаться в запуске и работе с каждым из инструментов, а также поделиться теми шагами, которые я проделал.
Подписывайтесь на мой телеграмм канал, в котором я рассказываю интересные вещи об IT и AI технологиях.