피드로 돌아가기
Optimize and deploy with Optimum-Intel and OpenVINO GenAI
Hugging Face BlogHugging Face Blog
AI/ML

Intel과 Hugging Face가 Optimum-Intel과 OpenVINO GenAI를 조합해 Transformer 모델을 C++ 환경의 엣지 디바이스에 INT4 가중치 양자화로 배포

Optimize and deploy with Optimum-Intel and OpenVINO GenAI

2024년 9월 20일10intermediate

Context

Transformer 모델을 엣지나 클라이언트 측에서 배포할 때 Python은 C++ 환경이 지배적인 곳에서는 의존성 최소화와 성능 효율성이 문제가 된다. 엣지 디바이스의 제한된 리소스 환경에서 대규모 언어 모델(LLM) 실행 시 모델 크기와 추론 레이턴시 감소가 필수적이다.

Technical Solution

  • Transformer 모델을 OpenVINO 중간 표현(IR)으로 변환: Python API의 OVModelForCausalLM.from_pretrained(export=True) 또는 CLI의 optimum-cli export openvino 사용
  • 가중치 양자화 적용: NNCF를 통해 INT8 기본값에서 INT4 가중치 양자화로 전환하고 AWQ, 양자화 스케일 추정, 혼합 정밀도 양자화 조합
  • OpenVINO GenAI C++ API 활용: ov::genai::LLMPipeline으로 C++ 애플리케이션에서 모델 로드 및 토큰 생성
  • KV 캐시를 이용한 채팅 시나리오 최적화: start_chat(), finish_chat() 메서드로 이전 대화 히스토리의 프롬프트 처리 시간 단축
  • 복수의 디코딩 알고리즘 지원: Beam Search 등 다양한 생성 옵션을 ov::genai::GenerationConfig로 커스터마이징

Key Takeaway

OpenVINO의 C++ 기반 설계와 GenAI API의 간소화된 통합이 Python 의존성 제거와 엣지 배포 효율성을 동시에 달성하며, 가중치 양자화와 KV 캐시 최적화는 제한된 리소스 환경에서 LLM 실행의 실질적 경로를 제시한다.


엣지 디바이스나 C++ 환경에서 Hugging Face 모델을 배포하는 팀은 Optimum-Intel의 INT4 AWQ 양자화와 OpenVINO GenAI의 LLMPipeline을 조합하면, 모델 크기 감소와 추론 레이턴시 단축을 Python 의존성 제거 없이 달성할 수 있다.

원문 읽기