Transformers documentation
MuseGlimmerAssistant
تمت مساهمة هذا النموذج في Hugging Face Transformers في 2026-08-09.
MuseGlimmerAssistant
MuseGlimmerAssistant هو مُصيغ DFlash الخاص بـ MuseGlimmer. إنه ليس نموذج لغة قائمًا بذاته. يتكوّن من 5 طبقات نافذة منزلقة ولا يحتوي على تمثيلات خاصة به. يستعير تمثيلات الإدخال والإخراج من النموذج الرئيسي، ويقرأ الحالات المخفية للنموذج الرئيسي عند target_layer_ids (الطبقات 1 و13 و25 و37 و49 افتراضيًا) كسياق.
بدلاً من صياغة رمز واحد في كل مرة، يقوم المُصاغ بإزالة الضوضاء عن كتلة كاملة من الرموز المقنّعة بحجم block_size في تمريرة أمامية واحدة، على غرار نافذة الانتشار. ثم يتحقق النموذج الرئيسي من الكتلة في خطوة واحدة. وتُفيد شركة Meta بأن فك الترميز أسرع بمقدار 3.1 أضعاف على بطاقة RTX 5090، وأسرع بمقدار 1.5 إلى 1.8 أضعاف على شرائح Apple M-series.
مرّر المُسوّدة إلى generate() كـ assistant_model و اضبط speculation_type="dflash". يجب تحميل المُسوّدة بنفس نوع البيانات (dtype) وعلى نفس الجهاز (device) مثل النموذج الرئيسي.
from transformers import AutoProcessor, MuseGlimmerAssistantModel, MuseGlimmerForConditionalGeneration
processor = AutoProcessor.from_pretrained("meta-models/Muse-Glimmer-30B")
model = MuseGlimmerForConditionalGeneration.from_pretrained(
"meta-models/Muse-Glimmer-30B",
device_map="auto",
)
drafter = MuseGlimmerAssistantModel.from_pretrained(
"meta-models/Muse-Glimmer-30B-assistant",
device_map="auto",
)
messages = [
{
"role": "user",
"content": [{"type": "text", "text": "Write a bash one-liner that counts lines of Python in a repo."}],
},
]
inputs = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
input_len = inputs["input_ids"].shape[-1]
outputs = model.generate(
**inputs,
assistant_model=drafter,
speculation_type="dflash",
max_new_tokens=256,
)
response = processor.decode(outputs[0][input_len:], skip_special_tokens=False)
print(response)ملاحظات
- يحتاج المُعدّ إلى حالات الإخفاء للنموذج الرئيسي، لذا يفرض
generateقيمةoutput_hidden_states=Trueلنموذج الهدف عندما تكونspeculation_type="dflash". - اطّلع على منشور المدونة Meta تعود مع Muse Glimmer: محلي، ووكيلي، ومتعدد الوسائط، ومفتوح المصدر! لمزيد من التفاصيل وأمثلة على الاستخدام.
MuseGlimmerAssistantConfig
فئة transformers.MuseGlimmerAssistantConfig
< 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 = Nonehidden_size: int = 6656intermediate_size: int = 19968num_hidden_layers: int = 5num_attention_heads: int = 32num_key_value_heads: int = 8head_dim: int = 128rms_norm_eps: float = 1e-05rope_parameters: dict | None = Nonemax_position_embeddings: int = 131072sliding_window: int = 2048layer_types: list[str] | None = Noneattention_dropout: float | int = 0hidden_act: str = 'silu'bos_token_id: int | None = 200000eos_token_id: int | None = 200001pad_token_id: int | None = 200018block_size: int = 16mask_token_id: int = 201818target_layer_ids: list[int] | None = None )
المعاملات
- hidden_size (
int، اختياري، القيمة الافتراضية6656) — بعد التمثيلات المخفية. - intermediate_size (
int، اختياري، القيمة الافتراضية19968) — بعد تمثيلات MLP. - num_hidden_layers (
int، اختياري، القيمة الافتراضية5) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية32) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك 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 - rms_norm_eps (
float، اختياري، القيمة الافتراضية1e-05) — قيمة الإيبسلون المستخدمة في طبقات تطبيع rms. - rope_parameters (
dict, اختياري) — قاموس يحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن يحتوي القاموس على قيمة لـrope_theta، ومعاملات اختيارية تُستخدم للتصحيح (scaling) في حال رغبتَ في استخدام RoPE معmax_position_embeddingsأطول. - max_position_embeddings (
int، اختياري، القيمة الافتراضية131072) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق. - sliding_window (
int، اختياري، القيمة الافتراضية2048) — حجم نافذة الانتباه النافذة المنزلقة. إذا كانتNone، فلا تُطبَّق نافذة منزلقة. - layer_types (
list[str], اختياري) — قائمة تُقرن بشكل صريح كل فهرس طبقة بنوعها. إذا لم تُقدَّم، فسيتم توليدها تلقائيًا بناءً على قيم الإعداد. - attention_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0) — نسبة الإسقاط (dropout) لاحتمالات الانتباه. - hidden_act (
str، اختياري، القيمة الافتراضيةsilu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - bos_token_id (
int، اختياري، القيمة الافتراضية200000) — معرّف الرمز المستخدم لبدء البث في المفردات. - eos_token_id (
int، اختياري، القيمة الافتراضية200001) — معرّف الرمز المستخدم لنهاية البث في المفردات. - pad_token_id (
int، اختياري، القيمة الافتراضية200018) — معرّف الرمز المستخدم للتعبئة في المفردات. - block_size (
int، اختياري) — حجم كتلة مدخلات الضوضاء التي سيتم إزالة الضوضاء منها. - mask_token_id (
int, اختياري) — معرّفات رموز الأقنعة المستخدمة كمدخلات ضجيجية للنموذج. - target_layer_ids (
list[int]، اختياري) — معرّفات طبقات تبدأ من الصفر، تُدمج حالاتها المخفية كسياق للنموذج.
هذه فئة الإعدادات المخزنة لإعدادات نموذج MuseGlimmerAssistantModel. تُستخدم لاستحداث نموذج Muse Glimmer Assistant وفقًا للحجج المحددة، مع تحديد بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ meta-models/Muse-Glimmer-30B-assistant
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
مثال:
>>> from transformers import MuseGlimmerAssistantConfig, MuseGlimmerAssistantModel
>>> # Initializing a Muse Glimmer Assistant config similar to `meta-models/Muse-Glimmer-30B-assistant`.
>>> configuration = MuseGlimmerAssistantConfig(text_config)
>>> # Initializing a model from the `meta-models/Muse-Glimmer-30B-assistant` configuration.
>>> model = MuseGlimmerAssistantModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configMuseGlimmerAssistantPreTrainedModel
فئة transformers.MuseGlimmerAssistantPreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
المعاملات
- config (PreTrainedConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
MuseGlimmerAssistantModel
فئة transformers.MuseGlimmerAssistantModel
< source >( config: MuseGlimmerAssistantConfig )
المعاملات
- config (MuseGlimmerAssistantConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج مساعد Muse Glimmer الأساسي الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( noise_embeds: Tensorcontext_hidden_states: Tensorattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.DFlashCache | None = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.Tensor)
المعاملات
- noise_embeds (
torch.Tensorمن الشكل[batch_size, config.block_size, dim]) — تضمين الإدخال للرمز المرساة الأخير المولّد ورموز الأقنعة التي سيتم إزالة الضوضاء عنها. - context_hidden_states (
torch.Tensorمن الشكل[batch_size, number_of_previous_accepted_tokens, dim * len(config.target_layer_ids)]) — حالات المخفية للسياق من معرّفات الطبقات المحددة في النموذج المستهدف، مدمجة في البُعد الأخير. - attention_mask (
torch.Tensorمن الشكل[batch_size, number_of_previous_accepted_tokens + config.block_size]) — يشبه attention_mask المعتاد، لكن لاحظ أن طولهnumber_of_previous_accepted_tokens + config.block_size، لأن آلية الانتباه ستقوم أولاً بدمجcontext_hidden_statesمع حالات الخفاء المشتقة منnoise_embeds، بحيث لا تكون حالات k/v بنفس طول q_states، حتى قبل استدعاءcache.update(). وبالتالي، يجب أن تمتد بُعد kv_seq_len في قناع الانتباه ليشمل المواضع الإضافية. - position_ids (
torch.Tensorمن الشكل[batch_size, number_of_previous_accepted_tokens + config.block_size]) — يشبه position_ids المعتاد، لكن لاحظ أن طولهnumber_of_previous_accepted_tokens + config.block_size، لأن آلية الانتباه ستقوم أولاً بدمجcontext_hidden_statesمع حالات الخفاء المشتقة منnoise_embeds، بحيث لا تكون حالات k/v بنفس طول q_states، حتى قبل استدعاءcache.update(). وبالتالي يجب أن تغطيposition_idsوالتضمينات المشتقة منهاposition_embeddingsجميع المواضع الإضافية. - past_key_values (
~cache_utils.DFlashCache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً من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). - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات المفاتيح والقيمpast_key_valuesويمكن استخدامها لتسريع فك الترميز (انظرpast_key_values).
يعيد
BaseModelOutputWithPast أو tuple(torch.Tensor)
BaseModelOutputWithPast أو مجموعة (tuple) من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (MuseGlimmerAssistantConfig) والمدخلات.
تتجاوز طريقة MuseGlimmerAssistantModel الخاصة بالتقديم (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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.