공개 모델 공유는 PyTorch pickle 체크포인트를 신뢰의 유통 경로로 만들었다. pickle은 편리했지만, Hugging Face의 보안 문서는 pickle 역직렬화가 eval이나 exec 같은 위험한 내장 함수를 포함한 코드를 실행할 수 있다고 설명한다.

SafeTensors는 형식을 좁히는 것으로 답했다. 텐서를 안전하게 저장하고, 제로 카피 접근으로 로딩을 빠르게 유지하며, 부분 로딩을 허용해 대형 모델 샤드를 한 번에 모두 역직렬화할 필요가 없게 했다. 영리함은 덜어내기에 있다. 모델 가중치는 오직 데이터가 된다.

2023년 Trail of Bits 감사 이후 Hugging Face, EleutherAI, Stability AI는 SafeTensors를 기본 저장 모델 형식으로 만드는 방향으로 움직였다. 문서는 폭넓은 프로젝트 지원을 나열하며, Hugging Face의 직렬화 API는 이제 보안상의 이유로 안전한 직렬화를 권장한다.

가중치는 절대 실행되어서는 안 된다

악성 pickle 임포트를 블랙리스트로 막으려는 대신 임의 코드 실행 자체를 제거했다.

제로 카피와 지연 로딩은 안전성을 더 느리게가 아니라 더 빠르게 만들었다.

작은 형식 표면 덕분에 외부 감사가 실용적으로 가능해졌다.

허브 변환 워크플로 덕분에 기존 모델은 모든 작성자가 새 도구를 배우기를 기다리지 않고도 이전할 수 있었다.

파일이 인터넷 규모로 공유될 때는 모든 위험한 파일을 검사하려는 것보다 공격 클래스 전체를 제거하는 것이 낫다.

SafeTensors는 오픈 모델이 성장하면서 AI 도구 스택 전반으로 퍼졌다. Hugging Face 문서는 Transformers, Diffusers, llama.cpp, ComfyUI 및 기타 프로젝트의 채택을 나열하며, 2023년 감사 게시물은 Transformers가 기본적으로 모델을 SafeTensors로 저장하는 방향으로 나아갈 것이라고 밝혔다.

근거 확인하기

출처

  1. Pickle Scanning Hugging Face · huggingface.co
  2. Audit shows that safetensors is safe and ready to become the default Hugging Face · huggingface.co ·
  3. Safetensors Hugging Face · huggingface.co