프로덕션 내보내기
프로덕션 내보내기 (Exporting to production)
Transformers 모델을 다양한 포맷으로 내보내 최적화된 런타임과 기기에서 사용할 수 있습니다. 같은 모델을 클라우드 제공자에 배포하거나 모바일·엣지 기기에서 실행할 수 있습니다.
출처: 문서
본문
Transformers 모델을 최적화된 런타임과 기기용 다양한 포맷으로 내보내세요. 같은 모델을 클라우드 제공자에 배포하거나 모바일 및 엣지 기기에서 실행하세요. 배포 환경마다 모델을 처음부터 다시 작성할 필요가 없습니다. 어떤 추론 생태계에서든 자유롭게 배포할 수 있습니다.
ExecuTorch
ExecuTorch는 모바일 및 엣지 기기에서 PyTorch 모델을 실행합니다. 모델을 표준화된 연산자 그래프로 내보내고, 그래프를 ExecuTorch 프로그램으로 컴파일한 다음 대상 기기에서 실행합니다. 런타임은 가벼우며 실행 계획을 미리 계산합니다.
Optimum ExecuTorch를 소스에서 설치하세요.
git clone https://github.com/huggingface/optimum-executorch.git
cd optimum-executorch
pip install '.[dev]'
CLI 도구로 Transformers 모델을 ExecuTorch로 내보내세요.
optimum-cli export executorch \
--model "Qwen/Qwen3-8B" \
--task "text-generation" \
--recipe "xnnpack" \
--use_custom_sdpa \
--use_custom_kv_cache \
--qlinear 8da4w \
--qembedding 8w \
--output_dir="hf_smollm2"
모든 내보내기 옵션을 보려면 다음 명령을 실행하세요.
optimum-cli export executorch --help
ONNX
ONNX는 서로 다른 프레임워크의 모델을 설명하는 공유 언어입니다. 모델을 잘 정의된 타입, 형태, 메타데이터를 가진 표준화된 연산자 그래프로 나타냅니다. 모델은 최적화된 런타임과 엔진 전반에 배포할 수 있는 컴팩트한 protobuf 파일로 직렬화됩니다.
Optimum ONNX는 설정 객체로 모델을 ONNX로 내보냅니다. 많은 아키텍처를 지원하며 쉽게 확장할 수 있습니다. CLI 도구 또는 프로그래밍 방식으로 모델을 내보내세요.
Optimum ONNX를 설치하세요.
uv pip install optimum-onnx
optimum-cli
--model 인자로 내보낼 모델과 출력 디렉토리를 지정하세요.
optimum-cli export onnx --model Qwen/Qwen3-8B Qwen/Qwen3-8b-onnx/
사용 가능한 모든 인자를 보려면 다음 명령을 실행하거나 Export a model to ONNX with optimum.exporters.onnx 가이드를 참고하세요.
optimum-cli export onnx --help
로컬 모델을 내보내려면 가중치와 토크나이저 파일을 같은 디렉토리에 저장하세요. --model 인자에 디렉토리 경로를 전달하고 --task 인자로 task를 지정하세요. --task를 제공하지 않으면 시스템이 모델에서 자동으로 추론하거나 task별 헤드가 없는 아키텍처를 사용합니다.
optimum-cli export onnx --model path/to/local/model --task text-generation Qwen/Qwen3-8b-onnx/
ONNX Runtime을 포함해 ONNX를 지원하는 런타임으로 모델을 배포하세요.
from transformers import AutoTokenizer
from optimum.onnxruntime import ORTModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-8b-onnx")
model = ORTModelForCausalLM.from_pretrained("Qwen/Qwen3-8b-onnx")
inputs = tokenizer("Plants generate energy through a process known as ", return_tensors="pt")
outputs = model.generate(**inputs)
print(tokenizer.batch_decode(outputs))
optimum.onnxruntime
Optimum ONNX로 Transformers 모델을 프로그래밍 방식으로 내보내세요. 모델과 함께 ORTModel을 인스턴스화하고 export=True를 설정하세요. save_pretrained로 ONNX 모델을 저장하세요.
from optimum.onnxruntime import ORTModelForCausalLM
from transformers import AutoTokenizer
ort_model = ORTModelForCausalLM.from_pretrained("Qwen/Qwen3-8b", export=True)
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-8b")
ort_model.save_pretrained("onnx/")
tokenizer.save_pretrained("onnx/")