Transformers documentation
Moshi
Model ini dipublikasikan di HF papers pada 2024-09-17 dan disumbangkan ke Hugging Face Transformers pada 2024-10-16.
Moshi
Ikhtisar
Model Moshi diusulkan dalam Moshi: a speech-text foundation model for real-time dialogue oleh Alexandre Défossez, Laurent Mazaré, Manu Orsini, Amélie Royer, Patrick Pérez, Hervé Jégou, Edouard Grave, dan Neil Zeghidour.
Moshi adalah model dasar ucapan-teks yang memperlakukan dialog lisan sebagai generasi ucapan-ke-ucapan. Berangkat dari tulang punggung model bahasa teks, Moshi menghasilkan ucapan sebagai token dari residual quantizer dari codec audio neural, sambil memodelkan secara terpisah ucapan dirinya sendiri dan ucapan pengguna ke dalam stream paralel. Hal ini memungkinkan penghapusan giliran pembicara yang eksplisit, serta pemodelan dinamika percakapan yang arbitrer. Moshi juga memprediksi token teks yang selaras waktu sebagai prefiks untuk token audio. Metode “Inner Monologue” ini secara signifikan meningkatkan kualitas linguistik dari ucapan yang dihasilkan dan menyediakan pengakuan ucapan streaming serta teks-ke-ucapan. Akibatnya, Moshi adalah model bahasa besar lisan full-duplex real-time pertama, dengan latensi teoretis 160ms, dan 200ms dalam praktiknya.

Abstrak dari makalah tersebut adalah sebagai berikut:
Kami memperkenalkan Moshi, sebuah model dasar ucapan-teks dan kerangka kerja dialog lisan full-duplex. Sistem saat ini untuk dialog lisan bergantung pada pipeline komponen independen, yaitu deteksi aktivitas suara, pengenalan ucapan, dialog teks, dan teks-ke-ucapan. Kerangka kerja semacam itu tidak dapat meniru pengalaman percakapan nyata. Pertama, kompleksitasnya menimbulkan latensi beberapa detik antar interaksi. Kedua, karena teks menjadi modalitas perantara untuk dialog, informasi non-bahasa yang memodifikasi makna—seperti emosi atau suara non-ucapan—hilang dalam interaksi. Terakhir, sistem ini bergantung pada segmentasi giliran pembicara, yang tidak memperhitungkan ucapan yang tumpang tindih, interupsi, dan sisipan. Moshi menyelesaikan masalah-masalah independen ini secara keseluruhan dengan memformulasikan dialog lisan sebagai generasi ucapan-ke-ucapan. Berangkat dari tulang punggung model bahasa teks, Moshi menghasilkan ucapan sebagai token dari residual quantizer codec audio neural, sambil memodelkan secara terpisah ucapan dirinya sendiri dan ucapan pengguna ke dalam stream paralel. Hal ini memungkinkan penghapusan giliran pembicara eksplisit, serta pemodelan dinamika percakapan yang arbitrer. Kami juga memperluas generasi token semantik-ke-akustik hierarkis dari pekerjaan sebelumnya untuk pertama kali memprediksi token teks yang selaras waktu sebagai awalan untuk token audio. Metode “Inner Monologue” ini tidak hanya secara signifikan meningkatkan kualitas linguistik ucapan yang dihasilkan, tetapi kami juga mengilustrasikan bagaimana metode ini dapat menyediakan pengenalan ucapan streaming dan teks-ke-ucapan. Model yang dihasilkan adalah model bahasa besar lisan full-duplex real-time pertama, dengan latensi teoretis 160ms, 200ms dalam praktiknya, dan tersedia di github.com/kyutai-labs/moshi.
Moshi menangani 3 aliran informasi:
- Audio pengguna
- Audio Moshi
- Output teks Moshi
Sama seperti ~MusicgenModel, audio direpresentasikan dengan audio codebooks, yang dapat diinterpretasikan seperti token. Perbedaan utama antara token teks dan audio codebooks adalah bahwa audio codebooks memperkenalkan dimensi informasi tambahan.
Token teks biasanya memiliki dimensi (batch_size, sequence_length) tetapi token audio memiliki dimensi (batch_size, num_codebooks, sequence_length).
Moshi terdiri dari 3 komponen:
1. Dekoder utama (Helium dalam makalah)
Ini sesuai dengan MoshiForCausalLM. Ini adalah LLM teks klasik yang menggunakan arsitektur serupa dengan ~GemmaForCausalLM. Dengan kata lain, model ini mengambil token teks, melakukan embedding, melewatkan token tersebut melalui decoder dan head bahasa, untuk mendapatkan logits teks.
2. Dekoder kedalaman
Secara mandiri, ini juga merupakan LLM klasik, tetapi kali ini, alih-alih menghasilkan output pada dimensi waktu, ia menghasilkan output pada dimensi codebook.
Ini juga berarti bahwa panjang konteksnya adalah num_codebooks, sehingga tidak dapat menghasilkan lebih dari num_codebooks.
Perhatikan bahwa setiap timestamp - yaitu setiap codebook - mendapatkan set Linear Layers dan Embeddings-nya sendiri.
3. MimiModel
Ini adalah encoder audio dari Kyutai, yang baru-baru ini diintegrasikan ke transformers, dan digunakan untuk “menokenisasi” audio. Fungsinya sama dengan ~EncodecModel di ~MusicgenModel.
Tips
Checkpoint asli dapat dikonversi menggunakan skrip konversi src/transformers/models/moshi/convert_moshi_transformers.py
Cara menggunakan model
Implementasi ini memiliki dua tujuan utama:
- menguji cepat generasi model dengan menyederhanakan API asli
- sederhanakan pelatihan. Panduan pelatihan akan segera hadir, namun kontribusi dari pengguna sangat disambut!
Ini dirancang untuk penggunaan tingkat menengah. Kami sangat merekomendasikan menggunakan implementasi asli untuk melakukan inferensi model dalam streaming real-time.
1. Generasi model
Moshi adalah model auto-regressive streaming dengan dua aliran audio. Dengan kata lain, satu aliran audio sesuai dengan apa yang dikatakan/akan dikatakan oleh model, dan aliran audio lainnya sesuai dengan apa yang dikatakan/akan dikatakan oleh pengguna.
MoshiForConditionalGeneration.generate() sehingga membutuhkan 3 input:
input_ids- sesuai dengan riwayat token teksmoshi_input_valuesataumoshi_audio_codes- sesuai dengan riwayat audio modeluser_input_valuesatauuser_audio_codes- yang sesuai dengan riwayat audio pengguna
Ketiga input ini harus disinkronkan. Artinya, panjangnya harus sesuai dengan jumlah token yang sama.
Anda dapat menggunakan secara dinamis 3 input tergantung pada apa yang ingin Anda uji:
- Cukup periksa respons model terhadap prompt pengguna - dalam hal itu,
input_idsdapat diisi dengan token pad danuser_input_valuesdapat berupa tensor nol dengan bentuk yang sama dengan prompt pengguna. - Uji perilaku yang lebih kompleks - dalam hal ini, Anda harus berhati-hati tentang bagaimana token input disinkronkan dengan audio.
Model asli adalah teks yang disinkronkan dengan audio dengan cara mengisi ruang kosong di antara setiap pengucapan token.
Untuk mengikuti contoh pada gambar berikut,
"Hello, I'm Moshi"dapat diubah menjadi"Hello,<pad><unk>I'm Moshi".

MoshiForConditionalGeneration.generate() kemudian secara auto-regresif memberi umpan balik ke dirinya sendiri aliran audionya, tetapi karena tidak memiliki akses ke aliran input pengguna saat menggunakan transformers, ia akan mengasumsikan bahwa pengguna menghasilkan audio kosong.
import math
import torch
from datasets import Audio, load_dataset
from transformers import AutoFeatureExtractor, AutoTokenizer
librispeech_dummy = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
feature_extractor = AutoFeatureExtractor.from_pretrained("kyutai/moshiko-pytorch-bf16")
tokenizer = AutoTokenizer.from_pretrained("kyutai/moshiko-pytorch-bf16")
dtype = torch.bfloat16
# prepare user input audio
librispeech_dummy = librispeech_dummy.cast_column("audio", Audio(sampling_rate=feature_extractor.sampling_rate))
audio_sample = librispeech_dummy[-1]["audio"]["array"]
user_input_values = feature_extractor(raw_audio=audio_sample, sampling_rate=feature_extractor.sampling_rate, return_tensors="pt").to(device=device, dtype=dtype)
# prepare moshi input values - we suppose moshi didn't say anything while the user spoke
moshi_input_values = torch.zeros_like(user_input_values.input_values)
# prepare moshi input ids - we suppose moshi didn't say anything while the user spoke
num_tokens = math.ceil(moshi_input_values.shape[-1] * waveform_to_token_ratio)
input_ids = torch.ones((1, num_tokens), device=device, dtype=torch.int64) * tokenizer.encode("<pad>")[0]
# generate 25 new tokens (around 2s of audio)
output = model.generate(input_ids=input_ids, user_input_values=user_input_values.input_values, moshi_input_values=moshi_input_values, max_new_tokens=25)
text_tokens = output.sequences
audio_waveforms = output.audio_sequences2. Pelatihan model
Sebagian besar pekerjaan harus dilakukan selama pembuatan/prapemrosesan data, karena kebutuhan untuk menyelaraskan/mensinkronkan aliran.
Setelah selesai, Anda cukup meneruskan text_labels dan audio_labels ke MoshiForConditionalGeneration.forward(), bersama dengan input yang biasa, untuk mendapatkan loss model.
Panduan pelatihan akan segera hadir, namun kontribusi dari pengguna sangat disambut!
Bagaimana model meneruskan input / menghasilkan
Aliran input disematkan dan digabungkan menjadi
inputs_embeds.inputs_embedsditeruskan ke decoder utama, yang memprosesnya seperti LLM biasa.Decoder utama menghasilkan
text logitstetapi jugalast hidden state-nya yang disebuttemporal contextdalam makalah tersebut.Depth decoder mengubah dimensi yang kita gunakan untuk meneruskan/menghasilkan (codebook alih-alih waktu). Ia menggunakan token yang dihasilkan dari
text logitsdantemporal contextuntuk menghasilkan codebook audio secara auto-regresif.
Model ini disumbangkan oleh Yoach Lacombe (ylacombe).
Kode asli dapat ditemukan di sini.
MoshiConfig
kelas transformers.MoshiConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 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 = 32000hidden_size: int = 4096num_hidden_layers: int = 32num_attention_heads: int = 32num_key_value_heads: int | None = Noneaudio_vocab_size: int | None = Nonemax_position_embeddings: int = 3000rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonehidden_act: str = 'silu'head_dim: int | None = Noneinitializer_range: float = 0.02use_cache: bool = Truesliding_window: int = 3000attention_dropout: float | int = 0.0ffn_dim: int = 22528rms_norm_eps: float = 1e-08num_codebooks: int = 8tie_word_embeddings: bool = Falsepad_token_id: int | None = Nonebos_token_id: int | None = Noneeos_token_id: int | list[int] | None = Noneaudio_encoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonedepth_decoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None )
Parameter
- vocab_size (
int, opsional, default32000) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan olehinput_ids. - hidden_size (
int, opsional, default4096) — Dimensi dari representasi tersembunyi. - num_hidden_layers (
int, opsional, default32) — Jumlah lapisan tersembunyi dalam decoder Transformer. - num_attention_heads (
int, opsional, default32) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer. - num_key_value_heads (
int, opsional) — Ini adalah jumlah key_value heads yang harus digunakan untuk mengimplementasikan Grouped Query Attention. Jikanum_key_value_heads=num_attention_heads, model akan menggunakan Multi Head Attention (MHA), jikanum_key_value_heads=1model 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 grup tersebut. Untuk detail lebih lanjut, lihat paper ini. Jika tidak ditentukan, akan default kenum_attention_heads. - audio_vocab_size (
int, opsional) — Ukuran kosakata bagian audio dari model. Menentukan jumlah token berbeda yang dapat direpresentasikan olehaudio_codesyang diteruskan saat memanggil model Moshi. - max_position_embeddings (
int, opsional, default3000) — Panjang maksimum urutan yang mungkin digunakan dengan model ini. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], opsional) — Kamus yang berisi parameter konfigurasi untuk embedding RoPE. Kamus tersebut harus berisi nilai untukrope_thetadan secara opsional parameter yang digunakan untuk penskalaan jika Anda ingin menggunakan RoPE denganmax_position_embeddingsyang lebih panjang. - hidden_act (
str, opsional, defaultnyasilu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - head_dim (
int, opsional) — Dimensi head perhatian. Jika None, nilainya akan secara default menjadi hidden_size // num_attention_heads - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - use_cache (
bool, opsional, defaultnyaTrue) — Apakah model harus mengembalikan perhatian kunci/nilai terakhir (tidak digunakan oleh semua model). Hanya relevan jikaconfig.is_decoder=Trueatau ketika model adalah model generatif yang hanya decoder. - sliding_window (
int, opsional, default3000) — Ukuran jendela untuk sliding window attention. JikaNone, sliding window tidak diterapkan. - attention_dropout (
Union[float, int], opsional, default0.0) — Rasio dropout untuk probabilitas perhatian. - ffn_dim (
int, opsional, default 22528) — Dimensi dari lapisan “intermediate” (sering disebut feed-forward) dalam blok decoder utama. Harus genap. - rms_norm_eps (
float, opsional, defaultnya1e-08) — Epsilon yang digunakan oleh lapisan normalisasi rms. - num_codebooks (
int, opsional, default8) — Jumlah codebook paralel yang digunakan oleh model. - tie_word_embeddings (
bool, opsional, defaultFalse) — Apakah akan mengikat bobot embedding sesuai dengan pemetaantied_weights_keysmodel. - pad_token_id (
int, opsional) — ID token yang digunakan untuk padding dalam kosakata. - bos_token_id (
int, opsional) — ID token yang digunakan untuk awal aliran (beginning-of-stream) dalam kosakata. - eos_token_id (
Union[int, list[int]], opsional) — ID token yang digunakan untuk akhir aliran dalam kosakata. - audio_encoder_config (
PreTrainedConfig | dict, opsional) — Konfigurasi untuk audio encoder. - depth_decoder_config (
PreTrainedConfig | dict, opsional) — Konfigurasi untuk depth decoder.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari MoshiModel. Kelas ini digunakan untuk membuat instans model Moshi sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari kmhf/hf-moshika
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Contoh:
>>> from transformers import (
... MoshiConfig,
... MoshiForConditionalGeneration,
... )
>>> configuration = MoshiConfig()
>>> # Initializing a MoshiForConditionalGeneration (with random weights) from the kmhf/hf-moshika style configuration
>>> model = MoshiForConditionalGeneration(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config
>>> # Saving the model, including its configuration
>>> model.save_pretrained("kmhf/hf-moshika")
>>> # loading model and config from pretrained folder
>>> moshi_config = MoshiConfig.from_pretrained("kmhf/hf-moshika")
>>> model = MoshiForConditionalGeneration.from_pretrained("kmhf/hf-moshika", config=moshi_config)from_audio_encoder_config
< source >( audio_encoder_config: PreTrainedConfig**kwargs ) → MoshiConfig
Mengembalikan
Instans dari objek konfigurasi
Instansiasi MoshiConfig (atau kelas turunan) dari konfigurasi encoder audio.
MoshiDepthConfig
kelas transformers.MoshiDepthConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 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 = 32000hidden_size: int = 1024input_size: int = 4096num_hidden_layers: int = 6num_attention_heads: int = 16num_key_value_heads: int | None = Noneaudio_vocab_size: int = 2048max_position_embeddings: int = 9hidden_act: str = 'silu'head_dim: int | None = Noneinitializer_range: float = 0.02use_cache: bool = Truesliding_window: int = 8attention_dropout: float | int = 0.0ffn_dim: int = 5632rms_norm_eps: float = 1e-08num_codebooks: int = 8tie_word_embeddings: bool = Falsepad_token_id: int | None = Nonebos_token_id: int | None = Noneeos_token_id: int | list[int] | None = None )
Parameter
- vocab_size (
int, opsional, default32000) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan olehinput_ids. - hidden_size (
int, opsional, default1024) — Dimensi dari representasi tersembunyi. - input_size (
int, opsional, default 4096) — Dimensi dari hidden states input. Digunakan untuk menghubungkan decoder utama ke decoder kedalaman. - num_hidden_layers (
int, opsional, default6) — Jumlah lapisan tersembunyi dalam decoder Transformer. - num_attention_heads (
int, opsional, default16) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer. - num_key_value_heads (
int, opsional) — Ini adalah jumlah key_value heads yang harus digunakan untuk mengimplementasikan Grouped Query Attention. Jikanum_key_value_heads=num_attention_heads, model akan menggunakan Multi Head Attention (MHA), jikanum_key_value_heads=1model 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 grup tersebut. Untuk detail lebih lanjut, lihat paper ini. Jika tidak ditentukan, akan default kenum_attention_heads. - audio_vocab_size (
int, opsional, default 2048) — Ukuran kosakata bagian audio dari model. Menentukan jumlah token berbeda yang dapat direpresentasikan olehaudio_codesyang diteruskan saat memanggil model Moshi. - max_position_embeddings (
int, opsional, default9) — Panjang maksimum urutan yang mungkin digunakan dengan model ini. - hidden_act (
str, opsional, defaultnyasilu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - head_dim (
int, opsional) — Dimensi head perhatian. Jika None, nilainya akan secara default menjadi hidden_size // num_attention_heads - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - use_cache (
bool, opsional, defaultnyaTrue) — Apakah model harus mengembalikan perhatian kunci/nilai terakhir (tidak digunakan oleh semua model). Hanya relevan jikaconfig.is_decoder=Trueatau ketika model adalah model generatif yang hanya decoder. - sliding_window (
int, opsional, default8) — Ukuran jendela untuk sliding window attention. JikaNone, sliding window tidak diterapkan. - attention_dropout (
Union[float, int], opsional, default0.0) — Rasio dropout untuk probabilitas perhatian. - ffn_dim (
int, opsional, default 5632) — Dimensi dari lapisan “intermediate” (sering disebut feed-forward) dalam blok depth decoder. Harus genap. - rms_norm_eps (
float, opsional, defaultnya1e-08) — Epsilon yang digunakan oleh lapisan normalisasi rms. - num_codebooks (
int, opsional, default8) — Jumlah codebook paralel yang digunakan oleh model. - tie_word_embeddings (
bool, opsional, defaultFalse) — Apakah akan mengikat bobot embedding sesuai dengan pemetaantied_weights_keysmodel. - pad_token_id (
int, opsional) — ID token yang digunakan untuk padding dalam kosakata. - bos_token_id (
int, opsional) — ID token yang digunakan untuk awal aliran (beginning-of-stream) dalam kosakata. - eos_token_id (
Union[int, list[int]], opsional) — ID token yang digunakan untuk akhir aliran dalam kosakata.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari MoshiModel. Kelas ini digunakan untuk membuat instans model Moshi sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari kmhf/hf-moshika
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Contoh:
>>> from transformers import (
... MoshiDepthConfig,
... MoshiDepthDecoder,
... )
>>> configuration = MoshiDepthConfig()
>>> # Initializing a MoshiDepthDecoder (with random weights) from the kmhf/hf-moshika style configuration
>>> model = MoshiDepthDecoder(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configMoshiModel
kelas transformers.MoshiModel
< source >( config: MoshiConfig )
Parameter
- config (MoshiConfig) — 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 Moshi 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
< source >( 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'> ) → BaseModelOutputWithPast or tuple(torch.Tensor)
Parameter
- input_ids (
torch.LongTensordengan 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.
- attention_mask (
torch.Tensordengan 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.
- position_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang[0, config.n_positions - 1]. - 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 daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values).
Mengembalikan
BaseModelOutputWithPast atau tuple(torch.Tensor)
A BaseModelOutputWithPast atau tuple dari
torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (MoshiConfig) dan input.
Metode forward dari MoshiModel menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya 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.Tensordengan bentuk(batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.Jika
past_key_valuesdigunakan, hanya hidden-state terakhir dari sekuens dengan bentuk(batch_size, 1, hidden_size)yang dioutput.past_key_values (
Cache, opsional, dikembalikan saatuse_cache=Truedilewatkan atau saatconfig.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=Truedi blok cross-attention) yang dapat digunakan (lihat inputpast_key_values) untuk mempercepat decoding berurutan.hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.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 saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.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).
MoshiForCausalLM
kelas transformers.MoshiForCausalLM
< source >( config: MoshiConfig )
Parameter
- config (MoshiConfig) — 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 decoder Moshi dengan kepala pemodelan bahasa teks di atasnya. Hanya dapat digunakan untuk teks.
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
< source >( 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 = Nonelabels: typing.Optional[torch.LongTensor] = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MoshiCausalLMOutputWithPast or tuple(torch.Tensor)
Parameter
- input_ids (
torch.LongTensordengan 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.
- attention_mask (
torch.Tensordengan 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.
- position_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang[0, config.n_positions - 1]. - 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 daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values). - labels (
torch.LongTensordengan 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 docstringinput_ids). Token dengan indeks yang disetel ke-100diabaikan (disamarkan), kerugian hanya dihitung untuk token dengan label dalam[0, ..., config.vocab_size]. - logits_to_keep (
Union[int, torch.Tensor], opsional, default0) — Jika berupaint, hitung logits untuklogits_to_keeptoken terakhir. Jika0, hitung logits untuk semuainput_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 berupatorch.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
MoshiCausalLMOutputWithPast atau tuple(torch.Tensor)
MoshiCausalLMOutputWithPast atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (MoshiConfig) dan input.
Metode forward dari MoshiForCausalLM menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss pemodelan bahasa (untuk prediksi token berikutnya).logits (
torch.Tensordengan bentuk(batch_size, sequence_length, config.vocab_size)) — Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-states pada keluaran lapisan terakhir model.past_key_values (
Cache, opsional, dikembalikan saatuse_cache=Truedilewatkan atau saatconfig.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 ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.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 saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.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, MoshiForCausalLM
>>> model = MoshiForCausalLM.from_pretrained("kmhf/hf-moshika")
>>> tokenizer = AutoTokenizer.from_pretrained("kmhf/hf-moshika")
>>> prompt = "What is your favorite condiment?"
>>> 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]
"What is your favorite condiment?"MoshiForConditionalGeneration
kelas transformers.MoshiForConditionalGeneration
< source >( config: MoshiConfig )
Parameter
- config (MoshiConfig) — 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 Moshi asli dengan encoder audio, decoder kedalaman Moshi, dan decoder Moshi, untuk speech-to-speech.
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
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.BoolTensor] = Noneuser_input_values: typing.Optional[torch.Tensor] = Noneuser_audio_codes: typing.Optional[torch.Tensor] = Nonemoshi_input_values: typing.Optional[torch.Tensor] = Nonemoshi_audio_codes: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonetext_labels: typing.Optional[torch.LongTensor] = Noneaudio_labels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs ) → MoshiConditionalGenerationOutputWithPast or tuple(torch.Tensor)
Parameter
- input_ids (
torch.LongTensordengan 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.
- attention_mask (
torch.BoolTensordengan 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.
- user_input_values (
torch.Tensorberbentuk `(batch_size, 1, audio_sequence_length), opsional) — Gelombang audio yang digunakan sebagai prompt audio pengguna untuk generasi. - user_audio_codes (
torch.Tensorof shape(batch_size, num_codebooks, sequence_length), *optional*) -- The audio codes used as audio user prompt for the generation. Has priority overuser_input_valuesand represents the audio "tokens" ofuser_input_values` once passed through the audio encoder. - moshi_input_values (
torch.Tensorberbentuk `(batch_size, 1, audio_sequence_length), opsional) — Gelombang audio yang digunakan sebagai prompt audio Moshi untuk generasi. - moshi_audio_codes (
torch.Tensorof shape(batch_size, num_codebooks, sequence_length), *optional*) -- The audio codes used as audio Moshi prompt for the generation. Has priority overmoshi_input_valuesand represents the audio "tokens" ofmoshi_input_values` once passed through the audio encoder. - 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 daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_idsAnda dapat memilih untuk langsung meneruskan representasi tertanam. Jikapast_key_valuesdigunakan, secara opsional hanyainputs_embedsterakhir yang perlu dimasukkan (lihatpast_key_values). Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversiinput_idsindeks menjadi vektor terkait daripada matriks pencarian embedding internal model.Jika
input_idsdaninputs_embedskeduanya tidak disetel,inputs_embedsmengambil nilai dariinputs_embeds. - text_labels (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Label untuk pemodelan bahasa teks. Perhatikan bahwa label digeser di dalam model, yaitu Anda dapat mengaturlabels = input_idsIndeks dipilih dalam[-100, 0, ..., config.vocab_size]Semua label yang diatur ke-100diabaikan (dipertahankan), loss hanya dihitung untuk label dalam[0, ..., config.vocab_size] - audio_labels (
torch.LongTensordengan bentuk(batch_size, num_codebooks, sequence_length), opsional) — Label untuk pemodelan bahasa. Perhatikan bahwa label digeser di dalam model, yaitu Anda dapat mengaturlabels = input_idsIndeks dipilih dalam[-100, 0, ..., config.vocab_size]Semua label yang diatur ke-100diabaikan (dimasker), loss hanya dihitung untuk label dalam[0, ..., config.audio_vocab_size] - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values).
Mengembalikan
MoshiConditionalGenerationOutputWithPast atau tuple(torch.Tensor)
MoshiConditionalGenerationOutputWithPast atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (MoshiConfig) dan input.
Metode forward dari MoshiForConditionalGeneration menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saattext_labelsdisediakan) — Loss pemodelan bahasa teks (untuk prediksi token berikutnya).logits (
torch.Tensordengan bentuk(batch_size, sequence_length, config.vocab_size)) — Skor prediksi dari kepala pemodelan bahasa teks (skor untuk setiap token kosakata sebelum SoftMax).last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-states pada keluaran lapisan terakhir model.past_key_values (
Cache, opsional, dikembalikan saatuse_cache=Truedilewatkan atau saatconfig.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 ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.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 saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.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).
depth_loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan ketikaaudio_labelsdisediakan) — Loss pemodelan bahasa audio (untuk prediksi token berikutnya).audio_logits (
torch.Tensordengan bentuk(batch_size, sequence_length, config.vocab_size)) — Skor prediksi dari kepala pemodelan bahasa audio.depth_past_key_values (
Cache, opsional, dikembalikan ketikause_cache=Truedilewatkan atau ketikaconfig.use_cache=True) — Nilai kunci masa lalu dari decoder kedalaman.depth_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Hidden states dari depth decoderdepth_attentions (
tuple(torch.Tensor), opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Bobot Attentions dari Depth decoder setelah softmax attention, digunakan untuk menghitung rata-rata berbobot pada heads self-attention.
Contoh:
>>> from transformers import MoshiForConditionalGeneration
>>> import torch
>>> model = MoshiForConditionalGeneration.from_pretrained("kmhf/hf-moshika")
>>> inputs = moshi.get_unconditional_inputs()
>>> logits = model(**inputs, ).logits
>>> logits.shape # (bsz, seq_len, text_vocab_size)
torch.Size([1, 1, 32000])generate
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneuser_input_values: typing.Optional[torch.Tensor] = Noneuser_audio_codes: typing.Optional[torch.Tensor] = Nonemoshi_input_values: typing.Optional[torch.Tensor] = Nonemoshi_audio_codes: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonereturn_audio_waveforms: bool | None = Truereturn_audio_codes: bool | None = Noneconcat_unconditional_inputs: bool | None = True**kwargs )
Parameter
- input_ids (
torch.Tensorberbentuk `(batch_size, sequence_length), opsional) — Urutan yang digunakan sebagai prompt teks untuk generasi. - user_input_values (
torch.Tensorberbentuk `(batch_size, 1, audio_sequence_length), opsional) — Gelombang audio yang digunakan sebagai prompt audio pengguna untuk generasi. - user_audio_codes (
torch.Tensorof shape(batch_size, num_codebooks, sequence_length), *optional*) -- The audio codes used as audio user prompt for the generation. Has priority overuser_input_valuesand represents the audio "tokens" ofuser_input_values` once passed through the audio encoder. - moshi_input_values (
torch.Tensorberbentuk `(batch_size, 1, audio_sequence_length), opsional) — Gelombang audio yang digunakan sebagai prompt audio Moshi untuk generasi. - moshi_audio_codes (
torch.Tensorof shape(batch_size, num_codebooks, sequence_length), *optional*) -- The audio codes used as audio Moshi prompt for the generation. Has priority overmoshi_input_valuesand represents the audio "tokens" ofmoshi_input_values` once passed through the audio encoder. - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_idsdan input audio, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi input menjadi vektor terkait daripada matriks pencarian penanaman internal model. - return_audio_waveforms (
bool, opsional, defaultnyaTrue) — JikaFalse, gelombang audio tidak akan dihasilkan. - return_audio_codes (
bool, opsional) — JikaTrue, juga akan mengembalikan kode audio yang dihasilkan, yaitu “token” audio antara yang diubah menjadiaudio_sequencessetelah melewati decoder audio. - concat_unconditional_inputs (
bool, opsional, defaultTrue) — JikaFalse, token audio dan teks awal tidak akan digabungkan. - kwargs (
dict[str, Any], opsional) — Kamus sisa argumen kata kunci yang diteruskan ke metodegenerate. Lihat docstring asligenerateuntuk informasi lebih lanjut tentang cara menggunakannya. Perhatikan bahwa kata kunci dengan awalan depth_ akan menjadi input untuk metodegeneratedari depth decoder. Jika tidak, decoder tersebut akan menggunakan konfigurasi generasi defaultnya.
Membuat rangkaian id token teks dan id token audio.
get_unconditional_inputs
< source >( num_samples = 1 )
Parameter
- num_samples (int, opsional) — Jumlah sampel audio yang akan dihasilkan secara tidak bersyarat.
- max_new_tokens (int, opsional) — Jumlah token yang akan dihasilkan untuk setiap sampel. Semakin banyak token, semakin panjang sampel audionya, dengan konsekuensi waktu inferensi yang lebih lama (karena lebih banyak token audio yang perlu dihasilkan per sampel).
Fungsi bantu untuk mendapatkan input null untuk generasi tanpa syarat, memungkinkan model digunakan tanpa feature extractor atau tokenizer.
Contoh:
>>> from transformers import MoshiForConditionalGeneration
>>> model = MoshiForConditionalGeneration.from_pretrained("kmhf/hf-moshika")
>>> # get the unconditional (or 'null') inputs for the model
>>> unconditional_inputs = model.get_unconditional_inputs(num_samples=1)
>>> audio_samples = model.generate(**unconditional_inputs, max_new_tokens=256)