Transformers documentation
MuseGlimmerAssistant
Model ini disumbangkan ke Hugging Face Transformers pada 2026-08-09.
MuseGlimmerAssistant
MuseGlimmerAssistant adalah drafter DFlash untuk MuseGlimmer. Ini bukan model bahasa mandiri. Model ini memiliki 5 lapisan sliding window dan tidak memiliki embeddings sendiri. Model ini meminjam embeddings input dan output dari model utama, serta membaca hidden states model utama pada target_layer_ids (lapisan 1, 13, 25, 37, dan 49 secara default) sebagai konteks.
Alih-alih menyusun satu token pada satu waktu, drafter melakukan denoising pada seluruh blok berisi block_size token yang di-mask dalam satu langkah forward, mirip dengan jendela difusi. Model utama kemudian memverifikasi blok tersebut dalam satu langkah. Meta melaporkan kecepatan decoding 3,1x lebih cepat pada RTX 5090 dan 1,5-1,8x pada chip Apple M-series.
Lewatkan drafter ke generate() sebagai assistant_model dan atur speculation_type="dflash". Drafter harus dimuat dengan dtype yang sama dan pada perangkat yang sama dengan model utama.
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)Catatan
- Drafter memerlukan hidden states dari model utama, sehingga
generatememaksaoutput_hidden_states=Trueuntuk model target ketikaspeculation_type="dflash". - Lihat Meta kembali dengan Muse Glimmer: lokal, agentic, multimodal, dan open source! untuk detail dan contoh penggunaan lebih lanjut.
MuseGlimmerAssistantConfig
kelas 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 )
Parameter
- hidden_size (
int, opsional, default6656) — Dimensi dari representasi tersembunyi. - intermediate_size (
int, opsional, default19968) — Dimensi representasi MLP. - num_hidden_layers (
int, opsional, default5) — Jumlah lapisan tersembunyi dalam decoder Transformer. - num_attention_heads (
int, opsional, default32) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer. - num_key_value_heads (
int, opsional, default8) — Ini adalah jumlah key_value heads yang harus digunakan untuk mengimplementasikan Grouped Query Attention. Jikanum_key_value_heads=num_attention_heads, model akan menggunakan Multi Head Attention (MHA), jikanum_key_value_heads=1model akan menggunakan Multi Query Attention (MQA), selain itu GQA yang digunakan. Saat mengkonversi checkpoint multi-head menjadi checkpoint GQA, setiap group key dan value head harus dibangun dengan meanpooling semua head asli di dalam grup tersebut. Untuk detail lebih lanjut, lihat paper ini. Jika tidak ditentukan, akan default kenum_attention_heads. - head_dim (
int, opsional, default128) — Dimensi head perhatian. Jika None, nilainya akan default ke hidden_size // num_attention_heads - rms_norm_eps (
float, opsional, defaultnya1e-05) — Epsilon yang digunakan oleh lapisan normalisasi rms. - rope_parameters (
dict, opsional) — Kamus yang berisi parameter konfigurasi untuk embedding RoPE. Kamus tersebut harus berisi nilai untukrope_thetadan secara opsional parameter yang digunakan untuk penskalaan jika Anda ingin menggunakan RoPE denganmax_position_embeddingsyang lebih panjang. - max_position_embeddings (
int, opsional, default131072) — Panjang maksimum urutan yang mungkin digunakan dengan model ini. - sliding_window (
int, opsional, default2048) — Ukuran jendela untuk sliding window attention. JikaNone, sliding window tidak diterapkan. - layer_types (
list[str], opsional) — Daftar yang secara eksplisit memetakan setiap indeks layer dengan tipe layernya. Jika tidak disediakan, daftar ini akan dibuat secara otomatis berdasarkan nilai config. - attention_dropout (
Union[float, int], opsional, defaultnya0) — Rasio dropout untuk probabilitas perhatian. - hidden_act (
str, opsional, defaultnyasilu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - bos_token_id (
int, opsional, default200000) — ID token yang digunakan untuk penanda awal aliran (beginning-of-stream) dalam kosakata. - eos_token_id (
int, opsional, default200001) — ID token yang digunakan untuk end-of-stream dalam kosakata. - pad_token_id (
int, opsional, default200018) — ID token yang digunakan untuk padding dalam kosakata. - block_size (
int, opsional) — Ukuran blok dari input noise yang akan didenois. - mask_token_id (
int, opsional) — ID token mask yang digunakan sebagai input berisik untuk model. - target_layer_ids (
list[int], opsional) — ID lapisan berindeks nol yang state tersembunyi (hidden states)-nya digabungkan sebagai konteks untuk model.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari MuseGlimmerAssistantModel. Kelas ini digunakan untuk membuat model Muse Glimmer Assistant sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari meta-models/Muse-Glimmer-30B-assistant
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Contoh:
>>> 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
kelas transformers.MuseGlimmerAssistantPreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
Parameter
- config (PreTrainedConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
MuseGlimmerAssistantModel
kelas transformers.MuseGlimmerAssistantModel
< source >( config: MuseGlimmerAssistantConfig )
Parameter
- config (MuseGlimmerAssistantConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model Muse Glimmer Assistant polos yang menghasilkan hidden-states mentah tanpa head spesifik di atasnya.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
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)
Parameter
- noise_embeds (
torch.Tensordengan bentuk[batch_size, config.block_size, dim]) — Embedding input untuk token anchor terakhir yang dihasilkan dan token mask yang akan didenoise. - context_hidden_states (
torch.Tensordengan bentuk[batch_size, number_of_previous_accepted_tokens, dim * len(config.target_layer_ids)]) — Context hidden states dari layer id yang dipilih pada target model, digabungkan pada dimensi terakhir. - attention_mask (
torch.Tensordengan bentuk[batch_size, number_of_previous_accepted_tokens + config.block_size]) — Mirip dengan attention_mask pada umumnya, namun perhatikan bahwa panjangnya adalahnumber_of_previous_accepted_tokens + config.block_size, karena Attention akan terlebih dahulu menggabungkancontext_hidden_statesdan hidden states yang diturunkan darinoise_embeds, sehingga state k/v tidak memiliki panjang yang sama dengan q_states, bahkan sebelum pemanggilancache.update(). Oleh karena itu, dimensi kv_seq_len dari attention mask perlu mencakup posisi tambahan tersebut. - position_ids (
torch.Tensordengan bentuk[batch_size, number_of_previous_accepted_tokens + config.block_size]) — Mirip dengan position_ids pada umumnya, namun perhatikan bahwa panjangnya adalahnumber_of_previous_accepted_tokens + config.block_size, karena Attention akan terlebih dahulu menggabungkancontext_hidden_statesdan hidden states yang diturunkan darinoise_embeds, sehingga state k/v tidak memiliki panjang yang sama dengan q_states, bahkan sebelum pemanggilancache.update(). Oleh karena itu,position_idsdanposition_embeddingsyang diturunkan darinya perlu mencakup semua posisi tambahan tersebut. - past_key_values (
~cache_utils.DFlashCache, opsional) — Hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values).
Mengembalikan
BaseModelOutputWithPast atau tuple(torch.Tensor)
A BaseModelOutputWithPast atau tuple dari
torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (MuseGlimmerAssistantConfig) dan input.
Metode forward dari MuseGlimmerAssistantModel menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.Jika
past_key_valuesdigunakan, hanya hidden-state terakhir dari sekuens dengan bentuk(batch_size, 1, hidden_size)yang dioutput.past_key_values (
Cache, opsional, dikembalikan saatuse_cache=Truedilewatkan atau saatconfig.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention, dan secara opsional jika
config.is_encoder_decoder=Truedi blok cross-attention) yang dapat digunakan (lihat inputpast_key_values) untuk mempercepat decoding berurutan.hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).