checkpoint
Module diagram
classDiagram
class checkpoint {
}
class api {
}
class checkpoint_handler {
}
class encryption {
}
class metadata {
}
class api {
}
class metadata {
}
api --> checkpoint_handler
checkpoint_handler --> encryption
checkpoint_handler --> metadata
encryption --> metadata
metadata --> metadata
checkpoint
체크포인트 파일을 다루기 위한 모듈입니다.
CHECKPOINT_LAST_VERSION
module-attribute
CHECKPOINT_SPEC은 다음과 같은 구조를 가집니다. version (ByteString): { "version": ByteString, # YYMMDDV "metadata_size": int, # 메타데이터의 크기 (bytes) "weight_position": int, # 체크포인트 파일에서 weight가 시작하는 위치 (bytes) }
CHECKPOINT_SPEC
module-attribute
CHECKPOINT_SPEC = {b'2212210': {'version': b'2212210', 'metadata_size': 1024 * 1024, 'weight_position': CHECKPOINT_VERSION_LENGTH + 1024 * 1024}, b'2401040': {'version': b'2401040', 'metadata_size': 12 * 1024 * 1024, 'weight_position': CHECKPOINT_VERSION_LENGTH + 12 * 1024 * 1024}}
api
convert_checkpoint
22년12월21일 이전 버전 체크포인트를 최신 구조로 변환해 저장합니다. 저장되어있던 metadata는 제거됩니다.
Parameters:
-
checkpoint_path(str) –이전 버전 체크포인트 경로
-
save_path(Optional[str], default:None) –저장할 경로. None인 경우
checkpoint_path를 덮어씁니다. Defaults to None.
Source code in SaigeToolkit/checkpoint/api.py
checkpoint_handler
CheckpointHandler
convert
classmethod
이전 버전 체크포인트를 최신 구조로 변환해 저장합니다. 저장되어있던 metadata는 제거됩니다.
Parameters:
-
checkpoint_path(str) –이전 버전 체크포인트 경로
-
save_path(str, default:None) –저장할 경로. None인 경우
checkpoint_path를 덮어씁니다. Defaults to None.
Source code in SaigeToolkit/checkpoint/checkpoint_handler.py
load_checkpoint
classmethod
Open and load checkpoint from path
Parameters:
-
checkpoint_path(str) –checkpoint path
Raises:
-
InvalidModelFileError–다음과 같은 경우 에러 레이즈
Returns:
-
Dict(Dict) –(일부 암호화된) checkpoint
Source code in SaigeToolkit/checkpoint/checkpoint_handler.py
is_valid_checkpoint
classmethod
Checkpoint가 유효한지 검증하고, 유효하면 True, 그렇지 않으면 False 리턴
Note
현재 로직은 다음 세가지만을 체크함. 1) checkpoint가 python dictionary 인지 2) checkpoint가 모든 key를 가지고 있는지 3) "version" key에 해당하는 value가 유효한지
Source code in SaigeToolkit/checkpoint/checkpoint_handler.py
convert_checkpoint
22년12월21일 이전 버전 체크포인트를 최신 구조로 변환해 저장합니다. 저장되어있던 metadata는 제거됩니다.
Parameters:
-
checkpoint_path(str) –이전 버전 체크포인트 경로
-
save_path(Optional[str], default:None) –저장할 경로. None인 경우
checkpoint_path를 덮어씁니다. Defaults to None.
Source code in SaigeToolkit/checkpoint/checkpoint_handler.py
encryption
encrypt
torch.save로 picklable한 obj를 Aes 암호화 후 바이트로 리턴합니다.
Parameters:
-
obj(Any) –description
-
password(str) –description
-
buffer_size(int, default:BUFFER_SIZE) –description. Defaults to BUFFER_SIZE.
Returns:
-
bytes(bytes) –description
Source code in SaigeToolkit/checkpoint/encryption.py
decrypt
torch.load로 로드 가능한 바이트를 Aes 복호화 후 파이썬 오브젝트로 리턴합니다.
Parameters:
-
encrpyted(bytes) –description
-
password(str) –description
-
buffer_size(int, default:BUFFER_SIZE) –description. Defaults to BUFFER_SIZE.
Returns:
-
Any(Any) –description
Source code in SaigeToolkit/checkpoint/encryption.py
encrypt_dict
encrypt_dict(data: Mapping, password: Optional[str] = None, keys_encrypt: Optional[List[str]] = None, **torch_save_args)
dict 자체 혹은 요소들을 암호화합니다.
Parameters:
-
data(Mapping) –description
-
password(Optional[str], default:None) –description. Defaults to None.
-
keys_encrypt(Optional[List[str]], default:None) –None이 아닐 경우 keys_encrypt에 있는 키의 값들만 암호화합니다. Defaults to None.
Source code in SaigeToolkit/checkpoint/encryption.py
decrypt_dict
decrypt_dict(data, password: Optional[str] = None, keys_encrypt: Optional[List[str]] = None, **torch_load_args) -> Mapping
dict를 복호화합니다.
Parameters:
-
data(Any) –description
-
password(Optional[str], default:None) –description. Defaults to None.
-
keys_encrypt(Optional[List[str]], default:None) –None이 아닐 경우 keys_encrypt에 있는 키의 값들만 복호화합니다. Defaults to None.
Raises:
-
FileNotFoundError–description
Returns:
-
Mapping(Mapping) –description
Source code in SaigeToolkit/checkpoint/encryption.py
encrypt_save_dict
encrypt_save_dict(data: Mapping, path: str, password: Optional[str] = None, keys_encrypt: Optional[List[str]] = None, **torch_save_args) -> None
dict를 암호화 후 torch.save 로 저장합니다.
Parameters:
-
data(Mapping) –description
-
path(str) –description
-
password(Optional[str], default:None) –description. Defaults to None.
-
keys_encrypt(Optional[List[str]], default:None) –None이 아닐 경우 keys_encrypt에 있는 키의 값들만 암호화합니다. Defaults to None.
Source code in SaigeToolkit/checkpoint/encryption.py
decrypt_load_dict
decrypt_load_dict(path: str, password: Optional[str] = None, keys_encrypt: Optional[List[str]] = None, **torch_load_args) -> Mapping
torch.load로 파일 로드 후 복호화해 dict로 로드합니다.
Parameters:
-
path(str) –description
-
password(Optional[str], default:None) –description. Defaults to None.
-
keys_encrypt(Optional[List[str]], default:None) –None이 아닐 경우 keys_encrypt에 있는 키의 값들만 복호화합니다. Defaults to None.
Raises:
-
FileNotFoundError–description
Returns:
-
Mapping(Mapping) –description
Source code in SaigeToolkit/checkpoint/encryption.py
metadata
api
체크포인트 파일의 버전 및 metadata를 읽고 쓰는 API를 제공합니다.
read_checkpoint_version
체크포인트 파일의 버전을 읽어옵니다.
Parameters:
-
checkpoint_path(str) –checkpoint_path
Returns:
-
ByteString(ByteString) –체크포인트 파일의 버전
Raises:
-
ModelFileNotFoundError–checkpoint_path에 해당하는 파일이 없는 경우
Source code in SaigeToolkit/checkpoint/metadata/api.py
read_metadata
체크포인트 파일의 metadata 섹션 데이터를 읽어옵니다.
Parameters:
-
checkpoint_path(str) –checkpoint_path
Returns:
-
Union[Dict, bool]–Union[Dict, bool]: 체크포인트 버전이 맞지 않는 경우 False 값을 리턴
Raises:
-
ModelFileNotFoundError–checkpoint_path에 해당하는 파일이 없는 경우
Source code in SaigeToolkit/checkpoint/metadata/api.py
write_metadata
체크포인트 파일의 metadata 섹션 데이터를 수정해 저장합니다.
Parameters:
-
checkpoint_path(str) –checkpoint_path
-
metadata(Dict) –metadata
Returns:
-
bool(bool) –체크포인트 버전이 맞지 않는 경우 False 값을 리턴
Raises:
-
ModelFileNotFoundError–checkpoint_path에 해당하는 파일이 없는 경우
Source code in SaigeToolkit/checkpoint/metadata/api.py
metadata
체크포인트 파일의 버전 및 metadata를 읽고 쓰는 API를 제공합니다.
read_checkpoint_version
체크포인트 파일의 버전을 읽어옵니다.
Parameters:
-
checkpoint_path(str) –checkpoint_path
Returns:
-
ByteString(ByteString) –체크포인트 파일의 버전
Raises:
-
ModelFileNotFoundError–checkpoint_path에 해당하는 파일이 없는 경우
Source code in SaigeToolkit/checkpoint/metadata/metadata.py
read_metadata
체크포인트 파일의 metadata 섹션 데이터를 읽어옵니다.
Parameters:
-
checkpoint_path(str) –checkpoint_path
Returns:
-
Union[Dict, bool]–Union[Dict, bool]: 체크포인트 버전이 맞지 않는 경우 False 값을 리턴
Raises:
-
ModelFileNotFoundError–checkpoint_path에 해당하는 파일이 없는 경우
Source code in SaigeToolkit/checkpoint/metadata/metadata.py
write_metadata
체크포인트 파일의 metadata 섹션 데이터를 수정해 저장합니다.
Parameters:
-
checkpoint_path(str) –checkpoint_path
-
metadata(Dict) –metadata
Returns:
-
bool(bool) –체크포인트 버전이 맞지 않는 경우 False 값을 리턴
Raises:
-
ModelFileNotFoundError–checkpoint_path에 해당하는 파일이 없는 경우