InternVL: 이미지, 비디오 및 텍스트 처리를 위한 오픈 소스 멀티모달 대형 모델

최신 AI 리소스4 개월 전에 게시 됨 AI 공유 서클
1.8K 00

일반 소개

InternVL은 상하이 인공 지능 연구소(OpenGVLab)에서 개발하여 깃허브에서 호스팅하는 오픈 소스 멀티모달 빅 모델 프로젝트입니다. 시각 및 언어 처리 기능을 통합하여 이미지, 비디오 및 텍스트의 포괄적인 이해와 생성을 지원하며, 시각 인식, 교차 모드 검색 및 다중 모드 대화와 같은 광범위한 작업을 위해 상용 모델(예: GPT-4o)과 비교할 수 있는 오픈 소스 대안을 구축하는 것이 InternVL의 목표입니다. 이 프로젝트는 강력한 시각 인코더, 동적 고해상도 지원, 효율적인 훈련 전략으로 유명하며, 모델 크기는 1B에서 78B 매개변수까지 다양하여 에지 디바이스에서 고성능 서버에 이르는 광범위한 애플리케이션 시나리오에 적합합니다. 코드, 모델 및 데이터 세트는 MIT 라이선스에 따라 공개되며, 연구자와 개발자는 자유롭게 사용하고 개선할 수 있습니다.

InternVL:开源多模态大模型,支持图像、视频和文本处理

 

기능 목록

  • 멀티모달 대화이미지, 동영상 및 텍스트 입력을 지원하여 채팅, Q&A 및 작업 지시를 위한 자연어 답변을 생성합니다.
  • 이미지 처리최대 4K 해상도의 이미지를 동적으로 처리하고 이미지 분류, 분할 및 물체 감지를 지원합니다.
  • 비디오 이해력제로 샘플 비디오 분류 및 텍스트-비디오 검색을 위한 비디오 콘텐츠 분석.
  • 문서 해상도복잡한 문서를 처리하고 DocVQA와 같은 작업을 위한 OCR, 양식 인식 및 문서 퀴즈에 특화되어 있습니다.
  • 다국어 지원110개 이상의 언어 생성 작업을 지원하는 다국어 텍스트 인코더가 내장되어 있습니다.
  • 효율적인 추론LMDeploy를 통해 간소화된 추론 프로세스를 제공하여 다중 이미지 및 긴 컨텍스트 처리를 지원합니다.
  • 데이터 집합의 개방성이미지, 비디오, 오디오가 포함된 ShareGPT-4o와 같은 대규모 멀티모달 데이터 세트를 제공합니다.

 

도움말 사용

설치 프로세스

로컬에서 InternVL을 사용하려면 Python 환경을 구성하고 관련 종속성을 설치해야 합니다. 자세한 설치 단계는 다음과 같습니다:

  1. 클론 창고
    터미널에서 다음 명령을 실행하여 InternVL 소스 코드를 가져옵니다:

    git clone https://github.com/OpenGVLab/InternVL.git
    cd InternVL
    
  2. 가상 환경 만들기
    콘다로 Python 3.9 환경을 생성하고 활성화합니다:

    conda create -n internvl python=3.9 -y
    conda activate internvl
    
  3. 종속성 설치
    프로젝트에 필요한 종속성을 설치하며, 기본적으로 멀티모달 대화 및 이미지 처리에 필요한 라이브러리가 포함되어 있습니다:

    pip install -r requirements.txt
    

    이미지 분할 또는 분류와 같은 추가 기능이 필요한 경우 특정 종속성을 수동으로 설치할 수 있습니다:

    pip install -r requirements/segmentation.txt
    pip install -r requirements/classification.txt
    
  4. 플래시 어텐션 설치(선택 사항)
    모델 추론 속도를 높이려면 플래시 어텐션을 설치하는 것이 좋습니다:

    pip install flash-attn==2.3.6 --no-build-isolation
    

    또는 소스에서 컴파일하세요:

    git clone https://github.com/Dao-AILab/flash-attention.git
    cd flash-attention
    git checkout v2.3.6
    python setup.py install
    
  5. MMDeploy 설치(선택 사항)
    프로덕션 환경에 모델을 배포해야 하는 경우 MMDeploy를 설치합니다:

    pip install -U openmim
    mim install mmdeploy
    

사용법

InternVL은 명령줄 추론, API 서비스, 대화형 데모 등 다양한 사용 방법을 제공합니다. 다음은 주요 기능의 작동 흐름을 소개하기 위해 InternVL2_5-8B 모델의 예시입니다:

1. 멀티모달 대화

InternVL은 이미지 및 텍스트 입력이 모두 포함된 대화를 지원합니다. 다음은 LMDeploy를 사용한 추론의 예입니다:

  • 모델 및 이미지 준비: 모델이 다운로드되었는지 확인합니다(예 OpenGVLab/InternVL2_5-8B)를 클릭하고 이미지를 준비합니다(예 tiger.jpeg).
  • 추론 실행이미지의 내용을 설명하는 다음 Python 코드를 실행합니다:
    from lmdeploy import pipeline, TurbomindEngineConfig
    from lmdeploy.vl import load_image
    model = 'OpenGVLab/InternVL2_5-8B'
    image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg')
    pipe = pipeline(model, backend_config=TurbomindEngineConfig(session_len=8192))
    response = pipe(('描述这张图片', image))
    print(response.text)
    
  • 결국모델은 이미지에 대한 자세한 설명을 출력합니다(예: "배경에 푸른 잔디가 있는 호랑이가 서 있는 사진입니다").

2. 다중 이미지 처리

InternVL은 여러 이미지의 동시 처리를 지원하므로 비교 또는 종합 분석에 적합합니다:

  • 코드 예제::
    from lmdeploy.vl.constants import IMAGE_TOKEN
    image_urls = [
    'https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/demo/resources/human-pose.jpg',
    'https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/demo/resources/det.jpg'
    ]
    images = [load_image(url) for url in image_urls]
    prompt = f'Image-1: {IMAGE_TOKEN}\nImage-2: {IMAGE_TOKEN}\n描述这两张图片'
    response = pipe((prompt, images))
    print(response.text)
    
  • 결국모델은 각 이미지의 내용을 개별적으로 설명하고 이미지 간의 관계를 요약할 수 있습니다.

3. 문서 구문 분석

InternVL은 문서 퀴즈(DocVQA) 및 양식 인식 작업에서 우수한 성능을 발휘합니다. 작동 흐름은 다음과 같습니다:

  • 문서 이미지 준비텍스트, 표 또는 차트가 포함된 이미지를 업로드합니다.
  • 질문하기'표에서 데이터 추출' 또는 '문서 내용 요약'과 같은 프롬프트를 사용합니다.
  • 코드 예제::
    image = load_image('document.jpg')
    response = pipe(('提取图片中表格的内容', image))
    print(response.text)
    
  • 결국이 모델은 테이블 또는 문서의 구조화된 데이터에 대한 요약을 반환합니다.

4. API 서비스 배포

InternVL은 프로덕션 환경용 LMDeploy를 통해 RESTful API 배포를 지원합니다:

  • 서비스 시작::
    lmdeploy serve api_server OpenGVLab/InternVL2_5-8B --server-port 23333
    
  • API 액세스하기OpenAI 호환 인터페이스를 사용하여 요청을 전송합니다. curl 또는 Python 클라이언트 호출 모델입니다.

5. 온라인 프레젠테이션

OpenGVLab은 온라인 데모 플랫폼(https://internvl.opengvlab.com/), 설치 없이도 체험할 수 있습니다:

  • 웹사이트를 방문하여 이미지 또는 동영상을 업로드하고 질문을 입력합니다.
  • 이 모델은 실시간으로 결과를 반환하므로 빠른 테스트에 적합합니다.

주요 기능 작동

  • 동적 고해상도InternVL은 이미지를 448x448 청크로 자동 분할하고 최대 4K 해상도를 지원합니다. 사용자는 이미지 크기를 수동으로 조정할 필요 없이 업로드하기만 하면 됩니다.
  • 비디오 이해력동영상 파일을 업로드하고 프롬프트(예: "동영상 콘텐츠 요약")를 입력하면 모델이 주요 프레임을 분석하여 설명을 생성합니다.
  • 다국어 생성프롬프트에 언어를 지정하면(예: "프랑스어로 답변") 모델이 해당 언어로 답변을 생성합니다.

주의

  • GPU 메모리가 충분한지 확인합니다(8B 모델에는 약 16GB의 GPU 메모리가 필요함).
  • 여러 개의 이미지 또는 긴 동영상을 처리할 때 컨텍스트 창을 늘립니다(session_len=16384).
  • 종속 버전을 확인하여 호환성 문제를 방지하세요.

 

애플리케이션 시나리오

  1. 학술 연구
    연구원들은 과학 다이어그램을 분석하고 실험 이미지를 처리하거나 논문의 표 형식 데이터를 파싱할 때 InternVL을 사용합니다. 이 모델의 고정밀 OCR 및 문서 이해 기능은 데이터 추출의 효율성을 획기적으로 높여줍니다.
  2. 교육 보조 자료
    교사와 학생들은 역사적 사진 해석이나 지리적 도표 분석과 같은 이미지 관련 숙제 문제를 풀기 위해 InternVL을 사용합니다. 이 모델의 다국어 지원은 국제화된 교육 시나리오에 적합합니다.
  3. 엔터프라이즈 문서 처리
    조직은 InternVL을 사용하여 스캔한 문서, 계약서 또는 송장 처리를 자동화하고 주요 정보를 추출하고 보고서를 생성하여 인건비를 절감합니다.
  4. 콘텐츠 제작
    콘텐츠 제작자는 InternVL을 사용하여 비디오 영상을 분석하고 스크립트 또는 자막을 생성하여 크리에이티브 효율성을 향상시킵니다.
  5. 지능형 고객 서비스
    고객 서비스 시스템은 InternVL을 통합하여 사용자가 업로드한 이미지(예: 제품 고장 사진)를 처리하고 문제를 신속하게 진단하고 해결책을 제공합니다.

 

QA

  1. InternVL은 어떤 모델 크기를 지원하나요?
    InternVL은 다양한 장치에 적합한 1B~78B 범위의 파라미터를 갖춘 모델을 제공합니다. 1B 모델은 엣지 장치에 적합하고 78B 모델은 GPT-4o와 비슷한 성능을 갖습니다.
  2. 고해상도 이미지를 어떻게 처리하나요?
    이 모델은 이미지를 448x448 청크로 자동 분할하고 4K 해상도를 지원합니다. 사전 처리 없이 이미지를 바로 업로드할 수 있습니다.
  3. 동영상 분석을 지원하나요?
    예, InternVL은 제로 샘플 비디오 분류 및 텍스트-비디오 검색을 지원합니다. 동영상을 업로드하고 프롬프트 단어를 입력하기만 하면 됩니다.
  4. 모델이 오픈 소스인가요?
    InternVL은 완전한 오픈 소스이며, 코드와 모델 가중치는 MIT 라이선스에 따라 GitHub에서 사용할 수 있습니다.
  5. 추론 속도를 최적화하는 방법은 무엇인가요?
    플래시 어텐션을 설치하고 GPU 가속을 사용합니다. 조정 session_len 매개 변수를 사용하여 긴 컨텍스트를 수용합니다.
© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...