8️⃣Optimum-Intel

About Optimum-Intel

Huggingface에서 제공하는 Optimum Intel은 인텔의 CPU, GPU 아키텍처에서 엔드투엔드 파이프라인을 가속화하기 위해 인텔이 제공하는 Transformer 및 Diffuser 라이브러리와 다양한 툴 및 라이브러리 간의 인터페이스입니다. Optimum Intel은 2가지를 지원합니다.

1. Optimum- Neural Compressor

LLM의 Quantization, Pruning, Knowledge Distillation와 같은 가장 널리 사용되는 압축 기술을 사용할 수 있는 오픈 소스 라이브러리입니다. 사용자가 Quantized 모델을 쉽게 생성할 수 있도록 정확도 중심의 자동 튜닝 전략을 지원합니다. 사용자는 정적, 동적, 인식 훈련 양자화 접근법을 쉽게 적용하면서 예상 정확도 기준을 제시할 수 있습니다. 또한 다양한 Weight Pruning 기법을 지원하여 사전 정의된 희소성 목표를 제공하는 Pruning 모델을 생성할 수 있습니다.

2. Optimum-OpenVINO

OpenVINO는 인텔 CPU, GPU 및 특수 DL 추론 가속기를 위한 고성능 추론 기능을 지원하는 오픈 소스 툴킷입니다. Quantization, Pruning, Knowledge Distillation으로 모델을 최적화할 수 있는 도구 세트가 함께 제공됩니다. Optimum Intel-OpenVINO는 Transformer와 Diffusers 모델을 최적화하고, OpenVINO IR(Intermediate Representation) 형식으로 변환하고, OpenVINO 런타임을 사용하여 추론을 실행할 수 있는 간단한 인터페이스를 제공합니다.

Optimum Intel-OpenVINO의 Huggingface 지원 Tasks는 아래와 같습니다:

Task
Auto Class

text-classification

OVModelForSequenceClassification

token-classification

OVModelForTokenClassification

question-answering

OVModelForQuestionAnswering

audio-classification

OVModelForAudioClassification

image-classification

OVModelForImageClassification

feature-extraction

OVModelForFeatureExtraction

fill-mask

OVModelForMaskedLM

text-generation

OVModelForCausalLM

text2text-generation

OVModelForSeq2SeqLM

circle-info

Optimum Intel-OpenVINO 설치는 OpenVINO Runtime과 IR을 설치해야하기 때문에 가능하면 Docker build를 권장합니다.

Optimum OpenVINO의 자세한 튜토리얼은 아래 링크를 참조하시기 바랍니다.

Optium Intel neural-compressor

neural-compressor는 Quantization, Pruning, Knowledge Distillation을 효과적으로 변환할 수 있습니다. 다만 Huggingface는 이미 Bitsandbytes, Accelerator에서 쉽게 pipeline에 적용 가능해서 인텔의 neural-compressor를 사용하는 의미는 없는 것 같습니다. 아래는 활용 예시입니다.

  1. LLM 모델의 Weight-only Quantization

  2. 일반 Transformer 모델의 Static Quantization

1. Weight-Only Quantization (LLMs)

LLM의 가중치 전용 정량화를 보여주는 것으로, 인텔 CPU, 인텔 가우디2 AI 가속기, 엔비디아 GPU를 지원하며 최적의 디바이스가 자동으로 선택됩니다.

2. Static Quantization (Non-LLMs)

Last updated