Transformers documentation

SeamlessM4T

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

このモデルは2023年8月22日にHF papersで公開され、2023年10月23日にHugging Face Transformersに貢献されました。

SDPA

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

< >

( 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

< >

( 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()を参照してください。

    入力IDとは何ですか?

  • 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

< >

( config: SeamlessM4TConfig )

パラメータ

  • config (SeamlessM4TConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを確認してください。

T2STに使用できるテキストから音声への変換用のSeamlessM4Tモデルtransformerです。

このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

generate

< >

( 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()を参照してください。

    入力IDとは何ですか?

  • 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

< >

( config: SeamlessM4TConfig )

パラメータ

  • config (SeamlessM4TConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを確認してください。

S2STに使用できる音声対話用のSeamlessM4Tモデルのtransformerです。

このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

generate

< >

( 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

< >

( config: SeamlessM4TConfig )

パラメータ

  • config (SeamlessM4TConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを確認してください。

T2TTに使用できるテキストからテキストへの変換を行うSeamlessM4Tモデルのtransformerです。

このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

forward

< >

( 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()を参照してください。

    入力IDとは何ですか?

  • 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()を参照してください。

    デコーダー入力IDとは何ですか?

    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

< >

( 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()を参照してください。

    入力IDとは何ですか?

  • 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 つの引数を受け取ります: バッチ ID batch_id と input_ids です。バッチ ID batch_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

< >

( config: SeamlessM4TConfig )

パラメータ

  • config (SeamlessM4TConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを確認してください。

S2TTに使用できる音声認識用のSeamlessM4Tモデルtransformerです。

このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

forward

< >

( 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()を参照してください。

    デコーダー入力IDとは何ですか?

    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

< >

( 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 つの引数を受け取ります: バッチ ID batch_id と input_ids です。バッチ ID batch_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

< >

( 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.config

SeamlessM4TTokenizer

class transformers.SeamlessM4TTokenizer

< >

( 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__

< >

( 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

< >

( 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]

パラメータ

  • token_ids_0 — (すでにフォーマット済みの可能性がある)シーケンスの ID のリスト。
  • token_ids_1 — already_has_special_tokens=True の場合は使用されません。その場合は None でなければなりません。
  • already_has_special_tokens — シーケンスがすでに特殊トークンでフォーマットされているかどうかを示します。

戻り値

範囲 [0, 1] 内の整数のリスト

特殊トークンには1、シーケンストークンには0を指定します。

特殊トークンが追加されていないトークンリストからシーケンスIDを取得します。

高速なトークナイザーでは、データコラテーターはalready_has_special_tokens=Trueを指定してこれを呼び出し、すでに整形済みのシーケンスに対してマスクを構築します。その場合、all_special_idsへの所属を確認することによってマスクを計算します。

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

SeamlessM4TFeatureExtractor

class transformers.SeamlessM4TFeatureExtractor

< >

( 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__

< >

( 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

< >

( feature_extractortokenizer )

パラメータ

  • feature_extractor (SeamlessM4TFeatureExtractor) — フィーチャーエクストラクターは必須の入力です。
  • tokenizer (SeamlessM4TTokenizer) — トークナイザーは必須の入力です。

SeamlessM4TProcessor を構築します。このクラスは、フィーチャーエクストラクターとトークナイザーを単一のプロセッサーにラップします。

SeamlessM4TProcessor は、SeamlessM4TFeatureExtractor と SeamlessM4TTokenizer のすべての機能を提供します。詳細については、~SeamlessM4TFeatureExtractor および ~SeamlessM4TTokenizer を参照してください。

__call__

< >

( 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

以下のフィールドを持つ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

< >

( config: SeamlessM4TConfig )

パラメータ

  • config (SeamlessM4TConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを確認してください。

このリポジトリに記載されている HiFi-GAN ボコーダーのコード。

このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

forward

< >

( 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

class transformers.SeamlessM4THifiGan

< >

( config: SeamlessM4TConfig )

forward

< >

( 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

< >

( 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

< >

( 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()を参照してください。

    入力IDとは何ですか?

  • 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()を参照してください。

    デコーダー入力IDとは何ですか?

  • 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

< >

( 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

< >

( 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()を参照してください。

    入力IDとは何ですか?

  • 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()を参照してください。

    デコーダー入力IDとは何ですか?

    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を適用した後のエンコーダーのアテンション重み。自己アテンションヘッドにおける加重平均の計算に使用されます。

Update on GitHub