OpenMOSS/AnyGPT

A unified multimodal language model based on discrete sequence modeling

AnyGPT – 통합 다중 모달 언어 모델

무엇인가요 – AnyGPT는 텍스트, 음성, 이미지, 음악을 읽고 생성할 수 있는 오픈소스 대규모 언어 모델입니다. 모든 모달리티를 공유되는 이산 토큰 스트림으로 변환한 후, 표준 다음 토큰 예측기(기반은 LLaMA-2 기반의 트랜스포머)로 학습합니다. 리포지토리는 다음을 포함합니다:

  • 베이스 모델: 네 가지 모달리티를 정렬하고 단일 턴 작업(예: 텍스트→이미지, ASR, TTS, 텍스트→음악 등)에 사용 가능
  • 채팅 모델: AnyInstruct 데이터셋으로 파인튜닝되어 다중 턴 다중 모달 대화에 적합
  • 두 모델용 추론 스크립트
  • AnyInstruct 지시 데이터셋(허깅페이스에 호스팅됨): 임의의 모달 변환을 위한 프롬프트 포함

핵심 구성 요소

  • SpeechTokenizer + SoundStorm: 음성 토큰화/재구성
  • SEED-tokenizer: 이미지 토큰화
  • unCLIP SD-UNet(자동 다운로드): 이미지 디코딩
  • Encodec-32k: 음악 토큰화/재구성

시작하기

# 리포지토리 클론 및 환경 설정
git clone https://github.com/OpenMOSS/AnyGPT.git && cd AnyGPT
conda create -n AnyGPT python=3.9 && conda activate AnyGPT
pip install -r requirements.txt

허깅페이스에서 모델 체크포인트(베이스, 채팅, 음성 모듈, SEED 토크나이저)를 다운로드하여 CLI 스크립트가 기대하는 위치에 배치하세요.

추론 실행

  • 베이스 모델cli_infer_base_model.py를 사용하고 모델 및 다양한 토크나이저의 경로를 제공하세요. 프롬프트는 간단한 modality|modality|payload 구문을 따릅니다. 예:
    • text|image|황혼에 빛나는 미래 도시
    • image|text|path/to/pic.jpg
    • text|speech|안녕하세요 세상
    • speech|text|path/to/audio.wav
  • 채팅 모델 – 텍스트, 이미지, 음성, 음악을 한 번의 턴에 혼합할 수 있는 인터리브드 지시 형식으로 cli_infer_chat_model.py를 사용하세요.

데이터셋AnyInstruct 데이터셋(🤗 fnlp/AnyInstruct)은 모든 변환 방향을 커버하는 다중 모달 지시-응답 쌍을 포함합니다. SFT(지시 튜닝) 단계에서 사용됩니다.

라이선스 – 코드와 모델은 메타의 LLaMA-2와 동일한 라이선스로 배포됩니다(링크된 라이선스 페이지 참조).

인용

@article{zhan2024anygpt,
  title={AnyGPT: Unified Multimodal LLM with Discrete Sequence Modeling},
  author={Zhan, Jun and others},
  journal={arXiv preprint arXiv:2402.12226},
  year={2024}
}

왜 중요한가 – 이미지, 오디오, 음악을 이산 토큰 스트림으로 변환함으로써 AnyGPT는 단일 LLM이 동일한 목적함수로 모든 미디어를 학습할 수 있음을 보여주며, 별도의 전문 모델 없이도 제로샷 크로스모달 생성과 대화가 가능하게 합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트