Transformers documentation
Laguna
このモデルは2024年8月28日にHF papersで公開され、2026年4月28日にHugging Face Transformersに貢献されました。
Laguna
Laguna は、Poolside の mixture-of-experts 言語モデルファミリーです。標準的な SwiGLU MoE transformer との主な違いは以下の通りです。
num_attention_heads_per_layerによるレイヤーごとのヘッド数 — 異なるデコーダーレイヤーは、同じ KV キャッシュの形状を共有しながら、異なるクエリヘッド数を持つことができます。- 補助損失なしのロードバランシングを備えた Sigmoid MoE ルーター(arXiv:2408.15664)および任意の logit ソフトキャッピング(
moe_router_logit_softcapping)— ルーターのスコアは、ゲート logit の要素ごとの sigmoid に、選択時のみ加算される学習済みエキスパート別バイアス(e_score_correction_bias)を加えたものです。
使用方法
from transformers import pipeline
pipe = pipeline(
"text-generation",
model="poolside/Laguna-XS.2",
dtype="auto",
device_map="auto",
)
print(pipe("The capital of France is", max_new_tokens=20, do_sample=False)[0]["generated_text"])import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "poolside/Laguna-XS.2"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
dtype=torch.bfloat16,
device_map="auto",
)
prompt = "The capital of France is"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
generated = model.generate(**inputs, max_new_tokens=20, do_sample=False)
print(tokenizer.decode(generated[0], skip_special_tokens=True))注記
- Attention バックエンド。SDPA(デフォルト)、FlashAttention-2、flex attention がサポートされています。Attention 出力ゲーティングはカーネル呼び出しの外側で適用されるため、すべてのバックエンドで動作します。
num_attention_heads_per_layer。指定された場合、その長さはnum_hidden_layersと等しくなければなりません。各エントリはnum_key_value_headsで割り切れる必要があります。layer_types。未設定の場合は、["full_attention"] * num_hidden_layersがデフォルト値として使用されます。スライディングウィンドウアテンションを有効にするには、"full_attention"/"sliding_attention"の値からなるリストを渡します。mlp_layer_types。 各層の MLP タイプ。値は"dense"または"sparse"です。長さはnum_hidden_layersと等しくなければなりません。未設定の場合は["dense"] + ["sparse"] * (num_hidden_layers - 1)(最初の層が dense、残りが MoE)がデフォルトになります。moe_apply_router_weight_on_input=Trueは、現在、fused experts カーネル(grouped_mm_experts_forward)との併用はサポートされていません。validate_architectureは、config の構築時に例外を発生させます。False(デフォルト値)に設定してください。
LagunaConfig
クラス transformers.LagunaConfig
< 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 = 100352hidden_size: int = 2048intermediate_size: int = 8192num_hidden_layers: int = 40num_attention_heads: int = 48num_key_value_heads: int = 8hidden_act: str = 'silu'max_position_embeddings: int = 131072initializer_range: float = 0.02rms_norm_eps: float = 1e-06use_cache: bool = Truetie_word_embeddings: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 512attention_dropout: float | int = 0.0moe_intermediate_size: int = 512shared_expert_intermediate_size: int = 512num_experts_per_tok: int = 8num_experts: int = 256output_router_logits: bool = Falserouter_aux_loss_coef: float = 0.001layer_types: list[str] | None = Nonepad_token_id: int | None = Nonebos_token_id: int | None = Noneeos_token_id: int | list[int] | None = Nonehead_dim: int = 128attention_bias: bool = Falsegating: bool | str = Truenum_attention_heads_per_layer: list[int] | None = Nonemlp_layer_types: list[str] | None = Nonemoe_routed_scaling_factor: float = 1.0moe_apply_router_weight_on_input: bool = Falsemoe_router_logit_softcapping: float = 0.0 )
パラメータ
- vocab_size (int、任意、デフォルトは 100352) — モデルの語彙サイズ。input_ids で表現できるトークンの種類数を定義します。
- hidden_size (int、任意、デフォルトは 2048) — 隠れ表現の次元数。
- intermediate_size (int、任意、デフォルトは 8192) — MLP 表現の次元数。
- num_hidden_layers (int、任意、デフォルトは 40) — Transformer デコーダーの隠れ層の数です。
- num_attention_heads (int、任意、デフォルトは 48) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。
- num_key_value_heads (int、optional、デフォルトは 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 ヘッドは、そのグループ内の元のすべてのヘッドを平均プーリングして構築する必要があります。詳細については、この論文を参照してください。指定されない場合、デフォルトで num_attention_heads が使用されます。
- hidden_act (str、optional、デフォルトは silu) — デコーダーで使用される非線形活性化関数(関数または文字列)。例えば、“gelu”、 “relu”、“silu” など。
- max_position_embeddings (int、任意、デフォルトは 131072) — このモデルが使用される可能性のある最大シーケンス長です。
- initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列の初期化に使用される truncated_normal_initializer の標準偏差です。
- rms_norm_eps (float、optional、デフォルトは 1e-06) — RMS 正規化レイヤーで使用する epsilon です。
- use_cache (bool、optional、デフォルトは True) — モデルが最後のキー/バリューの注意を返すかどうか(すべてのモデルで利用されるわけではありません)。config.is_decoder=True の場合、またはモデルがデコーダー専用の生成モデルの場合にのみ関連します。
- tie_word_embeddings (bool、任意、デフォルトは False) — モデルの tied_weights_keys マッピングに従って重み埋め込みを共有するかどうかを指定します。
- rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], optional) — RoPE 埋め込みの設定パラメータを含む辞書です。辞書には rope_theta の値が含まれており、より長い max_position_embeddings で RoPE を使用する場合にスケーリングに使用されるパラメータが任意で含まれます。
- sliding_window (int、optional、デフォルトは 512) — スライディングウィンドウアテンションのウィンドウサイズ。None の場合、スライディングウィンドウは適用されません。
- attention_dropout (Union[float, int]、optional、デフォルトは 0.0) — アテンション確率のドロップアウト率です。
- moe_intermediate_size (int、任意、デフォルトは 512) — ルーティングされたエキスパートの MLP の中間サイズ。
- shared_expert_intermediate_size (int、optional、デフォルトは 512) — 共有エキスパート MLP の中間サイズです。
- num_experts_per_tok (int、optional、デフォルトは 8) — 各トークンをルーティングするエキスパートの数です。これは、トークン選択ルーティングにおける top-k の値です。
- num_experts (int、任意、デフォルトは 256) — MoE レイヤーにおけるルーティング対象のエキスパートの数です。
- output_router_logits (bool、任意、デフォルトは False) — モデルがルーターのロジットを返すかどうかを指定します。これを有効にすると、モデルは補助損失(ロードバランシング損失とルーターのz損失を含む)を出力できるようになります。
- router_aux_loss_coef (float、optional、デフォルト値は 0.001) — 補助的な負荷分散損失の係数。MoE モデルにおける不均衡なエキスパートルーティングをペナルティするために使用されます。
- layer_types (list[str]、任意) — 各レイヤーのインデックスとそのレイヤータイプを明示的に対応付けるリストです。指定しない場合、config の値に基づいて自動的に生成されます。
- pad_token_id (int, optional) — 語彙内でパディングに使用されるトークンID。
- bos_token_id (int, optional) — 語彙におけるストリーム開始に使用されるトークン ID。
- eos_token_id (Union[int, list[int]], optional) — 語彙内でストリーム終了に使用されるトークン ID。
- head_dim (int、optional、デフォルトは 128) — アテンションヘッドの次元です。None の場合、hidden_size // num_attention_heads がデフォルトとして使用されます。
- attention_bias (bool、任意、デフォルトは False) — 自己注意機構において、クエリ、キー、バリュー、出力の投影層にバイアスを使用するかどうか。
- gating (bool または str、省略可、デフォルトは True) —
Softplus 出力ゲートの粒度。
Trueまたは"per-head"の場合、各 head ごとに 1 つのゲートを適用し、head_dim全体にブロードキャストします。"per-element"の場合、各(head, head_dim)チャネルごとに 1 つのゲートを適用します。 - num_attention_heads_per_layer (list[int]、任意) —
num_attention_headsのレイヤーごとの上書きです。長さはnum_hidden_layersと等しくなければなりません。 - mlp_layer_types (list[str]、任意) —
レイヤーごとの MLP タイプ —
"dense"または"sparse"。長さはnum_hidden_layersと等しくなければなりません。デフォルトでは、最初のレイヤーが dense、それ以降が sparse になります。 - moe_routed_scaling_factor (float、optional、デフォルト値は 1.0) — ルーティングされたエキスパートの出力に、共有エキスパートの出力と結合する前に適用されるスカラー値。
- moe_apply_router_weight_on_input (bool、任意、デフォルトは False) —
MoE の出力ではなく入力にルーターの重みを適用するかどうか。Transformers ではまだサポートされていません。現時点では
Trueを指定するとNotImplementedErrorが発生します。 - moe_router_logit_softcapping (float、optional、デフォルト値 0.0) — MoE ルーターの logits に tanh ソフトキャッピングを適用する際のスケーリング係数。
これは poolside/laguna-XS.2 と同様の設定をデフォルト値で生成する、LagunaModel の設定を保存するための設定クラスです。指定された引数に基づいて Laguna モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。
Configuration オブジェクトは [PreTrainedConfig] を継承し、モデルの出力を制御するために使用できます。詳細については、[PreTrainedConfig] のドキュメントを参照してください。
例:
>>> from transformers import LagunaModel, LagunaConfig
>>> configuration = LagunaConfig()
>>> model = LagunaModel(configuration)
>>> configuration = model.config@strictによる検証の一部です。
LagunaModel
クラス transformers.LagunaModel
< source >( config: LagunaConfig )
パラメータ
- config (LagunaConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
…
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
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 = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MoeModelOutputWithPast or tuple(torch.FloatTensor)
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- attention_mask (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。[0, 1]:- マスクされていないトークンに対して1
- マスクされたトークンに対しては 0 です。
- position_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返したpast_key_valuesであり、use_cache=Trueまたはconfig.use_cache=True.入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。
past_key_valuesが渡されない場合、デフォルトで DynamicCache が初期化されます。モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
past_key_valuesを使用する場合、すべてのinput_ids(形状(batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理のinput_ids(形状(batch_size, unprocessed_length))のみを入力することになります。 - inputs_embeds (
torch.FloatTensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - use_cache (
bool、任意) —Trueに設定すると、past_key_valuesのキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_valuesを参照)。
戻り値
MoeModelOutputWithPast または tuple(torch.FloatTensor)
MoeModelOutputWithPast または、torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(LagunaConfig)や入力に応じて、さまざまな要素で構成されます。
LagunaModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.FloatTensor、shape(batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。past_key_values (
Cache、任意、use_cache=Trueが渡された場合またはconfig.use_cache=Trueの場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。自己アテンションブロック(および
config.is_encoder_decoder=Trueの場合、クロスカレンションブロック)の事前計算済みヒドゥンステート(キーとバリュー)を保持します。これらは逐次デコーディングを高速化するために使用できます(past_key_values入力参照)。hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます)—torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます)—torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
router_logits (
tuple(torch.FloatTensor)、optional、output_router_probs=Trueとconfig.add_router_probs=Trueが渡された場合、またはconfig.output_router_probs=Trueの場合に返されます) — 各層ごとに1つずつ含まれるtorch.FloatTensorのタプルで、形状は(batch_size, sequence_length, num_experts)です。MoE ルーターによって計算される生(raw)のルーター logits(softmax 適用後)であり、Mixture of Experts モデルの補助損失を計算するためにこれらの用語が使用されます。
LagunaForCausalLM
クラス transformers.LagunaForCausalLM
< source >( config: LagunaConfig )
パラメータ
- config (LagunaConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
因果言語モデリング用のLagunaモデル。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
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 = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Noneoutput_router_logits: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MoeCausalLMOutputWithPast or tuple(torch.FloatTensor)
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- attention_mask (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。[0, 1]:- マスクされていないトークンに対して1
- マスクされたトークンに対しては 0 です。
- position_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返したpast_key_valuesであり、use_cache=Trueまたはconfig.use_cache=True.入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。
past_key_valuesが渡されない場合、デフォルトで DynamicCache が初期化されます。モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
past_key_valuesを使用する場合、すべてのinput_ids(形状(batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理のinput_ids(形状(batch_size, unprocessed_length))のみを入力することになります。 - inputs_embeds (
torch.FloatTensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - labels (
torch.LongTensor、shape(batch_size, sequence_length)、任意) — マスク言語モデリング損失を計算するためのラベルです。インデックスは[0, ..., config.vocab_size]の範囲内であるか、-100 である必要があります(input_idsの docstring を参照)。インデックスが-100に設定されたトークンは無視(マスク)され、損失は[0, ..., config.vocab_size]の範囲内のラベルを持つトークンに対してのみ計算されます。 - use_cache (
bool、任意) —Trueに設定すると、past_key_valuesのキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_valuesを参照)。 - output_router_logits (
bool, 省略可) — すべてのルーターの logits を返すかどうか。ルーター損失の計算に有用ですが、推論時には返すべきではありません。 - logits_to_keep (
Union[int, torch.Tensor]、省略可、デフォルトは0) —intの場合、最後のlogits_to_keepトークンについて logits を計算します。0の場合、すべてのinput_idsについて logits を計算します(特殊ケース)。生成には最後のトークンの logits だけで十分であり、そのトークンのみについて計算することでメモリを節約できます。これは、長いシーケンスや大規模な語彙サイズの場合に特に顕著な効果があります。torch.Tensorの場合、シーケンス長次元で保持するインデックスに対応する 1 次元テンソルである必要があります。これは、パックされたテンソル形式(バッチとシーケンス長を単一の次元にまとめた形式)を使用する場合に有用です。
戻り値
MoeCausalLMOutputWithPast または tuple(torch.FloatTensor)
MoeCausalLMOutputWithPast、またはtorch.FloatTensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(LagunaConfig)や入力に応じて、さまざまな要素で構成されます。
LagunaForCausalLM の forward メソッドは、__call__ という特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
torch.FloatTensor、shape(1,)、optional、labelsが指定された場合に返されます) — 言語モデリングの損失(次のトークン予測用)。logits (
torch.FloatTensor、shape(batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。aux_loss (
torch.FloatTensor、optional、output_router_logits=Trueが渡された場合、またはconfig.output_router_logits=Trueの場合、かつモデルがロードバランシング損失でルーターを学習する場合に返されます) — スパースモジュールのロードバランシング用の補助損失。ルーターバイアスによってエキスパートをバランスさせるモデル(DeepSeek-V3 とそこから派生したアーキテクチャ)は、router_logitsを返しながらも、ここではNoneを返します。router_logits (
tuple(torch.FloatTensor)、任意、output_router_logits=Trueが渡された場合またはconfig.output_router_logits=Trueの場合に返されます) — 各スパース層に対応するtorch.FloatTensorのタプルで、形状は(batch_size * sequence_length, num_experts)です。MoEルーターによって計算される生のルーターロジットです。ロードバランシング損失の計算や、トークンがどのようにエキスパートにディスパッチされるかの確認に使用できます。
past_key_values (
Cache、任意、use_cache=Trueが渡された場合またはconfig.use_cache=Trueの場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。逐次デコーディングを高速化するために使用できる(
past_key_values入力参照)、事前計算済みの隠れ状態(自己注意ブロックのキーとバリュー)が含まれます。hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます)—torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます)—torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。