Transformers documentation

MiniMax-M3-VL

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

and get access to the augmented documentation experience

to get started

Model ini disumbangkan ke Hugging Face Transformers pada 2026-06-12.

MiniMax-M3-VL

Ikhtisar

MiniMax-M3-VL adalah anggota vision-language dari keluarga MiniMax-M3. Model ini menggabungkan vision tower bergaya CLIP (patch embedding Conv3d dengan 3D rotary position embeddings) dengan backbone teks MiniMax-M3, yaitu decoder Mixture-of-Experts campuran dense/sparse yang menggunakan expert SwiGLU-OAI yang di-gate dan lightning indexer untuk block-sparse attention.

Arsitektur

Perhatian blok-sparse (Lightning Indexer)

Setiap lapisan menggunakan GQA (num_key_value_heads = 4) dengan QK-norm per-head dan partial RoPE pada rotary_dim pertama. config.layer_types[i] kemudian memilih "full_attention" (causal padat) atau "minimax_m3_sparse", di mana MiniMaxM3VLIndexer menentukan, untuk setiap query, blok key mana yang boleh dilihat oleh perhatian utama.

Indexer memberikan skor pada setiap key, kemudian menggunakan max-pooling pada skor per-key tersebut menjadi blok-blok berisi index_block_size key, sehingga seleksi dilakukan pada granularitas blok key: untuk setiap query, sistem mempertahankan top-index_topk_blocks blok key serta blok jendela lokal index_local_blocks yang selalu aktif (di bawah kausalitas tingkat blok), lalu menyebarkan pilihan 0/-inf per blok kembali ke setiap key di dalam blok tersebut. Hasilnya adalah bias aditif [B, 1, S_q, S_k] yang dijumlahkan ke mask kausal. Secara teori, ini berarti perhatian hanya dihitung pada blok-blok key yang terpilih, tetapi transformers belum mendukung kernel yang menghitung ini secara efisien! Kami akan menambahkannya ke kernels segera!

MiniMax M3 Lightning Indexer mask

Menara visi

A MiniMaxM3VLVisionModel: patch embedding Conv3d pada input yang diratakan [N_patches, C·T·P·P], tumpukan lapisan encoder bergaya CLIP yang membawa position embedding 3D rotary (pita waktu / tinggi / lebar). MiniMaxM3VLPatchMerger mengelompokkan spatial_merge_size² patch ke dimensi channel sebelum MiniMaxM3VLMultiModalProjector GELU 2-lapis memetakan fitur visual ke ukuran hidden teks.

Contoh penggunaan

Contoh di bawah ini menjalankan model pada gambar asli yang dimuat dengan load_image().

import torch
from transformers import AutoModelForImageTextToText, AutoProcessor
from transformers.image_utils import load_image


model = AutoModelForImageTextToText.from_pretrained(
    "MiniMaxAI/MiniMax-M3-preview", dtype=torch.bfloat16, device_map="auto",
)
processor = AutoProcessor.from_pretrained("MiniMaxAI/MiniMax-M3-preview")

image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg")
messages = [
    {
        "role": "user",
        "content": [
            {"type": "image"},
            {"type": "text", "text": "Describe this image briefly."},
        ],
    }
]
text = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
inputs = processor(images=[image], text=text, return_tensors="pt").to(model.device)

generated_ids = model.generate(**inputs, max_new_tokens=32, do_sample=False)
print(processor.batch_decode(generated_ids, skip_special_tokens=True)[0])

Contoh Apple

Contoh ini meminta model tentang gambar apel, sekali lagi memuat gambar asli dengan load_image().

import torch
from transformers import AutoModelForImageTextToText, AutoProcessor
from transformers.image_utils import load_image


model = AutoModelForImageTextToText.from_pretrained(
    "MiniMaxAI/MiniMax-M3-preview", dtype=torch.bfloat16, device_map="auto",
)
processor = AutoProcessor.from_pretrained("MiniMaxAI/MiniMax-M3-preview")

image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg")
messages = [
    {
        "role": "user",
        "content": [
            {"type": "image"},
            {"type": "text", "text": "How many apples are in this image, and what color are they?"},
        ],
    }
]
text = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
inputs = processor(images=[image], text=text, return_tensors="pt").to(model.device)

generated_ids = model.generate(**inputs, max_new_tokens=32, do_sample=False)
print(processor.batch_decode(generated_ids, skip_special_tokens=True)[0])

Konfigurasi inferensi tercepat

ctxDecode SDPAMSA decodeMSA decode adv.Prefill SDPAPrefill MSAMSA prefill adv.
2K27,8 tok/dtk31.0+12%303 ms257 ms1.18×
4K23,4 tok/dtk30.5+30%684 ms460 ms1.49×
8K17,8 tok/dtk29.6+66%1906 ms976 ms1.95×
16K12,0 tok/dtk27.6+130%6110 ms2344 ms2.61×

Checkpoint ini dikirim dalam format MXFP8 native. Untuk throughput decode, konfigurasi tercepat yang telah divalidasi adalah bf16 (didekuantisasi saat load) + kernel perhatian blok-sparse MSA + paralelisme tensor & expert + kompilasi cudagraph reduce-overhead — sekitar 31 tok/s decode pada 8×B200 dengan prefill 2048 token.

Menjaga bobot dalam FP8 native adalah opsi jejak memori saja — tidak pernah lebih cepat pada setup ini. Kernel Triton untuk expert/linear FP8 diturunkan sebagai kernel fallback inductor yang tidak transparan, sehingga cudagraph tidak dapat menangkapnya pada jalur expert yang panas, sehingga decode FP8-native terukur ~4,2 tok/s (≈7× lebih lambat daripada jalur bf16) bahkan di bawah torch.compile(fullgraph=True). Gunakan FP8 hanya jika bobot bf16 tidak muat.

config (baseline sdpa, TP+EP, prefill 2048-token, 8×B200)decode
bf16 dequantize-at-load + MSA + compile/cudagraph~31 tok/dtk
bf16 dequantize-at-load + sdpa + compile/cudagraph~28 tok/dtk
FP8 native + compile/cudagraph~4 tok/detik (hanya memori, bukan untuk kecepatan)

Dequantisasi ke bf16 hanya cocok dengan sharding genap di antara GPU (TP/EP), bukan dengan device_map="auto" (penempatan pipeline OOM saat load). Jalankan satu proses per GPU dengan torchrun:

torchrun --nproc_per_node=8 fastest_m3_vl.py
# fastest_m3_vl.py
import os, sys
import torch
import torch.distributed as dist
from transformers import (
    AutoModelForImageTextToText,
    AutoTokenizer,
    CompileConfig,
    FineGrainedFP8Config,
)
from transformers.distributed import DistributedConfig

# The indexer feeds SDPA an additive float mask; the cuDNN SDP backend segfaults on it (B200).
torch.backends.cuda.enable_cudnn_sdp(False)

model = AutoModelForImageTextToText.from_pretrained(
    "MiniMaxAI/MiniMax-M3-preview",
    dtype=torch.bfloat16,
    # Dequantize the native MXFP8 weights to bf16 at load (the speed win); needs even TP/EP sharding.
    quantization_config=FineGrainedFP8Config(dequantize=True),
    distributed_config=DistributedConfig(
        tp_size=int(os.environ["WORLD_SIZE"]),
        ep_size=int(os.environ["WORLD_SIZE"]),
    ),
    attn_implementation="kernels-staging/msa@v0",  # MSA block-sparse attention kernel
)
model.eval()

tokenizer = AutoTokenizer.from_pretrained("MiniMaxAI/MiniMax-M3-preview")
messages = [{"role": "user", "content": "Summarize the history of computing."}]
inputs = tokenizer.apply_chat_template(
    messages, add_generation_prompt=True, return_tensors="pt", return_dict=True
).to(f"cuda:{os.environ.get('LOCAL_RANK', '0')}")

generated_ids = model.generate(
    **inputs,
    max_new_tokens=128,
    do_sample=False,
    # Static cache + reduce-overhead cudagraph capture is what pushes decode to ~31 tok/s.
    cache_implementation="static",
    compile_config=CompileConfig(mode="reduce-overhead", fullgraph=True),
)
if int(os.environ.get("RANK", "0")) == 0:
    print(tokenizer.decode(generated_ids[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True))

# cudagraph-captured NCCL collectives deadlock the NCCL/CUDA destructors at teardown; the output is
# already produced, so hard-exit to skip the hanging cleanup.
if dist.is_initialized():
    sys.stdout.flush()
    os._exit(0)

MiniMaxM3VLConfig

kelas transformers.MiniMaxM3VLConfig

< >

( 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 = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneimage_token_index: int = 200025video_token_index: int = 200026projector_hidden_size: int = 6144tie_word_embeddings: bool = False )

Parameter

  • vision_config (Union[dict, ~configuration_utils.PreTrainedConfig], opsional) — Objek config atau dictionary dari vision backbone.
  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig], opsional) — Objek config atau dictionary dari text backbone.
  • image_token_index (int, opsional, default 200025) — Indeks token gambar yang digunakan sebagai placeholder untuk gambar input.
  • video_token_index (int, opsional, default 200026) — Indeks token video yang digunakan sebagai placeholder untuk video input.
  • projector_hidden_size (int, opsional, defaultnya 6144) — Dimensi dari lapisan proyeksi teks dan visi.
  • tie_word_embeddings (bool, opsional, default False) — Apakah akan mengikat bobot embedding sesuai dengan pemetaan tied_weights_keys model.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari MiniMaxM3VLModel. Kelas ini digunakan untuk membuat model Minimax M3 Vl berdasarkan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari MiniMaxAI/MiniMax-M3

Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.

MiniMaxM3VLTextConfig

kelas transformers.MiniMaxM3VLTextConfig

< >

( 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 = 200064hidden_size: int = 6144intermediate_size: int = 3072num_hidden_layers: int = 60num_attention_heads: int = 64num_key_value_heads: int = 4head_dim: int = 128hidden_act: str = 'silu'max_position_embeddings: int = 524288initializer_range: float = 0.02rms_norm_eps: float = 1e-06use_cache: bool = Truepad_token_id: int | None = Nonebos_token_id: int | None = 200034eos_token_id: int | list[int] | None = 200020tie_word_embeddings: bool = Falseattention_dropout: float | int = 0.0num_experts_per_tok: int = 4num_local_experts: int = 128output_router_logits: bool = Falserouter_aux_loss_coef: float = 0.001router_jitter_noise: float = 0.0rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonedense_intermediate_size: int = 12288shared_intermediate_size: int = 3072routed_scaling_factor: float = 2.0rotary_dim: int = 64swiglu_alpha: float = 1.702swiglu_limit: float = 7.0mlp_layer_types: list[str] | None = Noneindex_n_heads: int = 4index_head_dim: int = 128index_block_size: int = 128index_topk_blocks: int = 16index_local_blocks: int = 1layer_types: list[str] | None = None )

Parameter

  • vocab_size (int, opsional, default 200064) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan oleh input_ids.
  • hidden_size (int, opsional, default 6144) — Dimensi dari representasi tersembunyi.
  • intermediate_size (int, opsional, default 3072) — Dimensi representasi MLP.
  • num_hidden_layers (int, opsional, default 60) — Jumlah lapisan tersembunyi dalam decoder Transformer.
  • num_attention_heads (int, opsional, default 64) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer.
  • num_key_value_heads (int, opsional, default 4) — Ini adalah jumlah key_value heads yang harus digunakan untuk mengimplementasikan Grouped Query Attention. Jika num_key_value_heads=num_attention_heads, model akan menggunakan Multi Head Attention (MHA), jika num_key_value_heads=1 model akan menggunakan Multi Query Attention (MQA), selain itu GQA yang digunakan. Saat mengkonversi checkpoint multi-head menjadi checkpoint GQA, setiap group key dan value head harus dibangun dengan meanpooling semua head asli di dalam group tersebut. Untuk detail lebih lanjut, lihat paper ini. Jika tidak ditentukan, akan default ke num_attention_heads.
  • head_dim (int, opsional, default 128) — Dimensi head perhatian. Jika None, nilainya akan default ke hidden_size // num_attention_heads
  • hidden_act (str, opsional, defaultnya silu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, "gelu", "relu", "silu", dan sebagainya.
  • max_position_embeddings (int, opsional, default 524288) — Panjang maksimum urutan yang mungkin digunakan dengan model ini.
  • initializer_range (float, opsional, defaultnya 0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.
  • rms_norm_eps (float, opsional, defaultnya 1e-06) — Epsilon yang digunakan oleh lapisan normalisasi rms.
  • use_cache (bool, opsional, defaultnya True) — Apakah model harus mengembalikan perhatian kunci/nilai terakhir (tidak digunakan oleh semua model). Hanya relevan jika config.is_decoder=True atau ketika model adalah model generatif yang hanya decoder.
  • pad_token_id (int, opsional) — ID token yang digunakan untuk padding dalam kosakata.
  • bos_token_id (int, opsional, default 200034) — ID token yang digunakan untuk penanda awal stream dalam kosakata.
  • eos_token_id (Union[int, list[int]], opsional, default 200020) — ID token yang digunakan untuk end-of-stream dalam kosakata.
  • tie_word_embeddings (bool, opsional, default False) — Apakah akan mengikat bobot embedding sesuai dengan pemetaan tied_weights_keys model.
  • attention_dropout (Union[float, int], opsional, default 0.0) — Rasio dropout untuk probabilitas perhatian.
  • num_experts_per_tok (int, opsional, default 4) — Jumlah expert yang akan menerima setiap token. Ini adalah nilai top-k untuk token-choice routing.
  • num_local_experts (int, opsional, default 128) — Jumlah ahli lokal di setiap perangkat. num_experts harus dapat dibagi habis oleh num_local_experts.
  • output_router_logits (bool, opsional, default False) — Apakah logits router harus dikembalikan oleh model. Mengaktifkan ini juga akan memungkinkan model untuk mengoutput loss tambahan, termasuk load balancing loss dan router z-loss.
  • router_aux_loss_coef (float, opsional, default 0.001) — Koefisien kerugian keseimbangan beban tambahan. Digunakan untuk menghukum perutean pakar yang tidak merata pada model MoE.
  • router_jitter_noise (float, opsional, default 0.0) — Jumlah noise yang ditambahkan ke logits router selama pelatihan untuk penyeimbangan beban yang lebih baik.
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], opsional) — Kamus yang berisi parameter konfigurasi untuk embedding RoPE. Kamus tersebut harus berisi nilai untuk rope_theta dan secara opsional parameter yang digunakan untuk penskalaan jika Anda ingin menggunakan RoPE dengan max_position_embeddings yang lebih panjang.
  • dense_intermediate_size (int, opsional, default 12288) — Ukuran intermediate dari dense MLP yang digunakan pada layer yang entri mlp_layer_types-nya adalah "dense".
  • shared_intermediate_size (int, opsional, default 3072) — Ukuran perantara dari satu expert bersama di lapisan MoE.
  • routed_scaling_factor (float, opsional, defaultnya 2.0) — Faktor penskalaan untuk pakar yang di-rutekan.
  • rotary_dim (int, opsional, default 64) — Jumlah kanal head yang dirotasi oleh RoPE; kanal yang tersisa diteruskan tanpa perubahan.
  • swiglu_alpha (float, opsional, default 1.702) — Gain sigmoid dari aktivasi SwiGLU-OAI.
  • swiglu_limit (float, opsional, default 7.0) — Batas clamp yang diterapkan pada proyeksi gate dan up dari aktivasi SwiGLU-OAI.
  • mlp_layer_types (list[str], opsional) — Pemilih MLP per lapisan: "sparse" untuk blok MoE, "dense" untuk MLP padat.
  • index_n_heads (int, opsional, default 4) — Jumlah head pada cabang penilaian dot-product dari lightning indexer.
  • index_head_dim (int, opsional, default 128) — Dimensi kanal per-head dari lightning indexer.
  • index_block_size (int, opsional, default 128) — Jumlah token kunci yang digabungkan ke dalam satu blok yang diberi skor.
  • index_topk_blocks (int, opsional, default 16) — Jumlah blok kunci dengan skor tertinggi yang dapat diperhatikan oleh setiap query.
  • index_local_blocks (int, opsional, default 1) — Jumlah blok kunci yang tepat mendahului query yang selalu dipertahankan visibilitas / perhatian.
  • layer_types (list[str], opsional) — Daftar yang secara eksplisit memetakan setiap indeks layer dengan tipe layernya. Jika tidak disediakan, daftar ini akan dibuat secara otomatis berdasarkan nilai config.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari MiniMaxM3VLModel. Kelas ini digunakan untuk membuat model Minimax M3 Vl berdasarkan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari MiniMaxAI/MiniMax-M3

Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.

MiniMaxM3VLVisionConfig

kelas transformers.MiniMaxM3VLVisionConfig

< >

( 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 = 1280intermediate_size: int = 5120num_hidden_layers: int = 32num_attention_heads: int = 16num_channels: int = 3image_size: int = 2016patch_size: int = 14temporal_patch_size: int = 2spatial_merge_size: int = 2hidden_act: str = 'gelu'layer_norm_eps: float = 1e-05attention_dropout: float = 0.0rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneinitializer_range: float = 0.02 )

Parameter

  • hidden_size (int, opsional, default 1280) — Dimensi dari representasi tersembunyi.
  • intermediate_size (int, opsional, default 5120) — Dimensi representasi MLP.
  • num_hidden_layers (int, opsional, default 32) — Jumlah lapisan tersembunyi dalam decoder Transformer.
  • num_attention_heads (int, opsional, default 16) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer.
  • num_channels (int, opsional, defaultnya 3) — Jumlah saluran input.
  • image_size (int, opsional, default 2016) — Ukuran (resolusi) setiap gambar.
  • patch_size (int, opsional, defaultnya 14) — Ukuran (resolusi) dari setiap patch.
  • temporal_patch_size (int, opsional, default 2) — Ukuran patch temporal yang digunakan dalam patch embedding 3D untuk input video.
  • spatial_merge_size (int, opsional, defaultnya 2) — Ukuran jendela penggabungan spasial yang digunakan untuk mengurangi jumlah token visual dengan menggabungkan patch tetangga.
  • hidden_act (str, opsional, defaultnya gelu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, "gelu", "relu", "silu", dan sebagainya.
  • layer_norm_eps (float, opsional, defaultnya 1e-05) — Epsilon yang digunakan oleh lapisan normalisasi lapisan.
  • attention_dropout (float, opsional, default 0.0) — Rasio dropout untuk probabilitas perhatian.
  • rope_parameters (RopeParameters, opsional) — Konfigurasi RoPE standar untuk penanaman posisi rotasi 3D menara visual.
  • initializer_range (float, opsional, defaultnya 0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari MiniMaxM3VLModel. Kelas ini digunakan untuk membuat model Minimax M3 Vl berdasarkan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari MiniMaxAI/MiniMax-M3

Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.

MiniMaxM3VLProcessor

kelas transformers.MiniMaxM3VLProcessor

< >

( image_processor = Nonetokenizer = Nonevideo_processor = Nonechat_template = None**kwargs )

Parameter

  • image_processor (MiniMaxM3VLImageProcessor) — Prosesor gambar adalah input yang wajib.
  • tokenizer (tokenizer_class) — Tokenizer adalah input yang wajib.
  • video_processor (MiniMaxM3VLVideoProcessor) — Pemroses video adalah input yang wajib.
  • chat_template (str) — Template Jinja untuk mengubah daftar pesan dalam chat menjadi string yang dapat ditokenisasi.

Membangun MiniMaxM3VLProcessor yang membungkus image processor, tokenizer, dan video processor menjadi satu processor.

MiniMaxM3VLProcessor menyediakan semua fungsionalitas dari MiniMaxM3VLImageProcessor, tokenizer_class, dan MiniMaxM3VLVideoProcessor. Lihat ~MiniMaxM3VLImageProcessor, ~tokenizer_class, dan ~MiniMaxM3VLVideoProcessor untuk informasi lebih lanjut.

post_process_image_text_to_text

< >

( generated_outputsskip_special_tokens = Trueclean_up_tokenization_spaces = False**kwargs ) → list[str]

Parameter

  • generated_outputs (torch.Tensor atau np.ndarray) — Output dari fungsi generate model. Output diharapkan berupa tensor dengan bentuk (batch_size, sequence_length) atau (sequence_length,).
  • skip_special_tokens (bool, opsional, defaultnya True) — Apakah token khusus akan dihapus dari output. Argumen yang diteruskan ke metode batch_decode tokenizer.
  • clean_up_tokenization_spaces (bool, opsional, default False) — Apakah akan membersihkan spasi tokenisasi. Argumen yang diteruskan ke metode batch_decode tokenizer.
  • **kwargs — Argumen tambahan yang akan diteruskan ke batch_decode method tokenizer.

Mengembalikan

list[str]

Teks yang telah didekodekan.

Lakukan proses pascaproses pada keluaran model untuk mendekode teks.

MiniMaxM3VLImageProcessor

Ini adalah pemroses gambar mandiri (non-modular): ia berbagi ide perataan patch dari Qwen2VLImageProcessor tetapi tidak mewarisi darinya karena keduanya berbeda dalam hal yang menyentuh sebagian besar kelas. Anggaran resize dikendalikan oleh atribut max_pixels dan size berupa {"height", "width"}, bukan skema shortest_edge/longest_edge milik Qwen; helper smart_resize membatasi pembulatan awal dengan max(factor, ...); dan _preprocess melakukan penanganan temporal yang sesungguhnya (patch 5D, pengulangan frame terakhir untuk mengisi temporal_patch_size, dan dimensi grid_t), bukan grid_t = 1 + expand milik Qwen. Pemetaan ke Qwen atau subclass-nya akan mengubah perilaku atau mengharuskan override hampir semuanya, sehingga pemroses ini dipertahankan secara mandiri.

kelas transformers.MiniMaxM3VLImageProcessor

< >

( **kwargs: *<class 'transformers.models.minimax_m3_vl.image_processing_minimax_m3_vl.MiniMaxM3VLImageProcessorKwargs'> )

Parameter

  • do_convert_rgb (bool, kwargs, opsional, default True) — Apakah akan mengkonversi gambar ke RGB.
  • do_resize (bool, kwargs, opsional, default True) — Apakah akan mengubah ukuran gambar.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnya {'shortest_edge' -- 3136, 'longest_edge': 451584}): Menggambarkan dimensi input maksimum ke model.
  • default_to_square (bool, kwargs, opsional, defaultnya False) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkan center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya 3) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enum PILImageResampling. Hanya berpengaruh jika do_resize diatur ke True.
  • do_rescale (bool, kwargs, opsional, default True) — Apakah akan melakukan penskalaan ulang pada gambar.
  • rescale_factor (float, kwargs, opsional, default 0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jika do_rescale diatur ke True.
  • do_normalize (bool, kwargs, opsional, default True) — Apakah akan menormalisasi gambar.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [0.48145466, 0.4578275, 0.40821073]) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [0.26862954, 0.26130258, 0.27577711]) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • do_pad (bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam {"height": int, "width" int} untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jika pad_size tidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketika do_pad=True.
  • do_center_crop (bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Hanya ChannelDimension.FIRST yang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:
    • "channels_first" atau ChannelDimension.FIRST: gambar dalam format (num_channels, height, width).
    • "channels_last" atau ChannelDimension.LAST: gambar dalam format (height, width, num_channels).
    • "none" atau ChannelDimension.NONE: gambar dalam format (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke 'pt', selain itu mengembalikan daftar tensor.
  • disable_grouping (bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
  • min_pixels (int, kwargs, opsional, default 56 * 56) — Jumlah piksel minimum gambar untuk melakukan resize pada gambar.
  • max_pixels (int, kwargs, opsional, default 28 * 28 * 1280) — Jumlah piksel maksimum gambar untuk mengubah ukuran gambar.
  • patch_size (int, kwargs, opsional, default 14) — Ukuran patch spasial dari encoder visual.
  • temporal_patch_size (int, kwargs, opsional, default 2) — Ukuran patch temporal dari vision encoder.
  • merge_size (int, kwargs, opsional, default 2) — Ukuran penggabungan dari vision encoder ke llm encoder.

Membangun pemroses gambar MiniMaxM3VLImageProcessor.

get_number_of_image_patches

< >

( height: intwidth: intimages_kwargs: dict | None = None ) → int

Parameter

  • height (int) — Tinggi gambar input.
  • width (int) — Lebar gambar input.
  • images_kwargs (dict, opsional) — Argumen apa pun untuk menimpa nilai bawaan dari pemroses gambar.

Mengembalikan

int

Jumlah patch gambar per gambar.

Utilitas yang mengembalikan jumlah patch gambar untuk ukuran gambar tertentu.

Catatan: Jangan hapus metode ini! Metode ini digunakan oleh vLLM untuk memperkirakan jumlah patch dan placeholder tanpa input gambar.

patchify

< >

( images: torch.Tensorpatch_size: intmerge_size: inttemporal_patch_size: int )

Membuat patch untuk setiap gambar menjadi tata letak datar dengan bentuk (seq_len, patch_dim) sehingga kita dapat menggabungkan piksel yang bentuknya dinamis.

praproses

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]**kwargs: *<class 'transformers.models.minimax_m3_vl.image_processing_minimax_m3_vl.MiniMaxM3VLImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

Parameter

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Gambar yang akan dipreprocess. Mengharapkan satu gambar atau batch gambar dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan gambar dengan nilai piksel antara 0 dan 1, atur do_rescale=False.
  • do_convert_rgb (bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB.
  • do_resize (bool, kwargs, opsional) — Apakah akan mengubah ukuran gambar.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Menggambarkan dimensi input maksimum untuk model.
  • default_to_square (bool, kwargs, opsional) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkan center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enum PILImageResampling. Hanya berpengaruh jika do_resize diatur ke True.
  • do_rescale (bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar.
  • rescale_factor (float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jika do_rescale diatur ke True.
  • do_normalize (bool, kwargs, opsional) — Apakah akan menormalisasi gambar.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • do_pad (bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam {"height": int, "width" int} untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jika pad_size tidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketika do_pad=True.
  • do_center_crop (bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Hanya ChannelDimension.FIRST yang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:
    • "channels_first" atau ChannelDimension.FIRST: gambar dalam format (num_channels, height, width).
    • "channels_last" atau ChannelDimension.LAST: gambar dalam format (height, width, num_channels).
    • "none" atau ChannelDimension.NONE: gambar dalam format (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke 'pt', selain itu mengembalikan daftar tensor.
  • disable_grouping (bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
  • min_pixels (int, kwargs, opsional, default 56 * 56) — Jumlah piksel minimum gambar untuk melakukan resize pada gambar.
  • max_pixels (int, kwargs, opsional, default 28 * 28 * 1280) — Jumlah piksel maksimum gambar untuk mengubah ukuran gambar.
  • patch_size (int, kwargs, opsional, default 14) — Ukuran patch spasial dari encoder visual.
  • temporal_patch_size (int, kwargs, opsional, default 2) — Ukuran patch temporal dari vision encoder.
  • merge_size (int, kwargs, opsional, default 2) — Ukuran penggabungan dari vision encoder ke llm encoder.

Mengembalikan

~image_processing_base.BatchFeature

  • data (dict) — Kamus berisi daftar/array/tensor yang dikembalikan oleh metode call (‘pixel_values’, dll.).
  • tensor_type (Union[None, str, TensorType], opsional) — Anda dapat memberikan tensor_type di sini untuk mengonversi daftar bilangan bulat menjadi Tensor PyTorch/Numpy saat inisialisasi.

resize

< >

( images: torch.Tensorsize: SizeDictresample: PILImageResampling | tvF.InterpolationMode | int | Nonefactor: int**kwargs )

Ukurkan secara dinamis berdasarkan rasio aspek gambar input.

MiniMaxM3VLVideoProcessor

kelas transformers.MiniMaxM3VLVideoProcessor

< >

( **kwargs: *<class 'transformers.models.minimax_m3_vl.video_processing_minimax_m3_vl.MiniMaxM3VLVideoProcessorKwargs'> )

Parameter

  • do_convert_rgb (bool, kwargs, opsional, default True) — Apakah akan mengkonversi gambar ke RGB.
  • do_resize (bool, kwargs, opsional, default True) — Apakah akan mengubah ukuran gambar.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnya {'height' -- 672, 'width': 672}): Menggambarkan dimensi input maksimum ke model.
  • default_to_square (bool, kwargs, opsional, defaultnya False) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya 3) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enum PILImageResampling. Hanya berpengaruh jika do_resize diatur ke True.
  • do_rescale (bool, kwargs, opsional, default True) — Apakah akan melakukan penskalaan ulang pada gambar.
  • rescale_factor (float, kwargs, opsional, default 0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jika do_rescale diatur ke True.
  • do_normalize (bool, kwargs, opsional, default True) — Apakah akan menormalisasi gambar.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [0.48145466, 0.4578275, 0.40821073]) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [0.26862954, 0.26130258, 0.27577711]) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • do_center_crop (bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar.
  • do_pad (bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkan center_crop.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Hanya ChannelDimension.FIRST yang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:
    • "channels_first" atau ChannelDimension.FIRST: gambar dalam format (num_channels, height, width).
    • "channels_last" atau ChannelDimension.LAST: gambar dalam format (height, width, num_channels).
    • "none" atau ChannelDimension.NONE: gambar dalam format (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input.
  • do_sample_frames (bool, kwargs, opsional, default False) — Apakah akan mengambil sampel frame dari video sebelum diproses atau memproses seluruh video.
  • video_metadata (Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None], kwargs) — Metadata dari video yang berisi informasi tentang durasi total, fps, dan jumlah total frame. Metadata ini akan digunakan untuk mengambil sampel frame dari video atau menghitung timestamp. Jangan kirimkan metadata apa pun kecuali Anda mencoba mendekode video secara manual sebelum diproses
  • fps (Union[float, int], kwargs, defaultnya 1.0) — Target frame yang akan disampel per detik ketika do_sample_frames=True.
  • num_frames (Annotated[int | None, None], kwargs) — Jumlah maksimum frame yang akan disampelkan saat do_sample_frames=True.
  • return_metadata (bool, kwargs, opsional, default False) — Apakah akan mengembalikan metadata video atau tidak. Metadata video adalah objek yang berisi informasi tentang durasi video, fps, backend decoding, dll.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Jika diset, akan mengembalikan tensor dari framework tertentu. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek NumPy np.ndarray.
  • patch_size (int, kwargs, opsional, default 14) — Ukuran patch spasial dari encoder visual.
  • temporal_patch_size (int, kwargs, opsional, default 2) — Ukuran patch temporal dari vision encoder.
  • merge_size (int, kwargs, opsional, default 2) — Ukuran penggabungan dari vision encoder ke llm encoder.
  • min_pixels (int, kwargs, opsional, default 4 * 28 * 28) — Jumlah piksel minimum dari sebuah frame untuk melakukan resize pada frame tersebut.
  • max_pixels (int, kwargs, opsional, defaultnya 768 * 28 * 28) — Jumlah piksel maksimum dari sebuah frame untuk mengubah ukuran frame tersebut.
  • total_pixels (int, kwargs, opsional, defaultnya int(64000 * 28 * 28 * 0.9)) — Jumlah total piksel maksimum di semua frame video.
  • min_frames (int, kwargs, opsional, default 4) — Jumlah minimum frame yang dapat disampelkan.
  • max_frames (int, kwargs, opsional, default 768) — Jumlah maksimum frame yang dapat disampelkan.
  • **kwargs (ProcessingKwargs, opsional) — Opsi pemrosesan tambahan untuk setiap modalitas (teks, gambar, video, audio). Parameter spesifik model tercantum di atas; lihat kelas TypedDict untuk daftar lengkap argumen yang didukung.

Membangun pemroses video MiniMaxM3VLVideoProcessor.

get_num_of_video_patches

< >

( num_frames: intheight: intwidth: intvideos_kwargs: dict | None = None ) → int

Parameter

  • num_frames (int) — Jumlah frame dalam video input.
  • height (int) — Tinggi video input.
  • width (int) — Lebar video input.
  • videos_kwargs (dict, opsional) — Argumen apa pun untuk menimpa nilai bawaan dari pemroses video.

Mengembalikan

int

Jumlah patch video per video.

Utilitas yang mengembalikan jumlah patch video untuk ukuran video tertentu.

Catatan: Jangan hapus metode ini! Metode ini digunakan oleh vLLM untuk memperkirakan jumlah patch dan placeholder tanpa input video.

MiniMaxM3VLVisionModel

kelas transformers.MiniMaxM3VLVisionModel

< >

( config: MiniMaxM3VLVisionConfig )

Parameter

  • config (MiniMaxM3VLVisionConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model Minimax M3 Vl polos yang menghasilkan hidden-states mentah tanpa head spesifik di atasnya.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( pixel_values: Tensorgrid_thw: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

Parameter

Mengembalikan

BaseModelOutputWithPooling atau tuple(torch.Tensor)

A BaseModelOutputWithPooling atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (MiniMaxM3VLConfig) dan input.

Metode forward dari MiniMaxM3VLVisionModel menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • last_hidden_state (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.

  • pooler_output (torch.Tensor dengan bentuk (batch_size, hidden_size)) — Hidden-state lapisan terakhir dari token pertama dalam urutan (token klasifikasi) setelah diproses lebih lanjut melalui lapisan yang digunakan untuk tugas pra-pelatihan tambahan. Misalnya, untuk keluarga model BERT, ini mengembalikan token klasifikasi setelah diproses melalui lapisan linear dan fungsi aktivasi tanh. Bobot lapisan linear dilatih dari tujuan prediksi kalimat berikutnya (klasifikasi) selama pra-pelatihan.

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

MiniMaxM3VLTextModel

kelas transformers.MiniMaxM3VLTextModel

< >

( config: MiniMaxM3VLTextConfig )

Parameter

  • config (MiniMaxM3VLTextConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model Minimax M3 Vl Text polos yang menghasilkan hidden-states mentah tanpa head spesifik di atasnya.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

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.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MoeModelOutputWithPast or tuple(torch.Tensor)

Parameter

  • input_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • position_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang [0, config.n_positions - 1].

    Apa itu ID posisi?

  • past_key_values (~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada past_key_values yang diteruskan, DynamicCache akan diinisialisasi secara default.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna diharapkan hanya memasukkan input_ids yang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk (batch_size, unprocessed_length) alih-alih semua input_ids dengan bentuk (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.
  • use_cache (bool, opsional) — Jika diset ke True, state kunci-nilai past_key_values akan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihat past_key_values).

Mengembalikan

MoeModelOutputWithPast atau tuple(torch.Tensor)

MoeModelOutputWithPast atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (MiniMaxM3VLConfig) dan input.

Metode forward dari MiniMaxM3VLTextModel menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • last_hidden_state (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.

  • past_key_values (Cache, opsional, dikembalikan saat use_cache=True dilewatkan atau saat config.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.

    Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention, dan secara opsional jika config.is_encoder_decoder=True di blok cross-attention) yang dapat digunakan (lihat input past_key_values) untuk mempercepat decoding berurutan.

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

  • router_logits (tuple(torch.Tensor), opsional, dikembalikan ketika output_router_probs=True dan config.add_router_probs=True diteruskan atau ketika config.output_router_probs=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, sequence_length, num_experts).

    Logit router mentah (setelah softmax) yang dihitung oleh router MoE; istilah-istilah ini digunakan untuk menghitung auxiliary loss pada model Mixture of Experts.

MiniMaxM3VLModel

kelas transformers.MiniMaxM3VLModel

< >

( config: MiniMaxM3VLConfig )

Parameter

  • config (MiniMaxM3VLConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

MiniMax M3 VL backbone (visi + proyektor + teks), tanpa LM head.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

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

Parameter

  • input_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

  • pixel_values (torch.Tensor dengan bentuk (batch_size, num_channels, image_size, image_size), opsional) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan MiniMaxM3VLImageProcessor. Lihat MiniMaxM3VLImageProcessor.call() untuk detailnya (MiniMaxM3VLProcessor menggunakan MiniMaxM3VLImageProcessor untuk memproses gambar).
  • pixel_values_videos (torch.Tensor dengan bentuk (batch_size, num_frames, num_channels, frame_size, frame_size), opsional) — Tensor yang sesuai dengan video input. Nilai piksel untuk video dapat diperoleh menggunakan MiniMaxM3VLVideoProcessor. Lihat MiniMaxM3VLVideoProcessor.call() untuk detailnya (MiniMaxM3VLProcessor menggunakan MiniMaxM3VLVideoProcessor untuk memproses video).
  • image_grid_thw (torch.Tensor dengan bentuk (num_images, 3), opsional) — Dimensi temporal, tinggi, dan lebar dari bentuk fitur setiap gambar dalam LLM.
  • video_grid_thw (torch.Tensor dengan bentuk (num_videos, 3), opsional) — Dimensi temporal, tinggi, dan lebar dari bentuk fitur setiap video dalam LLM.
  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • position_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang [0, config.n_positions - 1].

    Apa itu ID posisi?

  • past_key_values (~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada past_key_values yang diteruskan, DynamicCache akan diinisialisasi secara default.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna diharapkan hanya memasukkan input_ids yang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk (batch_size, unprocessed_length) alih-alih semua input_ids dengan bentuk (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.
  • mm_encoder_outputs (dict[str, ~modeling_outputs.BaseModelOutputWithPooling], opsional) — Dict di mana kuncinya adalah modalitas yang didukung dan nilainya adalah output terenkod untuk modalitas tersebut. Setiap output terenkod adalah tuple yang terdiri dari (pooler_output, opsional: last_hidden_states, opsional: hidden_states, opsional: attentions) pooler_output dengan bentuk (batch_size, sequence_length, hidden_size), opsional) adalah rangkaian fitur multimodal dari encoder yang digabungkan ke dalam embedding teks.

Mengembalikan

MiniMaxM3VLModelOutputWithPast atau tuple(torch.Tensor)

MiniMaxM3VLModelOutputWithPast atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (MiniMaxM3VLConfig) dan input.

Metode forward dari MiniMaxM3VLModel menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • last_hidden_state (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.

    Jika past_key_values digunakan, hanya hidden-state terakhir dari sekuens dengan bentuk (batch_size, 1, hidden_size) yang dioutput.

  • past_key_values (Cache, opsional, dikembalikan saat use_cache=True dilewatkan atau saat config.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.

    Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention) yang dapat digunakan (lihat input past_key_values) untuk mempercepat decoding berurutan.

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

  • image_hidden_states (torch.Tensor, opsional) — Sebuah torch.Tensor berukuran (num_image_patches, hidden_size). image_hidden_states dari model yang dihasilkan oleh vision encoder dan setelah memproyeksikan hidden state terakhir.

  • video_hidden_states (torch.Tensor, opsional) — Sebuah torch.Tensor berukuran (num_video_patches, hidden_size). video_hidden_states dari model yang dihasilkan oleh vision encoder dan setelah memproyeksikan hidden state terakhir.

  • router_logits (tuple(torch.Tensor), opsional, dikembalikan saat output_router_logits=True dilewatkan) — Tuple dari torch.Tensor (satu untuk setiap lapisan) dengan bentuk (batch_size, sequence_length, num_experts).

MiniMaxM3VLForCausalLM

kelas transformers.MiniMaxM3VLForCausalLM

< >

( config: MiniMaxM3VLTextConfig )

Parameter

  • config (MiniMaxM3VLTextConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model Minimax M3 Vl untuk pemodelan bahasa kausal.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

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.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Noneoutput_router_logits: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MoeCausalLMOutputWithPast or tuple(torch.Tensor)

Parameter

  • input_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • position_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang [0, config.n_positions - 1].

    Apa itu ID posisi?

  • past_key_values (~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada past_key_values yang diteruskan, DynamicCache akan diinisialisasi secara default.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna diharapkan hanya memasukkan input_ids yang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk (batch_size, unprocessed_length) alih-alih semua input_ids dengan bentuk (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.
  • labels (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Label untuk menghitung kerugian pemodelan bahasa yang disamarkan (masked language modeling). Indeks harus berada dalam [0, ..., config.vocab_size] atau -100 (lihat docstring input_ids). Token dengan indeks yang disetel ke -100 diabaikan (disamarkan), kerugian hanya dihitung untuk token dengan label dalam [0, ..., config.vocab_size].
  • use_cache (bool, opsional) — Jika diset ke True, state kunci-nilai past_key_values akan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihat past_key_values).
  • output_router_logits (bool, opsional) — Apakah logits dari semua router akan dikembalikan atau tidak. Logits ini berguna untuk menghitung kerugian router, dan tidak seharusnya dikembalikan selama inferensi.
  • logits_to_keep (Union[int, torch.Tensor], opsional, default 0) — Jika berupa int, hitung logits untuk logits_to_keep token terakhir. Jika 0, hitung logits untuk semua input_ids (kasus khusus). Hanya logits token terakhir yang diperlukan untuk generasi, dan menghitungnya hanya untuk token tersebut dapat menghemat memori, yang menjadi cukup signifikan untuk urutan panjang atau ukuran kosakata besar. Jika berupa torch.Tensor, harus 1D yang sesuai dengan indeks yang akan dipertahankan pada dimensi panjang urutan. Ini berguna saat menggunakan format tensor terpadu (satu dimensi untuk batch dan panjang urutan).

Mengembalikan

MoeCausalLMOutputWithPast atau tuple(torch.Tensor)

MoeCausalLMOutputWithPast atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (MiniMaxM3VLConfig) dan input.

Metode forward dari MiniMaxM3VLForCausalLM menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • loss (torch.Tensor dengan bentuk (1,), opsional, dikembalikan saat labels disediakan) — Loss pemodelan bahasa (untuk prediksi token berikutnya).

  • logits (torch.Tensor dengan bentuk (batch_size, sequence_length, config.vocab_size)) — Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).

  • aux_loss (torch.Tensor, opsional, dikembalikan ketika output_router_logits=True dilewatkan atau ketika config.output_router_logits=True, dan model melatih router-nya dengan loss penyeimbangan beban) — Loss bantu penyeimbangan beban untuk modul sparse. Model yang menyeimbangkan pakar mereka dengan bias router sebagai gantinya (DeepSeek-V3 dan arsitektur yang diturunkan darinya) mengembalikan None di sini sambil tetap mengembalikan router_logits.

  • router_logits (tuple(torch.Tensor), opsional, dikembalikan ketika output_router_logits=True diteruskan atau ketika config.output_router_logits=True) — Tuple dari torch.Tensor (satu untuk setiap lapisan sparse) dengan bentuk (batch_size * sequence_length, num_experts).

    Logit router mentah yang dihitung oleh router MoE. Logit ini dapat digunakan untuk menghitung kerugian penyeimbangan beban (load-balancing loss) atau untuk memeriksa bagaimana token didistribusikan ke para ahli (experts).

  • past_key_values (Cache, opsional, dikembalikan saat use_cache=True dilewatkan atau saat config.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.

    Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention) yang dapat digunakan (lihat input past_key_values) untuk mempercepat decoding berurutan.

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

Contoh:

>>> from transformers import AutoTokenizer, MiniMaxM3VLForCausalLM

>>> model = MiniMaxM3VLForCausalLM.from_pretrained("mistralai/MiniMaxM3VL-8x7B-v0.1")
>>> tokenizer = AutoTokenizer.from_pretrained("mistralai/MiniMaxM3VL-8x7B-v0.1")

>>> prompt = "Hey, are you conscious? Can you talk to me?"
>>> inputs = tokenizer(prompt, return_tensors="pt")

>>> # Generate
>>> generate_ids = model.generate(inputs.input_ids, max_length=30)
>>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"Hey, are you conscious? Can you talk to me?\nI'm not conscious, but I can talk to you."

MiniMaxM3SparseForConditionalGeneration

kelas transformers.MiniMaxM3SparseForConditionalGeneration

< >

( config: MiniMaxM3VLConfig )

Parameter

  • config (MiniMaxM3VLConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

MiniMax M3 VL model lengkap dengan LM head (teks + visi).

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Nonepixel_values_videos: typing.Optional[torch.Tensor] = Noneimage_grid_thw: typing.Optional[torch.Tensor] = Nonevideo_grid_thw: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneoutput_router_logits: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0mm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MiniMaxM3VLCausalLMOutputWithPast or tuple(torch.Tensor)

Parameter

  • input_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

  • pixel_values (torch.Tensor dengan bentuk (batch_size, num_channels, image_size, image_size), opsional) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan MiniMaxM3VLImageProcessor. Lihat MiniMaxM3VLImageProcessor.call() untuk detailnya (MiniMaxM3VLProcessor menggunakan MiniMaxM3VLImageProcessor untuk memproses gambar).
  • pixel_values_videos (torch.Tensor dengan bentuk (batch_size, num_frames, num_channels, frame_size, frame_size), opsional) — Tensor yang sesuai dengan video input. Nilai piksel untuk video dapat diperoleh menggunakan MiniMaxM3VLVideoProcessor. Lihat MiniMaxM3VLVideoProcessor.call() untuk detailnya (MiniMaxM3VLProcessor menggunakan MiniMaxM3VLVideoProcessor untuk memproses video).
  • image_grid_thw (torch.Tensor dengan bentuk (num_images, 3), opsional) — Dimensi temporal, tinggi, dan lebar dari bentuk fitur setiap gambar dalam LLM.
  • video_grid_thw (torch.Tensor dengan bentuk (num_videos, 3), opsional) — Dimensi temporal, tinggi, dan lebar dari bentuk fitur setiap video dalam LLM.
  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • position_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang [0, config.n_positions - 1].

    Apa itu ID posisi?

  • past_key_values (~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada past_key_values yang diteruskan, DynamicCache akan diinisialisasi secara default.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna diharapkan hanya memasukkan input_ids yang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk (batch_size, unprocessed_length) alih-alih semua input_ids dengan bentuk (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.
  • labels (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Label untuk menghitung kerugian pemodelan bahasa yang disamarkan (masked language modeling). Indeks harus berada dalam [0, ..., config.vocab_size] atau -100 (lihat docstring input_ids). Token dengan indeks yang disetel ke -100 diabaikan (disamarkan), kerugian hanya dihitung untuk token dengan label dalam [0, ..., config.vocab_size].
  • output_router_logits (bool, opsional) — Apakah logits dari semua router akan dikembalikan atau tidak. Logits ini berguna untuk menghitung kerugian router, dan tidak seharusnya dikembalikan selama inferensi.
  • logits_to_keep (Union[int, torch.Tensor], opsional, default 0) — Jika berupa int, hitung logits untuk logits_to_keep token terakhir. Jika 0, hitung logits untuk semua input_ids (kasus khusus). Hanya logits token terakhir yang diperlukan untuk generasi, dan menghitungnya hanya untuk token tersebut dapat menghemat memori, yang menjadi cukup signifikan untuk urutan panjang atau ukuran kosakata besar. Jika berupa torch.Tensor, harus 1D yang sesuai dengan indeks yang akan dipertahankan pada dimensi panjang urutan. Ini berguna saat menggunakan format tensor terpadu (satu dimensi untuk batch dan panjang urutan).
  • mm_encoder_outputs (dict[str, ~modeling_outputs.BaseModelOutputWithPooling], opsional) — Dict di mana kuncinya adalah modalitas yang didukung dan nilainya adalah output terenkod untuk modalitas tersebut. Setiap output terenkod adalah tuple yang terdiri dari (pooler_output, opsional: last_hidden_states, opsional: hidden_states, opsional: attentions) pooler_output dengan bentuk (batch_size, sequence_length, hidden_size), opsional) adalah rangkaian fitur multimodal dari encoder yang digabungkan ke dalam embedding teks.

Mengembalikan

MiniMaxM3VLCausalLMOutputWithPast atau tuple(torch.Tensor)

MiniMaxM3VLCausalLMOutputWithPast atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (MiniMaxM3VLConfig) dan input.

Metode forward dari MiniMaxM3SparseForConditionalGeneration menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • loss (torch.Tensor dengan bentuk (1,), opsional, dikembalikan saat labels disediakan) — Loss pemodelan bahasa (untuk prediksi token berikutnya).

  • logits (torch.Tensor dengan bentuk (batch_size, sequence_length, config.vocab_size)) — Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).

  • past_key_values (Cache, opsional, dikembalikan saat use_cache=True dilewatkan atau saat config.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.

    Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention) yang dapat digunakan (lihat input past_key_values) untuk mempercepat decoding berurutan.

  • hidden_states (tuple[torch.Tensor], opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple[torch.Tensor], opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

  • image_hidden_states (torch.Tensor, opsional) — Sebuah torch.Tensor berukuran (num_image_patches, hidden_size). image_hidden_states dari model yang dihasilkan oleh vision encoder dan setelah memproyeksikan hidden state terakhir.

  • video_hidden_states (torch.Tensor, opsional) — Sebuah torch.Tensor berukuran (num_video_patches, hidden_size). video_hidden_states dari model yang dihasilkan oleh vision encoder dan setelah memproyeksikan hidden state terakhir.

  • aux_loss (torch.Tensor, opsional, dikembalikan saat output_router_logits=True diteruskan) — Loss pembantu penyeimbangan beban untuk modul sparse.

  • router_logits (tuple(torch.Tensor), opsional, dikembalikan saat output_router_logits=True dilewatkan) — Tuple dari torch.Tensor (satu untuk setiap lapisan) dengan bentuk (batch_size, sequence_length, num_experts).

Contoh:

>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, MiniMaxM3SparseForConditionalGeneration

>>> model = MiniMaxM3SparseForConditionalGeneration.from_pretrained("mini_max_m3_sparse-hf/mini_max_m3_sparse-1.5-7b-hf")
>>> processor = AutoProcessor.from_pretrained("mini_max_m3_sparse-hf/mini_max_m3_sparse-1.5-7b-hf")

>>> prompt = "USER: <image>\nWhat's the content of the image? ASSISTANT:"
>>> url = "https://www.ilankelman.org/stopsigns/australia.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

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

>>> # Generate
>>> generate_ids = model.generate(**inputs, max_new_tokens=15)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"USER:  \nWhat's the content of the image? ASSISTANT: The image features a busy city street with a stop sign prominently displayed"
Update on GitHub