Решить, что должно пережить сеанс
Начните с того, что было бы трудно воссоздать: уникальные оригиналы, пометки, утверждённые решения, параметры и принятые результаты. Добавьте файлы, необходимые для понимания и продолжения работы. Кэши могут быть объёмными, но не обязательными; напротив, упущенная небольшая настройка может сделать большой архив бесполезным.
Разделяйте передачу и архив для возобновления. Получателю нужны принятые результаты и краткое пояснение. Вам же нужны входные данные, версии, пробные прогоны и полезные промежуточные состояния. Клиентская папка, где смешаны отклонённые варианты, технические журналы и финальные файлы, повышает риск использовать не тот результат.
| Usage | À conserver pour la reprise | À remettre au destinataire |
|---|---|---|
| Изображения | Оригиналы, соответствия, параметры, нужные версии. | Принятые визуалы и список передачи. |
| Ассистент | Разрешённые документы, модель/версия, инструкции, вопросы и оценки. | Проверенные результаты и ограничения использования. |
| Вычисления или обучение | Необходимые данные, программа, конфигурация и подходящее состояние для возобновления. | Интерпретируемые результаты и способ их чтения. |
Создать инвентаризацию, не зависящую от вашей памяти
Задайте каждому файлу стабильное место и сохраняйте связь между входными и выходными данными. Список может содержать относительный путь, роль файла, его размер и состояние: принят, подлежит пересмотру или сохранён только для понимания пробного прогона. Использование относительных путей позволяет перемещать папку без сохранения особого имени конкретной машины.
Добавьте заметку о возобновлении с целью, версией программы, необходимыми компонентами, порядком операций и контрольным входом. Отметьте публичные файлы, которые вы планируете получить позже, с их точной версией. Поскольку их доступность в будущем не гарантирована, сохраните локально то, что незаменимо и что вам разрешено хранить.
Перечитайте экспорты конфигурации и журналы, прежде чем делиться ими. Удалите пароли, ключи и ссылки доступа, которым не место в архиве. Записка должна объяснять, как восстановить авторизованный доступ, не содержа при этом сам секрет.
Для модели: различать использование и возобновление обучения
Веса модели и полное рабочее состояние служат разным целям. В PyTorch state_dict модели хранит её параметры и некоторые состояния. Возобновление обучения требует также элементов, используемых циклом, включая состояние оптимизатора и прогресс. Точные потребности зависят от вашей программы: планировщик, смешанная точность или случайные выборки тоже могут иметь значение.
Выбирайте точку сохранения в зависимости от задачи, которую нужно решить: «сделать предсказание снова» или «продолжить с этого шага». Задокументируйте ожидаемую структуру и попробуйте загрузить свой собственный файл. Имя вроде checkpoint-final не гарантирует, что все элементы для возобновления были сохранены.
Продумать копирование, пока не стало поздно
Подготовьте место, доступ к которому вы контролируете, и проверьте его вместимость. Сделайте небольшую копию в начале проекта, затем промежуточную копию уже стабильных элементов. Храните версию архива, которую можно опознать: если результаты меняются во время финальной передачи, вы уже не поймёте, какое состояние получили.
Перед последней копией завершите запланированные записи или используйте метод согласованного сохранения, предлагаемый программой. Файл, который сейчас записывается, может измениться между составлением описи и копированием. Для продолжающегося обучения опирайтесь на явно завершённую точку возобновления, а не на временный файл, просто видный в папке.
Объём данных, мелкие файлы и прерывания влияют на восстановление. Заложите этот этап в график на 3, 7 или 30 дней. Не делайте вывод о точном сроке для всего архива по короткому пробному переносу; предусмотрите также время на распаковку и открытие.
Проверить содержимое, а затем целостность копии
Сначала сравните ожидаемые пути и число файлов. Размер помогает выявить пустой или усечённый файл, но два разных файла могут иметь одинаковый размер. Чтобы проверить байты, вычислите хеш SHA-256 каждого стабильного исходного файла, затем тот же хеш для его копии. Python описывает это вычисление в hashlib; другие инструменты предлагают тот же алгоритм.
Храните опись хешей отдельно от файлов, которые она описывает, не пытаясь включить в неё её собственный хеш. Расхождение может быть вызвано неверной копией, но также и изменением исходного файла между двумя вычислениями. Выясните причину, прежде чем что-либо заменять.
Идентичный хеш не оценивает деловой результат и сам по себе не доказывает авторство файла. Размытое изображение или плохая модель могут быть скопированы без искажений. Поэтому сочетайте проверки целостности с открытием показательных результатов и проверкой ваших критериев.
Пример: сто изображений, двести два полезных файла
Представим поставку из ста визуалов. Архив для возобновления содержит сто оригиналов, сто принятых изображений, один файл параметров и одну записку о возобновлении: 100 + 100 + 1 + 1 = 202 файла. Отдельная опись описывает эти 202 элемента; с этой описью в папке 203 файла. Это пример организации, без обещанной обработки.
После копирования подсчёт находит 202 описанных элемента, но один хеш отличается. Значит, у вас 201 совпадающий файл и один файл для проверки: одного правильного общего числа недостаточно. Если исходный файл остался неизменным, скопируйте этот элемент заново, затем пересчитайте его хеш. Если источник изменился, сначала выберите версию для сохранения и согласованно обновите опись.
Затем откройте из копии большое изображение, изображение с прозрачностью и изображение с текстом. Также проверьте, что все сто ожидаемых названий присутствуют в поставке. Эти три открытия иллюстрируют точечную проверку; они не подтверждают качество всех остальных визуальных материалов. Случаи, отмеченные во время обработки, нужно рассмотреть отдельно.
Повторить восстановление, не используя старые пути
Откройте проект из места сохранения или из отдельной тестовой папки. Следуйте инструкции по порядку, не пытаясь незаметно подтянуть зависимость из исходного окружения. Тогда станут видны отсутствующие связанные файлы, шрифты, версии расширений или абсолютные пути.
Для изображений восстановите задачу с сохранёнными настройками и откройте экспорт. Для ассистента перезагрузите конфигурацию и повторите контрольный вопрос вместе с его документами. Для расчёта проверьте загрузку состояния и один небольшой ожидаемый шаг. Проверка должна дойти до полезного результата; увидеть папку в проводнике — это ещё не проверка её восстановления.
Отметьте охват проверки. Возможно, вы проверили открытие результатов, но у вас нет нужного программного обеспечения, чтобы повторить расчёт на своём компьютере. В таком случае точно опишите, что проверено, а что ещё предстоит попробовать в совместимом окружении.
Распознавать ошибки, которые создают ложную уверенность
Единственный архив на рабочем диске может исчезнуть вместе с этим диском. Синхронизированная копия может воспроизвести случайное удаление. Поэтому две папки, видимые в одном месте, не доказывают наличия двух независимых способов восстановить данные. Выберите организацию хранения, подходящую для их важности, а затем проверьте предусмотренный путь восстановления.
Другие ловушки более обыденны: отсутствует последний экспорт, архив скопирован до завершения его записи, параметры без версии или файл защищён доступом, которого у получателя нет. Сделайте последний проход по списку из реального места назначения. Пока какая-либо аномалия остаётся открытой, сохраняйте всё необходимое для её исправления.
- Ожидаемые результаты на месте и опознаны.
- Опись совпадает с выбранной копией.
- Контрольные файлы открываются из места назначения.
- Инструкция по восстановлению описывает зависимости и оставшиеся ограничения.
- Необходимые доступы оформляются отдельно от общих файлов.