Transformers documentation
Qwen3-Omni-MOE
نُشر هذا النموذج في أوراق HF في 22 سبتمبر 2025، وأُضيف إلى مكتبة Hugging Face Transformers في 21 سبتمبر 2025.
Qwen3-Omni-MOE
نظرة عامة
نموذج Qwen3-Omni-MOE هو نموذج موحّد متعدد الوسائط اقترحه فريق Qwen التابع لمجموعة Alibaba في التقرير التقني الخاص بـ Qwen3-Omni.
المستخلص من التقرير التقني هو كالتالي:
*نقدّم Qwen3-Omni، وهو نموذج متعدد الوسائط واحد يحافظ، للمرة الأولى، على أداء متقدم في الصدارة عبر النصوص والصور والصوت والفيديو دون أي تدهور مقارنةً بنظرائه أحادي الوسائط. يتطابق أداء Qwen3-Omni مع أداء النماذج أحادية الوسائط ذات الحجم نفسه ضمن سلسلة Qwen، ويتفوق بشكل خاص في مهام الصوت. عبر 36 معيارًا قياسيًا للصوت والصوت-البصري، يحقق Qwen3-Omni أداءً متقدمًا في الصدارة مفتوح المصدر في 32 معيارًا، وأداءً متقدمًا في الصدارة بشكل عام في 22 معيارًا، متفوقًا على نماذج مغلقة المصدر قوية مثل Gemini-2.5-Pro وSeed-ASR وGPT-4o-Transcribe. يتبنى Qwen3-Omni بنية Thinker-Talker MoE التي توحد الإدراك والتوليد عبر النصوص والصور والصوت والفيديو، مما ينتج نصوصًا سلسة وكلامًا طبيعيًا في الوقت الفعلي. يدعم التفاعل النصي بـ 119 لغة، وفهم الكلام بـ 19 لغة، وتوليد الكلام بـ 10 لغات. لتقليل زمن استجابة الحزمة الأولى في التركيب التدفقي، يتنبأ Talker بشكل ذاتي-تتابعي بترميزات صوتية منفصلة باستخدام مخطط متعدد الدفاتر. بالاستفادة من السعة التمثيلية لهذه الدفاتر، نستبدل الانتشار الكتلي المكثف حسابيًا بشبكة تلافيفية سببية خفيفة الوزن، مما يتيح التدفق من إطار الترميز الأول. في إعدادات البدء البارد، يحقق Qwen3-Omni زمن استجابة نظريًا من الطرف إلى الطرف للحزمة الأولى يبلغ 234 مللي ثانية. لتعزيز الاستدلال متعدد الوسائط بشكل أكبر، نقدم نموذج Thinking الذي يستدل صراحةً على المدخلات من أي وسيلة. نظرًا لأن مجتمع البحث يفتقر حاليًا إلى نموذج عام لوصف الصوت، قمنا بضبط Qwen3-Omni-30B-A3B للحصول على Qwen3-Omni-30B-A3B-Captioner، الذي ينتج أوصافًا مفصلة ومنخفضة الهلوسة للمدخلات الصوتية العشوائية. تم إصدار Qwen3-Omni-30B-A3B وQwen3-Omni-30B-A3B-Thinking وQwen3-Omni-30B-A3B-Captioner علنًا تحت رخصة Apache 2.0.
ملاحظات
- استخدم Qwen3OmniMoeForConditionalGeneration لتوليد مخرجات صوتية ونصية. ولتوليد نوع واحد فقط من المخرجات، استخدم Qwen3OmniMoeThinkerForConditionalGeneration للمخرجات النصية فقط، وQwen3OmniMoeTalkerForConditionalGeneration للمخرجات الصوتية فقط.
- في حال ظهور أخطاء نفاد الذاكرة عند العمل مع مدخلات الفيديو، قم بتقليل
processor.max_pixels. افتراضيًا، يتم تعيين الحد الأقصى إلى قيمة كبيرة جدًا، ولن يتم تغيير حجم المرئيات عالية الدقة ما لم تتجاوز الدقةprocessor.max_pixels. - يتميز المعالج بطريقته الخاصة apply_chat_template() لتحويل رسائل الدردشة إلى مدخلات النموذج.
مثال على الاستخدام
يمكن العثور على Qwen3-Omni على Huggingface Hub.
استدلال وسائط مفردة
يمكن للنموذج قبول النصوص والصور والصوتيات والفيديوهات كمدخلات. فيما يلي مثال على الكود للاستدلال.
import soundfile as sf
from transformers import Qwen3OmniMoeForConditionalGeneration, Qwen3OmniMoeProcessor
model = Qwen3OmniMoeForConditionalGeneration.from_pretrained(
"Qwen/Qwen3-Omni-30B-A3B-Instruct",
device_map="auto"
)
processor = Qwen3OmniMoeProcessor.from_pretrained("Qwen/Qwen3-Omni-30B-A3B-Instruct")
conversations = [
{
"role": "system",
"content": [
{"type": "text", "text": "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": [
{"type": "video", "video": "/path/to/video.mp4"},
{"type": "text", "text": "What can't you hear and see in this video?"},
],
},
]
inputs = processor.apply_chat_template(
conversations,
load_audio_from_video=True,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
fps=1,
# kwargs to be passed to `Qwen3OmniMoeProcessor`
padding=True,
use_audio_in_video=True,
).to(model.device)
# Generation params for audio or text can be different and have to be prefixed with `thinker_` or `talker_`
text_ids, audio = model.generate(**inputs, use_audio_in_video=True, thinker_do_sample=False, talker_do_sample=True)
text = processor.batch_decode(text_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)
sf.write(
"output.wav",
audio.reshape(-1).detach().cpu().numpy(),
samplerate=24000,
)
print(text)توليد نص فقط
لتوليد مخرجات نصية فقط وتوفير الحسابات من خلال عدم تحميل نموذج توليد الصوت، يمكننا استخدام نموذج Qwen3OmniMoeThinkerForConditionalGeneration.
from transformers import Qwen3OmniMoeProcessor, Qwen3OmniMoeThinkerForConditionalGeneration
model = Qwen3OmniMoeThinkerForConditionalGeneration.from_pretrained(
"Qwen/Qwen3-Omni-30B-A3B-Instruct",
device_map="auto",
)
processor = Qwen3OmniMoeProcessor.from_pretrained("Qwen/Qwen3-Omni-30B-A3B-Instruct")
conversations = [
{
"role": "system",
"content": [
{"type": "text", "text": "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": [
{"type": "video", "video": "/path/to/video.mp4"},
{"type": "text", "text": "What can't you hear and see in this video?"},
],
},
]
inputs = processor.apply_chat_template(
conversations,
load_audio_from_video=True,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
fps=1,
# kwargs to be passed to `Qwen3OmniMoeProcessor`
padding=True,
use_audio_in_video=True,
).to(model.device)
text_ids = model.generate(**inputs, use_audio_in_video=True)
text = processor.batch_decode(text_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)
print(text)الاستدلال على وسائط مختلطة على دفعات
يمكن للنموذج معالجة مجموعات من المدخلات المكوّنة من عينات مختلطة من أنواع مختلفة مثل النص والصور والصوت والفيديو عند استخدام نموذج Qwen3OmniMoeThinkerForConditionalGeneration. وفيما يلي مثال توضيحي.
import soundfile as sf
from transformers import Qwen3OmniMoeForConditionalGeneration, Qwen3OmniMoeProcessor
model = Qwen3OmniMoeForConditionalGeneration.from_pretrained(
"Qwen/Qwen3-Omni-30B-A3B-Instruct",
device_map="auto"
)
processor = Qwen3OmniMoeProcessor.from_pretrained("Qwen/Qwen3-Omni-30B-A3B-Instruct")
# Conversation with video only
conversation1 = [
{
"role": "system",
"content": [
{"type": "text", "text": "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": [
{"type": "video", "path": "/path/to/video.mp4"},
]
}
]
# Conversation with audio only
conversation2 = [
{
"role": "system",
"content": [
{"type": "text", "text": "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": [
{"type": "audio", "path": "/path/to/audio.wav"},
]
}
]
# Conversation with pure text
conversation3 = [
{
"role": "system",
"content": [
{"type": "text", "text": "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": [{"type": "text", "text": "who are you?"}],
}
]
# Conversation with mixed media
conversation4 = [
{
"role": "system",
"content": [
{"type": "text", "text": "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": [
{"type": "image", "path": "/path/to/image.jpg"},
{"type": "video", "path": "/path/to/video.mp4"},
{"type": "audio", "path": "/path/to/audio.wav"},
{"type": "text", "text": "What are the elements can you see and hear in these media?"},
],
}
]
conversations = [conversation1, conversation2, conversation3, conversation4]
inputs = processor.apply_chat_template(
conversations,
load_audio_from_video=True,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
fps=1,
# kwargs to be passed to `Qwen3OmniMoeProcessor`
padding=True,
use_audio_in_video=True,
).to(model.thinker.device)
text_ids = model.generate(**inputs, use_audio_in_video=True)
text = processor.batch_decode(text_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)
print(text)توليد الصوت على دفعات
يدعم Qwen3OmniMoeForConditionalGeneration توليد مخرجات صوتية على شكل دفعات. على سبيل المثال، التوليد الدفقي من النص إلى الكلام أدناه. عند استخدام دفعة تحتوي على أكثر من عينة واحدة، تُعاد الأصوات المولّدة كقائمة تضم موجة واحدة لكل عينة، وقد تم اقتطاع كل منها مسبقًا إلى طولها الخاص، بحيث لا تُملأ العينات الأقصر بصوت زائف. أما استدعاء عينة واحدة فيُعيد متجهًا واحدًا.
import soundfile as sf
from transformers import AutoModelForTextToWaveform, AutoProcessor
import torch
model_id = "Qwen/Qwen3-Omni-30B-A3B-Instruct"
model = AutoModelForTextToWaveform.from_pretrained(model_id, device_map="auto")
processor = AutoProcessor.from_pretrained(model_id)
sampling_rate = 24000 # output sampling rate
max_new_tokens = 128 # maximum number of tokens to generate
system_text = (
"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."
)
texts = [
"Hello, I'm Qwen. How can I help you today? Just let me know!",
"The weather is nice today.",
]
inputs = processor.apply_chat_template(
[
[
{"role": "system", "content": [{"type": "text", "text": system_text}]},
{
"role": "user",
"content": [
{
"type": "text",
"text": (
"Please read the following text aloud exactly as written, with no "
f"additional commentary:\n\n{text}"
),
}
],
},
]
for text in texts
],
tokenize=True,
add_generation_prompt=True,
return_dict=True,
return_tensors="pt",
processor_kwargs={"padding": True},
).to(model.device, dtype=model.dtype)
gen_kwargs = {
"talker_do_sample": True,
"speaker": "Ethan", # Ethan, Chelsie
"talker_max_new_tokens": max_new_tokens,
}
_, pred_waveform = model.generate(**inputs, **gen_kwargs)
for sample_id, audio in enumerate(pred_waveform):
sf.write(f"qwen3_omni_output_{sample_id}.wav", audio.detach().to(torch.float32).cpu().numpy(), sampling_rate)
print(f"Saved audio to qwen3_omni_output_{sample_id}.wav")نصائح للاستخدام
مقايضة دقة الصورة
يدعم النموذج مجموعة واسعة من مدخلات الدقة. افتراضياً، يستخدم الدقة الأصلية للمدخل، لكن الدقات الأعلى يمكن أن تعزز الأداء على حساب زيادة الحسابات. يمكن للمستخدمين تحديد الحد الأدنى والحد الأقصى لعدد البكسلات لتحقيق التهيئة المثالية لاحتياجاتهم.
min_pixels = 128*28*28
max_pixels = 768*28*28
processor = AutoProcessor.from_pretrained("Qwen/Qwen3-Omni-30B-A3B-Instruct", min_pixels=min_pixels, max_pixels=max_pixels)موجّه لإخراج الصوت
إذا احتاج المستخدمون إلى مخرجات صوتية، فيجب ضبط موجه النظام على النص التالي: “أنت Qwen، كائن افتراضي طورته فريق Qwen التابع لمجموعة Alibaba، قادر على إدراك المدخلات السمعية والبصرية، بالإضافة إلى توليد النصوص والكلام.”، وإلا فقد لا تعمل المخرجات الصوتية كما هو متوقع.
{
"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.",
}استخدام مخرج الصوت أو عدم استخدامه
يدعم النموذج كلًا من مخرجات النص والصوت، وإذا لم يكن المستخدمون بحاجة إلى مخرجات صوتية، فيمكنهم تعيين enable_audio_output في دالة from_pretrained. سيوفر هذا الخيار حوالي ~2GB من ذاكرة وحدة معالجة الرسوميات (GPU)، لكن خيار return_audio الخاص بدالة generate سيُسمح بتعيينه فقط على False.
model = Qwen3OmniMoeForConditionalGeneration.from_pretrained(
"Qwen/Qwen3-Omni-30B-A3B-Instruct",
device_map="auto",
enable_audio_output=False,
)للحصول على تجربة مرنة، ننصح المستخدمين بإعداد enable_audio_output على True عند تهيئة النموذج عبر دالة from_pretrained، ثم تحديد ما إذا كان سيتم إرجاع الصوت عند استدعاء دالة generate. عند ضبط return_audio على False، سيعيد النموذج مخرجات نصية فقط للحصول على ردود نصية بشكل أسرع.
model = Qwen3OmniMoeForConditionalGeneration.from_pretrained(
"Qwen/Qwen3-Omni-30B-A3B-Instruct",
device_map="auto",
enable_audio_output=True,
)
...
text_ids = model.generate(**inputs, return_audio=False)تغيير نوع صوت الصوت الناتج
يدعم Qwen3-Omni-MOE إمكانية تغيير صوت الصوت المُخرَج. يمكن للمستخدمين استخدام معامل speaker في دالة generate لتحديد نوع الصوت. يدعم نقطة التفتيش "Qwen/Qwen3-Omni-30B-A3B-Instruct" نوعين من الأصوات: Chelsie وEthan، حيث أن Chelsie صوت أنثوي وEthan صوت ذكوري. افتراضيًا، إذا لم يتم تحديد speaker، فإن نوع الصوت الافتراضي هو Chelsie.
text_ids, audio = model.generate(**inputs, speaker="Chelsie")text_ids, audio = model.generate(**inputs, speaker="Ethan")Flash-Attention 2 لتسريع عملية التوليد
أولاً، تأكد من تثبيت أحدث إصدار من Flash Attention 2:
pip install -U flash-attn --no-build-isolation
كما يجب أن يكون لديك عتاد متوافق مع FlashAttention 2. اقرأ المزيد حول ذلك في التوثيق الرسمي لـ مستودع flash attention. لا يمكن استخدام FlashAttention-2 إلا عند تحميل النموذج في torch.float16 أو torch.bfloat16.
لتحميل نموذج وتشغيله باستخدام FlashAttention-2، أضف attn_implementation="flash_attention_2" عند تحميل النموذج:
from transformers import Qwen3OmniMoeForConditionalGeneration
model = Qwen3OmniMoeForConditionalGeneration.from_pretrained(
"Qwen/Qwen3-Omni-30B-A3B-Instruct",
device_map="auto",
attn_implementation="flash_attention_2",
)Qwen3OmniMoeConfig
فئة transformers.Qwen3OmniMoeConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonethinker_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetalker_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonecode2wav_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneenable_audio_output: bool = Trueim_start_token_id: int = 151644im_end_token_id: int = 151645tts_pad_token_id: int = 151671tts_bos_token_id: int = 151672tts_eos_token_id: int = 151673system_token_id: int = 8948user_token_id: int = 872assistant_token_id: int = 77091initializer_range: float | None = None )
المعاملات
- thinker_config (
dict, اختياري) — إعدادات نموذج thinker الفرعي الأساسي. - talker_config (
dict، اختياري) — إعدادات نموذج talker الفرعي الأساسي. - code2wav_config (
dict, اختياري) — إعدادات نموذج code2wav الفرعي الأساسي. - enable_audio_output (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تفعيل مخرج الصوت وتحميل وحدة talker ووحدة code2wav. - im_start_token_id (
int, اختياري، القيمة الافتراضية 151644) — معرّف الرمز (Token id) لبداية الصورة - im_end_token_id (
int, اختياري، القيمة الافتراضية 151645) — معرّف الرمز (Token id) لنهاية الصورة - tts_pad_token_id (
int, اختياري، القيمة الافتراضية 151671) — معرّف الرمز (Token id) الخاص بالملء (padding) في TTS - tts_bos_token_id (
int, اختياري، القيمة الافتراضية 151672) — معرّف الرمز لبدء التسلسل في TTS - tts_eos_token_id (
int, اختياري، القيمة الافتراضية 151673) — معرّف الرمز (Token id) لنهاية التسلسل في TTS للصورة - system_token_id (
int, اختياري، القيمة الافتراضية 8948) — معرّف الرمز (Token id) الخاص بـ system prompt - user_token_id (
int، اختياري، القيمة الافتراضية 872) — معرّف الرمز (Token id) الخاص بطلب المستخدم - assistant_token_id (
int, اختياري، القيمة الافتراضية 77091) — معرّف الرمز (Token id) الخاص بـ prompt المساعد - initializer_range (
float، اختياري) — انحراف المعيار لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
هذه فئة الإعدادات المخزنة لإعدادات نموذج Qwen3 Omni MoeModel. تُستخدم لاستحداث نموذج Qwen3 Omni Moe وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ Qwen/Qwen3-Omni-30B-A3B-Instruct
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
مثال:
>>> from transformers import (
... Qwen3OmniMoeThinkerConfig,
... Qwen3OmniMoeTalkerConfig,
... Qwen3OmniMoeCode2WavConfig,
... Qwen3OmniMoeForConditionalGeneration,
... Qwen3OmniMoeConfig,
... )
>>> # Initializing a Qwen3OmniMoe style configuration
>>> configuration = Qwen3OmniMoeConfig()
>>> # Initializing a model from the configuration
>>> model = Qwen3OmniMoeForConditionalGeneration(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configget_text_config
< source >( decoder = False )
يعيد الإعداد المخصص للاستخدام مع مدخلات ومخرجات النص. في معظم النماذج، يكون هذا هو كائن الإعداد الأصلي نفسه. أما في بعض النماذج المركبة، فيقع تحت مجموعة من الأسماء الصالحة.
Qwen3OmniMoeThinkerConfig
فئة transformers.Qwen3OmniMoeThinkerConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneaudio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneposition_id_per_seconds: int = 25audio_start_token_id: int = 151647user_token_id: int = 872initializer_range: float = 0.02tie_word_embeddings: bool = Falseaudio_token_id: int = 151646image_token_id: int = 151655video_token_id: int = 151656 )
المعاملات
- audio_config (
Union[dict, ~configuration_utils.PreTrainedConfig], اختياري) — كائن الإعداد أو قاموس العمود الفقري الصوتي. - vision_config (
Union[dict, ~configuration_utils.PreTrainedConfig], اختياري) — كائن الإعدادات أو قاموس العمود الفقري البصري. - text_config (
Union[dict, ~configuration_utils.PreTrainedConfig]، اختياري) — كائن الإعدادات أو قاموس العمود الفقري النصي. - position_id_per_seconds (
int، اختياري، القيمة الافتراضية 25) — الزيادة في معرّف الموضع لكل ثانية. - audio_start_token_id (
int, اختياري، القيمة الافتراضية 151647) — معرّف رمز بداية الصوت لتشفير موجه الصوت. - user_token_id (
int, اختياري، القيمة الافتراضية 872) — معرّف رمز المستخدم (user token) المستخدم لتشفير رمز المستخدم. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - tie_word_embeddings (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم ربط ترميزات الأوزان وفقاً لخريطةtied_weights_keysالخاصة بالنموذج. - audio_token_id (
int، اختياري، القيمة الافتراضية151646) — مؤشر رمز الصوت المستخدم كعلامة مؤقتة للصوت المُدخل. - image_token_id (
int، اختياري، القيمة الافتراضية151655) — مؤشر رمز الصورة المستخدم كعنصر نائب للصور المدخلة. - video_token_id (
int، اختياري، القيمة الافتراضية151656) — مؤشر رمز الفيديو المستخدم كعنصر نائب لفيديوهات الإدخال.
هذه فئة الإعدادات المخزنة لإعدادات نموذج Qwen3 Omni MoeModel. تُستخدم لاستحداث نموذج Qwen3 Omni Moe وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ Qwen/Qwen3-Omni-30B-A3B-Instruct
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
مثال:
>>> from transformers import Qwen3OmniMoeThinkerModel, Qwen3OmniMoeThinkerConfig
>>> # Initializing a default Qwen3OmniMoeThinkerConfig
>>> configuration = Qwen3OmniMoeThinkerConfig()
>>> # Initializing a model (with random weights) from the default configuration
>>> model = Qwen3OmniMoeThinkerModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configQwen3OmniMoeTalkerConfig
فئة transformers.Qwen3OmniMoeTalkerConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonecode_predictor_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonenum_code_groups: int = 32thinker_hidden_size: int = 2048codec_eos_token_id: int = 4198accept_hidden_layer: int = 18codec_nothink_id: int = 4203codec_think_bos_id: int = 4204codec_think_eos_id: int = 4205codec_pad_id: int = 4196codec_bos_id: int = 4197audio_token_id: int = 151646image_token_id: int = 151655video_token_id: int = 151656vision_start_token_id: int = 151652position_id_per_seconds: int = 25audio_start_token_id: int = 151669speaker_id: dict | None = Noneinitializer_range: float = 0.02tie_word_embeddings: bool = False )
المعاملات
- code_predictor_config (
dict, اختياري) — قائمة参مفاتيح وقيم (dict) تحتوي على معاملات الإعداد المستخدمة لتهيئة Qwen3OmniMoeTalkerCodePredictorConfig. إذا لم يتم تقديمها، فسيتم استخدام قيم افتراضية. - text_config (
Union[dict, ~configuration_utils.PreTrainedConfig]، اختياري) — كائن الإعدادات أو قاموس العمود الفقري النصي. - num_code_groups (
int, اختياري، القيمة الافتراضية 32) — عدد مجموعات دفتر الرموز المستخدمة في تسلسل الرموز الصوتية المتوقعة، بما يتوافق مع تمثيل VQ متعدد دفاتر الرموز. - thinker_hidden_size (
int، اختياري، القيمة الافتراضية 2048) — حجم البُعد الخفي لوحدة thinker المستخدمة للاستدلال الوسيط أو التخطيط الكامن قبل توليد الصوت. - codec_eos_token_id (
int, اختياري، القيمة الافتراضية 4198) — معرّف الرمز الذي يمثل رمز نهاية الكلام في التسلسل الذي يولّده المُرمِّز. - accept_hidden_layer (
int، اختياري، القيمة الافتراضية 18) — مؤشر الطبقة المخفية التي يُستخدم مخرَجها لقبول الرموز المولَّدة أو تحسينها أثناء عملية التفكير والتحدث. - codec_nothink_id (
int، اختياري، القيمة الافتراضية 4203) — معرّف الرمز الذي يشير إلى عدم الحاجة إلى خطوة تفكير أثناء التوليد. - codec_think_bos_id (
int, اختياري، القيمة الافتراضية 4204) — معرّف الرمز الذي يحدد بداية تسلسل التفكير. - codec_think_eos_id (
int، اختياري، القيمة الافتراضية 4205) — معرّف الرمز الذي يحدد نهاية تسلسل التفكير. - codec_pad_id (
int، اختياري، القيمة الافتراضية 4196) — معرّف رمز التعبئة (Padding token) المستخدم في تسلسلات مدخلات الترميز (codec). - codec_bos_id (
int, اختياري، القيمة الافتراضية 4197) — معرّف رمز بداية الكلام في تسلسلات الترميز. - audio_token_id (
int، اختياري، القيمة الافتراضية151646) — مؤشر رمز الصوت المستخدم كعلامة مؤقتة للصوت المُدخل. - image_token_id (
int، اختياري، القيمة الافتراضية151655) — مؤشر رمز الصورة المستخدم كعنصر نائب للصور المدخلة. - video_token_id (
int، اختياري، القيمة الافتراضية151656) — مؤشر رمز الفيديو المستخدم كعنصر نائب لفيديوهات الإدخال. - vision_start_token_id (
int, اختياري، القيمة الافتراضية151652) — معرّف الرمز الذي يحدد بداية المقطع البصري في تسلسل الإدخال متعدد الوسائط. - position_id_per_seconds (
int, optional, defaults to 25) — Number of position IDs allocated per second of audio content, used for temporal alignment in generation. - audio_start_token_id (
int، اختياري، القيمة الافتراضية 151669) — معرّف الرمز الذي يشير إلى بداية مقطع توليد الصوت في المخرجات. - speaker_id (
dict, اختياري) — قاموس يربط بين أسماء المتحدثين ومعرفات المتحدثين. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - tie_word_embeddings (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم ربط ترميزات الأوزان وفقاً لخريطةtied_weights_keysالخاصة بالنموذج.
هذه فئة الإعدادات المخزنة لإعدادات نموذج Qwen3 Omni MoeModel. تُستخدم لاستحداث نموذج Qwen3 Omni Moe وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ Qwen/Qwen3-Omni-30B-A3B-Instruct
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
مثال:
>>> from transformers import Qwen3OmniMoeTalkerConfig, Qwen3OmniMoeTalker
>>> # Initialize a Qwen3OmniMoeTalkerConfig with default sub-configurations
>>> config = Qwen3OmniMoeTalkerConfig(
... num_code_groups=32,
... thinker_hidden_size=2048,
... )
>>> # Initialize the full Qwen3-Omni Talker model
>>> model = Qwen3OmniMoeTalker(config)
>>> # Access the model configuration
>>> config = model.config
>>> print(config.text_config) # Access text decoder configuration
>>> print(config.code_predictor_config) # Access code predictor configurationQwen3OmniMoeTextConfig
فئة transformers.Qwen3OmniMoeTextConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 3584hidden_size: int = 2048intermediate_size: int = 18944num_hidden_layers: int = 28num_attention_heads: int = 28num_key_value_heads: int = 4hidden_act: str = 'silu'max_position_embeddings: int = 32768initializer_range: float = 0.02rms_norm_eps: float = 1e-06use_cache: bool = Truerope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falsesliding_window: int | None = Noneattention_dropout: float | int = 0.0decoder_sparse_step: int = 1moe_intermediate_size: int = 768num_experts_per_tok: int = 8num_experts: int = 128norm_topk_prob: bool = Trueoutput_router_logits: bool = Falserouter_aux_loss_coef: float = 0.001mlp_only_layers: list[int] | None = Nonepad_token_id: int | None = Nonebos_token_id: int | None = Noneeos_token_id: int | list[int] | None = None )
المعاملات
- vocab_size (
int، اختياري، القيمة الافتراضية3584) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطةinput_ids. - hidden_size (
int، اختياري، القيمة الافتراضية2048) — بعد التمثيلات المخفية. - intermediate_size (
int، اختياري، القيمة الافتراضية18944) — بعد تمثيلات MLP. - num_hidden_layers (
int، اختياري، القيمة الافتراضية28) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية28) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - num_key_value_heads (
int، اختياري، القيمة الافتراضية4) — هذا هو عدد رؤوس key_value التي يجب استخدامها لتنفيذ Grouped Query Attention. إذا كانnum_key_value_heads=num_attention_heads، فسيستخدم النموذج Multi Head Attention (MHA)، وإذا كانnum_key_value_heads=1فسيستخدم النموذج Multi Query Attention (MQA)، وإلا فسيتم استخدام GQA. عند تحويل نقطة تفتيش متعددة الرؤوس إلى نقطة تفتيش GQA، يجب بناء كل مجموعة من رؤوس key و value عن طريق meanpooling جميع الرؤوس الأصلية داخل تلك المجموعة. لمزيد من التفاصيل، راجع هذا الورقة. إذا لم يتم تحديد القيمة، فستكون القيمة الافتراضية هيnum_attention_heads. - hidden_act (
str، اختياري، القيمة الافتراضيةsilu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - max_position_embeddings (
int، اختياري، القيمة الافتراضية32768) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - rms_norm_eps (
float، اختياري، القيمة الافتراضية1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع rms. - use_cache (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كانconfig.is_decoder=Trueأو إذا كان النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], اختياري) — قائمة تحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن تحتوي القائمة على قيمة لـrope_theta، ومعاملات اختيارية تُستخدم للتوسيع في حال رغبتَ في استخدام RoPE معmax_position_embeddingsأطول. - attention_bias (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام انحياز في طبقات الإسقاط للاستعلام والمفتاح والقيمة والمخرجات أثناء الانتباه الذاتي. - sliding_window (
int، اختياري) — حجم نافذة الانتباه المنزلقة. إذا كانتNone، فلا تُطبَّق نافذة منزلقة. - attention_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه. - decoder_sparse_step (
int، اختياري، القيمة الافتراضية 1) — تكرار طبقة MoE. - moe_intermediate_size (
int، اختياري، القيمة الافتراضية768) — الحجم الوسيط لشبكات MLP للخبراء الموجَّهين. - num_experts_per_tok (
int، اختياري، القيمة الافتراضية8) — عدد الخبراء الذين يُوجَّه إليهم كل رمز. هذه هي قيمة top-k الخاصة بتوجيه اختيار الرموز. - num_experts (
int، اختياري، القيمة الافتراضية128) — عدد الخبراء الموجَّهين في طبقات MoE. - norm_topk_prob (
bool، اختياري، القيمة الافتراضيةTrue) — هل يتم تطبيع أوزان الخبراء الموجَّهين. - output_router_logits (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب على النموذج إرجاع قيم اللوجيتس الخاصة بالموجِّه (router). تمكين هذا الخيار سيتيح أيضًا للنموذج إخراج الخسارة المساعدة، بما في ذلك خسارة موازنة الحمل وخسارة z الخاصة بالموجِّه. - router_aux_loss_coef (
float، اختياري، القيمة الافتراضية0.001) — معامل خسارة موازنة الحمل المساعدة. يُستخدم لعقابلة التوجيه غير المتساوي للخبراء في نماذج MoE. - mlp_only_layers (
list[int]، اختياري، القيمة الافتراضية[]) — يحدد أي طبقات تستخدم Qwen3OmniMoeTextMLP بدلاً من Qwen3OmniMoeTextSparseMoeBlock تحتوي القائمة على فهارس الطبقات، من 0 إلى num_layers-1 إذا كان لدينا num_layers طبقات إذا كانتmlp_only_layersفارغة، يُستخدمdecoder_sparse_stepلتحديد درجة التخلخل. - pad_token_id (
int, اختياري) — معرّف الرمز المستخدم للتعبئة في المفردات. - bos_token_id (
int, اختياري) — معرّف الرمز المستخدم لبدء البث في المفردات. - eos_token_id (
Union[int, list[int]], اختياري) — معرّف الرمز المستخدم لنهاية التدفق في المفردات.
هذه فئة الإعدادات المخزنة لإعدادات نموذج Qwen3 Omni MoeModel. تُستخدم لاستحداث نموذج Qwen3 Omni Moe وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ Qwen/Qwen3-Omni-30B-A3B-Instruct
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
>>> from transformers import Qwen3OmniMoeTextModel, Qwen3OmniMoeTextConfig
>>> # Initializing a Qwen3OmniMoeText style configuration
>>> configuration = Qwen3OmniMoeTextConfig()
>>> # Initializing a model from the Qwen3-15B-A2B" style configuration
>>> model = Qwen3OmniMoeTextModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configQwen3OmniMoeVisionEncoderConfig
فئة transformers.Qwen3OmniMoeVisionEncoderConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonedepth: int = 27hidden_size: int = 1152hidden_act: str = 'gelu_pytorch_tanh'intermediate_size: int = 4304num_heads: int = 16in_channels: int = 3patch_size: int | list[int] | tuple[int, int] = 16spatial_merge_size: int = 2temporal_patch_size: int | list[int] | tuple[int, int] = 2out_hidden_size: int = 3584num_position_embeddings: int = 2304deepstack_visual_indexes: list[int] | tuple[int, ...] = (8, 16, 24)initializer_range: float = 0.02rope_parameters: dict | None = None )
المعاملات
- depth (
int، اختياري، القيمة الافتراضية27) — عدد طبقات Transformer في مُشفِّر الرؤية. - hidden_size (
int، اختياري، القيمة الافتراضية1152) — أبعاد التمثيلات المخفية. - hidden_act (
str، اختياري، القيمة الافتراضيةgelu_pytorch_tanh) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - intermediate_size (
int، اختياري، القيمة الافتراضية4304) — أبعاد تمثيلات MLP. - num_heads (
int، اختياري، القيمة الافتراضية16) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - in_channels (
int، اختياري، القيمة الافتراضية3) — عدد قنوات الإدخال. - patch_size (
Union[int, list[int], tuple[int, int]]، اختياري، القيمة الافتراضية16) — حجم (دقة) كل رقعة. - spatial_merge_size (
int، اختياري، القيمة الافتراضية2) — حجم نافذة الدمج المكاني المستخدمة لتقليل عدد الرموز البصرية عن طريق دمج الباتشات المجاورة. - temporal_patch_size (
Union[int, list[int], tuple[int, int]]، اختياري، القيمة الافتراضية2) — حجم الباتش الزمني المستخدم في تضمين الباتش ثلاثي الأبعاد للمدخلات المرئية. - out_hidden_size (
int، اختياري، القيمة الافتراضية 3584) — حجم المخفي للإخراج في نموذج الرؤية. - num_position_embeddings (
int، اختياري، القيمة الافتراضية 2304) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق - deepstack_visual_indexes (
list[int]، اختياري، القيمة الافتراضية[8, 16, 24]) — مؤشرات الطبقات الخاصة بتضمينات deepstack. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - rope_parameters (
dict, اختياري) — قاموس يحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن يحتوي القاموس على قيمة لـrope_theta، ومعاملات اختيارية تُستخدم للتصحيح (scaling) في حال رغبتَ في استخدام RoPE معmax_position_embeddingsأطول.
هذه فئة الإعدادات المخزنة لإعدادات نموذج Qwen3 Omni MoeModel. تُستخدم لاستحداث نموذج Qwen3 Omni Moe وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ Qwen/Qwen3-Omni-30B-A3B-Instruct
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
Qwen3OmniMoeAudioEncoderConfig
فئة transformers.Qwen3OmniMoeAudioEncoderConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonenum_mel_bins: int = 128encoder_layers: int = 32encoder_attention_heads: int = 20encoder_ffn_dim: int = 5120d_model: int = 1280dropout: float | int = 0.0attention_dropout: float | int = 0.0activation_function: str = 'gelu'activation_dropout: float | int = 0.0scale_embedding: bool = Falseinitializer_range: float = 0.02max_source_positions: int = 1500n_window: int = 50output_dim: int = 3584n_window_infer: int = 800conv_chunksize: int = 500downsample_hidden_size: int = 480 )
المعاملات
- num_mel_bins (
int، اختياري، القيمة الافتراضية128) — عدد ميزات mel المستخدمة لكل إطار إدخال. يجب أن يتوافق مع القيمة المستخدمة في فئةAutoFeatureExtractor. - encoder_layers (
int, اختياري، القيمة الافتراضية32) — عدد الطبقات المخفية في مُشفِّر Transformer. سيستخدم نفس قيمةnum_layersإذا لم يتم ضبطه. - encoder_attention_heads (
int، اختياري، القيمة الافتراضية20) — عدد رؤوس الانتباه لكل طبقة انتباه في مُشفِّر Transformer. - encoder_ffn_dim (
int, اختياري، القيمة الافتراضية5120) — أبعاد طبقة "الوسط" (التي تُسمّى غالبًا بطبقة التغذية الأمامية) في المُشفِّر. - d_model (
int، اختياري، القيمة الافتراضية1280) — حجم طبقات المُشفِّر وطبقة المُجمِّع. - dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — النسبة لجميع طبقات dropout. - attention_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه. - activation_function (
str، اختياري، القيمة الافتراضيةgelu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - activation_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — نسبة dropout للتفعيلات داخل الطبقة المتصلة بالكامل. - scale_embedding (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم توسيع التضمينات (embeddings) من خلال القسمة على sqrt(d_model). - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - max_source_positions (
int، اختياري، القيمة الافتراضية 1500) — الحد الأقصى لطول التسلسل للمدخلات - n_window (
int، اختياري، القيمة الافتراضية 50) — عدد النوافذ - output_dim (
int، اختياري، القيمة الافتراضية 3584) — أبعاد المخرجات - n_window_infer (
int، اختياري، القيمة الافتراضية800) — عدد النوافذ أثناء الاستدلال - conv_chunksize (
int، اختياري، القيمة الافتراضية500) — حجم الدفعة لكل مدخل إلى الطبقة التلافيفية - downsample_hidden_size (
int، اختياري، القيمة الافتراضية480) — حجم المخفي في طبقة تقليل الحجم
هذه فئة الإعدادات المخزنة لإعدادات نموذج Qwen3 Omni MoeModel. تُستخدم لاستحداث نموذج Qwen3 Omni Moe وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ Qwen/Qwen3-Omni-30B-A3B-Instruct
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
Qwen3OmniMoeTalkerTextConfig
فئة transformers.Qwen3OmniMoeTalkerTextConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 3072hidden_size: int = 1024intermediate_size: int = 2048num_hidden_layers: int = 20num_attention_heads: int = 16num_key_value_heads: int = 2hidden_act: str = 'silu'max_position_embeddings: int = 32768initializer_range: float = 0.02rms_norm_eps: float = 1e-06use_cache: bool = Truetie_word_embeddings: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falsesliding_window: int | None = Noneattention_dropout: float | int = 0.0decoder_sparse_step: int = 1moe_intermediate_size: int = 384num_experts_per_tok: int = 8num_experts: int = 128norm_topk_prob: bool = Falseoutput_router_logits: bool = Falserouter_aux_loss_coef: float = 0.001mlp_only_layers: list[int] | None = Nonepad_token_id: int | None = Nonebos_token_id: int | None = Noneeos_token_id: int | list[int] | None = None )
المعاملات
- vocab_size (
int، اختياري، القيمة الافتراضية3072) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطةinput_ids. - hidden_size (
int، اختياري، القيمة الافتراضية1024) — أبعاد التمثيلات المخفية. - intermediate_size (
int، اختياري، القيمة الافتراضية2048) — بعد تمثيلات MLP. - num_hidden_layers (
int، اختياري، القيمة الافتراضية20) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية16) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - num_key_value_heads (
int, اختياري، القيمة الافتراضية2) — هذا هو عدد رؤوس key_value التي يجب استخدامها لتنفيذ Grouped Query Attention. إذا كانnum_key_value_heads=num_attention_heads، فسيستخدم النموذج Multi Head Attention (MHA)، وإذا كانnum_key_value_heads=1فسيستخدم النموذج Multi Query Attention (MQA)، وإلا فسيتم استخدام GQA. عند تحويل نقطة تفتيش متعددة الرؤوس إلى نقطة تفتيش GQA، يجب بناء كل مجموعة من رؤوس key و value عن طريق meanpooling جميع الرؤوس الأصلية داخل تلك المجموعة. لمزيد من التفاصيل، راجع هذا الورقة. إذا لم يتم تحديد القيمة، فستكون القيمة الافتراضية هيnum_attention_heads. - hidden_act (
str، اختياري، القيمة الافتراضيةsilu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - max_position_embeddings (
int، اختياري، القيمة الافتراضية32768) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - rms_norm_eps (
float، اختياري، القيمة الافتراضية1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع rms. - use_cache (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كانconfig.is_decoder=Trueأو إذا كان النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط. - tie_word_embeddings (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم ربط ترميزات الأوزان وفقاً لخريطةtied_weights_keysالخاصة بالنموذج. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], اختياري) — قائمة تحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن تحتوي القائمة على قيمة لـrope_theta، ومعاملات اختيارية تُستخدم للتوسيع في حال رغبتَ في استخدام RoPE معmax_position_embeddingsأطول. - attention_bias (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام انحياز في طبقات الإسقاط للاستعلام والمفتاح والقيمة والمخرجات أثناء الانتباه الذاتي. - sliding_window (
int، اختياري) — حجم نافذة الانتباه المنزلقة. إذا كانتNone، فلا تُطبَّق نافذة منزلقة. - attention_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه. - decoder_sparse_step (
int، اختياري، القيمة الافتراضية 1) — تكرار طبقة MoE. - moe_intermediate_size (
int، اختياري، القيمة الافتراضية384) — الحجم الوسيط لشبكات MLP الخاصة بالخبراء الموجَّهين. - num_experts_per_tok (
int، اختياري، القيمة الافتراضية8) — عدد الخبراء الذين يُوجَّه إليهم كل رمز. هذه هي قيمة top-k الخاصة بتوجيه اختيار الرموز. - num_experts (
int، اختياري، القيمة الافتراضية128) — عدد الخبراء الموجَّهين في طبقات MoE. - norm_topk_prob (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب تطبيع أوزان الخبراء الموجَّهين. - output_router_logits (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب على النموذج إرجاع قيم اللوجيتس الخاصة بالموجِّه (router). تمكين هذا الخيار سيتيح أيضًا للنموذج إخراج الخسارة المساعدة، بما في ذلك خسارة موازنة الحمل وخسارة z الخاصة بالموجِّه. - router_aux_loss_coef (
float، اختياري، القيمة الافتراضية0.001) — معامل خسارة موازنة الحمل المساعدة. يُستخدم لعقابلة التوجيه غير المتساوي للخبراء في نماذج MoE. - mlp_only_layers (
list[int]، اختياري، القيمة الافتراضية[]) — يحدد أي طبقات تستخدم Qwen3OmniMoeTalkerTextMLP بدلاً من Qwen3OmniMoeTalkerTextSparseMoeBlock تحتوي القائمة على فهارس الطبقات، من 0 إلى num_layers-1 إذا كان لدينا num_layers طبقات إذا كانتmlp_only_layersفارغة، يُستخدمdecoder_sparse_stepلتحديد درجة التخلخل. - pad_token_id (
int, اختياري) — معرّف الرمز المستخدم للتعبئة في المفردات. - bos_token_id (
int, اختياري) — معرّف الرمز المستخدم لبدء البث في المفردات. - eos_token_id (
Union[int, list[int]], اختياري) — معرّف الرمز المستخدم لنهاية التدفق في المفردات.
هذه فئة الإعدادات المخزنة لإعدادات نموذج Qwen3 Omni MoeModel. تُستخدم لاستحداث نموذج Qwen3 Omni Moe وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ Qwen/Qwen3-Omni-30B-A3B-Instruct
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
>>> from transformers import Qwen3OmniMoeTalkerTextModel, Qwen3OmniMoeTalkerTextConfig
>>> # Initializing a Qwen3OmniMoeTalkerText style configuration
>>> configuration = Qwen3OmniMoeTalkerTextConfig()
>>> # Initializing a model from the Qwen3-15B-A2B" style configuration
>>> model = Qwen3OmniMoeTalkerTextModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configQwen3OmniMoeTalkerCodePredictorConfig
فئة transformers.Qwen3OmniMoeTalkerCodePredictorConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 2048hidden_size: int = 1024intermediate_size: int = 3072num_hidden_layers: int = 5num_attention_heads: int = 16num_key_value_heads: int = 8head_dim: int = 128hidden_act: str = 'silu'max_position_embeddings: int = 32768initializer_range: float = 0.02rms_norm_eps: float = 1e-06use_cache: bool = Truetie_word_embeddings: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falsesliding_window: int | None = Nonemax_window_layers: int = 28layer_types: list[str] | None = Noneattention_dropout: float | int = 0.0pad_token_id: int | None = Nonebos_token_id: int | None = Noneeos_token_id: int | list[int] | None = Nonenum_code_groups: int = 32 )
المعاملات
- vocab_size (
int، اختياري، القيمة الافتراضية2048) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطةinput_ids. - hidden_size (
int، اختياري، القيمة الافتراضية1024) — أبعاد التمثيلات المخفية. - intermediate_size (
int، اختياري، القيمة الافتراضية3072) — أبعاد تمثيلات MLP. - num_hidden_layers (
int، اختياري، القيمة الافتراضية5) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية16) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - num_key_value_heads (
int، اختياري، القيمة الافتراضية8) — هذا هو عدد رؤوس key_value التي يجب استخدامها لتنفيذ Grouped Query Attention. إذا كانnum_key_value_heads=num_attention_heads، فسيستخدم النموذج Multi Head Attention (MHA)، وإذا كانnum_key_value_heads=1فسيستخدم النموذج Multi Query Attention (MQA)، وإلا فسيتم استخدام GQA. عند تحويل نقطة تفتيش متعددة الرؤوس إلى نقطة تفتيش GQA، يجب بناء كل مجموعة من رؤوس key و value عن طريق تجميع المتوسط لجميع الرؤوس الأصلية داخل تلك المجموعة. لمزيد من التفاصيل، راجع هذا الورقة. إذا لم يتم تحديد القيمة، فستكون القيمة الافتراضية هيnum_attention_heads. - head_dim (
int، اختياري، القيمة الافتراضية128) — بعد رأس الانتباه. إذا كانت القيمة None، فستكون القيمة الافتراضية هي hidden_size // num_attention_heads - hidden_act (
str، اختياري، القيمة الافتراضيةsilu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - max_position_embeddings (
int، اختياري، القيمة الافتراضية32768) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - rms_norm_eps (
float، اختياري، القيمة الافتراضية1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع rms. - use_cache (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كانconfig.is_decoder=Trueأو إذا كان النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط. - tie_word_embeddings (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم ربط ترميزات الأوزان وفقاً لخريطةtied_weights_keysالخاصة بالنموذج. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], اختياري) — قائمة تحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن تحتوي القائمة على قيمة لـrope_theta، ومعاملات اختيارية تُستخدم للتوسيع في حال رغبتَ في استخدام RoPE معmax_position_embeddingsأطول. - attention_bias (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام انحياز في طبقات الإسقاط للاستعلام والمفتاح والقيمة والمخرجات أثناء الانتباه الذاتي. - sliding_window (
int، اختياري) — حجم نافذة الانتباه المنزلقة. إذا كانتNone، فلا تُطبَّق نافذة منزلقة. - max_window_layers (
int, اختياري، القيمة الافتراضية28) — عدد الطبقات التي تستخدم الانتباه الكامل. ستستخدم الطبقات الأولىmax_window_layersالانتباه الكامل، بينما ستستخدم أي طبقة إضافية بعد ذلك SWA (انتباه النافذة المنزلقة). - layer_types (
list[str], اختياري) — قائمة تُقرن بشكل صريح كل فهرس طبقة بنوعها. إذا لم تُقدَّم، فسيتم توليدها تلقائيًا بناءً على قيم الإعداد. - attention_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه. - pad_token_id (
int, اختياري) — معرّف الرمز المستخدم للتعبئة في المفردات. - bos_token_id (
int, اختياري) — معرّف الرمز المستخدم لبدء البث في المفردات. - eos_token_id (
Union[int, list[int]], اختياري) — معرّف الرمز المستخدم لنهاية التدفق في المفردات. - num_code_groups (
int, اختياري، القيمة الافتراضية 32) — عدد مجموعات دفتر الرموز المستخدمة في تسلسل الرموز الصوتية المتوقعة، بما يتوافق مع تمثيل VQ متعدد دفاتر الرموز.
هذه فئة الإعدادات المخزنة لإعدادات نموذج Qwen3 Omni MoeModel. تُستخدم لاستحداث نموذج Qwen3 Omni Moe وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ Qwen/Qwen3-Omni-30B-A3B-Instruct
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
Qwen3OmniMoeForConditionalGeneration
Qwen3OmniMoeThinkerTextModel
فئة transformers.Qwen3OmniMoeThinkerTextModel
< source >( config: Qwen3OmniMoeTextConfig )
المعاملات
- config (Qwen3OmniMoeTextConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
جزء النص من Qwen3OmniMoeThinker، وليس نموذجًا نصيًا بحتًا، حيث يدمج DeepStack الميزات البصرية في الحالات المخفية المبكرة.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Nonevisual_pos_masks: typing.Optional[torch.Tensor] = Nonedeepstack_visual_embeds: list[torch.Tensor] | None = None**kwargs: *<class 'transformers.modeling_flash_attention_utils.FlashAttentionKwargs'> ) → MoeModelOutputWithPast or tuple(torch.Tensor)
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- position_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منpast_key_valuesالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندماuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات المفاتيح والقيمpast_key_valuesويمكن استخدامها لتسريع فك الترميز (انظرpast_key_values). - visual_pos_masks (
torch.Tensorمن الشكل(batch_size, seqlen)، اختياري) — قناع المواضع البصرية. - deepstack_visual_embeds (
list[torch.Tensor]، اختياري) — تضمينات البصريات العميقة (deepstack). الشكل هو (num_layers, visual_seqlen, embed_dim). يتم استخراج الميزة من طبقات مشفّر البصريات المختلفة، وتُغذّى بها حالات المُفكِّك المخفية. وهي مستمدة من ورقة DeepStack(https://arxiv.org/abs/2406.04334).
يعيد
MoeModelOutputWithPast أو tuple(torch.Tensor)
MoeModelOutputWithPast أو مجموعة (tuple) من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعدادات (Qwen3OmniMoeConfig) والمدخلات.
تتجاوز طريقة Qwen3OmniMoeThinkerTextModel الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.past_key_values (
Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي، وفي كتل الانتباه المتقاطع اختياريًا إذا كان
config.is_encoder_decoder=True) يمكن استخدامها (انظر مدخلpast_key_values) لتسريع فك الترميز التسلسلي.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
router_logits (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_router_probs=Trueوconfig.add_router_probs=Trueأو عندconfig.output_router_probs=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, sequence_length, num_experts).قيمات logits الخام (بعد تطبيق دالة softmax) التي يحسبها موجّهو MoE، وتُستخدم هذه القيم لحساب الخسارة المساعدة في نماذج مزيج الخبراء.
Qwen3OmniMoeThinkerModel
فئة transformers.Qwen3OmniMoeThinkerModel
< source >( config: Qwen3OmniMoeThinkerConfig )
المعاملات
- config (Qwen3OmniMoeThinkerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Qwen2.5OmniThinker الذي يتكون من هيكل صوتي ونموذج لغوي.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids = Noneinput_features = Nonepixel_values = Nonepixel_values_videos = Noneimage_grid_thw = Nonevideo_grid_thw = Noneattention_mask = Nonefeature_attention_mask = Noneaudio_feature_lengths = Noneposition_ids = Nonepast_key_values = Noneinputs_embeds = Noneuse_cache = Noneoutput_router_logits: bool | None = Noneuse_audio_in_video = Nonevideo_second_per_grid = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs ) → MoeModelOutputWithPast or tuple(torch.Tensor)
المعاملات
- input_ids (`
of shape(مؤشرات رموز تسلسل الإدخال في قاموس النموذج. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- input_features (`
of shape(batch_size, sequence_length, feature_dim)`) — المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام WhisperFeatureExtractor. راجع WhisperFeatureExtractor.call() للتفاصيل (Qwen3OmniMoeProcessor يستخدم WhisperFeatureExtractor لمعالجة الملفات الصوتية). - pixel_values (`
of shape(batch_size, num_channels, image_size, image_size)`) — المصفوفات المتناظرة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام Qwen2VLImageProcessor. راجع Qwen2VLImageProcessor.call() للتفاصيل (Qwen3OmniMoeProcessor يستخدم Qwen2VLImageProcessor لمعالجة الصور). - pixel_values_videos (`
of shape(batch_size, num_frames, num_channels, frame_size, frame_size)`) — المصفوفات المقابلة لفيديو الإدخال. يمكن الحصول على قيم البكسل للفيديوهات باستخدام Qwen2VLVideoProcessor. راجع Qwen2VLVideoProcessor.call() للتفاصيل (يستخدم Qwen3OmniMoeProcessor Qwen2VLVideoProcessor لمعالجة الفيديوهات). - image_grid_thw (`
of shape(num_images, 3)`) — الزمن والارتفاع والعرض لشكل الميزات لكل صورة في نموذج LLM. - video_grid_thw (`
of shape(num_videos, 3)`) — الأبعاد الزمنية والارتفاع والعرض لشكل الميزات لكل فيديو في LLM. - attention_mask (`
of shape(batch_size, sequence_length) -- Mask to avoid performing attention on padding token indices. Mask values selected in[0, 1]`:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- feature_attention_mask (
torch.Tensorبشكل(batch_size, feature_sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس الميزات المعبأة. قيم القناع المختارة من[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- audio_feature_lengths (
torch.LongTensorمن الشكل(num_audios)، اختياري) — طول شكل الميزات لكل مقطع صوتي في نموذج LLM. - position_ids (`
of shape(batch_size, sequence_length) -- Indices of positions of each input sequence tokens in the position embeddings. Selected in the range[0, config.n_positions - 1`. - past_key_values (`
) -- Pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention blocks) that can be used to speed up sequential decoding. This typically consists in thepast_key_valuesreturned by the model at a previous stage of decoding, whenuse_cache=Trueorconfig.use_cache=True`.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (`
of shape(batch_size, sequence_length, hidden_size)) -- Optionally, instead of passinginput_idsyou can choose to directly pass an embedded representation. This is useful if you want more control over how to convertinput_ids` indices into associated vectors than the model’s internal embedding lookup matrix. - use_cache (`
) -- If set toTrue,past_key_valueskey value states are returned and can be used to speed up decoding (seepast_key_values`). - output_router_logits (
bool, اختياري) — ما إذا كان يجب إرجاع قيم logits لجميع الموجّهات (routers) أم لا. تُفيد هذه القيم في حساب خسارة الموجّه (router loss)، ولا ينبغي إرجاعها أثناء الاستدلال. - use_audio_in_video (
bool, اختياري) — ما إذا كان يجب استخدام المسار الصوتي في الفيديو، ويجب أن يكون مطابقاً للمعامل فيprocess_audio_info. - video_second_per_grid (
torch.LongTensorمن الشكل(num_videos)، اختياري) — عدد الثواني لكل شبكة لكل فيديو، ويُستخدم للتمثيل الزمني للميزات. - mm_encoder_outputs (
dict[str, ~modeling_outputs.BaseModelOutputWithPooling], اختياري) — قاموس تكون مفاتيحه الأنماط المدعومة وقيمها المخرجات المُرمّزة لكل نمط. كل مخرَج مُرمَّز هو مجموعة (tuple) تتكون من (pooler_output، اختياري:last_hidden_states، اختياري:hidden_states، اختياري:attentions)pooler_outputذو الشكل(batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من الميزات متعددة الوسائط للمُشفِّر المُدمجة مع تضمينات النص.
يعيد
MoeModelOutputWithPast أو tuple(torch.Tensor)
MoeModelOutputWithPast أو مجموعة (tuple) من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعدادات (Qwen3OmniMoeConfig) والمدخلات.
تُعيد طريقة Qwen3OmniMoeThinkerModel الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.past_key_values (
Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي، وفي كتل الانتباه المتقاطع اختياريًا إذا كان
config.is_encoder_decoder=True) يمكن استخدامها (انظر مدخلpast_key_values) لتسريع فك الترميز التسلسلي.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
router_logits (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_router_probs=Trueوconfig.add_router_probs=Trueأو عندconfig.output_router_probs=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, sequence_length, num_experts).قيمات logits الخام (بعد تطبيق دالة softmax) التي يحسبها موجّهو MoE، وتُستخدم هذه القيم لحساب الخسارة المساعدة في نماذج مزيج الخبراء.
Qwen3OmniMoeThinkerForConditionalGeneration
فئة transformers.Qwen3OmniMoeThinkerForConditionalGeneration
< source >( config: Qwen3OmniMoeThinkerConfig )
forward
< source >( input_ids = Noneinput_features = Nonepixel_values = Nonepixel_values_videos = Noneimage_grid_thw = Nonevideo_grid_thw = Noneattention_mask = Nonefeature_attention_mask = Noneaudio_feature_lengths = Noneposition_ids = Nonepast_key_values = Noneinputs_embeds = Nonelabels = Noneuse_cache = Noneoutput_router_logits: bool | None = Noneuse_audio_in_video = Nonevideo_second_per_grid = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs ) → MoeCausalLMOutputWithPast or tuple(torch.Tensor)
المعاملات
- input_ids (`
of shape(مؤشرات رموز تسلسل الإدخال في قاموس النموذج. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- input_features (`
of shape(batch_size, sequence_length, feature_dim)`) — المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام WhisperFeatureExtractor. راجع WhisperFeatureExtractor.call() للتفاصيل (Qwen3OmniMoeProcessor يستخدم WhisperFeatureExtractor لمعالجة الملفات الصوتية). - pixel_values (`
of shape(batch_size, num_channels, image_size, image_size)`) — المصفوفات المتناظرة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام Qwen2VLImageProcessor. راجع Qwen2VLImageProcessor.call() للتفاصيل (Qwen3OmniMoeProcessor يستخدم Qwen2VLImageProcessor لمعالجة الصور). - pixel_values_videos (`
of shape(batch_size, num_frames, num_channels, frame_size, frame_size)`) — المصفوفات المقابلة لفيديو الإدخال. يمكن الحصول على قيم البكسل للفيديوهات باستخدام Qwen2VLVideoProcessor. راجع Qwen2VLVideoProcessor.call() للتفاصيل (يستخدم Qwen3OmniMoeProcessor Qwen2VLVideoProcessor لمعالجة الفيديوهات). - image_grid_thw (`
of shape(num_images, 3)`) — الزمن والارتفاع والعرض لشكل الميزات لكل صورة في نموذج LLM. - video_grid_thw (`
of shape(num_videos, 3)`) — الأبعاد الزمنية والارتفاع والعرض لشكل الميزات لكل فيديو في LLM. - attention_mask (`
of shape(batch_size, sequence_length) -- Mask to avoid performing attention on padding token indices. Mask values selected in[0, 1]`:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- feature_attention_mask (
torch.Tensorبشكل(batch_size, feature_sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس الميزات المعبأة. قيم القناع المختارة من[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- audio_feature_lengths (
torch.LongTensorمن الشكل(num_audios)، اختياري) — طول شكل الميزات لكل مقطع صوتي في نموذج LLM. - position_ids (`
of shape(batch_size, sequence_length) -- Indices of positions of each input sequence tokens in the position embeddings. Selected in the range[0, config.n_positions - 1`. - past_key_values (`
) -- Pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention blocks) that can be used to speed up sequential decoding. This typically consists in thepast_key_valuesreturned by the model at a previous stage of decoding, whenuse_cache=Trueorconfig.use_cache=True`.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (`
of shape(batch_size, sequence_length, hidden_size)) -- Optionally, instead of passinginput_idsyou can choose to directly pass an embedded representation. This is useful if you want more control over how to convertinput_ids` indices into associated vectors than the model’s internal embedding lookup matrix. - labels (`
of shape(batch_size, sequence_length)) -- Labels for computing the masked language modeling loss. Indices should either be in[0, …, config.vocab_size]or -100 (seeinput_idsdocstring). Tokens with indices set to-100are ignored (masked), the loss is only computed for the tokens with labels in[0, …, config.vocab_size]`. - use_cache (`
) -- If set toTrue,past_key_valueskey value states are returned and can be used to speed up decoding (seepast_key_values`). - output_router_logits (
bool, اختياري) — ما إذا كان يجب إرجاع قيم logits لجميع الموجّهات (routers) أم لا. تُفيد هذه القيم في حساب خسارة الموجّه (router loss)، ولا ينبغي إرجاعها أثناء الاستدلال. - use_audio_in_video (
bool, اختياري) — ما إذا كان يجب استخدام المسار الصوتي في الفيديو، ويجب أن يكون مطابقاً للمعامل فيprocess_audio_info. - video_second_per_grid (
torch.LongTensorمن الشكل(num_videos)، اختياري) — عدد الثواني لكل شبكة لكل فيديو، ويُستخدم للتمثيل الزمني للميزات. - mm_encoder_outputs (
dict[str, ~modeling_outputs.BaseModelOutputWithPooling], اختياري) — قاموس تكون مفاتيحه الأنماط المدعومة وقيمها المخرجات المُرمّزة لكل نمط. كل مخرَج مُرمَّز هو مجموعة (tuple) تتكون من (pooler_output، اختياري:last_hidden_states، اختياري:hidden_states، اختياري:attentions)pooler_outputذو الشكل(batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من الميزات متعددة الوسائط للمُشفِّر المُدمجة مع تضمينات النص.
يعيد
MoeCausalLMOutputWithPast أو tuple(torch.Tensor)
MoeCausalLMOutputWithPast أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (Qwen3OmniMoeConfig) والمدخلات.
تتجاوز طريقة Qwen3OmniMoeThinkerForConditionalGeneration الخاصة بـ forward الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.Tensorof shape(1,), اختياري, يُعاد عند توفيرlabels) — خسارة نمذجة اللغة (لتوقع الرمز التالي).logits (
torch.Tensorمن الشكل(batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).aux_loss (
torch.Tensor، اختياري، يُعاد عند تمريرoutput_router_logits=Trueأو عندconfig.output_router_logits=True، ويتدرب النموذج على مساره باستخدام خسارة توازن الأحمال) — خسارة مساعدة لتوازن الأحمال للوحدات المتناثرة. النماذج التي توازن خبرائها باستخدام انحياز المسار بدلاً من ذلك (DeepSeek-V3 والهندسات المشتقة منه) تعيدNoneهنا مع الاستمرار في إعادةrouter_logits.router_logits (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_router_logits=Trueأو عند تعيينconfig.output_router_logits=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة متناثرة) ذات الشكل(batch_size * sequence_length, num_experts).قيمات التوجيه الخام (logits) التي تحسبها وحدات التوجيه في نماذج MoE. يمكن استخدامها لحساب خسارة موازنة الحمل أو لفحص كيفية توزيع الرموز على الخبراء.
past_key_values (
Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي) يمكن استخدامها (انظر مدخل
past_key_values) لتسريع فك الترميز التسلسلي.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
مثال:
>>> from transformers import Qwen3OmniMoeProcessor, Qwen3OmniMoeThinkerForConditionalGeneration
>>> thinker = Qwen3OmniMoeThinkerForConditionalGeneration.from_pretrained("Qwen/Qwen2.5-Omni-7B")
>>> processor = Qwen3OmniMoeProcessor.from_pretrained("Qwen/Qwen2.5-Omni-7B")
>>> conversations = [
>>> {'role': 'system', 'content': 'You are a helpful voice chat bot, and please respond to me in a casual conversation manner using random voice.'},
>>> {"role": "user", "content": [
>>> {"type": "image", "image": "https://www.ilankelman.org/stopsigns/australia.jpg"},
>>> {"type": "audio", "audio": "https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/audio/glass_breaking.mp3"},
>>> ]},
>>> ]
>>> inputs = processor.apply_chat_template(
conversations,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
return_tensors="pt"
)
>>> # Generate
>>> generation = thinker.generate(**inputs, max_new_tokens=2048)
>>> generate_ids = generation[:, inputs.input_ids.size(1):]
>>> response = processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]get_audio_features
< source >( input_features: Tensorfeature_attention_mask: typing.Optional[torch.LongTensor] = Noneaudio_feature_lengths: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
المعاملات
- input_features (
torch.Tensor) — المصفوفات المقابلة لتسجيلات الصوت المدخلة. - feature_attention_mask (
torch.LongTensor، اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس الحشو. القيم المختارة للقناع في[0, 1]: - audio_feature_lengths (
torch.LongTensorمن الشكل(num_audios)، اختياري) — طول شكل الميزات لكل مقطع صوتي في نموذج LLM.
يعيد
BaseModelOutputWithPooling أو tuple(torch.Tensor)
BaseModelOutputWithPooling أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (Qwen3OmniMoeConfig) والمدخلات.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.pooler_output (
torch.Tensorمن الشكل(batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
مثال:
>>> from PIL import Image
>>> from transformers import AutoProcessor, Qwen3OmniMoeThinkerForConditionalGeneration
>>> model = Qwen3OmniMoeThinkerForConditionalGeneration.from_pretrained("Qwen/Qwen3-Omni-30B-A3B-Instruct")
>>> processor = AutoProcessor.from_pretrained("Qwen/Qwen3-Omni-30B-A3B-Instruct")
>>> messages = [
... {
... "role": "user", "content": [
... {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
... {"type": "text", "text": "Where is the cat standing?"},
... ]
... },
... ]
>>> inputs = processor.apply_chat_template(
... messages,
... tokenize=True,
... return_dict=True,
... return_tensors="pt",
... add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]get_image_features
< source >( pixel_values: Tensorimage_grid_thw: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithDeepstackFeatures or tuple(torch.Tensor)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. - image_grid_thw (
torch.LongTensorمن الشكل(num_images, 3)، اختياري) — الزمن والارتفاع والعرض لشكل الميزات لكل صورة في LLM.
يعيد
BaseModelOutputWithDeepstackFeatures أو tuple(torch.Tensor)
أمر BaseModelOutputWithDeepstackFeatures أو مجموعة (tuple) من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) تتألف من عناصر
مختلفة اعتماداً على الإعدادات (Qwen3OmniMoeConfig) والمدخلات.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.pooler_output (
torch.Tensorمن الشكل(batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
deepstack_features (
List[torch.Tensor]، اختياري) — قائمة بحالات المخفية (خرائط الميزات) من طبقات deepstack.
مثال:
>>> from PIL import Image
>>> from transformers import AutoProcessor, Qwen3OmniMoeThinkerForConditionalGeneration
>>> model = Qwen3OmniMoeThinkerForConditionalGeneration.from_pretrained("Qwen/Qwen3-Omni-30B-A3B-Instruct")
>>> processor = AutoProcessor.from_pretrained("Qwen/Qwen3-Omni-30B-A3B-Instruct")
>>> messages = [
... {
... "role": "user", "content": [
... {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
... {"type": "text", "text": "Where is the cat standing?"},
... ]
... },
... ]
>>> inputs = processor.apply_chat_template(
... messages,
... tokenize=True,
... return_dict=True,
... return_tensors="pt",
... add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]get_video_features
< source >( pixel_values_videos: Tensorvideo_grid_thw: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithDeepstackFeatures or tuple(torch.Tensor)
المعاملات
- pixel_values_videos (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة لفيديوهات الإدخال. - video_grid_thw (
torch.LongTensorمن الشكل(num_videos, 3)، اختياري) — الأبعاد الزمنية والارتفاع والعرض لشكل الميزات لكل فيديو في LLM.
يعيد
BaseModelOutputWithDeepstackFeatures أو tuple(torch.Tensor)
أمر BaseModelOutputWithDeepstackFeatures أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) تتكون من عناصر
مختلفة اعتماداً على الإعداد (Qwen3OmniMoeConfig) والمدخلات.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.pooler_output (
torch.Tensorمن الشكل(batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
deepstack_features (
List[torch.Tensor]، اختياري) — قائمة بحالات المخفية (خرائط الميزات) من طبقات deepstack.
مثال:
>>> from PIL import Image
>>> from transformers import AutoProcessor, Qwen3OmniMoeThinkerForConditionalGeneration
>>> model = Qwen3OmniMoeThinkerForConditionalGeneration.from_pretrained("Qwen/Qwen3-Omni-30B-A3B-Instruct")
>>> processor = AutoProcessor.from_pretrained("Qwen/Qwen3-Omni-30B-A3B-Instruct")
>>> messages = [
... {
... "role": "user", "content": [
... {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
... {"type": "text", "text": "Where is the cat standing?"},
... ]
... },
... ]
>>> inputs = processor.apply_chat_template(
... messages,
... tokenize=True,
... return_dict=True,
... return_tensors="pt",
... add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]Qwen3OmniMoeTalkerForConditionalGeneration
فئة transformers.Qwen3OmniMoeTalkerForConditionalGeneration
< source >( config: Qwen3OmniMoeTalkerConfig )
المعاملات
- config (Qwen3OmniMoeTalkerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Qwen3 Omni Moe لتوليد الرموز المشروطة على أنماط أخرى (مثل توليد النص من صورة ونص).
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids = Noneattention_mask = Noneuse_audio_in_video = Noneaudio_feature_lengths = Nonevideo_second_per_grid = Noneimage_grid_thw = Nonevideo_grid_thw = Noneposition_ids = Nonepast_key_values = Noneinputs_embeds = Nonelabels = Noneuse_cache = Noneoutput_router_logits = Noneresidual_codes = Nonetrailing_text_hidden = Nonetts_pad_embed = Nonegeneration_step = Nonetalker_input_ids = None**kwargs ) → MoeCausalLMOutputWithPast or tuple(torch.Tensor)
المعاملات
- input_ids (`
of shape(مؤشرات رموز تسلسل الإدخال في قاموس النموذج. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (`
of shape(batch_size, sequence_length) -- Mask to avoid performing attention on padding token indices. Mask values selected in[0, 1]`:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- use_audio_in_video (
bool, اختياري) — إذا تم تعيينه إلىTrue، فسيتم استخدام الصوت في الفيديو. - audio_feature_lengths (
torch.LongTensorمن الشكل(num_audios)، اختياري) — طول شكل الميزات لكل مقطع صوتي في نموذج LLM. - video_second_per_grid (
torch.LongTensorمن الشكل(num_videos)، اختياري) — عدد الثواني لكل شبكة لكل فيديو، ويُستخدم للتمثيل الزمني للميزات. - image_grid_thw (`
of shape(num_images, 3)`) — الزمن والارتفاع والعرض لشكل الميزات لكل صورة في نموذج LLM. - video_grid_thw (`
of shape(num_videos, 3)`) — الأبعاد الزمنية والارتفاع والعرض لشكل الميزات لكل فيديو في LLM. - position_ids (`
of shape(batch_size, sequence_length) -- Indices of positions of each input sequence tokens in the position embeddings. Selected in the range[0, config.n_positions - 1`. - past_key_values (`
) -- Pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention blocks) that can be used to speed up sequential decoding. This typically consists in thepast_key_valuesreturned by the model at a previous stage of decoding, whenuse_cache=Trueorconfig.use_cache=True`.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (`
of shape(batch_size, sequence_length, hidden_size)) -- Optionally, instead of passinginput_idsyou can choose to directly pass an embedded representation. This is useful if you want more control over how to convertinput_ids` indices into associated vectors than the model’s internal embedding lookup matrix. - labels (`
of shape(batch_size, sequence_length)) -- Labels for computing the masked language modeling loss. Indices should either be in[0, …, config.vocab_size]or -100 (seeinput_idsdocstring). Tokens with indices set to-100are ignored (masked), the loss is only computed for the tokens with labels in[0, …, config.vocab_size]`. - use_cache (`
) -- If set toTrue,past_key_valueskey value states are returned and can be used to speed up decoding (seepast_key_values`). - output_router_logits (“) — ما إذا كان يجب إرجاع قيم اللوجيت (logits) لجميع الموجّهات (routers) أم لا. تُفيد هذه القيم في حساب خسارة الموجّه (router loss)، ولا ينبغي إرجاعها أثناء الاستدلال (inference).
- residual_codes (
torch.Tensor) — رموز المتبقيات المتوقعة من الخطوة السابقة. - trailing_text_hidden (
torch.Tensor) — حالات النص المخفية من thinker بعد الرمز الأول. - tts_pad_embed (
torch.Tensor) — مصفوفة التضمين الخاصة بـtts_pad_token_id. - generation_step (
int) — خطوة التوليد منذ مرحلة التمهيد، وتُستخدم للمزامنة معtrailing_text_hidden. - talker_input_ids (
torch.Tensor) — المعرّفات المدخلة من thinker، وتُستخدم لحساب 3d RoPE.
يعيد
MoeCausalLMOutputWithPast أو tuple(torch.Tensor)
MoeCausalLMOutputWithPast أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (Qwen3OmniMoeConfig) والمدخلات.
تتجاوز طريقة Qwen3OmniMoeTalkerForConditionalGeneration الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.Tensorof shape(1,), اختياري, يُعاد عند توفيرlabels) — خسارة نمذجة اللغة (لتوقع الرمز التالي).logits (
torch.Tensorمن الشكل(batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).aux_loss (
torch.Tensor، اختياري، يُعاد عند تمريرoutput_router_logits=Trueأو عندconfig.output_router_logits=True، ويتدرب النموذج على مساره باستخدام خسارة توازن الأحمال) — خسارة مساعدة لتوازن الأحمال للوحدات المتناثرة. النماذج التي توازن خبرائها باستخدام انحياز المسار بدلاً من ذلك (DeepSeek-V3 والهندسات المشتقة منه) تعيدNoneهنا مع الاستمرار في إعادةrouter_logits.router_logits (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_router_logits=Trueأو عند تعيينconfig.output_router_logits=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة متناثرة) ذات الشكل(batch_size * sequence_length, num_experts).قيمات التوجيه الخام (logits) التي تحسبها وحدات التوجيه في نماذج MoE. يمكن استخدامها لحساب خسارة موازنة الحمل أو لفحص كيفية توزيع الرموز على الخبراء.
past_key_values (
Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي) يمكن استخدامها (انظر مدخل
past_key_values) لتسريع فك الترميز التسلسلي.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
Qwen3OmniMoePreTrainedModel
فئة transformers.Qwen3OmniMoePreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
المعاملات
- config (PreTrainedConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
Qwen3OmniMoePreTrainedModelForConditionalGeneration
فئة transformers.Qwen3OmniMoePreTrainedModelForConditionalGeneration
< source >( config: PreTrainedConfig*inputs**kwargs )
get_chunked_index
< source >( token_indices: Tensortokens_per_chunk: intremove_index: int ) → list[tuple[int, int]]
المعاملات
- token_indices (
torch.Tensorمن الشكل(seq_len, )) — قائمة متزايدة بشكل أحادي لقيم فهارس الرموز. - t_ntoken_per_chunk (
int) — عدد الرموز في كل شريحة (يُستخدم كحد عتبة حجم الشريحة). - remove_index (
int) معرّف فهرس يُطرح منtoken_indicesقبل التقطيع —
يعيد
list[tuple[int, int]]
قائمة من الأزواج (tuples)، يمثل كلٌّ منها الفهرس الابتدائي (شاملًا) والفهرس النهائي (غير شامل) لقِطعة في token_indices.
يقسم قائمة فهارس الرموز إلى مجموعات بناءً على نطاقات قيم الرموز.
بما أن قائمة فهارس الرموز معطاة، تُرجع قائمة من أزواج الفهارس (البداية، النهاية) التي تمثل مقاطع من القائمة حيث تقع قيم الرموز ضمن نطاقات متتالية من t_ntoken_per_chunk.
على سبيل المثال، إذا كان t_ntoken_per_chunk يساوي 1000، فإن الدالة ستنشئ مقاطع بحيث:
- تحتوي الدفعة الأولى على قيم الرموز < 1000،
- تحتوي الشريحة الثانية على قيم >= 1000 و < 2000، وهكذا.
get_rope_index
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneimage_grid_thw: typing.Optional[torch.LongTensor] = Nonevideo_grid_thw: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneuse_audio_in_video: bool = Falseaudio_seqlens: typing.Optional[torch.LongTensor] = Nonesecond_per_grids: typing.Optional[torch.Tensor] = None )
المعاملات
- input_ids (
torch.LongTensorمن الشكل(batch_size, sequence_length)) — فهارس رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا إذا قمت بتزويده. - image_grid_thw (
torch.LongTensorمن الشكل(num_images, 3)، اختياري) — الزمن والارتفاع والعرض لشكل الميزات لكل صورة في LLM. - video_grid_thw (
torch.LongTensorمن الشكل(num_videos, 3)، اختياري) — الأبعاد الزمنية والارتفاع والعرض لشكل الميزات لكل فيديو في LLM. - attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- use_audio_in_video (
bool, اختياري) — إذا تم تعيينه إلىTrue، فسيتم استخدام الصوت في الفيديو. - audio_seqlens (
torch.LongTensorمن الشكل(num_audios)، اختياري) — طول شكل الميزة لكل مقطع صوتي في نموذج LLM. - second_per_grids (
torch.LongTensorمن الشكل(num_videos)، اختياري) — الفاصل الزمني (بالثواني) لكل شبكة على البُعد الزمني في معرّفات المواقع ثلاثية الأبعاد.
احسب فهرس rope ثلاثي الأبعاد بناءً على الأبعاد الزمنية والارتفاع والعرض للصورة والفيديو في LLM.
الشرح: تحتوي كل تسلسل تمثيلات على تمثيلات بصرية وتمثيلات نصية، أو تحتوي على تمثيلات نصية فقط.
في حالة تسلسل التضمين النصي الخالص، لا يوجد فرق في تضمين الموضع الدوار مقارنةً بنماذج اللغة الكبيرة الحديثة. أمثلة: input_ids: [T T T T T]، حيث يمثل T النص. temporal position_ids: [0, 1, 2, 3, 4] height position_ids: [0, 1, 2, 3, 4] width position_ids: [0, 1, 2, 3, 4]
في حالة تسلسل تضمين الرؤية والنص، نحسب تضمين موضع دوّار ثلاثي الأبعاد (3D) للجزء الخاص بالرؤية، وتضمين موضع دوّار أحادي البعد (1D) للجزء الخاص بالنص. أمثلة: المحور الزمني (الوقت): 3 رقعات (patches)، تمثل مقاطع مختلفة من الفيديو عبر الزمن. الارتفاع: 2 رقعة، تقسم كل إطار عمودياً. العرض: 2 رقعة، تقسم كل إطار أفقياً. لدينا أيضاً بعض المعلمات المهمة: fps (الإطارات في الثانية): معدل إطارات الفيديو، وهو مضبوط على 1. وهذا يعني أن إطاراً واحداً يُعالج في كل ثانية. tokens_per_second: هذا معلم حاسم. فهو يحدد عدد "خطوات الزمن" أو "رموز الزمن" المفاهيمية التي تُحزم في فترة زمنية مدتها ثانية واحدة من الفيديو. في هذه الحالة، لدينا 25 رمزاً في الثانية. لذا، سيتم تمثيل كل ثانية من الفيديو بـ 25 نقطة زمنية منفصلة. فهو في جوهره يحدد الدقة الزمنية. temporal_patch_size: عدد الإطارات التي تُشكّل رقعة زمنية واحدة. هنا، هو 2 إطار. interval: حجم الخطوة لمعرّفات الموضع الزمني، ويُحسب على النحو التالي: tokens_per_second temporal_patch_size / fps. في هذه الحالة، 25 2 / 1 = 50. وهذا يعني أن كل رقعة زمنية ستحمل فرقاً مقداره 50 في معرّفات الموضع الزمني. input_ids: [V V V V V V V V V V V V T T T T T]، حيث V ترمز إلى الرؤية. vision temporal position_ids: [0, 0, 0, 0, 50, 50, 50, 50, 100, 100, 100, 100] vision height position_ids: [0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1] vision width position_ids: [0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1] text temporal position_ids: [101, 102, 103, 104, 105] text height position_ids: [101, 102, 103, 104, 105] text width position_ids: [101, 102, 103, 104, 105] هنا نحسب معرّفات الموضع لبدء النص على أنها القيمة القصوى لمعرّفات الموضع الخاصة بالرؤية مضافاً إليها 1.
Qwen3OmniMoeTalkerModel
فئة transformers.Qwen3OmniMoeTalkerModel
< source >( config: Qwen3OmniMoeTalkerTextConfig )
المعاملات
- config (Qwen3OmniMoeTalkerTextConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
جزء النص من Qwen3OmniMoe، وليس نموذجاً نصياً بحتاً، حيث يدمج DeepStack الميزات البصرية في الحالات المخفية المبكرة.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Nonevisual_pos_masks: typing.Optional[torch.Tensor] = Nonedeepstack_visual_embeds: list[torch.Tensor] | None = None**kwargs: *<class 'transformers.modeling_flash_attention_utils.FlashAttentionKwargs'> ) → MoeModelOutputWithPast or tuple(torch.Tensor)
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- position_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منpast_key_valuesالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندماuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات المفاتيح والقيمpast_key_valuesويمكن استخدامها لتسريع فك الترميز (انظرpast_key_values). - visual_pos_masks (
torch.Tensorمن الشكل(batch_size, seqlen)، اختياري) — قناع المواضع البصرية. - deepstack_visual_embeds (
list[torch.Tensor]، اختياري) — تضمينات البصريات العميقة (deepstack). الشكل هو (num_layers, visual_seqlen, embed_dim). يتم استخراج الميزة من طبقات مشفّر البصريات المختلفة، وتُغذّى بها حالات المُفكِّك المخفية. وهي مستمدة من ورقة DeepStack(https://arxiv.org/abs/2406.04334).
يعيد
MoeModelOutputWithPast أو tuple(torch.Tensor)
MoeModelOutputWithPast أو مجموعة (tuple) من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعدادات (Qwen3OmniMoeConfig) والمدخلات.
تتجاوز طريقة Qwen3OmniMoeTalkerModel الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.past_key_values (
Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي، وفي كتل الانتباه المتقاطع اختياريًا إذا كان
config.is_encoder_decoder=True) يمكن استخدامها (انظر مدخلpast_key_values) لتسريع فك الترميز التسلسلي.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
router_logits (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_router_probs=Trueوconfig.add_router_probs=Trueأو عندconfig.output_router_probs=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, sequence_length, num_experts).قيمات logits الخام (بعد تطبيق دالة softmax) التي يحسبها موجّهو MoE، وتُستخدم هذه القيم لحساب الخسارة المساعدة في نماذج مزيج الخبراء.
Qwen3OmniMoeThinkerTextPreTrainedModel
فئة transformers.Qwen3OmniMoeThinkerTextPreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
المعاملات
- config (PreTrainedConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
Qwen3OmniMoeProcessor
فئة transformers.Qwen3OmniMoeProcessor
< source >( image_processor = Nonevideo_processor = Nonefeature_extractor = Nonetokenizer = Nonechat_template = None )
المعاملات
- image_processor (
Qwen2VLImageProcessor) — معالج الصور هو مدخل إلزامي. - video_processor (
Qwen2VLVideoProcessor) — معالج الفيديو هو مدخل إلزامي. - feature_extractor (
WhisperFeatureExtractor) — مستخرج الميزات هو مدخل إلزامي. - tokenizer (
Qwen2Tokenizer) — المُجزِّئ مدخل إلزامي. - chat_template (
str) — قالب Jinja لتحويل قوائم الرسائل في المحادثة إلى نص قابل للتجزئة.
ينشئ Qwen3OmniMoeProcessor الذي يجمع معالج الصور ومعالج الفيديو ومستخرج الميزات ومجزئ الرموز في معالج واحد.
يوفر Qwen3OmniMoeProcessor جميع وظائف Qwen2VLImageProcessor وQwen2VLVideoProcessor وWhisperFeatureExtractor وQwen2Tokenizer. راجع ~Qwen2VLImageProcessor و~Qwen2VLVideoProcessor و~WhisperFeatureExtractor و~Qwen2Tokenizer لمزيد من المعلومات.
__call__
< source >( text: str = Noneimages: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Nonevideos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]], NoneType] = Noneaudio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None**kwargs: *<class 'transformers.models.qwen3_omni_moe.processing_qwen3_omni_moe.Qwen3OmniMoeProcessorKwargs'> ) → ~feature_extraction_utils.BatchFeature
المعاملات
- text (
str, اختياري) — التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصًا أو قائمة من النصوص (نص مُقسَّم مسبقًا إلى رموز). إذا مرّرت مدخلًا مُقسَّمًا مسبقًا إلى رموز، فعيّنis_split_into_words=Trueلتجنب الغموض مع المدخلات الدفعية. - images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], اختياري) — الصورة التي سيتم معالجتها مسبقًا. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صورًا بقيم بكسل بين 0 و1، فاضبطdo_rescale=False. - videos (
Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor], list[list[PIL.Image.Image]], list[list[numpy.ndarray]], list[list[torch.Tensor]], ~video_utils.URL, list[~video_utils.URL], list[list[~video_utils.URL]], ~video_utils.Path, list[~video_utils.Path], list[list[~video_utils.Path]]]، اختياري) — فيديو يُراد معالجته مسبقًا. يتوقع فيديو واحدًا أو دفعة من الفيديوهات بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر فيديوهات بقيم بكسل بين 0 و1، فاضبطdo_rescale=False. - audio (
Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], اختياري) — الصوت أو مجموعة الأصوات التي سيتم تجهيزها. يمكن أن يكون كل صوت مصفوفة NumPy أو متجه PyTorch. في حالة استخدام مصفوفة NumPy أو متجه PyTorch، يجب أن يكون شكل كل صوت (C, T)، حيث C هو عدد القنوات، وT هو طول العينة للصوت. - min_pixels (
int، kwargs، اختياري) — الحد الأدنى لعدد البكسلات (الارتفاع × العرض) لإطارات الفيديو بعد تغيير الحجم. سيتم تكبير الإطارات الأصغر من هذا الحد لتلبية الحد الأدنى المطلوب. - max_pixels (
int، kwargs، اختياري) — الحد الأقصى لعدد البكسلات (الارتفاع × العرض) لإطارات الفيديو بعد إعادة التحجيم. سيتم تصغير حجم الإطارات التي تتجاوز هذا الحد لتلائم ضمن هذا السقف. - patch_size (
int, kwargs, اختياري) — حجم البقعة المكانية الذي يستخدمه مُشفِّر الرؤية. يتم تقسيم إطارات الفيديو إلى بقع بهذا الحجم في كل من أبعاد الارتفاع والعرض. - temporal_patch_size (
int, kwargs, اختياري) — حجم البقعة الزمنية الذي يستخدمه مُشفِّر الرؤية. يحدد هذا العدد من الإطارات المتتالية التي تُجمَّع معًا كبقعة زمنية واحدة. - merge_size (
int، kwargs، اختياري) — حجم الدمج المستخدم لدمج البقع المكانية. يتم دمج عدة بقع معًا لتقليل طول التسلسل مع الحفاظ على المعلومات المكانية. - min_frames (
int، kwargs، اختياري) — الحد الأدنى لعدد الإطارات التي يجب استخراجها من الفيديو. سيتم ملء الفيديوهات التي تحتوي على عدد أقل من الإطارات أو تكرار إطاراتها لتلبية هذا الشرط. - max_frames (
int، kwargs، اختياري) — الحد الأقصى لعدد الإطارات التي سيتم استخراجها من الفيديو. سيتم اقتطاع الفيديوهات الأطول أو أخذ عينات منها لتناسب هذا الحد. - use_audio_in_video (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — معامل مُتقادم - استخدمload_audio_from_videoبدلاً منه. - load_audio_from_video (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب دمج معلومات الصوت عند معالجة مقاطع الفيديو. عند التفعيل، يتم تبديل رموز الصوت مع رموز الفيديو بناءً على المحاذاة الزمنية، مما يخلق تمثيلاً متعدد الوسائط موحداً. - seconds_per_chunk (
float، kwargs، اختياري، القيمة الافتراضية2.0) — المدة (بالثواني) لكل مقطع فيديو عند تقسيم الفيديوهات الطويلة. يتحكم هذا المعامل في كيفية تقسيم الفيديوهات إلى مقاطع زمنية للمعالجة. - position_id_per_seconds (
int, kwargs orfloat, optional, defaults to25) — The number of position IDs allocated per second of video. This parameter controls the temporal resolution of position embeddings and is used to align video tokens with audio tokens whenuse_audio_in_video=True. - return_tensors (
strأو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:'pt': إرجاع كائناتtorch.Tensorمن PyTorch.'np': إرجاع كائناتnp.ndarrayمن NumPy.
- **kwargs (ProcessingKwargs، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.
يعيد
~feature_extraction_utils.BatchFeature
- data (
dict، اختياري) — قاموس من القوائم/المصفوفات/الموترات التي تُعاد بواسطة طريقتي call/pad (مثل ‘input_values’، ‘attention_mask’، وما إلى ذلك). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة. - skip_tensor_conversion (
list[str]أوset[str]، اختياري) — قائمة أو مجموعة من المفاتيح التي يجب ألا تُحوَّل إلى متجهات، حتى لو تم تحديدtensor_type.
Qwen3OmniMoeCode2Wav
Qwen3OmniMoeCode2WavDecoderBlock
فئة transformers.Qwen3OmniMoeCode2WavDecoderBlock
< source >( config: Qwen3OmniMoeCode2WavConfiglayer_idx )
Qwen3OmniMoeCode2WavTransformerModel
فئة transformers.Qwen3OmniMoeCode2WavTransformerModel
< source >( config: Qwen3OmniMoeCode2WavConfig )
المعاملات
- config (
Qwen3OmniMoeCode2WavConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Qwen3 Omni Moe الأساسي الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids = Noneattention_mask = Noneposition_ids = Nonepast_key_values = Noneinputs_embeds = Noneuse_cache = None**kwargs ) → BaseModelOutputWithPast or tuple(torch.Tensor)
المعاملات
- input_ids (`
of shape(مؤشرات رموز تسلسل الإدخال في قاموس النموذج. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (`
of shape(batch_size, sequence_length) -- Mask to avoid performing attention on padding token indices. Mask values selected in[0, 1]`:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- position_ids (`
of shape(batch_size, sequence_length) -- Indices of positions of each input sequence tokens in the position embeddings. Selected in the range[0, config.n_positions - 1`. - past_key_values (`
) -- Pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention blocks) that can be used to speed up sequential decoding. This typically consists in thepast_key_valuesreturned by the model at a previous stage of decoding, whenuse_cache=Trueorconfig.use_cache=True`.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (`
of shape(batch_size, sequence_length, hidden_size)) -- Optionally, instead of passinginput_idsyou can choose to directly pass an embedded representation. This is useful if you want more control over how to convertinput_ids` indices into associated vectors than the model’s internal embedding lookup matrix. - use_cache (`
) -- If set toTrue,past_key_valueskey value states are returned and can be used to speed up decoding (seepast_key_values`).
يعيد
BaseModelOutputWithPast أو tuple(torch.Tensor)
BaseModelOutputWithPast أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعدادات (Qwen3OmniMoeConfig) والمدخلات.
تُعيد طريقة Qwen3OmniMoeCode2WavTransformerModel الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.إذا تم استخدام
past_key_values، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل(batch_size, 1, hidden_size)هي التي تُخرج.past_key_values (
Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي، وفي كتل الانتباه المتقاطع اختياريًا إذا كان
config.is_encoder_decoder=True) يمكن استخدامها (انظر مدخلpast_key_values) لتسريع فك الترميز التسلسلي.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
Qwen3OmniMoeTalkerCodePredictorModel
فئة transformers.Qwen3OmniMoeTalkerCodePredictorModel
< source >( config: Qwen3OmniMoeTalkerCodePredictorConfig )
المعاملات
- config (Qwen3OmniMoeTalkerCodePredictorConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Qwen3 Omni Moe الأساسي الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.Tensor)
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- position_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منpast_key_valuesالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندماuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات المفاتيح والقيمpast_key_valuesويمكن استخدامها لتسريع فك الترميز (انظرpast_key_values).
يعيد
BaseModelOutputWithPast أو tuple(torch.Tensor)
BaseModelOutputWithPast أو مجموعة مرتبة من
torch.Tensor (في حال تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (Qwen3OmniMoeConfig) والمدخلات.
تتجاوز طريقة Qwen3OmniMoeTalkerCodePredictorModel الخاصة بـ forward الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.إذا تم استخدام
past_key_values، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل(batch_size, 1, hidden_size)هي التي تُخرج.past_key_values (
Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي، وفي كتل الانتباه المتقاطع اختياريًا إذا كان
config.is_encoder_decoder=True) يمكن استخدامها (انظر مدخلpast_key_values) لتسريع فك الترميز التسلسلي.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
Qwen3OmniMoeTalkerCodePredictorModelForConditionalGeneration
فئة transformers.Qwen3OmniMoeTalkerCodePredictorModelForConditionalGeneration
< source >( config: Qwen3OmniMoeTalkerCodePredictorConfig )
المعاملات
- config (Qwen3OmniMoeTalkerCodePredictorConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Qwen3 Omni Moe لتوليد الرموز المشروطة على أنماط أخرى (مثل توليد النص من صورة ونص).
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids = Noneattention_mask = Noneposition_ids = Nonepast_key_values = Noneinputs_embeds = Nonelabels = Noneuse_cache = Nonegeneration_steps = None**kwargs ) → CausalLMOutputWithPast or tuple(torch.Tensor)
المعاملات
- input_ids (`
of shape(مؤشرات رموز تسلسل الإدخال في قاموس النموذج. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (`
of shape(batch_size, sequence_length) -- Mask to avoid performing attention on padding token indices. Mask values selected in[0, 1]`:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- position_ids (`
of shape(batch_size, sequence_length) -- Indices of positions of each input sequence tokens in the position embeddings. Selected in the range[0, config.n_positions - 1`. - past_key_values (`
) -- Pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention blocks) that can be used to speed up sequential decoding. This typically consists in thepast_key_valuesreturned by the model at a previous stage of decoding, whenuse_cache=Trueorconfig.use_cache=True`.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (`
of shape(batch_size, sequence_length, hidden_size)) -- Optionally, instead of passinginput_idsyou can choose to directly pass an embedded representation. This is useful if you want more control over how to convertinput_ids` indices into associated vectors than the model’s internal embedding lookup matrix. - labels (`
of shape(batch_size, sequence_length)) -- Labels for computing the masked language modeling loss. Indices should either be in[0, …, config.vocab_size]or -100 (seeinput_idsdocstring). Tokens with indices set to-100are ignored (masked), the loss is only computed for the tokens with labels in[0, …, config.vocab_size]`. - use_cache (`
) -- If set toTrue,past_key_valueskey value states are returned and can be used to speed up decoding (seepast_key_values`). - generation_steps (
int) — خطوة التوليد لمُتنبِّئ الكود، من 0 إلى num_code_groups-1
يعيد
CausalLMOutputWithPast أو tuple(torch.Tensor)
CausalLMOutputWithPast أو مجموعة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (Qwen3OmniMoeConfig) والمدخلات.
تُعيد طريقة Qwen3OmniMoeTalkerCodePredictorModelForConditionalGeneration الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.Tensorof shape(1,), اختياري, يُعاد عند توفيرlabels) — خسارة نمذجة اللغة (لتوقع الرمز التالي).logits (
torch.Tensorمن الشكل(batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).past_key_values (
Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي) يمكن استخدامها (انظر مدخل
past_key_values) لتسريع فك الترميز التسلسلي.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.