Transformers documentation
SeamlessM4T-v2
Ce modèle a été publié dans les papiers HF le 2023-12-08 et a été contribué à Hugging Face Transformers le 2023-11-30.
SeamlessM4T-v2
Aperçu
Le modèle SeamlessM4T-v2 a été proposé dans Seamless: Multilingual Expressive and Streaming Speech Translation par l'équipe Seamless Communication de Meta AI.
SeamlessM4T-v2 est une collection de modèles conçus pour offrir une traduction de haute qualité, permettant aux personnes issues de différentes communautés linguistiques de communiquer sans effort par la voix et par le texte. Il s'agit d'une amélioration par rapport à la version précédente. Pour plus de détails sur les différences entre v1 et v2, reportez-vous à la section Différence avec SeamlessM4T-v1.
SeamlessM4T-v2 permet de réaliser plusieurs tâches sans recourir à des modèles distincts :
- Traduction de la parole à la parole (S2ST)
- Traduction de la parole en texte (S2TT)
- Traduction de texte en parole (T2ST)
- Traduction texte vers texte (T2TT)
- Reconnaissance automatique de la parole (ASR)
SeamlessM4Tv2Model peut effectuer toutes les tâches ci-dessus, mais chaque tâche dispose également de son propre sous-modèle dédié.
L'abstract de l'article est le suivant :
Les récentes avancées en matière de traduction automatique de la parole ont considérablement élargi la couverture linguistique, amélioré les capacités multimodales et permis une large gamme de tâches et de fonctionnalités. Cela dit, les systèmes de traduction automatique de la parole à grande échelle actuels manquent de fonctionnalités clés qui aident à rendre la communication médiatisée par la machine aussi fluide que le dialogue humain. Dans ce travail, nous présentons une famille de modèles qui permettent des traductions expressives et multilingues de bout en bout en mode streaming. Tout d'abord, nous contribuons à une version améliorée du modèle massivement multilingue et multimodal SeamlessM4T, à savoir SeamlessM4T v2. Ce nouveau modèle, intégrant un cadre UnitY2 mis à jour, a été entraîné sur davantage de données de langues à faibles ressources. La version étendue de SeamlessAlign ajoute 114 800 heures de données alignées automatiquement, pour un total de 76 langues. SeamlessM4T v2 fournit la base sur laquelle sont initiés nos deux modèles les plus récents, SeamlessExpressive et SeamlessStreaming. SeamlessExpressive permet une traduction qui préserve les styles vocaux et la prosodie. Par rapport aux travaux antérieurs en recherche sur la parole expressive, notre travail aborde certains aspects sous-explorés de la prosodie, tels que le débit de parole et les pauses, tout en préservant le style de la voix. Quant à SeamlessStreaming, notre modèle exploite le mécanisme Efficient Monotonic Multihead Attention (EMMA) pour générer des traductions cibles à faible latence sans attendre la fin des énoncés sources. En tant que premier du genre, SeamlessStreaming permet la traduction simultanée de la parole vers la parole/texte pour plusieurs langues sources et cibles. Pour évaluer les performances de ces modèles, nous avons combiné des métriques automatiques nouvelles et des versions modifiées de métriques existantes afin d'évaluer la prosodie, la latence et la robustesse. Pour les évaluations humaines, nous avons adapté des protocoles existants adaptés à la mesure des attributs les plus pertinents en matière de préservation du sens, de naturalité et d'expressivité. Pour garantir que nos modèles puissent être utilisés de manière sûre et responsable, nous avons mis en œuvre le premier effort de red-teaming connu pour la traduction automatique multimodale, un système de détection et d'atténuation de la toxicité ajoutée, une évaluation systématique du biais de genre et un mécanisme de filigrane localisé inaudible conçu pour atténuer l'impact des deepfakes. En conséquence, nous réunissons les composants majeurs de SeamlessExpressive et SeamlessStreaming pour former Seamless, le premier système publiquement disponible qui débloque la communication interlinguistique expressive en temps réel. En somme, Seamless nous offre un aperçu essentiel des fondations techniques nécessaires pour transformer le Traducteur Universel de la Parole d'un concept de science-fiction en une technologie réelle. Enfin, les contributions de ce travail, y compris les modèles, le code et un détecteur de filigrane, sont publiés publiquement et accessibles au lien ci-dessous.
Utilisation
Dans l’exemple suivant, nous chargeons un échantillon audio en arabe et un échantillon de texte en anglais, puis nous les convertissons en parole russe et en texte français.
Tout d'abord, chargez le processeur et un point de contrôle du modèle :
from transformers import AutoProcessor, SeamlessM4Tv2Model
processor = AutoProcessor.from_pretrained("facebook/seamless-m4t-v2-large")
model = SeamlessM4Tv2Model.from_pretrained("facebook/seamless-m4t-v2-large", device_map="auto")Vous pouvez utiliser ce modèle de manière transparente sur du texte ou sur de l’audio, afin de générer du texte traduit ou de l’audio traduit.
Voici comment utiliser le processeur pour traiter le texte et l'audio :
# let's load an audio sample from an Arabic speech corpus
from datasets import load_dataset
dataset = load_dataset("halabi2016/arabic_speech_corpus", split="test", streaming=True)
audio_sample = next(iter(dataset))["audio"]
# now, process it
audio_inputs = processor(audio=audio_sample["array"], return_tensors="pt").to(model.device)
# now, process some English text as well
text_inputs = processor(text = "Hello, my dog is cute", src_lang="eng", return_tensors="pt").to(model.device)Traitement de la parole
SeamlessM4Tv2Model peut générer du texte ou de la parole de manière transparente avec peu ou pas de modifications. Ciblons la traduction vocale en russe :
audio_array_from_text = model.generate(**text_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()
audio_array_from_audio = model.generate(**audio_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()Avec essentiellement le même code, j’ai traduit du texte anglais et de la parole arabe en échantillons de parole russe.
Texte
De même, vous pouvez générer du texte traduit à partir de fichiers audio ou de texte avec le même modèle. Il vous suffit de passer generate_speech=False à SeamlessM4Tv2Model.generate().
Cette fois, traduisons en français.
# from audio
output_tokens = model.generate(**audio_inputs, tgt_lang="fra", generate_speech=False)
translated_text_from_audio = processor.decode(output_tokens[0].tolist()[0], skip_special_tokens=True)
# from text
output_tokens = model.generate(**text_inputs, tgt_lang="fra", generate_speech=False)
translated_text_from_text = processor.decode(output_tokens[0].tolist()[0], skip_special_tokens=True)Astuces
1. Utiliser des modèles dédiés
SeamlessM4Tv2Model est le modèle de niveau supérieur de Transformers pour générer de la parole et du texte, mais vous pouvez également utiliser des modèles dédiés qui exécutent la tâche sans composants supplémentaires, réduisant ainsi l'empreinte mémoire. Par exemple, vous pouvez remplacer le extrait de code de génération audio-vers-audio par le modèle dédié à la tâche S2ST, le reste du code est exactement le même :
from transformers import SeamlessM4Tv2ForSpeechToSpeech
model = SeamlessM4Tv2ForSpeechToSpeech.from_pretrained("facebook/seamless-m4t-v2-large", device_map="auto")Vous pouvez également remplacer l'extrait de génération texte-vers-texte par le modèle dédié à la tâche T2TT, il vous suffit de supprimer generate_speech=False.
from transformers import SeamlessM4Tv2ForTextToText
model = SeamlessM4Tv2ForTextToText.from_pretrained("facebook/seamless-m4t-v2-large", device_map="auto")N'hésitez pas à essayer également SeamlessM4Tv2ForSpeechToText et SeamlessM4Tv2ForTextToSpeech.
2. Modifier l'identité du locuteur
Vous avez la possibilité de changer l’orateur utilisé pour la synthèse vocale à l’aide de l’argument speaker_id. Certains speaker_id fonctionnent mieux que d’autres pour certaines langues !
3. Modifier la stratégie de génération
Vous pouvez utiliser différentes stratégies de génération pour la génération de texte, par exemple .generate(input_ids=input_ids, text_num_beams=4, text_do_sample=True), qui effectuera un décodage par beam-search multinomial sur le modèle de texte. Notez que la génération de parole ne prend en charge que le décodage glouton - par défaut - ou l'échantillonnage multinomial, qui peut être utilisé avec, par exemple, .generate(..., speech_do_sample=True, speech_temperature=0.6).
4. Générer la voix et le texte en même temps
Utilisez return_intermediate_token_ids=True avec SeamlessM4Tv2Model pour retourner à la fois la parole et le texte !
Architecture du modèle
SeamlessM4T-v2 dispose d'une architecture polyvalente qui gère de manière fluide la génération séquentielle de texte et de parole. Cette configuration comprend deux modèles séquence-à-séquence (seq2seq). Le premier modèle traduit la modalité d'entrée en texte traduit, tandis que le second modèle génère des jetons de parole, appelés « unit tokens », à partir du texte traduit.
Chaque modalité dispose de son propre encodeur doté d'une architecture unique. De plus, pour la sortie vocale, un vocoder inspiré de l'architecture HiFi-GAN est placé au-dessus du second modèle seq2seq.
Différence avec SeamlessM4T-v1
L'architecture de cette nouvelle version diffère de la première à quelques égards :
Améliorations du modèle de deuxième passe
Le second modèle seq2seq, nommé modèle text-to-unit, est désormais non auto-régressif, ce qui signifie qu'il calcule les unités en un seul passage avant. Cet accomplissement est rendu possible par :
- l'utilisation de embeddings au niveau des caractères, c'est-à-dire que chaque caractère du texte traduit prédit possède ses propres embeddings, qui sont ensuite utilisés pour prédire les jetons unitaires.
- l'utilisation d'un prédicteur de durée intermédiaire, qui prédit la durée de la parole au niveau caractère sur le texte traduit prédit.
- l'utilisation d'un nouveau décodeur texte-vers-unité combinant convolutions et auto-attention pour traiter des contextes plus longs.
Différence dans l'encodeur de la parole
L'encodeur audio, utilisé lors du processus de génération de la première passe pour prédire le texte traduit, diffère principalement de l'encodeur audio précédent par ces mécanismes :
- l'utilisation d'un masque d'attention par blocs pour empêcher l'attention entre les blocs, garantissant ainsi que chaque position ne porte attention qu'aux positions de son propre bloc et d'un nombre fixe de blocs précédents.
- l’utilisation d’embeddings de position relative qui ne prend en compte que la distance entre les éléments de la séquence plutôt que les positions absolues. Veuillez consulter Self-Attention with Relative Position Representations (Shaw et al.) pour plus de détails.
- l'utilisation d'une convolution causale en profondeur plutôt que d'une convolution non causale.
Processus de génération
Voici comment fonctionne le processus de génération :
- Le texte ou la parole en entrée est traité par son encodeur spécifique.
- Un décodeur génère des jetons de texte dans la langue souhaitée.
- Si la génération de parole est requise, le second modèle seq2seq génère des jetons d’unité de manière non auto-régressive.
- Ces jetons unitaires sont ensuite transmis au vocoder final pour produire la parole réelle.
Ce modèle a été contribué par ylacombe. Le code d’origine est disponible ici.
SeamlessM4Tv2Model
classe transformers.SeamlessM4Tv2Model
< source >( config: SeamlessM4Tv2Configcurrent_modality = 'text' )
Paramètres
- config (SeamlessM4Tv2Config) — 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.
- current_modality (
str, facultatif, par défaut"text") — Modalité par défaut. Utilisée pour initialiser le modèle.
Le modèle transformer original de SeamlessM4Tv2, utilisable pour toutes les tâches disponibles (S2ST, S2TT, T2TT, T2ST).
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.
generate
< source >( input_ids: typing.Optional[torch.Tensor] = Noneinput_features: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespeaker_id: int | None = 0generate_speech: bool | None = True**kwargs ) → Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor], ModelOutput]
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. Les indices peuvent être obtenus à l'aide de SeamlessM4TTokenizer ou de SeamlessM4TProcessor. Consultez PreTrainedTokenizer.encode() et PreTrainedTokenizer.call() pour plus de détails. Que sont les identifiants d'entrée ?Les indices peuvent être obtenus à l'aide de SeamlessM4TTokenizer ou de SeamlessM4TProcessor. Consultez PreTrainedTokenizer.encode() et PreTrainedTokenizer.call() pour plus de détails.
- input_features (
torch.Tensorde forme(batch_size, sequence_length, num_banks), facultatif) — Fonctions audio d’entrée. Elles doivent être renvoyées par la classe SeamlessM4TFeatureExtractor ou la classe SeamlessM4TProcessor. Voir SeamlessM4TFeatureExtractor.call() pour plus de détails. - return_intermediate_token_ids (
bool, facultatif) — SiTrue, renvoie également le texte généré intermédiaire et les jetons d’unité. Définissez-le surTruesi vous souhaitez également obtenir le texte traduit en plus de l’audio. Notez que sigenerate_speech=False, ce paramètre est ignoré et les jetons de texte sont renvoyés. - tgt_lang (
str, facultatif) — La langue à utiliser comme langue cible pour la traduction. - speaker_id (
int, facultatif, valeur par défaut : 0) — L'identifiant du locuteur utilisé pour la synthèse vocale. Doit être inférieur àconfig.vocoder_num_spkrs. - generate_speech (
bool, facultatif, valeur par défautTrue) — SiFalse, ne renvoie que les jetons de texte et ne génère pas de parole. - kwargs (facultatif) —
Dictionnaire restant d'arguments par mot-clé qui sera transmis à GenerationMixin.generate(). Les arguments par mot-clé sont de deux types : sans préfixe, ils sont passés en tant que **kwargs à la méthode generate de chaque sous-modèle, à l'exception de decoder_input_ids qui n'est transmise que par les composants texte. Avec un préfixe text_ ou speech_, ils sont transmis respectivement à la méthode generate du modèle texte et du modèle vocal. Ils ont la priorité sur les mots-clés sans préfixe. Cela signifie que vous pouvez, par exemple, spécifier une stratégie de génération pour une génération mais pas pour l'autre.
- Sans préfixe, ils seront transmis en tant que
**kwargsà la méthodegeneratede chaque sous-modèle, à l'exception dedecoder_input_ids, qui ne sera transmise que par les composants texte. - Avec un préfixe text_ ou speech_, ils seront respectivement les entrées de la méthode
generatedu modèle de texte et du modèle de parole. Ils ont la priorité sur les mots-clés sans préfixe.
Cela signifie que vous pouvez, par exemple, spécifier une stratégie de génération pour une génération mais pas pour l’autre.
- Sans préfixe, ils seront transmis en tant que
Retourne
Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor], ModelOutput]
- Si
generate_speechetreturn_intermediate_token_ids, renvoieSeamlessM4Tv2GenerationOutput. - Si
generate_speechest utilisé et quereturn_intermediate_token_idsn'est pas défini, renvoie un tuple composé des formes d'onde de forme(batch_size, sequence_length)et dewaveform_lengths, qui indique la longueur de chaque échantillon. - Si
generate_speech=False, la méthode renvoie unModelOutput.
Génère des identifiants de jetons traduits et/ou des formes d’onde audio traduites.
Cette méthode appelle successivement la fonction
.generatede deux sous-modèles différents. Vous pouvez spécifier des arguments par mot-clé à deux niveaux différents : des arguments généraux qui seront transmis aux deux modèles, ou des arguments préfixés qui seront transmis à l'un d'entre eux.Par exemple, l’appel de
.generate(input_ids=input_ids, num_beams=4, speech_do_sample=True)effectuera successivement un décodage par beam-search sur le modèle de texte, puis un échantillonnage multinomial par beam-search sur le modèle de parole.Pour un aperçu des stratégies de génération et des exemples de code, consultez le guide suivant.
SeamlessM4Tv2ForTextToSpeech
classe transformers.SeamlessM4Tv2ForTextToSpeech
< source >( config: SeamlessM4Tv2Config )
Paramètres
- config (SeamlessM4Tv2Config) — 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 transformer text-to-speech SeamlessM4Tv2, utilisable pour le T2ST.
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.
generate
< source >( input_ids: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespeaker_id: int | None = 0**kwargs ) → Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]
Paramètres
- input_ids (
torch.LongTensorde forme(batch_size, sequence_length)) — Indices des jetons de la séquence d'entrée dans le vocabulaire. Les indices peuvent être obtenus à l'aide de SeamlessM4TTokenizer ou SeamlessM4TProcessor. Consultez PreTrainedTokenizer.encode() et PreTrainedTokenizer.call() pour plus de détails. Que sont les identifiants d'entrée ?Les indices peuvent être obtenus à l'aide de SeamlessM4TTokenizer ou de SeamlessM4TProcessor. Consultez PreTrainedTokenizer.encode() et PreTrainedTokenizer.call() pour plus de détails.
- return_intermediate_token_ids (
bool, facultatif) — SiTrue, renvoie également le texte généré intermédiaire et les jetons unitaires. Définissez cette valeur surTruesi vous souhaitez également obtenir le texte traduit en plus de l'audio. - tgt_lang (
str, facultatif) — La langue à utiliser comme langue cible pour la traduction. - speaker_id (
int, facultatif, valeur par défaut : 0) — L'identifiant du locuteur utilisé pour la synthèse vocale. Doit être inférieur àconfig.vocoder_num_spkrs. - kwargs (facultatif) —
Dictionnaire restant d'arguments par mot-clé qui sera transmis à GenerationMixin.generate(). Les arguments par mot-clé sont de deux types : sans préfixe, ils sont passés en tant que **kwargs à la méthode generate de chaque sous-modèle, à l'exception de decoder_input_ids qui n'est transmise que par les composants texte. Avec un préfixe text_ ou speech_, ils sont transmis respectivement à la méthode generate du modèle texte et du modèle vocal. Ils ont la priorité sur les mots-clés sans préfixe. Cela signifie que vous pouvez, par exemple, spécifier une stratégie de génération pour une génération mais pas pour l'autre.
- Sans préfixe, ils seront transmis en tant que
**kwargsà la méthodegeneratede chaque sous-modèle, à l'exception dedecoder_input_ids, qui ne sera transmise que par les composants texte. - Avec un préfixe text_ ou speech_, ils seront respectivement les entrées de la méthode
generatedu modèle de texte et du modèle de parole. Ils ont la priorité sur les mots-clés sans préfixe.
Cela signifie que vous pouvez, par exemple, spécifier une stratégie de génération pour une génération mais pas pour l’autre.
- Sans préfixe, ils seront transmis en tant que
Retourne
Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]
- Si
return_intermediate_token_idsest défini, renvoieSeamlessM4Tv2GenerationOutput. - Si
return_intermediate_token_idsn'est pas défini, renvoie un tuple composé des formes d'onde de forme(batch_size, sequence_length)et dewaveform_lengths, qui indique la longueur de chaque échantillon.
Génère des formes d'onde audio traduites.
Cette méthode appelle successivement la fonction
.generatede deux sous-modèles différents. Vous pouvez spécifier des arguments par mot-clé à deux niveaux différents : des arguments généraux qui seront transmis aux deux modèles, ou des arguments préfixés qui seront transmis à l'un d'entre eux.Par exemple, l’appel de
.generate(input_ids, num_beams=4, speech_do_sample=True)exécute successivement un décodage par beam-search sur le modèle de texte, puis un échantillonnage multinomial par beam-search sur le modèle de parole.Pour un aperçu des stratégies de génération et des exemples de code, consultez le guide suivant.
SeamlessM4Tv2ForSpeechToSpeech
classe transformers.SeamlessM4Tv2ForSpeechToSpeech
< source >( config: SeamlessM4Tv2Config )
Paramètres
- config (SeamlessM4Tv2Config) — 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 transformer speech-to-speech SeamlessM4Tv2 qui peut être utilisé pour le S2ST.
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.
generate
< source >( input_features: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespeaker_id: int | None = 0**kwargs ) → Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]
Paramètres
- input_features (
torch.Tensorde forme(batch_size, sequence_length, num_banks)) — Fonctions audio d'entrée. Elles doivent être renvoyées par la classe SeamlessM4TFeatureExtractor ou la classe SeamlessM4TProcessor. Voir SeamlessM4TFeatureExtractor.call() pour plus de détails. - return_intermediate_token_ids (
bool, facultatif) — SiTrue, renvoie également le texte généré intermédiaire et les jetons unitaires. Définissez cette valeur surTruesi vous souhaitez également obtenir le texte traduit en plus de l'audio. - tgt_lang (
str, facultatif) — La langue à utiliser comme langue cible pour la traduction. - speaker_id (
int, facultatif, valeur par défaut : 0) — L'identifiant du locuteur utilisé pour la synthèse vocale. Doit être inférieur àconfig.vocoder_num_spkrs. - kwargs (facultatif) —
Dictionnaire restant d'arguments par mot-clé qui sera transmis à GenerationMixin.generate(). Les arguments par mot-clé sont de deux types : sans préfixe, ils sont passés en tant que **kwargs à la méthode generate de chaque sous-modèle, à l'exception de decoder_input_ids qui n'est transmise que par les composants texte. Avec un préfixe text_ ou speech_, ils sont transmis respectivement à la méthode generate du modèle texte et du modèle vocal. Ils ont la priorité sur les mots-clés sans préfixe. Cela signifie que vous pouvez, par exemple, spécifier une stratégie de génération pour une génération mais pas pour l'autre.
- Sans préfixe, ils seront transmis en tant que
**kwargsà la méthodegeneratede chaque sous-modèle, à l'exception dedecoder_input_ids, qui ne sera transmise que par les composants texte. - Avec un préfixe text_ ou speech_, ils seront respectivement les entrées de la méthode
generatedu modèle de texte et du modèle de parole. Ils ont la priorité sur les mots-clés sans préfixe.
Cela signifie que vous pouvez, par exemple, spécifier une stratégie de génération pour une génération mais pas pour l’autre.
- Sans préfixe, ils seront transmis en tant que
Retourne
Union[SeamlessM4Tv2GenerationOutput, tuple[Tensor]]
- Si
return_intermediate_token_idsest défini, renvoieSeamlessM4Tv2GenerationOutput. - Si
return_intermediate_token_idsn'est pas défini, renvoie un tuple composé des formes d'onde de forme(batch_size, sequence_length)et dewaveform_lengths, qui indique la longueur de chaque échantillon.
Génère des formes d'onde audio traduites.
Cette méthode appelle successivement la fonction
.generatede deux sous-modèles différents. Vous pouvez spécifier des arguments par mot-clé à deux niveaux différents : des arguments généraux qui seront transmis aux deux modèles, ou des arguments préfixés qui seront transmis à l'un d'entre eux.Par exemple, l’appel de
.generate(input_features, num_beams=4, speech_do_sample=True)exécute successivement un décodage par beam-search sur le modèle de texte, puis un échantillonnage multinomial par beam-search sur le modèle de parole.Pour un aperçu des stratégies de génération et des exemples de code, consultez le guide suivant.
SeamlessM4Tv2ForTextToText
classe transformers.SeamlessM4Tv2ForTextToText
< source >( config: SeamlessM4Tv2Config )
Paramètres
- config (SeamlessM4Tv2Config) — 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 transformer text-to-text SeamlessM4Tv2 qui peut être utilisé pour le T2TT.
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] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput 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.
- decoder_input_ids (
torch.LongTensorde forme(batch_size, target_sequence_length), facultatif) — Indices des jetons de la séquence d'entrée du décodeur dans le vocabulaire. Les indices peuvent être obtenus à l'aide d'AutoTokenizer. Consultez PreTrainedTokenizer.encode() et PreTrainedTokenizer.call() pour plus de détails. Que sont les IDs d'entrée du décodeur ? Bart utilise eos_token_id comme jeton de départ pour la génération de decoder_input_ids. Si past_key_values est utilisé, il est facultatif de n'entrer que les derniers decoder_input_ids (voir past_key_values). Pour l'entraînement à la traduction et à la résumation, decoder_input_ids doit être fourni. Si aucun decoder_input_ids n'est fourni, le modèle créera ce tenseur en décalant input_ids vers la droite pour la pré-formation par débruitage, conformément à l'article.Les indices peuvent être obtenus à l'aide de AutoTokenizer. Consultez PreTrainedTokenizer.encode() et PreTrainedTokenizer.call() pour plus de détails.
Quelles sont les identifiants d'entrée du décodeur ?
Bart utilise
eos_token_idcomme jeton de départ pour la génération dedecoder_input_ids. Sipast_key_valuesest utilisé, il est facultatif de n’entrer que le dernierdecoder_input_ids(voirpast_key_values).Pour l’entraînement à la traduction et à la résumée,
decoder_input_idsdoit être fourni. Si aucundecoder_input_idsn’est fourni, le modèle crée ce tenseur en décalantinput_idsvers la droite pour la pré-formation par débruitage, conformément à l’article. - decoder_attention_mask (
torch.LongTensorde forme(batch_size, target_sequence_length), facultatif) — Comportement par défaut : générer un tenseur qui ignore les jetons de remplissage dansdecoder_input_ids. Un masque causal sera également utilisé par défaut. Si vous souhaitez modifier le comportement de remplissage, vous devez lire modeling_bart._prepare_decoder_attention_mask et le modifier selon vos besoins. Consultez la figure 1 de l'article pour plus d'informations sur la stratégie par défaut.Si vous souhaitez modifier le comportement du padding, vous devez lire
modeling_bart._prepare_decoder_attention_masket l’adapter à vos besoins. Consultez la figure 1 de l’article pour plus d’informations sur la stratégie par défaut. - encoder_outputs (
tuple[tuple[torch.Tensor]], facultatif) — Le tuple est composé de (last_hidden_state, facultatif :hidden_states, facultatif :attentions)last_hidden_statede forme(batch_size, sequence_length, hidden_size), facultatif) est une séquence d'états cachés à la sortie de la dernière couche de l'encodeur. Utilisé dans l'attention croisée du décodeur. - 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) — Facultatif, au lieu de passerinput_idsvous pouvez choisir de passer directement une représentation intégrée. Cela est utile si vous souhaitez un meilleur contrôle sur la conversion desinput_idsindices en 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[-100, 0, ..., config.vocab_size](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]. - decoder_inputs_embeds (
torch.Tensorde forme(batch_size, target_sequence_length, hidden_size), facultatif) — Facultativement, au lieu de passerdecoder_input_idsvous pouvez choisir de passer directement une représentation intégrée. Sipast_key_valuesest utilisé, facultativement, seules les dernièresdecoder_inputs_embedsdoivent être entrées (voirpast_key_values). Cela est utile si vous souhaitez un meilleur contrôle sur la conversion desdecoder_input_idsindices en vecteurs associés que la matrice de recherche d'intégration interne du modèle.Si
decoder_input_idsetdecoder_inputs_embedssont tous deux non définis,decoder_inputs_embedsprend la valeur deinputs_embeds. - 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).
Retourne
Seq2SeqLMOutput ou tuple(torch.Tensor)
Un Seq2SeqLMOutput 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 (SeamlessM4Tv2Config) et des entrées.
La méthode forward de SeamlessM4Tv2ForTextToText 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.logits (
torch.Tensorde forme(batch_size, sequence_length, 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 (
EncoderDecoderCache, facultatif, renvoyé lorsqueuse_cache=Trueest passé ou lorsqueconfig.use_cache=True) — Il s’agit d’une instance de EncoderDecoderCache. 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 dans les blocs d'attention croisée) qui peuvent être utilisés (voir l'entrée
past_key_values) pour accélérer le décodage séquentiel.decoder_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 décodeur à la sortie de chaque couche, plus les sorties de l'intégration initiale.
decoder_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 d'attention du décodeur, après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.
cross_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 d'attention de la couche d'attention croisée du décodeur, après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'attention croisée.
encoder_last_hidden_state (
torch.Tensorde forme(batch_size, sequence_length, hidden_size), facultatif) — Séquence d'états cachés à la sortie de la dernière couche de l'encodeur du modèle.encoder_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 de l'encodeur à la sortie de chaque couche, plus les sorties des embeddings initiaux.
encoder_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 d'attention de l'encodeur, après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.
generate
< source >( input_ids = Nonetgt_lang = Nonegeneration_config = Nonelogits_processor = Nonestopping_criteria = Noneprefix_allowed_tokens_fn = Nonesynced_gpus = False**kwargs ) → ModelOutput or torch.LongTensor
Paramètres
- input_ids (
torch.Tensorde forme variable selon la modalité, facultatif) — Indices des jetons de la séquence d'entrée dans le vocabulaire.Les indices peuvent être obtenus à l'aide de SeamlessM4TTokenizer ou de SeamlessM4TProcessor. Consultez PreTrainedTokenizer.encode() et PreTrainedTokenizer.call() pour plus de détails.
- tgt_lang (
str, facultatif) — La langue à utiliser comme langue cible pour la traduction. - generation_config (
~generation.GenerationConfig, facultatif) — La configuration de génération à utiliser comme paramétrage de base pour l’appel de génération. Les**kwargstransmis à generate qui correspondent aux attributs degeneration_configles remplaceront. Sigeneration_confign’est pas fourni, la valeur par défaut sera utilisée, avec la priorité de chargement suivante : 1) depuis le fichier modèlegeneration_config.json, s’il existe ; 2) depuis la configuration du modèle. Veuillez noter que les paramètres non spécifiés hériteront des valeurs par défaut de GenerationConfig, dont la documentation doit être consultée pour paramétrer la génération. - logits_processor (
LogitsProcessorList, facultatif) — Processeurs de logits personnalisés qui complètent les processeurs de logits par défaut construits à partir des arguments et de la configuration de génération. Si un processeur de logits est transmis qui a déjà été créé avec les arguments ou une configuration de génération, une erreur est levée. Cette fonctionnalité est destinée aux utilisateurs avancés. - stopping_criteria (
StoppingCriteriaList, facultatif) — Critères d’arrêt personnalisés qui complètent les critères d’arrêt par défaut construits à partir des arguments et d’une configuration de génération. Si un critère d’arrêt est transmis qui a déjà été créé à partir des arguments ou d’une configuration de génération, une erreur est levée. Cette fonctionnalité est destinée aux utilisateurs avancés. - prefix_allowed_tokens_fn (
Callable[[int, torch.Tensor], list[int]], facultatif) — Si fourni, cette fonction contraint la recherche par faisceau aux jetons autorisés uniquement à chaque étape. Si non fourni, aucune contrainte n'est appliquée. Cette fonction prend 2 arguments : l'identifiant du lotbatch_idetinput_ids. Elle doit retourner une liste des jetons autorisés pour l'étape de génération suivante, conditionnée par l'identifiant du lotbatch_idet les jetons générés précédemmentinputs_ids. Cet argument est utile pour la génération contrainte conditionnée par le préfixe, comme décrit dans Autoregressive Entity Retrieval. - synced_gpus (
bool, facultatif, valeur par défautFalse) — Indique s'il faut continuer à exécuter la boucle while jusqu'à max_length (nécessaire pour éviter les blocages avecFullyShardedDataParallelet DeepSpeed ZeRO Stage 3). - kwargs (
dict[str, Any], facultatif) — Paramétrage ad hoc degenerate_configet/ou kwargs supplémentaires spécifiques au modèle qui seront transmis à la fonctionforwarddu modèle.
Retourne
ModelOutput ou torch.LongTensor
Un ModelOutput (si return_dict_in_generate=True
ou lorsque config.return_dict_in_generate=True) ou un torch.Tensor. Les types
ModelOutput possibles sont :
Génère des séquences d'identifiants de jetons.
La plupart des paramètres de contrôle de la génération sont définis dans
generation_configqui, s'il n'est pas transmis, sera défini sur la configuration de génération par défaut du modèle. Vous pouvez remplacer n'importe quelgeneration_configen transmettant les paramètres correspondants à generate(), par exemple.generate(inputs, num_beams=4, do_sample=True).Pour un aperçu des stratégies de génération et des exemples de code, consultez le guide suivant.
SeamlessM4Tv2ForSpeechToText
classe transformers.SeamlessM4Tv2ForSpeechToText
< source >( config: SeamlessM4Tv2Config )
Paramètres
- config (SeamlessM4Tv2Config) — 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 transformer de transcription vocale en texte SeamlessM4Tv2 peut être utilisé pour la traduction vocale en texte (S2TT).
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_features: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.Tensor)
Paramètres
- input_features (
torch.Tensorde forme(batch_size, sequence_length, num_banks)) — Fonctions audio d'entrée. Elles doivent être renvoyées par la classe SeamlessM4TFeatureExtractor ou la classe SeamlessM4TProcessor. Voir SeamlessM4TFeatureExtractor.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.
- decoder_input_ids (
torch.LongTensorde forme(batch_size, target_sequence_length), facultatif) — Indices des jetons de la séquence d'entrée du décodeur dans le vocabulaire. Les indices peuvent être obtenus à l'aide d'AutoTokenizer. Consultez PreTrainedTokenizer.encode() et PreTrainedTokenizer.call() pour plus de détails. Que sont les IDs d'entrée du décodeur ? Bart utilise eos_token_id comme jeton de départ pour la génération de decoder_input_ids. Si past_key_values est utilisé, il est facultatif de n'entrer que les derniers decoder_input_ids (voir past_key_values). Pour l'entraînement à la traduction et à la résumation, decoder_input_ids doit être fourni. Si aucun decoder_input_ids n'est fourni, le modèle créera ce tenseur en décalant input_ids vers la droite pour la pré-formation par débruitage, conformément à l'article.Les indices peuvent être obtenus à l'aide de AutoTokenizer. Consultez PreTrainedTokenizer.encode() et PreTrainedTokenizer.call() pour plus de détails.
Quelles sont les identifiants d'entrée du décodeur ?
Bart utilise
eos_token_idcomme jeton de départ pour la génération dedecoder_input_ids. Sipast_key_valuesest utilisé, il est facultatif de n’entrer que le dernierdecoder_input_ids(voirpast_key_values).Pour l’entraînement à la traduction et à la résumée,
decoder_input_idsdoit être fourni. Si aucundecoder_input_idsn’est fourni, le modèle crée ce tenseur en décalantinput_idsvers la droite pour la pré-formation par débruitage, conformément à l’article. - decoder_attention_mask (
torch.LongTensorde forme(batch_size, target_sequence_length), facultatif) — Comportement par défaut : générer un tenseur qui ignore les jetons de remplissage dansdecoder_input_ids. Un masque causal sera également utilisé par défaut. Si vous souhaitez modifier le comportement de remplissage, vous devez lire modeling_bart._prepare_decoder_attention_mask et le modifier selon vos besoins. Consultez la figure 1 de l'article pour plus d'informations sur la stratégie par défaut.Si vous souhaitez modifier le comportement du padding, vous devez lire
modeling_bart._prepare_decoder_attention_masket l’adapter à vos besoins. Consultez la figure 1 de l’article pour plus d’informations sur la stratégie par défaut. - encoder_outputs (
tuple[tuple[torch.Tensor]], facultatif) — Le tuple est composé de (last_hidden_state, facultatif :hidden_states, facultatif :attentions)last_hidden_statede forme(batch_size, sequence_length, hidden_size), facultatif) est une séquence d'états cachés à la sortie de la dernière couche de l'encodeur. Utilisé dans l'attention croisée du décodeur. - 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) — Facultatif, au lieu de passerinput_idsvous pouvez choisir de passer directement une représentation intégrée. Cela est utile si vous souhaitez un meilleur contrôle sur la conversion desinput_idsindices en 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[-100, 0, ..., config.vocab_size](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]. - decoder_inputs_embeds (
torch.Tensorde forme(batch_size, target_sequence_length, hidden_size), facultatif) — Facultativement, au lieu de passerdecoder_input_idsvous pouvez choisir de passer directement une représentation intégrée. Sipast_key_valuesest utilisé, facultativement, seules les dernièresdecoder_inputs_embedsdoivent être entrées (voirpast_key_values). Cela est utile si vous souhaitez un meilleur contrôle sur la conversion desdecoder_input_idsindices en vecteurs associés que la matrice de recherche d'intégration interne du modèle.Si
decoder_input_idsetdecoder_inputs_embedssont tous deux non définis,decoder_inputs_embedsprend la valeur deinputs_embeds. - 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).
Retourne
Seq2SeqLMOutput ou tuple(torch.Tensor)
Un Seq2SeqLMOutput 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 (SeamlessM4Tv2Config) et des entrées.
La méthode forward de SeamlessM4Tv2ForSpeechToText 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.logits (
torch.Tensorde forme(batch_size, sequence_length, 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 (
EncoderDecoderCache, facultatif, renvoyé lorsqueuse_cache=Trueest passé ou lorsqueconfig.use_cache=True) — Il s’agit d’une instance de EncoderDecoderCache. 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 dans les blocs d'attention croisée) qui peuvent être utilisés (voir l'entrée
past_key_values) pour accélérer le décodage séquentiel.decoder_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 décodeur à la sortie de chaque couche, plus les sorties de l'intégration initiale.
decoder_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 d'attention du décodeur, après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.
cross_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 d'attention de la couche d'attention croisée du décodeur, après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'attention croisée.
encoder_last_hidden_state (
torch.Tensorde forme(batch_size, sequence_length, hidden_size), facultatif) — Séquence d'états cachés à la sortie de la dernière couche de l'encodeur du modèle.encoder_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 de l'encodeur à la sortie de chaque couche, plus les sorties des embeddings initiaux.
encoder_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 d'attention de l'encodeur, après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.
Exemple :
>>> from transformers import AutoProcessor, SeamlessM4Tv2ForSpeechToText
>>> from datasets import load_dataset
>>> import torch
>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate
>>> processor = AutoProcessor.from_pretrained("facebook/hf-seamless-m4t-medium")
>>> model = SeamlessM4Tv2ForSpeechToText.from_pretrained("facebook/hf-seamless-m4t-medium")
>>> # audio file is decoded on the fly
>>> inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_ids = torch.argmax(logits, dim=-1)
>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids)
>>> transcription[0]
...
>>> inputs["labels"] = processor(text=dataset[0]["text"], return_tensors="pt").input_ids
>>> # compute loss
>>> loss = model(**inputs).loss
>>> round(loss.item(), 2)
...generate
< source >( input_features = Nonetgt_lang = Nonegeneration_config = Nonelogits_processor = Nonestopping_criteria = Noneprefix_allowed_tokens_fn = Nonesynced_gpus = False**kwargs ) → ModelOutput or torch.LongTensor
Paramètres
- input_features (
torch.Tensorde forme(batch_size, sequence_length, num_banks)) — Fonctions audio d'entrée. Elles doivent être renvoyées par la classe SeamlessM4TFeatureExtractor ou la classe SeamlessM4TProcessor. Voir SeamlessM4TFeatureExtractor.call() pour plus de détails. - tgt_lang (
str, facultatif) — La langue à utiliser comme langue cible pour la traduction. - generation_config (
~generation.GenerationConfig, facultatif) — La configuration de génération à utiliser comme paramétrage de base pour l’appel de génération. Les**kwargstransmis à generate qui correspondent aux attributs degeneration_configles remplaceront. Sigeneration_confign’est pas fourni, la valeur par défaut sera utilisée, avec la priorité de chargement suivante : 1) depuis le fichier modèlegeneration_config.json, s’il existe ; 2) depuis la configuration du modèle. Veuillez noter que les paramètres non spécifiés hériteront des valeurs par défaut de GenerationConfig, dont la documentation doit être consultée pour paramétrer la génération. - logits_processor (
LogitsProcessorList, facultatif) — Processeurs de logits personnalisés qui complètent les processeurs de logits par défaut construits à partir des arguments et de la configuration de génération. Si un processeur de logits est transmis qui a déjà été créé avec les arguments ou une configuration de génération, une erreur est levée. Cette fonctionnalité est destinée aux utilisateurs avancés. - stopping_criteria (
StoppingCriteriaList, facultatif) — Critères d’arrêt personnalisés qui complètent les critères d’arrêt par défaut construits à partir des arguments et d’une configuration de génération. Si un critère d’arrêt est transmis qui a déjà été créé à partir des arguments ou d’une configuration de génération, une erreur est levée. Cette fonctionnalité est destinée aux utilisateurs avancés. - prefix_allowed_tokens_fn (
Callable[[int, torch.Tensor], list[int]], facultatif) — Si fourni, cette fonction contraint la recherche par faisceau aux jetons autorisés uniquement à chaque étape. Si non fourni, aucune contrainte n'est appliquée. Cette fonction prend 2 arguments : l'identifiant du lotbatch_idetinput_ids. Elle doit retourner une liste des jetons autorisés pour l'étape de génération suivante, conditionnée par l'identifiant du lotbatch_idet les jetons générés précédemmentinputs_ids. Cet argument est utile pour la génération contrainte conditionnée par le préfixe, comme décrit dans Autoregressive Entity Retrieval. - synced_gpus (
bool, facultatif, valeur par défautFalse) — Indique s'il faut continuer à exécuter la boucle while jusqu'à max_length (nécessaire pour éviter les blocages avecFullyShardedDataParallelet DeepSpeed ZeRO Stage 3). - kwargs (
dict[str, Any], facultatif) — Paramétrage ad hoc degenerate_configet/ou kwargs supplémentaires spécifiques au modèle qui seront transmis à la fonctionforwarddu modèle.
Retourne
ModelOutput ou torch.LongTensor
Un ModelOutput (si return_dict_in_generate=True
ou lorsque config.return_dict_in_generate=True) ou un torch.Tensor. Les types
ModelOutput possibles sont :
Génère des séquences d'identifiants de jetons.
La plupart des paramètres de contrôle de la génération sont définis dans
generation_configqui, s'il n'est pas transmis, sera défini sur la configuration de génération par défaut du modèle. Vous pouvez remplacer n'importe quelgeneration_configen transmettant les paramètres correspondants à generate(), par exemple.generate(inputs, num_beams=4, do_sample=True).Pour un aperçu des stratégies de génération et des exemples de code, consultez le guide suivant.
SeamlessM4Tv2Config
classe transformers.SeamlessM4Tv2Config
< 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truevocab_size: int = 256102t2u_vocab_size: int = 10082char_vocab_size: int = 10943hidden_size: int = 1024initializer_range: float = 0.02layer_norm_eps: float = 1e-05use_cache: bool = Truemax_position_embeddings: int = 4096encoder_layerdrop: float | int = 0.05decoder_layerdrop: float | int = 0.05activation_function: str = 'relu'dropout: float | int = 0.1attention_dropout: float | int = 0.1activation_dropout: float | int = 0.0scale_embedding: bool = Trueencoder_layers: int = 24encoder_ffn_dim: int = 8192encoder_attention_heads: int = 16decoder_layers: int = 24decoder_ffn_dim: int = 8192decoder_attention_heads: int = 16decoder_start_token_id: int = 3max_new_tokens: int | None = 256pad_token_id: int | None = 0bos_token_id: int | None = 2eos_token_id: int | list[int] | None = 3speech_encoder_layers: int = 24speech_encoder_attention_heads: int = 16speech_encoder_intermediate_size: int = 4096speech_encoder_hidden_act: str = 'swish'speech_encoder_dropout: float | int = 0.0add_adapter: bool = Truespeech_encoder_layerdrop: float | int = 0.1feature_projection_input_dim: int = 160adaptor_kernel_size: int = 8adaptor_stride: int = 8adaptor_dropout: float | int = 0.1num_adapter_layers: int = 1position_embeddings_type: str = 'relative_key'conv_depthwise_kernel_size: int = 31left_max_position_embeddings: int = 64right_max_position_embeddings: int = 8speech_encoder_chunk_size: int = 20000speech_encoder_left_chunk_num: int = 128t2u_bos_token_id: int | None = 0t2u_pad_token_id: int | None = 1t2u_eos_token_id: int | list[int] | None = 2t2u_encoder_layers: int = 6t2u_encoder_ffn_dim: int = 8192t2u_encoder_attention_heads: int = 16t2u_decoder_layers: int = 6t2u_decoder_ffn_dim: int = 8192t2u_decoder_attention_heads: int = 16t2u_max_position_embeddings: int = 4096t2u_variance_predictor_embed_dim: int = 1024t2u_variance_predictor_hidden_dim: int = 256t2u_variance_predictor_kernel_size: int = 3t2u_variance_pred_dropout: float | int = 0.5sampling_rate: int = 16000upsample_initial_channel: int = 512upsample_rates: list[int] | tuple[int, ...] = (5, 4, 4, 2, 2)upsample_kernel_sizes: list[int] | tuple[int, ...] = (11, 8, 8, 4, 4)resblock_kernel_sizes: list[int] | tuple[int, ...] = (3, 7, 11)resblock_dilation_sizes: list | tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5))leaky_relu_slope: float = 0.1unit_hifi_gan_vocab_size: int = 10000unit_embed_dim: int = 1280lang_embed_dim: int = 256spkr_embed_dim: int = 256vocoder_num_langs: int = 36vocoder_num_spkrs: int = 200variance_predictor_kernel_size: int = 3var_pred_dropout: float | int = 0.5vocoder_offset: int = 4tie_word_embeddings: bool = True )
Paramètres
- is_encoder_decoder (
bool, facultatif, valeur par défautTrue) — Indique si le modèle est utilisé comme encodeur/décodeur ou non. - vocab_size (
int, facultatif, par défaut256102) — Taille du vocabulaire du modèle. Définit le nombre de jetons différents qui peuvent être représentés parinput_ids. - t2u_vocab_size (
int, facultatif, valeur par défaut 10082) — Taille du vocabulaire unitaire du modèle SeamlessM4Tv2. Définit le nombre de « unit tokens » différents qui peuvent être représentés par lesinputs_idspassés lors de l'appel du sous-modèle Text-To-Units de ~SeamlessM4Tv2Model, ~SeamlessM4Tv2ForSpeechToSpeech ou ~SeamlessM4Tv2ForTextToSpeech. - char_vocab_size (
int, facultatif, valeur par défaut 10943) — Taille du vocabulaire de caractères du modèle SeamlessM4Tv2. Définit le nombre de jetons de caractères différents qui peuvent être représentés par leschar_inputs_idspassés lors de l'appel du sous-modèle Text-To-Units de ~SeamlessM4Tv2Model, ~SeamlessM4Tv2ForSpeechToSpeech ou ~SeamlessM4Tv2ForTextToSpeech. - hidden_size (
int, facultatif, par défaut1024) — Dimension des représentations cachées. - initializer_range (
float, facultatif, par défaut0.02) — L'écart-type de la truncated_normal_initializer utilisé pour initialiser toutes les matrices de poids. - layer_norm_eps (
float, facultatif, valeur par défaut1e-05) — L'épsilon utilisé par les couches de normalisation de couche. - 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. - max_position_embeddings (
int, facultatif, par défaut4096) — La longueur de séquence maximale avec laquelle ce modèle pourrait être utilisé. - encoder_layerdrop (
Union[float, int], facultatif, valeur par défaut0.05) — Probabilité de LayerDrop pour l'encodeur. Voir l'article [LayerDrop](voir https://huggingface.co/papers/1909.11556) pour plus de détails. - decoder_layerdrop (
Union[float, int], facultatif, valeur par défaut0.05) — Probabilité de LayerDrop pour le décodeur. Voir l’article [LayerDrop](voir https://huggingface.co/papers/1909.11556) pour plus de détails. - activation_function (
str, facultatif, par défautrelu) — La fonction d'activation non linéaire (fonction ou chaîne de caractères) dans le décodeur. Par exemple,"gelu","relu","silu", etc. - dropout (
Union[float, int], facultatif, par défaut0.1) — Le taux appliqué à toutes les couches de dropout. - attention_dropout (
Union[float, int], facultatif, valeur par défaut0.1) — Le taux de dropout appliqué aux probabilités d'attention. - activation_dropout (
Union[float, int], facultatif, valeur par défaut0.0) — Le taux de dropout appliqué aux activations à l'intérieur de la couche entièrement connectée. - scale_embedding (
bool, facultatif, par défautTrue) — Indique s'il faut mettre à l'échelle les embeddings en les divisant par sqrt(d_model). - encoder_layers (
int, facultatif, valeur par défaut24) — Nombre de couches cachées dans l'encodeur Transformer. Utilise la même valeur quenum_layerssi non défini. - encoder_ffn_dim (
int, facultatif, valeur par défaut8192) — Dimension de la couche « intermédiaire » (souvent appelée couche feed-forward) de l'encodeur. - encoder_attention_heads (
int, facultatif, valeur par défaut16) — Nombre de têtes d'attention pour chaque couche d'attention dans l'encodeur Transformer. - decoder_layers (
int, facultatif, valeur par défaut24) — Nombre de couches cachées dans le décodeur Transformer. Utilise la même valeur quenum_layerssi non défini. - decoder_ffn_dim (
int, facultatif, valeur par défaut8192) — Dimension de la couche « intermédiaire » (souvent appelée couche feed-forward) du décodeur. - decoder_attention_heads (
int, facultatif, valeur par défaut16) — Nombre de têtes d'attention pour chaque couche d'attention du décodeur Transformer. - decoder_start_token_id (
int, facultatif, valeur par défaut3) — Si un modèle encodeur-décodeur commence le décodage avec un jeton différent debos, l’identifiant de ce jeton. - max_new_tokens (
int, facultatif, valeur par défaut 256) — Nombre maximal de jetons de texte à générer, en ignorant le nombre de jetons du prompt. - pad_token_id (
int, facultatif, par défaut0) — Identifiant du jeton utilisé pour le bourrage dans le vocabulaire. - bos_token_id (
int, facultatif, par défaut2) — Identifiant du jeton utilisé pour le début de flux dans le vocabulaire. - eos_token_id (
Union[int, list[int]], facultatif, par défaut3) — Identifiant du jeton utilisé pour la fin de flux dans le vocabulaire. - speech_encoder_layers (
int, facultatif, par défaut 24) — Nombre de couches cachées dans l'encodeur vocal Transformer. - speech_encoder_attention_heads (
int, facultatif, valeur par défaut : 16) — Nombre de têtes d'attention pour chaque couche d'attention dans l'encodeur vocal Transformer. - speech_encoder_intermediate_size (
int, facultatif, valeur par défaut : 4096) — Dimension de la couche « intermédiaire » (c.-à-d. à propagation avant) du codeur vocal Transformer. - speech_encoder_hidden_act (
stroufunction, facultatif, valeur par défaut"swish") — Fonction d'activation non linéaire (fonction ou chaîne de caractères) dans l'encodeur vocal. Si c'est une chaîne de caractères,"gelu","relu","selu","swish"et"gelu_new"sont pris en charge. - speech_encoder_dropout (
float, facultatif, valeur par défaut 0.0) — Probabilité de dropout pour toutes les couches de l'encodeur vocal. - add_adapter (
bool, facultatif, par défautTrue) — Ajoute une couche d'adaptateur au-dessus de l'encodeur audio. - speech_encoder_layerdrop (
float, facultatif, valeur par défaut 0.1) — Probabilité de LayerDrop pour l'encodeur de la parole. Consultez l'article [LayerDrop](voir https://huggingface.co/papers/1909.11556) pour plus de détails. - feature_projection_input_dim (
int, facultatif, valeur par défaut 160) — Dimension d'entrée de la projection des caractéristiques d'entrée de l'encodeur audio, c'est-à-dire la dimension après le traitement des audios d'entrée avec SeamlessM4TFeatureExtractor. - adaptor_kernel_size (
int, facultatif, valeur par défaut : 8) — Taille du noyau des couches de convolution du réseau adaptateur. N'est pertinent que siadd_adapter is True. - adaptor_stride (
int, facultatif, valeur par défaut : 8) — Pas des couches de convolution dans le réseau adaptateur. Ne concerne que le cas oùadd_adapter is True. - adaptor_dropout (
float, facultatif, valeur par défaut 0.1) — Probabilité de dropout pour toutes les couches de l'adaptateur vocal. - num_adapter_layers (
int, facultatif, valeur par défaut 1) — Nombre de couches de convolution à utiliser dans le réseau d'adaptateur. Ne concerne que le cas oùadd_adapter is True. - position_embeddings_type (
str, facultatif, par défaut"relative_key") — Peut être spécifié àrelative_key. S'il est laissé àNone, aucun encodage de position relative n'est appliqué. Appliqué uniquement à l'encodeur vocal. Pour plus d'informations sur"relative_key", veuillez consulter Self-Attention with Relative Position Representations (Shaw et al.). - conv_depthwise_kernel_size (
int, facultatif, valeur par défaut : 31) — Taille du noyau de la couche convolutive 1D depthwise dans les blocs Conformer. Appliqué uniquement à l'encodeur audio. - left_max_position_embeddings (
int, facultatif, valeur par défaut : 64) — Valeur de rognage à gauche pour les positions relatives. - right_max_position_embeddings (
int, facultatif, valeur par défaut : 8) — Valeur de rognage à droite pour les positions relatives. - speech_encoder_chunk_size (
int, facultatif, valeur par défaut : 20000) — La taille de chaque bloc d'attention. - speech_encoder_left_chunk_num (
int, facultatif, valeur par défaut : 128) — Nombre de chunks à gauche jusqu'à laquelle la recherche anticipée est autorisée. - t2u_bos_token_id (
int, facultatif, valeur par défaut 0) — L'identifiant du jeton d'unité beginning-of-stream. Appliqué uniquement au modèle seq2seq texte-versus-unité. - t2u_pad_token_id (
int, facultatif, valeur par défaut : 1) — L'identifiant du jeton padding. Appliqué uniquement au modèle seq2seq texte-vers-unité. - t2u_eos_token_id (
int, facultatif, valeur par défaut 2) — L'identifiant du jeton end-of-stream. Appliqué uniquement au modèle seq2seq texte-vers-unité. - t2u_encoder_layers (
int, facultatif, valeur par défaut : 6) — Nombre de couches cachées dans l’encodeur texte-vers-unité Transformer. - t2u_encoder_ffn_dim (
int, facultatif, valeur par défaut : 8192) — Dimension de la couche « intermédiaire » (c.-à-d. feed-forward) dans l’encodeur texte-vers-unité Transformer. - t2u_encoder_attention_heads (
int, facultatif, valeur par défaut : 16) — Nombre de têtes d'attention pour chaque couche d'attention dans l'encodeur texte-vers-unité du Transformer. - t2u_decoder_layers (
int, facultatif, par défaut 6) — Nombre de couches cachées dans le décodeur texte-vers-unité du Transformer. - t2u_decoder_ffn_dim (
int, facultatif, valeur par défaut : 8192) — Dimension de la couche « intermédiaire » (c.-à-d. feed-forward) du décodeur texte-vers-unité Transformer. - t2u_decoder_attention_heads (
int, facultatif, valeur par défaut : 16) — Nombre de têtes d'attention pour chaque couche d'attention du décodeur texte-vers-unité du Transformer. - t2u_max_position_embeddings (
int, facultatif, valeur par défaut : 4096) — La longueur de séquence maximale avec laquelle le composant texte-vers-unité de ce modèle pourrait être utilisé. Il est généralement recommandé de définir cette valeur sur un nombre élevé par précaution (par exemple, 512, 1024 ou 2048). - t2u_variance_predictor_embed_dim (
int, facultatif, valeur par défaut : 1024) — La dimension de projection du prédicteur de durée du composant text-to-unit. - t2u_variance_predictor_hidden_dim (
int, facultatif, valeur par défaut : 256) — Dimension interne du prédicteur de durée du composant text-to-unit. - t2u_variance_predictor_kernel_size (
int, facultatif, valeur par défaut : 3) — Taille du noyau des couches de convolution du prédicteur de durée du modèle text-to-unit. - t2u_variance_pred_dropout (
float, facultatif, valeur par défaut 0,5) — Probabilité de dropout du prédicteur de durée du modèle text-to-unit. - sampling_rate (
int, facultatif, par défaut16000) — La fréquence d'échantillonnage à laquelle les fichiers audio doivent être numérisés, exprimée en hertz (Hz). - upsample_initial_channel (
int, facultatif, valeur par défaut : 512) — Le nombre de canaux d'entrée du réseau d'interpolation (upsampling) hifi-gan. S'applique uniquement au vocoder. - upsample_rates (
tuple[int]oulist[int], facultatif, par défaut[5, 4, 4, 2, 2]) — Un tuple d'entiers définissant le pas de chaque couche de convolution 1D dans le réseau de suréchantillonnage du vocoder. La longueur de upsample_rates définit le nombre de couches de convolution et doit correspondre à la longueur de upsample_kernel_sizes. S'applique uniquement au vocoder. - upsample_kernel_sizes (
tuple[int]oulist[int], facultatif, par défaut[11, 8, 8, 4, 4]) — Un tuple d'entiers définissant la taille du noyau de chaque couche de convolution 1D du réseau de suréchantillonnage du vocoder. La longueur de upsample_kernel_sizes définit le nombre de couches de convolution et doit correspondre à la longueur de upsample_rates. S'applique uniquement au vocoder. - resblock_kernel_sizes (
tuple[int]oulist[int], facultatif, par défaut[3, 7, 11]) — Un tuple d'entiers définissant les tailles de noyau des couches de convolution 1D du vocodeur dans le module de fusion multi-champ réceptif (MRF). S'applique uniquement au vocodeur. - resblock_dilation_sizes (
tuple[tuple[int]]oulist[list[int]], facultatif, par défaut[[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — Un tuple imbriqué d'entiers définissant les taux de dilatation des couches de convolution 1D dilatées du vocodeur dans le module de fusion multi-récepteur (MRF). S'applique uniquement au vocodeur. - leaky_relu_slope (
float, facultatif, valeur par défaut 0.1) — L'angle de la pente négative utilisé par l'activation leaky ReLU dans le vocoder. S'applique uniquement au vocoder. - unit_hifi_gan_vocab_size (
int, facultatif, valeur par défaut 10000) — Taille du vocabulaire du vocoder de SeamlessM4Tv2. Définit le nombre de jetons unitaires distincts qui peuvent être représentés par lesinputs_idspassés lors de l'appel du vocoder de ~SeamlessM4Tv2Model, ~SeamlessM4Tv2ForSpeechToSpeech ou ~SeamlessM4Tv2ForTextToSpeech. - unit_embed_dim (
int, facultatif, valeur par défaut 1280) — Dimension de projection des identifiants d'entrée fournis au vocodeur hifi-gan. S'applique uniquement au vocodeur. - lang_embed_dim (
int, facultatif, par défaut 256) — La dimension de projection de la langue cible transmise au vocodeur hifi-gan. S'applique uniquement au vocodeur. - spkr_embed_dim (
int, facultatif, valeur par défaut : 256) — La dimension de projection de l'identifiant de locuteur transmis au vocodeur hifi-gan. S'applique uniquement au vocodeur. - vocoder_num_langs (
int, facultatif, valeur par défaut : 36) — Nombre de langues prises en charge par le vocoder. Peut différer det2u_num_langs. - vocoder_num_spkrs (
int, facultatif, valeur par défaut : 200) — Nombre d’orateurs pris en charge par le vocodeur. - variance_predictor_kernel_size (
int, facultatif, valeur par défaut : 3) — Taille du noyau du prédicteur de durée. S'applique uniquement au vocodeur. - var_pred_dropout (
float, facultatif, valeur par défaut 0.5) — Probabilité de dropout du prédicteur de durée. S'applique uniquement au vocodeur. - vocoder_offset (
int, facultatif, valeur par défaut : 4) — Décale les identifiants de jetons unitaires de ce nombre pour prendre en compte les jetons de symboles. S'applique uniquement au vocoder. - tie_word_embeddings (
bool, facultatif, par défautTrue) — Indique s'il faut lier les embeddings de poids selon la correspondancetied_weights_keysdu modèle.
Ceci est la classe de configuration destinée à stocker la configuration d'un SeamlessM4Tv2Model. Elle est utilisée pour instancier un modèle Seamless M4T V2 en fonction des arguments spécifiés, en définissant l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle de facebook/hf-seamless-m4t-medium
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.
>>> from transformers import SeamlessM4Tv2Model, SeamlessM4Tv2Config
>>> # Initializing a SeamlessM4Tv2 "" style configuration
>>> configuration = SeamlessM4Tv2Config()
>>> # Initializing a model from the "" style configuration
>>> model = SeamlessM4Tv2Model(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config