Transformers documentation
HRM-Text
Este modelo foi publicado no HF papers em 2025-06-26 e contribuído para o Hugging Face Transformers em 2026-05-18.
HRM-Text
Visão geral
O HRM-Text é a variante aprimorada de modelagem de linguagem autoregressiva do Hierarchical Reasoning Model
(HRM, Hierarchical Reasoning Model), da equipe Sapient AI.
Trata-se de um modelo base que utiliza um encaminhamento recorrente hierárquico — duas pilhas de transformers (H para planejamento lento e
abstrato, e L para computação rápida e detalhada) são reutilizadas dentro de uma recorrência aninhada:
for h in range(H_cycles):
for l in range(L_cycles):
z_L = L(z_L + z_H)
z_H = H(z_H + z_L)Características arquitetônicas:
- Atenção PrefixLM: os tokens de instrução têm atenção bidirecional, enquanto os tokens de resposta têm atenção causal. Controlado por
config.prefix_lm(padrãoTrue); consulte o blog 4D-masks / blog FlexAttention para a forma canônica. - Portão de saída sigmoide por cabeça aplicado à saída da atenção antes de
o_proj(estilo Qwen3-Next; vejaQwen3NextAttention). Checkpoints legados armazenados como um únicogqkv_projfundido são divididos emgate_proj/q_proj/k_proj/v_projno momento do carregamento pelo mapeamento de conversão de checkpoint HRM-Text registrado. - RMSNorm sem parâmetros —
F.rms_normsem escala aprendível. L_bp_cycles— o truque de gradiente de k passos do HRM. Durante o treinamento, apenas osL_bp_cycles[i]finais dasL_cyclesiterações de baixo nível propagam gradientes; as iterações anteriores são executadas sobtorch.no_grad(), de modo que suas ativações não são armazenadas. Sem efeito na inferência.
Uso
O HRM-Text-1B é um modelo de linguagem base. Ele não inclui um chat_template e o apply_chat_template não é suportado intencionalmente nesta versão — o formato de prompt usado durante o pré-treinamento ainda está em evolução, e uma variante ajustada por instruções com um modelo de chat estável será lançada em uma versão separada. Utilize o modelo base com AutoTokenizer + AutoModelForCausalLM.generate(...):
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("sapientinc/HRM-Text-1B")
model = AutoModelForCausalLM.from_pretrained(
"sapientinc/HRM-Text-1B", device_map="auto",
)
inputs = tokenizer("The quick brown fox", return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=16, do_sample=False)
print(tokenizer.decode(out[0], skip_special_tokens=True))Backends de atenção
"sdpa" é o padrão e a escolha adequada para a maioria das cargas de trabalho. "flex_attention" é suportado e se mostra vantajoso em contextos longos — porém, ele incorre em um custo fixo de construção do BlockMask a cada forward que não se amortiza para o ganho que você poderia esperar da reutilização da pilha recorrente do HRM-Text. Latência indicativa de prefill em um único H100 com o checkpoint base 1.2B liberado e os padrões H_cycles=2, L_cycles=3:
| seq_len | sdpa | flex_attention | recomendação |
|---|---|---|---|
| 64 | 41 ms | 70 ms | sdpa |
| 256 | 41 ms | 70 ms | sdpa |
| 1024 | 42 ms | 69 ms | sdpa |
| 2048 | 85 ms | 78 ms | flex (≈ 1,1x) |
Então, escolha o backend de acordo com a carga de trabalho:
# Default — short / medium context
model = AutoModelForCausalLM.from_pretrained("sapientinc/HRM-Text-1B", device_map="auto")
# Long context (≥ 2K tokens) — FlexAttention's per-block sparsity overtakes SDPA
model = AutoModelForCausalLM.from_pretrained(
"sapientinc/HRM-Text-1B", device_map="auto", attn_implementation="flex_attention",
)Ambos os backends produzem logits equivalentes (verificado com 100% de correspondência no top-1 de ponta a ponta em relação à referência do torch). "eager" é suportado e produz as mesmas logits, mas raramente é a opção mais rápida em hardware moderno. Seu principal uso é output_attentions=True — SDPA / FlexAttention não retornam pesos de atenção por cabeça, portanto, passes que precisam deles para análise ou visualização devem ser executados com attn_implementation="eager".
Qualquer variação do FlashAttention — FA 2/3/4 e implementações de kernel do HF Hub que podem não seguir a convenção de nomenclatura
flash_attention_*— é rejeitada pelo HrmTextModel na inicialização sempre queconfig.prefix_lm=True(o padrão). Os backends de FA aceitam apenas máscaras causais e não causais e não conseguem representar o overlay 4-D do PrefixLM. Use"sdpa"(padrão) ou"flex_attention"para PrefixLM. Definirconfig.prefix_lm=Falsetorna a máscara puramente causal e reativa o FA — útil para caminhos de fine-tuning ou inferência apenas causais, onde o FA é a opção mais rápida.
Treinamento PrefixLM
Para o ajuste fino supervisionado que respeita a fronteira instrução/resposta, emita token_type_ids a partir do data collator junto com input_ids — as posições dentro da instrução recebem 1, enquanto a resposta e o padding recebem 0. O modelo trata cada posição com token_type_ids == 1 como parte de um único bloco bidirecional; todo o resto permanece causal:
import torch
def collate_prefixlm(batch, pad_token_id=0, ignore_label_id=-100):
"""`batch[i] = {"instruction_ids": [...], "response_ids": [...]}`."""
full_ids = [b["instruction_ids"] + b["response_ids"] for b in batch]
prefix_lens = [len(b["instruction_ids"]) for b in batch]
max_len = max(len(ids) for ids in full_ids)
input_ids = torch.full((len(batch), max_len), pad_token_id, dtype=torch.long)
token_type_ids = torch.zeros_like(input_ids)
labels = torch.full_like(input_ids, ignore_label_id)
attention_mask = torch.zeros_like(input_ids)
for i, (ids, plen) in enumerate(zip(full_ids, prefix_lens)):
input_ids[i, : len(ids)] = torch.tensor(ids)
token_type_ids[i, :plen] = 1 # bidirectional prefix
labels[i, plen : len(ids)] = input_ids[i, plen : len(ids)] # loss on response only
attention_mask[i, : len(ids)] = 1
return {
"input_ids": input_ids,
"token_type_ids": token_type_ids,
"attention_mask": attention_mask,
"labels": labels,
}Consulte HrmTextModel.forward() para a forma aceita.
HrmTextConfig
classe transformers.HrmTextConfig
< 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 = Nonevocab_size: int = 151808hidden_size: int = 1536intermediate_size: int = 4096num_hidden_layers: int = 16num_attention_heads: int = 12hidden_act: str = 'silu'max_position_embeddings: int = 2048initializer_range: float = 0.02rms_norm_eps: float = 1e-06use_cache: bool = Truepad_token_id: int | None = Nonebos_token_id: int | None = Noneeos_token_id: int | list[int] | None = Nonetie_word_embeddings: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falseattention_dropout: int | float | None = 0.0mlp_bias: bool = Falsehead_dim: int = 128H_cycles: int = 2L_cycles: int = 3L_bp_cycles: list[int] | None = Noneembedding_scale: float | None = Noneprefix_lm: bool = Truenum_layers_per_stack: int | None = None )
Parâmetros
- vocab_size (
int, opcional, padrão151808) — Tamanho do vocabulário do modelo. Define o número de tokens diferentes que podem ser representados pelosinput_ids. - hidden_size (
int, opcional, padrão1536) — Dimensão das representações ocultas. - intermediate_size (
int, opcional, padrão4096) — Dimensão das representações do MLP. - num_hidden_layers (
int, opcional, padrão16) — Número de camadas ocultas no decodificador do Transformer. - num_attention_heads (
int, opcional, padrão12) — Número de cabeças de atenção para cada camada de atenção no decodificador do Transformer. - hidden_act (
str, opcional, padrãosilu) — A função de ativação não linear (função ou string) no decodificador. Por exemplo,"gelu","relu","silu", etc. - max_position_embeddings (
int, opcional, padrão2048) — O comprimento máximo de sequência com o qual este modelo pode ser utilizado. - initializer_range (
float, opcional, padrão0.02) — O desvio padrão do truncated_normal_initializer para inicializar todas as matrizes de pesos. - rms_norm_eps (
float, opcional, padrão1e-06) — O epsilon usado pelas camadas de normalização rms. - use_cache (
bool, opcional, padrãoTrue) — Se o modelo deve ou não retornar as últimas chaves/valores de atenção (não usado por todos os modelos). Relevante apenas seconfig.is_decoder=Trueou quando o modelo for um modelo generativo somente decodificador. - pad_token_id (
int, opcional) — ID do token usado para preenchimento no vocabulário. - bos_token_id (
int, opcional) — ID do token usado para o início do fluxo no vocabulário. - eos_token_id (
Union[int, list[int]], opcional) — ID do token usado para o fim do fluxo no vocabulário. - tie_word_embeddings (
bool, opcional, padrãoFalse) — Se deve vincular as embeddings de pesos de acordo com o mapeamentotied_weights_keysdo modelo. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], opcional) — Dicionário contendo os parâmetros de configuração para os embeddings RoPE. O dicionário deve conter um valor pararope_thetae, opcionalmente, parâmetros usados para escalonamento, caso você queira usar RoPE commax_position_embeddingsmaiores. - attention_bias (
bool, opcional, padrãoFalse) — Indica se deve ser usado um viés nas camadas de projeção de query, key, value e output durante a autoatenção. - attention_dropout (
Union[int, float], opcional, padrão0.0) — A taxa de dropout para as probabilidades de atenção. - mlp_bias (
bool, opcional, padrãoFalse) — Se deve usar um viés nas camadas up_proj, down_proj e gate_proj das camadas MLP. - head_dim (
int, opcional, padrão128) — A dimensão da cabeça de atenção. Se for None, o valor padrão será hidden_size // num_attention_heads - H_cycles (
int, opcional, padrão 2) — Número de ciclos de alto nível. - L_cycles (
int, opcional, padrão 3) — Número de ciclos de baixo nível por ciclo H. - L_bp_cycles (
list[int], opcional, padrão[2]) — Lista de roteamento de gradientes durante o treinamento; preenchida à esquerda com1s atéL_cyclesdentro do modelo. Sem efeito durante a inferência. - embedding_scale (
float, opcional) — Multiplicador de incorporação de tokens. SeNone, o valor padrão é1 / initializer_range. - prefix_lm (
bool, opcional, padrãoTrue) — Os tokens de instrução têm atenção bidirecional, enquanto os tokens de resposta têm atenção causal. - num_layers_per_stack (
int, opcional) — Número real de blocos de transformer dentro de cada uma das pilhas H / L. Definido automaticamente na primeira construção: o valor passado comonum_hidden_layersé memorizado aqui enum_hidden_layersé então reescrito paranum_layers_per_stack * H_cycles * (L_cycles + 1)para queDynamicCache(config=...)pré-alocasse um slot por chamada única de atenção sob o forward recorrente. Não defina isso diretamente na primeira construção — passe a contagem real por pilha comonum_hidden_layerse deixe__post_init__dividi-la.
Esta é a classe de configuração para armazenar a configuração de um HrmTextModel. Ela é usada para instanciar um modelo Hrm Text de acordo com os argumentos especificados, definindo a arquitetura do modelo. Instanciar uma configuração com os padrões resultará em uma configuração semelhante à do sapientinc/HRM-Text-1B
Os objetos de configuração herdam de PreTrainedConfig e podem ser usados para controlar as saídas do modelo. Consulte a documentação de PreTrainedConfig para mais informações.
HrmTextModel
classe transformers.HrmTextModel
< source >( config: HrmTextConfig )
Parâmetros
- config (HrmTextConfig) — Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método from_pretrained() para carregar os pesos do modelo.
O modelo Hrm Text Text sem processamento adicional, que gera estados ocultos brutos sem nenhum cabeçalho específico no topo.
Este modelo herda de PreTrainedModel. Consulte a documentação da classe pai para os métodos genéricos que a biblioteca implementa para todos os seus modelos (como download ou salvamento, redimensionamento dos embeddings de entrada, poda de cabeças, etc.)
Este modelo também é uma subclasse de torch.nn.Module do PyTorch. Use-o como um Módulo PyTorch regular e consulte a documentação do PyTorch para todos os assuntos relacionados ao uso geral e ao comportamento.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.Tensor)
Parâmetros
- input_ids (
torch.LongTensorde forma(batch_size, sequence_length), opcional) — Índices dos tokens da sequência de entrada no vocabulário. O padding será ignorado por padrão.Os índices podem ser obtidos usando AutoTokenizer. Consulte PreTrainedTokenizer.encode() e PreTrainedTokenizer.call() para mais detalhes.
- attention_mask (
torch.Tensorde forma(batch_size, sequence_length), opcional) — Máscara para evitar a execução de atenção nos índices de tokens de preenchimento. Valores de máscara selecionados em[0, 1]:- 1 para tokens que não estão mascarados,
- 0 para tokens que estão mascarados.
- position_ids (
torch.LongTensorde forma(batch_size, sequence_length), opcional) — Índices das posições dos tokens de cada sequência de entrada nos embeddings de posição. Selecionados no intervalo[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, opcional) — Estados ocultos pré-computados (chaves e valores nos blocos de autoatenção e nos blocos de atenção cruzada) que podem ser usados para acelerar a decodificação sequencial. Isso geralmente consiste nopast_key_valuesretornado pelo modelo em uma etapa anterior da decodificação, quandouse_cache=Trueouconfig.use_cache=True.Apenas uma instância de Cache é permitida como entrada, consulte nosso guia de cache de kv. Se nenhum
past_key_valuesfor passado, DynamicCache será inicializado por padrão.O modelo sairá no mesmo formato de cache que é fornecido como entrada.
Se
past_key_valuesforem usados, espera-se que o usuário insira apenas osinput_idsnão processados (aqueles que não têm seus estados de chave e valor passados fornecidos a este modelo) com a forma(batch_size, unprocessed_length), em vez de todos osinput_idscom a forma(batch_size, sequence_length). - token_type_ids (
torch.LongTensorde forma(batch, seq_len), opcional) — Indicador bidirecional/causal por posição. Os tokens comtoken_type_ids == 1formam um único bloco bidirecional; todas as outras posições são causais. - inputs_embeds (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Opcionalmente, em vez de passarinput_ids, você pode escolher passar diretamente uma representação incorporada. Isso é útil se você quiser ter mais controle sobre como converter os índices deinput_idsnos vetores associados do que a matriz de busca de incorporação interna do modelo. - use_cache (
bool, opcional) — Se definido comoTrue, os estados de chave-valorpast_key_valuessão retornados e podem ser usados para acelerar a decodificação (vejapast_key_values).
Retorna
BaseModelOutputWithPast ou tuple(torch.Tensor)
Um BaseModelOutputWithPast ou uma tupla de
torch.Tensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários
elementos, dependendo da configuração (HrmTextConfig) e das entradas.
O método forward do HrmTextModel substitui o método especial __call__.
Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de
Moduleem seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente.
last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size)) — Sequência de estados ocultos na saída da última camada do modelo.Se
past_key_valuesfor usado, apenas o último hidden-state das sequências, com forma(batch_size, 1, hidden_size), é retornado.past_key_values (
Cache, opcional, retornado quandouse_cache=Trueé passado ou quandoconfig.use_cache=True) — É uma instância de Cache. Para mais detalhes, consulte nosso guia de cache kv.Contém estados ocultos pré-computados (chaves e valores nos blocos de autoatenção e, opcionalmente, se
config.is_encoder_decoder=True, nos blocos de atenção cruzada) que podem ser usados (veja a entradapast_key_values) para acelerar a decodificação sequencial.hidden_states (
tuple(torch.Tensor), opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) de forma(batch_size, sequence_length, hidden_size).Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.
attentions (
tuple(torch.Tensor), opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detorch.Tensor(um para cada camada) com forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nos cabeçalhos de autoatenção.
HrmTextForCausalLM
classe transformers.HrmTextForCausalLM
< source >( config: HrmTextConfig )
Parâmetros
- config (HrmTextConfig) — Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método from_pretrained() para carregar os pesos do modelo.
O Modelo de Texto Hrm para modelagem de linguagem causal.
Este modelo herda de PreTrainedModel. Consulte a documentação da classe pai para os métodos genéricos que a biblioteca implementa para todos os seus modelos (como download ou salvamento, redimensionamento dos embeddings de entrada, poda de cabeças, etc.)
Este modelo também é uma subclasse de torch.nn.Module do PyTorch. Use-o como um Módulo PyTorch regular e consulte a documentação do PyTorch para todos os assuntos relacionados ao uso geral e ao comportamento.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutputWithPast or tuple(torch.Tensor)
Parâmetros
- input_ids (
torch.LongTensorde forma(batch_size, sequence_length), opcional) — Índices dos tokens da sequência de entrada no vocabulário. O padding será ignorado por padrão.Os índices podem ser obtidos usando AutoTokenizer. Consulte PreTrainedTokenizer.encode() e PreTrainedTokenizer.call() para mais detalhes.
- attention_mask (
torch.Tensorde forma(batch_size, sequence_length), opcional) — Máscara para evitar a execução de atenção nos índices de tokens de preenchimento. Valores de máscara selecionados em[0, 1]:- 1 para tokens que não estão mascarados,
- 0 para tokens que estão mascarados.
- position_ids (
torch.LongTensorde forma(batch_size, sequence_length), opcional) — Índices das posições dos tokens de cada sequência de entrada nos embeddings de posição. Selecionados no intervalo[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, opcional) — Estados ocultos pré-computados (chaves e valores nos blocos de autoatenção e nos blocos de atenção cruzada) que podem ser usados para acelerar a decodificação sequencial. Isso geralmente consiste nopast_key_valuesretornado pelo modelo em uma etapa anterior da decodificação, quandouse_cache=Trueouconfig.use_cache=True.Apenas uma instância de Cache é permitida como entrada, consulte nosso guia de cache de kv. Se nenhum
past_key_valuesfor passado, DynamicCache será inicializado por padrão.O modelo sairá no mesmo formato de cache que é fornecido como entrada.
Se
past_key_valuesforem usados, espera-se que o usuário insira apenas osinput_idsnão processados (aqueles que não têm seus estados de chave e valor passados fornecidos a este modelo) com a forma(batch_size, unprocessed_length), em vez de todos osinput_idscom a forma(batch_size, sequence_length). - token_type_ids (
torch.LongTensorde forma(batch, seq_len), opcional) — Indicador bidirecional/causal por posição. Os tokens comtoken_type_ids == 1formam um único bloco bidirecional; todas as outras posições são causais. - inputs_embeds (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Opcionalmente, em vez de passarinput_ids, você pode escolher passar diretamente uma representação incorporada. Isso é útil se você quiser ter mais controle sobre como converter os índices deinput_idsnos vetores associados do que a matriz de busca de incorporação interna do modelo. - labels (
torch.LongTensorde forma(batch_size, sequence_length), opcional) — Rótulos para o cálculo da perda de modelagem de linguagem mascarada. Os índices devem estar em[0, ..., config.vocab_size]ou ser -100 (veja a docstring deinput_ids). Tokens com índices definidos como-100são ignorados (mascarados); a perda é calculada apenas para os tokens com rótulos em[0, ..., config.vocab_size]. - use_cache (
bool, opcional) — Se definido comoTrue, os estados de chave-valorpast_key_valuessão retornados e podem ser usados para acelerar a decodificação (vejapast_key_values). - logits_to_keep (
Union[int, torch.Tensor], opcional, padrão0) — Se for umint, calcula os logits para os últimoslogits_to_keeptokens. Se for0, calcula os logits para todos osinput_ids(caso especial). Apenas os logits do último token são necessários para a geração, e calculá-los apenas para esse token pode economizar memória, o que se torna bastante significativo para sequências longas ou tamanho de vocabulário grande. Se for umtorch.Tensor, deve ser 1D, correspondendo aos índices a serem mantidos na dimensão de comprimento da sequência. Isso é útil ao usar o formato de tensor empacotado (uma única dimensão para lote e comprimento da sequência).
Retorna
CausalLMOutputWithPast ou tuple(torch.Tensor)
Um CausalLMOutputWithPast ou uma tupla de
torch.Tensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários
elementos, dependendo da configuração (HrmTextConfig) e das entradas.
O método forward de HrmTextForCausalLM sobrescreve o método especial __call__.
Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de
Moduleem seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente.
loss (
torch.Tensorde forma(1,), opcional, retornado quandolabelsé fornecido) — Perda de modelagem de linguagem (para previsão do próximo token).logits (
torch.Tensorde forma(batch_size, sequence_length, config.vocab_size)) — Pontuações de previsão da cabeça de modelagem de linguagem (pontuações para cada token do vocabulário antes do SoftMax).past_key_values (
Cache, opcional, retornado quandouse_cache=Trueé passado ou quandoconfig.use_cache=True) — É uma instância de Cache. Para mais detalhes, consulte nosso guia de cache kv.Contém estados ocultos pré-computados (chaves e valores nos blocos de autoatenção) que podem ser usados (veja a entrada
past_key_values) para acelerar a decodificação sequencial.hidden_states (
tuple(torch.Tensor), opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) de forma(batch_size, sequence_length, hidden_size).Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.
attentions (
tuple(torch.Tensor), opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detorch.Tensor(um para cada camada) com forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nos cabeçalhos de autoatenção.