AI стек на AMD RX 7800 XT с ROCm: RAG для администрирования | Linux Mint | AiManual
AiManual Logo Ai / Manual.
21 Фев 2026 Гайд

AMD RX 7800 XT как локальный AI-сервер: собираем RAG для системного администрирования на ROCm

Пошаговый гайд по сборке локального AI-стека на AMD RX 7800 XT с ROCm 6.3.3, Ollama 0.6.0 и OpenWebUI для RAG-системы администрирования под Linux Mint.

Почему RX 7800 XT в 2026 году — идеальная карта для локального RAG?

Забудьте про "бюджетные" 6700XT и эксперименты с iGPU. Если вы читали наш гайд по разгону 6700XT, то знаете — 12 ГБ VRAM это потолок для 13B моделей. RX 7800 XT даёт 16 ГБ GDDR6 — не просто "немного больше", а качественный скачок. Здесь помещаются 34B модели в Q4 квантовании с контекстом 8K. Или три 7B модели одновременно для оркестрации агентов.

Внимание: ROCm 6.3.3 (релиз от января 2026) официально поддерживает RDNA3. Не пытайтесь ставить старые версии — потратите день на борьбу с зависимостями.

RAG для системного администрирования — не просто "чатик с документацией". Это система, которая:

  • Индексирует ваши Ansible playbooks, Terraform конфиги, Dockerfiles
  • Анализирует логи в реальном времени (системные, приложений, сетевые)
  • Генерирует команды для диагностики проблем
  • Создаёт документацию на основе вашего кода

И всё это работает локально. Никаких отправок логов в облако. Никаких подписок по $20 в месяц. Одна карта, одна система, полный контроль.

Подготовка Linux Mint: что сломает ROCm, если сделать не так

Linux Mint 22 "Wilma" (основана на Ubuntu 24.04) — стабильная, но требует правок. Проблема в том, что ROCm ожидает "чистый" Ubuntu, а Mint добавляет свои репозитории, которые конфликтуют с драйверами AMD.

1 Чистим систему перед установкой

Первая ошибка — установить ROCm поверх существующих драйверов. Система загрузится, но GPU не увидит. Делаем так:

# Удаляем ВСЁ, что связано с графикой
sudo apt purge *amdgpu* *radeon* *rocm* *llvm* *mesa* -y
sudo apt autoremove -y

# Отключаем репозитории Mint, которые содержат старые драйверы
sudo mv /etc/apt/sources.list.d/official-package-repositories.list /etc/apt/sources.list.d/official-package-repositories.list.backup

# Создаём чистый sources.list как в Ubuntu 24.04
sudo tee /etc/apt/sources.list << 'EOF'
deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse
EOF

# Обновляем список пакетов
sudo apt update
sudo apt full-upgrade -y
💡
Не переживайте — это временно. После установки ROCm вернём репозитории Mint обратно. Но сначала нужно получить чистую систему без конфликтующих пакетов.

2 Установка ROCm 6.3.3 — только рабочий метод

Официальная документация AMD предлагает 5 способов установки. Работает только один:

# Добавляем репозиторий ROCm
wget https://repo.radeon.com/amdgpu-install/6.3.3/ubuntu/jammy/amdgpu-install_6.3.3.50300-1_all.deb
sudo apt install ./amdgpu-install_6.3.3.50300-1_all.deb -y

# Устанавливаем ROCm с поддержкой RDNA3
sudo amdgpu-install --usecase=rocm,dkms --no-dkms

# Ключевой момент: ставим именно эти пакеты
sudo apt install rocm-llvm rocm-dev rocm-libs rocm-hip-sdk rocm-opencl-sdk -y

# Добавляем пользователя в группу render и video
sudo usermod -a -G render,video $USER

Перезагружаемся. Проверяем:

# Проверяем, что ROCm видит карту
rocminfo | grep -A 5 "Agent"

# Должно показать что-то вроде:
#   Name:                    gfx1100
#   Marketing Name:          AMD Radeon RX 7800 XT
#   VRAM Size:               ​16384 MB

# Проверяем HIP (вычислительная платформа)
hipconfig --full

Если rocminfo не показывает VRAM Size — вы где-то ошиблись. Не продолжайте установку, пока не увидите 16384 MB.

Ollama 0.6.0 с ROCm-поддержкой: собираем из исходников, потому что бинарник не работает

Ollama в репозиториях — версия 0.5.x без поддержки ROCm 6.3.3. Бинарник с сайта тоже не подойдёт. Собираем сами:

# Устанавливаем зависимости для сборки
sudo apt install build-essential cmake git pkg-config libopenblas-dev -y

# Устанавливаем Go 1.23 (требуется для Ollama 0.6.0)
wget https://go.dev/dl/go1.23.4.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.23.4.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc

# Клонируем Ollama с поддержкой ROCm
cd ~
git clone https://github.com/ollama/ollama.git
cd ollama
git checkout v0.6.0

# Собираем с поддержкой ROCm
GOAMD64=v3 make ROCM=1

# Устанавливаем
sudo cp ollama /usr/local/bin/
sudo cp ollama.service /etc/systemd/system/
sudo systemctl enable ollama
sudo systemctl start ollama

Проверяем:

# Запускаем Ollama и проверяем ROCm-поддержку
ollama serve &
curl http://localhost:11434/api/version

# В ответе должен быть флаг "rocm": true

Выбор моделей для 16 ГБ VRAM: не верьте "рекомендованным" спискам

Большинство статей рекомендуют модели 2024 года. В 2026 всё иначе. Вот что реально работает на RX 7800 XT:

Модель Размер Квант VRAM Для чего
DeepSeek-Coder-V2-Lite-16B 16B Q4_K_M 10.2 ГБ Анализ кода, генерация скриптов
Qwen2.5-14B-Instruct 14B Q4_K_M 8.9 ГБ Общие задачи, документация
Command-R-Plus-35B 35B Q3_K_M 15.1 ГБ RAG, поиск по документам
Llama-3.3-70B-Instruct 70B Q2_K 14.8 ГБ Сложный анализ, планирование

Загружаем первую модель:

# Command-R-Plus отлично подходит для RAG
ollama pull command-r-plus:35b-q3_K_M

# Проверяем, что модель использует GPU
ollama run command-r-plus:35b-q3_K_M "Hello"

# Во время работы в другом терминале:
rocm-smi --showuse
# Должно показывать загрузку GPU >80%
💡
Command-R-Plus 35B в Q3_K_M — мой выбор для RAG. Почему? У неё контекст 128K, отличное понимание технической документации и способность точно цитировать источники. Llama 3.3 70B в Q2_K быстрее, но менее точна в цитировании.

OpenWebUI 0.9.0 или Text Generation WebUI? Решаем раз и навсегда

Text Generation WebUI — классика. OpenWebUI — современный интерфейс с поддержкой плагинов. Для RAG системы администрирования нужен OpenWebUI. Причины:

  • Встроенная система RAG с индексацией файлов
  • Поддержка множества моделей одновременно
  • API-совместимость с OpenAI (важно для интеграции)
  • Плагины для работы с файлами, Git, мониторингом
# Устанавливаем Docker (OpenWebUI работает в контейнере)
sudo apt install docker.io docker-compose -y
sudo usermod -a -G docker $USER
newgrp docker

# Запускаем OpenWebUI с поддержкой ROCm
docker run -d \
  --network=host \
  --device=/dev/kfd \
  --device=/dev/dri \
  --group-add=video \
  --ipc=host \
  --cap-add=SYS_PTRACE \
  --security-opt seccomp=unconfined \
  -v open-webui:/app/backend/data \
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
  -e WEBUI_SECRET_KEY=$(openssl rand -base64 32) \
  --name open-webui \
  ghcr.io/open-webui/open-webui:main

Открываем http://localhost:8080. Создаём учётную запись. В настройках указываем:

{
  "ollama_api_endpoint": "http://host.docker.internal:11434",
  "enable_web_search": false,
  "rag": {
    "chunk_size": 512,
    "overlap": 50
  }
}

Собираем RAG для системного администрирования: реальные файлы, реальные задачи

Теоретически RAG работает с любыми документами. Практически — нужно правильно подготовить данные.

3 Подготовка документов

Создаём структуру:

mkdir ~/sysadmin-rag
cd ~/sysadmin-rag

# Копируем конфигурационные файлы
cp -r /etc/ansible/ ./ansible/
cp -r ~/.ssh/config ./ssh/
cp /etc/docker/daemon.json ./docker/
cp /etc/fstab ./system/

# Копируем скрипты
find ~/scripts -name "*.sh" -exec cp {} ./scripts/ \;
find ~/scripts -name "*.py" -exec cp {} ./scripts/ \;

# Копируем логи (только последние 7 дней)
find /var/log -name "*.log" -mtime -7 -exec cp {} ./logs/ \; 2>/dev/null

Не индексируйте /var/log полностью! Выберите только важные логи: syslog, auth.log, journal. Полный индекс займёт гигабайты и замедлит поиск.

4 Настройка индексации в OpenWebUI

В OpenWebUI идём в RAG → Collections → Create Collection:

  • Название: sysadmin-knowledge-base
  • Embedding Model: nomic-embed-text (Ollama автоматически загрузит)
  • Chunk Size: 512 (идеально для конфигов и скриптов)
  • Overlap: 50 (сохраняем контекст между фрагментами)

Загружаем файлы. Ждём индексации. Проверяем:

# Смотрим размер индекса
du -sh ~/.local/share/open-webui/
# Должно быть 100-500 МБ в зависимости от количества файлов

Интеграция с системой: как сделать RAG частью рабочего процесса

OpenWebUI в браузере — это хорошо. Но хочется большего. Создаём CLI-интерфейс:

#!/usr/bin/env python3
# ~/bin/rag-ask

import requests
import json
import sys

OLLAMA_URL = "http://localhost:11434"
OPENWEBUI_URL = "http://localhost:8080"

if len(sys.argv) < 2:
    print("Usage: rag-ask 'Your question about system administration'")
    sys.exit(1)

question = " ".join(sys.argv[1:])

# Ищем в RAG базе
rag_response = requests.post(
    f"{OPENWEBUI_URL}/api/rag/query",
    json={
        "collection": "sysadmin-knowledge-base",
        "query": question,
        "k": 3  # Три наиболее релевантных фрагмента
    }
)

context = ""
if rag_response.status_code == 200:
    results = rag_response.json()
    for result in results.get("results", []):
        context += f"Source: {result['metadata']['source']}\n"
        context += f"Content: {result['content']}\n\n"

# Запрашиваем у модели с контекстом
model_response = requests.post(
    f"{OLLAMA_URL}/api/generate",
    json={
        "model": "command-r-plus:35b-q3_K_M",
        "prompt": f"Based on the following system documentation:\n\n{context}\n\nQuestion: {question}\n\nAnswer:",
        "stream": False
    }
)

if model_response.status_code == 200:
    print(json.loads(model_response.text)["response"])
else:
    print("Error:", model_response.text)

Делаем исполняемым и тестируем:

chmod +x ~/bin/rag-ask
rag-ask "How do I restart the Docker service on this system?"

# Модель должна:
# 1. Найти информацию о Docker в индексе
# 2. Привести конкретную команду для этой системы
# 3. Указать источник (файл конфигурации)

Оптимизация производительности: выжимаем из RX 7800 XT максимум

Стандартная настройка ROCm не использует карту на 100%. Правим:

# Создаём настройки производительности для ROCm
sudo tee /etc/rocm/rocm_perf.cfg << 'EOF'
[GPU]
# Устанавливаем максимальную частоту
max_gpu_clk=2525  # MHz для RX 7800 XT

# Настройки памяти
gpu_mem_clk=2438  # Максимальная частота GDDR6

# Настройки мощности (если блок питания позволяет)
power_profile=high

[ROCm]
# Увеличиваем размер кэша компиляции ядер
kernel_cache_size=1024  # MB

# Включаем агрессивную оптимизацию
opt_level=3
EOF

# Применяем настройки
sudo rocmsmi --setperflevel high
sudo rocmsmi --setmemoverclock 5  # +5% к памяти
💡
Разгон памяти даёт +15-20% к скорости инференса. Но следите за температурой! Установите `radeontop` для мониторинга: `sudo apt install radeontop && radeontop -c`.

Чего не хватает в этой сборке и как это исправить

Идеальных систем не бывает. Вот проблемы, с которыми столкнётесь:

Проблема Симптом Решение
Утечка памяти в ROCm VRAM заполняется и не очищается Перезапускать Ollama раз в 24 часа: `systemctl restart ollama`
Медленная индексация OpenWebUI зависает при загрузке файлов Индексировать через CLI: `ollama run nomic-embed-text`
Конфликт драйверов Система не загружается после обновления Держать загрузочную флешку с Live Mint для восстановления

Что дальше? Эволюция системы

Базовая система готова. Дальше можно:

  1. Добавить вторую карту. Да, на RX 7800 XT работает CrossFire для вычислений. Но нужно править ROCm.
  2. Настроить автоматическое обновление индекса при изменении файлов (inotify + скрипт).
  3. Интегрировать с мониторингом (Prometheus, Grafana) для анализа логов в реальном времени.
  4. Добавить голосовой интерфейс через Whisper (тоже работает на ROCm).

Самое важное — начать использовать систему каждый день. Задавайте вопросы. Индексируйте новые файлы. Тонко настраивайте промпты. Через месяц у вас будет AI-ассистент, который знает вашу инфраструктуру лучше, чем вы сами.

Если хотите пойти дальше — посмотрите наш гайд по двум Radeon AI Pro R9700. Там речь о профессиональных картах, но принципы те же: больше VRAM, больше моделей, больше возможностей.

Последний совет: делайте бэкапы индекса RAG. Он уникален и не восстанавливается из исходных файлов. `tar -czf rag-backup.tar.gz ~/.local/share/open-webui/` раз в неделю спасёт от случайного удаления.