TorchScript를 대체하는 시스템
torch.export는 PyTorch의 현대적인 모델 내보내기 시스템이야. 모델을 깔끔하고 표준화된 그래프로 포착해 직렬화하며, 배포·양자화 또는 ONNX, ExecuTorch, Core ML 같은 다른 실행 환경으로 변환하는 기반을 제공해. 새 프로젝트에서는 기존 TorchScript의 torch.jit.trace와 torch.jit.script를 대신해.
새 내보내기 시스템이 필요한 이유
TorchScript는 사용하기 어려웠어. jit.trace는 Python 제어 흐름을 보지 못하고, jit.script는 제한된 Python 부분집합을 요구해. 오류 메시지도 이해하기 힘들기로 유명했지. torch.export는 torch.compile과 같은 Dynamo 기반 그래프 포착을 사용해 더 넓은 코드를 지원하고 오류도 훨씬 명확하게 알려 줘.
계약
torch.export.export에 모델과 예시 입력을 넘겨. 이 입력으로 모델을 실행하며 그래프를 포착한 뒤 ExportedProgram을 반환해. 내보낸 그래프는 온전히 직렬화할 수 있어서 디스크에 저장하고 원본 Python 클래스 정의 없이 다시 불러올 수 있어.
torch.export로 얻는 것
- 실행 환경 이식성: 같은 내보낸 프로그램을 ONNX, ExecuTorch(모바일), Core ML, TensorRT로 변환할 수 있어.
- 양자화: torchao의 현대적인 양자화 기법을 내보낸 프로그램에 적용할 수 있어.
- 최적화: 상수 접기와 죽은 코드 제거 같은 그래프 패스를 내보낸 표현에 적용할 수 있어.
- 버전 관리: 내보내기 형식은 PyTorch 버전 사이에서 안정적으로 유지되도록 설계됐어.
TorchScript가 드물게 필요한 경우
일부 기존 임베디드 경로처럼 torch.export 실행 환경을 아직 사용할 수 없는 곳에 배포할 때는 TorchScript가 필요할 수 있어. 하지만 새 프로젝트의 기본 선택은 torch.export야.