Qwen2.5-Omni: 멀티모달 입력 및 실시간 음성 상호작용을 위한 최종 측정 모델

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

일반 소개

Qwen2.5-Omni는 알리바바 클라우드 Qwen 팀에서 개발한 오픈 소스 멀티모달 AI 모델입니다. 텍스트, 이미지, 오디오, 비디오 등 여러 입력을 처리하고 텍스트 또는 자연스러운 음성 응답을 실시간으로 생성할 수 있습니다. 이 모델은 2025년 3월 26일에 출시되었으며, 코드와 모델 파일은 깃허브에 호스팅되어 누구나 무료로 다운로드하여 사용할 수 있습니다. Thinker-Talker 아키텍처와 TMRoPE 기술을 사용하여 멀티모달 데이터를 효율적으로 처리하며, 음성 인식, 이미지 이해, 비디오 분석과 같은 작업에서 우수한 성능을 발휘하며 지능형 비서 및 멀티미디어 처리와 같은 시나리오에 적합한 Qwen2.5-Omni를 사용할 수 있습니다.

Qwen2.5-Omni:多模态输入和实时语音交互的端测模型

 

기능 목록

  • 멀티모달 입력 지원: 텍스트, 이미지, 오디오, 비디오를 동시에 처리할 수 있습니다.
  • 실시간 스트리밍 응답: 입력 후 즉시 텍스트 또는 음성 피드백이 생성됩니다.
  • 자연스러운 음성 합성: 선명하고 자연스러운 음성을 생성하고 다양한 톤을 지원합니다.
  • 이미지 및 동영상 이해: 이미지 콘텐츠를 식별하거나 동영상 클립을 분석합니다.
  • 엔드투엔드 명령 팔로잉: 음성 또는 텍스트 명령을 기반으로 직접 작업을 완료합니다.
  • 오픈 소스 및 무료: 사용자 커스터마이징을 지원하기 위해 전체 코드와 모델이 제공됩니다.

 

저희는 Qwen2.5-Omni에 대한 종합적인 평가를 실시했습니다. 그 결과 모든 모달리티에서 강력한 성능을 발휘하여 동일한 크기의 단일 모달리티 모델뿐만 아니라 Qwen2.5-VL-7B, Qwen2-Audio 및 Gemini-1.5-Pro와 같은 비공개 소스 모델보다 우위를 점하는 것으로 나타났습니다. 옴니벤치처럼 여러 모달리티를 통합해야 하는 작업에서 Qwen2.5-Omni는 최첨단 성능을 발휘합니다. 또한 단일 모달 작업에서는 음성 인식(Common Voice), 번역(CoVoST2), 오디오 이해(MMAU), 이미지 추론(MMMU, MMStar), 비디오 이해(MVBench), 음성 생성(Seed-tts-eval 및 주관적 자연어) 영역에서 탁월한 성능을 발휘합니다.

Qwen2.5-Omni:多模态输入和实时语音交互的端测模型

 

도움말 사용

Qwen 2.5-Omni를 사용하려면 일정 수준의 기술 지식이 필요합니다. 다음은 사용자가 빠르게 시작하는 데 도움이 되는 자세한 설치 및 운영 가이드입니다.

설치 프로세스

  1. 환경 준비하기
    • Python 3.10 이상이 설치되어 있는지 확인합니다.
    • 코드를 다운로드하려면 Git이 필요합니다.
    • Linux 시스템에 권장되며, Linux 이외의 시스템에서는 추가 구성이 필요할 수 있습니다.
  2. 코드 다운로드
    • 터미널에 명령을 입력하여 GitHub 리포지토리를 복제합니다:
      git clone https://github.com/QwenLM/Qwen2.5-Omni.git
      
    • 프로젝트 카탈로그로 이동합니다:
      cd Qwen2.5-Omni
      
  3. 종속성 설치
    • 코드가 허깅 페이스 마스터 브랜치에 완전히 병합되지 않았으므로 특정 버전의 트랜스포머를 설치해야 합니다:
      pip uninstall transformers
      pip install git+https://github.com/huggingface/transformers@3a1ead0aabed473eafe527915eea8c197d424356
      pip install accelerate
      
    • 멀티모달 처리 도구를 설치합니다:
      pip install qwen-omni-utils[decord]
      
      • 참고: 사전 설치가 필요합니다. ffmpegLinux 사용자는 다음을 실행할 수 있습니다. sudo apt install ffmpeg.
      • 설치할 수 없는 Linux 이외의 사용자 decord로 대체할 수 있습니다:
        pip install qwen-omni-utils
        
  4. 모델 다운로드
  5. 설치 확인
    • 다음 명령을 실행하여 환경을 확인합니다:
      python -c "from transformers import Qwen2_5OmniModel; print('安装成功')"
      

기능 작동 흐름

1. 텍스트 입력 처리

  • 절차::
    • 모델 및 프로세서를 로드합니다:
      from transformers import Qwen2_5OmniModel, Qwen2_5OmniProcessor
      model = Qwen2_5OmniModel.from_pretrained("Qwen/Qwen2.5-Omni-7B", device_map="auto")
      processor = Qwen2_5OmniProcessor.from_pretrained("Qwen/Qwen2.5-Omni-7B")
      
    • 텍스트를 입력하고 응답을 생성합니다:
      text = "今天天气怎么样?"
      inputs = processor(text=text, return_tensors="pt")
      outputs = model.generate(**inputs)
      print(processor.batch_decode(outputs, skip_special_tokens=True))
      
  • 결국"날씨가 화창하고 기온이 좋은 날입니다."와 같은 텍스트 응답을 반환합니다.

2. 이미지 입력 처리

  • 절차::
    • 이미지 파일을 준비합니다(예 image.jpg).
    • 이미지를 포함하도록 스크립트를 수정합니다:
      images = ["image.jpg"]
      text = "图片里有什么?"
      inputs = processor(text=text, images=images, return_tensors="pt")
      outputs = model.generate(**inputs)
      print(processor.batch_decode(outputs, skip_special_tokens=True))
      
  • 결국그림의 내용을 설명합니다(예: "이 그림은 잔디 위를 달리는 강아지의 모습입니다.").

3. 오디오 입력 처리

  • 절차::
    • 오디오 파일을 준비합니다(예 audio.wav).
    • 오디오를 포함하도록 스크립트를 수정합니다:
      audios = ["audio.wav"]
      text = "音频里说了什么?"
      inputs = processor(text=text, audios=audios, return_tensors="pt")
      outputs = model.generate(**inputs)
      print(processor.batch_decode(outputs, skip_special_tokens=True))
      
  • 결국"오디오에서 '내일 비가 올 거야'라고 말합니다." 등과 같이 오디오 내용을 텍스트로 변환합니다.

4. 비디오 입력 처리

  • 절차::
    • 동영상 파일을 준비합니다(예 video.mp4).
    • 동영상을 포함하도록 스크립트를 수정합니다:
      videos = ["video.mp4"]
      text = "视频里发生了什么?"
      inputs = processor(text=text, videos=videos, return_tensors="pt")
      outputs = model.generate(**inputs)
      print(processor.batch_decode(outputs, skip_special_tokens=True))
      
  • 결국동영상 내용을 설명합니다(예: "동영상 속 누군가가 그림을 그리고 있습니다.").

5. 음성 출력 생성

  • 절차::
    • 시스템 프롬프트를 설정하고 음성을 사용 설정합니다:
      conversation = [
      {"role": "system", "content": "You are Qwen, a virtual human developed by the Qwen Team, Alibaba Group, capable of perceiving auditory and visual inputs, as well as generating text and speech."},
      {"role": "user", "content": "请用语音回答:今天天气如何?"}
      ]
      text = processor.apply_chat_template(conversation, tokenize=False, add_generation_prompt=True)
      inputs = processor(text=text, return_tensors="pt")
      text_ids, audio = model.generate(**inputs, use_audio_in_video=True)
      import soundfile as sf
      sf.write("output.wav", audio.reshape(-1).detach().cpu().numpy(), samplerate=24000)
      
  • 결국: 생성 output.wav 파일에 음성 응답의 내용을 저장합니다.

6. 음성 톤 조정

  • 절차::
    • 생성 시 톤(예: 첼시 또는 에단)을 지정합니다:
      text_ids, audio = model.generate(**inputs, spk="Ethan")
      sf.write("output.wav", audio.reshape(-1).detach().cpu().numpy(), samplerate=24000)
      
  • 결국: 지정된 음색으로 음성 파일을 생성합니다.

7. 플래시어텐션-2를 통한 가속도 향상

  • 절차::
    • FlashAttention-2를 설치합니다:
      pip install -U flash-attn --no-build-isolation
      
    • 모델을 로드할 때 활성화됩니다:
      model = Qwen2_5OmniModel.from_pretrained("Qwen/Qwen2.5-Omni-7B", device_map="auto", attn_implementation="flash_attention_2")
      
  • 결국더 빠른 생성 및 더 낮은 메모리 사용량.

주의

  • 하드웨어 요구 사항최소 16GB의 비디오 메모리가 있는 GPU를 권장합니다.
  • 네트워크 요구 사항모델 및 종속성을 다운로드할 때 네트워크가 안정화되어야 합니다.
  • 디버깅 지원자세한 내용은 GitHub를 참조하세요. README.md 또는 커뮤니티 토론에 참여하세요.

 

애플리케이션 시나리오

  1. 실시간 음성 어시스턴트
    사용자가 음성으로 질문하면 모델이 실시간으로 음성 답변을 생성하여 고객 서비스 또는 개인 비서에 적합합니다.
  2. 비디오 콘텐츠 분석
    영상을 입력하면 모델이 주요 정보를 추출하여 사용자가 영상을 정리하거나 보고서를 생성하는 데 도움을 줍니다.
  3. 교육 지원
    학생이 코스 오디오 또는 비디오를 업로드하면 모델이 질문에 답하거나 핵심 사항을 추출하여 학습을 강화합니다.

 

QA

  1. 어떤 언어가 지원되나요?
    주로 중국어와 영어를 지원하며 음성 합성을 위해 첼시, 에단 및 기타 톤을 제공합니다.
  2. 얼마나 많은 저장 공간이 필요하나요?
    Qwen2.5-Omni-7B 모델의 용량은 약 14GB이며 20GB 이상을 예약하는 것이 좋습니다.
  3. 상업적으로 이용 가능한가요?
    예, Apache 2.0 라이선스를 기반으로 하며 약관에 따라 상업적 용도로는 무료로 사용할 수 있습니다.
© 저작권 정책

관련 문서

댓글 없음

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