Transformers documentation
Muse Spark Open
このモデルは2026年10月14日にHugging Face Transformersに貢献されました。
Muse Spark Open
概要
Muse Spark Openは、Metaが開発したマルチモーダルなmixture-of-experts (MoE)モデルです。テキスト、画像、音声、動画をインプットとして受け取り、テキストを生成します。総パラメータ数は8160億、トークンごとにアクティブなパラメータ数は420億で、すべての入力モダリティにわたって最大1,048,576トークンまでのコンテキストウィンドウをサポートします。このモデルは、マルチファイルのコード編集、デバッグ、ツール利用を含むエージェント型コーディングタスクのために学習されています。
言語バックボーンは62層のtransformer層で構成され、各層がトークンを256のエクスパートのうち8つにルーティングします。クエリ・キー正規化、アテンション出力ゲーティングおよび正規化、学習済み残差ゲートを備えたgrouped-query attentionを使用しています。共有パーセプションエンコーダーが画像と動画フレームを処理し、畳み込み型オーディオエンコーダーが1秒あたり12.5トークンのオーディオ表現を生成します。Muse Glimmerとトークナイザーおよび語彙を共有し、マルチモーダル入力に対応するようチャットテンプレートが拡張されています。チェックポイントはBF16およびNVFP4形式で利用可能です。

リソース
import os
from transformers import AutoModelForMultimodalLM, AutoProcessor, DistributedConfig
distributed_config = DistributedConfig(
tp_size=int(os.environ["WORLD_SIZE"]), # Number of devices across which the dense layers are sharded
ep_size=int(os.environ["WORLD_SIZE"]), # Number of devices across which the experts are distributed
)
processor = AutoProcessor.from_pretrained("meta-models/Muse-Spark-Open-816B-A42B")
model = AutoModelForMultimodalLM.from_pretrained(
"meta-models/Muse-Spark-Open-816B-A42B",
distributed_config=distributed_config,
)
messages = [
{"role": "user", "content": "Explain in one sentence why the sky is usually blue."},
]
inputs = processor.apply_chat_template(
messages,
reasoning_effort="low", # default: xhigh, options: low/medium/high/xhigh
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device).to(model.dtype)
input_len = inputs["input_ids"].shape[-1]
outputs = model.generate(**inputs, max_new_tokens=512)
print(processor.decode(outputs[0][input_len:], skip_special_tokens=False))
# to=self<|message|>Explain in one sentence why the sky is usually blue.
# ...
# <|eom|><|start|>assistant to=user<|message|>The sky is usually blue because molecules in Earth's atmosphere scatter shorter-wavelength blue sunlight in all directions much more strongly than longer-wavelength red light.<|eot|>import os
from transformers import AutoModelForMultimodalLM, AutoProcessor, DistributedConfig
distributed_config = DistributedConfig(
tp_size=int(os.environ["WORLD_SIZE"]),
ep_size=int(os.environ["WORLD_SIZE"]),
)
processor = AutoProcessor.from_pretrained("meta-models/Muse-Spark-Open-816B-A42B")
model = AutoModelForMultimodalLM.from_pretrained(
"meta-models/Muse-Spark-Open-816B-A42B",
distributed_config=distributed_config,
)
messages = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
{"type": "text", "text": "What is shown in this image?"},
],
},
]
inputs = processor.apply_chat_template(
messages,
reasoning_effort="medium", # default: xhigh, options: low/medium/high/xhigh
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device).to(model.dtype)
input_len = inputs["input_ids"].shape[-1]
outputs = model.generate(**inputs, max_new_tokens=512)
response = processor.decode(outputs[0][input_len:], skip_special_tokens=False)
print(response)
# to=self<|message|>What is shown in this image?
# ...
# <|eom|><|start|>assistant to=user<|message|>The image shows a **Pallas's cat — also known as a manul, *Otocolobus manul*** — walking through snow.
#
# It is a small, stocky wild cat recognizable by:
#
# * **Its extremely dense, long, greyish-brown winter coat** with faint dark stripes and a dusting of snow on its back
# * **Its flat, broad face** with low-set ears, a short muzzle, and dark stripes on the cheeks
# * **Its short legs and thick, plump body** adapted for cold climates
#
# The cat is captured mid-stride on a snow-covered surface, with one front paw lifted. In the background are white birch tree trunks with black markings and a chain-link fence on the left, indicating the animal is in a zoo or wildlife enclosure in winter.<|eot|>import os
from transformers import AutoModelForMultimodalLM, AutoProcessor, DistributedConfig
distributed_config = DistributedConfig(
tp_size=int(os.environ["WORLD_SIZE"]),
ep_size=int(os.environ["WORLD_SIZE"]),
)
processor = AutoProcessor.from_pretrained("meta-models/Muse-Spark-Open-816B-A42B")
model = AutoModelForMultimodalLM.from_pretrained(
"meta-models/Muse-Spark-Open-816B-A42B",
distributed_config=distributed_config,
)
messages = [
{
"role": "user",
"content": [
{"type": "video", "url": "https://huggingface.co/datasets/hf-internal-testing/fixtures_videos/resolve/main/tennis.mp4"},
{"type": "text", "text": "What is happening in this video?"},
],
},
]
inputs = processor.apply_chat_template(
messages,
reasoning_effort="medium", # default: xhigh, options: low/medium/high/xhigh
processor_kwargs={
"fps": 2, # default: 2, number of frames sampled per second
"num_frames": 8, # default: 94, maximum number of frames sampled from the video
},
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device).to(model.dtype)
input_len = inputs["input_ids"].shape[-1]
outputs = model.generate(**inputs, max_new_tokens=512)
print(processor.decode(outputs[0][input_len:], skip_special_tokens=False))
# to=self<|message|>What is happening in this video?
# ...
# <|eom|><|start|>assistant to=user<|message|>In this video two people are playing tennis on an indoor court.
#
# The shot is taken from behind one of the players - a man in a white t-shirt, black shorts and white shoes and socks. He is standing near the baseline on an orange hard court with white lines, in a ready position with his knees bent and his racket held in front of him.
#
# Across the net, on the far side of the court, is his opponent, also dressed in light-colored clothing.
#
# The sequence shows a short rally:
#
# * The opponent hits the ball over the net.
# * The man in the foreground shuffles to his left, turns his body, and prepares for a shot.
# * He executes a two-handed backhand, swinging the racket across his body and following through as he hits the ball back over the net.
#
# The setting is a large indoor tennis hall with a high, arched ceiling with exposed wooden beams and overhead fluorescent lights. The court is surrounded by a grey run-off area, green windscreening on the walls, and netting that separates it from adjacent courts. On the right side you can see an umpire's chair and a few yellow and black benches. An "Adobe Stock" watermark is visible in the center of the frame.<|eot|>import os
from transformers import AutoModelForMultimodalLM, AutoProcessor, DistributedConfig
distributed_config = DistributedConfig(
tp_size=int(os.environ["WORLD_SIZE"]),
ep_size=int(os.environ["WORLD_SIZE"]),
)
processor = AutoProcessor.from_pretrained("meta-models/Muse-Spark-Open-816B-A42B")
model = AutoModelForMultimodalLM.from_pretrained(
"meta-models/Muse-Spark-Open-816B-A42B",
distributed_config=distributed_config,
)
messages = [
{
"role": "user",
"content": [
{"type": "audio", "url": "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/glass_breaking.mp3"},
{"type": "text", "text": "What is said in this recording?"},
],
},
]
inputs = processor.apply_chat_template(
messages,
reasoning_effort="low", # default: xhigh, options: low/medium/high/xhigh
processor_kwargs={"sampling_rate": 24000}, # sampling rate the model was trained with
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device).to(model.dtype)
input_len = inputs["input_ids"].shape[-1]
outputs = model.generate(**inputs, max_new_tokens=512)
print(processor.decode(outputs[0][input_len:], skip_special_tokens=False))
# to=self<|message|>We need to respond to user request: "What is said in this recording?"
# ...
# <|eom|><|start|>assistant to=user<|message|>In the recording the person says:
#
# > "Just picked up this glass and the people at the store told me that if I dropped it it wouldn't break."
#
# Then the glass is dropped and shatters.<|eot|>NVFP4 重み
メモリ要件が低いNVFP4 量子化重みがハブで利用可能です。コードを変更することなく、NVFP4対応の任意のデバイスでモデルを読み込むことができます。量子化設定は読み込み時に自動的に適用されます。
NVFP4のサポートには、このブランチからtransformersをインストールする必要があります。
pip install git+https://github.com/huggingface/transformers.git@finegrained-per-scheme-demo
import os
from transformers import AutoModelForMultimodalLM, AutoProcessor, DistributedConfig
distributed_config = DistributedConfig(
tp_size=int(os.environ["WORLD_SIZE"]),
ep_size=int(os.environ["WORLD_SIZE"]),
)
processor = AutoProcessor.from_pretrained("meta-models/Muse-Spark-Open-816B-A42B-NVFP4")
model = AutoModelForMultimodalLM.from_pretrained(
"meta-models/Muse-Spark-Open-816B-A42B-NVFP4",
distributed_config=distributed_config,
)
# ...MuseSparkConfig
クラス transformers.MuseSparkConfig
< 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 = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneimage_token_id: int = 200092video_token_id: int = 200091out_hidden_size: int = 6144projector_hidden_size: int = 4096projector_hidden_act: str = 'gelu'audio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_token_id: int = 200038 )
パラメータ
- text_config (
Union[dict, ~configuration_utils.PreTrainedConfig]、省略可) — テキストバックボーンの設定オブジェクトまたは辞書。 - vision_config (
Union[dict, ~configuration_utils.PreTrainedConfig]、任意) — ビジョンバックボーンの config オブジェクトまたは辞書です。 - image_token_id (
int、任意、デフォルトは200092) — 入力画像のプレースホルダーとして使用される画像トークンのインデックスです。 - video_token_id (
int、任意、デフォルトは200091) — 入力動画のプレースホルダーとして使用される動画トークンのインデックスです。 - out_hidden_size (
int、任意、デフォルトは 6144)— パッチマージ後のビジョンエンコーダーの出力次元(マルチモーダル投影の入力幅)。 - projector_hidden_size (
int、任意、デフォルトは 4096) — マルチモーダル投影の中間次元数。 - projector_hidden_act (
str、任意、デフォルトはgelu) — マルチモーダルプロジェクターで使用する活性化関数です。 - audio_config (
Union[dict, ~configuration_utils.PreTrainedConfig]、任意) — オーディオバックボーンの config オブジェクトまたは辞書。 - audio_token_id (
int、任意、デフォルトは200038) — 入力音声のプレースホルダーとして使用されるオーディオトークンのインデックスです。
これは MuseSparkModel の設定を保存するための設定クラスです。指定された引数に基づいて Muse Spark モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、meta-models/Muse-Spark-Open-816B-A42B の設定と同様のものが得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
例:
>>> from transformers import MuseSparkForConditionalGeneration, MuseSparkConfig
>>> # Initializing an MuseSpark style configuration
>>> configuration = MuseSparkConfig()
>>> # Initializing a model from the configuration
>>> model = MuseSparkForConditionalGeneration(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configMuseSparkTextConfig
class transformers.MuseSparkTextConfig
< 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 = 202048hidden_size: int = 8192intermediate_size: int = 16384num_hidden_layers: int = 62num_attention_heads: int = 128num_key_value_heads: int = 16head_dim: int = 64max_position_embeddings: int = 1048576initializer_range: float = 0.02rms_norm_eps: float = 1e-05use_cache: bool = Truepad_token_id: int | None = Noneeos_token_id: int | list[int] | None = 200001bos_token_id: int | None = 200000tie_word_embeddings: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falseattention_dropout: int | float | None = 0.0sliding_window: int | None = 2048layer_types: list[str] | None = Nonefinal_logit_softcapping: float = 20.0qk_scale_factor: float = 5.4730064863875output_multiplier: float = 0.1767766952966369post_norm_eps: float = 1e-08layer_rope_theta: list[float | int] | None = Nonehidden_act: str = 'silu'moe_intermediate_size: int = 4096num_local_experts: int = 256num_experts_per_tok: int = 8routed_scaling_factor: float = 1.0moe_hidden_size: int = 4096mlp_layer_types: list[str] | None = Noneresidual_gate_temperature: float = 0.3output_router_logits: bool = False )
パラメータ
- vocab_size (
int、任意、デフォルトは202048) — モデルの語彙サイズ。input_idsで表現できるトークンの種類数を定義します。 - hidden_size (
int、任意、デフォルトは8192) — 隠れ表現の次元数。 - intermediate_size (
int、任意、デフォルトは16384) — MLP 表現の次元数。 - num_hidden_layers (
int、任意、デフォルトは62) — Transformer デコーダーの隠れ層の数。 - num_attention_heads (
int、任意、デフォルトは128) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。 - num_key_value_heads (
int、任意、デフォルトは16) — 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が使用されます。 - head_dim (
int、任意、デフォルトは64) — アテンションヘッドの次元です。None の場合、hidden_size // num_attention_heads がデフォルトとして使用されます。 - 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。 - eos_token_id (
Union[int, list[int]]、任意、デフォルトは200001) — 語彙内でストリーム終了に使用されるトークン ID。 - bos_token_id (
int、任意、デフォルトは200000) — 語彙におけるストリーム開始に使用されるトークン ID。 - tie_word_embeddings (
bool、任意、デフォルトはFalse) — モデルのtied_weights_keysマッピングに従って重み埋め込みを共有するかどうかを指定します。 - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], 省略可) — RoPE 埋め込みの設定パラメータを含む辞書です。この辞書にはrope_thetaの値が含まれており、より長いmax_position_embeddingsで RoPE を使用する場合にスケーリングに使用されるパラメータが任意で含まれます。 - attention_bias (
bool、任意、デフォルトはFalse) — 自己注意機構において、クエリ、キー、バリュー、出力の投影層にバイアスを使用するかどうかを指定します。 - attention_dropout (
Union[int, float]、任意、デフォルトは0.0) — アテンション確率のドロップアウト率です。 - sliding_window (
int、任意、デフォルトは2048) — スライディングウィンドウアテンションのウィンドウサイズ。Noneの場合、スライディングウィンドウは適用されません。 - layer_types (
list[str]、省略可) — 各レイヤーのインデックスとレイヤータイプを明示的に対応付けるリストです。指定しない場合、config の値に基づいて自動的に生成されます。 - final_logit_softcapping (
float、任意、デフォルト値は20.0) — 確率分布を計算する前に、最終的な logits に適用されるソフトキャップの値です。logits はtanh(logit / cap) * capによってスケーリングされます。 - qk_scale_factor (
float, 任意、デフォルト値は 5.4730064863875) — スケールなしの QK-norm の後に Q に適用される乗数です。標準的な1/sqrt(head_dim)によるアテンションのスケーリングに加えて適用されます。 - output_multiplier (
float、任意、デフォルト値は 0.1767766952966369) — 最終的な tanh softcap を適用する前に logits に掛けられるスケールです。公開されているチェックポイントでは1/sqrt(hidden_size / 256)に等しくなります。 - post_norm_eps (
float, 省略可能、デフォルト値は 1e-8) — アテンション後および FFN 後の正規化(サブレイヤーの出力と残差の間に位置するもの)で使用する Epsilon 値。 - layer_rope_theta (
list[float], 任意) — レイヤーごとの RoPE 基本 theta です。0を指定すると、そのレイヤーの rotary (NoPE) が無効になります。グローバルのrope_parameters["rope_theta"]を上書きします。デフォルトでは、最後のレイヤーから数えて 4 番目のレイヤー (NoPE) 以外のすべてのレイヤーで、グローバルの theta が使用されます。 - hidden_act (
str、任意、デフォルトはsilu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu"など。 - moe_intermediate_size (
int、任意、デフォルトは4096) — ルーティングされたエキスパートのMLPの中間サイズ。 - num_local_experts (
int、任意、デフォルトは256) — 各デバイス上のローカルエキスパートの数。num_expertsはnum_local_expertsで割り切れる必要があります。 - num_experts_per_tok (
int、任意、デフォルトは8) — 各トークンをルーティングするエキスパートの数です。これは、トークン選択ルーティングにおける top-k の値です。 - routed_scaling_factor (
float、任意、デフォルトは1.0) — ルーティングされたエキスパートのスケール係数。 - moe_hidden_size (
int, 任意、デフォルトは 4096) — ルーティングされたエキスパートの前にhidden_sizeをこの幅にプーリングし、その後にアンプーリングする MoE ブロックの幅です。エキスパートはこの幅で完全に動作します。 - mlp_layer_types (
list[str]、省略可) — レイヤーごとの MLP タイプ —"dense"または"sparse"。長さはnum_hidden_layersと等しくなければなりません。デフォルトではすべて sparse です。 - residual_gate_temperature (
float、任意、デフォルト値は 0.3)— シグモイド関数を適用する前に、residual gate パラメータに適用される温度。 - output_router_logits (
bool、任意、デフォルトはFalse) — モデルがルーターのロジツを返すかどうかを指定します。これを有効にすると、モデルは補助損失(ロードバランシング損失とルーターのz損失を含む)を出力できるようになります。
これは MuseSparkModel の設定を保存するための設定クラスです。指定された引数に基づいて Muse Spark モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、meta-models/Muse-Spark-Open-816B-A42B の設定と同様のものが得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
MuseSparkVisionConfig
クラス transformers.MuseSparkVisionConfig
< 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 = Nonepatch_size: int = 14pos_emb_height: int = 32pos_emb_width: int = 32num_attention_heads: int = 16num_hidden_layers: int = 50hidden_size: int = 1536intermediate_size: int = 8960hidden_act: str = 'gelu'rope_parameters: dict | None = Nonepatch_temporal: int = 2merge_size: int = 2max_position_embeddings: int = 1024layer_norm_eps: float = 1e-05layer_types: list[str] | None = None )
パラメータ
- patch_size (
int、任意、デフォルトは14) — 各パッチのサイズ(解像度)です。 - pos_emb_height (
int, 省略可) — 初期の位置埋め込みの高さ。 - pos_emb_width (
int, 任意) — 初期の位置埋め込み幅。 - num_attention_heads (
int、任意、デフォルトは16) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。 - num_hidden_layers (
int、任意、デフォルトは50) — Transformerデコーダーの隠れ層の数。 - hidden_size (
int、任意、デフォルトは1536) — 隠れ表現の次元数。 - intermediate_size (
int、任意、デフォルトは8960) — MLP 表現の次元数。 - hidden_act (
str、任意、デフォルトはgelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu"など。 - rope_parameters (
dict, 任意) — RoPE 埋め込みの設定パラメータを含む辞書です。辞書にはrope_thetaの値が含まれており、より長いmax_position_embeddingsで RoPE を使用する場合、スケーリングに使用されるパラメータが任意で含まれます。 - patch_temporal (
int, 省略可) — 入力を埋め込む際に使用する時間方向のパッチサイズです。 - merge_size (
tuple[int] | list[int], 任意) — パッチマージ用のカーネルサイズ。 - max_position_embeddings (
int、任意、デフォルトは1024) — このモデルが使用される可能性のある最大シーケンス長です。 - layer_norm_eps (
float、任意、デフォルトは1e-05) — レイヤーノーマル層で使用する epsilon です。 - layer_types (
list[str]、省略可) — 各レイヤーのインデックスとレイヤータイプを明示的に対応付けるリストです。指定しない場合、config の値に基づいて自動的に生成されます。
これは MuseSparkModel の設定を保存するための設定クラスです。指定された引数に基づいて Muse Spark モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、meta-models/Muse-Spark-Open-816B-A42B の設定と同様のものが得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
MuseSparkAudioConfig
class transformers.MuseSparkAudioConfig
< 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 = Nonepatch_sizes: list[int] | tuple[int, ...] = (16, 6, 5, 4)hidden_sizes: list[int] | tuple[int, ...] = (256, 512, 1024, 2048)depths: list[int] | tuple[int, ...] = (2, 2, 2, 2)num_hidden_layers: int = 4mlp_ratio: float = 4.0conv_kernel_size: int = 7hidden_act: str = 'gelu'rms_norm_eps: float = 1e-06out_hidden_size: int = 8192initializer_range: float = 0.02 )
パラメータ
- patch_sizes (
list[int] | tuple[int, ...]、任意、デフォルトは(16, 6, 5, 4)) — 各ステージの patch embedding に適用される時間方向のダウンサンプリング係数です。これらの積は、1 つの出力トークンに集約される波形サンプルの数に相当します。 - hidden_sizes (
list[int] | tuple[int, ...]、任意、デフォルトは(256, 512, 1024, 2048)) — 各ステージの隠れ層の幅です。 - depths (
list[int] | tuple[int, ...]、任意、デフォルトは(2, 2, 2, 2)) — 各レイヤーにおける conv ブロックの数。 - num_hidden_layers (
int、任意、デフォルトは 4) —MuseSparkAudioLayerの数、すなわちピラミッドの解像度数を示します。len(hidden_sizes)と冗長であり、それに対して検証されるため、カスタムピラミッドを使用する場合は両方を設定する必要があります。 - mlp_ratio (
float、任意、デフォルト値は 4.0) — レイヤーの MLP 中間幅と隠れ幅の比率です。 - conv_kernel_size (
int、任意、デフォルトは 7) — Depthwise causal convolution のカーネルサイズ。 - hidden_act (
str、任意、デフォルトはgelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu"など。 - rms_norm_eps (
float、任意、デフォルトは1e-06) — RMS 正規化レイヤーで使用する epsilon。 - out_hidden_size (
int, 任意、デフォルトは 8192) — 最終的な射影がマッピングされる幅、すなわちテキストモデルの隠れ層サイズです。 - initializer_range (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
これは MuseSparkModel の設定を保存するための設定クラスです。指定された引数に基づいて Muse Spark モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、meta-models/Muse-Spark-Open-816B-A42B の設定と同様のものが得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
MuseSparkFeatureExtractor
クラス transformers.MuseSparkFeatureExtractor
< source >( feature_size = 1sampling_rate = 24000padding_value = 0.0samples_per_token = 1920return_attention_mask = True**kwargs )
パラメータ
- feature_size (
int、任意、デフォルト値は 1) — 抽出された特徴量の次元数です。Muse Spark Open はモノラル音声を使用します。 - sampling_rate (
int, 任意、デフォルトは 24000) — オーディオが想定されるサンプリングレート(ヘルツ)です。その他のレートで録音されたオーディオは、このクラスに渡す前にリサンプリングする必要があります。 - padding_value (
float、任意、デフォルトは 0.0) — 右側をパディングするために使用される値。 - samples_per_token (
int、任意、デフォルト値は 1920)— エンコーダーが 1 つの埋め込みに圧縮する波形サンプル数です。これは、オーディオ設定のpatch_sizes(16 6 5 * 4) の積に相当します。バッチは、この値の倍数になるようパディングされます。 - return_attention_mask (
bool、任意、デフォルトはTrue) —__call__()がinput_values_maskを返すかどうか。オーディオタワーは完全に畳み込み型であり、これを消費しません。デフォルトでは無効です。
Muse Spark Open の特徴量抽出器を構築します。
Muse Spark Opens のオーディオタワーは生波形を直接消費します。スペクトログラムのフロントエンドは存在しないため、この処理はバッチ化、パディング、および(任意で)切り詰めを行うだけです。この処理の中で自明でない唯一の作業は、各バッチを samples_per_token の倍数にパディングすることです。エンコーダーはちょうどそのサンプル数を 1 つの埋め込みに圧縮し、それ以外の場合は例外を送出します。
このフィーチャーエクストラクターは、主要なメソッドの大部分を含む SequenceFeatureExtractor を継承しています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。
MuseSparkProcessor
クラス transformers.MuseSparkProcessor
< source >( image_processor = Nonevideo_processor = Nonetokenizer = Nonefeature_extractor = Nonechat_template = None**kwargs )
パラメータ
- image_processor (
MuseGlimmerImageProcessor) — 画像プロセッサは必須の入力です。 - video_processor (
MuseGlimmerVideoProcessor) — 動画プロセッサは必須の入力です。 - tokenizer (
tokenizer_class) — トークナイザーは必須の入力です。 - feature_extractor (
MuseSparkFeatureExtractor) — フィーチャーエクストラクターは必須の入力です。 - chat_template (
str) — チャット内のメッセージのリストをトークン化可能な文字列に変換するための Jinja テンプレート。
画像プロセッサ、動画プロセッサ、トークナイザー、特徴抽出器を単一のプロセッサにラップする MuseSparkProcessor を構築します。
MuseSparkProcessor は、MuseGlimmerImageProcessor、MuseGlimmerVideoProcessor、tokenizer_class、および MuseSparkFeatureExtractor のすべての機能を提供します。詳細については、~MuseGlimmerImageProcessor、~MuseGlimmerVideoProcessor、~tokenizer_class、および ~MuseSparkFeatureExtractor を参照してください。
MuseSparkPreTrainedModel
class transformers.MuseSparkPreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
パラメータ
- config (PreTrainedConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
MuseSparkTextModel
class transformers.MuseSparkTextModel
< source >( config: MuseSparkTextConfig )
パラメータ
- config (MuseSparkTextConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
裸の Muse Spark Text Modelは、特定のヘッドを上に載せずに生の hidden-states を出力します。
このモデルは 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.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MoeModelOutputWithPast or tuple(torch.Tensor)
パラメータ
- 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.Tensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - use_cache (
bool、任意) —Trueに設定すると、past_key_valuesのキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_valuesを参照)。
戻り値
MoeModelOutputWithPast または tuple(torch.Tensor)
MoeModelOutputWithPast または、torch.Tensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(MuseSparkConfig)や入力に応じて、さまざまな要素で構成されます。
MuseSparkTextModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.Tensor、形状(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.Tensor)、optional、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)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.Tensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
router_logits (
tuple(torch.Tensor)、optional、output_router_probs=Trueとconfig.add_router_probs=Trueが渡された場合、またはconfig.output_router_probs=Trueの場合に返されます) — 各層に対応するtorch.Tensorのタプルで、形状は(batch_size, sequence_length, num_experts)です。MoE ルーターによって計算される生(raw)のルーター logits(softmax 適用後)であり、Mixture of Experts モデルの補助損失を計算するためにこれらの用語が使用されます。
MuseSparkVisionModel
class transformers.MuseSparkVisionModel
< source >( config: MuseSparkVisionConfig )
パラメータ
- config (MuseSparkVisionConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
裸の Muse Spark Modelは、特定のヘッドを上に載せずに生の hidden-states を出力します。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( pixel_values: Tensorgrid_thw: LongTensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
パラメータ
- pixel_values (
torch.Tensor、形状(batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値は MuseGlimmerImageProcessor を使用して取得できます。詳細は MuseGlimmerImageProcessor.call() を参照してください(MuseSparkProcessor は画像の処理に MuseGlimmerImageProcessor を使用します)。 - grid_thw (
torch.LongTensor、形状(num_images_or_videos, 3)) — パックされた各画像または動画の、時間・高さ・幅のパッチグリッド次元です。
戻り値
BaseModelOutputWithPooling または tuple(torch.Tensor)
torch.Tensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または BaseModelOutputWithPooling。設定(MuseSparkConfig)と入力に応じて、さまざまな要素で構成されます。
MuseSparkVisionModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.Tensor、形状(batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。pooler_output (
torch.Tensor、shape(batch_size, hidden_size)) — シーケンスの最初のトークン(分類トークン)の最終層の隠れ状態を、補助的な事前学習タスクに使用される層でさらに処理した後の出力。例えば、BERT系のモデルでは、線形層とtanh活性化関数を経て処理された分類トークンを返します。この線形層の重みは、事前学習中の次の文予測(分類)目的から学習されます。hidden_states (
tuple(torch.Tensor)、optional、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)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.Tensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
MuseSparkAudioModel
class transformers.MuseSparkAudioModel
< source >( config: MuseSparkAudioConfig )
パラメータ
- config (MuseSparkAudioConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Muse Spark Open波形音声エンコーダー: 生モノラル24 kHz音声を1920サンプル(80 ms、すなわち12.5 Hz)ごとに1つの埋め込みベクトルへ変換する、完全に因果的な畳み込みピラミッドです。出力はすでにテキストモデルの隠れ層サイズに一致しています。アテンションもスペクトログラムの前処理も使用していません。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_values: Tensorpadding_cache: transformers.models.muse_spark.modeling_muse_spark.MuseSparkAudioConv1dPaddingCache | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutput or tuple(torch.Tensor)
パラメータ
- input_values (
torch.Tensor、shape(batch_size, sequence_length)) — 入力生の音声波形の浮動小数点数値。値は、.flacまたは.wav形式のオーディオファイルをlist[float]、numpy.ndarray、またはtorch.Tensor型の配列として読み込むことで取得できます。例えば、torchcodec ライブラリ(pip install torchcodec)や soundfile ライブラリ(pip install soundfile)を通じて行います。 配列をinput_valuesに整えるには、パディングとtorch.Tensor型への変換のために AutoProcessor を使用してください。詳細は MuseSparkProcessor.call() を参照してください。 - padding_cache (
MuseSparkAudioConv1dPaddingCache、optional) — ストリーミングチャンク間で状態を維持するために、畳み込み層のパディングに使用されるキャッシュです。
戻り値
BaseModelOutput または tuple(torch.Tensor)
torch.Tensor のタプル、または BaseModelOutput(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(MuseSparkConfig)と入力に応じて、さまざまな要素で構成されます。
MuseSparkAudioModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.Tensor、形状(batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。hidden_states (
tuple(torch.Tensor)、optional、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)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.Tensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
MuseSparkModel
クラス transformers.MuseSparkModel
< source >( config: MuseSparkConfig )
パラメータ
- config (MuseSparkConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
裸の Muse Spark Modelは、特定のヘッドを上に載せずに生の hidden-states を出力します。
このモデルは 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.Tensor] = Noneuse_cache: bool | None = Nonepixel_values: typing.Optional[torch.Tensor] = Noneimage_grid_thw: typing.Optional[torch.LongTensor] = Nonepixel_values_videos: typing.Optional[torch.Tensor] = Nonevideo_grid_thw: typing.Optional[torch.LongTensor] = Noneinput_values: typing.Optional[torch.Tensor] = Noneinput_values_mask: typing.Optional[torch.Tensor] = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MuseSparkModelOutputWithPast or tuple(torch.Tensor)
パラメータ
- 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.Tensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - use_cache (
bool、任意) —Trueに設定すると、past_key_valuesのキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_valuesを参照)。 - pixel_values (
torch.Tensor、形状(batch_size, num_channels, image_size, image_size)、任意) — 入力画像に対応するテンソルです。ピクセル値は MuseGlimmerImageProcessor を使用して取得できます。詳細については MuseGlimmerImageProcessor.call() を参照してください(MuseSparkProcessor は画像の処理に MuseGlimmerImageProcessor を使用します)。 - image_grid_thw (
torch.LongTensor、形状(num_images, 3)、任意) — LLM における各画像のフィーチャー形状の時間軸、高さ、幅です。 - pixel_values_videos (
torch.Tensor、形状(batch_size, num_frames, num_channels, frame_size, frame_size)、任意) — 入力動画に対応するテンソルです。動画のピクセル値は、MuseGlimmerVideoProcessor を使用して取得できます。詳細については、MuseGlimmerVideoProcessor.call() を参照してください(MuseSparkProcessor は動画の処理に MuseGlimmerVideoProcessor を使用します)。 - video_grid_thw (
torch.LongTensor、形状(num_videos, 3)、任意) — LLM における各動画のフィーチャー形状の時間軸、高さ、幅です。 - input_values (
torch.Tensor、形状(batch_size, sequence_length)、任意) — 入力生の音声波形の浮動小数点数値。値は、.flacまたは.wav形式のオーディオファイルをlist[float]、numpy.ndarray、またはtorch.Tensor型の配列として読み込むことで取得できます。例えば、torchcodec ライブラリ(pip install torchcodec)や soundfile ライブラリ(pip install soundfile)を通じて行います。 配列をinput_valuesに整えるには、パディングとtorch.Tensor型への変換のために AutoProcessor を使用してください。詳細は MuseSparkProcessor.call() を参照してください。 - input_values_mask (
torch.Tensor、形状(batch_size, num_samples)、任意) —input_valuesのどのエントリがパディングではなく実際の音声かを表します。MuseSparkFeatureExtractor によって生成されます。長さが異なるクリップをバッチ処理する場合は必須です。 - 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は、エンコーダーのマルチモーダル特徴量をテキスト埋め込みにマージしたシーケンスです。
戻り値
MuseSparkModelOutputWithPast または tuple(torch.Tensor)
MuseSparkModelOutputWithPast または、torch.Tensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(MuseSparkConfig)や入力に応じて、さまざまな要素で構成されます。
MuseSparkModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.Tensor、形状(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 ガイドを参照してください。自己アテンションブロック(および
config.is_encoder_decoder=Trueの場合、クロスカレンションブロック)の事前計算済みヒドゥンステート(キーとバリュー)を保持します。これらは逐次デコーディングを高速化するために使用できます(past_key_values入力参照)。hidden_states (
tuple(torch.Tensor)、optional、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)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.Tensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
image_hidden_states (
torch.Tensor、任意) — サイズが(batch_size, num_images, sequence_length, hidden_size)のtorch.Tensor。 ビジョンエンコーダーによって生成され、最後の隠れ状態を投影した後のモデルのimage_hidden_statesです。router_logits (
tuple[torch.Tensor]、optional、output_router_logits=Trueが渡された場合またはconfig.add_router_probs=Trueの場合に返されます) — 各層に対応するtorch.Tensorのタプルで、形状は(batch_size, sequence_length, num_experts)です。モデルのRouter logits。Mixture of Expertsモデルの補助損失を計算するのに役立ちます。
例:
>>> import os
>>> from transformers import AutoProcessor, DistributedConfig, MuseSparkModel
>>> distributed_config = DistributedConfig(
... tp_size=int(os.environ["WORLD_SIZE"]),
... ep_size=int(os.environ["WORLD_SIZE"]),
... )
>>> processor = AutoProcessor.from_pretrained("meta-models/Muse-Spark-Open-816B-A42B")
>>> model = MuseSparkModel.from_pretrained(
... "meta-models/Muse-Spark-Open-816B-A42B",
... dtype="auto",
... distributed_config=distributed_config,
... )
>>> messages = [
... {
... "role": "user",
... "content": [
... {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
... {"type": "text", "text": "What is shown in this image?"},
... ],
... },
... ]
>>> inputs = processor.apply_chat_template(
... messages,
... reasoning_effort="medium",
... add_generation_prompt=True,
... tokenize=True,
... return_dict=True,
... return_tensors="pt",
... ).to(model.device).to(model.dtype)
>>> outputs = model(**inputs)
>>> last_hidden_state = outputs.last_hidden_stateMuseSparkForConditionalGeneration
クラス transformers.MuseSparkForConditionalGeneration
< source >( config: MuseSparkConfig )
パラメータ
- config (MuseSparkConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Muse Spark Modelは、他のモダリティ(例:画像とテキストからテキストを生成する)に条件付けられたトークン生成用のモデルです。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Noneimage_grid_thw: typing.Optional[torch.LongTensor] = Nonepixel_values_videos: typing.Optional[torch.Tensor] = Nonevideo_grid_thw: typing.Optional[torch.LongTensor] = Noneinput_values: typing.Optional[torch.Tensor] = Noneinput_values_mask: typing.Optional[torch.Tensor] = 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.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0mm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MuseSparkCausalLMOutputWithPast or tuple(torch.Tensor)
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- pixel_values (
torch.Tensor、形状(batch_size, num_channels, image_size, image_size)、任意) — 入力画像に対応するテンソルです。ピクセル値は MuseGlimmerImageProcessor を使用して取得できます。詳細については MuseGlimmerImageProcessor.call() を参照してください(MuseSparkProcessor は画像の処理に MuseGlimmerImageProcessor を使用します)。 - image_grid_thw (
torch.LongTensor、形状(num_images, 3)、任意) — LLM における各画像のフィーチャー形状の時間軸、高さ、幅です。 - pixel_values_videos (
torch.Tensor、形状(batch_size, num_frames, num_channels, frame_size, frame_size)、任意) — 入力動画に対応するテンソルです。動画のピクセル値は、MuseGlimmerVideoProcessor を使用して取得できます。詳細については、MuseGlimmerVideoProcessor.call() を参照してください(MuseSparkProcessor は動画の処理に MuseGlimmerVideoProcessor を使用します)。 - video_grid_thw (
torch.LongTensor、形状(num_videos, 3)、任意) — LLM における各動画のフィーチャー形状の時間軸、高さ、幅です。 - input_values (
torch.Tensor、形状(batch_size, sequence_length)、任意) — 入力生の音声波形の浮動小数点数値。値は、.flacまたは.wav形式のオーディオファイルをlist[float]、numpy.ndarray、またはtorch.Tensor型の配列として読み込むことで取得できます。例えば、torchcodec ライブラリ(pip install torchcodec)や soundfile ライブラリ(pip install soundfile)を通じて行います。 配列をinput_valuesに整えるには、パディングとtorch.Tensor型への変換のために AutoProcessor を使用してください。詳細は MuseSparkProcessor.call() を参照してください。 - input_values_mask (
torch.Tensor、形状(batch_size, num_samples)、任意) —input_valuesのどのエントリがパディングではなく実際の音声かを表します。MuseSparkFeatureExtractor によって生成されます。長さが異なるクリップをバッチ処理する場合は必須です。 - 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.Tensor、形状(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 次元テンソルである必要があります。これは、パックされたテンソル形式(バッチとシーケンス長を単一の次元にまとめた形式)を使用する場合に有用です。 - 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は、エンコーダーのマルチモーダル特徴量をテキスト埋め込みにマージしたシーケンスです。
戻り値
MuseSparkCausalLMOutputWithPast または tuple(torch.Tensor)
MuseSparkCausalLMOutputWithPast または、return_dict=False が渡された場合、または config.return_dict=False の場合、torch.Tensor のタプル。構成(MuseSparkConfig)や入力に応じて、さまざまな要素で構成されます。
MuseSparkForConditionalGenerationのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
torch.Tensor、形状(1,)、任意、labelsが指定された場合に返されます) — 言語モデリングの損失(次のトークンの予測用)。logits (
torch.Tensor、形状(batch_size, sequence_length, config.text_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.Tensor]、optional、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]、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.Tensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
image_hidden_states (
torch.Tensor、任意) — サイズが(batch_size, num_images, sequence_length, hidden_size)のtorch.Tensor。 ビジュアルエンコーダーによって生成されたモデルのimage_hidden_states。最後の隠れ状態を投影した後のものです。router_logits (
tuple[torch.Tensor]、optional、output_router_logits=Trueが渡された場合またはconfig.add_router_probs=Trueの場合に返されます) — 各層に対応するtorch.Tensorのタプルで、形状は(batch_size, sequence_length, num_experts)です。モデルのRouter logits。Mixture of Expertsモデルの補助損失を計算するのに役立ちます。
例:
>>> import os
>>> from transformers import AutoProcessor, DistributedConfig, MuseSparkForConditionalGeneration
>>> distributed_config = DistributedConfig(
... tp_size=int(os.environ["WORLD_SIZE"]),
... ep_size=int(os.environ["WORLD_SIZE"]),
... )
>>> processor = AutoProcessor.from_pretrained("meta-models/Muse-Spark-Open-816B-A42B")
>>> model = MuseSparkForConditionalGeneration.from_pretrained(
... "meta-models/Muse-Spark-Open-816B-A42B",
... dtype="auto",
... distributed_config=distributed_config,
... )
>>> messages = [
... {
... "role": "user",
... "content": [
... {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
... {"type": "text", "text": "What is shown in this image?"},
... ],
... },
... ]
>>> inputs = processor.apply_chat_template(
... messages,
... reasoning_effort="medium",
... add_generation_prompt=True,
... tokenize=True,
... return_dict=True,
... return_tensors="pt",
... ).to(model.device).to(model.dtype)
>>> input_len = inputs["input_ids"].shape[-1]
>>> outputs = model.generate(**inputs, max_new_tokens=512)
>>> response = processor.decode(outputs[0][input_len:], skip_special_tokens=False)
>>> print(response)
The image shows a **Pallas's cat — also known as a manul, *Otocolobus manul*** — walking through snow.
...