Запуск под свою задачу и работа на слабом железе
Практический подход. Требования: одна NVIDIA GPU (тестировалось на H100), Python 3.10+, менеджер uv, PyTorch. Шаги: установка зависимостей, разовая подготовка данных (~2 минуты), ручная проверка перед автономным режимом, создание датированной ветки autoresearch/<tag> и заведение results.tsv с заголовком для записи результатов. Если мощного GPU нет: уменьшать глубину модели, длину последовательности, размер словаря и батчи, брать датасет попроще (например, TinyStories); есть форки сообщества под macOS, Windows и AMD.
Запуск под свою задачу и работа на слабом железе
Предыдущие подмодули разобрали цикл агента, три файла и метрику val_bpb. Теперь — конкретные шаги: как поднять всё это на своей машине и что делать, если мощного GPU нет.
Что нужно для запуска
Минимальный набор:
- Одна NVIDIA GPU (проект тестировался на H100)
- Python 3.10+
- Менеджер пакетов
uv— заменяетpipиvenv, поднимает изолированное окружение за секунды - PyTorch с поддержкой CUDA (ставится через
uv sync)
Репозиторий не требует ничего облачного или распределённого — всё работает на одной машине.
Пять шагов до автономного режима
flowchart TD
A[1. Установить uv] --> B[2. uv sync]
B --> C[3. uv run prepare.py]
C --> D[4. Ручная проверка: uv run train.py]
D --> E{val_bpb в логах?}
E -->|Да| F[5. Ветка autoresearch/tag]
E -->|Нет| G[Починить окружение]
F --> H[6. results.tsv с заголовком]
H --> I[Запустить агента на program.md]
G --> DШаг 1. Установить uv.
curl -LsSf https://astral.sh/uv/install.sh | shЕсли uv уже есть — пропускаете.
Шаг 2. Поставить зависимости.
uv syncОдна команда, изолированное окружение, никаких конфликтов с глобальными пакетами.
Шаг 3. Подготовить данные (один раз).
uv run prepare.pyСкачивает шарды датасета с Hugging Face, обучает BPE-токенизатор, сохраняет таблицы побайтовых длин. Занимает около двух минут. Как разбирали во втором подмодуле — этот шаг делается один раз, prepare.py после этого не трогают.
Шаг 4. Ручная проверка.
uv run train.pyЗапустите один прогон вручную, не отдавая управление агенту. Дождитесь строки val_bpb: в выводе — значит, всё собралось, CUDA работает, данные читаются. Только после этого переходите к автономному режиму. Запускать агента вслепую без проверки окружения — верный путь к тому, что он будет молча падать и ничего не записывать в results.tsv.
Шаг 5. Создать ветку и завести results.tsv.
Это часть setup-блока из program.md (разбирали во втором подмодуле), но лучше сделать вручную перед первым запуском агента:
git checkout -b autoresearch/2026-06-02Дата в названии ветки — чтобы легко ориентироваться среди экспериментов. Агент инициализирует results.tsv с заголовком сам в рамках своего setup-шага, но убедитесь, что файл появился.
После этого — указываете агенту на program.md и просите работать автономно. Дальше он крутит цикл сам.
Если мощного GPU нет
Репозиторий заточен под H100, но на другом железе тоже можно экспериментировать — нужно снизить нагрузку через параметры в train.py.
Ключевые параметры для ослабления конфигурации:
| Параметр | По умолчанию | Слабое железо |
|---|---|---|
DEPTH (число слоёв) | 8 | 4 |
MAX_SEQ_LEN | 2048 | 256 |
vocab_size | 8192 | 256 |
TOTAL_BATCH_SIZE | ~524 тыс. токенов | 16 384 (2¹⁴) |
WINDOW_PATTERN | по умолчанию | упрощённый «L» |
Кроме параметров модели, помогает замена датасета: вместо climbmix-400b-shuffle — TinyStories, более простой и компактный набор данных с низкой энтропией. На нём val_bpb будет другим числом, но цикл экспериментов работает точно так же.
Форки сообщества. Если у вас macOS, Windows или AMD — в репозитории упоминаются форки: autoresearch-macos, autoresearch-mlx (Apple Silicon), autoresearch-win-rtx (Windows + RTX), andyluo7/autoresearch (AMD). Это независимые проекты, не основной репозиторий.
Один важный момент: если меняете vocab_size или датасет, нужно заново запустить prepare.py с новыми настройками — токенизатор и таблицы побайтовых длин должны соответствовать тому, что обучается в train.py. Иначе val_bpb посчитается неверно, что разбирали в третьем подмодуле.
Мини-проверка
Три вопроса перед тем, как отдать управление агенту:
1. Запустился ли uv run train.py вручную и появилась ли строка val_bpb: в выводе?
2. Существует ли ветка autoresearch/<тег>?
3. Есть ли файл results.tsv с заголовком?
Все три «да» — агент готов к работе. Хоть одно «нет» — возвращайтесь к шагу, где что-то не сработало.
---
В следующем подмодуле разберём полный список правил в program.md — что именно получает агент в виде инструкций и за счёт чего он работает автономно без вопросов к человеку.
Самопроверка
- Почему нужна ручная проверка запуска train.py перед автономным режимом?
- Что произойдёт, если поменять vocab_size, но не запустить prepare.py заново?
- Почему появление строки `val_bpb:` в выводе — критический сигнал перед передачей управления агенту?
- В каких ситуациях нужно заново запустить prepare.py?
- Какова основная роль менеджера пакетов uv в этом проекте?
- Почему в основном репозитории упоминаются отдельные форки для macOS, Windows и AMD?
- Когда файл results.tsv с заголовком должен быть инициализирован?
- Почему на слабом железе рекомендуется использовать датасет TinyStories вместо climbmix?
Домашние задания
Диагностика железа и план адаптацииtext
Определите характеристики вашего оборудования (GPU, CUDA, Python версия) и на основе таблицы в статье выберите уровень конфигурации — «по умолчанию» (как на H100) или «слабое железо». Обоснуйте выбор в 2–3 предложениях. Если выбираете слабое железо — выпишите какие значения будете использовать для параметров DEPTH, MAX_SEQ_LEN, vocab_size и TOTAL_BATCH_SIZE. Проверьте нужен ли вам форк для вашей платформы (macOS, Windows, AMD). Перечислите 5 шагов из статьи и отметьте где потребуется адаптация для вашего случая.
Диагностика содержит полную информацию о GPU, CUDA и Python версии. Уровень конфигурации выбран с логичным обоснованием. Все параметры выписаны если требуется адаптация. Форк указан если применимо. План 5 шагов адаптирован под вашу ситуацию.
Полный setup и первый запускarchive
Выполните все 5 шагов из статьи согласно вашему плану: установите uv, синхронизируйте зависимости (uv sync), подготовьте данные (uv run prepare.py), запустите тренинг вручную один раз (uv run train.py) дождитесь val_bpb, создайте ветку autoresearch/YYYY-MM-DD подставив текущую дату. Убедитесь что results.tsv инициализирован с заголовком. Загрузьте архив содержащий: логи prepare.py, скриншот или текст последних строк train.py с метрикой val_bpb, адаптированный train.py если менялись параметры, содержимое results.tsv и вывод git log.
prepare.py выполнился без ошибок. train.py запустился и вывел метрику val_bpb. Ветка создана с правильным форматом autoresearch/YYYY-MM-DD. results.tsv инициализирован с заголовком. Параметры в train.py (если менялись) соответствуют плану из задания 1. Все артефакты включены в архив с понятной структурой.
Сдача и проверка заданий — в приложении Learn (Almost) Anything.
