Transformers documentation

Qwen2.5-Omni

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

このモデルは2025年3月26日にHF papersで公開され、2025年4月14日にHugging Face Transformersに貢献されました。

Qwen2.5-Omni

FlashAttention SDPA

概要

Qwen2.5-Omniモデルは、Alibaba GroupのQwenチームがQwen2.5-Omni Technical Reportで提案した、統合型マルチモーダルモデルです。

技術レポートの要旨は以下の通りです。

Qwen2.5-Omni は、テキスト、画像、音声、動画といった多様なモダリティを認識し、同時にテキストと自然な音声応答をストリーミング形式で生成するように設計されたエンドツーエンドのマルチモーダルモデルです。マルチモーダル情報入力のストリーミングを可能にするため、音声エンコーダーと視覚エンコーダーの両方がブロック単位の処理アプローチを採用しています。この戦略により、マルチモーダルデータの長いシーケンスの処理が効果的に分離され、知覚の責任はマルチモーダルエンコーダーに、拡張されたシーケンスのモデリングは大型言語モデルに委ねられます。このような役割分担により、共有アテンション機構を介した異なるモダリティの融合が強化されます。動画入力のタイムスタンプを音声と同期させるため、音声を動画と交互に順序立てて配置し、TMRoPE(Time-aligned Multimodal RoPE)と呼ばれる新しい位置埋め込み手法を提案しました。テキストと音声を同時に生成しつつ、2つのモダリティ間の干渉を回避するために、Thinker-Talker アーキテクチャを提案します。このフレームワークでは、Thinker はテキスト生成を担う大型言語モデルとして機能し、Talker は Thinker の隠れ表現を直接利用して音声トークンを出力として生成するデュアルトラックの自己回帰モデルです。Thinker と Talker の両方のモデルは、エンドツーエンドで学習および推論されるよう設計されています。音声トークンをストリーミング形式でデコードするために、感受野を制限して初期パッケージの遅延を削減することを目的としたスライディングウィンドウ DiT を導入しました。Qwen2.5-Omni は、画像および音声の機能の両面で、同サイズの Qwen2-VL や Qwen2-Audio を上回っています。さらに、Qwen2.5-Omni は Omni-Bench などのマルチモーダルベンチマークで最先端の性能を達成しています。特に注目すべきは、MMLU や GSM8K などのベンチマークが示すように、Qwen2.5-Omni が、テキスト入力時の能力と同等レベルのエンドツーエンドの音声指示追従性能を達成した初のオープンソースモデルである点です。音声生成については、Qwen2.5-Omni のストリーミング Talker は、堅牢性と自然さの面で、既存のほとんどのストリーミングおよび非ストリーミングの代替方案を上回っています。

use_kernels=True を from_pretrained() に設定すると、対応するレイヤーが Hub からの最適化されたカーネルに置き換えられます。詳細は カーネルの読み込み を参照してください。

注記

  • Qwen2_5OmniForConditionalGeneration を使用して、音声とテキストの出力を生成します。出力タイプを1つだけ生成する場合は、テキストのみの出力には Qwen2_5OmniThinkerForConditionalGeneration を、音声のみの出力には Qwen2_5OmniTalkersForConditionalGeneration を使用します。
  • 動画入力での処理時にメモリ不足エラーが発生する場合は、processor.max_pixelsを小さくしてください。デフォルトでは最大値が非常に大きな値に設定されており、解像度がprocessor.max_pixelsを超えない限り、高解像度のビジュアルはリサイズされません。
  • プロセッサには、チャットメッセージをモデルの入力に変換するための独自の apply_chat_template() メソッドがあります。

使用例

Qwen2.5-Omni は Huggingface Hub で利用できます。

単一メディア推論

モデルは、テキスト、画像、音声、動画をインプットとして受け取ることができます。推論のコード例を以下に示します。

import soundfile as sf

from transformers import Qwen2_5OmniForConditionalGeneration, Qwen2_5OmniProcessor


model = Qwen2_5OmniForConditionalGeneration.from_pretrained(
    "Qwen/Qwen2.5-Omni-7B",
    device_map="auto",
)
processor = Qwen2_5OmniProcessor.from_pretrained("Qwen/Qwen2.5-Omni-7B")

conversations = [
    {
        "role": "system",
        "content": [
            {"type": "text", "text": "You are Qwen, a virtual human developed by the Qwen Team, Alibaba Group, capable of perceiving auditory and visual inputs, as well as generating text and speech."}
        ],
    },
    {
        "role": "user",
        "content": [
            {"type": "video", "video": "/path/to/video.mp4"},
            {"type": "text", "text": "What can't you hear and see in this video?"},
        ],
    },
]

inputs = processor.apply_chat_template(
    conversations,
    load_audio_from_video=True,
    add_generation_prompt=True,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
    fps=1,

    # kwargs to be passed to `Qwen2-5-OmniProcessor`
    padding=True,
    use_audio_in_video=True,
).to(model.device)

# Generation params for audio or text can be different and have to be prefixed with `thinker_` or `talker_`
text_ids, audio = model.generate(**inputs, use_audio_in_video=True, thinker_do_sample=False, talker_do_sample=True)
text = processor.batch_decode(text_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)

sf.write(
    "output.wav",
    audio.reshape(-1).detach().cpu().numpy(),
    samplerate=24000,
)
print(text)

テキストのみの生成

テキスト出力のみを生成し、音声生成モデルを読み込まずに計算量を節約するには、Qwen2_5OmniThinkerForConditionalGenerationモデルを使用できます。

from transformers import Qwen2_5OmniProcessor, Qwen2_5OmniThinkerForConditionalGeneration


model = Qwen2_5OmniThinkerForConditionalGeneration.from_pretrained(
    "Qwen/Qwen2.5-Omni-7B",
    device_map="auto",
)
processor = Qwen2_5OmniProcessor.from_pretrained("Qwen/Qwen2.5-Omni-7B")

conversations = [
    {
        "role": "system",
        "content": [
            {"type": "text", "text": "You are Qwen, a virtual human developed by the Qwen Team, Alibaba Group, capable of perceiving auditory and visual inputs, as well as generating text and speech."}
        ],
    },
    {
        "role": "user",
        "content": [
            {"type": "video", "video": "/path/to/video.mp4"},
            {"type": "text", "text": "What can't you hear and see in this video?"},
        ],
    },
]

inputs = processor.apply_chat_template(
    conversations,
    load_audio_from_video=True,
    add_generation_prompt=True,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
    fps=1,

    # kwargs to be passed to `Qwen2-5-OmniProcessor`
    padding=True,
    use_audio_in_video=True,
).to(model.device)


text_ids = model.generate(**inputs, use_audio_in_video=True)
text = processor.batch_decode(text_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)

print(text)

バッチ混在メディア推論

Qwen2_5OmniThinkerForConditionalGeneration モデルを使用する場合、テキスト、画像、音声、動画など、さまざまなタイプのサンプルが混在した入力をバッチとして処理できます。以下に例を示します。

from transformers import Qwen2_5OmniForConditionalGeneration, Qwen2_5OmniProcessor


model = Qwen2_5OmniForConditionalGeneration.from_pretrained(
    "Qwen/Qwen2.5-Omni-7B",
    device_map="auto"
)
processor = Qwen2_5OmniProcessor.from_pretrained("Qwen/Qwen2.5-Omni-7B")

# Conversation with video only
conversation1 = [
    {
        "role": "system",
        "content": [
            {"type": "text", "text": "You are Qwen, a virtual human developed by the Qwen Team, Alibaba Group, capable of perceiving auditory and visual inputs, as well as generating text and speech."}
        ],
    },
    {
        "role": "user",
        "content": [
            {"type": "video", "path": "/path/to/video.mp4"},
        ]
    }
]

# Conversation with audio only
conversation2 = [
    {
        "role": "system",
        "content": [
            {"type": "text", "text": "You are Qwen, a virtual human developed by the Qwen Team, Alibaba Group, capable of perceiving auditory and visual inputs, as well as generating text and speech."}
        ],
    },
    {
        "role": "user",
        "content": [
            {"type": "audio", "path": "/path/to/audio.wav"},
        ]
    }
]

# Conversation with pure text
conversation3 = [
    {
        "role": "system",
        "content": [
            {"type": "text", "text": "You are Qwen, a virtual human developed by the Qwen Team, Alibaba Group, capable of perceiving auditory and visual inputs, as well as generating text and speech."}
        ],
    },
    {
        "role": "user",
        "content": [{"type": "text", "text": "who are you?"}],
    }
]


# Conversation with mixed media
conversation4 = [
    {
        "role": "system",
        "content": [
            {"type": "text", "text": "You are Qwen, a virtual human developed by the Qwen Team, Alibaba Group, capable of perceiving auditory and visual inputs, as well as generating text and speech."}
        ],
    },
    {
        "role": "user",
        "content": [
            {"type": "image", "path": "/path/to/image.jpg"},
            {"type": "video", "path": "/path/to/video.mp4"},
            {"type": "audio", "path": "/path/to/audio.wav"},
            {"type": "text", "text": "What are the elements can you see and hear in these media?"},
        ],
    }
]

conversations = [conversation1, conversation2, conversation3, conversation4]

inputs = processor.apply_chat_template(
    conversations,
    load_audio_from_video=True,
    add_generation_prompt=True,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
    fps=1,

    # kwargs to be passed to `Qwen2-5-OmniProcessor`
    padding=True,
    use_audio_in_video=True,
).to(model.thinker.device)

text_ids = model.generate(**inputs, use_audio_in_video=True)
text = processor.batch_decode(text_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)

print(text)

オーディオのバッチ生成

Qwen2_5OmniForConditionalGeneration は、バッチ処理による音声出力の生成をサポートしています。例えば、テキストから音声へのバッチ生成が挙げられます。バッチサイズが 1 より大きい場合、生成された音声は、各サンプルごとに独自の長さにトリム済みの波形を 1 つずつ含むリストとして返されます。これにより、短いサンプルに不要な音声がパディングされることはありません。単一サンプルの呼び出しでは、引き続き 1 つのテンソルが返されます。

import soundfile as sf
from transformers import AutoModelForTextToWaveform, AutoProcessor
import torch

model_id = "Qwen/Qwen2.5-Omni-7B"
model = AutoModelForTextToWaveform.from_pretrained(model_id, device_map="auto")
processor = AutoProcessor.from_pretrained(model_id)
sampling_rate = 24000  # output sampling rate
max_new_tokens = 200  # maximum number of tokens to generate

system_text = (
    "You are Qwen, a virtual human developed by the Qwen Team, Alibaba Group, capable of "
    "perceiving auditory and visual inputs, as well as generating text and speech."
)
texts = [
    "Hello, I'm Qwen. How can I help you today?",
    "The weather is nice today. Let's go for a walk.",
]
inputs = processor.apply_chat_template(
    [
        [
            {"role": "system", "content": [{"type": "text", "text": system_text}]},
            {
                "role": "user",
                "content": [
                    {
                        "type": "text",
                        "text": (
                            "Please read the following text aloud exactly as written, with no "
                            f"additional commentary:\n\n{text}"
                        ),
                    }
                ],
            },
        ]
        for text in texts
    ],
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt",
    processor_kwargs={"padding": True},
).to(model.device, dtype=model.dtype)

gen_kwargs = {
    "talker_do_sample": True,
    "speaker": "Ethan",  # Ethan, Chelsie
    "talker_max_new_tokens": max_new_tokens,
}
_, pred_waveform = model.generate(**inputs, **gen_kwargs)

for sample_id, audio in enumerate(pred_waveform):
    sf.write(
        f"qwen2_5_omni_output_{sample_id}.wav",
        audio.detach().to(torch.float32).cpu().numpy(),
        sampling_rate,
    )
    print(f"Saved audio to qwen2_5_omni_output_{sample_id}.wav")

使用のコツ

画像解像度のトレードオフ

このモデルは幅広い解像度の入力をサポートしています。デフォルトでは、入力にネイティブ解像度を使用しますが、より高い解像度を使用することで、計算コストの増加を代償にパフォーマンスを向上させることができます。ユーザーは、最小ピクセル数と最大ピクセル数を設定することで、ニーズに最適な構成を実現できます。

min_pixels = 128*28*28
max_pixels = 768*28*28
processor = AutoProcessor.from_pretrained("Qwen/Qwen2.5-Omni-7B", min_pixels=min_pixels, max_pixels=max_pixels)

音声出力用のプロンプト

If users need audio output, the system prompt must be set as “You are Qwen, a virtual human developed by the Qwen Team, Alibaba Group, capable of perceiving auditory and visual inputs, as well as generating text and speech.”, otherwise the audio output may not work as expected.

{
    "role": "system",
    "content": "You are Qwen, a virtual human developed by the Qwen Team, Alibaba Group, capable of perceiving auditory and visual inputs, as well as generating text and speech.",
}

音声出力を使用するかどうか

モデルはテキスト出力と音声出力の両方をサポートしています。音声出力を必要としない場合は、from_pretrained 関数で enable_audio_output を設定できます。このオプションにより、GPU メモリを約 ~2GB 節約できますが、generate 関数の return_audio オプションは False にのみ設定可能になります。

model = Qwen2_5OmniForConditionalGeneration.from_pretrained(
    "Qwen/Qwen2.5-Omni-7B",
    device_map="auto",
    enable_audio_output=False,
)

柔軟な体験を得るために、from_pretrained 関数でモデルを初期化する際に enable_audio_output を True に設定し、generate 関数を呼び出す際にオーディオを返すかどうかを決定することを推奨します。return_audio が False に設定されている場合、モデルはテキスト出力のみを返すため、テキストレスポンスをより高速に取得できます。

model = Qwen2_5OmniForConditionalGeneration.from_pretrained(
    "Qwen/Qwen2.5-Omni-7B",
    device_map="auto",
    enable_audio_output=True,
)
...
text_ids = model.generate(**inputs, return_audio=False)

出力音声のボイスタイプを変更する

Qwen2.5-Omni supports the ability to change the voice of the output audio. Users can use the speaker parameter of generate function to specify the voice type. The "Qwen/Qwen2.5-Omni-7B" checkpoint support two voice types: Chelsie and Ethan, while Chelsie is a female voice and Ethan is a male voice. By default, if speaker is not specified, the default voice type is Chelsie.

text_ids, audio = model.generate(**inputs, speaker="Chelsie")
text_ids, audio = model.generate(**inputs, speaker="Ethan")

Flash-Attention 2 を使用して生成を高速化

まず、Flash Attention 2 の最新バージョンをインストールしてください。

pip install -U flash-attn --no-build-isolation

また、FlashAttention 2 に対応するハードウェアが必要です。詳細については、flash attention リポジトリの公式ドキュメントを参照してください。FlashAttention-2 は、モデルが torch.float16 または torch.bfloat16 で読み込まれている場合のみ使用できます。

FlashAttention-2 を使用してモデルを読み込み、実行するには、モデルの読み込み時に attn_implementation="flash_attention_2" を追加します:

from transformers import Qwen2_5OmniForConditionalGeneration


model = Qwen2_5OmniForConditionalGeneration.from_pretrained(
    "Qwen/Qwen2.5-Omni-7B",
    device_map="auto",
    attn_implementation="flash_attention_2",
)

Qwen2_5OmniConfig

class transformers.Qwen2_5OmniConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonethinker_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetalker_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetoken2wav_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneenable_audio_output: bool = True )

パラメータ

  • thinker_config (dict、省略可) — 基盤となるthinkerサブモデルの設定です。
  • talker_config (dict、任意) — 基盤となる talker サブモデルの設定です。
  • token2wav_config (dict, 任意) — 基盤となるコーデックサブモデルの設定です。
  • enable_audio_output (bool、任意、デフォルトはTrue) — 音声出力を有効にし、talkerおよびtoken2wavモジュールを読み込むかどうかを指定します。

これは、Qwen2 5 OmniModel の設定を保存するための設定クラスです。指定された引数に基づいて Qwen2 5 Omni モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、Qwen/Qwen2.5-Omni-7B と同様の設定が得られます。

設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。

例:

>>> from transformers import (
...     Qwen2_5OmniThinkerConfig,
...     Qwen2_5OmniTalkerConfig,
...     Qwen2_5OmniToken2WavConfig,
...     Qwen2_5OmniForConditionalGeneration,
...     Qwen2_5OmniConfig,
... )

>>> # Initializing sub-modules configurations.
>>> thinker_config = Qwen2_5OmniThinkerConfig()
>>> talker_config = Qwen2_5OmniTalkerConfig()
>>> token2wav_config = Qwen2_5OmniToken2WavConfig()


>>> # Initializing a module style configuration
>>> configuration = Qwen2_5OmniConfig(
...     thinker_config, talker_config, token2wav_config
... )

>>> # Initializing a model (with random weights)
>>> model = Qwen2_5OmniForConditionalGeneration(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

get_text_config

< >

( *args**kwargs )

パラメータ

  • decoder (Optional[bool]、任意、デフォルトは False) — True に設定すると、デコーダーの構成ファイル名のみを検索します。

テキスト I/O で使用される設定を返します。ほとんどのモデルでは、元の設定インスタンス自体が返されます。特定の複合モデルでは、有効な名前のセットの下に配置されています。

Qwen2_5OmniVisionEncoderConfig

class transformers.Qwen2_5OmniVisionEncoderConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonedepth: int = 32hidden_size: int = 3584hidden_act: str = 'silu'intermediate_size: int = 3420num_heads: int = 16in_channels: int = 3patch_size: int | list[int] | tuple[int, int] = 14spatial_merge_size: int = 2temporal_patch_size: int | list[int] | tuple[int, int] = 2window_size: int = 112out_hidden_size: int = 3584fullatt_block_indexes: list[int] | tuple[int, ...] = (7, 15, 23, 31)initializer_range: float = 0.02rope_parameters: dict | None = None )

パラメータ

  • depth (int、任意、デフォルトは32) — ビジョンエンコーダーにおける Transformer レイヤーの数。
  • hidden_size (int、任意、デフォルトは3584) — 隠れ表現の次元数。
  • hidden_act (str、任意、デフォルトは silu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、 "relu"、"silu" など。
  • intermediate_size (int、任意、デフォルトは 3420) — MLP 表現の次元数。
  • num_heads (int、任意、デフォルトは16) — Transformerデコーダーの各アテンション層におけるアテンションヘッドの数。
  • in_channels (int、任意、デフォルトは3) — 入力チャネル数。
  • patch_size (Union[int, list[int], tuple[int, int]]、任意、デフォルトは14) — 各パッチのサイズ(解像度)です。
  • spatial_merge_size (int, 省略可、デフォルトは 2) — 隣接するパッチをマージしてビジュアルトークンの数を削減するために使用される、空間マージウィンドウのサイズです。
  • temporal_patch_size (Union[int, list[int], tuple[int, int]]、任意、デフォルトは 2) — 動画入力における3Dパッチ埋め込みで使用する時間方向のパッチサイズ。
  • window_size (int、任意、デフォルトは 11) — ウィンドウのサイズ。
  • out_hidden_size (int, 任意、デフォルトは 3584) — ビジョンモデルの出力隠れ層サイズです。
  • fullatt_block_indexes (int、任意、デフォルトは [7, 15, 23, 31]) — フルアテンションを使用するレイヤーのインデックス
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
  • rope_parameters (dict, 任意) — RoPE 埋め込みの設定パラメータを含む辞書です。辞書には rope_theta の値が含まれており、より長い max_position_embeddings で RoPE を使用する場合、スケーリングに使用されるパラメータが任意で含まれます。

これは、Qwen2 5 OmniModel の設定を保存するための設定クラスです。指定された引数に基づいて Qwen2 5 Omni モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、Qwen/Qwen2.5-Omni-7B と同様の設定が得られます。

設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。

例:

>>> from transformers import Qwen2_5OmniVisionEncoderConfig, Qwen2_5OmniVisionEncoder

>>> # Initializing a Qwen2_5OmniVisionEncoderConfig
>>> configuration = Qwen2_5OmniVisionEncoderConfig()

>>> # Initializing a Qwen2_5OmniVisionEncoder (with random weights)
>>> model = Qwen2_5OmniVisionEncoder(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

Qwen2_5OmniTextConfig

クラス transformers.Qwen2_5OmniTextConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 152064hidden_size: int = 3584intermediate_size: int = 18944num_hidden_layers: int = 28num_attention_heads: int = 28num_key_value_heads: int | None = 4hidden_act: str = 'silu'max_position_embeddings: int = 32768initializer_range: float = 0.02rms_norm_eps: float = 1e-06use_cache: bool = Truerope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneuse_sliding_window: bool = Falsesliding_window: int | None = 32768max_window_layers: int = 28layer_types: list[str] | None = Noneattention_dropout: float | int = 0.0pad_token_id: int | None = Nonebos_token_id: int | None = Noneeos_token_id: int | list[int] | None = Nonetie_word_embeddings: bool = True )

パラメータ

  • vocab_size (int、任意、デフォルトは 152064) — モデルの語彙サイズです。input_ids で表現できるトークンの種類数を定義します。
  • hidden_size (int、任意、デフォルトは3584) — 隠れ表現の次元数。
  • intermediate_size (int、任意、デフォルトは 18944) — MLP 表現の次元数。
  • num_hidden_layers (int、任意、デフォルトは 28) — Transformer デコーダーの隠れ層の数。
  • num_attention_heads (int、任意、デフォルトは 28) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。
  • num_key_value_heads (int、任意、デフォルトは4) — Grouped Query Attention の実装に使用する key_value ヘッドの数を指定します。 num_key_value_heads=num_attention_heads の場合、モデルは Multi Head Attention (MHA) を使用し、 num_key_value_heads=1 の場合は Multi Query Attention (MQA) を使用し、それ以外の場合は GQA が使用されます。 マルチヘッドのチェックポイントを GQA のチェックポイントに変換する際は、各グループの key と value ヘッドは、そのグループ内の元のすべてのヘッドを平均プーリングして構築する必要があります。詳細については、この論文を参照してください。指定しない場合、デフォルトで num_attention_heads が使用されます。
  • hidden_act (str、任意、デフォルトは silu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、 "relu"、"silu" など。
  • max_position_embeddings (int、任意、デフォルトは 32768) — このモデルが使用される可能性のある最大シーケンス長です。
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
  • rms_norm_eps (float、任意、デフォルトは 1e-06) — RMS 正規化レイヤーで使用する epsilon。
  • use_cache (bool、任意、デフォルトは True) — モデルが最後のキー/バリューの注意を返すかどうか(すべてのモデルで利用されるわけではありません)。config.is_decoder=True の場合、またはモデルがデコーダー専用の生成モデルである場合にのみ関連します。
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], 省略可) — RoPE 埋め込みの設定パラメータを含む辞書です。この辞書には rope_theta の値が含まれており、より長い max_position_embeddings で RoPE を使用する場合にスケーリングに使用されるパラメータが任意で含まれます。
  • use_sliding_window (bool、任意、デフォルトはFalse) — スライディングウィンドウアテンションを使用するかどうか。
  • sliding_window (int、任意、デフォルトは 32768) — スライディングウィンドウアテンションのウィンドウサイズ。None の場合、スライディングウィンドウは適用されません。
  • max_window_layers (int、任意、デフォルトは 28) — フルアテンションを使用するレイヤーの数です。最初の max_window_layers 個のレイヤーはフルアテンションを使用し、それ以降の追加レイヤーは SWA(Sliding Window Attention)を使用します。
  • layer_types (list[str]、省略可) — 各レイヤーのインデックスとレイヤータイプを明示的に対応付けるリストです。指定しない場合、config の値に基づいて自動的に生成されます。
  • attention_dropout (Union[float, int]、任意、デフォルトは 0.0) — アテンション確率のドロップアウト率です。
  • pad_token_id (int, 任意) — 語彙内でパディングに使用されるトークン ID。
  • bos_token_id (int, 省略可) — 語彙におけるストリーム開始に使用されるトークン ID。
  • eos_token_id (Union[int, list[int]], 省略可) — 語彙内でストリーム終了に使用されるトークン ID。
  • tie_word_embeddings (bool、任意、デフォルトは True) — モデルの tied_weights_keys マッピングに従って重み埋め込みを共有するかどうかを指定します。

これは、Qwen2 5 OmniModel の設定を保存するための設定クラスです。指定された引数に基づいて Qwen2 5 Omni モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、Qwen/Qwen2.5-Omni-7B と同様の設定が得られます。

設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。

例:

>>> from transformers import Qwen2_5OmniThinkerForConditionalGeneration, Qwen2_5OmniThinkerConfig, Qwen2_5OmniAudioEncoderConfig, Qwen2_5OmniVisionEncoderConfig

>>> # Initializing a Qwen2_5OmniAudioEncoder config
>>> audio_config = Qwen2_5OmniAudioEncoderConfig()

>>> # Initializing a Qwen2_5OmniVisionEncoder config
>>> vision_config = Qwen2_5OmniVisionEncoderConfig()

>>> # Initializing a Qwen2.5OmniThinker configuration
>>> configuration = Qwen2_5OmniThinkerConfig(audio_config, vision_config)

>>> # Initializing a model from the Qwen-Omni style configuration
>>> model = Qwen2_5OmniThinkerForConditionalGeneration(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

Qwen2_5OmniDiTConfig

クラス transformers.Qwen2_5OmniDiTConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 1024num_hidden_layers: int = 22num_attention_heads: int = 16ff_mult: int = 2emb_dim: int = 512head_dim: int = 64rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonemax_position_embeddings: int = 32768block_size: int = 24look_ahead_layers: list[int] | tuple[int, ...] = (10,)look_backward_layers: list[int] | tuple[int, ...] = (0, 20)repeats: int = 2num_embeds: int = 8193mel_dim: int = 80dropout: float | int = 0.1enc_emb_dim: int = 192enc_dim: int = 128enc_channels: list[int] | tuple[int, ...] = (256, 256, 256, 256, 768)enc_kernel_sizes: list[int] | tuple[int, ...] = (5, 3, 3, 3, 1)enc_dilations: list[int] | tuple[int, ...] = (1, 2, 3, 4, 1)enc_attention_channels: int = 64enc_res2net_scale: int = 2enc_se_channels: int = 64 )

パラメータ

  • hidden_size (int、任意、デフォルトは 1024) — 隠れ表現の次元数。
  • num_hidden_layers (int、任意、デフォルトは 22) — Transformer デコーダーの隠れ層の数。
  • num_attention_heads (int、任意、デフォルトは 16) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。
  • ff_mult (int、任意、デフォルト値は 2) — 各 Transformer ブロックにおけるフィードフォワード層の倍率です。
  • emb_dim (int、任意、デフォルトは 512) — 埋め込み層の次元数です。
  • head_dim (int、任意、デフォルトは64) — アテンションヘッドの次元です。None の場合、hidden_size // num_attention_heads がデフォルトとして使用されます。
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], 省略可) — RoPE 埋め込みの設定パラメータを含む辞書です。この辞書には rope_theta の値が含まれており、より長い max_position_embeddings で RoPE を使用する場合にスケーリングに使用されるパラメータが任意で含まれます。
  • max_position_embeddings (int、任意、デフォルトは 32768) — このモデルが使用される可能性のある最大シーケンス長です。
  • block_size (int、任意、デフォルトは 64)— 各処理ブロックに含まれるトークン(フレーム)の数。
  • look_ahead_layers (list[int]、任意、デフォルトは [10]) — 未来のブロックへの注意を許可される Transformer レイヤーの数
  • look_backward_layers (list[int]、任意、デフォルトは [0, 20]) — 現在のブロック境界を超えて過去のブロックに注意を払う Transformer レイヤーの数
  • repeats (int、任意、デフォルトは 2)— codec embeddings が繰り返し使用される回数を指定します。
  • num_embeds (int、任意、デフォルトは 8193) — codec におけるユニークな埋め込みの数を指定します。
  • mel_dim (int, 任意、デフォルトは 80) — メルスペクトログラムの次元数。
  • dropout (Union[float, int]、任意、デフォルト値は0.1) — すべての dropout レイヤーの比率です。
  • enc_emb_dim (int、任意、デフォルトは 192) — 事前学習済みスピーカー埋め込みの次元数。
  • enc_dim (int、任意、デフォルトは 128) — エンコーダー出力の次元数。
  • enc_channels (list[int]、任意、デフォルトは [256, 256, 256, 256, 768]) — エンコーダー内の各 TDNN/SERes2Net レイヤーの出力チャネル数を表すリストです。
  • enc_kernel_sizes (list[int]、任意、デフォルトは [5, 3, 3, 3, 1]) — エンコーダーの各レイヤーにおけるカーネルサイズのリストです。
  • enc_dilations (list[int]、任意、デフォルトは [1, 2, 3, 4, 1]) — エンコーダーの各レイヤーにおける dilation のリストです。
  • enc_attention_channels (int、任意、デフォルトは 64) — SqueezeExcitationBlock におけるアテンションチャネルの数です。
  • enc_res2net_scale (int、任意、デフォルト値は 2) — エンコーダー内の Res2Net ブロックのスケールです。
  • enc_se_channels (int、任意、デフォルトは 64)— SqueezeExcitationBlock における squeeze 後の出力チャネル数です。

これは、Qwen2 5 OmniModel の設定を保存するための設定クラスです。指定された引数に基づいて Qwen2 5 Omni モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、Qwen/Qwen2.5-Omni-7B と同様の設定が得られます。

設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。

Qwen2_5OmniBigVGANConfig

クラス transformers.Qwen2_5OmniBigVGANConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonemel_dim: int = 80upsample_initial_channel: int = 1536resblock_kernel_sizes: list[int] | tuple[int, ...] = (3, 7, 11)resblock_dilation_sizes: list | tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5))upsample_rates: list[int] | tuple[int, ...] = (5, 3, 2, 2, 2, 2)upsample_kernel_sizes: list[int] | tuple[int, ...] = (11, 7, 4, 4, 4, 4) )

パラメータ

  • mel_dim (int, 任意、デフォルトは 80) — メルスペクトログラムの次元数。
  • upsample_initial_channel (int、任意、デフォルト値は 1536) — 初期アップサンプリング層のチャネル数です。
  • resblock_kernel_sizes (list[int]、任意、デフォルトは [3, 7, 11]) — 各残差ブロックのカーネルサイズを指定するリストです。
  • resblock_dilation_sizes (list[list[int]]、任意、デフォルトは [[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — 各残差ブロックのディレイションサイズを指定するリストです。
  • upsample_rates (list[int]、任意、デフォルトは [5, 3, 2, 2, 2, 2]) — 各アップサンプリング層のアップサンプリング率のリストです。
  • upsample_kernel_sizes (list[int]、任意、デフォルトは [11, 7, 4, 4, 4, 4]) — 各アップサンプリング層のカーネルサイズを指定するリストです。

これは、Qwen2 5 OmniModel の設定を保存するための設定クラスです。指定された引数に基づいて Qwen2 5 Omni モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、Qwen/Qwen2.5-Omni-7B と同様の設定が得られます。

設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。

Qwen2_5OmniAudioEncoderConfig

クラス transformers.Qwen2_5OmniAudioEncoderConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonenum_mel_bins: int = 128encoder_layers: int = 32encoder_attention_heads: int = 20encoder_ffn_dim: int = 5120d_model: int = 1280dropout: float | int = 0.0attention_dropout: float | int = 0.0activation_function: str = 'gelu'activation_dropout: float | int = 0.0scale_embedding: bool = Falseinitializer_range: float = 0.02max_source_positions: int = 1500n_window: int = 100output_dim: int = 3584 )

パラメータ

  • num_mel_bins (int, 任意、デフォルトは 128) — 入力フレームごとに使用される mel 特徴の数を指定します。AutoFeatureExtractor クラスで使用された値と一致させる必要があります。
  • encoder_layers (int、任意、デフォルトは 32) — Transformer エンコーダーの隠れ層の数です。設定されていない場合は、num_layers と同じ値が使用されます。
  • encoder_attention_heads (int、任意、デフォルトは 20) — Transformer エンコーダーの各アテンション層におけるアテンションヘッドの数。
  • encoder_ffn_dim (int、任意、デフォルトは 5120) — エンコーダー内の「中間」層(フィードフォワード層と呼ばれることが多い)の次元数。
  • d_model (int、任意、デフォルトは 1280) — エンコーダ層とプーラ層のサイズ。
  • dropout (Union[float, int]、省略可、デフォルト値は0.0) — すべての dropout レイヤーの比率です。
  • attention_dropout (Union[float, int]、任意、デフォルトは 0.0) — アテンション確率のドロップアウト率です。
  • activation_function (str、任意、デフォルトは gelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、 "relu"、"silu" など。
  • activation_dropout (Union[float, int]、任意、デフォルトは 0.0) — 全結合層内の活性化に対する dropout 率です。
  • scale_embedding (bool、任意、デフォルトは False) — 埋め込みを sqrt(d_model) で割ることでスケーリングするかどうか。
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
  • max_source_positions (int、任意、デフォルトは 1500) — このモデルが使用される可能性がある log-mel フィルターバンク特徴量の最大シーケンス長です。
  • n_window (int、任意、デフォルトは 100) — AudioEncoder における conv と flash attn のチャンクサイズです。
  • output_dim (int、任意、デフォルトは 3584) — AudioEncoder の出力次元です。

これは、Qwen2 5 OmniModel の設定を保存するための設定クラスです。指定された引数に基づいて Qwen2 5 Omni モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、Qwen/Qwen2.5-Omni-7B と同様の設定が得られます。

設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。

例:

>>> from transformers import Qwen2_5OmniAudioEncoderConfig, Qwen2_5OmniAudioEncoder

>>> # Initializing a Qwen2_5OmniAudioEncoderConfig
>>> configuration = Qwen2_5OmniAudioEncoderConfig()

>>> # Initializing a Qwen2_5OmniAudioEncoder (with random weights)
>>> model = Qwen2_5OmniAudioEncoder(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

Qwen2_5OmniProcessor

class transformers.Qwen2_5OmniProcessor

< >

( image_processor = Nonevideo_processor = Nonefeature_extractor = Nonetokenizer = Nonechat_template = None )

パラメータ

  • image_processor (Qwen2VLImageProcessor) — 画像プロセッサは必須の入力です。
  • video_processor (Qwen2VLVideoProcessor) — 動画プロセッサは必須の入力です。
  • feature_extractor (WhisperFeatureExtractor) — フィーチャーエクストラクターは必須の入力です。
  • tokenizer (Qwen2Tokenizer) — トークナイザーは必須の入力です。
  • chat_template (str) — チャット内のメッセージのリストをトークン化可能な文字列に変換するための Jinja テンプレート。

画像プロセッサ、動画プロセッサ、特徴量抽出器、トークナイザーを単一のプロセッサにラップするQwen2_5OmniProcessorを構築します。

Qwen2_5OmniProcessor は、Qwen2VLImageProcessor、Qwen2VLVideoProcessor、WhisperFeatureExtractor、および Qwen2Tokenizer のすべての機能を提供します。詳細については、~Qwen2VLImageProcessor、~Qwen2VLVideoProcessor、~WhisperFeatureExtractor、および ~Qwen2Tokenizer を参照してください。

__call__

< >

( text: str | list[str] | list[list[str]] = Noneimages: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Nonevideos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]], NoneType] = Noneaudio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], NoneType] = None**kwargs: *<class 'transformers.models.qwen2_5_omni.processing_qwen2_5_omni.Qwen2_5OmniProcessorKwargs'> ) → ~feature_extraction_utils.BatchFeature

パラメータ

  • text (Union[str, list[str], list[list[str]]]、省略可) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは文字列、または文字列のリスト(事前トークン化済み文字列)であることができます。事前トークン化済みの入力を渡す場合は、バッチ入力との曖昧さを避けるために is_split_into_words=True を設定してください。
  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], 任意) — 前処理対象の画像です。ピクセル値が 0 から 255 の範囲にある単一の画像またはバッチを想定しています。ピクセル値が 0 から 1 の範囲にある画像を渡す場合は、do_rescale=False を設定してください。
  • videos (Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor], list[list[PIL.Image.Image]], list[list[numpy.ndarray]], list[list[torch.Tensor]], ~video_utils.URL, list[~video_utils.URL], list[list[~video_utils.URL]], ~video_utils.Path, list[~video_utils.Path], list[list[~video_utils.Path]]], 任意) — 前処理を行う動画です。ピクセル値が 0 から 255 の範囲にある、単一の動画またはバッチの動画を想定しています。ピクセル値が 0 から 1 の範囲にある動画を渡す場合は、do_rescale=False を設定してください。
  • audio (Union[numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor]], 任意) — 準備対象のオーディオまたはオーディオのバッチです。各オーディオは NumPy 配列または PyTorch テンソルである必要があります。 NumPy 配列/PyTorch テンソルの場合、各オーディオの形状は (C, T) である必要があります。ここで C はチャネル数、T はオーディオのサンプル長です。
  • min_pixels (int, kwargs, optional) — リサイズ後の動画フレームの最小ピクセル数(高さ × 幅)。この閾値未満のフレームは、最小要件を満たすようにアップスケールされます。
  • max_pixels (int, kwargs, optional) — リサイズ後の動画フレームの最大ピクセル数(高さ × 幅)。この閾値を超えるフレームは、上限内に収まるようダウンスケールされます。
  • patch_size (int、kwargs、optional) — ビジョンエンコーダーが使用する空間的なパッチサイズです。動画フレームは、高さおよび幅の両方の次元において、このサイズのパッチに分割されます。
  • temporal_patch_size (int、kwargs、任意) — ビジョンエンコーダーで使用される時間方向のパッチサイズです。これにより、1つの時間パッチとしてグループ化される連続フレームの数が決まります。
  • merge_size (int, kwargs, オプション) — 空間パッチを結合するために使用されるマージサイズです。複数のパッチをマージすることで、空間情報を保持したままシーケンス長を短縮します。
  • min_frames (int, kwargs, optional) — 動画から抽出するフレームの最小数。フレーム数がこれより少ない動画は、この要件を満たすためにパディングまたは繰り返しが行われます。
  • max_frames (int, kwargs, optional) — 動画から抽出するフレームの最大数です。この制限内に収めるため、長い動画は切り詰めまたはサンプリングされます。
  • use_audio_in_video (bool、kwargs、任意、デフォルトはFalse) — 非推奨の引数です。load_audio_from_videoを使用してください。
  • load_audio_from_video (bool、kwargs、任意、デフォルトはFalse) — 動画の処理時に音声情報を取り込むかどうかを指定します。有効にすると、時間軸の整合性に基づいて音声トークンが動画トークンと交互に配置され、統合されたマルチモーダル表現が作成されます。
  • seconds_per_chunk (float、kwargs、任意、デフォルトは 2.0) — 長い動画を分割する際の、各動画チャンクの長さ(秒)です。このパラメータは、処理のために動画を時間的なセグメントに分割する方法を制御します。
  • position_id_per_seconds (int, kwargs or float, optional, defaults to 25) — The number of position IDs allocated per second of video. This parameter controls the temporal resolution of position embeddings and is used to align video tokens with audio tokens when use_audio_in_video=True.
  • return_tensors (str または TensorType, 省略可) — 設定すると、特定のフレームワークのテンソルを返します。使用可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': NumPyのnp.ndarrayオブジェクトを返します。
  • **kwargs (ProcessingKwargs、任意) — 各モダリティ(テキスト、画像、動画、音声)の追加処理オプション。モデル固有のパラメータは上記にリストされています。サポートされている引数の完全なリストについては、TypedDictクラスを参照してください。

戻り値

~feature_extraction_utils.BatchFeature

  • data (dict、任意) — call/pad メソッドによって返されるリスト/配列/テンソルの辞書(‘input_values’、‘attention_mask’ など)。
  • tensor_type (Union[None, str, TensorType]、省略可) — 初期化時に PyTorch/Numpy の Tensor 内の整数リストを変換するために、ここで tensor_type を指定できます。
  • skip_tensor_conversion (list[str] または set[str]、任意) — tensor_type が指定されている場合でも、テンソルに変換すべきでないキーのリストまたはセット。

Qwen2_5OmniForConditionalGeneration

クラス transformers.Qwen2_5OmniForConditionalGeneration

< >

( config: Qwen2_5OmniConfig )

パラメータ

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

3つのサブモデルで構成されるマルチモーダルモデルである、Qwen2.5Omniのフルモデル:

  • Qwen2_5OmniThinkerForConditionalGeneration: 因果的オートレグレッシブTransformerであり、テキスト、音声、画像、動画を入力として受け取り、テキストトークンを予測します。
  • Qwen2_5OmniTalkerForConditionalGeneration: 因果的オートレグレッシブ・トランスフォーマーであり、thinkerの隠れ状態と応答を入力として、音声トークンを予測します。
  • Qwen2_5OmniToken2WavModel: DiTモデルで、音声トークンを入力として受け取り、メルスペクトログラムを予測します。また、BigVGANボコーダーはメルスペクトログラムを入力として受け取り、波形を予測します。

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

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

forward

( *args**kwargs )

ドット区切りパス(例: torch.float32)のモック値: 属性アクセスのチェーン、呼び出しはパススルーデコレータとして動作し、repr はドット区切りパスを返し、ベースクラスとして使用するとプレーンな type ベースに置き換えられます(PEP 560 の __mro_entries__)。これにより、実際のサブクラスは通常のメタクラスを保持し、inspect.signature はモックの __init__ ではなく、実際の __init__ を読み取ります。

Qwen2_5OmniPreTrainedModelForConditionalGeneration

クラス transformers.Qwen2_5OmniPreTrainedModelForConditionalGeneration

< >

( config: PreTrainedConfig*inputs**kwargs )

get_chunked_index

< >

( token_indices: Tensortokens_per_chunk: intremove_index: int ) → list[tuple[int, int]]

パラメータ

  • token_indices (torch.Tensor、shape (seq_len, )) — トークンインデックス値の単調増加リスト。
  • t_ntoken_per_chunk (int) — チャンクあたりのトークン数(チャンクサイズの閾値として使用されます)。
  • remove_index (int) チャンク化の前にtoken_indicesから引くインデックスID —

戻り値

list[tuple[int, int]]

token_indices内のチャンクの開始インデックス(含む)と終了インデックス(含まない)を表すタプルのリストです。

トークン値の範囲に基づいて、トークンインデックスのリストをチャンクに分割します。

トークンインデックスのリストが与えられた場合、トークン値がt_ntoken_per_chunkの連続する範囲内に収まるリストのスライスを表す(start, end)インデックスのタプルのリストを返します。

例えば、t_ntoken_per_chunkが1000の場合、この関数は以下の条件を満たすようにチャンクを作成します。

  • 最初のチャンクには、トークン値が 1000 未満のものが含まれます。
  • 2番目のチャンクには1000以上かつ2000未満の値が含まれ、以下同様に続きます。

get_rope_index

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneimage_grid_thw: typing.Optional[torch.LongTensor] = Nonevideo_grid_thw: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneuse_audio_in_video: bool = Falseaudio_seqlens: typing.Optional[torch.LongTensor] = Nonesecond_per_grids: typing.Optional[torch.Tensor] = None )

パラメータ

  • input_ids (torch.LongTensor、形状 (batch_size, sequence_length)) — 語彙における入力シーケンスのトークンインデックスです。パディングを指定した場合、デフォルトでは無視されます。
  • image_grid_thw (torch.LongTensor、形状 (num_images, 3)、任意) — LLM における各画像のフィーチャー形状の時間軸、高さ、幅です。
  • video_grid_thw (torch.LongTensor、形状 (num_videos, 3)、任意) — LLM における各動画のフィーチャー形状の時間軸、高さ、幅です。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。
  • use_audio_in_video (bool、任意) — True に設定すると、動画内のオーディオを使用します。
  • audio_seqlens (torch.LongTensor、形状 (num_audios)、任意) — LLM における各オーディオの機能形状の長さです。
  • second_per_grids (torch.LongTensor、形状 (num_videos)、任意) — 3D 位置 ID における時間軸方向の各グリッドの時間間隔(秒)。

LLMにおいて、画像および動画の時間軸・高さ・幅に基づいて3D ropeインデックスを計算します。

説明: 各埋め込みシーケンスには、ビジョン埋め込みとテキスト埋め込みの両方が含まれる場合と、テキスト埋め込みのみが含まれる場合があります。

純粋なテキスト埋め込みシーケンスの場合、回転位置埋め込みは最新のLLMと違いはありません。 例: input_ids: [T T T T T]、ここでTはテキストを表します。 temporal position_ids: [0, 1, 2, 3, 4] height position_ids: [0, 1, 2, 3, 4] width position_ids: [0, 1, 2, 3, 4]

ビジョンおよびテキストの埋め込みシーケンスでは、ビジョン部分には3次元の回転位置埋め込みを、テキスト部分には1次元の回転位置埋め込みを計算します。 例: 時間軸 (Time): 3つのパッチ。動画の時間的な異なるセグメントを表します。 高さ (Height): 2つのパッチ。各フレームを垂直方向に分割します。 幅 (Width): 2つのパッチ。各フレームを水平方向に分割します。 また、いくつかの重要なパラメータがあります: fps (Frames Per Second): 動画のフレームレートで、1に設定されています。これは1秒ごとに1フレームが処理されることを意味します。 tokens_per_second: 非常に重要なパラメータです。動画の1秒間隔に概念的に詰め込まれる「タイムステップ」または「時間トークン」の数を決定します。ここでは1秒あたり25トークンです。したがって、動画の1秒は25個の独立した時間点で表されます。本質的に時間的な粒度を定義します。 temporal_patch_size: 1つの時間パッチを構成するフレーム数。ここでは2フレームです。 interval: 時間位置IDのステップサイズで、tokens_per_second temporal_patch_size / fps として計算されます。この場合、25 2 / 1 = 50 です。これは、各時間パッチの時間位置IDに50の差があることを意味します。 input_ids: [V V V V V V V V V V V V T T T T T]、ここで V はビジョンを表します。 vision temporal position_ids: [0, 0, 0, 0, 50, 50, 50, 50, 100, 100, 100, 100] vision height position_ids: [0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1] vision width position_ids: [0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1] text temporal position_ids: [101, 102, 103, 104, 105] text height position_ids: [101, 102, 103, 104, 105] text width position_ids: [101, 102, 103, 104, 105] ここでは、テキストの開始 position_ids を、ビジョンの position_ids の最大値に1を加えた値として計算します。

Qwen2_5OmniThinkerConfig

クラス transformers.Qwen2_5OmniThinkerConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneaudio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_token_index: int = 151646image_token_index: int = 151655video_token_index: int = 151656position_id_per_seconds: int = 25seconds_per_chunk: int = 2audio_start_token_id: int = 151647audio_end_token_id: int = 151648user_token_id: int = 872initializer_range: float = 0.02tie_word_embeddings: bool = False )

パラメータ

  • audio_config (Union[dict, ~configuration_utils.PreTrainedConfig]、任意) — オーディオバックボーンの config オブジェクトまたは辞書。
  • vision_config (Union[dict, ~configuration_utils.PreTrainedConfig]、任意) — ビジョンバックボーンの config オブジェクトまたは辞書です。
  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig]、省略可) — テキストバックボーンの設定オブジェクトまたは辞書。
  • audio_token_index (int、任意、デフォルトは 151646) — 入力音声のプレースホルダーとして使用されるオーディオトークンのインデックスです。
  • image_token_index (int、任意、デフォルトは 151655) — 入力画像のプレースホルダーとして使用される画像トークンのインデックスです。
  • video_token_index (int、任意、デフォルトは 151656) — 入力動画のプレースホルダーとして使用される動画トークンのインデックスです。
  • position_id_per_seconds (int、任意、デフォルト値は 25)— 1 秒あたりの position id の増分です。
  • seconds_per_chunk (int、任意、デフォルトは 2) — 音声および動画データのチャンクの長さ(秒)。
  • audio_start_token_id (int、任意、デフォルトは 151647) — オーディオプロンプトをエンコードするためのオーディオ開始トークンのインデックスです。
  • audio_end_token_id (int、任意、デフォルトは 151648) — 音声プロンプトをエンコードするための音声終了トークンのインデックスです。
  • user_token_id (`int, optional, デフォルトは 872) — ユーザートークンをエンコードするためのユーザートークンインデックス。
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
  • tie_word_embeddings (bool、任意、デフォルトは False) — モデルの tied_weights_keys マッピングに従って重み埋め込みを共有するかどうかを指定します。

これは、Qwen2 5 OmniModel の設定を保存するための設定クラスです。指定された引数に基づいて Qwen2 5 Omni モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、Qwen/Qwen2.5-Omni-7B と同様の設定が得られます。

設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。

例:

>>> from transformers import Qwen2_5OmniThinkerForConditionalGeneration, Qwen2_5OmniThinkerConfig, Qwen2_5OmniAudioEncoderConfig, Qwen2_5OmniVisionEncoderConfig

>>> # Initializing a Qwen2_5OmniAudioEncoder config
>>> audio_config = Qwen2_5OmniAudioEncoderConfig()

>>> # Initializing a Qwen2_5OmniVisionEncoder config
>>> vision_config = Qwen2_5OmniVisionEncoderConfig()

>>> # Initializing a Qwen2_5OmniTextConfig config
>>> text_config = Qwen2_5OmniTextConfig()

>>> # Initializing a Qwen2.5OmniThinker configuration
>>> configuration = Qwen2_5OmniThinkerConfig(audio_config, vision_config, text_config)

>>> # Initializing a model from the Qwen-Omni style configuration
>>> model = Qwen2_5OmniThinkerForConditionalGeneration(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

Qwen2_5OmniThinkerModel

class transformers.Qwen2_5OmniThinkerModel

< >

( config: Qwen2_5OmniThinkerConfig )

パラメータ

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

音声バックボーンと言語モデルで構成されるQwen2.5OmniThinkerモデル。

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.FloatTensor] = Nonepixel_values: typing.Optional[torch.FloatTensor] = Nonepixel_values_videos: typing.Optional[torch.FloatTensor] = Noneimage_grid_thw: typing.Optional[torch.LongTensor] = Nonevideo_grid_thw: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonefeature_attention_mask: typing.Optional[torch.Tensor] = Noneaudio_feature_lengths: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = Noneuse_audio_in_video: bool | None = Nonevideo_second_per_grid: typing.Optional[torch.LongTensor] = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.FloatTensor)

パラメータ

  • input_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。

    インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。

    入力IDとは何ですか?

  • input_features (torch.FloatTensor、形状 (batch_size, sequence_length, feature_dim)、任意) — 入力音声特徴に対応するテンソルです。音声特徴は WhisperFeatureExtractor を使用して取得できます。詳細は WhisperFeatureExtractor.call() を参照してください(Qwen2_5OmniProcessor は音声の処理に WhisperFeatureExtractor を使用します)。
  • pixel_values (torch.FloatTensor、形状 (batch_size, num_channels, image_size, image_size)、任意) — 入力画像に対応するテンソルです。ピクセル値は Qwen2VLImageProcessor を使用して取得できます。詳細については Qwen2VLImageProcessor.call() を参照してください(Qwen2_5OmniProcessor は画像の処理に Qwen2VLImageProcessor を使用します)。
  • pixel_values_videos (torch.FloatTensor、形状 (batch_size, num_frames, num_channels, frame_size, frame_size)、任意) — 入力動画に対応するテンソルです。動画のピクセル値は、Qwen2VLVideoProcessor を使用して取得できます。詳細については、Qwen2VLVideoProcessor.call() を参照してください(Qwen2_5OmniProcessor は動画の処理に Qwen2VLVideoProcessor を使用します)。
  • image_grid_thw (torch.LongTensor、形状 (num_images, 3)、任意) — LLM における各画像のフィーチャー形状の時間軸、高さ、幅です。
  • video_grid_thw (torch.LongTensor、形状 (num_videos, 3)、任意) — LLM における各動画のフィーチャー形状の時間軸、高さ、幅です。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

    アテンションマスクとは?

  • feature_attention_mask (torch.Tensor の形状 (batch_size, feature_sequence_length), 、任意) — パディングのフィーチャーインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。
  • audio_feature_lengths (torch.LongTensor、形状 (num_audios)、任意) — LLMにおける各オーディオのフィーチャー形状の長さです。
  • position_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲 [0, config.n_positions - 1].

    ポジションIDとは?

  • 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 のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。
  • use_audio_in_video (bool, 任意) — 動画内のオーディオトラックを使用するかどうか。process_audio_info のパラメータと同じである必要があります。
  • video_second_per_grid (torch.LongTensor、形状 (num_videos)、任意) — 各動画のグリッドあたりの秒数。時間方向の特徴量マッピングに使用されます。
  • mm_encoder_outputs (dict[str, ~modeling_outputs.BaseModelOutputWithPooling], 省略可) — キーがサポートされているモダリティ、値がそのモダリティのエンコード済み出力である辞書。各エンコード済み出力は、(pooler_output, 省略可: last_hidden_states, 省略可: hidden_states, 省略可: attentions) pooler_output (形状 (batch_size, sequence_length, hidden_size), 省略可) からなるタプルです。pooler_output は、エンコーダーのマルチモーダル特徴量をテキスト埋め込みにマージしたシーケンスです。

戻り値

BaseModelOutputWithPast または tuple(torch.FloatTensor)

torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または BaseModelOutputWithPast。設定(Qwen2_5OmniConfig)や入力に応じて、さまざまな要素で構成されます。

Qwen2_5OmniThinkerModelの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 (Cache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    自己アテンションブロック(および config.is_encoder_decoder=True の場合、クロスカレンションブロック)の事前計算済みヒドゥンステート(キーとバリュー)を保持します。これらは逐次デコーディングを高速化するために使用できます(past_key_values 入力参照)。

  • 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、および任意の初期埋め込み出力。

  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

Qwen2_5OmniThinkerForConditionalGeneration

class transformers.Qwen2_5OmniThinkerForConditionalGeneration

< >

( config: Qwen2_5OmniThinkerConfig )

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.FloatTensor] = Nonepixel_values: typing.Optional[torch.FloatTensor] = Nonepixel_values_videos: typing.Optional[torch.FloatTensor] = Noneimage_grid_thw: typing.Optional[torch.LongTensor] = Nonevideo_grid_thw: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonefeature_attention_mask: typing.Optional[torch.Tensor] = Noneaudio_feature_lengths: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Noneuse_audio_in_video: bool | None = Nonevideo_second_per_grid: typing.Optional[torch.LongTensor] = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Qwen2_5OmniThinkerCausalLMOutputWithPast or tuple(torch.FloatTensor)

パラメータ

  • input_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。

    インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。

    入力IDとは何ですか?

  • input_features (torch.FloatTensor、形状 (batch_size, sequence_length, feature_dim)、任意) — 入力音声特徴に対応するテンソルです。音声特徴は WhisperFeatureExtractor を使用して取得できます。詳細は WhisperFeatureExtractor.call() を参照してください(Qwen2_5OmniProcessor は音声の処理に WhisperFeatureExtractor を使用します)。
  • pixel_values (torch.FloatTensor、形状 (batch_size, num_channels, image_size, image_size)、任意) — 入力画像に対応するテンソルです。ピクセル値は Qwen2VLImageProcessor を使用して取得できます。詳細については Qwen2VLImageProcessor.call() を参照してください(Qwen2_5OmniProcessor は画像の処理に Qwen2VLImageProcessor を使用します)。
  • pixel_values_videos (torch.FloatTensor、形状 (batch_size, num_frames, num_channels, frame_size, frame_size)、任意) — 入力動画に対応するテンソルです。動画のピクセル値は、Qwen2VLVideoProcessor を使用して取得できます。詳細については、Qwen2VLVideoProcessor.call() を参照してください(Qwen2_5OmniProcessor は動画の処理に Qwen2VLVideoProcessor を使用します)。
  • image_grid_thw (torch.LongTensor、形状 (num_images, 3)、任意) — LLM における各画像のフィーチャー形状の時間軸、高さ、幅です。
  • video_grid_thw (torch.LongTensor、形状 (num_videos, 3)、任意) — LLM における各動画のフィーチャー形状の時間軸、高さ、幅です。
  • attention_mask (torch.Tensor の形状 (batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。

    アテンションマスクとは?

  • feature_attention_mask (torch.Tensor の形状 (batch_size, feature_sequence_length), 、任意) — パディングのフィーチャーインデックスに対するアテンションを回避するためのマスク。 [0, 1]:
    • マスクされていないトークンに対して1
    • マスクされたトークンに対しては 0 です。
  • audio_feature_lengths (torch.LongTensor、形状 (num_audios)、任意) — LLMにおける各オーディオのフィーチャー形状の長さです。
  • position_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲 [0, config.n_positions - 1].

    ポジションIDとは?

  • 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)、任意) — マスク言語モデリング損失を計算するためのラベルです。インデックスは [0, ..., config.vocab_size] の範囲内であるか、-100 である必要があります(input_ids の docstring を参照)。インデックスが -100 に設定されたトークンは無視(マスク)され、損失は [0, ..., config.vocab_size] の範囲内のラベルを持つトークンに対してのみ計算されます。
  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。
  • use_audio_in_video (bool, 任意) — 動画内のオーディオトラックを使用するかどうか。process_audio_info のパラメータと同じである必要があります。
  • video_second_per_grid (torch.LongTensor、形状 (num_videos)、任意) — 各動画のグリッドあたりの秒数。時間方向の特徴量マッピングに使用されます。
  • mm_encoder_outputs (dict[str, ~modeling_outputs.BaseModelOutputWithPooling], 省略可) — キーがサポートされているモダリティ、値がそのモダリティのエンコード済み出力である辞書。各エンコード済み出力は、(pooler_output, 省略可: last_hidden_states, 省略可: hidden_states, 省略可: attentions) pooler_output (形状 (batch_size, sequence_length, hidden_size), 省略可) からなるタプルです。pooler_output は、エンコーダーのマルチモーダル特徴量をテキスト埋め込みにマージしたシーケンスです。

戻り値

Qwen2_5OmniThinkerCausalLMOutputWithPast または tuple(torch.FloatTensor)

Qwen2_5OmniThinkerCausalLMOutputWithPast、または torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(Qwen2_5OmniConfig)や入力に応じて、さまざまな要素で構成されます。

Qwen2_5OmniThinkerForConditionalGenerationの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 (Cache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    逐次デコーディングを高速化するために使用できる(past_key_values 入力参照)、事前計算済みの隠れ状態(自己注意ブロックのキーとバリュー)が含まれます。

  • 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、および任意の初期埋め込み出力。

  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

  • rope_deltas (torch.LongTensor、形状 (batch_size, )、任意) — シーケンス長とマルチモーダル rope の間の rope インデックスの差分です。 この属性は非推奨であり、v5.20 で削除されます。代わりに model.base_model.rope_deltas を使用してください。

例:

>>> from transformers import Qwen2_5OmniProcessor, Qwen2_5OmniThinkerForConditionalGeneration

>>> thinker = Qwen2_5OmniThinkerForConditionalGeneration.from_pretrained("Qwen/Qwen2.5-Omni-7B")
>>> processor = Qwen2_5OmniProcessor.from_pretrained("Qwen/Qwen2.5-Omni-7B")

>>> conversations = [
>>>         {'role': 'system', 'content': 'You are a helpful voice chat bot, and please respond to me in a casual conversation manner using random voice.'},
>>>         {"role": "user", "content": [
>>>             {"type": "image", "image": "https://www.ilankelman.org/stopsigns/australia.jpg"},
>>>             {"type": "audio", "audio": "https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/audio/glass_breaking.mp3"},
>>>         ]},
>>> ]

>>> inputs = processor.apply_chat_template(
    conversations,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt"
)

>>> # Generate
>>> generation = thinker.generate(**inputs, max_new_tokens=2048)
>>> generate_ids = generation[:, inputs.input_ids.size(1):]

>>> response = processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]

get_audio_features

< >

( input_features: FloatTensorfeature_attention_mask: typing.Optional[torch.LongTensor] = Noneaudio_feature_lengths: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.FloatTensor)

パラメータ

  • input_features (torch.FloatTensor) — 入力音声に対応するテンソル。
  • feature_attention_mask (torch.LongTensor, 任意) — パディングされた特徴インデックスに対してアテンションを実行しないためのマスクです。マスクの値は[0, 1]から選択されます:
  • audio_feature_lengths (torch.LongTensor、形状 (num_audios)、任意) — LLMにおける各オーディオのフィーチャー形状の長さです。

戻り値

BaseModelOutputWithPooling または tuple(torch.FloatTensor)

torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)、または BaseModelOutputWithPooling。設定(Qwen2_5OmniConfig)や入力に応じて、さまざまな要素で構成されます。

  • last_hidden_state (torch.FloatTensor、shape (batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。

  • pooler_output (torch.FloatTensor、shape (batch_size, hidden_size)) — 補助事前学習タスクに使用される層をさらに通して処理された後、シーケンスの最初のトークン(分類トークン)の最終層の隠れ状態。例えば、BERT 系のモデルでは、線形層と tanh 活性化関数を経て処理された後の分類トークンを返します。この線形層の重みは、事前学習中の次文予測(分類)目的から学習されます。

  • 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、および任意の初期埋め込み出力。

  • 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 PIL import Image
>>> from transformers import AutoProcessor, Qwen2_5OmniThinkerForConditionalGeneration

>>> model = Qwen2_5OmniThinkerForConditionalGeneration.from_pretrained("Qwen/Qwen2.5-Omni-7B")
>>> processor = AutoProcessor.from_pretrained("Qwen/Qwen2.5-Omni-7B")

>>> messages = [
...     {
...         "role": "user", "content": [
...             {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
...             {"type": "text", "text": "Where is the cat standing?"},
...         ]
...     },
... ]

>>> inputs = processor.apply_chat_template(
...     messages,
...     tokenize=True,
...     return_dict=True,
...     return_tensors="pt",
...     add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]

get_image_features

< >

( pixel_values: FloatTensorimage_grid_thw: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.FloatTensor)

パラメータ

  • pixel_values (torch.FloatTensor、形状 (batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。
  • image_grid_thw (torch.LongTensor、形状 (num_images, 3)、任意) — LLM における各画像のフィーチャー形状の時間軸、高さ、幅です。

戻り値

BaseModelOutputWithPooling または tuple(torch.FloatTensor)

torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)、または BaseModelOutputWithPooling。設定(Qwen2_5OmniConfig)や入力に応じて、さまざまな要素で構成されます。

  • last_hidden_state (torch.FloatTensor、shape (batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。

  • pooler_output (torch.FloatTensor、shape (batch_size, hidden_size)) — 補助事前学習タスクに使用される層をさらに通して処理された後、シーケンスの最初のトークン(分類トークン)の最終層の隠れ状態。例えば、BERT 系のモデルでは、線形層と tanh 活性化関数を経て処理された後の分類トークンを返します。この線形層の重みは、事前学習中の次文予測(分類)目的から学習されます。

  • 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、および任意の初期埋め込み出力。

  • 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 PIL import Image
>>> from transformers import AutoProcessor, Qwen2_5OmniThinkerForConditionalGeneration

>>> model = Qwen2_5OmniThinkerForConditionalGeneration.from_pretrained("Qwen/Qwen2.5-Omni-7B")
>>> processor = AutoProcessor.from_pretrained("Qwen/Qwen2.5-Omni-7B")

>>> messages = [
...     {
...         "role": "user", "content": [
...             {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
...             {"type": "text", "text": "Where is the cat standing?"},
...         ]
...     },
... ]

>>> inputs = processor.apply_chat_template(
...     messages,
...     tokenize=True,
...     return_dict=True,
...     return_tensors="pt",
...     add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]

get_video_features

< >

( pixel_values_videos: FloatTensorvideo_grid_thw: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.FloatTensor)

パラメータ

  • pixel_values_videos (torch.FloatTensor、形状 (batch_size, num_channels, image_size, image_size)) — 入力動画に対応するテンソルです。
  • video_grid_thw (torch.LongTensor、形状 (num_videos, 3)、任意) — LLM における各動画のフィーチャー形状の時間軸、高さ、幅です。

戻り値

BaseModelOutputWithPooling または tuple(torch.FloatTensor)

torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)、または BaseModelOutputWithPooling。設定(Qwen2_5OmniConfig)や入力に応じて、さまざまな要素で構成されます。

  • last_hidden_state (torch.FloatTensor、shape (batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。

  • pooler_output (torch.FloatTensor、shape (batch_size, hidden_size)) — 補助事前学習タスクに使用される層をさらに通して処理された後、シーケンスの最初のトークン(分類トークン)の最終層の隠れ状態。例えば、BERT 系のモデルでは、線形層と tanh 活性化関数を経て処理された後の分類トークンを返します。この線形層の重みは、事前学習中の次文予測(分類)目的から学習されます。

  • 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、および任意の初期埋め込み出力。

  • 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 PIL import Image
>>> from transformers import AutoProcessor, Qwen2_5OmniThinkerForConditionalGeneration

>>> model = Qwen2_5OmniThinkerForConditionalGeneration.from_pretrained("Qwen/Qwen2.5-Omni-7B")
>>> processor = AutoProcessor.from_pretrained("Qwen/Qwen2.5-Omni-7B")

>>> messages = [
...     {
...         "role": "user", "content": [
...             {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
...             {"type": "text", "text": "Where is the cat standing?"},
...         ]
...     },
... ]

>>> inputs = processor.apply_chat_template(
...     messages,
...     tokenize=True,
...     return_dict=True,
...     return_tensors="pt",
...     add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]

Qwen2_5OmniThinkerTextModel

クラス transformers.Qwen2_5OmniThinkerTextModel

< >

( config: Qwen2_5OmniTextConfig )

パラメータ

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

Qwen2 5 Omni Text Modelの生モデルで、特定のヘッドを上に載せず、生のhidden-statesを出力します。

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.modeling_flash_attention_utils.FlashAttentionKwargs'> ) → BaseModelOutputWithPast 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 です。

    アテンションマスクとは?

  • position_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲 [0, config.n_positions - 1].

    ポジションIDとは?

  • 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 のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。

戻り値

BaseModelOutputWithPast または tuple(torch.FloatTensor)

torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または BaseModelOutputWithPast。設定(Qwen2_5OmniConfig)や入力に応じて、さまざまな要素で構成されます。

Qwen2_5OmniThinkerTextModelの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 (Cache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    自己アテンションブロック(および config.is_encoder_decoder=True の場合、クロスカレンションブロック)の事前計算済みヒドゥンステート(キーとバリュー)を保持します。これらは逐次デコーディングを高速化するために使用できます(past_key_values 入力参照)。

  • 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、および任意の初期埋め込み出力。

  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

Qwen2_5OmniTalkerConfig

class transformers.Qwen2_5OmniTalkerConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneaudio_token_index: int = 151646image_token_index: int = 151655video_token_index: int = 151656vocab_size: int = 8448tts_text_start_token_id: int = 151860tts_text_end_token_id: int = 151861tts_text_pad_token_id: int = 151859tts_codec_start_token_id: int = 8293tts_codec_end_token_id: int = 8294tts_codec_pad_token_id: int = 8292tts_codec_mask_token_id: int = 8296vision_start_token_id: int = 151652vision_end_token_id: int = 151653embedding_size: int = 3584hidden_size: int = 3584intermediate_size: int = 18944num_hidden_layers: int = 28num_attention_heads: int = 28num_key_value_heads: int = 4hidden_act: str = 'silu'max_position_embeddings: int = 32768rms_norm_eps: float = 1e-06head_dim: int = 128use_cache: bool = Truetie_word_embeddings: bool = Falseuse_sliding_window: bool = Falsesliding_window: int | None = 32768max_window_layers: int = 28attention_dropout: float | int = 0.0rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneposition_id_per_seconds: int = 25seconds_per_chunk: int = 2audio_start_token_id: int = 151647audio_end_token_id: int = 151648initializer_range: float = 0.02spatial_merge_size: int = 2layer_types: list[str] | None = Nonepad_token_id: int | None = None )

パラメータ

  • audio_token_index (int、任意、デフォルトは 151646) — 入力音声のプレースホルダーとして使用されるオーディオトークンのインデックスです。
  • image_token_index (int、任意、デフォルトは 151655) — 入力画像のプレースホルダーとして使用される画像トークンのインデックスです。
  • video_token_index (int、任意、デフォルトは 151656) — 入力動画のプレースホルダーとして使用される動画トークンのインデックスです。
  • vocab_size (int、任意、デフォルトは 8448) — モデルの語彙サイズ。input_ids で表現できるトークンの種類数を定義します。
  • tts_text_start_token_id (int、任意、デフォルト値は 151860) — TTS テキストの開始をエンコードするための TTS テキスト開始トークンのインデックスです。
  • tts_text_end_token_id (int、任意、デフォルトは 151861) — TTS テキストの終了をエンコードするための tts テキスト終了トークンのインデックスです。
  • tts_text_pad_token_id (int、任意、デフォルトは 151859) — TTS テキストの pad をエンコードするための tts text pad トークンインデックスです。
  • tts_codec_start_token_id (int, 任意、デフォルトは 8293) — tts codec の開始をエンコードするための tts codec 開始トークンのインデックスです。
  • tts_codec_end_token_id (int, 任意、デフォルトは 8294) — tts コーデックの終了をエンコードするための tts コーデック終了トークンのインデックスです。
  • tts_codec_pad_token_id (int, 任意、デフォルトは 8292) — tts codec の pad をエンコードするための tts codec pad トークンインデックスです。
  • tts_codec_mask_token_id (int, 省略可、デフォルト値は 8296) — tts codec のマスクをエンコードするための tts codec マスクトークンインデックスです。
  • vision_start_token_id (int、任意、デフォルトは 151652) — マルチモーダル入力シーケンスにおける視覚セグメントの開始を示すトークン ID。
  • vision_end_token_id (int、任意、デフォルトは 151653) — マルチモーダル入力シーケンスにおける視覚セグメントの終了を示すトークン ID。
  • embedding_size (int、任意、デフォルトは 3584) — 埋め込みおよび隠れ状態の次元数。
  • hidden_size (int、任意、デフォルトは3584) — 隠れ表現の次元数。
  • intermediate_size (int、任意、デフォルトは 18944) — MLP 表現の次元数。
  • num_hidden_layers (int、任意、デフォルトは 28) — Transformer デコーダーの隠れ層の数。
  • num_attention_heads (int、任意、デフォルトは 28) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。
  • num_key_value_heads (int、任意、デフォルトは4) — Grouped Query Attention の実装に使用する key_value ヘッドの数を指定します。 num_key_value_heads=num_attention_heads の場合、モデルは Multi Head Attention (MHA) を使用し、 num_key_value_heads=1 の場合は Multi Query Attention (MQA) を使用し、それ以外の場合は GQA が使用されます。 マルチヘッドのチェックポイントを GQA のチェックポイントに変換する際は、各グループの key と value ヘッドは、そのグループ内の元のすべてのヘッドを平均プーリングして構築する必要があります。詳細については、この論文を参照してください。指定しない場合、デフォルトで num_attention_heads が使用されます。
  • hidden_act (str、任意、デフォルトは silu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、 "relu"、"silu" など。
  • max_position_embeddings (int、任意、デフォルトは 32768) — このモデルが使用される可能性のある最大シーケンス長です。
  • rms_norm_eps (float、任意、デフォルトは 1e-06) — RMS 正規化レイヤーで使用する epsilon。
  • head_dim (int、任意、デフォルトは128) — アテンションヘッドの次元です。None の場合、hidden_size // num_attention_heads がデフォルトとして使用されます。
  • use_cache (bool、任意、デフォルトは True) — モデルが最後のキー/バリューの注意を返すかどうか(すべてのモデルで利用されるわけではありません)。config.is_decoder=True の場合、またはモデルがデコーダー専用の生成モデルである場合にのみ関連します。
  • tie_word_embeddings (bool、任意、デフォルトは False) — モデルの tied_weights_keys マッピングに従って重み埋め込みを共有するかどうかを指定します。
  • use_sliding_window (bool、任意、デフォルトはFalse) — スライディングウィンドウアテンションを使用するかどうか。
  • sliding_window (int、任意、デフォルトは 32768) — スライディングウィンドウアテンションのウィンドウサイズ。None の場合、スライディングウィンドウは適用されません。
  • max_window_layers (int、任意、デフォルトは 28) — フルアテンションを使用するレイヤーの数です。最初の max_window_layers 個のレイヤーはフルアテンションを使用し、それ以降の追加レイヤーは SWA(Sliding Window Attention)を使用します。
  • attention_dropout (Union[float, int]、任意、デフォルトは 0.0) — アテンション確率のドロップアウト率です。
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], 省略可) — RoPE 埋め込みの設定パラメータを含む辞書です。この辞書には rope_theta の値が含まれており、より長い max_position_embeddings で RoPE を使用する場合にスケーリングに使用されるパラメータが任意で含まれます。
  • position_id_per_seconds (int、任意、デフォルト値は 25)— 1 秒あたりの position id の増分です。
  • seconds_per_chunk (int、任意、デフォルトは 2) — 音声および動画データのチャンクの長さ(秒)。
  • audio_start_token_id (int、任意、デフォルトは 151647) — オーディオプロンプトをエンコードするためのオーディオ開始トークンのインデックスです。
  • audio_end_token_id (int、任意、デフォルトは 151648) — 音声プロンプトをエンコードするための音声終了トークンのインデックスです。
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
  • spatial_merge_size (int, 省略可、デフォルトは 2) — 隣接するパッチをマージしてビジュアルトークンの数を削減するために使用される、空間マージウィンドウのサイズです。
  • layer_types (list[str]、省略可) — 各レイヤーのインデックスとレイヤータイプを明示的に対応付けるリストです。指定しない場合、config の値に基づいて自動的に生成されます。
  • pad_token_id (int, 任意) — 語彙内でパディングに使用されるトークン ID。

これは、Qwen2 5 OmniModel の設定を保存するための設定クラスです。指定された引数に基づいて Qwen2 5 Omni モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、Qwen/Qwen2.5-Omni-7B と同様の設定が得られます。

設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。

例:

>>> from transformers import Qwen2_5OmniTalkerForConditionalGeneration, Qwen2_5OmniThinkerConfig, Qwen2_5OmniAudioEncoderConfig, Qwen2_5OmniVisionEncoderConfig

>>> # Initializing a Qwen2_5OmniAudioEncoder config
>>> audio_config = Qwen2_5OmniAudioEncoderConfig()

>>> # Initializing a Qwen2 config
>>> text_config = Qwen2Config()

>>> # Initializing a Qwen2_5Omni configuration
>>> configuration = Qwen2_5OmniThinkerConfig(audio_config, text_config)

>>> # Initializing a model from the qwen2-audio style configuration
>>> model = Qwen2_5OmniTalkerForConditionalGeneration(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

Qwen2_5OmniTalkerForConditionalGeneration

クラス transformers.Qwen2_5OmniTalkerForConditionalGeneration

< >

( config: Qwen2_5OmniTalkerConfig )

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonethinker_reply_part: typing.Optional[torch.FloatTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = Noneinput_text_ids: typing.Optional[torch.LongTensor] = Noneimage_grid_thw: typing.Optional[torch.LongTensor] = Nonevideo_grid_thw: typing.Optional[torch.LongTensor] = Noneuse_audio_in_video: bool | None = Noneaudio_feature_lengths: typing.Optional[torch.LongTensor] = Nonevideo_second_per_grid: typing.Optional[torch.LongTensor] = None**kwargs ) → Qwen2_5OmniTalkerCausalLMOutputWithPast 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 です。

    アテンションマスクとは?

  • position_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲 [0, config.n_positions - 1].

    ポジションIDとは?

  • 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))のみを入力することになります。

  • thinker_reply_part (torch.FloatTensor、shape (batch_size, sequence_length, hidden_size)、任意) — thinker モデルの出力から得られる、処理対象のテキスト返信部分を表す隠れ状態です。
  • inputs_embeds (torch.FloatTensor、形状 (batch_size, sequence_length, hidden_size)、任意) — input_ids を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_ids のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。
  • input_text_ids (torch.LongTensor、形状 (batch_size, sequence_length)、任意) — テキストのみを含むコンテンツのインプットトークンIDです。マルチモーダル環境における位置計算に使用されます。
  • image_grid_thw (torch.LongTensor、形状 (num_images, 3)、任意) — LLM における各画像のフィーチャー形状の時間軸、高さ、幅です。
  • video_grid_thw (torch.LongTensor、形状 (num_videos, 3)、任意) — LLM における各動画のフィーチャー形状の時間軸、高さ、幅です。
  • use_audio_in_video (bool, 任意) — 動画内のオーディオトラックを使用するかどうか。process_audio_info のパラメータと同じである必要があります。
  • audio_feature_lengths (torch.LongTensor、形状 (num_audios)、任意) — LLMにおける各オーディオのフィーチャー形状の長さです。
  • video_second_per_grid (torch.LongTensor、形状 (num_videos)、任意) — 各動画のグリッドあたりの秒数。時間方向の特徴量マッピングに使用されます。

戻り値

Qwen2_5OmniTalkerCausalLMOutputWithPast または tuple(torch.FloatTensor)

Qwen2_5OmniTalkerCausalLMOutputWithPast、または torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(Qwen2_5OmniConfig)や入力に応じて、さまざまな要素で構成されます。

Qwen2_5OmniTalkerForConditionalGenerationの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 (Cache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    逐次デコーディングを高速化するために使用できる(past_key_values 入力参照)、事前計算済みの隠れ状態(自己注意ブロックのキーとバリュー)が含まれます。

  • 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、および任意の初期埋め込み出力。

  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

  • rope_deltas (torch.LongTensor、形状 (batch_size, )、任意) — シーケンス長とマルチモーダル rope の間の rope インデックスの差分です。 この属性は非推奨であり、v5.20 で削除されます。代わりに model.base_model.rope_deltas を使用してください。

  • thinker_reply_part (torch.FloatTensor、shape (batch_size, sequence_length, hidden_size)) — thinker モデルからの隠れ状態。talker モデルの入力として使用されます。これは、talker モデルが音声トークンを生成するために使用する、エンコードされた応答を表します。

例:

>>> from io import BytesIO
>>> from urllib.request import urlopen
>>> import librosa
>>> from transformers import AutoProcessor, Qwen2_5OmniTalkerForConditionalGeneration

>>> model = Qwen2_5OmniTalkerForConditionalGeneration.from_pretrained("Qwen/Qwen2-Audio-7B")
>>> processor = AutoProcessor.from_pretrained("Qwen/Qwen2-Audio-7B")

>>> prompt = "<|audio_bos|><|AUDIO|><|audio_eos|>Generate the caption in English:"
>>> url = "https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/audio/glass_breaking.mp3"
>>> audio, _ = librosa.load(BytesIO(urlopen(url).read()), sr=self.processor.feature_extractor.sampling_rate)

>>> inputs = processor(text=prompt, audio=audio, return_tensors="pt")

>>> # Generate
>>> generate_ids = model.generate(**inputs, max_length=30)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"Generate the caption in English: Glass is breaking."

Qwen2_5OmniTalkerModel

クラス transformers.Qwen2_5OmniTalkerModel

< >

( config: Qwen2_5OmniTalkerConfig )

パラメータ

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

Qwen2 5 Omniの素のモデルは、上部に特定のヘッドを付加せずに生のhidden-statesを出力します。

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.modeling_flash_attention_utils.FlashAttentionKwargs'> ) → BaseModelOutputWithPast 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 です。

    アテンションマスクとは?

  • position_ids (torch.LongTensor の形状 (batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲 [0, config.n_positions - 1].

    ポジションIDとは?

  • 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 のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。
  • use_cache (bool、任意) — True に設定すると、past_key_values のキーバリュー状態が返され、デコーディングの高速化に利用できます(past_key_values を参照)。

戻り値

BaseModelOutputWithPast または tuple(torch.FloatTensor)

torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または BaseModelOutputWithPast。設定(Qwen2_5OmniConfig)や入力に応じて、さまざまな要素で構成されます。

Qwen2_5OmniTalkerModelの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 (Cache、任意、use_cache=True が渡された場合または config.use_cache=True の場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。

    自己アテンションブロック(および config.is_encoder_decoder=True の場合、クロスカレンションブロック)の事前計算済みヒドゥンステート(キーとバリュー)を保持します。これらは逐次デコーディングを高速化するために使用できます(past_key_values 入力参照)。

  • 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、および任意の初期埋め込み出力。

  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます)— torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

Qwen2_5OmniToken2WavConfig

クラス transformers.Qwen2_5OmniToken2WavConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonedit_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonebigvgan_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None )

パラメータ

  • dit_config (DiT_Args、任意) — Melスペクトログラムを生成する Diffusion Transformer (DiT) モジュールの構成クラスです。
  • bigvgan_config (BigVGAN_Args、任意) — メルスペクトログラムを波形に変換する BigVGAN モジュールの構成クラスです。

これは、Qwen2 5 OmniModel の設定を保存するための設定クラスです。指定された引数に基づいて Qwen2 5 Omni モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、Qwen/Qwen2.5-Omni-7B と同様の設定が得られます。

設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。

例:

>>> from transformers import Qwen2_5OmniToken2WavModel, DiT_Args, BigVGAN_Args

>>> # Initialize DiT configuration
>>> dit_config = DiT_Args(
...     dim=1024,
...     depth=22,
...     heads=16,
...     ff_mult=2
... )

>>> # Initialize BigVGAN configuration
>>> bigvgan_config = BigVGAN_Args(
...     mel_dim=80,
...     upsample_rates=[5,3,2,2,2,2]
... )

>>> # Initialize main configuration
>>> config = Qwen2_5OmniToken2WavConfig(dit_config, bigvgan_config)

>>> # Initialize model with config
>>> model = Qwen2_5OmniToken2Wav(config)

>>> # Accessing the model configuration
>>> configuration = model.config

Qwen2_5OmniToken2WavModel

class transformers.Qwen2_5OmniToken2WavModel

< >

( config: Qwen2_5OmniToken2WavConfig )

パラメータ

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

完全な Qwen2.5Omni Token2Wav モデルです。音声トークンを入力として受け取り、メルスペクトログラムを予測する DiT モデルと、メルスペクトログラムを入力として受け取り、波形を予測する BigVGAN ボコーダーで構成されています。

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

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

forward

< >

( codeconditioningreference_melnum_steps = 10guidance_scale = 0.5sway_coefficient = -1.0**kwargs )

入力コードと条件付けパラメータから波形を生成します。

Qwen2_5OmniToken2WavDiTModel

class transformers.Qwen2_5OmniToken2WavDiTModel

< >

( config: Qwen2_5OmniDiTConfig )

パラメータ

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

Qwen2.5Omni Token2WavDiT の完全なモデルです。音声トークンを入力として受け取り、メロスペクトログラムを予測します。

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

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

Qwen2_5OmniToken2WavBigVGANModel

class transformers.Qwen2_5OmniToken2WavBigVGANModel

< >

( config: Qwen2_5OmniBigVGANConfig )

パラメータ

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

完全なQwen2.5Omni Token2WavBigVGANモデルです。メロスペクトログラムを入力として受け取り、波形を予測します。

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

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

Update on GitHub