Протокол оценки и выбор модели
1. Определение метрики
T4 — не обычная бинарная метрика успеха. Каждый эпизод возвращает итоговое число сложенных уровней, а оценка может принимать только дискретные значения, соответствующие 0, 1, 2 или 3 уровням. Если у трёх прогонов fresh3 суммарно 2 уровня, средний graded равен 2/9; но это не говорит, какие именно прогоны дали какие уровни, если не сохранено конечное состояние каждого seed.
Поэтому отчёт должен содержать как минимум:
список seed
число уровней в каждом эпизоде
счётчики 0 / 1 / 2 / 3 уровня
число полных успехов из трёх чаш
средний graded
стадии сбоя (если есть надёжная трассировка)
2. Уровни ворот
Ворота A: данные и интерфейс
- manifest, число файлов raw/processed и SHA;
- загрузка загрузчика ACT, checkpoint, статистик и конфигурации развёртывания;
- три камеры, размерности action/state и выравнивание next-state проходят проверку;
- пакет кода не содержит символических ссылок, опасных путей и лишних зависимостей.
Ворота B: fresh3
Отвечает только на вопрос, не сломан ли кандидат явно. Три успеха или высокий средний graded — не доказательство онлайн-обобщения. Если fresh3 не достигает заранее заданного порога, дальнейшее повышение уровня не производится, сначала проводится диагностика.
Ворота C: fresh10 / fresh20
Требуют фиксированных seed, одного и того же runner и одной и той же топологии процессов. Этот уровень нужен для отбора кандидатов и поиска специфичных для seed сбоев; он по-прежнему не эквивалентен приватным 100 seed онлайн.
Ворота D: полная публичная панель
Сравнивать кандидатов можно только на полной, заранее зафиксированной публичной панели. Нельзя менять файл seed или убирать ошибки настройки после того, как увидели результаты.
Ворота E: онлайн-отправка
Приватные seed и окружение онлайн-сервиса — окончательная истина. Перед отправкой нужно зафиксировать: checkpoint, статистики, корень кода, конфигурацию развёртывания, версии зависимостей, манифест пакета, время и статус разблокировки аккаунта.
3. Граница между обычным runner, трассировкой и видео
| Способ запуска | Назначение | Может ли считаться онлайн-результатом |
|---|---|---|
| Официальный обычный runner | формальные локальные ворота | только локальное доказательство, онлайн не заменяет |
| Runner с трассировкой / monkey-patch | диагностика стадий сбоя | нет, не является официальным результатом |
| Холодный процесс на один seed | изоляция зависания, быстрый отбор | нельзя сравнивать напрямую с результатами persistent |
| Persistent-топология официальных организаторов | ближе всего к онлайн | всё равно нужна проверка онлайн |
| Replay экспертной траектории | проверка окружения и предиката успеха | не является успехом политики |
| Официальная онлайн-оценка | окончательный результат на приватной таблице | да, это окончательная истина |
Результат 1/3, 5/9 для clean50 в трассировке не может перекрыть результат обычного runner 0/3, 1/3 и тем более онлайн-результат T4 25.3/100.
4. Запись стадий сбоя
Не ограничивайтесь записью success=false. Рекомендуется классифицировать стадии так:
setup_demo / reset
approach
grasp
lift
transport
lower
release
stabilize
final stacked-state check
Но относить сбой к стадии можно только при наличии покадровой трассировки действий, состояний или надёжного видео. Если обычный runner даёт только агрегированный graded, нельзя угадывать стадию сбоя по величине балла.
5. Правила выбора модели
- Сначала сохранить кандидата, у которого есть полный пакет: код, статистики, веса и доказательства оценки.
- Сравнивать кандидатов с одной и той же официальной обёрткой, порядком seed и топологией процессов.
- Сначала смотреть полные успехи из трёх чаш, потом средний graded, потом распределение уровней и стадии сбоя.
- Loss — только сигнал здоровья обучения, он сам по себе не определяет отправку.
- Диагностика clean50 определяет только следующий эксперимент и не заменяет exact550.
- Любые изменения выравнивания action, выборки данных, веса gripper, chunk и размера модели делаются с одной переменной, с отдельным именем запуска и отдельными статистиками.
- Успехи на обучающих данных и replay экспертов не входят в панель обобщения.
- Если последующий кандидат хуже защищённого, защищённый файл нельзя перезаписывать.
6. Если онлайн-результат расходится с локальным
Проверяйте по такому порядку:
- Совпадает ли SHA загруженных весов с локальным кандидатом.
- Совпадают ли статистики с весами — именно той же парой.
- Совпадают ли корень кода, конфигурация развёртывания и результаты локальной предварительной проверки на онлайн-сервере.
- Нет ли лишних зависимостей Python, символических ссылок и абсолютных путей в пакете.
- Отличаются ли распределения публичных и приватных seed, начальные состояния задачи и сбои настройки.
- Есть ли различия в сбросе cold/persistent, инициализации планировщика, RNG и рендерера.
- Только после этого рассматривать гипотезу о недостаточной обобщающей способности модели.
Результат онлайн 25.3, который ниже локального исторического 2/3 у контрольного кандидата, как минимум показывает, что публичных 3 seed недостаточно для стабильного вывода. Однозначно назвать какую-либо одну причину доказанной по этим данным нельзя.