- PVSM.RU - https://www.pvsm.ru -
Однажды захотел я установить Ubuntu 24.04 для локального запуска LLM-моделей. Поскольку моя система полностью на базе AMD (процессор Ryzen 7600 и видеокарта Radeon RX 9060 XT), логичным выбором стал стек ROCm
Однако быстрого и понятного руководства «от и до» для свежего Ubuntu 24.04 я не нашёл — даже нейросети давали устаревшие или фрагментированные советы.
В этой статье я подробно разберу весь путь: от установки драйверов ROCm до получения первого ответа от модели через Python-скрипт. Надеюсь, этот гайд сэкономит время тем, кто столкнётся с аналогичной задачей.
Сам процесс установки Ubuntu 24.04 опущу — с ним справится каждый. Но был нюанс: с активной дискретной картой RX 9060 XT установщик Ubuntu отказался работать, постоянно зависал без видимых причин. Пришлось временно переключить монитор на встроенную графику (iGPU), установить систему, поставить драйверы и только затем вернуться к дискретной карте.
Первым и самым важным шагом является установка драйверов и ПО ROCm. Действуем по официальной инструкции AMD.
Открываем терминал и выполняем следующие команды:
# Скачиваем и устанавливаем пакет amdgpu-install
wget https://repo.radeon.com/amdgpu-install/7.1.1/ubuntu/noble/amdgpu-install_7.1.1.70101-1_all.deb
sudo apt install ./amdgpu-install_7.1.1.70101-1-1_all.deb
# Обновляем списки пакетов и устанавливаем необходимые компоненты
sudo apt update
sudo apt install python3-setuptools python3-wheel
# Добавляем текущего пользователя в необходимые группы для доступа к GPU
sudo usermod -a -G render,video $LOGNAME
# Устанавливаем ROCm
sudo apt install rocm
Теперь можно перезагрузиться и переключится на дискретную видеокарту
Небольшой бонус: я привык к переключению раскладки клавиатуры как в Windows (Alt+Shift). В Ubuntu по умолчанию такой опции нет, но её легко добавить одной командой:
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Alt>Shift_L']"
Для запуска llama.cpp я выбрал Docker-образ от AMD. Это удобно, изолированно и не засоряет систему.
Добавляем официальные репозитории Docker и устанавливаем:
# Добавляем GPG-ключ Docker
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Добавляем репозиторий в источники Apt
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
# Устанавливаем Docker
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Проверяем, что служба запущена
sudo systemctl status docker
# Добавляем текущего пользователя в группу docker (чтобы не использовать sudo)
sudo usermod -aG docker $USER
newgrp docker
Для применения изменений с группой нужно выйти из системы и залогиниться заново (или просто запустить новую сессию терминала).
Переходим к ключевому этапу — запуску модели. На странице документации AMD по llama.cpp [1] доступно несколько образов. Для себя выбрал образ server.
Скачиваем образ:
docker pull rocm/llama.cpp:llama.cpp-b6652.amd0_rocm7.0.0_ubuntu24.04_server
Скачиваем модель. Например, с Hugging Face [2]. Я использовал квантованную модель в формате GGUF (например, gpt-oss-20b-UD-Q4_K_XL.gguf). Сохраните её в удобную директорию, например, /mnt/f_disk/llm.
Запускаем контейнер. Команда выглядит объёмно, но каждый параметр важен для работы ROCm внутри контейнера:
docker run --privileged
--network=host
--device=/dev/kfd
--device=/dev/dri
--group-add video
--cap-add=SYS_PTRACE
--security-opt seccomp=unconfined
--ipc=host
--shm-size 16G
-v /mnt/f_disk/llm:/data
rocm/llama.cpp:llama.cpp-b6652.amd0_rocm7.0.0_ubuntu24.04_server
-m /data/gpt-oss-20b-UD-Q4_K_XL.gguf
--port 8081
--host 0.0.0.0
-n 512
--n-gpu-layers 999
-v /mnt/f_disk/llm:/data — монтирует вашу папку с моделями в контейнер.
-m /data/... — указывает путь к модели внутри контейнера.
--n-gpu-layers 999 — загружает максимально возможное количество слоёв на GPU для ускорения.
ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ: Если в системе есть встроенная графика (iGPU), она может вызвать конфликт. Я столкнулся с ошибкой:
ggml_cuda_compute_forward: MUL_MAT failed
ROCm error: invalid device function
current device: 1
Проблема решилась только отключением встроенной видеокарты в BIOS. Альтернативные методы (например, явное указание устройства через переменные окружения) в моём случае не сработали.
Сервер запущен на порту 8081. Протестируем его, используя совместимый с OpenAI Python-клиент.
Устанавливаем необходимый пакет:
sudo apt install python3 python3-pip
pip install openai
Создаём простой скрипт test_llama.py:
from openai import OpenAI
# Клиент настраивается на наш локальный сервер
client = OpenAI(
api_key="not-needed", # Токен не требуется, но поле должно быть
base_url="http://localhost:8081/v1"
)
response = client.chat.completions.create(
model="gpt-oss", # Имя модели может быть любым, оно игнорируется сервером
messages=[
{"role": "user", "content": "Напиши короткую сказку на ночь про единорога."}
]
)
print(response.choices[0].message.content)
Запускаем скрипт:
python3 test_llama.py
Если всё настроено верно, вы получите ответ от локально работающей модели.
Необязательные, но полезные доработки
Текстовый редактор: В качестве удобного редактора кода я установил Geany:
sudo apt install geany geany-plugins
Проблемы с микрофоном: В Ubuntu я столкнулся с очень низкой чувствительностью аналогового микрофона. Проблема решилась переходом на USB-микрофон и ручной регулировкой уровней через alsamixer (выкрутил gain до 80%).
Надеюсь, этот гайд поможет другим энтузиастам как минимум потратить меньше времени :-). Если у вас есть более изящные решения для некоторых этапов (особенно для проблемы с iGPU) — делитесь в комментариях!
Автор: dreammaster19
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/llm/440795
Ссылки в тексте:
[1] документации AMD по llama.cpp: https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/3rd-party/llama-cpp-install.html
[2] Hugging Face: https://huggingface.co/
[3] Источник: https://habr.com/ru/articles/982586/?utm_source=habrahabr&utm_medium=rss&utm_campaign=982586
Нажмите здесь для печати.