OpenVINO를 사용하여 노트북에서 로컬 LLM 구동하기
요약
개인 정보 보호를 위해 노트북에서 로컬 LLM을 구동하는 방법을 다루며, OpenVINO와 Python을 활용하여 GUI 애플리케이션으로 배포하는 과정을 설명합니다. 특히 일본어 성능과 응답 속도를 중시하며 여러 모델(Qwen2.5-7B-Instruct, Gemma-4-E4B 등)의 테스트 결과를 비교 분석했습니다.
핵심 포인트
- OpenVINO와 Python을 이용해 로컬 LLM GUI를 구축할 수 있습니다.
- 일본어 성능과 속도를 고려하여 적합한 모델(Gemma-4-E4B)을 선택하는 것이 중요합니다.
- 모델 변환 및 배포 과정에서 필요한 핵심 라이브러리 설치 명령어와 PyInstaller 사용법이 제시됩니다.
문서의 형식을 다듬기 위해 Copilot을 사용하고 싶지만, 중국 등지에서는 사용할 수 없는 것 같다(서비스 제공 제외 등의 메시지가 뜬다고 함).
회의 내용 요약 등 문서의 형식을 정리하는 데 AI 기능을 사용하고 싶지만, 일반적인 개인용 AI 서비스를 이용할 경우 정보 유출 문제가 발생하기 때문에, 노트북에서 실행 가능한 로컬 LLM을 준비하게 되었습니다.
CPU: Intel 11th Gen Intel(R) Core(TM) i5-1145G7
MEM: 16.0 GB
OS: Windows11 Enterprise 24H2
Intel 통합 GPU이므로 OpenVINO를 이용하고 싶었으나, 일반적인 로컬 LLM 실행 앱은 OpenVINO를 지원하지 않는 것 같았습니다.
Gemini의 도움으로 Python으로 만들면 된다는 답변을 받았기에, 간단한 GUI를 만들어 pyinstaller로 배포하기로 했습니다.
pip install openvino-genai optimum-intel datasets huggingface-hub==1.33.0RC1 pyinstaller
| 패키지 | 설치된 버전 |
|---|---|
| openvino-genai | 2026.4.1.0 2636 |
| ... | |
| huggingface_hub를 최신으로 업데이트하니 optimum에서 OPENVINO로 변환이 되지 않았기 때문에, 이 버전만 지정하여 설치했습니다. |
일본어 문서를 다루는 것이 주된 목적이라 일본어 성능과 노트북에서도 이용 가능한 응답 속도를 중시했습니다.
메모리가 16GB라서 다른 앱 사용을 고려하면 8B급이 간당간당할 수도 있겠다? 라는 Gemini의 답변이 있었습니다.
| Hugging Face model | 비고 |
|---|---|
Qwen/Qwen2.5-7B-Instruct | OpenVINO로 변환. 원활하게 작동했지만 일본어가 부자연스러웠음. |
tokyotech-llm/Qwen3-Swallow-8B-RL-v0.2 | 도쿄과학대학에서 일본어 추가 학습을 거친 Qwen3. 일본어가 우수함. OpenVINO로 변환 필요. 다소 무거움. |
OpenVINO/LFM2.5-8B-A1B-int4-ov | A1B로 응답이 좋음. 성능은 높지만 일본어는 문제없으나 생기가 없음. |
OpenVINO/gemma-4-E4B-it-int4-ov | 적당한 응답 속도로 충분히 유창한 일본어. 이번에는 필요하지 않지만 멀티모달 대응 가능 |
OpenVINO 공식에서 변환된 모델 중 일본어가 유창했던 Gemma-4-E4B를 선택했습니다.
- 모델 다운로드 및 OpenVINO 변환
Qwen2.5-7B-Instruct를 OpenVINO로 변환할 때의 명령어
optimum-cli export openvino --model Qwen/Qwen2.5-7B-Instruct --weight-format int4 ./qwen25_7b_openvino_int4
- 모델 다운로드
Hugging Face OpenVINO 공식에서 OpenVINO로 변환된 Gemma-4-E4B를 다운로드할 때의 명령어
hf download OpenVINO/gemma-4-E4B-it-int4-ov
거의 Gemini 등에게 만들어 주었지만, 시도와 오류 과정에서 몇 가지 막혔던 점을 기재합니다.
`pipe = ov_genai.VLMPipeline(str(MODEL_DIR),
모델 폴더는 수동으로 복사/붙여넣기 합니다.
pyinstaller --icon localllmgui.ico --onedir --windowed --collect-all openvino --collect-all openvino_genai --collect-all openvino_tokenizers localllm_gui.py
- Qwen2.5-7B-Instruct는 OpenVINO에서의 동작 테스트로는 양호했지만, 일본어 능력이 부족하여 일상적으로 사용하기에는 어려웠습니다.
- Gemma-4-E4B는 엣지용의 작은 모델임에도 유창한 일본어로 오류 없이 작동하며 안심하고 사용할 수 있습니다. 이번에는 사용하지 않았지만 멀티모달 대응이므로 다른 용도로도 편리하게 활용할 수 있을 것 같습니다.
- 개인적으로는 통합 GPU + OpenVINO로 로컬 LLM이 어느 정도 성능을 낼 수 있는지에 주목했지만, 이번처럼 일본어 문장 다듬기 정도라면 스트레스 없이 충분히 사용할 수 있을 것 같습니다. 우연이지만 Intel 11세대가 OpenVINO에서의 AI 추론에 적합했던 것 같아 로컬에서도 상당히 좋은 성능을 보여주는 인상을 받았습니다.
- Python으로 샘플 코드가 많아서 무료 Gemini로 큰 문제 없이 생성할 수 있었습니다. 오류 발생 시에도 에러 코드만 던져주면 수정 방안까지 제시받아 편리했습니다.
- C# 등으로 작성하여 Windows 네이티브로 만드는 것이 메모리나 앱 실행 속도 면에서 더 빠르고 스트레스가 적을 것 같다고 생각했지만, 본업이 아니고
돈도 받지 못하므로pyinstaller를 사용해 대충 처리했습니다.
기세에 이끌려 음성 녹취(transcribe) 도구까지 Gemini에게 만들게 했습니다.
transcribe.py
import os
import threading
import time
...
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기