Home
Login

Transformers, Diffusers, TIMM 및 Sentence Transformers를 위한 하드웨어 최적화 도구를 제공하는 가속 추론 및 훈련 라이브러리

Apache-2.0Python 2.9khuggingface Last Updated: 2025-06-19

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 양자화 백엔드

문서 자료

기술 아키텍처

핵심 구성 요소

  1. 내보내기 (Exporters) - 모델 포맷 변환 담당
  2. 최적화기 (Optimizers) - 다양한 최적화 전략 실행
  3. 양자화기 (Quantizers) - 모델 양자화 구현
  4. 런타임 (Runtimes) - 최적화된 추론 런타임 제공
  5. 훈련기 (Trainers) - 하드웨어 최적화된 훈련 래퍼

설계 원칙

  • 모듈화 - 각 기능 모듈 독립적으로 조합 가능
  • 확장 가능 - 새로운 하드웨어 지원을 쉽게 추가 가능
  • 하위 호환성 - 기존 API와의 호환성 유지
  • 성능 우선 - 성능 최적화를 핵심 목표로 함

요약

Hugging Face Optimum은 강력하고 사용하기 쉬운 머신러닝 모델 최적화 도구 라이브러리입니다. 개발자에게 AI 모델을 다양한 하드웨어 플랫폼에 효율적으로 배포할 수 있는 완벽한 솔루션을 제공하며, 현대 AI 응용 개발 및 배포의 중요한 도구입니다. 엣지 장치 배포든 대규모 클라우드 서비스든 Optimum은 상당한 성능 향상과 비용 최적화를 제공할 수 있습니다.