Transformers documentation
Mistral Large 4
このモデルは2026年10月29日にHugging Face Transformersに貢献されました。
Mistral Large 4
概要
Mistral Large 4 は、1兆パラメータを備えたネイティブマルチモーダルな mixture-of-experts モデルです。トークンあたりのアクティブパラメータ数は490億(埋め込みと出力層を含むと520億)です。テキストと画像を入力として受け取り、テキストを出力します。直接回答するか、まず推論してから回答するかを選択でき、推論の努力度はリクエストごとに設定できます。
DeepSeek-V3.2 のレシピ(DSAインデクサーによってスパース化されたMulti-head Latent Attention)を基盤とし、テキストデコーダーには独自のいくつかの変更が加えられています。
- Attention: 512次元のKV潜在変数を持つDeepseek Sparse Attention (DSA)を72層構成とし、インデクサーが各クエリに対して上位2048個のキー位置を選択することでスパース化しています。クエリには直接射影を使用し、Q-LoRAは使用されていません。一部の層は独自の選択を計算し、他の層はGLM-5と同様に、以前の層の選択を再利用します(
"shared")。 - NoPEレイヤー: 4層ごとに1層が、アテンションとインデクサーの両方でロータリー埋め込みを使用しません。
- KV共有: 39層以降では、4層ごとにKV潜在を計算せず、代わりに35層のKV潜在にアテンションを行います。各層は、自身のクエリ、KVアッププロジェクション、および出力の重みを保持します。
- Scaled softmax: クエリは、学習された
sとbを用いて、s * log(position + 1) + bによってヘッドごとにスケーリングされ、アテンションとインデクサーの両方で適用されます。 - LeRoPE: YaRN は 512 トークンのベース RoPE を 2048 倍(1,048,576 位置)に拡張し、LeRoPE は各回転周波数ごとに学習された乗数を追加します。
- MoE: 最初の層はdense層であり、それ以外の各層では、各トークンを128のエクスパートのうち4つと、共有エクスパート1つにルーティングします。
- Logits: 最終的な logits は
30 * tanh(logits / 30)によってソフトキャップが適用されます。
ビジョンエンコーダーとマルチモーダルプロジェクターは、Mistral 3(パッチマージプロジェクターを備えたPixtralエンコーダー)と同じです。
使用例
チェックポイントは FP8(動的アクティベーションスケール付きの 128x128 ブロックスケーリング重み)で保存されており、そのまま読み込まれます。
フルモデルには約 1 TB の GPU メモリが必要であるため、device_map="auto" を使用して複数の GPU に分散します。
チャットテンプレートはreasoning_effort引数を受け入れ、"none"(デフォルト)または"high"に設定できます。"high"の場合、モデルは[THINK]と[/THINK]の間に推論を記述してから回答します。
from transformers import AutoProcessor, MistralLarge4ForConditionalGeneration
model_id = "mistralai/Mistral-Large-4-1T-A52B"
processor = AutoProcessor.from_pretrained(model_id)
model = MistralLarge4ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
messages = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg"},
{"type": "text", "text": "Describe this image."},
],
},
]
inputs = processor.apply_chat_template(
messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt"
).to(model.device)
output = model.generate(**inputs, max_new_tokens=256)
print(processor.decode(output[0, inputs["input_ids"].shape[1] :], skip_special_tokens=True))from transformers import AutoProcessor, MistralLarge4ForConditionalGeneration
model_id = "mistralai/Mistral-Large-4-1T-A52B"
processor = AutoProcessor.from_pretrained(model_id)
model = MistralLarge4ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
messages = [{"role": "user", "content": "How many prime numbers are there between 100 and 150?"}]
inputs = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
reasoning_effort="high",
).to(model.device)
output = model.generate(**inputs, max_new_tokens=4096)
# Keep the special tokens to see the reasoning between [THINK] and [/THINK]
print(processor.decode(output[0, inputs["input_ids"].shape[1] :], skip_special_tokens=False))注記
- チェックポイントには、DSparkの投機的デコーディング手法を用いた投機的デコーディング用のドラフトヘッド(
mtp_dspark.*の重み)も含まれています。 - DSAインデクサーは、
eagerおよびsdpaバックエンドで、デンスアテンションの上にアテンションマスクとして適用されます。 スパースアテンションと同じ出力を生成しますが、長いシーケンスにおける高速化効果はありません。
MistralLarge4Config
class transformers.MistralLarge4Config
< 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 = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneimage_token_index: int = 10projector_hidden_act: str = 'gelu'vision_feature_layer: int | list[int] = -1multimodal_projector_bias: bool = Falsespatial_merge_size: int = 2tie_word_embeddings: bool = False )
パラメータ
- vision_config (
Union[dict, ~configuration_utils.PreTrainedConfig]、任意) — ビジョンバックボーンの config オブジェクトまたは辞書です。 - text_config (
Union[dict, ~configuration_utils.PreTrainedConfig]、省略可) — テキストバックボーンの設定オブジェクトまたは辞書。 - image_token_index (
int、任意、デフォルトは10) — 入力画像のプレースホルダーとして使用される画像トークンのインデックスです。 - projector_hidden_act (
str、任意、デフォルトはgelu) — マルチモーダルプロジェクターで使用する活性化関数です。 - vision_feature_layer (
Union[int, list[int]]、任意、デフォルトは-1) — 視覚特徴を選択するレイヤーのインデックスです。複数のインデックスが指定された場合、対応するインデックスの視覚特徴が連結されて視覚特徴が形成されます。 - multimodal_projector_bias (
bool、任意、デフォルトはFalse) — マルチモーダルプロジェクターでバイアスを使用するかどうか。 - spatial_merge_size (
int, 省略可、デフォルトは2) — 隣接するパッチをマージしてビジュアルトークンの数を削減するために使用される、空間マージウィンドウのサイズです。 - tie_word_embeddings (
bool、任意、デフォルトはFalse) — モデルのtied_weights_keysマッピングに従って重み埋め込みを共有するかどうかを指定します。
これはMistralLarge4Modelの設定を保存するための設定クラスです。指定された引数に基づいてMistral Large4モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、mistralai/Mistral-Small-3.1-24B-Instruct-2503と類似した設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
例:
>>> from transformers import MistralLarge4ForConditionalGeneration, MistralLarge4Config, PixtralVisionConfig, MistralConfig
>>> # Initializing a Pixtral-vision config
>>> vision_config = PixtralVisionConfig()
>>> # Initializing a Mistral config
>>> text_config = MistralConfig()
>>> # Initializing a MistralLarge4 configuration
>>> configuration = MistralLarge4Config(vision_config, text_config)
>>> # Initializing a model from the mistral_large4.1 configuration
>>> model = MistralLarge4ForConditionalGeneration(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configMistralLarge4TextConfig
クラス transformers.MistralLarge4TextConfig
< 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 = 204800hidden_size: int = 6144intermediate_size: int = 24576moe_intermediate_size: int = 6144num_hidden_layers: int = 72num_attention_heads: int = 64num_key_value_heads: int = 64n_shared_experts: int = 1n_routed_experts: int = 128output_router_logits: bool = Falserouted_scaling_factor: float = 1.0kv_lora_rank: int = 512qk_rope_head_dim: int = 64v_head_dim: int = 128qk_nope_head_dim: int = 64n_group: int = 1topk_group: int = 1num_experts_per_tok: int = 4hidden_act: str = 'silu'max_position_embeddings: int = 1048576initializer_range: float = 0.02rms_norm_eps: float = 1e-05use_cache: bool = Truepad_token_id: int | None = Nonebos_token_id: int | None = 1eos_token_id: int | list[int] | None = 2tie_word_embeddings: bool = Falserope_parameters: dict | None = Nonemlp_layer_types: list[str] | None = Noneattention_bias: bool = Falseattention_dropout: float | int = 0.0index_topk: int = 2048index_head_dim: int = 128index_n_heads: int = 32head_dim: int = 64first_k_dense_replace: int = 1layer_types: list[str] | None = Noneindexer_types: list[str] | None = Noneno_rope_layers: list[int] | None = Noneno_rope_layer_interval: int = 4kv_source_layers: list[int] | None = Nonefinal_logit_softcapping: float = 30.0 )
パラメータ
- vocab_size (
int、任意、デフォルトは204800) — モデルの語彙サイズです。input_idsで表現できるトークンの種類数を定義します。 - hidden_size (
int、任意、デフォルトは6144) — 隠れ表現の次元数。 - intermediate_size (
int、任意、デフォルトは24576) — MLP 表現の次元数。 - moe_intermediate_size (
int、任意、デフォルトは6144) — ルーティングされたエキスパートのMLPの中間サイズ。 - num_hidden_layers (
int、任意、デフォルトは72) — Transformer デコーダーの隠れ層の数。 - num_attention_heads (
int、任意、デフォルトは64) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。 - num_key_value_heads (
int、任意、デフォルトは64) — 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が使用されます。 - n_shared_experts (
int、任意、デフォルトは1) — 共有エキスパートの数。 - n_routed_experts (
int、任意、デフォルトは128) — ルーティング対象のエクスパートの数。 - output_router_logits (
bool、任意、デフォルトはFalse) — モデルがルーターのロジツを返すかどうかを指定します。これを有効にすると、モデルは補助損失(ロードバランシング損失とルーターのz損失を含む)を出力できるようになります。 - routed_scaling_factor (
float、任意、デフォルトは1.0) — ルーティングされたエキスパートのスケール係数。 - kv_lora_rank (
int、任意、デフォルトは512) — キーおよびバリューの射影に使用される LoRA 行列のランクです。 - qk_rope_head_dim (
int、任意、デフォルトは64) — 回転位置埋め込みを使用するクエリ/キーヘッドの次元数。 - v_head_dim (
int、任意、デフォルトは128) — バリューヘッドの次元数。 - qk_nope_head_dim (
int、任意、デフォルトは64) — 回転位置埋め込みを使用しないクエリ/キーヘッドの次元数。 - n_group (
int、任意、デフォルトは 1) — ルーティングされたエキスパートのグループ数。 - topk_group (
int、任意、デフォルトは1) — 各トークンについて選択されるグループの数(各トークンにおいて、選択されるエキスパートがtopk_group個のグループ内にのみ含まれることを保証します)。 - num_experts_per_tok (
int、任意、デフォルトは4) — 各トークンをルーティングするエキスパートの数です。これは、トークン選択ルーティングにおける top-k の値です。 - hidden_act (
str、任意、デフォルトはsilu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu"など。 - max_position_embeddings (
int、任意、デフォルトは1048576) — このモデルが使用される可能性のある最大シーケンス長です。 - initializer_range (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。 - rms_norm_eps (
float、任意、デフォルト値は1e-05) — RMS正規化レイヤーで使用するepsilonです。 - use_cache (
bool、任意、デフォルトはTrue) — モデルが最後のキー/バリューの注意を返すかどうか(すべてのモデルで利用されるわけではありません)。config.is_decoder=Trueの場合、またはモデルがデコーダー専用の生成モデルである場合にのみ関連します。 - pad_token_id (
int, 任意) — 語彙内でパディングに使用されるトークン ID。 - bos_token_id (
int、任意、デフォルトは1) — 語彙におけるストリーム開始に使用されるトークン ID。 - eos_token_id (
Union[int, list[int]]、任意、デフォルトは2) — 語彙内でストリーム終了に使用されるトークン ID。 - tie_word_embeddings (
bool、任意、デフォルトはFalse) — モデルのtied_weights_keysマッピングに従って重み埋め込みを共有するかどうかを指定します。 - rope_parameters (
dict, 任意) — RoPE 埋め込みの設定パラメータを含む辞書です。辞書にはrope_thetaの値が含まれており、より長いmax_position_embeddingsで RoPE を使用する場合、スケーリングに使用されるパラメータが任意で含まれます。 - mlp_layer_types (
list、任意) — 各層の MLP タイプのパターン("dense"または"sparse")。デフォルトでは、最初の 1 層が dense、残りは sparse になります。 - attention_bias (
bool、任意、デフォルトはFalse) — 自己注意機構において、クエリ、キー、バリュー、出力の投影層にバイアスを使用するかどうかを指定します。 - attention_dropout (
Union[float, int]、任意、デフォルトは0.0) — アテンション確率のドロップアウト率です。 - index_topk (
int、省略可能、デフォルトは 2048) — スパース注意機構においてインデクサーが選択する上位トークンの数。 - index_head_dim (
int、省略可、デフォルトは 128)— インデクサーの射影に使用するヘッド次元(DSA)。 - index_n_heads (
int、任意、デフォルトは 32)— インデクサーの投影に使用するヘッド数(DSA)。 - head_dim (
int、任意、デフォルトは64) — アテンションヘッドの次元です。None の場合、hidden_size // num_attention_heads がデフォルトとして使用されます。 - first_k_dense_replace (
int、任意、デフォルト値は 1) — Dense MLP を使用する先頭レイヤーの数。それ以外のレイヤーは MoE ブロックを使用します。 - layer_types (
list[str]、省略可) — 各レイヤーのインデックスとレイヤータイプを明示的に対応付けるリストです。指定しない場合、config の値に基づいて自動的に生成されます。 - indexer_types (
list[str]、省略可) — レイヤーごとのインデクサーモード("full"はインデクサーを実行し、"shared"は直前の full レイヤーの top-k を再利用します)。デフォルトでは、index_topk_freq/index_skip_topk_offset(またはindex_topk_pattern)から導出されるパターンが使用されます。 - no_rope_layers (
list[int], 任意) — モデルの層数以上の長さを持つリスト。 インデックス位置に1がある場合、対応する層がRoPEを使用することを示し、0の場合はNoPE層であることを示します。 - no_rope_layer_interval (
int、任意、デフォルトは 4) —no_rope_layer_interval層ごとに 1 層が NoPE 層(attention および indexer に rotary embedding を適用しない層)となります。その他の層では RoPE が使用されます。 - kv_source_layers (
list[int], 任意) — 各レイヤーについて、そのレイヤーがアテンションを行う潜在 KV キャッシュを持つレイヤーのインデックスを指定します。エントリが自身のインデックスであるレイヤーは、自身の潜在 KV を計算してキャッシュします。一方、より前のレイヤーを指すレイヤーはkv_a_proj_with_mqaを持たず、そのレイヤーのキャッシュを再利用します(ソースレイヤーは必ず自身のソースである必要があります)。デフォルトでは共有は行われません。 - final_logit_softcapping (
float、任意、デフォルト値は30.0) — 確率分布を計算する前に、最終的な logits に適用されるソフトキャップの値です。logits はtanh(logit / cap) * capによってスケーリングされます。
これはMistralLarge4Modelの設定を保存するための設定クラスです。指定された引数に基づいてMistral Large4モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、zai-org/GLM-5と類似した設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
>>> from transformers import MistralLarge4TextConfig, MistralLarge4TextModel
>>> # Initializing a Mistral Large 4 text configuration
>>> configuration = MistralLarge4TextConfig()
>>> # Initializing a model from the configuration
>>> model = MistralLarge4TextModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configMistralLarge4PreTrainedModel
class transformers.MistralLarge4PreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
パラメータ
- config (PreTrainedConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
MistralLarge4TextModel
クラス transformers.MistralLarge4TextModel
< source >( config: MistralLarge4TextConfig )
パラメータ
- config (MistralLarge4TextConfig) — モデルのすべてのパラメータを含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、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 の場合)。設定(MistralLarge4Config)や入力に応じて、さまざまな要素で構成されます。
MistralLarge4TextModel の 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 モデルの補助損失を計算するためにこれらの用語が使用されます。
MistralLarge4Model
クラス transformers.MistralLarge4Model
< source >( config: MistralLarge4Config )
パラメータ
- config (MistralLarge4Config) — モデルのすべてのパラメータを含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
ビジョンバックボーンと言語モデルで構成され、言語モデリングヘッドを備えていないMistralLarge4モデル。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.FloatTensor] = 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] = Nonevision_feature_layer: int | list[int] | None = Noneuse_cache: bool | None = Noneimage_sizes: typing.Optional[torch.Tensor] = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MistralLarge4ModelOutputWithPast or tuple(torch.FloatTensor)
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- pixel_values (
torch.FloatTensor、形状(batch_size, num_channels, image_size, image_size)、任意) — 入力画像に対応するテンソルです。ピクセル値は PixtralImageProcessor を使用して取得できます。詳細は PixtralImageProcessor.call() を参照してください(PixtralProcessor は画像の処理に PixtralImageProcessor を使用します)。 - 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のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - vision_feature_layer (
Union[int, list[int]]、省略可) — 視覚特徴を選択するレイヤーのインデックスです。複数のインデックスが指定された場合、対応するインデックスの視覚特徴が連結されて視覚特徴が形成されます。 - use_cache (
bool、任意) —Trueに設定すると、past_key_valuesのキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_valuesを参照)。 - image_sizes (
torch.Tensor、形状(batch_size, 2)、任意) — バッチ内の各画像のサイズです。各画像について (高さ, 幅) の形式です。 - mm_encoder_outputs (
dict[str, ~modeling_outputs.BaseModelOutputWithPooling], 省略可) — キーがサポートされているモダリティ、値がそのモダリティのエンコード済み出力である辞書。各エンコード済み出力は、(pooler_output, 省略可:last_hidden_states, 省略可:hidden_states, 省略可:attentions)pooler_output(形状(batch_size, sequence_length, hidden_size), 省略可) からなるタプルです。pooler_outputは、エンコーダーのマルチモーダル特徴量をテキスト埋め込みにマージしたシーケンスです。
戻り値
MistralLarge4ModelOutputWithPast または tuple(torch.FloatTensor)
MistralLarge4ModelOutputWithPast または、torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(MistralLarge4Config)や入力に応じて、さまざまな要素で構成されます。
MistralLarge4Model の forward メソッドは、__call__ という特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.FloatTensor、shape(batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。past_key_valuesが使用されている場合、出力されるのは、形状(batch_size, 1, hidden_size)のシーケンスの最後の隠れ状態のみです。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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
image_hidden_states (
torch.FloatTensor、任意) — サイズが(batch_size, num_images, sequence_length, hidden_size)のtorch.FloatTensor。 ビジョンエンコーダーによって生成され、最後の隠れ状態を投影した後のモデルのimage_hidden_statesです。router_logits (
tuple(torch.FloatTensor)、optional、output_router_logits=Trueが渡された場合に返されます) — 各 MoE レイヤーに対応するtorch.FloatTensorのタプルで、形状は(batch_size * sequence_length, num_experts)です。
MistralLarge4ForConditionalGeneration
クラス transformers.MistralLarge4ForConditionalGeneration
< source >( config: MistralLarge4Config )
パラメータ
- config (MistralLarge4Config) — モデルのすべてのパラメータを含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
ビジョンバックボーンと言語モデルで構成されるMISTRAL_LARGE4モデル。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.FloatTensor] = 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 = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0image_sizes: typing.Optional[torch.Tensor] = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MistralLarge4CausalLMOutputWithPast or tuple(torch.FloatTensor)
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- pixel_values (
torch.FloatTensor、形状(batch_size, num_channels, image_size, image_size)、任意) — 入力画像に対応するテンソルです。ピクセル値は PixtralImageProcessor を使用して取得できます。詳細は PixtralImageProcessor.call() を参照してください(PixtralProcessor は画像の処理に PixtralImageProcessor を使用します)。 - 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を参照)。 - logits_to_keep (
Union[int, torch.Tensor]、省略可、デフォルトは0) —intの場合、最後のlogits_to_keepトークンについて logits を計算します。0の場合、すべてのinput_idsについて logits を計算します(特殊ケース)。生成には最後のトークンの logits だけで十分であり、そのトークンのみについて計算することでメモリを節約できます。これは、長いシーケンスや大規模な語彙サイズの場合に特に顕著な効果があります。torch.Tensorの場合、シーケンス長次元で保持するインデックスに対応する 1 次元テンソルである必要があります。これは、パックされたテンソル形式(バッチとシーケンス長を単一の次元にまとめた形式)を使用する場合に有用です。 - image_sizes (
torch.Tensor、形状(batch_size, 2)、任意) — バッチ内の各画像のサイズです。各画像について (高さ, 幅) の形式です。 - mm_encoder_outputs (
dict[str, ~modeling_outputs.BaseModelOutputWithPooling], 省略可) — キーがサポートされているモダリティ、値がそのモダリティのエンコード済み出力である辞書。各エンコード済み出力は、(pooler_output, 省略可:last_hidden_states, 省略可:hidden_states, 省略可:attentions)pooler_output(形状(batch_size, sequence_length, hidden_size), 省略可) からなるタプルです。pooler_outputは、エンコーダーのマルチモーダル特徴量をテキスト埋め込みにマージしたシーケンスです。
戻り値
MistralLarge4CausalLMOutputWithPast または tuple(torch.FloatTensor)
MistralLarge4CausalLMOutputWithPast、またはtorch.FloatTensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(MistralLarge4Config)や入力に応じて、さまざまな要素で構成されます。
MistralLarge4ForConditionalGeneration の forward メソッドは、__call__ という特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
torch.FloatTensor、shape(1,)、optional、labelsが指定された場合に返されます) — 言語モデリングの損失(次のトークン予測用)。logits (
torch.FloatTensor、shape(batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
image_hidden_states (
torch.FloatTensor、任意) — サイズが(batch_size, num_images, sequence_length, hidden_size)のtorch.FloatTensor。 ビジョンエンコーダーによって生成され、最後の隠れ状態を投影した後のモデルのimage_hidden_statesです。router_logits (
tuple[torch.FloatTensor]、optional、output_router_logits=Trueが渡された場合またはconfig.add_router_probs=Trueの場合に返されます) — 各層に対応するtorch.FloatTensorのタプルで、形状は(batch_size, sequence_length, num_experts)です。モデルのRouter logits。Mixture of Expertsモデルの補助損失を計算するのに役立ちます。
例:
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, MistralLarge4ForConditionalGeneration
>>> model = MistralLarge4ForConditionalGeneration.from_pretrained("mistralai/Mistral-Small-3.1-24B-Instruct-2503")
>>> processor = AutoProcessor.from_pretrained("mistralai/Mistral-Small-3.1-24B-Instruct-2503")
>>> prompt = "<s>[INST][IMG]What is the image?[/INST]"
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> inputs = processor(images=image, text=prompt, return_tensors="pt")
>>> # Generate
>>> generate_ids = model.generate(**inputs, max_new_tokens=15)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"What is the image?The image depicts two cats lying on a pink blanket."