Transformers documentation

MuseGlimmerAssistant

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Model ini disumbangkan ke Hugging Face Transformers pada 2026-08-09.

FlashAttention SDPA

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

MuseGlimmerAssistantConfig

kelas transformers.MuseGlimmerAssistantConfig

< >

( 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, default 6656) — Dimensi dari representasi tersembunyi.
  • intermediate_size (int, opsional, default 19968) — Dimensi representasi MLP.
  • num_hidden_layers (int, opsional, default 5) — Jumlah lapisan tersembunyi dalam decoder Transformer.
  • num_attention_heads (int, opsional, default 32) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer.
  • num_key_value_heads (int, opsional, default 8) — Ini adalah jumlah key_value heads yang harus digunakan untuk mengimplementasikan Grouped Query Attention. Jika num_key_value_heads=num_attention_heads, model akan menggunakan Multi Head Attention (MHA), jika num_key_value_heads=1 model 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 ke num_attention_heads.
  • head_dim (int, opsional, default 128) — Dimensi head perhatian. Jika None, nilainya akan default ke hidden_size // num_attention_heads
  • rms_norm_eps (float, opsional, defaultnya 1e-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 untuk rope_theta dan secara opsional parameter yang digunakan untuk penskalaan jika Anda ingin menggunakan RoPE dengan max_position_embeddings yang lebih panjang.
  • max_position_embeddings (int, opsional, default 131072) — Panjang maksimum urutan yang mungkin digunakan dengan model ini.
  • sliding_window (int, opsional, default 2048) — Ukuran jendela untuk sliding window attention. Jika None, 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, defaultnya 0) — Rasio dropout untuk probabilitas perhatian.
  • hidden_act (str, opsional, defaultnya silu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, "gelu", "relu", "silu", dan sebagainya.
  • bos_token_id (int, opsional, default 200000) — ID token yang digunakan untuk penanda awal aliran (beginning-of-stream) dalam kosakata.
  • eos_token_id (int, opsional, default 200001) — ID token yang digunakan untuk end-of-stream dalam kosakata.
  • pad_token_id (int, opsional, default 200018) — 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.config

MuseGlimmerAssistantPreTrainedModel

kelas transformers.MuseGlimmerAssistantPreTrainedModel

< >

( 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

< >

( 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

< >

( 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.Tensor dengan 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.Tensor dengan 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.Tensor dengan bentuk [batch_size, number_of_previous_accepted_tokens + config.block_size]) — Mirip dengan attention_mask pada umumnya, namun perhatikan bahwa panjangnya adalah number_of_previous_accepted_tokens + config.block_size, karena Attention akan terlebih dahulu menggabungkan context_hidden_states dan hidden states yang diturunkan dari noise_embeds, sehingga state k/v tidak memiliki panjang yang sama dengan q_states, bahkan sebelum pemanggilan cache.update(). Oleh karena itu, dimensi kv_seq_len dari attention mask perlu mencakup posisi tambahan tersebut.
  • position_ids (torch.Tensor dengan bentuk [batch_size, number_of_previous_accepted_tokens + config.block_size]) — Mirip dengan position_ids pada umumnya, namun perhatikan bahwa panjangnya adalah number_of_previous_accepted_tokens + config.block_size, karena Attention akan terlebih dahulu menggabungkan context_hidden_states dan hidden states yang diturunkan dari noise_embeds, sehingga state k/v tidak memiliki panjang yang sama dengan q_states, bahkan sebelum pemanggilan cache.update(). Oleh karena itu, position_ids dan position_embeddings yang 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 dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada past_key_values yang diteruskan, DynamicCache akan diinisialisasi secara default.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna diharapkan hanya memasukkan input_ids yang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk (batch_size, unprocessed_length) alih-alih semua input_ids dengan bentuk (batch_size, sequence_length).

  • use_cache (bool, opsional) — Jika diset ke True, state kunci-nilai past_key_values akan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihat past_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 Module setelahnya 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.Tensor dengan bentuk (batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.

    Jika past_key_values digunakan, hanya hidden-state terakhir dari sekuens dengan bentuk (batch_size, 1, hidden_size) yang dioutput.

  • past_key_values (Cache, opsional, dikembalikan saat use_cache=True dilewatkan atau saat config.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=True di blok cross-attention) yang dapat digunakan (lihat input past_key_values) untuk mempercepat decoding berurutan.

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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).

Update on GitHub