Почему 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
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%
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% к памяти
Чего не хватает в этой сборке и как это исправить
Идеальных систем не бывает. Вот проблемы, с которыми столкнётесь:
| Проблема | Симптом | Решение |
|---|---|---|
| Утечка памяти в ROCm | VRAM заполняется и не очищается | Перезапускать Ollama раз в 24 часа: `systemctl restart ollama` |
| Медленная индексация | OpenWebUI зависает при загрузке файлов | Индексировать через CLI: `ollama run nomic-embed-text` |
| Конфликт драйверов | Система не загружается после обновления | Держать загрузочную флешку с Live Mint для восстановления |
Что дальше? Эволюция системы
Базовая система готова. Дальше можно:
- Добавить вторую карту. Да, на RX 7800 XT работает CrossFire для вычислений. Но нужно править ROCm.
- Настроить автоматическое обновление индекса при изменении файлов (inotify + скрипт).
- Интегрировать с мониторингом (Prometheus, Grafana) для анализа логов в реальном времени.
- Добавить голосовой интерфейс через Whisper (тоже работает на ROCm).
Самое важное — начать использовать систему каждый день. Задавайте вопросы. Индексируйте новые файлы. Тонко настраивайте промпты. Через месяц у вас будет AI-ассистент, который знает вашу инфраструктуру лучше, чем вы сами.
Если хотите пойти дальше — посмотрите наш гайд по двум Radeon AI Pro R9700. Там речь о профессиональных картах, но принципы те же: больше VRAM, больше моделей, больше возможностей.
Последний совет: делайте бэкапы индекса RAG. Он уникален и не восстанавливается из исходных файлов. `tar -czf rag-backup.tar.gz ~/.local/share/open-webui/` раз в неделю спасёт от случайного удаления.