생성형 모델 준비하기

생성형 모델 준비하기

LLM 같은 생성형 모델은 보통 크고 리소스가 무거워서, 추론 전에 효율적으로 최적화해 두는 게 좋아요. 이 글에서는 OpenVINO로 LLM 모델을 준비하는 방법을 세 갈래로 나눠 볼게요. Hugging Face Hub에서 모델을 내려받는 방법, Model Scope에서 내려받는 방법, 그리고 optimum-cli로 직접 변환·최적화하는 방법까지 순서대로 다뤄볼게요.

출처: Generative Model Preparation — OpenVINO™ documentation

Hugging Face Hub에서 생성형 모델 내려받기

이미 변환·최적화가 끝난 모델은 OpenVINO Toolkit 조직의 모델 섹션이나 여러 컬렉션에서 찾을 수 있어요.

huggingface_hub 패키지로도 모델을 내려받을 수 있어요:

pip install huggingface_hub
huggingface-cli download "OpenVINO/phi-2-fp16-ov" --local-dir model_path

이렇게 내려받은 모델은 huggingface_hub 외에 별도 의존성 없이 OpenVINO에서 바로 사용할 수 있어요.

Model Scope에서 생성형 모델 내려받기

Model Scope에서 모델을 내려받으려면 modelscope 패키지를 써요:

pip install modelscope
modelscope download --model "Qwen/Qwen2-7b" --local_dir model_path

주의할 점은 Model Scope로 받은 모델은 Pytorch 형식뿐이라서, 추론 전에 OpenVINO IR로 변환해야 해요.

생성형 모델 변환·최적화하기

OpenVINO는 전체 정밀도든 양자화든 OpenVINO IR 형식의 모델과 가장 잘 작동해요. 선택한 모델이 미리 최적화돼 있지 않다면 optimum-cli 명령 하나로 직접 처리할 수 있어요. 먼저 optimum-intel이 설치돼 있는지 확인하세요:

pip install optimum-intel[openvino]

모델을 최적화할 때 원래 정밀도를 유지하거나 더 낮은 정밀도를 고르는 선택지가 있어요.

전체 모델 정밀도 유지하기

optimum-cli export openvino --model <model_id> --weight-format fp16 <exported_model_name>

유형별 예시를 보면:

optimum-cli export openvino --model meta-llama/Llama-2-7b-chat-hf --weight-format fp16 ov_llama_2
optimum-cli export openvino --model stabilityai/stable-diffusion-xl-base-1.0 --weight-format fp16 ov_SDXL
optimum-cli export openvino --model openbmb/MiniCPM-V-2_6 --trust-remote-code –weight-format fp16 ov_MiniCPM-V-2_6
optimum-cli export openvino --trust-remote-code --model openai/whisper-base ov_whisper
optimum-cli export openvino --model microsoft/speecht5_tts --model-kwargs "{\"vocoder\": \"microsoft/speecht5_hifigan\"}" ov_speecht5_tts

선택한 정밀도로 내보내기

optimum-cli export openvino --model <model_id> --weight-format int4 <exported_model_name>
optimum-cli export openvino --model meta-llama/Llama-2-7b-chat-hf --weight-format int4 ov_llama_2
optimum-cli export openvino --model stabilityai/stable-diffusion-xl-base-1.0 --weight-format int4 ov_SDXL
optimum-cli export openvino -m model_path --task text-generation-with-past --weight-format int4 ov_MiniCPM-V-2_6

참고: openbmb/MiniCPM-V-2_6 같은 다른 model_id나 로컬 모델 파일 경로를 써도 돼요. int8 같은 다른 데이터 타입도 지정할 수 있어요.

더 알아보기 (Learn more)