huggingface/optimumView GitHub Homepage for Latest Official Releases
Transformers, Diffusers, TIMM 및 Sentence Transformers를 위한 하드웨어 최적화 도구를 제공하는 가속 추론 및 훈련 라이브러리
Apache-2.0Pythonoptimumhuggingface 3.1k Last Updated: September 15, 2025
Hugging Face Optimum 프로젝트 상세 소개
프로젝트 개요
🤗 Optimum은 Hugging Face에서 출시한 전문적인 머신러닝 모델 최적화 라이브러리이며, 🤗 Transformers 및 Diffusers의 확장 도구입니다. 이 프로젝트는 다양한 목표 하드웨어에 대해 최대 효율의 모델 훈련 및 실행 최적화 도구를 제공하는 데 중점을 두면서도 사용하기 쉬운 특징을 유지합니다.
프로젝트 주소: https://github.com/huggingface/optimum
핵심 특징
1. 다중 하드웨어 플랫폼 지원
Optimum은 다양한 주요 하드웨어 가속 플랫폼을 지원합니다.
- ONNX/ONNX Runtime - 크로스 플랫폼 머신러닝 추론
- ExecuTorch - PyTorch 엣지 장치 추론 솔루션
- TensorFlow Lite - 모바일 및 엣지 장치 최적화
- OpenVINO - Intel 하드웨어 최적화
- NVIDIA TensorRT-LLM - NVIDIA GPU 가속
- AWS Trainium & Inferentia - AWS 전용 칩
- Habana Gaudi - Habana 프로세서
- AMD Instinct GPUs - AMD 하드웨어 지원
- Intel Neural Compressor - Intel 신경망 압축
- FuriosaAI - FuriosaAI 하드웨어 플랫폼
2. 모델 내보내기 및 최적화
- 포맷 변환: Transformers 및 Diffusers 모델을 ONNX, ExecuTorch, TensorFlow Lite 등의 포맷으로 내보내기 지원
- 그래프 최적화: 자동 모델 계산 그래프 최적화
- 양자화 기술: 다양한 양자화 방안을 제공하여 모델 크기 및 추론 지연 시간 감소
- 성능 튜닝: 특정 하드웨어에 대한 성능 최적화
3. 훈련 가속
최적화된 훈련 래퍼를 제공하며 다음을 지원합니다.
- Habana Gaudi 프로세서 훈련
- AWS Trainium 인스턴스 훈련
- ONNX Runtime GPU 최적화 훈련
설치 방법
기본 설치
python -m pip install optimum
특정 가속기 설치
필요한 하드웨어 플랫폼에 따라 해당 설치 명령을 선택하십시오.
# ONNX Runtime
pip install --upgrade --upgrade-strategy eager optimum[onnxruntime]
# ExecuTorch
pip install --upgrade --upgrade-strategy eager optimum[executorch]
# Intel Neural Compressor
pip install --upgrade --upgrade-strategy eager optimum[neural-compressor]
# OpenVINO
pip install --upgrade --upgrade-strategy eager optimum[openvino]
# NVIDIA TensorRT-LLM
docker run -it --gpus all --ipc host huggingface/optimum-nvidia
# AMD 하드웨어
pip install --upgrade --upgrade-strategy eager optimum[amd]
# AWS Trainium & Inferentia
pip install --upgrade --upgrade-strategy eager optimum[neuronx]
# Habana Gaudi
pip install --upgrade --upgrade-strategy eager optimum[habana]
# FuriosaAI
pip install --upgrade --upgrade-strategy eager optimum[furiosa]
소스 코드에서 설치
python -m pip install git+https://github.com/huggingface/optimum.git
주요 기능 모듈
1. 모델 내보내기 (Export)
ONNX 내보내기 예시:
# 의존성 설치
pip install optimum[exporters,onnxruntime]
# 모델 내보내기
optimum-cli export onnx --model bert-base-uncased --output ./bert-onnx/
ExecuTorch 내보내기:
# 의존성 설치
pip install optimum[exporters-executorch]
# 엣지 장치용 모델 내보내기
optimum-cli export executorch --model distilbert-base-uncased --output ./distilbert-executorch/
TensorFlow Lite 내보내기:
# 의존성 설치
pip install optimum[exporters-tf]
# 내보내기 및 양자화
optimum-cli export tflite --model bert-base-uncased --output ./bert-tflite/
2. 추론 최적화
ONNX Runtime을 사용하여 추론 최적화:
from optimum.onnxruntime import ORTModelForSequenceClassification
from transformers import AutoTokenizer
# 최적화된 모델 로드
model = ORTModelForSequenceClassification.from_pretrained("./bert-onnx/")
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
# 추론 수행
inputs = tokenizer("Hello world!", return_tensors="pt")
outputs = model(**inputs)
3. 양자화 기술
다양한 양자화 방안 지원:
- 동적 양자화 - 런타임 양자화
- 정적 양자화 - 보정 데이터 기반 양자화
- QAT (Quantization Aware Training) - 양자화 인식 훈련
4. 훈련 최적화
Habana Gaudi를 사용하여 훈련 최적화:
from optimum.habana import GaudiTrainer, GaudiTrainingArguments
# 훈련 파라미터 설정
training_args = GaudiTrainingArguments(
output_dir="./results",
use_habana=True,
use_lazy_mode=True,
gaudi_config_name="Habana/bert-base-uncased"
)
# 최적화된 훈련기 생성
trainer = GaudiTrainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
)
# 훈련 시작
trainer.train()
주요 강점
1. 사용 편의성
- 통일된 인터페이스: Transformers 라이브러리와 일관된 API 설계
- 명령줄 도구:
optimum-cli
명령줄 도구를 제공하여 작업 간소화 - 자동 최적화: 최적의 최적화 전략을 지능적으로 선택
2. 성능 향상
- 추론 가속: 모델 추론 속도 대폭 향상
- 메모리 최적화: 메모리 점유율 감소
- 에너지 소비 감소: 에너지 소비 최적화
3. 생산 준비 완료
- 안정성: 대량 테스트 및 검증 완료
- 확장성: 대규모 배포 지원
- 호환성: 기존 Hugging Face 생태계와 완벽하게 통합
응용 시나리오
1. 엣지 장치 배포
- 모바일 AI 응용
- IoT 장치 지능화
- 임베디드 시스템 최적화
2. 클라우드 서비스 최적화
- 대규모 API 서비스
- 배치 추론 작업
- 실시간 응답 시스템
3. 전용 하드웨어 가속
- GPU 클러스터 최적화
- TPU 가속
- 전용 AI 칩 적합
커뮤니티 생태계
관련 프로젝트
- optimum-intel - Intel 하드웨어 전용 최적화
- optimum-habana - Habana Gaudi 프로세서 지원
- optimum-neuron - AWS Neuron 칩 지원
- optimum-nvidia - NVIDIA 하드웨어 최적화
- optimum-benchmark - 성능 벤치마크 테스트 도구
- optimum-quanto - PyTorch 양자화 백엔드
문서 자료
기술 아키텍처
핵심 구성 요소
- 내보내기 (Exporters) - 모델 포맷 변환 담당
- 최적화기 (Optimizers) - 다양한 최적화 전략 실행
- 양자화기 (Quantizers) - 모델 양자화 구현
- 런타임 (Runtimes) - 최적화된 추론 런타임 제공
- 훈련기 (Trainers) - 하드웨어 최적화된 훈련 래퍼
설계 원칙
- 모듈화 - 각 기능 모듈 독립적으로 조합 가능
- 확장 가능 - 새로운 하드웨어 지원을 쉽게 추가 가능
- 하위 호환성 - 기존 API와의 호환성 유지
- 성능 우선 - 성능 최적화를 핵심 목표로 함
요약
Hugging Face Optimum은 강력하고 사용하기 쉬운 머신러닝 모델 최적화 도구 라이브러리입니다. 개발자에게 AI 모델을 다양한 하드웨어 플랫폼에 효율적으로 배포할 수 있는 완벽한 솔루션을 제공하며, 현대 AI 응용 개발 및 배포의 중요한 도구입니다. 엣지 장치 배포든 대규모 클라우드 서비스든 Optimum은 상당한 성능 향상과 비용 최적화를 제공할 수 있습니다.