MiniCPM-Llama3-V-2.5, 30+언어를 지원하는8B 규모의 멀티모달 모델

MiniCPM-Llama3-V-2.5, 30+언어를 지원하는8B 규모의 멀티모달 모델

MiniCPM-Llama3-V-2.5, 30+언어를 지원하는8B 규모의 멀티모달 모델

소개

OpenBMB에서는 Llama3-8B 모델을 기반으로 SigLIP-400M을 Visual Encoder로 사용한 멀티모달 LLM(MLLM, Multimodal Larget Language Model)입니다. 일전의 Llama3-V 프로젝트 관련 이슈로 본의 아니게 화제가 되었던 바로 그 모델로, OpenCompass에서 65.1의 평균 점수를 기록하였습니다.

MiniCPM-Llama3-V-2.5 벤치마크 결과

또한, GPT-4V-1106 및 Claude 3, Gemini Opus 등과 비교할 때, 더 낮은 환각률, 뛰어난 OCR 기능과 다국어 지원을 통해 30개 이상의 언어를 처리할 수 있습니다. 또한, NPU 최적화를 통해 모바일에서도 빠르게 동작합니다. (공개 예정입니다)

주요 특징

  • 뛰어난 성능: 주요한 11개의 벤치마크를 종합적으로 평가하는 OpenCompass에서 평균 65.1점 기록하였습니다. 이는 GPT-4V-1106, Gemini Pro, Claude-3, Qwen-VL-Max와 같은 비공개 모델들 대비 나은 성능임은 물론이고, Llama-3 기반의 다른 MLLM보다 8B 규모의 모델보다 나은 성능입니다.

  • 강력한 OCR 기능: 최대 180만 픽셀(예. 1344x1344의 해상도)의 고해상도 이미지를 처리할 수 있으며, OCRBench에서 700점 이상의 점수를 기록하여 GPT-4o, GPT-4V-0409, Qwen-VL-Max and Gemini Pro 등의 모델의 성능을 능가하는 성능을 보였습니다.

  • 신뢰할 수 있는 동작: 최근에 공개한 RLAIF-V 데이터셋방법론으로 Object HalBench에서 10.3%의 환각율을 보였습니다. 이는 GPT-4V-1106의 13.6%보다 더 나은 수치로, 공개된 모델들 중 가장 뛰어난 성능입니다.

  • 다국어 지원: 30개 이상의 언어 지원합니다. 영어 및 중국어를 비롯하여 독일어, 프랑스어, 스페인어, 이탈리아어, 러시아어 등을 지원하며, 지원하는 전체 언어 목록은 여기에서 확인할 수 있습니다.

  • 효율적 배포: 모델 양자화(Model Quantization) 및 CPU/NPU 최적화를 비롯한 다른 컴파일 최적화 등을 체계적으로 적용하여 엣지 디바이스(edge-device, On-Device) 환경에서도 효율적으로 동작합니다. 또한, NPU 가속 프레임워크인 QNN을 llama.cpp에 처음으로 통합하여 퀄컴칩 기반의 모바일 기기에서도 빠른 동작을 보여줍니다.

  • 간편한 사용: (1) 로컬 디바이스에서 효율적인 CPU 추론을 위한 llama.cppollama 지원, (2) 16가지 크기의 GGUF 형식의 양자화 모델 제공, (3) 단 2개의 V100 GPU만으로도 효율적인 LoRA 미세조정(finetuning) 가능, (4) 스트리밍 출력 지원, (5) GradioStreamlit으로 빠른 로컬 웹UI 데모 설정, (6) HuggingFace Spaces의 대화형 데모 등 다양한 방식으로 쉽게 사용할 수 있습니다.

사용 방법

MiniCPM-Llama3-V 2.5 모델은 최신 버전의 :hugs:Hugging Face의 transformers 라이브러리를 통해 쉽게 사용할 수 있습니다:

import torch
from PIL import Image
from transformers import AutoModel, AutoTokenizer

model = AutoModel.from_pretrained('openbmb/MiniCPM-Llama3-V-2_5', trust_remote_code=True, torch_dtype=torch.float16)
model = model.to(device='cuda')

tokenizer = AutoTokenizer.from_pretrained('openbmb/MiniCPM-Llama3-V-2_5', trust_remote_code=True)
model.eval()

image = Image.open('xx.jpg').convert('RGB')
question = 'What is in the image?'
msgs = [{'role': 'user', 'content': question}]

res = model.chat(image=image, msgs=msgs, tokenizer=tokenizer, sampling=True, temperature=0.7)
print(res)

성능 비교

MiniCPM-Llama3-V-2.5 벤치마크 결과

주요 모델들과의 TextVQA, DocVQA, OCRBench, OpenCompass, MME, MMBench, MMMU, MathVista, LLaVA Bench, RealWorld QA, Object HalBench 결과:

Model Size OCRBench TextVQA val DocVQA test Open-Compass MME MMB test (en) MMB test (cn) MMMU val Math-Vista LLaVA Bench RealWorld QA Object HalBench
Proprietary
Gemini Pro - 680 74.6 88.1 62.9 2148.9 73.6 74.3 48.9 45.8 79.9 60.4 -
GPT-4V (2023.11.06) - 645 78.0 88.4 63.5 1771.5 77.0 74.4 53.8 47.8 93.1 63.0 86.4
Open-source
Mini-Gemini 2.2B - 56.2 34.2* - 1653.0 - - 31.7 - - - -
Qwen-VL-Chat 9.6B 488 61.5 62.6 51.6 1860.0 61.8 56.3 37.0 33.8 67.7 49.3 56.2
DeepSeek-VL-7B 7.3B 435 64.7* 47.0* 54.6 1765.4 73.8 71.4 38.3 36.8 77.8 54.2 -
Yi-VL-34B 34B 290 43.4* 16.9* 52.2 2050.2 72.4 70.7 45.1 30.7 62.3 54.8 79.3
CogVLM-Chat 17.4B 590 70.4 33.3* 54.2 1736.6 65.8 55.9 37.3 34.7 73.9 60.3 73.6
TextMonkey 9.7B 558 64.3 66.7 - - - - - - - - -
Idefics2 8.0B - 73.0 74.0 57.2 1847.6 75.7 68.6 45.2 52.2 49.1 60.7 -
Bunny-LLama-3-8B 8.4B - - - 54.3 1920.3 77.0 73.9 41.3 31.5 61.2 58.8 -
LLaVA-NeXT Llama-3-8B 8.4B - - 78.2 - 1971.5 - - 41.7 37.5 80.1 60.0 -
Phi-3-vision-128k-instruct 4.2B 639* 70.9 - - 1537.5* - - 40.4 44.5 64.2* 58.8* -
MiniCPM-V 1.0 2.8B 366 60.6 38.2 47.5 1650.2 64.1 62.6 38.3 28.9 51.3 51.2 78.4
MiniCPM-V 2.0 2.8B 605 74.1 71.9 54.5 1808.6 69.1 66.5 38.2 38.7 69.2 55.8 85.5
MiniCPM-Llama3-V 2.5 8.5B 725 76.6 84.8 65.1 2024.6 77.2 74.2 45.8 54.3 86.7 63.5 89.7

Evaluation results of multilingual LLaVA Bench

라이선스

이 프로젝트는 모델과 모델 가중치를 개별적인 라이선스로 공개 및 배포합니다. 모델 코드는 Apache-2.0 라이선스로 배포되며, 모델 가중치에 대한 라이선스는 OpenBMB의 General Model License Agreement를 따릅니다.

모델 가중치는 학문적 연구를 위해서는 열려있으나, 상업적 사용에 대해서는 별도의 허락을 받아야 합니다. 상세한 내용은 Hugging Face의 MiniCPM-Llama3-V-2.5 모델 페이지 및 GitHub 저장소 등을 확인하시기 바랍니다.

:github: 모델 코드 및 설명을 포함하는 GitHub 저장소

:hugs: 모델 가중치 및 데모 Hugging Face

Web Demo

기술 블로그




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

1개의 좋아요