Transformers documentation
Konuşma Kodlayıcı Çözücü Modelleri
Bu model 2021-04-14 tarihinde HF papers'ta yayımlandı ve 2021-09-01 tarihinde Hugging Face Transformers'a katkıda bulunuldu.
Konuşma Kodlayıcı Çözücü Modelleri
SpeechEncoderDecoderModel, herhangi bir önceden eğitilmiş konuşma oto-kodlama modelini kodlayıcı olarak (ör. Wav2Vec2, Hubert) ve herhangi bir önceden eğitilmiş otoregresif modeli çözücü olarak kullanarak bir konuşmadan metne model başlatmak için kullanılabilir.
Konuşma dizisinden metin dizisine modellemelerin, konuşma tanıma ve konuşma çevirisi için önceden eğitilmiş denetim noktalarıyla başlatılmasının etkinliği, Changhan Wang, Anne Wu, Juan Pino, Alexei Baevski, Michael Auli ve Alexis Conneau tarafından Large-Scale Self- and Semi-Supervised Learning for Speech Translation makalesinde örneğin gösterilmiştir.
SpeechEncoderDecoderModel sınıfının çıkarım (inference) için nasıl kullanılacağına bir örnek, Speech2Text2 decoder'ı ile görülebilir.
Model yapılandırmalarından SpeechEncoderDecoderModel'i rastgele başlatma
SpeechEncoderDecoderModel, bir encoder ve bir decoder yapılandırmasından rastgele başlatılabilir. Aşağıdaki örnekte, encoder için varsayılan Wav2Vec2Model yapılandırmasını ve decoder için varsayılan BertForCausalLM yapılandırmasını kullanarak bunu nasıl yapacağımızı gösteriyoruz.
from transformers import BertConfig, SpeechEncoderDecoderConfig, SpeechEncoderDecoderModel, Wav2Vec2Config
config_encoder = Wav2Vec2Config()
config_decoder = BertConfig()
config = SpeechEncoderDecoderConfig.from_encoder_decoder_configs(config_encoder, config_decoder)
model = SpeechEncoderDecoderModel(config=config)Önceden eğitilmiş bir encoder ve önceden eğitilmiş bir decoder'dan SpeechEncoderDecoderModel'i başlatma
SpeechEncoderDecoderModel, önceden eğitilmiş bir kodlayıcı kontrol noktası ve önceden eğitilmiş bir çözücü kontrol noktasından başlatılabilir. Dikkat edin, herhangi bir önceden eğitilmiş Transformer tabanlı konuşma modeli, örneğin Wav2Vec2, Hubert kodlayıcı olarak kullanılabilir ve hem önceden eğitilmiş otomatik kodlama modelleri, örneğin BERT, hem önceden eğitilmiş nedensel dil modelleri, örneğin GPT2, hem de diziden-diziye modellerin önceden eğitilmiş çözücü kısmı, örneğin BART'ın çözücüsü, çözücü olarak kullanılabilir.
Çözücü olarak hangi mimariyi seçtiğinize bağlı olarak, çapraz dikkat katmanları rastgele başlatılabilir.
SpeechEncoderDecoderModel'in önceden eğitilmiş bir kodlayıcı ve çözücü kontrol noktasından başlatılması, Warm-starting-encoder-decoder blog yazısında gösterildiği gibi, modelin bir aşağı akış görevinde ince ayar gerektirir.
Bunu yapmak için SpeechEncoderDecoderModel sınıfı, SpeechEncoderDecoderModel.from_encoder_decoder_pretrained() yöntemini sağlar.
from transformers import SpeechEncoderDecoderModel
model = SpeechEncoderDecoderModel.from_encoder_decoder_pretrained(
"facebook/hubert-large-ll60k", "google-bert/bert-base-uncased"
)Mevcut bir SpeechEncoderDecoderModel kontrol noktasını yükleme ve çıkarım yapma
SpeechEncoderDecoderModel sınıfının ince ayarlanmış denetim noktalarını yüklemek için, SpeechEncoderDecoderModel, Transformers'taki diğer tüm model mimarilerinde olduğu gibi from_pretrained(...) yöntemini sağlar.
Çıkarım yapmak için, metni otoregresif olarak üretmenizi sağlayan generate metodu kullanılır. Bu metot, açgözlü, demet arama ve çok terimli örneklem gibi çeşitli çözümleme biçimlerini destekler.
from transformers import Wav2Vec2Processor, SpeechEncoderDecoderModel
from datasets import load_dataset
import torch
# load a fine-tuned speech translation model and corresponding processor
model = SpeechEncoderDecoderModel.from_pretrained("facebook/wav2vec2-xls-r-300m-en-to-15", device_map="auto")
processor = Wav2Vec2Processor.from_pretrained("facebook/wav2vec2-xls-r-300m-en-to-15")
# let's perform inference on a piece of English speech (which we'll translate to German)
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
input_values = processor(ds[0]["audio"]["array"], return_tensors="pt").to(model.device).input_values
# autoregressively generate transcription (uses greedy decoding by default)
generated_ids = model.generate(input_values)
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(generated_text)
Mr. Quilter ist der Apostel der Mittelschicht und wir freuen uns, sein Evangelium willkommen heißen zu können.Eğitim
Model oluşturulduktan sonra, (konuşma, metin) çiftlerinden oluşan bir veri setinde BART, T5 veya herhangi bir başka kodlayıcı-çözücü modeli gibi ince ayarlanabilir.
Görüldüğü üzere, modelin bir kayıp (loss) hesaplaması için yalnızca 2 girdi gereklidir: input_values (bunlar konuşma girdileri) ve labels (kodlanmış hedef dizinin input_ids değerleri).
from datasets import load_dataset
from transformers import AutoFeatureExtractor, AutoTokenizer, SpeechEncoderDecoderModel
encoder_id = "facebook/wav2vec2-base-960h" # acoustic model encoder
decoder_id = "google-bert/bert-base-uncased" # text decoder
feature_extractor = AutoFeatureExtractor.from_pretrained(encoder_id)
tokenizer = AutoTokenizer.from_pretrained(decoder_id)
# Combine pre-trained encoder and pre-trained decoder to form a Seq2Seq model
model = SpeechEncoderDecoderModel.from_encoder_decoder_pretrained(encoder_id, decoder_id)
model.config.decoder_start_token_id = tokenizer.cls_token_id
model.config.pad_token_id = tokenizer.pad_token_id
# load an audio input and pre-process (normalise mean/std to 0/1)
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
input_values = feature_extractor(ds[0]["audio"]["array"], return_tensors="pt").to(model.device).input_values
# load its corresponding transcription and tokenize to generate labels
labels = tokenizer(ds[0]["text"], return_tensors="pt").to(model.device).input_ids
# the forward function automatically creates the correct decoder_input_ids
loss = model(input_values=input_values, labels=labels).loss
loss.backward()SpeechEncoderDecoderConfig
sınıf transformers.SpeechEncoderDecoderConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0id2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneis_encoder_decoder: bool | None = Trueencoder: transformers.configuration_utils.PreTrainedConfig | dict | None = Nonedecoder: transformers.configuration_utils.PreTrainedConfig | dict | None = None )
Parametreler
- is_encoder_decoder (
bool, isteğe bağlı, varsayılanTrue) — Modelin bir kodlayıcı/çözücü olarak kullanılıp kullanılmadığı. - encoder (
Union[~configuration_utils.PreTrainedConfig, dict], isteğe bağlı) — Encoder omurgasının yapılandırma nesnesi veya sözlüğü. - decoder (
Union[~configuration_utils.PreTrainedConfig, dict], isteğe bağlı) — Decoder iskeletinin yapılandırma nesnesi veya sözlüğü.
Bu, bir Ses Kodlayıcı Çözücü Modelinin yapılandırmasını saklamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Ses Kodlayıcı Çözücü modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneği oluşturmak, ile benzer bir yapılandırmaya yol açar.
Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.
Örnekler:
>>> from transformers import BertConfig, Wav2Vec2Config, SpeechEncoderDecoderConfig, SpeechEncoderDecoderModel
>>> # Initializing a Wav2Vec2 & BERT style configuration
>>> config_encoder = Wav2Vec2Config()
>>> config_decoder = BertConfig()
>>> config = SpeechEncoderDecoderConfig(encoder=config_encoder, decoder=config_decoder)
>>> # Initializing a Wav2Vec2Bert model from a Wav2Vec2 & google-bert/bert-base-uncased style configurations
>>> model = SpeechEncoderDecoderModel(config=config)
>>> # Accessing the model configuration
>>> config_encoder = model.config.encoder
>>> config_decoder = model.config.decoder
>>> # set decoder config to causal lm
>>> config_decoder.is_decoder = True
>>> config_decoder.add_cross_attention = True
>>> # Saving the model, including its configuration
>>> model.save_pretrained("my-model")
>>> # loading model and config from pretrained folder
>>> encoder_decoder_config = SpeechEncoderDecoderConfig.from_pretrained("my-model")
>>> model = SpeechEncoderDecoderModel.from_pretrained("my-model", config=encoder_decoder_config)from_encoder_decoder_configs
< source >( encoder_config: PreTrainedConfigdecoder_config: PreTrainedConfig**kwargs ) → SpeechEncoderDecoderConfig
Dönüş değeri
Bir yapılandırma nesnesi örneği
Önceden eğitilmiş bir kodlayıcı model yapılandırması ve kodlayıcı model yapılandırmasından bir SpeechEncoderDecoderConfig (veya türetilmiş bir sınıf) örnekleyin.
SpeechEncoderDecoderModel
sınıf transformers.SpeechEncoderDecoderModel
< source >( config: transformers.configuration_utils.PreTrainedConfig | None = Noneencoder: transformers.modeling_utils.PreTrainedModel | None = Nonedecoder: transformers.modeling_utils.PreTrainedModel | None = None )
Parametreler
- config (PreTrainedConfig, opsiyonel) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
- encoder (
PreTrainedModel, opsiyonel) — Kullanılacak kodlayıcı modeli. - decoder (
PreTrainedModel, opsiyonel) — Kullanılacak decoder modeli.
Üzerinde herhangi bir özel head olmadan ham hidden-state'ler üreten çıplak Speech Encoder Decoder Model.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( inputs: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.BoolTensor] = Noneencoder_outputs: tuple[torch.Tensor] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Noneinput_values: typing.Optional[torch.Tensor] = Noneinput_features: typing.Optional[torch.Tensor] = Nonereturn_dict: bool | None = None**kwargs ) → Seq2SeqLMOutput or tuple(torch.Tensor)
Parametreler
- inputs (
torch.Tensor, şekli(batch_size, sequence_length)veya(batch_size, sequence_length, feature_dim), isteğe bağlı) — Giriş ham ses dalgası veya ses özelliklerinin kayan değerleri. Değerler, bir.flacveya.wavses dosyasınılist[float]türünde bir diziye,numpy.ndarrayveyatorch.Tensoriçine yükleyerek elde edilebilir, örneğin torchcodec kütüphanesi (pip install torchcodec) veya soundfile kütüphanesi (pip install soundfile) aracılığıyla. Diziyiinputsiçin hazırlamak için, dolgu vetorch.Tensortüründe bir tensöre dönüştürme amacıyla Wav2Vec2Processor veya Speech2TextProcessor kullanılmalıdır. - attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- decoder_input_ids (
torch.LongTensorşeklinde(batch_size, target_sequence_length), isteğe bağlı) — Sözlükteki decoder giriş dizisi tokenlarının indeksleri. İndeksler, PreTrainedTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() yöntemlerine bakın. Giriş ID'leri nelerdir? past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_input_ids girdisi yeterlidir (bkz. past_key_values). Eğitim sırasında decoder_input_ids, model tarafından etiketlerin sağa kaydırılması, -100 değerlerinin pad_token_id ile değiştirilmesi ve bunların başına decoder_start_token_id eklenerek otomatik olarak oluşturulur.Dizinler PreTrainedTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() yöntemlerine bakın.
past_key_valueskullanılıyorsa, isteğe bağlı olarak yalnızca sondecoder_input_idsgirdi olarak verilebilir (bkz.past_key_values).Eğitim için
decoder_input_ids, model tarafındanlabelssağa kaydırılarak, -100 değerleripad_token_idile değiştirilerek ve başlarınadecoder_start_token_ideklenerek otomatik olarak oluşturulur. - decoder_attention_mask (
torch.BoolTensor, şekli(batch_size, target_sequence_length), isteğe bağlı) — Varsayılan davranış:decoder_input_idsiçindeki pad tokenlarını yok sayan bir tensör oluşturur. Varsayılan olarak nedensel maske de kullanılır. - encoder_outputs (
tuple[torch.Tensor], isteğe bağlı) — (last_hidden_state, isteğe bağlı:hidden_states, isteğe bağlı:attentions) içeren bir tuplelast_hidden_state,(batch_size, sequence_length, hidden_size)biçiminde, isteğe bağlı) kodlayıcının son katmanının çıktısındaki gizli durumlar dizisidir. Dekodlayıcının çapraz dikkat (cross-attention) mekanizmasında kullanılır. - past_key_values (
~cache_utils.Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genelliklepast_key_valuesdeğerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülenuse_cache=Trueveyaconfig.use_cache=True.Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın.
past_key_valuesgeçirilmezse, varsayılan olarak DynamicCache başlatılır.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcının tüminput_ids(şekli(batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemişinput_ids(şekli(batch_size, unprocessed_length)) girmesi beklenir. - decoder_inputs_embeds (
torch.Tensor, şekli(batch_size, target_sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,decoder_input_idsyerine doğrudan gömülü bir temsil geçmeyi tercih edebilirsiniz. Bu,decoder_input_idsindekslerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - labels (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Dekoder için maskeli dil modelleme kaybını hesaplamak üzere kullanılan etiketler. İndeksler[-100, 0, ..., config.vocab_size]aralığında olmalıdır (input_idsdokümantasyonuna bakınız). İndeksleri-100olarak ayarlanan tokenlar yok sayılır (maskelenir); kayıp yalnızca etiketleri[0, ..., config.vocab_size]aralığında olan tokenlar için hesaplanır. - use_cache (
bool, isteğe bağlı) —Trueolarak ayarlanırsa,past_key_valuesanahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz.past_key_values). - output_attentions (
bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındakiattentionsbölümüne bakın. - output_hidden_states (
bool, isteğe bağlı) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındakihidden_statesbölümüne bakın. - input_values (
torch.Tensor, şekli(batch_size, sequence_length), isteğe bağlı) — Giriş ham ses dalgasının kayan değerleri. Değerler, bir .flac veya .wav ses dosyasını list[float] türünde bir diziye veya numpy.ndarray'ye yükleyerek elde edilebilir, örneğin torchcodec kütüphanesi (pip install torchcodec) veya soundfile kütüphanesi (pip install soundfile) aracılığıyla. Diziyi input_values için hazırlamak için, dolgu ve torch.Tensor türünde bir tensöre dönüştürme işlemleri için Wav2Vec2Processor kullanılmalıdır. Ayrıntılar için Wav2Vec2Processor.call()'a bakın. - input_features (
torch.Tensor, şekli(batch_size, sequence_length, feature_dim), isteğe bağlı) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özelliklerifeature_extractor_classkullanılarak elde edilebilir. Ayrıntılar içinfeature_extractor_class.__call__bölümüne bakın (processor_class, sesleri işlemek içinfeature_extractor_classkullanır). - return_dict (
bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?
Dönüş değeri
Seq2SeqLMOutput veya tuple(torch.Tensor)
Bir Seq2SeqLMOutput veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (SpeechEncoderDecoderConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
SpeechEncoderDecoderModel forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
torch.Tensor, şekli(1,), isteğe bağlı,labelssağlandığında döndürülür) — Dil modelleme kaybı.logits (
torch.Tensor, şekli(batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).past_key_values (
EncoderDecoderCache, isteğe bağlı,use_cache=Truegeçirildiğinde veyaconfig.use_cache=Trueolduğunda döndürülür) — Bir EncoderDecoderCache örneğidir. Daha fazla ayrıntı için kv önbellek kılavuzumuza bakın.Sıralı çözümlemeyi hızlandırmak için (bkz.
past_key_valuesgirdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki ve cross-attention bloklarındaki anahtar ve değerler) içerir.decoder_hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında ve başlangıç gömme çıktılarında dekodlayıcının gizli durumları.
decoder_attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat ağırlıkları, dikkat softmax'ından sonra, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılan dekoderin
cross_attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —(batch_size, num_heads, sequence_length, sequence_length)biçiminde, her katman için bir adet içerentorch.Tensordemeti.Dekoderin çapraz dikkat katmanının dikkat ağırlıkları, dikkat softmax'ından sonra, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
encoder_last_hidden_state (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — Modelin kodlayıcısının son katmanının çıktısındaki gizli durumlar dizisi.encoder_hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında ve başlangıç gömme çıktılarında kodlayıcının gizli durumları.
encoder_attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat yumuşatma (attention softmax) sonrasında, öz-dikkat (self-attention) kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılan kodlayıcının dikkat ağırlıkları.
Örnekler:
>>> from transformers import SpeechEncoderDecoderModel, AutoProcessor
>>> from datasets import load_dataset
>>> import torch
>>> processor = AutoProcessor.from_pretrained("facebook/wav2vec2-xls-r-300m-en-to-15")
>>> model = SpeechEncoderDecoderModel.from_pretrained("facebook/wav2vec2-xls-r-300m-en-to-15")
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> input_values = processor(ds[0]["audio"]["array"], return_tensors="pt").input_values
>>> # Inference: Translate English speech to German
>>> generated = model.generate(input_values)
>>> decoded = processor.batch_decode(generated, skip_special_tokens=True)[0]
>>> decoded
'Mr. Quilter ist der Apostel der Mittelschicht und wir freuen uns, sein Evangelium willkommen heißen zu können.'
>>> # Training: Train model on English transcription
>>> labels = processor(text=ds[0]["text"], return_tensors="pt").input_ids
>>> loss = model(input_values, labels=labels).loss
>>> loss.backward()from_encoder_decoder_pretrained
< source >( encoder_pretrained_model_name_or_path: str | None = Nonedecoder_pretrained_model_name_or_path: str | None = None*model_args**kwargs )
Parametreler
- encoder_pretrained_model_name_or_path (
str, isteğe bağlı) — Kodlayıcıyı başlatmak için gerekli bilgiler. Şu seçeneklerden biri olabilir:- Bir dize, huggingface.co'daki bir model deposunda barındırılan önceden eğitilmiş bir modelin model kimliği.
./my_model_directory/gibi, save_pretrained() kullanılarak kaydedilen model ağırlıklarını içeren bir dizin yoluna işaret eder.
- decoder_pretrained_model_name_or_path (
str, isteğe bağlı, varsayılan olarakNone) — Çözücü başlatmak için gerekli bilgiler. Şunlardan biri olabilir:- Bir dize, huggingface.co'daki bir model deposunda barındırılan önceden eğitilmiş bir modelin model kimliği.
./my_model_directory/gibi, save_pretrained() kullanılarak kaydedilen model ağırlıklarını içeren bir dizin yoluna işaret eder.
- model_args (kalan konumsal argümanlar, isteğe bağlı) —
Tüm kalan konumsal argümanlar, alttaki modelin
__init__yöntemine aktarılır. - kwargs (kalan anahtar kelime argümanları sözlüğü, isteğe bağlı) —
Yükleme işleminden sonra yapılandırma nesnesini güncellemek ve modeli başlatmak için kullanılabilir (ör.,
output_attentions=True).- Kodlayıcı yapılandırmasını güncellemek için her yapılandırma parametresine encoder_ önekini kullanın.
- Dekoder yapılandırmasını güncellemek için her yapılandırma parametresine decoder_ önekini kullanın.
- Ana model yapılandırmasını güncellemek için her yapılandırma parametresi için bir önek kullanmayın.
configsağlanıp sağlanmadığına veya otomatik olarak yüklenip yüklenmediğine göre farklı davranır.
Kütüphanenin bir veya iki temel sınıfından, önceden eğitilmiş model kontrol noktalarından bir kodlayıcı ve bir çözücü örnekleyin.
Model, varsayılan olarak model.eval() kullanılarak değerlendirme moduna ayarlanır (Dropout modülleri devre dışı bırakılır). Modeli eğitmek için önce model.train() ile eğitim moduna geri almanız gerekir.
Örnek:
>>> from transformers import SpeechEncoderDecoderModel
>>> # initialize a wav2vec2bert from a pretrained Wav2Vec2 and a pretrained BERT model. Note that the cross-attention layers will be randomly initialized
>>> model = SpeechEncoderDecoderModel.from_encoder_decoder_pretrained(
... "facebook/wav2vec2-base-960h", "google-bert/bert-base-uncased"
... )
>>> # saving model after fine-tuning
>>> model.save_pretrained("./wav2vec2bert")
>>> # load fine-tuned model
>>> model = SpeechEncoderDecoderModel.from_pretrained("./wav2vec2bert")