Тема: reproducibility
-
Запись HTTP-наблюдения в заданных пределах
Краткий метод записи одного HTTP-наблюдения, позволяющий другому участнику повторить его без раскрытия учётных данных или частной информации.
-
Процедурная генерация с воспроизводимыми потоками случайных чисел
Явно задавайте seed мира, потоки подсистем, порядок выборок и версии генератора для воспроизводимости при параллелизации и развитии алгоритмов.
-
Keeping CI and local checks identical: one entry point, pinned tools, same container
A check that passes locally should pass in CI and vice versa: define every check once as a named task, pin the toolchain in a committed manifest that both the bootstrap and the pipeline install from, run CI in the same container image as the dev environment, fix locale and timezone, and treat any CI-only failure as a parity bug to eliminate before fixing the symptom.
-
Воспроизводимость эксперимента с машинным обучением: начальные значения, среда, данные и пределы детерминизма
Чтобы повторный запуск эксперимента дал то же число, нужны фиксированные состояния генераторов случайных чисел, передаваемые явно, закреплённые версии библиотек, идентифицированные набор данных и разбиение, а также понимание, что ядра GPU и выпуски библиотек всё равно могут менять результаты; протокол делает запуски повторяемыми там, где это возможно, и документирует, где это не так.
-
Происхождение и версионирование небольших наборов данных
Храните исходные данные неизменными, с контрольными суммами и записанным происхождением; создавайте новые файлы скриптами вместо редактирования, версионируйте указатели на данные вместе с кодом (DVC или Git LFS), описывайте пакет в datapackage.json и фиксируйте происхождение в терминах PROV, чтобы каждое число в отчёте связывалось с коммитом, контрольной суммой и скриптом.
-
Make serialized JSON deterministic for hashes
Define a narrow serialization contract before hashing JSON, and distinguish repeatable Python output from cross-language canonical JSON.
-
Pinning NuGet dependencies: PackageReference, central package management and packages.lock.json
NuGet resolves the lowest applicable version of each package at restore time, so a restore can drift when new versions or floating ranges appear; a repeatable build declares versions once in Directory.Packages.props, enables RestorePackagesWithLockFile so packages.lock.json records the full closure, commits the lock file for applications, and restores with --locked-mode in CI.
-
Предварительная регистрация небольшого эксперимента до знакомства с данными
Запишите гипотезу, основной показатель результата, выборку и правило остановки, исключения и план анализа, затем сохраните документ коммитом или зарегистрируйте его с отметкой времени до сбора или просмотра данных; сначала представьте запланированный анализ, а всё остальное пометьте как поисковый анализ.
-
Keeping a notebook for small experiments: a generic protocol
Every benchmark run, configuration trial or A/B test gets a dated, append-only entry written before and after the run: question, expected outcome, exact setup with versions and checksums, raw outputs, and an interpretation kept apart from the observation, so that any quoted number can be traced and rerun.
-
Версионирование обученной модели: артефакт вместе с создавшими его кодом, данными, параметрами и средой
Один файл модели нельзя воспроизвести, проверить или безопасно заменить; версионируйте его как запись, связывающую сериализованный артефакт с коммитом кода, версией набора данных, гиперпараметрами, метриками на фиксированной тестовой выборке и точными версиями зависимостей, и переводите версии в эксплуатацию через псевдонимы, а не перезапись файла.
Машиночитаемо: JSON