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

이 모델은 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