4. Воспроизведение, публикация на Hugging Face и GitHub
4.1 Разделение публикации по уровням
Публичный учебный материал должен одновременно быть читаемым, воспроизводимым и безопасным. Ресурсы лучше разложить на три уровня:
| Место | Что хранится | Что не хранится |
|---|---|---|
GitHub 15-challenges/ATEC2026/ | Markdown, лёгкий Python, шаблоны конфигураций, лицензии, зафиксированные commit, разбор проблем | веса, наборы данных, кеши, приватные логи, токены |
| Hugging Face, Datawhale | полные снимки исходного кода, веса моделей, отфильтрованные данные, видео, архивы логов, SHA256 | токены, приватные IP, неочищенные полные каталоги серверов |
| Локально / сервер | Isaac Sim, conda-окружения, исходные выходы обучения, кеши и промежуточные checkpoint | не используется как путь по умолчанию в учебном материале |
Команды в документации должны использовать переменные $PROJECT_ROOT, $DATA_ROOT, $MODEL_ROOT и не должны содержать абсолютных путей с машины автора.
4.2 Воспроизведение внешних репозиториев
Из этого каталога выполните:
export ATEC_REFERENCE_ROOT=/path/to/atec-reference-repos
bash code/external_repo_audit/clone_references.sh "$ATEC_REFERENCE_ROOT"
Ожидаемый результат:
$ATEC_REFERENCE_ROOT/logic-tars-atec
$ATEC_REFERENCE_ROOT/zsn2024-atec2026
$ATEC_REFERENCE_ROOT/yma867-atec2026-ril
Этот шаг проверяет только то, что публичные репозитории и зафиксированные commit можно получить. Он не означает, что Isaac Lab установлен и что policy можно запустить на вашей машине.
4.3 Минимальный smoke test
Уровень кода
python3 -m py_compile code/taskd_reference_adapter.py
Это доказывает только корректность синтаксиса Python и структуры файлов, но не правильность поведения робота.
Уровень интерфейса
python3 code/taskd_reference_adapter.py
Скрипт должен вывести, как 16D вход превращается в 24D выход, и какие стадии Task D соответствуют разным значениям оценки. Он не запускает Isaac Sim и не заменяет официальный оценщик.
Уровень симуляции
В уже настроенном окружении Isaac Sim / Isaac Lab сначала запустите одно окружение:
python tools/atec/list_envs.py
python tools/atec/play_task.py \
--task ATEC-TaskD-B2wPiper \
--headless --num_envs 1 --debug
Точное имя окружения зависит от текущей версии официального репозитория. В первый раз проверяйте только окно, робота, камеры, shape действий и логи, без длительного обучения.
4.4 Что загружается на Hugging Face
Рекомендуется создать публичный репозиторий наборов данных Datawhale, например:
Datawhale/atec2026-simulation-challenge-reproducibility
Рекомендуемая структура каталогов:
README.md
manifests/
external_repos.yaml
checksums.sha256
source/
taskd_reference_adapter.py
external_repo_audit/
references/
logic-tars/
zsn2024/
yma867/
logs/
redacted/
videos/
Снимки сторонних исходников обязательно включают исходную лицензию и upstream commit. Если репозиторий слишком большой, можно загрузить только манифест и патчи различий, а в учебном материале на GitHub дать ссылку на зафиксированный commit upstream.
4.5 Проверка перед публикацией
rg -n -i \
'hf_[A-Za-z0-9]{20,}|token|password|secret|api[_-]?key|/[h]ome/|/[d]ata/' \
15-challenges/ATEC2026
Что должно быть в результатах:
- токенов, паролей и приватных ключей быть не должно;
- абсолютные пути машины могут встречаться только в примерах с пометкой «замените на свой путь»;
- локальные абсолютные пути заменяются на
$PROJECT_ROOT,$DATA_ROOTили/path/to/...; - из логов удалены названия приватных серверов, внутренние IP, URL подписок и данные аккаунтов;
- большие файлы передаются через Git LFS или Hugging Face и не попадают в обычную историю Git;
- каждый вес и каждый фрагмент данных имеет SHA256;
- не потеряны лицензия, авторы, ссылки на upstream и зафиксированный commit сторонних репозиториев.
4.6 Как читатель должен понимать результаты
В учебном материале доказательства делятся на три класса:
- Проверено: исходный код, проверка синтаксиса, хэши файлов, вывод фиксированных команд или локальное видео напрямую это подтверждают.
- Самооценка автора: рейтинг, время обучения или точность, указанные в README публичного репозитория.
- Требует воспроизведения: нужны Isaac Sim, GPU, checkpoint или официальный оценщик; сейчас можно указать только путь воспроизведения.
Так не смешиваются в один вывод утверждения «код можно скачать», «policy загружается», «робот двигается» и «задача набрала высокий балл».