Transformers documentation
SeamlessM4T
このモデルは2023年8月22日にHF papersで公開され、2023年10月23日にHugging Face Transformersに貢献されました。
SeamlessM4T
概要
SeamlessM4Tモデルは、Meta AIのSeamless Communicationチームによって、SeamlessM4T — Massively Multilingual & Multimodal Machine Translationの中で提案されました。
これはモデルのversion 1リリースです。更新されたversion 2リリースについては、Seamless M4T v2 docsを参照してください。
SeamlessM4Tは、高品質な翻訳を提供するために設計されたモデルのコレクションです。これにより、異なる言語コミュニティの人々が音声やテキストを通じて、自然にコミュニケーションを取ることができます。
SeamlessM4T は、個別のモデルに依存せずに複数のタスクを可能にします:
- 音声対音声翻訳 (S2ST)
- 音声からテキストへの翻訳(S2TT)
- テキストから音声への翻訳(T2ST)
- テキストからテキストへの翻訳 (T2TT)
- 自動音声認識 (ASR)
SeamlessM4TModel は上記のすべてのタスクを実行できますが、各タスクにはそれぞれ専用のサブモデルが用意されています。
論文の抄録は以下の通りです。
任意の2言語間で音声の翻訳を支援するツール「Babel Fish」を作るには何が必要でしょうか。テキストベースのモデルにおける最近のブレイクスルーにより、機械翻訳の対応言語は200言語を超えていますが、統合型の音声間翻訳モデルは同様の進歩をまだ達成していません。より具体的には、従来の音声間翻訳システムは、翻訳を段階的に実行するカスケード型システムに依存しており、高性能な統合型システムの実現が困難でした。これらの課題に対処するため、私たちは、音声間翻訳、音声からテキストへの翻訳、テキストから音声への翻訳、テキスト間翻訳、最大100言語の自動音声認識をサポートする単一のモデル、SeamlessM4T を紹介します。この構築にあたり、100万時間のオープンな音声データを用いて、w2v-BERT 2.0 で自己教師ありの音声表現を学習しました。その後、自動アラインされた音声翻訳のマルチモーダルコーパスを作成しました。これに人手アノテーションデータと疑似ラベルデータをフィルタリングして組み合わせることで、音声とテキストの両方で英語からおよび英語への翻訳が可能な初の多言語システムを開発しました。FLEURS において、SeamlessM4T は複数のターゲット言語への翻訳で新たな基準を確立し、直接音声からテキストへの翻訳において、従来の SOTA に対して BLEU スコアを20%向上させました。強力なカスケード型モデルと比較すると、SeamlessM4T は、音声からテキストへの翻訳で英語への翻訳品質を1.3 BLEU ポイント、音声間翻訳で2.6 ASR-BLEU ポイント改善しています。頑健性についてテストしたところ、当システムは、現在の SOTA モデルと比較して、音声からテキストへのタスクにおいて、背景ノイズや話者の変動に対して優れた性能を発揮します。さらに重要なのは、SeamlessM4T をジェンダーバイアスと追加された毒性について評価し、翻訳の安全性を評価した点です。最後に、本作業のすべての成果はオープンソース化されており、https://github.com/facebookresearch/seamless_communication でアクセスできます。
使用方法
まず、プロセッサーとモデルのチェックポイントを読み込みます:
from transformers import AutoProcessor, SeamlessM4TModel
processor = AutoProcessor.from_pretrained("facebook/hf-seamless-m4t-medium")
model = SeamlessM4TModel.from_pretrained("facebook/hf-seamless-m4t-medium", device_map="auto")このモデルは、テキストまたはオーディオをシームレスに使用でき、翻訳されたテキストまたは翻訳されたオーディオを生成できます。
プロセッサを使用してテキストとオーディオを処理する方法は以下の通りです。
# 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 test as well
text_inputs = processor(text = "Hello, my dog is cute", src_lang="eng", return_tensors="pt").to(model.device)音声
SeamlessM4TModel は、ほとんど変更を加えずに、シームレスにテキストや音声の生成を行うことができます。ここでは、ロシア語への音声翻訳をターゲットとします。
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()ほぼ同じコードで、英語のテキストとアラビア語の音声からロシア語の音声サンプルを生成しました。
テキスト
同様に、同じモデルを使用して、音声ファイルやテキストから翻訳されたテキストを生成できます。SeamlessM4TModel.generate()にgenerate_speech=Falseを渡すだけです。
今回は、フランス語に翻訳してみます。
# 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)ヒント
1. 専用モデルを使用する
SeamlessM4TModel は、音声とテキストを生成するための Transformers のトップレベルモデルです。ただし、追加のコンポーネントを必要とせずにタスクを実行できる専用モデルを使用することもでき、これによりメモリ使用量を削減できます。 例えば、音声から音声への生成のスニペットを、S2ST タスクに特化したモデルに置き換えることができます。その他のコードは完全に同じです。
from transformers import SeamlessM4TForSpeechToSpeech
model = SeamlessM4TForSpeechToSpeech.from_pretrained("facebook/hf-seamless-m4t-medium", device_map="auto")または、テキストからテキストへの生成スニペットを、T2TTタスクに特化したモデルに置き換えることもできます。その場合、generate_speech=Falseを削除するだけです。
from transformers import SeamlessM4TForTextToText
model = SeamlessM4TForTextToText.from_pretrained("facebook/hf-seamless-m4t-medium", device_map="auto")SeamlessM4TForSpeechToTextやSeamlessM4TForTextToSpeechもぜひ試してみてください。
2. 話者IDを変更する
spkr_id 引数を変更することで、音声合成に使用するスピーカーを変更できます。一部の spkr_id は、他の spkr_id よりも特定の言語でより良い結果をもたらします!
3. 生成戦略を変更する
音声生成とテキスト生成には、それぞれ異なる生成戦略を使用できます。例えば、.generate(input_ids=input_ids, text_num_beams=4, speech_do_sample=True)では、テキストモデルに対してビームサーチデコーディングを、音声モデルに対して多項分布サンプリングを順次実行します。
4. 音声とテキストを同時に生成する
return_intermediate_token_ids=True を SeamlessM4TModel と併用すると、音声とテキストの両方を返すことができます!
モデルアーキテクチャ
SeamlessM4Tは、テキストと音声の逐次的な生成をスムーズに処理する多用途なアーキテクチャを備えています。この構成は、2つのシーケンスツーシーケンス(seq2seq)モデルで構成されています。最初のモデルは入力モーダルを翻訳テキストに変換し、2番目のモデルは翻訳テキストから「ユニットトークン」と呼ばれる音声トークンを生成します。
各モダリティには、独自のアーキテクチャを持つ専用のエンコーダーが用意されています。また、音声出力については、HiFi-GANアーキテクチャに着想を得たボコーダーが、2番目のseq2seqモデルの上に配置されています。
生成プロセスの仕組みは以下の通りです。
- 入力されたテキストまたは音声は、それぞれに対応するエンコーダーによって処理されます。
- デコーダーは、希望する言語のテキストトークンを生成します。
- 音声生成が必要な場合、標準的なエンコーダー-デコーダー構造を持つ2番目のseq2seqモデルがユニットトークンを生成します。
- これらのユニットトークンは、最終的なボコーダーを通過して、実際の音声として生成されます。
このモデルはylacombeによって提供されました。元のコードはこちらで確認できます。
SeamlessM4TModel
クラス transformers.SeamlessM4TModel
< source >( config: SeamlessM4TConfigcurrent_modality = 'text' )
パラメータ
- config (SeamlessM4TConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを確認してください。
- current_modality (
str、省略可、デフォルトは"text") — デフォルトのモダリティ。モデルの初期化に使用されます。
利用可能なすべてのタスク(S2ST、S2TT、T2TT、T2ST)に使用できる、元のSeamlessM4Tモデルのtransformerです。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
generate
< source >( input_ids: typing.Optional[torch.Tensor] = Noneinput_features: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespkr_id: int | None = 0generate_speech: bool | None = True**kwargs ) → Union[SeamlessM4TGenerationOutput, tuple[Tensor], ModelOutput]
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。インデックスは、SeamlessM4TTokenizerまたはSeamlessM4TProcessorを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- input_features (
torch.FloatTensor、形状(batch_size, sequence_length, num_banks)、任意) — 入力音声特徴量です。SeamlessM4TFeatureExtractor クラスまたは SeamlessM4TProcessor クラスによって返されるべきものです。詳細は SeamlessM4TFeatureExtractor.call() を参照してください。 - return_intermediate_token_ids (
bool, 省略可) —Trueの場合、生成された中間テキストとユニットトークンも返します。音声とともに翻訳テキストも取得したい場合は、Trueに設定してください。generate_speech=Falseの場合、このパラメータは無視され、テキストトークンが返されます。 - tgt_lang (
str, 任意) — 翻訳のターゲット言語として使用する言語。 - spkr_id (
int、任意、デフォルトは 0) — 音声合成に使用する話者の ID です。config.vocoder_num_spkrsより小さい値である必要があります。 - generate_speech (
bool、省略可、デフォルトはTrue) —Falseの場合、テキストトークンのみを返し、音声は生成されません。 - kwargs (省略可能) —
残りのキーワード引数の辞書。 GenerationMixin.generate() に渡されます。. キーワード引数は 2 種類あります。
- プレフィックスなしの場合、各サブモデルの
generateメソッドに対して**kwargsとして入力されますが、decoder_input_idsはテキストコンポーネントのみを介して渡されます。 - text_ または speech_ プレフィックスを付けることで、それぞれテキストモデルと音声モデルの
generateメソッドへの入力となります。プレフィックスなしのキーワードよりも優先されます。
つまり、例えば、1つの生成には生成戦略を指定し、もう1つの生成には指定しない、といったことが可能になります。
- プレフィックスなしの場合、各サブモデルの
戻り値
Union[SeamlessM4TGenerationOutput, tuple[Tensor], ModelOutput]
generate_speechとreturn_intermediate_token_idsが指定されている場合、SeamlessM4TGenerationOutputを返します。generate_speechが呼び出され、return_intermediate_token_idsが False の場合、形状(batch_size, sequence_length)の波形と、各サンプルの長さを示すwaveform_lengthsからなるタプルを返します。generate_speech=Falseの場合、ModelOutputが返されます。
翻訳されたトークンIDおよび/または翻訳された音声波形を生成します。
このメソッドは、2つの異なるサブモデルの
.generate関数を順次呼び出します。キーワード引数は2つの異なるレベルで指定できます。両方のモデルに渡される一般的な引数、または片方のモデルにのみ渡されるプレフィックス付きの引数です。例えば、
.generate(input_ids=input_ids, num_beams=4, speech_do_sample=True)を呼び出すと、テキストモデルに対してビームサーチデコーディングを、音声モデルに対して多項分布ビームサーチサンプリングを、それぞれ順次実行します。生成戦略の概要とコード例については、次のガイドを参照してください。
SeamlessM4TForTextToSpeech
class transformers.SeamlessM4TForTextToSpeech
< source >( config: SeamlessM4TConfig )
パラメータ
- config (SeamlessM4TConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを確認してください。
T2STに使用できるテキストから音声への変換用のSeamlessM4Tモデルtransformerです。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
generate
< source >( input_ids: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespkr_id: int | None = 0**kwargs ) → Union[SeamlessM4TGenerationOutput, tuple[Tensor]]
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length)) — 語彙における入力シーケンスのトークンインデックス。インデックスは、SeamlessM4TTokenizerまたはSeamlessM4TProcessorを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- return_intermediate_token_ids (
bool, 省略可) —Trueの場合、生成された中間テキストとユニットトークンも返します。音声とともに翻訳テキストも取得したい場合はTrueに設定してください。 - tgt_lang (
str, 任意) — 翻訳のターゲット言語として使用する言語。 - spkr_id (
int、任意、デフォルトは 0) — 音声合成に使用する話者の ID です。config.vocoder_num_spkrsより小さい値である必要があります。 - kwargs (省略可能) —
残りのキーワード引数の辞書。 GenerationMixin.generate() に渡されます。. キーワード引数は 2 種類あります。
- プレフィックスなしの場合、各サブモデルの
generateメソッドに対して**kwargsとして入力されますが、decoder_input_idsはテキストコンポーネントのみを介して渡されます。 - text_ または speech_ プレフィックスを付けることで、それぞれテキストモデルと音声モデルの
generateメソッドへの入力となります。プレフィックスなしのキーワードよりも優先されます。
つまり、例えば、1つの生成には生成戦略を指定し、もう1つの生成には指定しない、といったことが可能になります。
- プレフィックスなしの場合、各サブモデルの
戻り値
Union[SeamlessM4TGenerationOutput, tuple[Tensor]]
return_intermediate_token_idsが設定されている場合、SeamlessM4TGenerationOutputを返します。return_intermediate_token_idsが False の場合、(batch_size, sequence_length)の形状の波形と、各サンプルの長さを示すwaveform_lengthsからなるタプルを返します。
翻訳された音声波形を生成します。
このメソッドは、2つの異なるサブモデルの
.generate関数を順次呼び出します。キーワード引数は2つの異なるレベルで指定できます。両方のモデルに渡される一般的な引数、または片方のモデルにのみ渡されるプレフィックス付きの引数です。例えば、
.generate(input_ids, num_beams=4, speech_do_sample=True)を呼び出すと、テキストモデルに対してビームサーチデコーディングを、音声モデルに対して多項分布ビームサーチサンプリングを、それぞれ順次実行します。生成戦略の概要とコード例については、次のガイドを参照してください。
SeamlessM4TForSpeechToSpeech
クラス transformers.SeamlessM4TForSpeechToSpeech
< source >( config: SeamlessM4TConfig )
パラメータ
- config (SeamlessM4TConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを確認してください。
S2STに使用できる音声対話用のSeamlessM4Tモデルのtransformerです。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
generate
< source >( input_features: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespkr_id: int | None = 0**kwargs ) → Union[SeamlessM4TGenerationOutput, tuple[Tensor]]
パラメータ
- input_features (
torch.FloatTensor、shape(batch_size, sequence_length, num_banks)) — 入力音声特徴量です。SeamlessM4TFeatureExtractor クラスまたは SeamlessM4TProcessor クラスによって返されるべきです。詳細は SeamlessM4TFeatureExtractor.call() を参照してください。 - return_intermediate_token_ids (
bool, 省略可) —Trueの場合、生成された中間テキストとユニットトークンも返します。音声とともに翻訳テキストも取得したい場合はTrueに設定してください。 - tgt_lang (
str, 任意) — 翻訳のターゲット言語として使用する言語。 - spkr_id (
int、任意、デフォルトは 0) — 音声合成に使用する話者の ID です。config.vocoder_num_spkrsより小さい値である必要があります。 - kwargs (省略可能) —
残りのキーワード引数の辞書。 GenerationMixin.generate() に渡されます。. キーワード引数は 2 種類あります。
- プレフィックスなしの場合、各サブモデルの
generateメソッドに対して**kwargsとして入力されますが、decoder_input_idsはテキストコンポーネントのみを介して渡されます。 - text_ または speech_ プレフィックスを付けることで、それぞれテキストモデルと音声モデルの
generateメソッドへの入力となります。プレフィックスなしのキーワードよりも優先されます。
つまり、例えば、1つの生成には生成戦略を指定し、もう1つの生成には指定しない、といったことが可能になります。
- プレフィックスなしの場合、各サブモデルの
戻り値
Union[SeamlessM4TGenerationOutput, tuple[Tensor]]
return_intermediate_token_idsが設定されている場合、SeamlessM4TGenerationOutputを返します。return_intermediate_token_idsが False の場合、(batch_size, sequence_length)の形状の波形と、各サンプルの長さを示すwaveform_lengthsからなるタプルを返します。
翻訳された音声波形を生成します。
このメソッドは、2つの異なるサブモデルの
.generate関数を順次呼び出します。キーワード引数は2つの異なるレベルで指定できます。両方のモデルに渡される一般的な引数、または片方のモデルにのみ渡されるプレフィックス付きの引数です。例えば、
.generate(input_features, num_beams=4, speech_do_sample=True)を呼び出すと、テキストモデルに対してビームサーチデコーディングを、音声モデルに対して多項分布ビームサーチサンプリングを、順次実行します。生成戦略の概要とコード例については、次のガイドを参照してください。
SeamlessM4TForTextToText
class transformers.SeamlessM4TForTextToText
< source >( config: SeamlessM4TConfig )
パラメータ
- config (SeamlessM4TConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを確認してください。
T2TTに使用できるテキストからテキストへの変換を行うSeamlessM4Tモデルのtransformerです。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
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.FloatTensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.FloatTensor)
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- attention_mask (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。[0, 1]:- マスクされていないトークンに対して1
- マスクされたトークンに対しては 0 です。
- decoder_input_ids (
torch.LongTensorの形状(batch_size, target_sequence_length), 、任意) — 語彙におけるデコーダー入力シーケンスのトークンインデックスです。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
Bart は
decoder_input_idsの生成における開始トークンとしてeos_token_idを使用します。past_key_valuesを使用する場合、任意で最後のdecoder_input_idsだけを入力すれば十分です(past_key_valuesを参照)。翻訳および要約の学習では、
decoder_input_idsを指定する必要があります。decoder_input_idsが指定されない場合、モデルは論文に従い、ノイズ除去事前学習のためにinput_idsを右にシフトしてこのテンソルを生成します。 - decoder_attention_mask (
torch.LongTensorの形状(batch_size, target_sequence_length), 、任意) — デフォルトの動作:decoder_input_ids. 内の pad トークンを無視するテンソルを生成します。デフォルトでは、因果マスクも使用されます。パディングの動作を変更する場合は、パディングの動作を変更したい場合は、
modeling_bart._prepare_decoder_attention_maskを読み、必要に応じて修正してください。デフォルトの戦略に関する詳細は、論文の図1を参照してください。 - encoder_outputs (
tuple[tuple[torch.FloatTensor]], 任意) — (last_hidden_state, 任意:hidden_states, 任意:attentions) のタプルlast_hidden_stateは形状(batch_size, sequence_length, hidden_size)、任意) で、エンコーダーの最終層の出力における隠れ状態のシーケンスです。デコーダーのクロスアテンションで使用されます。 - past_key_values (
~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返したpast_key_valuesであり、use_cache=Trueまたはconfig.use_cache=True.入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。
past_key_valuesが渡されない場合、デフォルトで DynamicCache が初期化されます。モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
past_key_valuesを使用する場合、すべてのinput_ids(形状(batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理のinput_ids(形状(batch_size, unprocessed_length))のみを入力することになります。 - inputs_embeds (
torch.FloatTensorの形状(batch_size, sequence_length, hidden_size), 、任意) — 任意で、input_idsの代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に便利です。labels (
torch.LongTensor、shape(batch_size, sequence_length)、任意): マスクド言語モデリングの損失を計算するためのラベル。インデックスは[-100, 0, ..., config.vocab_size]の範囲である必要があります(input_idsの docstring を参照)。インデックスが-100に設定されたトークンは無視(マスク)され、損失は[0, ..., config.vocab_size]の範囲のラベルを持つトークンに対してのみ計算されます。 - decoder_inputs_embeds (
torch.FloatTensorの形状(batch_size, target_sequence_length, hidden_size), 、任意) — 、任意で、decoder_input_idsの代わりに、埋め込み表現を直接渡すこともできます。past_key_valuesを使用する場合、最後のdecoder_inputs_embedsのみを入力すればよい場合があります(past_key_values). 。これは、モデル内部の埋め込みルックアップマトリックスよりも、decoder_input_idsインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に便利です。decoder_input_idsとdecoder_inputs_embedsの両方が設定されていない場合、decoder_inputs_embedsはinputs_embedsの値を採ります。 - labels (
torch.LongTensor、shape(batch_size, sequence_length)、任意) — マスク言語モデリング損失を計算するためのラベルです。インデックスは[0, ..., config.vocab_size]の範囲内であるか、-100 である必要があります(input_idsの docstring を参照)。インデックスが-100に設定されたトークンは無視(マスク)され、損失は[0, ..., config.vocab_size]の範囲内のラベルを持つトークンに対してのみ計算されます。 - use_cache (
bool、任意) —Trueに設定すると、past_key_valuesのキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_valuesを参照)。
戻り値
Seq2SeqLMOutput または tuple(torch.FloatTensor)
torch.FloatTensor のタプル、または Seq2SeqLMOutput(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(SeamlessM4TConfig)や入力に応じて、さまざまな要素で構成されます。
SeamlessM4TForTextToText の forward メソッドは、__call__ という特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
torch.FloatTensor、shape(1,)、optional、labelsが指定された場合に返されます)— 言語モデリングの損失。logits (
torch.FloatTensor、shape(batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。past_key_values (
EncoderDecoderCache、任意、use_cache=Trueが渡された場合またはconfig.use_cache=Trueの場合に返されます) — EncoderDecoderCache のインスタンスです。詳細については、kv cache ガイドを参照してください。自己注意ブロックおよび相互注意ブロック内のキーとバリューの事前計算済み隠れ状態(hidden-states)を保持しており、シーケンシャルデコーディングを高速化するために使用できます(
past_key_values入力参照)。decoder_hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返される) —torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力用が 1 つ、各層の出力用が 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力および初期埋め込み出力における、デコーダーの隠れ状態。
decoder_attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。自己アテンションヘッドにおける加重平均を計算するために使用される、アテンションのsoftmax後のデコーダーのアテンション重み。
cross_attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返される) —torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。クロスアテンション層のアテンション重みは、アテンションのsoftmax適用後に計算され、クロスアテンションヘッドにおける加重平均の計算に使用されます。
encoder_last_hidden_state (
torch.FloatTensor、shape(batch_size, sequence_length, hidden_size)、optional) — モデルのエンコーダーの最終層の出力における、隠れ状態のシーケンス。encoder_hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返される) —torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力および初期埋め込み出力におけるエンコーダーの隠れ状態。
encoder_attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返される) —torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmaxを適用した後のエンコーダーのアテンション重み。自己アテンションヘッドにおける加重平均の計算に使用されます。
generate
< source >( input_ids = Nonetgt_lang = Nonegeneration_config = Nonelogits_processor = Nonestopping_criteria = Noneprefix_allowed_tokens_fn = Nonesynced_gpus = False**kwargs ) → ModelOutput or torch.LongTensor
パラメータ
- input_ids (
torch.Tensorモダリティによって形状が異なる 任意) — 語彙における入力シーケンスのトークンインデックス。インデックスは、SeamlessM4TTokenizerまたはSeamlessM4TProcessorを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- tgt_lang (
str, 任意) — 翻訳のターゲット言語として使用する言語。 - generation_config (
~generation.GenerationConfig, 任意) — 生成呼び出しのベースパラメータ化として使用される生成設定です。**kwargsでgeneration_configの属性に一致するものが generate に渡された場合、それらは上書きされます。generation_configが指定されない場合、デフォルトが使用されます。その読み込み優先順位は以下の通りです: 1) 存在する場合、generation_config.jsonモデルファイルから; 2) モデル設定から。未指定のパラメータは GenerationConfig のデフォルト値を継承することに注意してください。生成をパラメータ化するには、そのドキュメントを確認する必要があります。 - logits_processor (
LogitsProcessorList、省略可) — 引数や生成設定から構築されるデフォルトの logits プロセッサを補完する、カスタムの logits プロセッサです。引数や生成設定によってすでに作成済みの logits プロセッサが渡された場合、エラーが発生します。この機能は上級ユーザー向けに設計されています。 - stopping_criteria (
StoppingCriteriaList, 任意) — 引数と generation config から構築されるデフォルトの停止条件を補完する、カスタムの停止条件です。引数や generation config で既に作成済みの停止条件が渡された場合、エラーが発生します。この機能は上級ユーザー向けに設計されています。 - prefix_allowed_tokens_fn (
Callable[[int, torch.Tensor], list[int]], 省略可) — 指定された場合、この関数は各ステップにおいてビームサーチを許可されたトークンのみに制限します。指定されない場合、制限は適用されません。この関数は 2 つの引数を受け取ります: バッチ IDbatch_idとinput_idsです。バッチ IDbatch_idと以前に生成されたトークンinputs_idsに基づいて、次の生成ステップで許可されるトークンのリストを返す必要があります。この引数は、Autoregressive Entity Retrieval に記載されているような、プレフィックスに条件付けられた制約付き生成に有用です。 - synced_gpus (
bool、省略可、デフォルトはFalse) —FullyShardedDataParallelおよび DeepSpeed ZeRO Stage 3 でのデッドロックを回避するために、max_length まで while ループの実行を継続するかどうか。 - kwargs (
dict[str, Any]、省略可) —generate_configのアドホックなパラメータ設定、および/またはモデルのforward関数に転送される追加のモデル固有の kwargs。
戻り値
ModelOutput または torch.LongTensor
return_dict_in_generate=True の場合、または config.return_dict_in_generate=True の場合は ModelOutput、それ以外は torch.FloatTensor です。考えられる ModelOutput の型は以下の通りです。
トークンIDのシーケンスを生成します。
生成を制御するほとんどのパラメータは
generation_configで設定されます。この引数が渡されない場合、モデルのデフォルトの生成設定が使用されます。generation_configの任意の値は、generate() に対応するパラメータを渡すことで上書きできます。例えば、.generate(inputs, num_beams=4, do_sample=True)のように指定します。生成戦略の概要とコード例については、次のガイドを参照してください。
SeamlessM4TForSpeechToText
class transformers.SeamlessM4TForSpeechToText
< source >( config: SeamlessM4TConfig )
パラメータ
- config (SeamlessM4TConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを確認してください。
S2TTに使用できる音声認識用のSeamlessM4Tモデルtransformerです。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
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.FloatTensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.FloatTensor)
パラメータ
- input_features (
torch.FloatTensor、shape(batch_size, sequence_length, num_banks)) — 入力音声特徴量です。SeamlessM4TFeatureExtractor クラスまたは SeamlessM4TProcessor クラスによって返されるべきです。詳細は SeamlessM4TFeatureExtractor.call() を参照してください。 - attention_mask (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。[0, 1]:- マスクされていないトークンに対して1
- マスクされたトークンに対しては 0 です。
- decoder_input_ids (
torch.LongTensorの形状(batch_size, target_sequence_length), 、任意) — 語彙におけるデコーダー入力シーケンスのトークンインデックスです。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
Bart は
decoder_input_idsの生成における開始トークンとしてeos_token_idを使用します。past_key_valuesを使用する場合、任意で最後のdecoder_input_idsだけを入力すれば十分です(past_key_valuesを参照)。翻訳および要約の学習では、
decoder_input_idsを指定する必要があります。decoder_input_idsが指定されない場合、モデルは論文に従い、ノイズ除去事前学習のためにinput_idsを右にシフトしてこのテンソルを生成します。 - decoder_attention_mask (
torch.LongTensorの形状(batch_size, target_sequence_length), 、任意) — デフォルトの動作:decoder_input_ids. 内の pad トークンを無視するテンソルを生成します。デフォルトでは、因果マスクも使用されます。パディングの動作を変更する場合は、パディングの動作を変更したい場合は、
modeling_bart._prepare_decoder_attention_maskを読み、必要に応じて修正してください。デフォルトの戦略に関する詳細は、論文の図1を参照してください。 - encoder_outputs (
tuple[tuple[torch.FloatTensor]], 任意) — (last_hidden_state, 任意:hidden_states, 任意:attentions) のタプルlast_hidden_stateは形状(batch_size, sequence_length, hidden_size)、任意) で、エンコーダーの最終層の出力における隠れ状態のシーケンスです。デコーダーのクロスアテンションで使用されます。 - past_key_values (
~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返したpast_key_valuesであり、use_cache=Trueまたはconfig.use_cache=True.入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。
past_key_valuesが渡されない場合、デフォルトで DynamicCache が初期化されます。モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
past_key_valuesを使用する場合、すべてのinput_ids(形状(batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理のinput_ids(形状(batch_size, unprocessed_length))のみを入力することになります。 - inputs_embeds (
torch.FloatTensorの形状(batch_size, sequence_length, hidden_size), 、任意) — 任意で、input_idsの代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に便利です。labels (
torch.LongTensor、shape(batch_size, sequence_length)、任意): マスクド言語モデリングの損失を計算するためのラベル。インデックスは[-100, 0, ..., config.vocab_size]の範囲である必要があります(input_idsの docstring を参照)。インデックスが-100に設定されたトークンは無視(マスク)され、損失は[0, ..., config.vocab_size]の範囲のラベルを持つトークンに対してのみ計算されます。 - decoder_inputs_embeds (
torch.FloatTensorの形状(batch_size, target_sequence_length, hidden_size), 、任意) — 、任意で、decoder_input_idsの代わりに、埋め込み表現を直接渡すこともできます。past_key_valuesを使用する場合、最後のdecoder_inputs_embedsのみを入力すればよい場合があります(past_key_values). 。これは、モデル内部の埋め込みルックアップマトリックスよりも、decoder_input_idsインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に便利です。decoder_input_idsとdecoder_inputs_embedsの両方が設定されていない場合、decoder_inputs_embedsはinputs_embedsの値を採ります。 - labels (
torch.LongTensor、shape(batch_size, sequence_length)、任意) — マスク言語モデリング損失を計算するためのラベルです。インデックスは[0, ..., config.vocab_size]の範囲内であるか、-100 である必要があります(input_idsの docstring を参照)。インデックスが-100に設定されたトークンは無視(マスク)され、損失は[0, ..., config.vocab_size]の範囲内のラベルを持つトークンに対してのみ計算されます。 - use_cache (
bool、任意) —Trueに設定すると、past_key_valuesのキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_valuesを参照)。
戻り値
Seq2SeqLMOutput または tuple(torch.FloatTensor)
torch.FloatTensor のタプル、または Seq2SeqLMOutput(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(SeamlessM4TConfig)や入力に応じて、さまざまな要素で構成されます。
SeamlessM4TForSpeechToTextのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
torch.FloatTensor、shape(1,)、optional、labelsが指定された場合に返されます)— 言語モデリングの損失。logits (
torch.FloatTensor、shape(batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。past_key_values (
EncoderDecoderCache、任意、use_cache=Trueが渡された場合またはconfig.use_cache=Trueの場合に返されます) — EncoderDecoderCache のインスタンスです。詳細については、kv cache ガイドを参照してください。自己注意ブロックおよび相互注意ブロック内のキーとバリューの事前計算済み隠れ状態(hidden-states)を保持しており、シーケンシャルデコーディングを高速化するために使用できます(
past_key_values入力参照)。decoder_hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返される) —torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力用が 1 つ、各層の出力用が 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力および初期埋め込み出力における、デコーダーの隠れ状態。
decoder_attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。自己アテンションヘッドにおける加重平均を計算するために使用される、アテンションのsoftmax後のデコーダーのアテンション重み。
cross_attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返される) —torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。クロスアテンション層のアテンション重みは、アテンションのsoftmax適用後に計算され、クロスアテンションヘッドにおける加重平均の計算に使用されます。
encoder_last_hidden_state (
torch.FloatTensor、shape(batch_size, sequence_length, hidden_size)、optional) — モデルのエンコーダーの最終層の出力における、隠れ状態のシーケンス。encoder_hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返される) —torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力および初期埋め込み出力におけるエンコーダーの隠れ状態。
encoder_attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返される) —torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmaxを適用した後のエンコーダーのアテンション重み。自己アテンションヘッドにおける加重平均の計算に使用されます。
例:
>>> from transformers import AutoProcessor, SeamlessM4TForSpeechToText
>>> 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 = SeamlessM4TForSpeechToText.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
パラメータ
- input_features (
torch.FloatTensor、shape(batch_size, sequence_length, num_banks)) — 入力音声特徴量です。SeamlessM4TFeatureExtractor クラスまたは SeamlessM4TProcessor クラスによって返されるべきです。詳細は SeamlessM4TFeatureExtractor.call() を参照してください。 - tgt_lang (
str, 任意) — 翻訳のターゲット言語として使用する言語。 - generation_config (
~generation.GenerationConfig, 任意) — 生成呼び出しのベースパラメータ化として使用される生成設定です。**kwargsでgeneration_configの属性に一致するものが generate に渡された場合、それらは上書きされます。generation_configが指定されない場合、デフォルトが使用されます。その読み込み優先順位は以下の通りです: 1) 存在する場合、generation_config.jsonモデルファイルから; 2) モデル設定から。未指定のパラメータは GenerationConfig のデフォルト値を継承することに注意してください。生成をパラメータ化するには、そのドキュメントを確認する必要があります。 - logits_processor (
LogitsProcessorList、省略可) — 引数や生成設定から構築されるデフォルトの logits プロセッサを補完する、カスタムの logits プロセッサです。引数や生成設定によってすでに作成済みの logits プロセッサが渡された場合、エラーが発生します。この機能は上級ユーザー向けに設計されています。 - stopping_criteria (
StoppingCriteriaList, 任意) — 引数と generation config から構築されるデフォルトの停止条件を補完する、カスタムの停止条件です。引数や generation config で既に作成済みの停止条件が渡された場合、エラーが発生します。この機能は上級ユーザー向けに設計されています。 - prefix_allowed_tokens_fn (
Callable[[int, torch.Tensor], list[int]], 省略可) — 指定された場合、この関数は各ステップにおいてビームサーチを許可されたトークンのみに制限します。指定されない場合、制限は適用されません。この関数は 2 つの引数を受け取ります: バッチ IDbatch_idとinput_idsです。バッチ IDbatch_idと以前に生成されたトークンinputs_idsに基づいて、次の生成ステップで許可されるトークンのリストを返す必要があります。この引数は、Autoregressive Entity Retrieval に記載されているような、プレフィックスに条件付けられた制約付き生成に有用です。 - synced_gpus (
bool、省略可、デフォルトはFalse) —FullyShardedDataParallelおよび DeepSpeed ZeRO Stage 3 でのデッドロックを回避するために、max_length まで while ループの実行を継続するかどうか。 - kwargs (
dict[str, Any]、省略可) —generate_configのアドホックなパラメータ設定、および/またはモデルのforward関数に転送される追加のモデル固有の kwargs。
戻り値
ModelOutput または torch.LongTensor
return_dict_in_generate=True の場合、または config.return_dict_in_generate=True の場合は ModelOutput、それ以外は torch.FloatTensor です。考えられる ModelOutput の型は以下の通りです。
トークンIDのシーケンスを生成します。
生成を制御するほとんどのパラメータは
generation_configで設定されます。この引数が渡されない場合、モデルのデフォルトの生成設定が使用されます。generation_configの任意の値は、generate() に対応するパラメータを渡すことで上書きできます。例えば、.generate(inputs, num_beams=4, do_sample=True)のように指定します。生成戦略の概要とコード例については、次のガイドを参照してください。
SeamlessM4TConfig
クラス transformers.SeamlessM4TConfig
< 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 = 10082hidden_size: int = 1024initializer_range: float = 0.02layer_norm_eps: float = 1e-05use_cache: bool = Truemax_position_embeddings: int = 1024encoder_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 = 160num_conv_pos_embeddings: int = 128num_conv_pos_embedding_groups: int = 16adaptor_kernel_size: int = 8adaptor_stride: int = 8adaptor_dropout: float | int = 0.1num_adapter_layers: int = 1position_embeddings_type: str = 'relative'rotary_embedding_base: int = 10000max_source_positions: int = 4096conv_depthwise_kernel_size: int = 31t2u_bos_token_id: int | None = 0t2u_pad_token_id: int | None = 1t2u_eos_token_id: int | list[int] | None = 2t2u_decoder_start_token_id: int = 2t2u_max_new_tokens: int = 1024t2u_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 = 2048sampling_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 )
パラメータ
- is_encoder_decoder (
bool、任意、デフォルトはTrue) — モデルがエンコーダー/デコーダーとして使用されるかどうかを示します。 - vocab_size (
int、任意、デフォルトは256102) — モデルの語彙サイズです。input_idsで表現できるトークンの種類数を定義します。 - t2u_vocab_size (
int、任意、デフォルト値は 10082) — SeamlessM4T モデルのユニット語彙サイズです。~SeamlessM4TModel、~SeamlessM4TForSpeechToSpeech、または ~SeamlessM4TForTextToSpeech の Text-To-Units サブモデルを呼び出す際に渡すinputs_idsで表現できる異なるユニットトークンの数を定義します。 - hidden_size (
int、任意、デフォルトは1024) — 隠れ表現の次元数。 - initializer_range (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。 - layer_norm_eps (
float、任意、デフォルトは1e-05) — レイヤーノーマル層で使用する epsilon です。 - use_cache (
bool、任意、デフォルトはTrue) — モデルが最後のキー/バリューの注意を返すかどうか(すべてのモデルで利用されるわけではありません)。config.is_decoder=Trueの場合、またはモデルがデコーダー専用の生成モデルである場合にのみ関連します。 - max_position_embeddings (
int、任意、デフォルトは1024) — このモデルが使用される可能性のある最大シーケンス長です。 - encoder_layerdrop (
Union[float, int]、任意、デフォルトは0.05) — エンコーダーの LayerDrop 確率です。詳細は [LayerDrop の論文](https://huggingface.co/papers/1909.11556 を参照)をご覧ください。 - decoder_layerdrop (
Union[float, int]、任意、デフォルトは0.05) — デコーダーの LayerDrop 確率です。詳細は [LayerDrop の論文](https://huggingface.co/papers/1909.11556 を参照)をご覧ください。 - activation_function (
str、任意、デフォルトはrelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu"など。 - dropout (
Union[float, int]、任意、デフォルト値は0.1) — すべての dropout レイヤーの比率です。 - attention_dropout (
Union[float, int]、任意、デフォルトは0.1) — アテンション確率のドロップアウト率です。 - activation_dropout (
Union[float, int]、任意、デフォルトは0.0) — 全結合層内の活性化に対する dropout 率です。 - scale_embedding (
bool、任意、デフォルトはTrue) — 埋め込みを sqrt(d_model) で割ってスケーリングするかどうかを指定します。 - encoder_layers (
int、任意、デフォルトは24) — Transformer エンコーダーの隠れ層の数です。設定されていない場合は、num_layersと同じ値が使用されます。 - encoder_ffn_dim (
int、任意、デフォルトは8192) — エンコーダー内の「中間」層(フィードフォワード層と呼ばれることが多い)の次元数。 - encoder_attention_heads (
int、任意、デフォルトは16) — Transformer エンコーダーの各アテンション層におけるアテンションヘッドの数。 - decoder_layers (
int、任意、デフォルトは24) — Transformer デコーダーの隠れ層の数です。設定されていない場合は、num_layersと同じ値が使用されます。 - decoder_ffn_dim (
int、任意、デフォルトは8192) — デコーダー内の「中間」(feed-forward と呼ばれることが多い) レイヤーの次元数。 - decoder_attention_heads (
int、任意、デフォルトは16) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。 - decoder_start_token_id (
int、任意、デフォルトは3) — エンコーダー・デコーダーモデルがbosとは異なるトークンでデコーディングを開始する場合、そのトークンの ID。 - max_new_tokens (
int、任意、デフォルトは 256) — プロンプト内のトークン数を無視して、生成するテキストトークンの最大数です。 - pad_token_id (
int、任意、デフォルトは0) — 語彙内でパディングに使用されるトークン ID。 - bos_token_id (
int、任意、デフォルトは2) — 語彙におけるストリーム開始に使用されるトークン ID。 - eos_token_id (
Union[int, list[int]]、任意、デフォルトは3) — 語彙内でストリーム終了に使用されるトークン ID。 - speech_encoder_layers (
int、任意、デフォルト値は 24)— Transformer 音声エンコーダーにおける隠れ層の数。 - speech_encoder_attention_heads (
int、任意、デフォルトは 16)— Transformer 音声エンコーダーの各アテンション層におけるアテンションヘッドの数。 - speech_encoder_intermediate_size (
int、任意、デフォルトは 4096) — Transformer 音声エンコーダーにおける「intermediate」(すなわちフィードフォワード)層の次元数。 - speech_encoder_hidden_act (
strまたはfunction、省略可能、デフォルトは"swish") — 音声エンコーダーにおける非線形活性化関数(関数または文字列)です。文字列の場合、"gelu"、"relu"、"selu"、"swish"および"gelu_new"がサポートされています。 - speech_encoder_dropout (
float、任意、デフォルト値は 0.0) — 音声エンコーダーのすべての層における dropout の確率です。 - add_adapter (
bool、省略可能、デフォルトはTrue) — 音声エンコーダーの上にアダプター層を追加します。 - speech_encoder_layerdrop (
float、任意、デフォルト値は 0.1) — 音声エンコーダーの LayerDrop 確率です。詳細については、[LayerDrop の論文]( https://huggingface.co/papers/1909.11556)を参照してください。 - feature_projection_input_dim (
int, 任意、デフォルトは 160) — 音声エンコーダーの入力特徴量射影の入力次元、すなわち SeamlessM4TFeatureExtractor で入力オーディオを処理した後の次元です。 - num_conv_pos_embeddings (
int, 任意、デフォルト値は 128) — 畳み込み位置埋め込みの数。音声エンコーダーの 1 次元畳み込み位置埋め込みレイヤーのカーネルサイズを定義します。 - num_conv_pos_embedding_groups (
int, 任意、デフォルト値は 16) — 音声エンコーダーの 1 次元畳み込み位置埋め込み層のグループ数。 - adaptor_kernel_size (
int, 任意、デフォルトは 8) — アダプターネットワーク内の畳み込み層のカーネルサイズ。add_adapter is Trueの場合のみ関連します。 - adaptor_stride (
int、任意、デフォルトは 8)— アダプターネットワーク内の畳み込み層のストライド。add_adapter is Trueの場合のみ関連します。 - adaptor_dropout (
float、任意、デフォルト値は 0.1) — 音声アダプタのすべての層における dropout の確率です。 - num_adapter_layers (
int、任意、デフォルトは 1) — アダプターネットワークで使用すべき畳み込み層の数。add_adapter is Trueの場合のみ関連します。 - position_embeddings_type (
str、任意、デフォルトは"relative") — 相対位置埋め込みまたはロータリー位置埋め込みをそれぞれ指定するために、relativeまたはrotaryを設定できます。Noneの場合、相対位置埋め込みは適用されません。音声エンコーダーにのみ適用されます。 - rotary_embedding_base (
int、任意、デフォルト値は 10000) —"rotary"位置埋め込みを使用する場合、埋め込みベースのサイズを定義します。音声エンコーダーにのみ適用されます。 - max_source_positions (
int、任意、デフォルトは 4096) —"relative"の位置埋め込みを使用する場合、ソース入力位置の最大値を定義します。音声エンコーダーにのみ適用されます。 - conv_depthwise_kernel_size (
int, 任意、デフォルトは 31) — Conformer ブロック内の 1 次元深度可変畳み込み層のカーネルサイズです。音声エンコーダーにのみ適用されます。 - t2u_bos_token_id (
int, 任意、デフォルトは 0) — ストリームの先頭ユニットトークンの ID。テキストからユニットへの seq2seq モデルでのみ適用されます。 - t2u_pad_token_id (
int、任意、デフォルト値は 1)— paddingユニットトークンの ID です。テキストからユニットへの seq2seq モデルでのみ適用されます。 - t2u_eos_token_id (
int, 任意、デフォルトは 2) — ストリーム終了ユニットトークンの ID。テキストからユニットへの seq2seq モデルでのみ適用されます。 - t2u_decoder_start_token_id (
int、任意、デフォルト値は 2)— エンコーダー・デコーダーモデルがbos以外のトークンでデコーディングを開始する場合、そのトークンの ID です。テキストからユニットへの seq2seq モデルにのみ適用されます。 - t2u_max_new_tokens (
int、任意、デフォルト値は 1024) — プロンプト内のトークン数を無視して生成するユニットトークンの最大数。テキストからユニットへの seq2seq モデルにのみ適用されます。 - t2u_encoder_layers (
int、任意、デフォルト値は 6)— Transformer のテキストからユニットへのエンコーダーにおける隠れ層の数。 - t2u_encoder_ffn_dim (
int、任意、デフォルト値は 8192) — Transformer のテキストからユニットへのエンコーダーにおける「中間」(すなわちフィードフォワード) レイヤーの次元数。 - t2u_encoder_attention_heads (
int、任意、デフォルトは 16)— Transformer のテキストからユニットへのエンコーダーにおける、各アテンション層のアテンションヘッド数。 - t2u_decoder_layers (
int、任意、デフォルト値は 6) — Transformer のテキストからユニットへのデコーダーにおける隠れ層の数です。 - t2u_decoder_ffn_dim (
int、任意、デフォルト値は 8192) — Transformer のテキストからユニットへのデコーダーにおける「中間」(すなわちフィードフォワード) レイヤーの次元数。 - t2u_decoder_attention_heads (
int、任意、デフォルトは 16)— Transformer のテキストからユニットへのデコーダーにおける、各アテンション層のアテンションヘッド数。 - t2u_max_position_embeddings (
int、任意、デフォルト値は 2048) — このモデルの text-to-unit コンポーネントで使用される可能性のある最大シーケンス長です。念のため、大きめの値(例: 512、1024、2048 など)に設定するのが一般的です。 - sampling_rate (
int、任意、デフォルトは16000) — オーディオファイルをデジタル化するためのサンプリングレート (Hz)。 - upsample_initial_channel (
int、任意、デフォルト値は 512) — hifi-gan アップサンプリングネットワークへの入力チャネル数です。ボコーダーにのみ適用されます。 - upsample_rates (
tuple[int]またはlist[int]、任意、デフォルトは[5, 4, 4, 2, 2]) — ボコーダーのアップサンプリングネットワークにおける各1次元畳み込み層のストライドを定義する整数のタプルです。 upsample_rates の長さが畳み込み層の数を定義し、upsample_kernel_sizes の長さと一致する必要があります。ボコーダーにのみ適用されます。 - upsample_kernel_sizes (
tuple[int]またはlist[int]、任意、デフォルトは[11, 8, 8, 4, 4]) — vocoder のアップサンプリングネットワークにおける各 1 次元畳み込み層のカーネルサイズを定義する整数のタプルです。upsample_kernel_sizes の長さが畳み込み層の数を定義し、upsample_rates の長さと一致する必要があります。vocoder にのみ適用されます。 - resblock_kernel_sizes (
tuple[int]またはlist[int]、任意、デフォルトは[3, 7, 11]) — マルチレセプティブフィールドフュージョン (MRF) モジュール内のボコーダーの 1 次元畳み込み層のカーネルサイズを定義する整数のタプルです。ボコーダーにのみ適用されます。 - resblock_dilation_sizes (
tuple[tuple[int]]またはlist[list[int]]、任意、デフォルトは[[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — マルチレセプティブフィールドフュージョン(MRF)モジュール内のボコーダーのディレイテッド1次元畳み込み層のディレイション率を定義する整数のネストされたタプルです。ボコーダーにのみ適用されます。 - leaky_relu_slope (
float, 任意、デフォルトは 0.1) — vocoder で使用される leaky ReLU 活性化関数の負の勾配の角度です。vocoder にのみ適用されます。 - unit_hifi_gan_vocab_size (
int、任意、デフォルト値は 10000) — SeamlessM4T のボコーダーの語彙サイズです。~SeamlessM4TModel、~SeamlessM4TForSpeechToSpeech または ~SeamlessM4TForTextToSpeech のボコーダーを呼び出す際に渡すinputs_idsで表現できる異なるユニットトークンの数を定義します。 - unit_embed_dim (
int、任意、デフォルト値は 1280) — hifi-gan ボコーダーに与えられる入力 ID の射影次元です。ボコーダーにのみ適用されます。 - lang_embed_dim (
int、省略可、デフォルトは 256) — hifi-gan ボコーダーに渡す対象言語の射影次元です。ボコーダーにのみ適用されます。 - spkr_embed_dim (
int、任意、デフォルトは 256) — hifi-gan ボコーダーに渡される話者 ID の射影次元です。ボコーダーにのみ適用されます。 - vocoder_num_langs (
int、任意、デフォルトは 36) — vocoder がサポートする言語の数。t2u_num_langsとは異なる場合があります。 - vocoder_num_spkrs (
int, 任意、デフォルトは 200) — vocoder がサポートする話者数。 - variance_predictor_kernel_size (
int, 任意、デフォルト値は 3) — Duration predictor のカーネルサイズ。vocoder にのみ適用されます。 - var_pred_dropout (
float、任意、デフォルト値は 0.5) — duration predictor の dropout 確率です。vocoder にのみ適用されます。 - vocoder_offset (
int, 任意、デフォルトは 4) — シンボルトークンを考慮するために、ユニットトークン ID をこの数だけオフセットします。vocoder にのみ適用されます。 - tie_word_embeddings (
bool、任意、デフォルトはTrue) — モデルのtied_weights_keysマッピングに従って重み埋め込みを共有するかどうかを指定します。
これは、SeamlessM4TModel の設定を保存するための設定クラスです。指定された引数に基づいて Seamless M4T モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、facebook/hf-seamless-m4t-medium と同様の設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
>>> from transformers import SeamlessM4TModel, SeamlessM4TConfig
>>> # Initializing a SeamlessM4T "facebook/hf-seamless-m4t-medium" style configuration
>>> configuration = SeamlessM4TConfig()
>>> # Initializing a model from the "facebook/hf-seamless-m4t-medium" style configuration
>>> model = SeamlessM4TModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configSeamlessM4TTokenizer
class transformers.SeamlessM4TTokenizer
< source >( vocab: str | dict[str, int] | None = Nonemerges: str | list[str] | None = Nonebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'src_lang = 'eng'tgt_lang = 'fra'additional_special_tokens = Nonekeep_accents = Nonevocab_file = None**kwargs )
パラメータ
- vocab (
listまたはdict、省略可) — (token, score) のタプルのリスト、またはトークンをインデックスにマッピングする dict です。指定しない場合、デフォルトの vocab が使用されます。 - merges (
strまたはlist、省略可) — BPE モデル用のマージルールのリストです。指定しない場合、空のリストが使用されます。 - bos_token (
str, 省略可, デフォルトは"<s>") — 事前学習時に使用されたシーケンス開始トークン。シーケンス分類器のトークンとしても使用できます。特殊トークンを用いてシーケンスを構築する場合、シーケンスの先頭に使用されるのはこのトークンではありません。使用されるのは
cls_tokenです。 - eos_token (
str, 省略可, デフォルトは"</s>") — シーケンスの終了トークンです。特殊トークンを用いてシーケンスを構築する場合、シーケンスの終了に使用されるのはこのトークンではありません。 使用されるのは
sep_tokenです。 - sep_token (
str、任意、デフォルトは"</s>") — 区切りトークンです。複数のシーケンスからシーケンスを構築する際に使用されます。例えば、シーケンス分類では2つのシーケンス、質問応答ではテキストと質問です。また、特殊トークンを用いて構築されたシーケンスの最後のトークンとしても使用されます。 - cls_token (
str、任意、デフォルトは"<s>") — シーケンス分類(トークンごとの分類ではなく、シーケンス全体の分類)を行う際に使用される分類トークンです。特殊トークンを用いて構築された場合、シーケンスの最初のトークンになります。 - unk_token (
str、任意、デフォルトは"<unk>") — 不明トークンです。語彙に存在しないトークンは ID に変換できず、代わりにこのトークンが設定されます。 - pad_token (
str、任意、デフォルトは"<pad>") — パディングに使用されるトークンです。例えば、長さが異なるシーケンスをバッチ処理する際に使用します。 - src_lang (
str、任意、デフォルトは"eng") — 翻訳のソース言語として使用する言語。 - tgt_lang (
str、任意、デフォルトは"fra") — 翻訳のターゲット言語として使用する言語。 - additional_special_tokens (
strまたはtokenizers.AddedTokenのタプルまたはリスト、省略可) — 追加の特殊トークンのタプルまたはリスト。
HuggingFaceのtokenizersライブラリをベースにしたSeamlessM4Tのトークナイザーを構築します。BPEに基づいています。
このトークナイザーは、主要なメソッドの大部分を含む TokenizersBackend を継承しています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。
トークン化の形式は、ソース言語の文書に対しては<language code> <tokens> <eos>、ターゲット言語の文書に対しては<eos> <language code> <tokens> <eos>です。
例:
>>> from transformers import SeamlessM4TTokenizer
>>> tokenizer = SeamlessM4TTokenizer.from_pretrained(
... "facebook/hf-seamless-m4t-medium", src_lang="eng", tgt_lang="fra"
... )
>>> example_english_phrase = " UN Chief Says There Is No Military Solution in Syria"
>>> expected_translation_french = "Le chef de l'ONU affirme qu'il n'y a pas de solution militaire en Syrie."
>>> inputs = tokenizer(example_english_phrase, text_target=expected_translation_french, return_tensors="pt")__call__
< source >( text: str | list[str] | list[list[str]] | None = Nonetext_pair: str | list[str] | list[list[str]] | None = Nonetext_target: str | list[str] | list[list[str]] | None = Nonetext_pair_target: str | list[str] | list[list[str]] | None = Nonepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsepad_to_multiple_of: int | None = Nonesrc_lang: str | None = Nonetgt_lang: str | None = None**kwargs )
パラメータ
- text (
str、list[str]、list[list[str]]、任意) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは、文字列または文字列のリスト(事前トークン化済み文字列)であることができます。シーケンスが文字列のリスト(事前トークン化済み)として提供される場合、is_split_into_words=Trueを設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。 - text_pair (
str、list[str]、list[list[str]]、任意) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは、文字列または文字列のリスト(事前トークン化された文字列)であることができます。シーケンスが文字列のリスト(事前トークン化済み)として提供される場合、is_split_into_words=Trueを設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。 - text_target (
str、list[str]、list[list[str]]、任意) — ターゲットテキストとしてエンコードされるシーケンスまたはシーケンスのバッチです。各シーケンスは文字列、または文字列のリスト(プレトークナイズ済み文字列)であることができます。シーケンスが文字列のリスト(プレトークナイズ済み)として提供される場合、is_split_into_words=Trueを設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。 - text_pair_target (
str、list[str]、list[list[str]]、任意) — ターゲットテキストとしてエンコードされるシーケンスまたはシーケンスのバッチです。各シーケンスは文字列、または文字列のリスト(プレトークナイズ済み文字列)であることができます。シーケンスが文字列のリスト(プレトークナイズ済み)として提供される場合、is_split_into_words=Trueを設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。 - padding (
bool,strまたは PaddingStrategy, 省略可, デフォルトはFalse) — 返されるシーケンスのパディング戦略(モデルのパディング側およびパディングインデックスに従う)として、以下から選択します:Trueまたは'longest': バッチ内の最長のシーケンスの長さにパディングします(単一のシーケンスのみが提供された場合は、パディングを行いません)。'max_length': 引数max_lengthで指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長までパディングします。Falseまたは'do_not_pad'(デフォルト):パディングを行いません(つまり、長さが異なるシーケンスのバッチを出力できます)。
- pad_to_multiple_of (
int, 省略可, デフォルトはNone) — 設定すると、シーケンスを指定された値の倍数にパディングします。これは、計算能力が
>= 7.5(Volta)のNVIDIAハードウェア上でTensor Coresを使用可能にするために特に有用です。 - src_lang (
str, 省略可) — ソース言語を表す文字列です。指定しない場合、最後に指定されたsrc_lang(初期化時またはこのトークナイザーを呼び出した際に指定されたもの)が使用されます。 - tgt_lang (
str, 省略可) — ターゲット言語を表す文字列です。指定しない場合、最後に指定されたtgt_lang(初期化時またはこのトークナイザーを呼び出した際に指定されたもの)が使用されます。 - kwargs (任意) — TokenizersBackend.call() に渡される残りのキーワード引数の辞書。
get_special_tokens_mask
< source >( token_ids_0: list[int]token_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]
特殊トークンが追加されていないトークンリストからシーケンスIDを取得します。
高速なトークナイザーでは、データコラテーターはalready_has_special_tokens=Trueを指定してこれを呼び出し、すでに整形済みのシーケンスに対してマスクを構築します。その場合、all_special_idsへの所属を確認することによってマスクを計算します。
SeamlessM4TFeatureExtractor
class transformers.SeamlessM4TFeatureExtractor
< source >( feature_size = 80sampling_rate = 16000num_mel_bins = 80padding_value = 0.0stride = 2**kwargs )
パラメータ
- feature_size (
int、任意、デフォルトは 80) — 抽出された特徴量の次元数。 - sampling_rate (
int、任意、デフォルトは 16000) — オーディオファイルをデジタル化するためのサンプリングレート(ヘルツ (Hz) 表記)。 - num_mel_bins (
int、省略可、デフォルト値は 80) — Mel 周波数ビンの数。 - padding_value (
float、任意、デフォルトは 0.0) — パディングベクトルを埋めるために使用される値です。 - stride (
int、任意、デフォルトは 2) — 音声の形状を (batch_size,num_frames,num_mel_bins) から (batch_size,num_frames//stride,num_mel_bins*stride) にリサイズする際に使用するストライドです。
SeamlessM4T の特徴抽出器を構築します。
このフィーチャーエクストラクターは、主要なメソッドの大部分を含む SequenceFeatureExtractor を継承しています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。
このクラスは、生の音声からメルフィルタバンク特徴量を抽出します。
__call__
< source >( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]padding: bool | str | transformers.utils.generic.PaddingStrategy = Truepad_to_multiple_of: int | None = 2max_length: int | None = Nonetruncation: bool = Falsereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonesampling_rate: int | None = Nonereturn_attention_mask: bool | None = Nonedo_normalize_per_mel_bins: bool | None = True**kwargs )
パラメータ
- raw_speech (
np.ndarray,torch.Tensor,list[float],list[np.ndarray],list[torch.Tensor], — -
list[list[float]],list[list[list[float]]]) — パディング対象のシーケンスまたはシーケンスのバッチです。各シーケンスは、numpy 配列、torch テンソル、float 値のリスト、numpy 配列のリスト、torch テンソルのリスト、float 値のリストのリスト、または float 値のリストのリストのリストであることができます。raw_speechが 1 次元のnp.ndarray、torch.Tensor、またはlist[float]の場合、raw_speechは単一チャネルの単一サンプルの音として扱われます。その他のすべての場合、raw_speechの最初の次元(np.ndarray、torch.Tensor、またはlist[...]のいずれかからのものであっても)は、バッチ内のサンプル数に対応し、チャネル数(モノラルまたはステレオであるか)は他の次元から導出されます(1 次元 -> 単一チャネルの波形バッチ、2 次元 -> ステレオチャネルの波形バッチ)。 - padding (
bool,strまたは PaddingStrategy, 省略可, デフォルトはTrue) — 返されるシーケンスのパディング戦略(モデルのパディング側およびパディングインデックスに従う)として、以下から選択します:Trueまたは'longest': バッチ内の最長のシーケンスの長さにパディングします(単一のシーケンスのみが提供された場合は、パディングを行いません)。'max_length': 引数max_lengthで指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長までパディングします。Falseまたは'do_not_pad'(デフォルト):パディングを行いません(つまり、長さが異なるシーケンスのバッチを出力できます)。
- pad_to_multiple_of (
int, 省略可能, デフォルト値は 2) — 設定すると、シーケンスを指定された値の倍数にパディングします。これは、計算能力が
>= 7.5(Volta)のNVIDIAハードウェアでTensor Coresの利用を有効にするために、また、シーケンス長が128の倍数であることで恩恵を受けるTPUにおいて、特に有用です。 - max_length (
int, 任意) — 返されるリストの最大長、および必要に応じてパディングの長さ(上記を参照)。 - truncation (
bool) — max_length を超える長さの入力シーケンスを max_length に切り詰めるための切り詰め処理を有効にします。 - return_attention_mask (
bool, 省略可) — attention mask を返すかどうか。デフォルトのままにすると、特定の feature_extractor のデフォルトに従って attention mask が返されます。SeamlessM4Tモデルでは、微妙なバグを避けるために、バッチ推論では常に
attention_maskを渡す必要があります。 - return_tensors (
strまたは TensorType, 省略可) — 設定すると、Python の整数のリストではなくテンソルを返します。指定可能な値は以下の通りです:'pt': PyTorchのtorch.Tensorオブジェクトを返します。'np': Numpy のnp.ndarrayオブジェクトを返します。
- sampling_rate (
int, 任意) —raw_speech入力がサンプリングされたレートです。サイレントエラーを防ぐため、forward 呼び出し時にsampling_rateを渡すことを強く推奨します。 - do_normalize_per_mel_bins (
bool、任意、デフォルトはTrue) — melチャネルごとに、入力を平均0・分散1に正規化するかどうかを指定します。 - kwargs (任意) — トークナイザまたはフィーチャーエクストラクターに渡される、残りのキーワード引数の辞書。
1つ以上のシーケンスを特徴量化し、モデル用に準備するための主要なメソッド。
SeamlessM4TProcessor
class transformers.SeamlessM4TProcessor
< source >( feature_extractortokenizer )
SeamlessM4TProcessor を構築します。このクラスは、フィーチャーエクストラクターとトークナイザーを単一のプロセッサーにラップします。
SeamlessM4TProcessor は、SeamlessM4TFeatureExtractor と SeamlessM4TTokenizer のすべての機能を提供します。詳細については、~SeamlessM4TFeatureExtractor および ~SeamlessM4TTokenizer を参照してください。
__call__
< source >( text: str | list[str] | list[list[str]] | None = Noneaudio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None**kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'> ) → BatchEncoding
パラメータ
- text (
Union[str, list[str], list[list[str]]]、省略可) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは文字列、または文字列のリスト(事前トークン化済み文字列)であることができます。事前トークン化済みの入力を渡す場合は、バッチ入力との曖昧さを避けるためにis_split_into_words=Trueを設定してください。 - audio (
Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], 任意) — 準備対象のオーディオまたはオーディオのバッチです。各オーディオは NumPy 配列または PyTorch テンソルであることができます。 NumPy 配列/PyTorch テンソルの場合、各オーディオの形状は (C, T) である必要があります。ここで C はチャネル数、T はオーディオのサンプル長です。 - return_tensors (
strまたは TensorType, 省略可) — 設定すると、特定のフレームワークのテンソルを返します。使用可能な値は以下の通りです:'pt': PyTorchのtorch.Tensorオブジェクトを返します。'np': NumPyのnp.ndarrayオブジェクトを返します。
- **kwargs (ProcessingKwargs、任意) — 各モダリティ(テキスト、画像、動画、音声)の追加処理オプション。モデル固有のパラメータは上記にリストされています。サポートされている引数の完全なリストについては、TypedDictクラスを参照してください。
戻り値
以下のフィールドを持つBatchEncoding:
- input_ids — モデルに与えるトークン ID のリスト。
textがNoneでない場合に返されます。 - attention_mask — モデルがどのトークンに注意を払うべきかを指定するインデックスのリスト(
return_attention_mask=Trueの場合、またはself.model_input_namesに“attention_mask”が含まれておりtextがNoneでない場合)。 - input_features — モデルに渡す音声入力特徴量。
audiosがNoneでない場合に返されます。
SeamlessM4TCodeHifiGan
class transformers.SeamlessM4TCodeHifiGan
< source >( config: SeamlessM4TConfig )
パラメータ
- config (SeamlessM4TConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを確認してください。
このリポジトリに記載されている HiFi-GAN ボコーダーのコード。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_ids: LongTensorspkr_id: Tensorlang_id: Tensor**kwargs )
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length)) — 語彙における入力シーケンスのトークンインデックス。インデックスはSeamlessM4TTextToUnitForConditionalGenerationを使用して取得できます。入力IDとは何ですか?
- spkr_id (
int, 任意) — 音声合成に使用する話者の ID。config.vocoder_num_spkrsより小さい値である必要があります。 - tgt_lang (
str, 任意) — 翻訳のターゲット言語として使用する言語 ID。
SeamlessM4THifiGan
forward
< source >( inputs_embeds: FloatTensor ) → torch.FloatTensor
パラメータ
- spectrogram (
torch.FloatTensor) — log-mel スペクトログラムを含むテンソル。バッチ化された形状(batch_size, sequence_length, model_in_dim)、またはバッチ化されていない形状(sequence_length, model_in_dim)をとることができます。なお、model_in_dimはconfig.unit_embed_dim、config.lang_embed_dim、config.spkr_embed_dimの合計です。
戻り値
torch.FloatTensor
音声波形を含むテンソル。入力スペクトログラムがバッチ化されている場合、形状は(batch_size, num_frames,)になります。バッチ化されていない場合、形状は(num_frames,)になります。
log-melスペクトログラムを音声波形に変換します。log-melスペクトログラムのバッチを渡すと、音声波形のバッチが返されます。単一のバッチ化されていないlog-melスペクトログラムを渡すと、単一のバッチ化されていない音声波形が返されます。
SeamlessM4TTextToUnitModel
class transformers.SeamlessM4TTextToUnitModel
< source >( config: SeamlessM4TConfigembed_tokens_decoder: typing.Optional[torch.nn.Embedding] = None )
パラメータ
- config (SeamlessM4TConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを確認してください。
- embed_tokens_decoder (
nn.Embedding, 任意) — デコーダーの入力埋め込み。
Transformerの素のテキストからユニットへのエンコーダー・デコーダーです。エンコーダーは埋め込みを持たないSeamlessM4TEncoderであり、デコーダーはSeamlessM4TDecoderです。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
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.FloatTensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqModelOutput or tuple(torch.FloatTensor)
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- attention_mask (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。[0, 1]:- マスクされていないトークンに対して1
- マスクされたトークンに対しては 0 です。
- decoder_input_ids (
torch.LongTensorの形状(batch_size, target_sequence_length), 、任意) — 語彙におけるデコーダー入力シーケンスのトークンインデックスです。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- decoder_attention_mask (
torch.LongTensor、shape(batch_size, target_sequence_length)、任意) — 特定のトークンインデックスに対するアテンションの計算を回避するためのマスクです。デフォルトでは因果マスクが使用され、モデルが未来を予測する際に過去の入力のみを参照できるようにします。 - encoder_outputs (
tuple[tuple[torch.FloatTensor]], 任意) — (last_hidden_state, 任意:hidden_states, 任意:attentions) のタプルlast_hidden_stateは形状(batch_size, sequence_length, hidden_size)、任意) で、エンコーダーの最終層の出力における隠れ状態のシーケンスです。デコーダーのクロスアテンションで使用されます。 - past_key_values (
~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返したpast_key_valuesであり、use_cache=Trueまたはconfig.use_cache=True.入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。
past_key_valuesが渡されない場合、デフォルトで DynamicCache が初期化されます。モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
past_key_valuesを使用する場合、すべてのinput_ids(形状(batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理のinput_ids(形状(batch_size, unprocessed_length))のみを入力することになります。 - inputs_embeds (
torch.FloatTensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - decoder_inputs_embeds (
torch.FloatTensorの形状(batch_size, target_sequence_length, hidden_size), 、任意) — 、任意で、decoder_input_idsの代わりに、埋め込み表現を直接渡すこともできます。past_key_valuesを使用する場合、最後のdecoder_inputs_embedsのみを入力すればよい場合があります(past_key_values). 。これは、モデル内部の埋め込みルックアップマトリックスよりも、decoder_input_idsインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に便利です。decoder_input_idsとdecoder_inputs_embedsの両方が設定されていない場合、decoder_inputs_embedsはinputs_embedsの値を採ります。 - use_cache (
bool、任意) —Trueに設定すると、past_key_valuesのキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_valuesを参照)。
戻り値
Seq2SeqModelOutput または tuple(torch.FloatTensor)
torch.FloatTensor のタプル、または return_dict=False が渡された場合、あるいは config.return_dict=False の場合は torch.FloatTensor のタプルとして返されます。設定 (SeamlessM4TConfig) や入力に応じて、さまざまな要素で構成される Seq2SeqModelOutput です。
SeamlessM4TTextToUnitModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.FloatTensor、shape(batch_size, sequence_length, hidden_size)) — モデルのデコーダーの最終層の出力における、隠れ状態のシーケンス。past_key_valuesが使用されている場合、出力されるのは、形状(batch_size, 1, hidden_size)のシーケンスの最後の隠れ状態のみです。past_key_values (
EncoderDecoderCache、任意、use_cache=Trueが渡された場合またはconfig.use_cache=Trueの場合に返されます) — EncoderDecoderCache のインスタンスです。詳細については、kv cache ガイドを参照してください。自己注意ブロックおよび相互注意ブロック内のキーとバリューの事前計算済み隠れ状態(hidden-states)を保持しており、シーケンシャルデコーディングを高速化するために使用できます(
past_key_values入力参照)。decoder_hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返される) —torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力用が 1 つ、各層の出力用が 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるデコーダーのHidden-states、および任意の初期埋め込み出力。
decoder_attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。自己アテンションヘッドにおける加重平均を計算するために使用される、アテンションのsoftmax後のデコーダーのアテンション重み。
cross_attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返される) —torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。クロスアテンション層のアテンション重みは、アテンションのsoftmax適用後に計算され、クロスアテンションヘッドにおける加重平均の計算に使用されます。
encoder_last_hidden_state (
torch.FloatTensor、shape(batch_size, sequence_length, hidden_size)、optional) — モデルのエンコーダーの最終層の出力における、隠れ状態のシーケンス。encoder_hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返される) —torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるエンコーダーのHidden-states、および任意の初期埋め込み出力。
encoder_attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返される) —torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmaxを適用した後のエンコーダーのアテンション重み。自己アテンションヘッドにおける加重平均の計算に使用されます。
SeamlessM4TTextToUnitForConditionalGeneration
クラス transformers.SeamlessM4TTextToUnitForConditionalGeneration
< source >( config: SeamlessM4TConfigembed_tokens_decoder: typing.Optional[torch.nn.Embedding] = None )
パラメータ
- config (SeamlessM4TConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを確認してください。
- embed_tokens_decoder (
nn.Embedding, 任意) — デコーダーの入力埋め込み。
言語モデルヘッドを備えたTransformerのテキストからユニットへのエンコーダー・デコーダーです。ベースとなるエンコーダー・デコーダーモデルはSeamlessM4TTextToUnitです。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
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.FloatTensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.FloatTensor)
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- attention_mask (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。[0, 1]:- マスクされていないトークンに対して1
- マスクされたトークンに対しては 0 です。
- decoder_input_ids (
torch.LongTensorの形状(batch_size, target_sequence_length), 、任意) — 語彙におけるデコーダー入力シーケンスのトークンインデックスです。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
Bart は
decoder_input_idsの生成における開始トークンとしてeos_token_idを使用します。past_key_valuesを使用する場合、任意で最後のdecoder_input_idsだけを入力すれば十分です(past_key_valuesを参照)。翻訳および要約の学習では、
decoder_input_idsを指定する必要があります。decoder_input_idsが指定されない場合、モデルは論文に従い、ノイズ除去事前学習のためにinput_idsを右にシフトしてこのテンソルを生成します。 - decoder_attention_mask (
torch.LongTensorの形状(batch_size, target_sequence_length), 、任意) — デフォルトの動作:decoder_input_ids. 内の pad トークンを無視するテンソルを生成します。デフォルトでは、因果マスクも使用されます。パディングの動作を変更する場合は、パディングの動作を変更したい場合は、
modeling_bart._prepare_decoder_attention_maskを読み、必要に応じて修正してください。デフォルトの戦略に関する詳細は、論文の図1を参照してください。 - encoder_outputs (
tuple[tuple[torch.FloatTensor]], 任意) — (last_hidden_state, 任意:hidden_states, 任意:attentions) のタプルlast_hidden_stateは形状(batch_size, sequence_length, hidden_size)、任意) で、エンコーダーの最終層の出力における隠れ状態のシーケンスです。デコーダーのクロスアテンションで使用されます。 - past_key_values (
~cache_utils.Cache, 省略可) — 逐次デコードを高速化するために使用できる、事前計算された隠れ状態(自己アテンションブロックおよびクロスアテンションブロックのキーとバリュー)。通常、これはデコードの以前の段階でモデルが返したpast_key_valuesであり、use_cache=Trueまたはconfig.use_cache=True.入力として許可されるのは Cache インスタンスのみです。kv cache ガイドを参照してください。
past_key_valuesが渡されない場合、デフォルトで DynamicCache が初期化されます。モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
past_key_valuesを使用する場合、すべてのinput_ids(形状(batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理のinput_ids(形状(batch_size, unprocessed_length))のみを入力することになります。 - inputs_embeds (
torch.FloatTensorの形状(batch_size, sequence_length, hidden_size), 、任意) — 任意で、input_idsの代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に便利です。labels (
torch.LongTensor、shape(batch_size, sequence_length)、任意): マスクド言語モデリングの損失を計算するためのラベル。インデックスは[-100, 0, ..., config.vocab_size]の範囲である必要があります(input_idsの docstring を参照)。インデックスが-100に設定されたトークンは無視(マスク)され、損失は[0, ..., config.vocab_size]の範囲のラベルを持つトークンに対してのみ計算されます。 - decoder_inputs_embeds (
torch.FloatTensorの形状(batch_size, target_sequence_length, hidden_size), 、任意) — 、任意で、decoder_input_idsの代わりに、埋め込み表現を直接渡すこともできます。past_key_valuesを使用する場合、最後のdecoder_inputs_embedsのみを入力すればよい場合があります(past_key_values). 。これは、モデル内部の埋め込みルックアップマトリックスよりも、decoder_input_idsインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に便利です。decoder_input_idsとdecoder_inputs_embedsの両方が設定されていない場合、decoder_inputs_embedsはinputs_embedsの値を採ります。 - labels (
torch.LongTensor、shape(batch_size, sequence_length)、任意) — マスク言語モデリング損失を計算するためのラベルです。インデックスは[0, ..., config.vocab_size]の範囲内であるか、-100 である必要があります(input_idsの docstring を参照)。インデックスが-100に設定されたトークンは無視(マスク)され、損失は[0, ..., config.vocab_size]の範囲内のラベルを持つトークンに対してのみ計算されます。 - use_cache (
bool、任意) —Trueに設定すると、past_key_valuesのキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_valuesを参照)。
戻り値
Seq2SeqLMOutput または tuple(torch.FloatTensor)
torch.FloatTensor のタプル、または Seq2SeqLMOutput(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(SeamlessM4TConfig)や入力に応じて、さまざまな要素で構成されます。
SeamlessM4TTextToUnitForConditionalGeneration の forward メソッドは、__call__ という特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
torch.FloatTensor、shape(1,)、optional、labelsが指定された場合に返されます)— 言語モデリングの損失。logits (
torch.FloatTensor、shape(batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。past_key_values (
EncoderDecoderCache、任意、use_cache=Trueが渡された場合またはconfig.use_cache=Trueの場合に返されます) — EncoderDecoderCache のインスタンスです。詳細については、kv cache ガイドを参照してください。自己注意ブロックおよび相互注意ブロック内のキーとバリューの事前計算済み隠れ状態(hidden-states)を保持しており、シーケンシャルデコーディングを高速化するために使用できます(
past_key_values入力参照)。decoder_hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返される) —torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力用が 1 つ、各層の出力用が 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力および初期埋め込み出力における、デコーダーの隠れ状態。
decoder_attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。自己アテンションヘッドにおける加重平均を計算するために使用される、アテンションのsoftmax後のデコーダーのアテンション重み。
cross_attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返される) —torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。クロスアテンション層のアテンション重みは、アテンションのsoftmax適用後に計算され、クロスアテンションヘッドにおける加重平均の計算に使用されます。
encoder_last_hidden_state (
torch.FloatTensor、shape(batch_size, sequence_length, hidden_size)、optional) — モデルのエンコーダーの最終層の出力における、隠れ状態のシーケンス。encoder_hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返される) —torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力および初期埋め込み出力におけるエンコーダーの隠れ状態。
encoder_attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返される) —torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmaxを適用した後のエンコーダーのアテンション重み。自己アテンションヘッドにおける加重平均の計算に使用されます。