작업 시간 이후에도 남겨야 할 것 정하기
다시 만들기 어려운 것부터 시작하세요. 고유한 원본, 주석, 승인된 선택, 설정, 승인된 결과가 그렇습니다. 작업을 이해하고 이어가기 위해 필요한 파일도 추가하세요. 캐시는 용량이 크면서도 꼭 필요하지 않을 수 있고, 반대로 사소해 보이는 설정 하나를 빠뜨리면 큰 아카이브가 쓸모없어질 수 있습니다.
납품과 재개용 아카이브를 분리하세요. 받는 사람에게는 승인된 결과물과 짧은 설명이 필요합니다. 여러분에게는 입력, 버전, 시도, 유용한 중간 상태도 필요합니다. 거부된 변형, 기술 로그, 최종 파일을 한 폴더에 섞으면 잘못된 결과물을 사용할 위험이 커집니다.
| Usage | À conserver pour la reprise | À remettre au destinataire |
|---|---|---|
| 이미지 | 원본, 대응 관계, 설정, 유용한 버전. | 승인된 시각 자료와 납품 목록. |
| 어시스턴트 | 허용된 문서, 모델/버전, 지침, 질문, 평가. | 검토된 결과와 사용 범위. |
| 계산 또는 학습 | 필요한 데이터, 프로그램, 설정, 적합한 재개 상태. | 해석 가능한 결과와 해석 방법. |
기억에 의존하지 않는 목록 만들기
각 파일에 안정적인 위치를 부여하고 입력과 출력의 연결을 유지하세요. 목록에는 상대 경로, 파일 역할, 크기, 상태(선택됨, 재작업 필요, 시도 이해용으로만 보관)를 포함할 수 있습니다. 상대 경로를 사용하면 특정 머신 이름을 유지하지 않고도 폴더를 옮길 수 있습니다.
목표, 소프트웨어 버전, 필수 구성 요소, 작업 순서, 확인용 입력이 담긴 재개 메모를 추가하세요. 나중에 다시 받을 예정인 공개 파일은 정확한 버전과 함께 기록하세요. 향후 제공 여부는 보장되지 않으므로, 대체할 수 없고 보관이 허용된 것은 로컬에 보관하세요.
공유하기 전에 구성 파일과 로그를 다시 확인하세요. 보관 파일에 있어서는 안 되는 비밀번호, 키, 접근 링크는 제거하세요. 메모에는 승인된 접근을 복구하는 방법을 설명해야 하며, 메모 자체에 비밀 정보가 포함되어서는 안 됩니다.
모델의 경우, 추론 사용과 학습 재개를 구분하기
모델 가중치와 완전한 작업 상태는 서로 다른 역할을 합니다. PyTorch에서 모델의 state_dict는 파라미터와 일부 상태를 보존합니다. 학습을 재개하려면 루프에서 사용되는 요소, 즉 옵티마이저 상태와 진행 상황도 필요합니다. 정확히 필요한 항목은 프로그램에 따라 다릅니다. 스케줄러, 혼합 정밀도, 랜덤 시드도 영향을 줄 수 있습니다.
해결하려는 질문에 따라 저장 지점을 선택하세요. '다시 예측하기'인지 '이 단계에서 이어가기'인지에 따라 달라집니다. 예상되는 구조를 문서화하고 직접 파일을 다시 로드해 보세요. checkpoint-final 같은 이름이 모든 재개 요소가 저장되었다는 것을 보장하지는 않습니다.
시간이 부족해지기 전에 복사 계획 세우기
접근 권한을 직접 관리하는 저장 위치를 준비하고 용량을 확인하세요. 프로젝트 초반에 작은 복사본을 만들고, 이미 안정된 요소는 중간 복사본으로 만들어 두세요. 식별 가능한 버전의 보관 파일을 유지하세요. 최종 전송 중에 출력이 변경되면 어떤 상태를 복구했는지 알 수 없게 됩니다.
마지막 복사 전에 예정된 쓰기를 완료하거나 소프트웨어에서 제공하는 일관된 백업 방법을 사용하세요. 쓰기가 진행 중인 파일은 목록 작성과 복사 사이에 변경될 수 있습니다. 계속 실행 중인 학습의 경우, 폴더에 그냥 보이는 임시 파일이 아니라 명시적으로 완료된 재개 지점을 사용하세요.
데이터 양, 작은 파일, 중단 여부가 복구에 영향을 줍니다. 이 단계를 3일, 7일, 30일 일정에 포함하세요. 짧은 전송 테스트로 전체 보관 파일의 정확한 소요 시간을 단정하지 마세요. 추출과 열람에 걸리는 시간도 고려하세요.
내용을 확인한 후 복사본의 무결성 검사하기
먼저 예상 경로와 파일 수를 비교하세요. 크기는 빈 파일이나 잘린 파일을 찾는 데 도움이 되지만, 서로 다른 두 파일이 같은 크기를 가질 수 있습니다. 바이트를 확인하려면 안정된 각 원본 파일의 SHA-256 해시를 계산한 다음, 그 복사본에도 같은 해시를 계산하세요. Python은 hashlib에서 이 계산을 문서화하고 있으며, 다른 도구들도 동일한 알고리즘을 제공합니다.
해시 목록은 설명 대상 파일과 분리하여 보관하고, 목록 자체의 해시를 포함시키려 하지 마세요. 차이가 잘못된 복사에서 비롯될 수도 있지만, 두 번의 계산 사이에 원본 파일이 수정되었기 때문일 수도 있습니다. 무엇이든 교체하기 전에 원인을 파악하세요.
해시가 동일하다고 해서 업무 결과가 적절한지 판단할 수 없고, 파일의 작성자를 그것만으로 증명할 수도 없습니다. 흐릿한 이미지나 잘못된 모델도 손상 없이 복사될 수 있습니다. 따라서 무결성 검사와 함께 대표적인 출력물을 열어 보고 기준을 충족하는지 확인하세요.
예시: 이미지 100장, 유용한 파일 202개
시각 자료 100점 납품을 상상해 봅시다. 재개용 아카이브에는 원본 100장, 승인된 이미지 100장, 설정 파일 1개, 재개 노트 1개가 들어 있습니다: 100 + 100 + 1 + 1 = 202개 파일입니다. 별도의 목록이 이 202개 항목을 설명하며, 이 목록까지 포함하면 폴더에는 203개 파일이 있습니다. 이는 예시적인 구성 방식이며, 처리에 대한 약속은 아닙니다.
복사 후 개수는 설명된 202개 항목을 다시 찾지만, 하나의 지문이 다릅니다. 따라서 일치하는 파일은 201개이고, 검토해야 할 파일이 하나 있습니다. 총개수가 맞는 것만으로는 충분하지 않습니다. 소스 파일이 그대로라면 이 항목을 다시 복사한 뒤 지문을 다시 계산하세요. 소스가 변경되었다면 먼저 유지할 버전을 정하고 인벤토리를 일관되게 갱신하세요.
그다음 복사본에서 큰 이미지 하나, 투명도가 있는 이미지 하나, 텍스트가 포함된 이미지 하나를 열어 보세요. 예상한 이름 100개가 납품물에 모두 있는지도 확인하세요. 이 세 번의 열기는 표적 점검을 보여줄 뿐, 다른 모든 시각 자료의 품질을 보증하지는 않습니다. 처리 중 보고된 사례는 개별적으로 검토해야 합니다.
예전 경로를 사용하지 않고 재개를 반복하기
백업 위치나 별도의 테스트 폴더에서 프로젝트를 여세요. 처음 환경에서 몰래 의존성을 가져오지 말고 안내에 따라 순서대로 진행하세요. 그러면 누락된 연결 파일, 글꼴, 확장 버전 또는 절대 경로가 드러납니다.
이미지의 경우 보존된 설정으로 항목을 다시 불러와 내보내기를 여세요. 어시스턴트의 경우 구성을 다시 로드하고 문서와 함께 확인 질문을 다시 실행하세요. 계산의 경우 상태 로딩과 예상되는 작은 단계를 확인하세요. 검증은 유용한 결과까지 이어져야 하며, 탐색기에서 폴더가 보이는 것만으로는 재개가 테스트되지 않습니다.
점검 범위를 기록하세요. 내 컴퓨터에서 계산을 다시 실행하는 데 필요한 소프트웨어 없이도 결과물 열기를 확인했을 수 있습니다. 이 경우 무엇이 검증되었고 무엇이 호환 환경에서 아직 시도되어야 하는지 정확히 설명하세요.
잘못된 안심을 주는 오류 알아보기
작업 디스크에 있는 단 하나의 아카이브는 그 디스크와 함께 사라질 수 있습니다. 동기화된 사본은 실수로 삭제한 내용을 그대로 반영할 수도 있습니다. 따라서 같은 위치에 보이는 두 개의 폴더가 데이터를 복구할 수 있는 두 가지 독립적인 수단이 된다는 뜻은 아닙니다. 중요도에 맞는 보관 구조를 선택한 뒤, 계획한 복구 경로를 실제로 테스트해 보세요.
다른 함정들은 더 흔합니다. 마지막 내보내기가 빠져 있거나, 파일 쓰기가 끝나기 전에 아카이브를 복사했거나, 버전 관리가 없는 설정이거나, 받는 사람에게 없는 접근 권한으로 보호된 파일인 경우입니다. 실제 목적지에서 목록을 보며 마지막으로 한 번 더 확인하세요. 이상이 해결되지 않은 동안에는 이를 바로잡는 데 필요한 요소를 그대로 보관하세요.
- 기대한 결과물이 모두 있고 식별할 수 있습니다.
- 인벤토리가 선택한 사본과 일치합니다.
- 제어 파일이 목적지에서 열립니다.
- 인수인계 메모에 남은 의존성과 한계가 설명되어 있습니다.
- 필요한 접근 권한은 공유 파일과 별도로 관리합니다.