Transformers documentation

MuseGlimmerAssistant

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

이 모델은 2026-08-09에 Hugging Face Transformers에 기여되었습니다.

FlashAttention SDPA

MuseGlimmerAssistant

MuseGlimmerAssistant는 MuseGlimmer의 DFlash drafter입니다. 독립적인 언어 모델이 아닙니다. 5개의 sliding window 레이어를 가지며 자체 임베딩이 없습니다. 메인 모델의 입력 및 출력 임베딩을 재사용하고, target_layer_ids(기본값은 1, 13, 25, 37, 49 레이어)의 메인 모델 hidden states를 컨텍스트로 읽습니다.

토큰을 하나씩 생성하는 대신, drafter는 block_size개의 마스킹된 토큰으로 구성된 블록 전체를 diffusion window처럼 단일 forward pass에서 denoise합니다. 이후 main model이 해당 블록을 한 단계에서 검증합니다. Meta는 RTX 5090에서 3.1배, Apple M-series 칩에서 1.5~1.8배 빠른 decoding을 보고했습니다.

drafter를 generate()에 assistant_model로 전달하고 speculation_type="dflash"를 설정합니다. drafter는 메인 모델과 동일한 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)

The input is a single word "Notes". 참고

MuseGlimmerAssistantConfig

class 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 )

매개변수

  • hidden_size (int, 선택 사항, 기본값 6656) — 숨겨진 표현의 차원입니다.
  • intermediate_size (int, 선택 사항, 기본값 19968) — MLP 표현의 차원입니다.
  • num_hidden_layers (int, 선택 사항, 기본값 5) — Transformer decoder의 hidden layer 수입니다.
  • num_attention_heads (int, 선택 사항, 기본값 32) — Transformer decoder의 각 attention layer에 사용할 attention head의 수입니다.
  • num_key_value_heads (int, 선택 사항, 기본값 8) — Grouped Query Attention 구현에 사용할 key_value 헤드 수입니다. 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가 기본값으로 사용됩니다.
  • head_dim (int, 선택 사항, 기본값 128) — Attention head의 차원입니다. None인 경우 hidden_size // num_attention_heads 값이 기본값으로 사용됩니다.
  • rms_norm_eps (float, 선택 사항, 기본값 1e-05) — rms 정규화 레이어에서 사용되는 epsilon 값입니다.
  • rope_parameters (dict, 선택) — RoPE 임베딩의 구성 매개변수를 포함하는 사전입니다. 사전에는 rope_theta 값이 포함되어야 하며, 더 긴 max_position_embeddings로 RoPE를 사용하려는 경우 스케일링에 사용되는 매개변수를 선택적으로 포함할 수 있습니다.
  • max_position_embeddings (int, 선택 사항, 기본값 131072) — 이 모델이 사용될 수 있는 최대 시퀀스 길이입니다.
  • sliding_window (int, 선택 사항, 기본값 2048) — Sliding window attention의 윈도우 크기입니다. None인 경우 sliding window가 적용되지 않습니다.
  • layer_types (list[str], 선택 사항) — 각 레이어 인덱스를 해당 레이어 유형에 명시적으로 매핑하는 목록입니다. 제공되지 않으면 config 값에 기반하여 자동으로 생성됩니다.
  • attention_dropout (Union[float, int], 선택 사항, 기본값 0) — Attention 확률에 적용할 dropout 비율입니다.
  • hidden_act (str, 선택 사항, 기본값 silu) — 디코더의 비선형 활성화 함수(함수 또는 문자열)입니다. 예를 들어, "gelu", "relu", "silu" 등이 있습니다.
  • bos_token_id (int, 선택 사항, 기본값 200000) — 어휘에서 스트림 시작에 사용되는 토큰 ID입니다.
  • eos_token_id (int, 선택 사항, 기본값 200001) — 어휘에서 스트림 종료에 사용되는 토큰 id입니다.
  • pad_token_id (int, 선택 사항, 기본값 200018) — 어휘에서 패딩에 사용되는 토큰 ID입니다.
  • block_size (int, 선택 사항) — 노이즈 입력의 블록 크기입니다.
  • mask_token_id (int, 선택 사항) — 모델의 노이즈 입력으로 사용되는 마스크 토큰 ID입니다.
  • target_layer_ids (list[int], 선택 사항) — 모델의 컨텍스트로 연결되는 hidden states를 가지는 0-based layer id 목록입니다.

이것은 MuseGlimmerAssistantModel의 구성을 저장하기 위한 구성 클래스입니다. 지정된 인자에 따라 Muse Glimmer Assistant 모델을 초기화하여 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 구성을 초기화하면 meta-models/Muse-Glimmer-30B-assistant와 유사한 구성이 생성됩니다.

Configuration 객체는 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.config

MuseGlimmerAssistantPreTrainedModel

class transformers.MuseGlimmerAssistantPreTrainedModel

< >

( config: PreTrainedConfig*inputs**kwargs )

매개변수

  • config (PreTrainedConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

MuseGlimmerAssistantModel

클래스 transformers.MuseGlimmerAssistantModel

< >

( config: MuseGlimmerAssistantConfig )

매개변수

  • config (MuseGlimmerAssistantConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

특정 헤드가 위에 없는 상태에서 원시 hidden-states를 출력하는 Muse Glimmer Assistant Model의 기본 형태입니다.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

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)

매개변수

  • noise_embeds (torch.Tensor, shape [batch_size, config.block_size, dim]) — 마지막으로 생성된 앵커 토큰과 노이즈 제거 대상 마스크 토큰에 대한 입력 임베딩.
  • context_hidden_states (torch.Tensor, shape [batch_size, number_of_previous_accepted_tokens, dim * len(config.target_layer_ids)]) — 타겟 모델의 선택된 레이어 ID에서 가져온 컨텍스트 히든 스테이트를 마지막 차원 방향으로 연결한 값.
  • attention_mask (torch.Tensor, shape [batch_size, number_of_previous_accepted_tokens + config.block_size]) — 일반적인 attention_mask와 유사하지만, context_hidden_states와 noise_embeds에서 파생된 hidden states가 먼저 연결(concatenate)되기 때문에 cache.update() 호출 이전에도 k/v states의 길이가 q_states와 같지 않으므로, 길이가 number_of_previous_accepted_tokens + config.block_size입니다. 따라서 attention mask의 kv_seq_len 차원은 추가된 위치를 포함하도록 확장되어야 합니다.
  • position_ids (torch.Tensor, shape [batch_size, number_of_previous_accepted_tokens + config.block_size]) — 일반적인 position_ids와 유사하지만, context_hidden_states와 noise_embeds에서 파생된 hidden states가 먼저 연결되므로 cache.update() 호출 이전에도 k/v states의 길이가 q_states와 같지 않기 때문에, 길이가 number_of_previous_accepted_tokens + config.block_size인 점에 유의하세요. 따라서 position_ids와 여기서 파생되는 position_embeddings는 모든 추가 위치를 포괄해야 합니다.
  • past_key_values (~cache_utils.DFlashCache, 선택 사항) — 순차적 디코딩을 가속화할 수 있는 사전 계산된 hidden-states(self-attention 블록과 cross-attention 블록의 key 및 value)입니다. 일반적으로 이는 past_key_values 모델이 이전 디코딩 단계에서 반환한 use_cache=True 또는 config.use_cache=True.

    입력으로 Cache 인스턴스만 허용되며, kv cache 가이드를 참고하세요. past_key_values가 전달되지 않으면 기본적으로 DynamicCache가 초기화됩니다.

    모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.

    past_key_values를 사용하는 경우, 이 모델에 과거 키 값 상태가 제공되지 않은 input_ids만 입력해야 하며, 이때의 shape은 (batch_size, unprocessed_length)입니다. shape이 (batch_size, sequence_length)인 전체 input_ids를 입력하지 않습니다.

  • use_cache (bool, 선택 사항) — True로 설정하면 past_key_values 키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다( past_key_values 참조).

반환값

BaseModelOutputWithPast 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 BaseModelOutputWithPast입니다. return_dict=False가 전달되었거나 config.return_dict=False인 경우, 구성(MuseGlimmerAssistantConfig)과 입력에 따라 다양한 요소로 구성됩니다.

MuseGlimmerAssistantModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • last_hidden_state (torch.Tensor, shape (batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.

    past_key_values가 사용되면, (batch_size, 1, hidden_size) 형태의 시퀀스의 마지막 hidden-state만 출력됩니다.

  • past_key_values (Cache, 선택 사항, use_cache=True가 전달되었거나 config.use_cache=True인 경우 반환됨) — Cache 인스턴스입니다. 자세한 내용은 kv cache 가이드를 참고하세요.

    순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value, 그리고 config.is_encoder_decoder=True인 경우 크로스 어텐션 블록의 key와 value)를 포함합니다(입력 past_key_values 참조).

  • hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True가 전달되거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은 (batch_size, sequence_length, hidden_size)입니다.

    각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.

  • attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

Update on GitHub