Bidang kecerdasan buatan berkembang pesat, mendorong batas-batas kemampuan mesin untuk memahami, mengenali, dan menghasilkan. Lompatan signifikan dalam evolusi ini ditandai dengan diperkenalkannya model Qwen2.5-Omni-7B, model multimodal end-to-end unggulan yang dikembangkan oleh tim Qwen. Model ini mewakili perubahan paradigma, bergerak melampaui interaksi berbasis teks untuk merangkul pengalaman yang benar-benar omni-modal. Model ini memproses beragam input dengan mulus – teks, gambar, audio, dan video – sambil secara bersamaan menghasilkan respons dalam format teks dan ucapan alami, seringkali dalam mode streaming waktu nyata. Artikel ini membahas seluk-beluk teknis, tolok ukur kinerja, dan aplikasi praktis dari model Qwen2.5-Omni-7B yang inovatif.
Ingin platform Terintegrasi, All-in-One untuk Tim Pengembang Anda bekerja sama dengan produktivitas maksimum?
Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau!
Apa itu Qwen2.5-Omni-7B? Dan Mengapa Sangat Bagus?
Intinya, model Qwen2.5-Omni-7B menggunakan arsitektur end-to-end baru yang disebut "Thinker-Talker". Filosofi desain ini bertujuan untuk menciptakan sistem terpadu yang mampu melakukan persepsi komprehensif dan generasi ekspresif di berbagai modalitas.
Komponen "Thinker" bertanggung jawab untuk memproses dan memahami kekayaan input multimodal. Ini mengintegrasikan encoder khusus untuk berbagai jenis data:
- Teks: Memanfaatkan modul pemahaman bahasa berbasis transformer tingkat lanjut, kemungkinan dibangun di atas fondasi kuat seri Qwen2.
- Visi (Gambar & Bingkai Video): Menggabungkan transformer visi (ViTs) atau arsitektur serupa untuk mengekstrak fitur spasial dari gambar dan fitur temporal dari bingkai video.
- Audio: Menggunakan encoder audio yang dirancang untuk memproses bentuk gelombang mentah atau spektrogram, menangkap fitur akustik, pola ucapan, suara lingkungan, dan elemen musik.

Inovasi penting dalam arsitektur ini adalah Time-aligned Multimodal RoPE (TMRoPE). Pengkodean posisi standar seperti Rotary Position Embedding (RoPE) unggul dalam data sekuensial seperti teks tetapi memerlukan adaptasi untuk skenario multimodal, terutama video di mana bingkai visual dan aliran audio harus disinkronkan. TMRoPE mengatasi hal ini dengan menyelaraskan stempel waktu bingkai video dengan segmen audio yang sesuai. Sinkronisasi ini memungkinkan model untuk membangun pemahaman temporal yang koheren tentang peristiwa audio-visual, memungkinkannya menjawab pertanyaan seperti "Suara apa yang terjadi ketika objek dijatuhkan dalam video?"
Komponen "Talker" menangani pembuatan output. Ini terdiri dari:
- Decoder Teks: Decoder model bahasa yang kuat yang menghasilkan respons tekstual berdasarkan pemahaman multimodal terpadu dari Thinker.
- Synthesizer Ucapan: Modul text-to-speech (TTS) terintegrasi yang mampu menghasilkan ucapan yang terdengar alami secara waktu nyata. Modul ini kemungkinan menggunakan vocoder neural yang canggih dan berpotensi teknik speaker embedding untuk memungkinkan output suara yang berbeda (seperti 'Chelsie' dan 'Ethan').
Sifat end-to-end berarti seluruh proses, dari persepsi hingga generasi, terjadi dalam satu model terpadu, meminimalkan latensi dan memungkinkan interaksi streaming yang mulus di mana respons dapat dimulai sebelum input sepenuhnya diproses.
Jadi Mengapa Qwen2.5-Omni-7B Begitu Istimewa?
Model Qwen2.5-Omni-7B membedakan dirinya melalui beberapa fitur teknis utama:
- Persepsi dan Generasi Omni-Modal: Tidak seperti model yang khusus untuk satu modalitas, Qwen2.5-Omni-7B secara inheren dirancang untuk input gabungan. Model ini dapat menganalisis video, mendengarkan trek audionya, membaca instruksi teks yang menyertainya, dan menghasilkan respons yang mensintesis informasi dari semua sumber ini, menghasilkan output teks dan audio lisan.
- Interaksi Streaming Waktu Nyata: Arsitektur Thinker-Talker mendukung pemrosesan input secara chunked dan pembuatan output secara langsung. Ini memfasilitasi aplikasi yang benar-benar interaktif seperti asisten suara yang dapat merespons di tengah kalimat atau alat analisis video yang memberikan komentar saat peristiwa berlangsung.
- Sintesis Ucapan Fidelitas Tinggi: Modul TTS terintegrasi bertujuan untuk kealamian dan ketahanan, diuji secara menguntungkan terhadap sistem TTS streaming dan non-streaming lainnya (misalnya, menggunakan SEED-TTS-eval). Ini menangani teks kompleks dan mempertahankan konsistensi pembicara jika berlaku.
- Kinerja Lintas Modal yang Kompetitif: Tolok ukur menunjukkan model Qwen2.5-Omni-7B berkinerja kuat di berbagai tugas. Ini melampaui Qwen2-Audio yang khusus dalam beberapa tugas audio dan mencapai kinerja yang sebanding dengan Qwen2.5-VL-7B yang berfokus pada visi-bahasa pada tugas visi, menunjukkan kekuatan omni-modalnya yang seimbang. Hasil state-of-the-art-nya di OmniBench menyoroti kemahirannya dalam mengintegrasikan banyak modalitas.
- Kemampuan Mengikuti Instruksi Ucapan yang Efektif: Kemampuan yang patut dicatat adalah kemampuannya untuk memahami dan menjalankan instruksi yang disampaikan melalui ucapan dengan efikasi yang sebanding dengan instruksi teks. Ini divalidasi melalui tolok ukur seperti MMLU dan GSM8K yang dilakukan menggunakan input ucapan, menunjukkan potensinya untuk operasi hands-free dan kontrol berbasis suara.
Berikut adalah tolok ukur untuk Qwen2.5-Omni

Evaluasi kuantitatif menggarisbawahi kemampuan model Qwen2.5-Omni-7B. Di berbagai spektrum tolok ukur, model ini menunjukkan kemahiran:
Multimodalitas ke Teks: Di OmniBench, model 7B mencapai skor rata-rata 56,13% yang luar biasa, secara signifikan mengungguli model seperti Gemini-1.5-Pro (42,91%) dan model multimodal khusus dalam tugas yang melibatkan penalaran gambar, audio, dan teks gabungan.
Audio ke Teks:
- ASR: Di Librispeech test-clean/test-other, model ini mencapai WER 1,8/3,4, kompetitif dengan Whisper-large-v3 (1,8/3,6) dan Qwen2-Audio (1,6/3,6). Di Common Voice 15 (en/zh), model ini mencapai skor tertinggi 7,6/5,2 WER.
- S2TT: Di CoVoST2 (en->de / zh->en), model ini mencapai skor BLEU 30,2/29,4, menunjukkan kemampuan terjemahan ucapan yang kuat.
- Pemahaman Audio: Di MMAU, model ini mencetak rata-rata 65,60%, unggul dalam tugas penalaran suara, musik, dan ucapan. Di VoiceBench (Rata-rata), model ini mencapai 74,12, menunjukkan kinerja yang kuat dalam tolok ukur percakapan berbasis suara yang kompleks.
Gambar ke Teks: Model Qwen2.5-Omni-7B menunjukkan kinerja yang sebanding dengan model Qwen2.5-VL-7B yang khusus pada tolok ukur visi-bahasa seperti MMMU (59,2 vs 58,6), MMBench-V1.1-EN (81,8 vs 82,6), MMStar (64,0 vs 63,9), dan TextVQA (84,4 vs 84,9). Model ini juga unggul dalam tugas grounding seperti RefCOCO/+/g.
Video (tanpa audio) ke Teks: Di tolok ukur seperti Video-MME (tanpa sub) dan MVBench, model ini mencapai skor masing-masing 64,3 dan 70,3, menunjukkan pemahaman video yang kuat bahkan tanpa isyarat audio yang menyertai dalam tes khusus ini.
Zero-shot TTS: Dievaluasi di SEED-TTS-eval, versi yang disetel RL menunjukkan WER rendah (1,42/2,32/6,54 untuk zh/en/hard) dan kemiripan pembicara tinggi (0,754/0,641/0,752), menunjukkan generasi suara berkualitas tinggi dan konsisten.
Teks ke Teks: Meskipun terutama multimodal, kemampuan teks-saja tetap kuat. Di MMLU-redux model ini mencetak 71,0, di GSM8K 88,7, dan di HumanEval 78,7, umumnya tertinggal dari model teks Qwen2.5-7B yang khusus tetapi membandingkan dengan baik terhadap model 7-8B lainnya seperti Llama3.1-8B.
Menjalankan Model Qwen2.5-Omni-7B: Implementasi Praktis
Beralih dari kemampuan teoretis ke aplikasi praktis membutuhkan pemahaman tentang cara berinteraksi dengan model Qwen2.5-Omni-7B secara terprogram. Alat utama untuk ini adalah pustaka transformers
Hugging Face, yang ditingkatkan dengan integrasi Qwen khusus, dan paket qwen-omni-utils
yang berguna untuk penanganan input multimodal yang efisien.
Perjalanan dimulai dengan menyiapkan lingkungan. Pastikan Anda memiliki pustaka inti, termasuk transformers
, accelerate
(untuk penanganan multi-GPU dan presisi campuran yang efisien), torch
, soundfile
(untuk I/O audio), dan qwen-omni-utils
yang penting. Sangat disarankan untuk menginstal versi pratinjau spesifik dari transformers
yang mencakup dukungan arsitektur Qwen2.5-Omni dan menggunakan tambahan [decord]
untuk qwen-omni-utils
untuk pemrosesan video yang lebih cepat:
# Recommended installation
pip install transformers accelerate torch soundfile qwen-omni-utils[decord] -U
# Install the specific transformers version with Qwen2.5-Omni support
pip install git+https://github.com/huggingface/transformers@v4.51.3-Qwen2.5-Omni-preview
Setelah lingkungan siap, memuat model dan prosesor yang sesuai adalah langkah selanjutnya. Untuk mengelola sumber daya komputasi yang signifikan yang diperlukan, terutama VRAM, menggunakan presisi bfloat16
(torch_dtype=torch.bfloat16
atau "auto"
) dan mengaktifkan Flash Attention 2 (attn_implementation="flash_attention_2"
) sangat disarankan. Flash Attention 2 mengoptimalkan mekanisme perhatian, mengurangi jejak memori dan meningkatkan kecepatan pada perangkat keras yang kompatibel (arsitektur NVIDIA Ampere atau yang lebih baru). Argumen device_map="auto"
secara cerdas mendistribusikan lapisan model di seluruh GPU yang tersedia.
import torch
import soundfile as sf
from transformers import Qwen2_5OmniForConditionalGeneration, Qwen2_5OmniProcessor
from qwen_omni_utils import process_mm_info
# Define model identifier and load components
model_path = "Qwen/Qwen2.5-Omni-7B"
print("Loading model and processor...")
model = Qwen2_5OmniForConditionalGeneration.from_pretrained(
model_path,
torch_dtype=torch.bfloat16, # Use BF16 for memory efficiency
device_map="auto", # Distribute model across available GPUs
attn_implementation="flash_attention_2" # Enable Flash Attention 2
)
processor = Qwen2_5OmniProcessor.from_pretrained(model_path)
print("Model and processor loaded successfully.")
Dengan model dimuat, kita dapat menjelajahi kemampuannya melalui contoh yang mencerminkan buku masak yang disediakan.
Pemahaman Audio Universal dengan Model Qwen2.5-Omni-7B
cookbooks/universal_audio_understanding.ipynb
menunjukkan kehebatan model dalam menangani berbagai tugas audio. Mari kita mulai dengan Automatic Speech Recognition (ASR).
Input perlu disusun sebagai daftar percakapan. Kita memberikan prompt sistem (penting untuk mengaktifkan potensi output audio, meskipun tidak digunakan untuk ASR) dan pesan pengguna yang berisi input audio (ditentukan melalui URL atau jalur lokal) dan prompt teks yang menginstruksikan model.
# Prepare conversation for ASR using a sample audio URL
audio_url_asr = "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen2.5-Omni/hello.wav"
conversation_asr = [
{
"role": "system",
"content": [{"type": "text", "text": "You are Qwen, a virtual human..."}] # Standard system prompt
},
{
"role": "user",
"content": [
{"type": "audio", "audio": audio_url_asr},
{"type": "text", "text": "Please provide the transcript for this audio."}
]
}
]
# Process multimodal info. Note: use_audio_in_video is False here.
USE_AUDIO_IN_VIDEO_FLAG = False
print("Processing ASR input...")
text_prompt_asr = processor.apply_chat_template(conversation_asr, add_generation_prompt=True, tokenize=False)
audios_asr, images_asr, videos_asr = process_mm_info(conversation_asr, use_audio_in_video=USE_AUDIO_IN_VIDEO_FLAG)
# Prepare final model inputs using the processor
inputs_asr = processor(
text=text_prompt_asr,
audio=audios_asr, images=images_asr, videos=videos_asr, # Pass processed modalities
return_tensors="pt", padding=True,
use_audio_in_video=USE_AUDIO_IN_VIDEO_FLAG # Consistent flag setting
)
# Move inputs to the correct device and data type
inputs_asr = inputs_asr.to(model.device).to(model.dtype)
print("ASR input ready for generation.")
Utilitas process_mm_info
menangani pemuatan dan pra-pemrosesan URL audio. Prosesor kemudian menggabungkan prompt teks yang di-tokenisasi dengan fitur audio yang diproses, membuat tensor input. Perhatikan flag use_audio_in_video
secara konsisten diatur ke False
karena tidak ada video yang terlibat.
Untuk menghasilkan transkripsi, kita memanggil metode model.generate
. Untuk ASR yang lebih cepat, kita mengatur return_audio=False
.
print("Generating ASR transcription...")
with torch.no_grad(): # Disable gradient calculations for inference
text_ids_asr = model.generate(
**inputs_asr,
use_audio_in_video=USE_AUDIO_IN_VIDEO_FLAG,
return_audio=False, # Only need text output
max_new_tokens=512 # Limit output length
)
# Decode the generated token IDs back to text
transcription = processor.batch_decode(text_ids_asr, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
print("\n--- Qwen2.5-Omni-7B Model: ASR Result ---")
print(f"Audio Source: {audio_url_asr}")
print(f"Generated Transcription: {transcription}")
Selain ucapan, model ini dapat menganalisis suara lain. Mari kita coba mengidentifikasi peristiwa suara, seperti batuk. Prosesnya serupa, mengganti sumber audio dan menyesuaikan prompt teks.
# Prepare conversation for sound analysis
sound_url = "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen2.5-Omni/cough.wav"
conversation_sound = [
{"role": "system", "content": [{"type": "text", "text": "You are Qwen, a virtual human..."}]},
{
"role": "user",
"content": [
{"type": "audio", "audio": sound_url},
{"type": "text", "text": "What specific sound event occurs in this audio clip?"}
]
}
]
# Process input (similar steps as ASR)
print("\nProcessing sound analysis input...")
text_prompt_sound = processor.apply_chat_template(conversation_sound, add_generation_prompt=True, tokenize=False)
audios_sound, _, _ = process_mm_info(conversation_sound, use_audio_in_video=False) # No images/videos
inputs_sound = processor(text=text_prompt_sound, audio=audios_sound, return_tensors="pt", padding=True, use_audio_in_video=False)
inputs_sound = inputs_sound.to(model.device).to(model.dtype)
print("Sound analysis input ready.")
# Generate sound analysis (text only)
print("Generating sound analysis...")
with torch.no_grad():
text_ids_sound = model.generate(**inputs_sound, return_audio=False, max_new_tokens=128)
# Decode and display the result
analysis_text = processor.batch_decode(text_ids_sound, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
print("\n--- Qwen2.5-Omni-7B Model: Sound Analysis Result ---")
print(f"Audio Source: {sound_url}")
print(f"Sound Analysis: {analysis_text}")
Ekstraksi Informasi Video dengan Model Qwen2.5-Omni-7B
Buku masak cookbooks/video_information_extracting.ipynb
berfokus pada ekstraksi wawasan dari aliran video, tugas di mana pemrosesan audio-visual terintegrasi dari model Qwen2.5-Omni-7B bersinar.
Di sini, perbedaan krusial seringkali adalah kebutuhan untuk memproses baik bingkai visual maupun trek audio video. Ini dikontrol oleh parameter use_audio_in_video
, yang harus diatur ke True
selama process_mm_info
dan panggilan processor
.
# Prepare conversation for video analysis using a sample video URL
video_url = "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen2.5-Omni/draw.mp4"
conversation_video = [
{"role": "system", "content": [{"type": "text", "text": "You are Qwen, a virtual human..."}]},
{
"role": "user",
"content": [
{"type": "video", "video": video_url},
# Prompt requiring integrated audio-visual understanding
{"type": "text", "text": "Describe the actions in this video and mention any distinct sounds present."}
]
}
]
# Process multimodal info, crucially enabling audio from video
USE_AUDIO_IN_VIDEO_FLAG = True # Enable audio track processing
print("\nProcessing video analysis input (with audio)...")
text_prompt_video = processor.apply_chat_template(conversation_video, add_generation_prompt=True, tokenize=False)
# process_mm_info handles video loading (using decord if installed)
audios_video, images_video, videos_video = process_mm_info(conversation_video, use_audio_in_video=USE_AUDIO_IN_VIDEO_FLAG)
# Prepare final model inputs
inputs_video = processor(
text=text_prompt_video,
audio=audios_video, images=images_video, videos=videos_video,
return_tensors="pt", padding=True,
use_audio_in_video=USE_AUDIO_IN_VIDEO_FLAG # MUST be True here as well
)
inputs_video = inputs_video.to(model.device).to(model.dtype)
print("Video input ready for generation.")
Saat menghasilkan respons untuk analisis video, kita dapat meminta deskripsi tekstual dan output ucapan yang disintesis menggunakan return_audio=True
dan menentukan speaker
.
# Generate video analysis (requesting both text and audio output)
print("Generating video analysis (text and audio)...")
with torch.no_grad():
text_ids_video, audio_output_video = model.generate(
**inputs_video,
use_audio_in_video=USE_AUDIO_IN_VIDEO_FLAG, # MUST be True here too
return_audio=True, # Request speech synthesis
speaker="Ethan", # Choose a voice (e.g., Ethan)
max_new_tokens=512
)
# Decode the text part of the response
video_analysis_text = processor.batch_decode(text_ids_video, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
print("\n--- Qwen2.5-Omni-7B Model: Video Analysis Result ---")
print(f"Video Source: {video_url}")
print(f"Generated Text Analysis: {video_analysis_text}")
# Save the generated audio response if it exists
if audio_output_video is not None:
output_audio_path = "video_analysis_response.wav"
sf.write(
output_audio_path,
audio_output_video.reshape(-1).detach().cpu().numpy(), # Reshape and move to CPU
samplerate=24000, # Qwen Omni uses 24kHz
)
print(f"Generated audio response saved to: {output_audio_path}")
else:
print("Audio response was not generated (check system prompt or flags).")
Contoh-contoh rinci ini mengilustrasikan alur kerja inti untuk berinteraksi dengan model Qwen2.5-Omni-7B untuk berbagai tugas multimodal. Dengan menyusun percakapan input dengan cermat, memanfaatkan utilitas yang disediakan, dan mengatur parameter seperti use_audio_in_video
dan return_audio
dengan benar, pengembang dapat memanfaatkan kemampuan persepsi dan generasi komprehensif dari model canggih ini. Ingatlah bahwa mengelola sumber daya GPU melalui teknik seperti presisi BF16 dan Flash Attention 2 seringkali diperlukan untuk menangani input kompleks seperti video yang lebih panjang.
Kesimpulan
Model Qwen2.5-Omni-7B mewakili kemajuan signifikan dalam AI multimodal. Arsitektur end-to-end-nya, fitur inovatif seperti TMRoPE, kinerja tolok ukur yang kuat di berbagai tugas, dan kemampuan interaksi waktu nyata menetapkan standar baru. Dengan mengintegrasikan persepsi dan generasi untuk teks, gambar, audio, dan video secara mulus, model ini membuka kemungkinan untuk aplikasi AI yang lebih kaya, lebih alami, dan lebih mampu, mulai dari asisten virtual yang canggih dan alat analisis konten hingga pengalaman pendidikan yang imersif dan solusi aksesibilitas. Saat ekosistem di sekitarnya matang, model Qwen2.5-Omni-7B siap menjadi teknologi dasar yang mendorong gelombang sistem cerdas berikutnya.
Ingin platform Terintegrasi, All-in-One untuk Tim Pengembang Anda bekerja sama dengan produktivitas maksimum?
Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau!