Transformers documentation
MuseGlimmerAssistant
Bu model, 2026-08-09 tarihinde Hugging Face Transformers'a katkıda bulunulmuştur.
MuseGlimmerAssistant
MuseGlimmerAssistant, MuseGlimmer için DFlash taslakçısıdır. Bağımsız bir dil modeli değildir. 5 kayan pencere katmanına sahiptir ve kendi gömme (embedding) katmanları yoktur. Ana modelin giriş ve çıkış gömmelerini kullanır ve bağlam olarak ana modelin gizli durumlarını target_layer_ids (varsayılan olarak 1, 13, 25, 37 ve 49. katmanlar) üzerinden okur.
Tek tek token taslağı çıkarmak yerine, taslakçı (drafter), bir difüzyon penceresi gibi, tek bir ileri geçişte block_size boyutundaki tüm maskeli token bloğunu gürültüden arındırır. Ana model, bloğu tek adımda doğrular. Meta, RTX 5090 üzerinde 3,1 kat daha hızlı, Apple M serisi çiplerinde ise 1,5-1,8 kat daha hızlı çözümleme (decoding) bildirmektedir.
Drafter'ı generate() fonksiyonuna assistant_model olarak iletin ve speculation_type="dflash" değerini ayarlayın. Drafter, ana modelle aynı dtype ve aynı cihazda yüklenmelidir.
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)Notlar
- Drafter, ana modelin gizli durumlarına ihtiyaç duyduğundan,
speculation_type="dflash"olduğundagenerate, hedef model içinoutput_hidden_states=Truedeğerini zorunlu kılar. - Daha fazla ayrıntı ve kullanım örnekleri için Meta is back with Muse Glimmer: local, agentic, multimodal, and open source! blog yazısına göz atın.
MuseGlimmerAssistantConfig
sınıf 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 )
Parametreler
- hidden_size (
int, isteğe bağlı, varsayılan6656) — Gizli temsillerin boyutu. - intermediate_size (
int, isteğe bağlı, varsayılan19968) — MLP temsillerinin boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan5) — Transformer çözücüdeki gizli katman sayısı. - num_attention_heads (
int, isteğe bağlı, varsayılan32) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - num_key_value_heads (
int, isteğe bağlı, varsayılan8) — Bu, Grouped Query Attention uygulamasında kullanılacak key_value başlarının sayısıdır.num_key_value_heads=num_attention_headsise model Multi Head Attention (MHA) kullanır,num_key_value_heads=1ise model Multi Query Attention (MQA) kullanır, aksi halde GQA kullanılır. Çok başlı bir checkpoint'i GQA checkpoint'ine dönüştürürken, her grup key ve value başı, o gruptaki tüm orijinal başların ortalama havuzlanması (meanpooling) ile oluşturulmalıdır. Daha fazla ayrıntı için bu makaleye göz atın. Belirtilmezse, varsayılan olaraknum_attention_headskullanılır. - head_dim (
int, isteğe bağlı, varsayılan128) — Dikkat başlığı boyutu. None ise, varsayılan olarak hidden_size // num_attention_heads değerini alır. - rms_norm_eps (
float, isteğe bağlı, varsayılan1e-05) — rms normalizasyon katmanları tarafından kullanılan epsilon. - rope_parameters (
dict, isteğe bağlı) — RoPE gömme yapılandırma parametrelerini içeren sözlük. Sözlük,rope_thetaiçin bir değer ve daha uzunmax_position_embeddingsile RoPE kullanmak istiyorsanız ölçekleme için kullanılan isteğe bağlı parametreleri içermelidir. - max_position_embeddings (
int, isteğe bağlı, varsayılan131072) — Bu modelin kullanılabileceği en uzun dizi uzunluğu. - sliding_window (
int, isteğe bağlı, varsayılan2048) — Kayan pencere dikkat penceresi boyutu.Noneise kayan pencere uygulanmaz. - layer_types (
list[str], isteğe bağlı) — Her katman indeksini ilgili katman türüyle açıkça eşleyen bir liste. Sağlanmazsa, config değerlerine göre otomatik olarak oluşturulur. - attention_dropout (
Union[float, int], isteğe bağlı, varsayılan0) — Dikkat olasılıkları için dropout oranı. - hidden_act (
str, isteğe bağlı, varsayılansilu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin,"gelu","relu","silu"vb. - bos_token_id (
int, isteğe bağlı, varsayılan200000) — Sözlükte akış başlangıcı için kullanılan token kimliği. - eos_token_id (
int, isteğe bağlı, varsayılan200001) — Sözlükte akış sonu için kullanılan token kimliği. - pad_token_id (
int, isteğe bağlı, varsayılan200018) — Sözlükte dolgu için kullanılan token kimliği. - block_size (
int, isteğe bağlı) — Gürültüden arındırılacak gürültü girişlerinin blok boyutu. - mask_token_id (
int, isteğe bağlı) — Modelin gürültülü girdisi olarak kullanılan mask token kimlikleri. - target_layer_ids (
list[int], isteğe bağlı) — Model için bağlam olarak birleştirilen gizli durumların sıfır tabanlı katman kimlikleri.
Bu, bir MuseGlimmerAssistantModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Muse Glimmer Assistant modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, meta-models/Muse-Glimmer-30B-assistant ile benzer bir yapılandırma elde edilir.
Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.
Örnek:
>>> 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
sınıf transformers.MuseGlimmerAssistantPreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
Parametreler
- config (PreTrainedConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
MuseGlimmerAssistantModel
sınıf transformers.MuseGlimmerAssistantModel
< source >( config: MuseGlimmerAssistantConfig )
Parametreler
- config (MuseGlimmerAssistantConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Üzerinde herhangi bir özel head olmadan ham hidden-states çıktısı veren çıplak Muse Glimmer Assistant Model.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
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)
Parametreler
- noise_embeds (
torch.Tensor, şekli[batch_size, config.block_size, dim]) — Gürültüden arındırılacak son üretilmiş çapa token'ı ve maske token'ları için giriş gömme (embedding). - context_hidden_states (
torch.Tensor, şekli[batch_size, number_of_previous_accepted_tokens, dim * len(config.target_layer_ids)]) — Hedef modelin seçilen katman kimliklerinden gelen bağlam gizli durumları, son boyutta birleştirilmiş olarak. - attention_mask (
torch.Tensor, şekli[batch_size, number_of_previous_accepted_tokens + config.block_size]) — Standart attention_mask ile benzerdir; ancak uzunluğununnumber_of_previous_accepted_tokens + config.block_sizeolduğunu not edin. Bunun nedeni, Attention'in öncecontext_hidden_statesilenoise_embedstürevli gizli durumları birleştirmesi ve bu sayedecache.update()çağrısından önce bile k/v durumlarının q_states ile aynı uzunlukta olmamasıdır. Dolayısıyla dikkat maskesinin kv_seq_len boyutu, ek konumları da kapsayacak şekilde uzanmalıdır. - position_ids (
torch.Tensor, şekli[batch_size, number_of_previous_accepted_tokens + config.block_size]) — Normal position_ids ile benzerdir, ancaknumber_of_previous_accepted_tokens + config.block_sizeuzunluğunda olduğunu unutmayın. Bunun nedeni, Attention'ın öncecontext_hidden_statesilenoise_embeds'den türetilen gizli durumları birleştirmesidir; bu sayede k/v durumları,cache.update()çağrısından önce bile q_states ile aynı uzunlukta olmaz. Dolayısıylaposition_idsve türetilenposition_embeddings, tüm ek konumları kapsaması gerekir. - past_key_values (
~cache_utils.DFlashCache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genelliklepast_key_valuesçözümlemenin önceki bir aşamasında model tarafından döndürülenuse_cache=Trueveyaconfig.use_cache=True.Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın.
past_key_valuesgeçirilmezse, varsayılan olarak DynamicCache başlatılır.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcının tüminput_ids(şekli(batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemişinput_ids(şekli(batch_size, unprocessed_length)) girmesi beklenir. - use_cache (
bool, isteğe bağlı) —Trueolarak ayarlanırsa,past_key_valuesanahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz.past_key_values).
Dönüş değeri
BaseModelOutputWithPast veya tuple(torch.Tensor)
Bir BaseModelOutputWithPast veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (MuseGlimmerAssistantConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
MuseGlimmerAssistantModel forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
last_hidden_state (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.past_key_valueskullanılırsa, yalnızca(batch_size, 1, hidden_size)biçimindeki dizilerin son gizli durumu (hidden-state) çıktı olarak verilir.past_key_values (
Cache, isteğe bağlı,use_cache=Truegeçirildiğinde veyaconfig.use_cache=Trueolduğunda döndürülür) — Bir Cache örneğidir. Daha fazla ayrıntı için kv cache kılavuzumuza bakın.Sıralı çözümlemeyi hızlandırmak için (bkz.
past_key_valuesgirdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler ve isteğe bağlı olarakconfig.is_encoder_decoder=Trueise cross-attention bloklarındaki anahtar ve değerler) içerir.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.