설치·Quick Start (readthedocs)
설치·Quick Start (readthedocs)
InternVL은 readthedocs 문서에서 설치부터 추론까지 가이드를 제공해요. 저장소를 클론하고 의존성을 설치한 뒤, internvl_chat 모듈로 이미지·영상 추론을 시작할 수 있어요.
시각 추론은 transformers의 AutoModel을 쓰는 방식과, 프로젝트 자체 추론 스크립트를 쓰는 방식이 있어요. 아래는 대표적인 멀티모달 채팅 예시예요.
출처: https://internvl.readthedocs.io/en/latest/get_started/installation.html
설치
# 필요한 패키지
pip install torch torchvision
pip install transformers sentencepiece decord einops
# 프로젝트 클론 후 필요 시 로컬 모듈 경로 지정
git clone https://github.com/OpenGVLab/InternVL.git
일부 시각 전처리 함수(다이나믹 해상도·aspect ratio 배치)는 torchvision.transforms와 decord(영상 디코딩)를 요구해요. 영상 태스크가 아니면 decord는 생략 가능해요.
추론 예시 (InternVL 2.5)
import numpy as np
import torch
import torchvision.transforms as T
from decord import VideoReader, cpu
from PIL import Image
from torchvision.transforms.functional import InterpolationMode
from transformers import AutoModel, AutoTokenizer
IMAGENET_MEAN = (0.485, 0.456, 0.406)
IMAGENET_STD = (0.229, 0.224, 0.225)
def build_transform(input_size):
MEAN, STD = IMAGENET_MEAN, IMAGENET_STD
transform = T.Compose([
T.Lambda(lambda img: img.convert('RGB') if img.mode != 'RGB' else img),
T.Resize((input_size, input_size), interpolation=InterpolationMode.BICUBIC),
T.ToTensor(),
T.Normalize(mean=MEAN, std=STD),
])
return transform
모델 로딩:
from transformers import AutoModel, AutoTokenizer
model = AutoModel.from_pretrained(
'OpenGVLab/InternVL2_5-8B',
torch_dtype=torch.bfloat16,
trust_remote_code=True,
device_map='auto',
).eval()
tokenizer = AutoTokenizer.from_pretrained('OpenGVLab/InternVL2_5-8B', trust_remote_code=True)