minigpt4.cpp를 사용한 MiniGPT-4 추론 (C/C++ 순수 구현)
요약
본 문서는 ggml 라이브러리를 활용하여 MiniGPT-4를 순수 C/C++로 추론하는 방법을 안내합니다. 사용자는 레포지토리를 클론하고, 운영체제(Windows, Linux, MacOS)에 맞는 빌드 환경을 설정한 후 CMake를 통해 라이브러리를 수동으로 빌드할 수 있습니다. 또한, 모델 파일은 Hugging Face에서 다운로드하여 사용할 수 있습니다.
핵심 포인트
- ggml 라이브러리 기반의 MiniGPT-4 C/C++ 구현입니다.
- CMake를 사용하여 OS별(Win/Lin/Mac)로 직접 빌드가 가능합니다.
- OpenCV 통합을 위해 CMake 옵션 설정이 필요할 수 있습니다.
- 모델 파일은 Hugging Face에서 다운로드하여 사용해야 합니다.
minigpt4.cpp
<a href='https://huggingface.co/spaces/maknee/minigpt4.cpp'><img src='https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Spaces-blue'>
MiniGPT-4를 순수 C/C++로 추론합니다.
설명 (Description)
minigpt4.cpp의 주요 목표는 ggml 라이브러리를 사용하여 4비트 양자화(4-bit quantization) 방식으로 minigpt4를 실행하는 것입니다.
데모 (Demo)


사용법 (Usage)
1. 레포지토리 클론 (Clone repo)
필수 사항: git
git clone --recursive https://github.com/Maknee/minigpt4.cpp
cd minigpt4.cpp
2. 라이브러리 가져오기 (Getting the library)
옵션 1: 미리 컴파일된 바이너리 다운로드 (Download precompiled binary)
Windows / Linux / MacOS
Releases로 이동하여 minigpt4 라이브러리 파일을 레포지토리 디렉터리에 추출하세요.
옵션 2: 라이브러리를 수동으로 빌드 (Build library manually)
Windows
필수 사항: CMake, Visual Studio 및 Git
cmake .
cmake --build . --config Release
bin\\\Release\minigpt4.dll이 생성되어야 합니다.
Linux
필수 사항: CMake (Ubuntu: sudo apt install cmake)
cmake .
cmake --build . --config Release
minigpt4.so가 생성되어야 합니다.
MacOS
필수 사항: CMake (MacOS: brew install cmake)
cmake .
cmake --build . --config Release
minigpt4.dylib가 생성되어야 합니다.
참고: opencv를 사용하여 빌드할 경우(라이브러리 자체 내에서 이미지 로딩 및 전처리 같은 기능을 허용), CMakeLists.txt에서 MINIGPT4_BUILD_WITH_OPENCV를 ON으로 설정하거나, cmake cli의 매개변수로 -DMINIGPT4_BUILD_WITH_OPENCV=ON을 사용하여 빌드하세요.
3. 모델 얻기 (Obtaining the model)
옵션 1: 미리 양자화된 MiniGPT4 모델 다운로드 (Download pre-quantized MiniGPT4 model)
사전 양자화된 모델은 Hugging Face에서 7B 또는 13B에서 이용 가능합니다.
신뢰할 수 있는 결과를 위해 권장되지만, 추론 속도가 느립니다: minigpt4-13B-f16.bin
옵션 2: PyTorch 모델 변환 및 양자화
필수 조건: Python 3.x와 PyTorch.
MiniGPT-4 리포지토리를 클론하고 설정을 수행합니다.
cd minigpt4
git clone https://github.com/Vision-CAIR/MiniGPT-4.git
cd MiniGPT-4
...
MiniGPT-4 리포지토리에서 Checkpoint Aligned with Vicuna 7B 또는 Checkpoint Aligned with Vicuna 13B 아래에 사전 학습된 체크포인트를 다운로드하거나, Huggingface 링크 for 7B 또는 13B에서 다운로드합니다.
모델 가중치를 ggml 형식으로 변환합니다.
Windows
7B 모델
cd minigpt4
python convert.py C: rained_minigpt4_7b.pth --ftype=f16
13B 모델
cd minigpt4
python convert.py C: rained_minigpt4.pth --ftype=f16
Linux / MacOS
7B 모델
python convert.py ~/Downloads/pretrained_minigpt4_7b.pth --outtype f16
13B 모델
python convert.py ~/Downloads/pretrained_minigpt4.pth --outtype f16
minigpt4-7B-f16.bin 또는 minigpt4-13B-f16.bin이 생성되어야 합니다.
4. vicuna 모델 얻기
옵션 1: 사전 양자화된 vicuna-v0 모델 다운로드
사전 양자화된 모델은 Hugging Face에서 이용 가능합니다.
신뢰할 수 있는 결과와 준수한 추론 속도를 위해 권장되는 모델입니다: ggml-vicuna-13B-v0-q5_k.bin
옵션 2: vicuna-v0 모델 변환 및 양자화
필수 사항: Python 3.x와 PyTorch.
MiniGPT4의 가이드를 따라 vicuna-v0 모델을 얻으세요.
그런 다음, llama.cpp를 클론합니다.
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake .
...
모델을 ggml로 변환합니다
python convert.py <모델 경로>
모델을 양자화합니다
python quanitize <모델 경로> <출력 모델> Q4_1
5. 실행
minigpt4-13B-f16.bin과 ggml-vicuna-13B-v0-q5_k.bin을 각각의 모델로 대체하여 다음 명령어를 호출해 minigpt4가 작동하는지 테스트합니다.
cd minigpt4
python minigpt4_library.py minigpt4-13B-f16.bin ggml-vicuna-13B-v0-q5_k.bin
웹 UI
웹 UI에 필요한 요구 사항을 설치합니다.
pip install -r requirements.txt
그런 다음, minigpt4-13B-f16.bin과 ggml-vicuna-13B-v0-q5_k.bin을 각각의 모델로 대체하여 웹 UI를 실행합니다.
python webui.py minigpt4-13B-f16.bin ggml-vicuna-13B-v0-q5_k.bin
출력에는 다음과 유사한 내용이 포함되어야 합니다:
Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
브라우저에서 http://127.0.0.1:7860으로 이동하면 웹 UI와 상호 작용할 수 있어야 합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Research의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기