Transformers documentation
Muse Spark Open
Ce modèle a été contribué à Hugging Face Transformers le 2026-10-14.
Muse Spark Open
Aperçu
Muse Spark Open est un modèle multimodal de type mixture-of-experts (MoE) développé par Meta, qui accepte du texte, des images, de l'audio et de la vidéo en entrée et génère du texte. Il possède 816 milliards de paramètres au total, dont 42 milliards actifs par jeton, et prend en charge une fenêtre de contexte allant jusqu'à 1 048 576 jetons, partagée entre toutes les modalités d'entrée. Le modèle est entraîné pour des tâches de codage agentique, incluant l'édition de code multi-fichiers, le débogage et l'utilisation d'outils.
Le socle linguistique est composé de 62 couches de transformateur, chacune acheminant les jetons vers 8 experts parmi 256. Il utilise une attention à requêtes groupées avec normalisation des requêtes et des clés, un portage et une normalisation de la sortie de l'attention, ainsi que des portes résiduelles apprises. Un encodeur de perception partagé traite les images et les images vidéo, tandis qu'un encodeur audio convolutif génère des représentations audio à 12,5 jetons par seconde. Muse Spark Open partage son tokeniseur et son vocabulaire avec Muse Glimmer, avec des extensions du modèle de discussion pour les entrées multimodales. Les points de contrôle sont disponibles en BF16 et au format NVFP4.

Ressources
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|>Poids NVFP4
Les poids quantifiés NVFP4, qui nécessitent moins de mémoire, sont disponibles sur le hub. Le modèle peut être chargé sur n'importe quel appareil compatible NVFP4 sans modification du code. La configuration de quantification est appliquée automatiquement au chargement.
Pour la prise en charge de NVFP4, transformers doit être installé depuis cette branche.
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
classe 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 )
Paramètres
- text_config (
Union[dict, ~configuration_utils.PreTrainedConfig], facultatif) — L'objet de configuration ou le dictionnaire du backbone de texte. - vision_config (
Union[dict, ~configuration_utils.PreTrainedConfig], facultatif) — L'objet de configuration ou le dictionnaire du backbone visuel. - image_token_id (
int, facultatif, par défaut200092) — L’index du jeton d’image utilisé comme espace réservé pour les images d’entrée. - video_token_id (
int, facultatif, par défaut200091) — L’index du jeton vidéo utilisé comme espace réservé pour les vidéos d’entrée. - out_hidden_size (
int, facultatif, par défaut 6144) — Dimension de sortie de l’encodeur visuel après fusion des patches (largeur d’entrée de la projection multimodale). - projector_hidden_size (
int, facultatif, valeur par défaut 4096) — Dimension intermédiaire de la projection multimodale. - projector_hidden_act (
str, facultatif, par défautgelu) — La fonction d'activation utilisée par le projecteur multimodal. - audio_config (
Union[dict, ~configuration_utils.PreTrainedConfig], facultatif) — L'objet de configuration ou le dictionnaire du backbone audio. - audio_token_id (
int, facultatif, par défaut200038) — L’index du jeton audio utilisé comme espace réservé pour l’audio d’entrée.
Ceci est la classe de configuration destinée à stocker la configuration d'un MuseSparkModel. Elle est utilisée pour instancier un modèle Muse Spark en fonction des arguments spécifiés, définissant ainsi l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle du meta-models/Muse-Spark-Open-816B-A42B
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
Exemple :
>>> 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
classe 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 )
Paramètres
- vocab_size (
int, facultatif, par défaut202048) — Taille du vocabulaire du modèle. Définit le nombre de jetons différents qui peuvent être représentés parinput_ids. - hidden_size (
int, facultatif, par défaut8192) — Dimension des représentations cachées. - intermediate_size (
int, facultatif, par défaut16384) — Dimension des représentations du MLP. - num_hidden_layers (
int, facultatif, par défaut62) — Nombre de couches cachées dans le décodeur Transformer. - num_attention_heads (
int, facultatif, valeur par défaut128) — Nombre de têtes d'attention pour chaque couche d'attention du décodeur Transformer. - num_key_value_heads (
int, facultatif, valeur par défaut16) — Ceci est le nombre de têtes key_value à utiliser pour implémenter l'attention Grouped Query. Sinum_key_value_heads=num_attention_heads, le modèle utilisera l'attention Multi Head (MHA), sinum_key_value_heads=1le modèle utilisera l'attention Multi Query (MQA), sinon l'attention GQA est utilisée. Lors de la conversion d'un checkpoint multi-têtes en checkpoint GQA, chaque tête clé et valeur de groupe doit être construite en effectuant un meanpooling de toutes les têtes d'origine au sein de ce groupe. Pour plus de détails, consultez ce papier. S'il n'est pas spécifié, la valeur par défaut seranum_attention_heads. - head_dim (
int, facultatif, par défaut64) — La dimension des têtes d'attention. Si None, elle est par défaut égale à hidden_size // num_attention_heads - max_position_embeddings (
int, facultatif, par défaut1048576) — La longueur de séquence maximale avec laquelle ce modèle pourrait être utilisé. - initializer_range (
float, facultatif, par défaut0.02) — L'écart-type de la truncated_normal_initializer utilisé pour initialiser toutes les matrices de poids. - rms_norm_eps (
float, facultatif, valeur par défaut1e-05) — L'épsilon utilisé par les couches de normalisation rms. - use_cache (
bool, facultatif, valeur par défautTrue) — Indique si le modèle doit retourner les dernières attentions clés/valeurs (non utilisé par tous les modèles). N’est pertinent que siconfig.is_decoder=Trueou si le modèle est un modèle génératif uniquement décodeur. - pad_token_id (
int, facultatif) — Identifiant du jeton utilisé pour le bourrage dans le vocabulaire. - eos_token_id (
Union[int, list[int]], facultatif, par défaut200001) — Identifiant du jeton utilisé pour la fin de flux dans le vocabulaire. - bos_token_id (
int, facultatif, par défaut200000) — Identifiant du jeton utilisé pour le début de flux dans le vocabulaire. - tie_word_embeddings (
bool, facultatif, valeur par défautFalse) — Indique s'il faut lier les embeddings de poids selon la correspondancetied_weights_keysdu modèle. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], facultatif) — Dictionnaire contenant les paramètres de configuration pour les embeddings RoPE. Le dictionnaire doit contenir une valeur pourrope_thetaet, le cas échéant, les paramètres utilisés pour le mise à l’échelle si vous souhaitez utiliser RoPE avec desmax_position_embeddingsplus longs. - attention_bias (
bool, facultatif, par défautFalse) — Indique s'il faut utiliser un biais dans les couches de projection des requêtes, des clés, des valeurs et de la sortie lors de l'auto-attention. - attention_dropout (
Union[int, float], facultatif, valeur par défaut0.0) — Le taux de dropout appliqué aux probabilités d'attention. - sliding_window (
int, facultatif, par défaut2048) — Taille de la fenêtre d'attention glissante. SiNone, aucune fenêtre glissante n'est appliquée. - layer_types (
list[str], facultatif) — Une liste qui associe explicitement chaque index de couche à son type de couche. S'il n'est pas fourni, il sera généré automatiquement en fonction des valeurs de configuration. - final_logit_softcapping (
float, facultatif, valeur par défaut20.0) — Valeur de soft-capping appliquée aux logits finaux avant le calcul de la distribution de probabilité. Les logits sont mis à l'échelle partanh(logit / cap) * cap. - qk_scale_factor (
float, facultatif, valeur par défaut 5.4730064863875) — Multiplicateur appliqué à Q après la normalisation QK sans échelle, en plus de l'échelle d'attention standard1/sqrt(head_dim). - output_multiplier (
float, facultatif, valeur par défaut 0.1767766952966369) — Échelle appliquée aux logits avant le softcap tanh final. Égal à1/sqrt(hidden_size / 256)pour le point de contrôle publié. - post_norm_eps (
float, facultatif, valeur par défaut 1e-8) — Epsilon utilisé pour les normalisations post-attention et post-FFN (situées entre la sortie de la sous-couche et le résidu). - layer_rope_theta (
list[float], facultatif) — Theta de base RoPE par couche ;0désactive la rotation (NoPE) pour cette couche. Remplace le paramètre globalrope_parameters["rope_theta"]. Par défaut, le theta global est utilisé partout, sauf pour chaque 4e couche en partant de la dernière, qui est en NoPE. - hidden_act (
str, facultatif, par défautsilu) — La fonction d'activation non linéaire (fonction ou chaîne de caractères) du décodeur. Par exemple,"gelu","relu","silu", etc. - moe_intermediate_size (
int, facultatif, par défaut4096) — Taille intermédiaire des MLP des experts routés. - num_local_experts (
int, facultatif, par défaut256) — Nombre d'experts locaux sur chaque appareil.num_expertsdoit être divisible parnum_local_experts. - num_experts_per_tok (
int, facultatif, valeur par défaut8) — Nombre d'experts auxquels chaque jeton doit être routé. Il s'agit de la valeur top-k pour le routage par choix de jeton. - routed_scaling_factor (
float, facultatif, par défaut1.0) — Facteur d'échelle des experts routés. - moe_hidden_size (
int, facultatif, valeur par défaut 4096) — Largeur à laquelle le bloc MoE réduithidden_sizeavant les experts routés, et la restaure ensuite. Les experts s’exécutent entièrement à cette largeur. - mlp_layer_types (
list[str], facultatif) — Type de MLP par couche —"dense"ou"sparse". La longueur doit être égale ànum_hidden_layers. Par défaut, toutes les couches sont de type sparse. - residual_gate_temperature (
float, facultatif, valeur par défaut 0.3) — Température appliquée au paramètre de la porte résiduelle avant la sigmoïde. - output_router_logits (
bool, facultatif, par défautFalse) — Indique si les logits du routeur doivent être renvoyés par le modèle. L’activation de cette option permet également au modèle de renvoyer la perte auxiliaire, incluant la perte d’équilibrage de charge et la perte z du routeur.
Ceci est la classe de configuration destinée à stocker la configuration d'un MuseSparkModel. Elle est utilisée pour instancier un modèle Muse Spark en fonction des arguments spécifiés, définissant ainsi l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle du meta-models/Muse-Spark-Open-816B-A42B
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
MuseSparkVisionConfig
classe 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 )
Paramètres
- patch_size (
int, facultatif, par défaut14) — La taille (résolution) de chaque patch. - pos_emb_height (
int, facultatif) — Hauteur initiale de l’embedding de position. - pos_emb_width (
int, facultatif) — Largeur initiale de l’incorporation de position. - num_attention_heads (
int, facultatif, valeur par défaut16) — Nombre de têtes d'attention pour chaque couche d'attention du décodeur Transformer. - num_hidden_layers (
int, facultatif, par défaut50) — Nombre de couches cachées dans le décodeur Transformer. - hidden_size (
int, facultatif, par défaut1536) — Dimension des représentations cachées. - intermediate_size (
int, facultatif, par défaut8960) — Dimension des représentations du MLP. - hidden_act (
str, facultatif, par défautgelu) — La fonction d'activation non linéaire (fonction ou chaîne de caractères) du décodeur. Par exemple,"gelu","relu","silu", etc. - rope_parameters (
dict, facultatif) — Dictionnaire contenant les paramètres de configuration des embeddings RoPE. Le dictionnaire doit contenir une valeur pourrope_thetaet, le cas échéant, les paramètres utilisés pour le mise à l’échelle si vous souhaitez utiliser RoPE avec desmax_position_embeddingsplus longs. - patch_temporal (
int, facultatif) — La taille du patch temporel utilisée pour intégrer les entrées. - merge_size (
tuple[int] | list[int], facultatif) — Taille du noyau pour la fusion de patches. - max_position_embeddings (
int, facultatif, par défaut1024) — La longueur de séquence maximale avec laquelle ce modèle pourrait être utilisé. - layer_norm_eps (
float, facultatif, valeur par défaut1e-05) — L'épsilon utilisé par les couches de normalisation de couche. - layer_types (
list[str], facultatif) — Une liste qui associe explicitement chaque index de couche à son type de couche. S'il n'est pas fourni, il sera généré automatiquement en fonction des valeurs de configuration.
Ceci est la classe de configuration destinée à stocker la configuration d'un MuseSparkModel. Elle est utilisée pour instancier un modèle Muse Spark en fonction des arguments spécifiés, définissant ainsi l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle du meta-models/Muse-Spark-Open-816B-A42B
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
MuseSparkAudioConfig
classe 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 )
Paramètres
- patch_sizes (
list[int] | tuple[int, ...], facultatif, par défaut(16, 6, 5, 4)) — Facteur de sous-échantillonnage temporel appliqué par l’encodage de patch de chaque étape. Leur produit correspond au nombre d’échantillons de forme d’onde regroupés en un seul jeton de sortie. - hidden_sizes (
list[int] | tuple[int, ...], facultatif, par défaut(256, 512, 1024, 2048)) — Largeur cachée de chaque étape. - depths (
list[int] | tuple[int, ...], facultatif, par défaut(2, 2, 2, 2)) — Nombre de blocs de convolution dans chaque couche. - num_hidden_layers (
int, facultatif, valeur par défaut 4) — Nombre deMuseSparkAudioLayer, c'est-à-dire les résolutions de la pyramide. Redondant aveclen(hidden_sizes)et validé par rapport à celui-ci, une pyramide personnalisée doit donc définir les deux. - mlp_ratio (
float, facultatif, valeur par défaut 4.0) — Rapport entre la largeur intermédiaire du MLP d'une couche et sa largeur cachée. - conv_kernel_size (
int, facultatif, valeur par défaut 7) — Taille du noyau des convolutions causales en profondeur. - hidden_act (
str, facultatif, par défautgelu) — La fonction d'activation non linéaire (fonction ou chaîne de caractères) du décodeur. Par exemple,"gelu","relu","silu", etc. - rms_norm_eps (
float, facultatif, valeur par défaut1e-06) — L'épsilon utilisé par les couches de normalisation rms. - out_hidden_size (
int, facultatif, par défaut 8192) — Largeur vers laquelle la projection finale mappe, c’est-à-dire la taille cachée du modèle de texte. - initializer_range (
float, facultatif, par défaut0.02) — L'écart-type de la truncated_normal_initializer utilisé pour initialiser toutes les matrices de poids.
Ceci est la classe de configuration destinée à stocker la configuration d'un MuseSparkModel. Elle est utilisée pour instancier un modèle Muse Spark en fonction des arguments spécifiés, définissant ainsi l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle du meta-models/Muse-Spark-Open-816B-A42B
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
MuseSparkFeatureExtractor
classe transformers.MuseSparkFeatureExtractor
< source >( feature_size = 1sampling_rate = 24000padding_value = 0.0samples_per_token = 1920return_attention_mask = True**kwargs )
Paramètres
- feature_size (
int, facultatif, par défaut 1) — La dimension des caractéristiques des fonctionnalités extraites. Muse Spark Open prend en charge l’audio mono. - sampling_rate (
int, facultatif, par défaut 24000) — La fréquence d'échantillonnage, en hertz, à laquelle l'audio est attendu. Tout audio à une autre fréquence doit être rééchantillonné avant d'atteindre cette classe. - padding_value (
float, facultatif, par défaut 0.0) — Valeur utilisée pour l’ajustement à droite. - samples_per_token (
int, facultatif, valeur par défaut 1920) — Nombre d’échantillons de la forme d’onde que l’encodeur regroupe en un seul embedding — le produit despatch_sizesde la configuration audio (16 6 5 * 4). Les lots sont complétés jusqu’à un multiple de cette valeur. - return_attention_mask (
bool, facultatif, par défautTrue) — Indique si__call__()doit retournerinput_values_mask. La tour audio est entièrement convolutive et n’en consomme pas ; elle est désactivée par défaut.
Construit un extracteur de fonctionnalités Muse Spark Open.
La tour audio de Muse Spark Opens consomme la forme d’onde brute — il n’y a pas de front end spectrogramme — elle ne fait donc que regrouper en lots, compléter et (facultativement) tronquer. La seule tâche non évidente qu’elle effectue est de compléter chaque lot jusqu’à un multiple de samples_per_token : l’encodeur regroupe exactement ce nombre d’échantillons en un seul embedding et lève une erreur dans le cas contraire.
Cet extracteur de fonctionnalités hérite de SequenceFeatureExtractor, qui contient la plupart des méthodes principales. Les utilisateurs doivent se référer à cette superclasse pour plus d'informations sur ces méthodes.
MuseSparkProcessor
classe transformers.MuseSparkProcessor
< source >( image_processor = Nonevideo_processor = Nonetokenizer = Nonefeature_extractor = Nonechat_template = None**kwargs )
Paramètres
- image_processor (
MuseGlimmerImageProcessor) — Le processeur d’images est une entrée obligatoire. - video_processor (
MuseGlimmerVideoProcessor) — Le processeur vidéo est une entrée obligatoire. - tokenizer (
tokenizer_class) — Le tokenizer est une entrée obligatoire. - feature_extractor (
MuseSparkFeatureExtractor) — L'extracteur de caractéristiques est une entrée obligatoire. - chat_template (
str) — Un modèle Jinja pour convertir des listes de messages d'une conversation en une chaîne tokenisable.
Construit un MuseSparkProcessor qui encapsule un processeur d’images, un processeur de vidéos, un tokenizer et un extracteur de caractéristiques en un seul processeur.
MuseSparkProcessor offre toutes les fonctionnalités de MuseGlimmerImageProcessor, MuseGlimmerVideoProcessor, tokenizer_class et MuseSparkFeatureExtractor. Consultez ~MuseGlimmerImageProcessor, ~MuseGlimmerVideoProcessor, ~tokenizer_class et ~MuseSparkFeatureExtractor pour plus d’informations.
MuseSparkPreTrainedModel
classe transformers.MuseSparkPreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
Paramètres
- config (PreTrainedConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.
Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)
Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.
MuseSparkTextModel
classe transformers.MuseSparkTextModel
< source >( config: MuseSparkTextConfig )
Paramètres
- config (MuseSparkTextConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.
Le modèle de texte Muse Spark brut, produisant des états cachés bruts sans aucune tête spécifique au sommet.
Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)
Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.
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)
Paramètres
- input_ids (
torch.LongTensorde forme(batch_size, sequence_length), facultatif) — Indices des jetons de la séquence d'entrée dans le vocabulaire. Le bourrage (padding) sera ignoré par défaut.Les indices peuvent être obtenus à l'aide de AutoTokenizer. Consultez PreTrainedTokenizer.encode() et PreTrainedTokenizer.call() pour plus de détails.
- attention_mask (
torch.Tensorde forme(batch_size, sequence_length), facultatif) — Masque pour éviter d'appliquer l'attention aux indices des jetons de bourrage. Les valeurs du masque sont choisies dans[0, 1]:- 1 pour les jetons qui ne sont pas masqués,
- 0 pour les jetons masqués.
- position_ids (
torch.LongTensorde forme(batch_size, sequence_length), facultatif) — Indices des positions des jetons de chaque séquence d'entrée dans les embeddings de position. Sélectionnés dans l'intervalle[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, facultatif) — États cachés précalculés (clés et valeurs dans les blocs d'auto-attention et d'attention croisée) qui peuvent être utilisés pour accélérer le décodage séquentiel. Cela consiste généralement en lapast_key_valuesretournée par le modèle à une étape antérieure du décodage, lorsqueuse_cache=Trueouconfig.use_cache=True.Seule une instance de Cache est autorisée en entrée, consultez notre guide du cache kv. Si aucun
past_key_valuesn'est transmis, DynamicCache sera initialisé par défaut.Le modèle produira le même format de cache qui est fourni en entrée.
Si
past_key_valuessont utilisés, l’utilisateur doit fournir uniquement lesinput_idsnon traités (ceux pour lesquels les états de clés et de valeurs passées n’ont pas été fournis à ce modèle) de forme(batch_size, unprocessed_length)au lieu de tous lesinput_idsde forme(batch_size, sequence_length). - inputs_embeds (
torch.Tensorde forme(batch_size, sequence_length, hidden_size), facultatif) — Facultativement, au lieu de passerinput_ids, vous pouvez choisir de passer directement une représentation intégrée. Cela est utile si vous souhaitez un meilleur contrôle sur la manière de convertir les indicesinput_idsen vecteurs associés que la matrice de recherche d’intégration interne du modèle. - use_cache (
bool, facultatif) — Si défini surTrue, les états clé-valeurpast_key_valuessont renvoyés et peuvent être utilisés pour accélérer le décodage (voirpast_key_values).
Retourne
MoeModelOutputWithPast ou tuple(torch.Tensor)
Un MoeModelOutputWithPast ou un tuple de
torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers
éléments en fonction de la configuration (MuseSparkConfig) et des entrées.
La méthode forward du modèle MuseSparkTextModel redéfinit la méthode spéciale __call__.
Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance
Moduleplutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.
last_hidden_state (
torch.Tensorde forme(batch_size, sequence_length, hidden_size)) — Séquence d'états cachés à la sortie de la dernière couche du modèle.past_key_values (
Cache, facultatif, renvoyé lorsqueuse_cache=Trueest passé ou lorsqueconfig.use_cache=True) — Il s’agit d’une instance de Cache. Pour plus de détails, consultez notre guide sur le cache kv.Contient des états cachés précalculés (clés et valeurs dans les blocs d'auto-attention et, le cas échéant, si
config.is_encoder_decoder=True, dans les blocs d'attention croisée) qui peuvent être utilisés (voir l'entréepast_key_values) pour accélérer le décodage séquentiel.hidden_states (
tuple(torch.Tensor), facultatif, renvoyé lorsqueoutput_hidden_states=Trueest passé ou lorsqueconfig.output_hidden_states=True) — Tuple detorch.Tensor(un pour la sortie des embeddings, si le modèle possède une couche d’embedding, + un pour la sortie de chaque couche) de forme(batch_size, sequence_length, hidden_size).États cachés du modèle à la sortie de chaque couche, ainsi que les sorties d'incorporation initiales facultatives.
attentions (
tuple(torch.Tensor), facultatif, renvoyé lorsqueoutput_attentions=Trueest passé ou lorsqueconfig.output_attentions=True) — Tuple detorch.Tensor(un par couche) de forme(batch_size, num_heads, sequence_length, sequence_length).Poids des attentions après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.
router_logits (
tuple(torch.Tensor), facultatif, renvoyé lorsqueoutput_router_probs=Trueetconfig.add_router_probs=Truesont passés ou lorsqueconfig.output_router_probs=True) — Tuple detorch.Tensor(un par couche) de forme(batch_size, sequence_length, num_experts).Logits bruts du routeur (après softmax) calculés par les routeurs MoE, ces termes sont utilisés pour calculer la perte auxiliaire des modèles Mixture of Experts.
MuseSparkVisionModel
classe transformers.MuseSparkVisionModel
< source >( config: MuseSparkVisionConfig )
Paramètres
- config (MuseSparkVisionConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.
Le modèle Muse Spark brut, produisant des états cachés bruts sans aucune tête spécifique au sommet.
Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)
Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.
forward
< source >( pixel_values: Tensorgrid_thw: LongTensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
Paramètres
- pixel_values (
torch.Tensorde forme(batch_size, num_channels, image_size, image_size)) — Les tenseurs correspondant aux images d'entrée. Les valeurs de pixels peuvent être obtenues à l'aide de MuseGlimmerImageProcessor. Voir MuseGlimmerImageProcessor.call() pour plus de détails (MuseSparkProcessor utilise MuseGlimmerImageProcessor pour le traitement des images). - grid_thw (
torch.LongTensorde forme(num_images_or_videos, 3)) — Dimensions de la grille de patches temporel, hauteur et largeur pour chaque image ou vidéo empilée.
Retourne
BaseModelOutputWithPooling ou tuple(torch.Tensor)
Un BaseModelOutputWithPooling ou un tuple de
torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers
éléments en fonction de la configuration (MuseSparkConfig) et des entrées.
La méthode forward du modèle MuseSparkVisionModel redéfinit la méthode spéciale __call__.
Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance
Moduleplutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.
last_hidden_state (
torch.Tensorde forme(batch_size, sequence_length, hidden_size)) — Séquence d'états cachés à la sortie de la dernière couche du modèle.pooler_output (
torch.Tensorde forme(batch_size, hidden_size)) — État caché de la dernière couche du premier jeton de la séquence (jeton de classification) après un traitement supplémentaire par les couches utilisées pour la tâche de pré-entraînement auxiliaire. Par exemple, pour les modèles de la famille BERT, cela renvoie le jeton de classification après traitement par une couche linéaire et une fonction d'activation tanh. Les poids de la couche linéaire sont entraînés à partir de l'objectif de prédiction de la phrase suivante (classification) pendant le pré-entraînement.hidden_states (
tuple(torch.Tensor), facultatif, renvoyé lorsqueoutput_hidden_states=Trueest passé ou lorsqueconfig.output_hidden_states=True) — Tuple detorch.Tensor(un pour la sortie des embeddings, si le modèle possède une couche d’embedding, + un pour la sortie de chaque couche) de forme(batch_size, sequence_length, hidden_size).États cachés du modèle à la sortie de chaque couche, ainsi que les sorties d'incorporation initiales facultatives.
attentions (
tuple(torch.Tensor), facultatif, renvoyé lorsqueoutput_attentions=Trueest passé ou lorsqueconfig.output_attentions=True) — Tuple detorch.Tensor(un par couche) de forme(batch_size, num_heads, sequence_length, sequence_length).Poids des attentions après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.
MuseSparkAudioModel
classe transformers.MuseSparkAudioModel
< source >( config: MuseSparkAudioConfig )
Paramètres
- config (MuseSparkAudioConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.
L'encodeur audio en forme d'onde Muse Spark Open : une pyramide convolutive entièrement causale qui mappe l'audio mono brut à 24 kHz vers un seul embedding par 1920 échantillons (80 ms, soit 12,5 Hz), déjà dans la taille cachée du modèle de texte. Il n'utilise ni attention ni front-end spectrogramme.
Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)
Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.
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)
Paramètres
- input_values (
torch.Tensorde forme(batch_size, sequence_length)) — Valeurs flottantes de la forme d’onde brute de l’entrée audio. Les valeurs peuvent être obtenues en chargeant un fichier audio.flacou.wavdans un tableau de typelist[float], unnumpy.ndarrayou untorch.Tensor, par exemple via la bibliothèque torchcodec (pip install torchcodec) ou la bibliothèque soundfile (pip install soundfile). Pour préparer le tableau eninput_values, le AutoProcessor doit être utilisé pour le bourrage (padding) et la conversion en tenseur de typetorch.Tensor. Voir MuseSparkProcessor.call() pour plus de détails. - padding_cache (
MuseSparkAudioConv1dPaddingCache, facultatif) — Cache pour le bourrage dans les couches de convolution afin de maintenir l'état entre les blocs de flux.
Retourne
BaseModelOutput ou tuple(torch.Tensor)
Un BaseModelOutput ou un tuple de
torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers
éléments en fonction de la configuration (MuseSparkConfig) et des entrées.
La méthode forward du modèle MuseSparkAudioModel redéfinit la méthode spéciale __call__.
Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance
Moduleplutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.
last_hidden_state (
torch.Tensorde forme(batch_size, sequence_length, hidden_size)) — Séquence d'états cachés à la sortie de la dernière couche du modèle.hidden_states (
tuple(torch.Tensor), facultatif, renvoyé lorsqueoutput_hidden_states=Trueest passé ou lorsqueconfig.output_hidden_states=True) — Tuple detorch.Tensor(un pour la sortie des embeddings, si le modèle possède une couche d’embedding, + un pour la sortie de chaque couche) de forme(batch_size, sequence_length, hidden_size).États cachés du modèle à la sortie de chaque couche, ainsi que les sorties d'incorporation initiales facultatives.
attentions (
tuple(torch.Tensor), facultatif, renvoyé lorsqueoutput_attentions=Trueest passé ou lorsqueconfig.output_attentions=True) — Tuple detorch.Tensor(un par couche) de forme(batch_size, num_heads, sequence_length, sequence_length).Poids des attentions après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.
MuseSparkModel
classe transformers.MuseSparkModel
< source >( config: MuseSparkConfig )
Paramètres
- config (MuseSparkConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.
Le modèle Muse Spark brut, produisant des états cachés bruts sans aucune tête spécifique au sommet.
Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)
Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.
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)
Paramètres
- input_ids (
torch.LongTensorde forme(batch_size, sequence_length), facultatif) — Indices des jetons de la séquence d'entrée dans le vocabulaire. Le bourrage (padding) sera ignoré par défaut.Les indices peuvent être obtenus à l'aide de AutoTokenizer. Consultez PreTrainedTokenizer.encode() et PreTrainedTokenizer.call() pour plus de détails.
- attention_mask (
torch.Tensorde forme(batch_size, sequence_length), facultatif) — Masque pour éviter d'appliquer l'attention aux indices des jetons de bourrage. Les valeurs du masque sont choisies dans[0, 1]:- 1 pour les jetons qui ne sont pas masqués,
- 0 pour les jetons masqués.
- position_ids (
torch.LongTensorde forme(batch_size, sequence_length), facultatif) — Indices des positions des jetons de chaque séquence d'entrée dans les embeddings de position. Sélectionnés dans l'intervalle[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, facultatif) — États cachés précalculés (clés et valeurs dans les blocs d'auto-attention et d'attention croisée) qui peuvent être utilisés pour accélérer le décodage séquentiel. Cela consiste généralement en lapast_key_valuesretournée par le modèle à une étape antérieure du décodage, lorsqueuse_cache=Trueouconfig.use_cache=True.Seule une instance de Cache est autorisée en entrée, consultez notre guide du cache kv. Si aucun
past_key_valuesn'est transmis, DynamicCache sera initialisé par défaut.Le modèle produira le même format de cache qui est fourni en entrée.
Si
past_key_valuessont utilisés, l’utilisateur doit fournir uniquement lesinput_idsnon traités (ceux pour lesquels les états de clés et de valeurs passées n’ont pas été fournis à ce modèle) de forme(batch_size, unprocessed_length)au lieu de tous lesinput_idsde forme(batch_size, sequence_length). - inputs_embeds (
torch.Tensorde forme(batch_size, sequence_length, hidden_size), facultatif) — Facultativement, au lieu de passerinput_ids, vous pouvez choisir de passer directement une représentation intégrée. Cela est utile si vous souhaitez un meilleur contrôle sur la manière de convertir les indicesinput_idsen vecteurs associés que la matrice de recherche d’intégration interne du modèle. - use_cache (
bool, facultatif) — Si défini surTrue, les états clé-valeurpast_key_valuessont renvoyés et peuvent être utilisés pour accélérer le décodage (voirpast_key_values). - pixel_values (
torch.Tensorde forme(batch_size, num_channels, image_size, image_size), facultatif) — Les tenseurs correspondant aux images d’entrée. Les valeurs de pixels peuvent être obtenues à l’aide de MuseGlimmerImageProcessor. Voir MuseGlimmerImageProcessor.call() pour plus de détails (MuseSparkProcessor utilise MuseGlimmerImageProcessor pour le traitement des images). - image_grid_thw (
torch.LongTensorde forme(num_images, 3), facultatif) — La dimension temporelle, la hauteur et la largeur de la forme des caractéristiques de chaque image dans le LLM. - pixel_values_videos (
torch.Tensorde forme(batch_size, num_frames, num_channels, frame_size, frame_size), facultatif) — Les tenseurs correspondant à la vidéo d’entrée. Les valeurs de pixels pour les vidéos peuvent être obtenues à l’aide de MuseGlimmerVideoProcessor. Voir MuseGlimmerVideoProcessor.call() pour plus de détails (MuseSparkProcessor utilise MuseGlimmerVideoProcessor pour le traitement des vidéos). - video_grid_thw (
torch.LongTensorde forme(num_videos, 3), facultatif) — La dimension temporelle, la hauteur et la largeur de la forme des caractéristiques de chaque vidéo dans le LLM. - input_values (
torch.Tensorde forme(batch_size, sequence_length), facultatif) — Valeurs flottantes de la forme d’onde brute de l’entrée audio. Les valeurs peuvent être obtenues en chargeant un fichier audio.flacou.wavdans un tableau de typelist[float], unnumpy.ndarrayou untorch.Tensor, par exemple via la bibliothèque torchcodec (pip install torchcodec) ou la bibliothèque soundfile (pip install soundfile). Pour préparer le tableau eninput_values, il faut utiliser AutoProcessor pour le bourrage (padding) et la conversion en tenseur de typetorch.Tensor. Voir MuseSparkProcessor.call() pour plus de détails. - input_values_mask (
torch.Tensorde forme(batch_size, num_samples), facultatif) — Indique quelles entrées deinput_valuescorrespondent à de l’audio réel plutôt qu’à du bourrage, tel que généré par MuseSparkFeatureExtractor. Requis lors du groupement de clips de longueurs différentes. - mm_encoder_outputs (
dict[str, ~modeling_outputs.BaseModelOutputWithPooling], facultatif) — Dictionnaire dont les clés sont les modalités prises en charge et les valeurs sont les sorties encodées pour cette modalité. Chaque sortie encodée est un tuple composé de (pooler_output, facultatif :last_hidden_states, facultatif :hidden_states, facultatif :attentions)pooler_outputde forme(batch_size, sequence_length, hidden_size), facultatif) est une séquence de fonctions multimodales de l'encodeur fusionnées dans les embeddings de texte.
Retourne
MuseSparkModelOutputWithPast ou tuple(torch.Tensor)
Un MuseSparkModelOutputWithPast ou un tuple de
torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers
éléments en fonction de la configuration (MuseSparkConfig) et des entrées.
La méthode forward du MuseSparkModel redéfinit la méthode spéciale __call__.
Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance
Moduleplutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.
last_hidden_state (
torch.Tensorde forme(batch_size, sequence_length, hidden_size)) — Séquence d'états cachés à la sortie de la dernière couche du modèle.Si
past_key_valuesest utilisé, seule la dernière hidden-state des séquences de forme(batch_size, 1, hidden_size)est renvoyée.past_key_values (
Cache, facultatif, renvoyé lorsqueuse_cache=Trueest passé ou lorsqueconfig.use_cache=True) — Il s’agit d’une instance de Cache. Pour plus de détails, consultez notre guide sur le cache kv.Contient des états cachés précalculés (clés et valeurs dans les blocs d'auto-attention et, le cas échéant, si
config.is_encoder_decoder=True, dans les blocs d'attention croisée) qui peuvent être utilisés (voir l'entréepast_key_values) pour accélérer le décodage séquentiel.hidden_states (
tuple(torch.Tensor), facultatif, renvoyé lorsqueoutput_hidden_states=Trueest passé ou lorsqueconfig.output_hidden_states=True) — Tuple detorch.Tensor(un pour la sortie des embeddings, si le modèle possède une couche d’embedding, + un pour la sortie de chaque couche) de forme(batch_size, sequence_length, hidden_size).États cachés du modèle à la sortie de chaque couche, ainsi que les sorties d'incorporation initiales facultatives.
attentions (
tuple(torch.Tensor), facultatif, renvoyé lorsqueoutput_attentions=Trueest passé ou lorsqueconfig.output_attentions=True) — Tuple detorch.Tensor(un par couche) de forme(batch_size, num_heads, sequence_length, sequence_length).Poids des attentions après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.
image_hidden_states (
torch.Tensor, facultatif) — Untorch.Tensorde taille(batch_size, num_images, sequence_length, hidden_size). image_hidden_states du modèle produit par l’encodeur visuel et après projection de l’état caché final.router_logits (
tuple[torch.Tensor], facultatif, renvoyé lorsqueoutput_router_logits=Trueest passé ou lorsqueconfig.add_router_probs=True) — Tuple detorch.Tensor(un par couche) de forme(batch_size, sequence_length, num_experts).Logits du routeur du modèle, utiles pour calculer la perte auxiliaire des modèles Mixture of Experts.
Exemple :
>>> 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
classe transformers.MuseSparkForConditionalGeneration
< source >( config: MuseSparkConfig )
Paramètres
- config (MuseSparkConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.
Le modèle Muse Spark pour la génération de jetons conditionnée sur d'autres modalités (par exemple, la génération texte-image-vers-texte).
Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)
Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.
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)
Paramètres
- input_ids (
torch.LongTensorde forme(batch_size, sequence_length), facultatif) — Indices des jetons de la séquence d'entrée dans le vocabulaire. Le bourrage (padding) sera ignoré par défaut.Les indices peuvent être obtenus à l'aide de AutoTokenizer. Consultez PreTrainedTokenizer.encode() et PreTrainedTokenizer.call() pour plus de détails.
- pixel_values (
torch.Tensorde forme(batch_size, num_channels, image_size, image_size), facultatif) — Les tenseurs correspondant aux images d’entrée. Les valeurs de pixels peuvent être obtenues à l’aide de MuseGlimmerImageProcessor. Voir MuseGlimmerImageProcessor.call() pour plus de détails (MuseSparkProcessor utilise MuseGlimmerImageProcessor pour le traitement des images). - image_grid_thw (
torch.LongTensorde forme(num_images, 3), facultatif) — La dimension temporelle, la hauteur et la largeur de la forme des caractéristiques de chaque image dans le LLM. - pixel_values_videos (
torch.Tensorde forme(batch_size, num_frames, num_channels, frame_size, frame_size), facultatif) — Les tenseurs correspondant à la vidéo d’entrée. Les valeurs de pixels pour les vidéos peuvent être obtenues à l’aide de MuseGlimmerVideoProcessor. Voir MuseGlimmerVideoProcessor.call() pour plus de détails (MuseSparkProcessor utilise MuseGlimmerVideoProcessor pour le traitement des vidéos). - video_grid_thw (
torch.LongTensorde forme(num_videos, 3), facultatif) — La dimension temporelle, la hauteur et la largeur de la forme des caractéristiques de chaque vidéo dans le LLM. - input_values (
torch.Tensorde forme(batch_size, sequence_length), facultatif) — Valeurs flottantes de la forme d’onde brute de l’entrée audio. Les valeurs peuvent être obtenues en chargeant un fichier audio.flacou.wavdans un tableau de typelist[float], unnumpy.ndarrayou untorch.Tensor, par exemple via la bibliothèque torchcodec (pip install torchcodec) ou la bibliothèque soundfile (pip install soundfile). Pour préparer le tableau eninput_values, il faut utiliser AutoProcessor pour le bourrage (padding) et la conversion en tenseur de typetorch.Tensor. Voir MuseSparkProcessor.call() pour plus de détails. - input_values_mask (
torch.Tensorde forme(batch_size, num_samples), facultatif) — Indique quelles entrées deinput_valuescorrespondent à de l’audio réel plutôt qu’à du bourrage, tel que généré par MuseSparkFeatureExtractor. Requis lors du groupement de clips de longueurs différentes. - attention_mask (
torch.Tensorde forme(batch_size, sequence_length), facultatif) — Masque pour éviter d'appliquer l'attention aux indices des jetons de bourrage. Les valeurs du masque sont choisies dans[0, 1]:- 1 pour les jetons qui ne sont pas masqués,
- 0 pour les jetons masqués.
- position_ids (
torch.LongTensorde forme(batch_size, sequence_length), facultatif) — Indices des positions des jetons de chaque séquence d'entrée dans les embeddings de position. Sélectionnés dans l'intervalle[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, facultatif) — États cachés précalculés (clés et valeurs dans les blocs d'auto-attention et d'attention croisée) qui peuvent être utilisés pour accélérer le décodage séquentiel. Cela consiste généralement en lapast_key_valuesretournée par le modèle à une étape antérieure du décodage, lorsqueuse_cache=Trueouconfig.use_cache=True.Seule une instance de Cache est autorisée en entrée, consultez notre guide du cache kv. Si aucun
past_key_valuesn'est transmis, DynamicCache sera initialisé par défaut.Le modèle produira le même format de cache qui est fourni en entrée.
Si
past_key_valuessont utilisés, l’utilisateur doit fournir uniquement lesinput_idsnon traités (ceux pour lesquels les états de clés et de valeurs passées n’ont pas été fournis à ce modèle) de forme(batch_size, unprocessed_length)au lieu de tous lesinput_idsde forme(batch_size, sequence_length). - inputs_embeds (
torch.Tensorde forme(batch_size, sequence_length, hidden_size), facultatif) — Facultativement, au lieu de passerinput_ids, vous pouvez choisir de passer directement une représentation intégrée. Cela est utile si vous souhaitez un meilleur contrôle sur la manière de convertir les indicesinput_idsen vecteurs associés que la matrice de recherche d’intégration interne du modèle. - labels (
torch.LongTensorde forme(batch_size, sequence_length), facultatif) — Étiquettes pour le calcul de la perte de modélisation de langage masquée. Les indices doivent être dans[0, ..., config.vocab_size]ou -100 (voir la docstring deinput_ids). Les jetons dont l'indice est défini sur-100sont ignorés (masqués), la perte n'est calculée que pour les jetons dont l'étiquette est dans[0, ..., config.vocab_size]. - use_cache (
bool, facultatif) — Si défini surTrue, les états clé-valeurpast_key_valuessont renvoyés et peuvent être utilisés pour accélérer le décodage (voirpast_key_values). - logits_to_keep (
Union[int, torch.Tensor], facultatif, valeur par défaut0) — Si c'est unint, calcule les logits pour leslogits_to_keepderniers jetons. Si0, calcule les logits pour tous lesinput_ids(cas particulier). Seuls les logits du dernier jeton sont nécessaires pour la génération, et les calculer uniquement pour ce jeton peut économiser de la mémoire, ce qui devient assez significatif pour les séquences longues ou les tailles de vocabulaire importantes. Si c'est untorch.Tensor, il doit être 1D et correspondre aux indices à conserver dans la dimension de la longueur de la séquence. Cela est utile lors de l'utilisation du format de tenseurs empilés (une seule dimension pour le lot et la longueur de la séquence). - mm_encoder_outputs (
dict[str, ~modeling_outputs.BaseModelOutputWithPooling], facultatif) — Dictionnaire dont les clés sont les modalités prises en charge et les valeurs sont les sorties encodées pour cette modalité. Chaque sortie encodée est un tuple composé de (pooler_output, facultatif :last_hidden_states, facultatif :hidden_states, facultatif :attentions)pooler_outputde forme(batch_size, sequence_length, hidden_size), facultatif) est une séquence de fonctions multimodales de l'encodeur fusionnées dans les embeddings de texte.
Retourne
MuseSparkCausalLMOutputWithPast ou tuple(torch.Tensor)
Un MuseSparkCausalLMOutputWithPast ou un tuple de
torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers
éléments en fonction de la configuration (MuseSparkConfig) et des entrées.
La méthode forward de MuseSparkForConditionalGeneration redéfinit la méthode spéciale __call__.
Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance
Moduleplutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.
loss (
torch.Tensorde forme(1,), facultatif, renvoyé lorsquelabelsest fourni) — Perte de modélisation du langage (pour la prédiction du jeton suivant).logits (
torch.Tensorde forme(batch_size, sequence_length, config.text_config.vocab_size)) — Scores de prédiction de la tête de modélisation du langage (scores pour chaque jeton du vocabulaire avant SoftMax).past_key_values (
Cache, facultatif, renvoyé lorsqueuse_cache=Trueest passé ou lorsqueconfig.use_cache=True) — Il s’agit d’une instance de Cache. Pour plus de détails, consultez notre guide sur le cache kv.Contient des états cachés précalculés (clés et valeurs dans les blocs d'auto-attention) qui peuvent être utilisés (voir l'entrée
past_key_values) pour accélérer le décodage séquentiel.hidden_states (
tuple[torch.Tensor], facultatif, renvoyé lorsqueoutput_hidden_states=Trueest passé ou lorsqueconfig.output_hidden_states=True) — Tuple detorch.Tensor(un pour la sortie des embeddings, si le modèle possède une couche d’embedding, + un pour la sortie de chaque couche) de forme(batch_size, sequence_length, hidden_size).États cachés du modèle à la sortie de chaque couche, ainsi que les sorties d'incorporation initiales facultatives.
attentions (
tuple[torch.Tensor], facultatif, renvoyé lorsqueoutput_attentions=Trueest passé ou lorsqueconfig.output_attentions=True) — Tuple detorch.Tensor(un par couche) de forme(batch_size, num_heads, sequence_length, sequence_length).Poids des attentions après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.
image_hidden_states (
torch.Tensor, facultatif) — Untorch.Tensorde taille(batch_size, num_images, sequence_length, hidden_size). image_hidden_states du modèle produit par l'encodeur visuel après projection de l'état caché final.router_logits (
tuple[torch.Tensor], facultatif, renvoyé lorsqueoutput_router_logits=Trueest passé ou lorsqueconfig.add_router_probs=True) — Tuple detorch.Tensor(un par couche) de forme(batch_size, sequence_length, num_experts).Logits du routeur du modèle, utiles pour calculer la perte auxiliaire des modèles Mixture of Experts.
Exemple :
>>> 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.
...