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

도움말 사용
Qwen 2.5-Omni를 사용하려면 일정 수준의 기술 지식이 필요합니다. 다음은 사용자가 빠르게 시작하는 데 도움이 되는 자세한 설치 및 운영 가이드입니다.
설치 프로세스
- 환경 준비하기
- Python 3.10 이상이 설치되어 있는지 확인합니다.
- 코드를 다운로드하려면 Git이 필요합니다.
- Linux 시스템에 권장되며, Linux 이외의 시스템에서는 추가 구성이 필요할 수 있습니다.
- 코드 다운로드
- 터미널에 명령을 입력하여 GitHub 리포지토리를 복제합니다:
git clone https://github.com/QwenLM/Qwen2.5-Omni.git
- 프로젝트 카탈로그로 이동합니다:
cd Qwen2.5-Omni
- 터미널에 명령을 입력하여 GitHub 리포지토리를 복제합니다:
- 종속성 설치
- 코드가 허깅 페이스 마스터 브랜치에 완전히 병합되지 않았으므로 특정 버전의 트랜스포머를 설치해야 합니다:
pip uninstall transformers pip install git+https://github.com/huggingface/transformers@3a1ead0aabed473eafe527915eea8c197d424356 pip install accelerate
- 멀티모달 처리 도구를 설치합니다:
pip install qwen-omni-utils[decord]
- 참고: 사전 설치가 필요합니다.
ffmpeg
Linux 사용자는 다음을 실행할 수 있습니다.sudo apt install ffmpeg
. - 설치할 수 없는 Linux 이외의 사용자
decord
로 대체할 수 있습니다:pip install qwen-omni-utils
- 참고: 사전 설치가 필요합니다.
- 코드가 허깅 페이스 마스터 브랜치에 완전히 병합되지 않았으므로 특정 버전의 트랜스포머를 설치해야 합니다:
- 모델 다운로드
- 허깅 페이스에서 Qwen2.5-Omni-7B 모델 다운로드(https://huggingface.co/Qwen/Qwen2.5-Omni-7B)를 클릭한 후 로컬에 저장합니다.
- 설치 확인
- 다음 명령을 실행하여 환경을 확인합니다:
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")
- FlashAttention-2를 설치합니다:
- 결국더 빠른 생성 및 더 낮은 메모리 사용량.
주의
- 하드웨어 요구 사항최소 16GB의 비디오 메모리가 있는 GPU를 권장합니다.
- 네트워크 요구 사항모델 및 종속성을 다운로드할 때 네트워크가 안정화되어야 합니다.
- 디버깅 지원자세한 내용은 GitHub를 참조하세요.
README.md
또는 커뮤니티 토론에 참여하세요.
애플리케이션 시나리오
- 실시간 음성 어시스턴트
사용자가 음성으로 질문하면 모델이 실시간으로 음성 답변을 생성하여 고객 서비스 또는 개인 비서에 적합합니다. - 비디오 콘텐츠 분석
영상을 입력하면 모델이 주요 정보를 추출하여 사용자가 영상을 정리하거나 보고서를 생성하는 데 도움을 줍니다. - 교육 지원
학생이 코스 오디오 또는 비디오를 업로드하면 모델이 질문에 답하거나 핵심 사항을 추출하여 학습을 강화합니다.
QA
- 어떤 언어가 지원되나요?
주로 중국어와 영어를 지원하며 음성 합성을 위해 첼시, 에단 및 기타 톤을 제공합니다. - 얼마나 많은 저장 공간이 필요하나요?
Qwen2.5-Omni-7B 모델의 용량은 약 14GB이며 20GB 이상을 예약하는 것이 좋습니다. - 상업적으로 이용 가능한가요?
예, Apache 2.0 라이선스를 기반으로 하며 약관에 따라 상업적 용도로는 무료로 사용할 수 있습니다.
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...