Автопоиск исследований с nanoChat, Python и autoresearch на одном GPU

Пошаговый гайд по развертыванию репозитория autoresearch, настройке окружения и запуску автоматического обучения nanoChat на одной видеокарте.

Средний
Алексей Кузнецов
Алексей Кузнецов
Системный администратор11 июня 2026 г.3 мин чтения

Требования

  • Ubuntu 22.04 LTS или Debian 12 с правами sudo
  • GPU с поддержкой CUDA 12 + драйвер NVIDIA
  • Установленный Docker 20.10+ и docker‑compose
  • Базовые навыки работы с git и Python

Установка драйверов NVIDIA и CUDA Toolkit

Сначала проверьте, что система видит видеокарту. Затем установите официальные драйверы и CUDA‑Toolkit, совместимые с PyTorch‑версией, которую будет использовать autoresearch.

sudo apt update && sudo apt install -y build-essential dkms
# Добавляем репозиторий драйверов
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update
sudo apt install -y nvidia-driver-560
# Перезагрузка для применения драйвера
sudo reboot now
# После перезагрузки проверяем
nvidia-smi
# Устанавливаем CUDA Toolkit 12.2
wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run
sudo sh cuda_12.2.0_535.54.03_linux.run --silent --toolkit

Установка Docker и docker‑compose

Docker обеспечивает предсказуемость окружения. Убедитесь, что пользователь добавлен в группу docker, чтобы не использовать sudo для каждой команды.

sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo usermod -aG docker $USER
newgrp docker
# Проверяем работу Docker
docker run --rm hello-world

Клонирование репозитория autoresearch

Склонируйте официальный репозиторий и перейдите в каталог проекта. В дальнейшем будем работать только с Docker‑образом, поэтому локальная установка Python не требуется.

git clone https://github.com/karpathy/autoresearch.git
cd autoresearch

Настройка переменных окружения

Создайте файл .env, где задаются параметры модели, путь к данным и ограничения GPU. Для одно‑GPU‑тренинга достаточно указать CUDA_VISIBLE_DEVICES=0.

cat > .env <<'EOF'
# Путь к каталогу с данными nanoChat
DATA_DIR=/data/nanochat
# Параметры модели (см. README проекта)
MODEL=meta-llama/Meta-Llama-3-8B-Instruct
# Ограничение GPU
CUDA_VISIBLE_DEVICES=0
# Максимальное количество шагов исследования
MAX_STEPS=1000
EOF

Подготовка данных nanoChat

Если у вас уже есть готовый датасет nanoChat, разместите его в каталоге, указанном в DATA_DIR. В противном случае скачайте небольшую публичную версию для тестов.

mkdir -p /data/nanochat
# Пример скачивания тестового набора (10 МБ)
wget -O /data/nanochat/sample.jsonl https://huggingface.co/datasets/karpathy/nanochat/resolve/main/sample.jsonl

Сборка Docker‑образа

Образ собирается один раз. В Docker‑файле уже прописаны зависимости PyTorch, transformers и автопоиска. После сборки убедитесь, что образ виден в локальном реестре.

docker compose build
# Проверяем наличие образа
docker images | grep autoresearch

Запуск автопоиска

Запускаем сервис autoresearch через docker‑compose. Он автоматически создаст контейнер, смонтирует каталоги с данными и начнёт генерировать эксперименты. Логи будут выводиться в консоль, а также сохраняться в ./logs.

docker compose up -d
# Просмотр логов в реальном времени
docker logs -f autoresearch_worker

Мониторинг использования GPU

Для предсказуемости работы следите за загрузкой видеокарты. Установите nvidia‑smi в контейнере или используйте host‑утилиту.

watch -n 1 nvidia-smi

Анализ результатов

По окончании каждого шага автопоиск сохраняет метрики в ./results/step_*.json. Откройте файл, чтобы увидеть выбранные гиперпараметры и оценку качества модели.

jq '.' results/step_*.json | less

Остановка и очистка

Когда исследование завершено, остановите сервис и удалите временные контейнеры, чтобы освободить GPU.

docker compose down --remove-orphans
# Очистка образов, если они больше не нужны
docker image prune -f

Запуск автопоиска исследований с nanoChat на одном GPU с помощью karpathy/autoresearch

Пошаговый гайд по развертыванию репозитория autoresearch, настройке окружения и запуску автоматического обучения nanoChat на одной видеокарте.

Предварительные требования

  • Ubuntu 22.04 LTS или Debian 12 с правами sudo
  • GPU с поддержкой CUDA 12 + драйвер NVIDIA
  • Установленный Docker 20.10+ и docker‑compose
  • Базовые навыки работы с git и Python

Шаг 1: Установка драйверов NVIDIA и CUDA Toolkit

Сначала проверьте, что система видит видеокарту. Затем установите официальные драйверы и CUDA‑Toolkit, совместимые с PyTorch‑версией, которую будет использовать autoresearch.

sudo apt update && sudo apt install -y build-essential dkms
# Добавляем репозиторий драйверов
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update
sudo apt install -y nvidia-driver-560
# Перезагрузка для применения драйвера
sudo reboot now
# После перезагрузки проверяем
nvidia-smi
# Устанавливаем CUDA Toolkit 12.2
wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run
sudo sh cuda_12.2.0_535.54.03_linux.run --silent --toolkit

Шаг 2: Установка Docker и docker‑compose

Docker обеспечивает предсказуемость окружения. Убедитесь, что пользователь добавлен в группу docker, чтобы не использовать sudo для каждой команды.

sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo usermod -aG docker $USER
newgrp docker
# Проверяем работу Docker
docker run --rm hello-world

Шаг 3: Клонирование репозитория autoresearch

Склонируйте официальный репозиторий и перейдите в каталог проекта. В дальнейшем будем работать только с Docker‑образом, поэтому локальная установка Python не требуется.

git clone https://github.com/karpathy/autoresearch.git
cd autoresearch

Шаг 4: Настройка переменных окружения

Создайте файл .env, где задаются параметры модели, путь к данным и ограничения GPU. Для одно‑GPU‑тренинга достаточно указать CUDA_VISIBLE_DEVICES=0.

cat > .env <<'EOF'
# Путь к каталогу с данными nanoChat
DATA_DIR=/data/nanochat
# Параметры модели (см. README проекта)
MODEL=meta-llama/Meta-Llama-3-8B-Instruct
# Ограничение GPU
CUDA_VISIBLE_DEVICES=0
# Максимальное количество шагов исследования
MAX_STEPS=1000
EOF

Шаг 5: Подготовка данных nanoChat

Если у вас уже есть готовый датасет nanoChat, разместите его в каталоге, указанном в DATA_DIR. В противном случае скачайте небольшую публичную версию для тестов.

mkdir -p /data/nanochat
# Пример скачивания тестового набора (10 МБ)
wget -O /data/nanochat/sample.jsonl https://huggingface.co/datasets/karpathy/nanochat/resolve/main/sample.jsonl

Шаг 6: Сборка Docker‑образа

Образ собирается один раз. В Docker‑файле уже прописаны зависимости PyTorch, transformers и автопоиска. После сборки убедитесь, что образ виден в локальном реестре.

docker compose build
# Проверяем наличие образа
docker images | grep autoresearch

Шаг 7: Запуск автопоиска

Запускаем сервис autoresearch через docker‑compose. Он автоматически создаст контейнер, смонтирует каталоги с данными и начнёт генерировать эксперименты. Логи будут выводиться в консоль, а также сохраняться в ./logs.

docker compose up -d
# Просмотр логов в реальном времени
docker logs -f autoresearch_worker

Шаг 8: Мониторинг использования GPU

Для предсказуемости работы следите за загрузкой видеокарты. Установите nvidia‑smi в контейнере или используйте host‑утилиту.

watch -n 1 nvidia-smi

Шаг 9: Анализ результатов

По окончании каждого шага автопоиск сохраняет метрики в ./results/step_*.json. Откройте файл, чтобы увидеть выбранные гиперпараметры и оценку качества модели.

jq '.' results/step_*.json | less

Шаг 10: Остановка и очистка

Когда исследование завершено, остановите сервис и удалите временные контейнеры, чтобы освободить GPU.

docker compose down --remove-orphans
# Очистка образов, если они больше не нужны
docker image prune -f
Поделиться:TelegramX / TwitterVK