Transformers documentation

Görüntü Kodlayıcı Çözücü Modelleri

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

and get access to the augmented documentation experience

to get started

Bu model 2021-09-21 tarihinde HF papers'ta yayımlandı ve 2021-10-13 tarihinde Hugging Face Transformers'a katkıda bulunuldu.

Görüntü Kodlayıcı Çözücü Modelleri

FlashAttention SDPA

Genel Bakış

VisionEncoderDecoderModel, herhangi bir önceden eğitilmiş Transformer tabanlı görme modelini kodlayıcı (ör. ViT, BEiT, DeiT, Swin) ve herhangi bir önceden eğitilmiş dil modelini çözücü (ör. RoBERTa, GPT2, BERT, DistilBERT) olarak kullanarak görüntüden metne modelini başlatmak için kullanılabilir.

Görüntüden metin dizisine modelin önceden eğitilmiş denetim noktalarıyla başlatılmasının etkinliği, Minghao Li, Tengchao Lv, Lei Cui, Yijuan Lu, Dinei Florencio, Cha Zhang, Zhoujun Li ve Furu Wei tarafından yazılan TrOCR: Transformer-based Optical Character Recognition with Pre-trained Models makalesinde (örneğin) gösterilmiştir.

Böyle bir VisionEncoderDecoderModel eğitildikten/ince ayarlandıktan sonra, diğer modeller gibi kaydedilebilir/yüklenebilir (daha fazla bilgi için aşağıdaki örnekleri inceleyin).

Örnek bir uygulama, görüntü açıklama (image captioning) işlemidir; bu işlemde kodlayıcı (encoder) görüntüyü kodlamak için kullanılır ve ardından otoregresif bir dil modeli açıklamayı üretir. Bir diğer örnek ise optik karakter tanımadır (OCR). VisionEncoderDecoderModel sınıfının bir örneği olan TrOCR modeline bakınız.

Model yapılandırmalarından VisionEncoderDecoderModel'i rastgele başlatma

VisionEncoderDecoderModel, bir encoder ve bir decoder yapılandırmasından rastgele başlatılabilir. Aşağıdaki örnekte, encoder için varsayılan ViTModel 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, VisionEncoderDecoderConfig, VisionEncoderDecoderModel, ViTConfig


config_encoder = ViTConfig()
config_decoder = BertConfig()

config = VisionEncoderDecoderConfig.from_encoder_decoder_configs(config_encoder, config_decoder)
model = VisionEncoderDecoderModel(config=config)

Önceden eğitilmiş bir encoder ve önceden eğitilmiş bir decoder'dan VisionEncoderDecoderModel'in başlatılması

VisionEncoderDecoderModel, ö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ı görme modeli, örneğin Swin, kodlayıcı olarak kullanılabilir ve hem önceden eğitilmiş otomatik kodlama modelleri, örneğin BERT, hem de önceden eğitilmiş nedensel dil modelleri, örneğin GPT2, ayrıca 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. Önceden eğitilmiş bir kodlayıcı ve çözücü kontrol noktasından VisionEncoderDecoderModel'i başlatmak, 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, VisionEncoderDecoderModel sınıfı bir VisionEncoderDecoderModel.from_encoder_decoder_pretrained() yöntemi sağlar.

from transformers import VisionEncoderDecoderModel


model = VisionEncoderDecoderModel.from_encoder_decoder_pretrained(
    "microsoft/swin-base-patch4-window7-224-in22k", "google-bert/bert-base-uncased"
)

Mevcut bir VisionEncoderDecoderModel kontrol noktasını yükleyip çıkarım yapmak

VisionEncoderDecoderModel sınıfının ince ayarlanmış denetim noktalarını yüklemek için, VisionEncoderDecoderModel, Transformers'taki diğer tüm model mimarileri gibi from_pretrained(...) yöntemini sağlar.

Çıkarım yapmak için, metni otoregresif olarak üretmeye olanak tanıyan generate metodu kullanılır. Bu metot, açgözlü, demet arama ve çok terimli örneklem gibi çeşitli çözümleme biçimlerini destekler.

import requests
from PIL import Image

from transformers import GPT2TokenizerFast, ViTImageProcessor, VisionEncoderDecoderModel

# load a fine-tuned image captioning model and corresponding tokenizer and image processor
model = VisionEncoderDecoderModel.from_pretrained("nlpconnect/vit-gpt2-image-captioning", device_map="auto")
tokenizer = GPT2TokenizerFast.from_pretrained("nlpconnect/vit-gpt2-image-captioning")
image_processor = ViTImageProcessor.from_pretrained("nlpconnect/vit-gpt2-image-captioning")

# let's perform inference on an image
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
pixel_values = image_processor(image, return_tensors="pt").to(model.device).pixel_values

# autoregressively generate caption (uses greedy decoding by default)
generated_ids = model.generate(pixel_values)
generated_text = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(generated_text)
a cat laying on a blanket next to a cat laying on a bed

Eğitim

Model oluşturulduktan sonra, (görsel, metin) çiftlerinden oluşan bir veri kümesinde BART, T5 veya herhangi bir diğer kodlayıcı-çözücü modeli gibi ince ayar yapılabilir. Görüldüğü üzere, modelin bir kayıp (loss) hesaplaması için yalnızca 2 girdi gereklidir: pixel_values (bunlar görsellerdir) ve labels (bunlar, kodlanmış hedef dizinin input_ids değerleridir).

from datasets import load_dataset

from transformers import BertTokenizer, VisionEncoderDecoderModel, ViTImageProcessor


image_processor = ViTImageProcessor.from_pretrained("google/vit-base-patch16-224-in21k")
tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-uncased")
model = VisionEncoderDecoderModel.from_encoder_decoder_pretrained(
    "google/vit-base-patch16-224-in21k", "google-bert/bert-base-uncased"
)

model.config.decoder_start_token_id = tokenizer.cls_token_id
model.config.pad_token_id = tokenizer.pad_token_id

dataset = load_dataset("huggingface/cats-image")
image = dataset["test"]["image"][0]
pixel_values = image_processor(image, return_tensors="pt").to(model.device).pixel_values

labels = tokenizer(
    "an image of two cats chilling on a couch",
    return_tensors="pt",
).input_ids

# the forward function automatically creates the correct decoder_input_ids
loss = model(pixel_values=pixel_values, labels=labels).loss

Bu model nielsr tarafından katkıda bulunmuştur.

VisionEncoderDecoderConfig

sınıf transformers.VisionEncoderDecoderConfig

< >

( 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 = 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ılan True) — 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 Vision Encoder DecoderModel'in yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Vision Encoder Decoder modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneği oluşturmak, None 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, ViTConfig, VisionEncoderDecoderConfig, VisionEncoderDecoderModel

>>> # Initializing a ViT & BERT style configuration
>>> config_encoder = ViTConfig()
>>> config_decoder = BertConfig()

>>> config = VisionEncoderDecoderConfig(encoder=config_encoder, decoder=config_decoder)

>>> # Initializing a ViTBert model (with random weights) from a ViT & google-bert/bert-base-uncased style configurations
>>> model = VisionEncoderDecoderModel(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 = VisionEncoderDecoderConfig.from_pretrained("my-model")
>>> model = VisionEncoderDecoderModel.from_pretrained("my-model", config=encoder_decoder_config)

from_encoder_decoder_configs

< >

( encoder_config: PreTrainedConfigdecoder_config: PreTrainedConfig**kwargs ) → VisionEncoderDecoderConfig

Dönüş değeri

VisionEncoderDecoderConfig

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 VisionEncoderDecoderConfig (veya türetilmiş bir sınıf) örnekleyin.

VisionEncoderDecoderModel

sınıf transformers.VisionEncoderDecoderModel

< >

( 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 başlık olmadan ham gizli durumları (hidden-states) üreten çıplak Vision 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

< >

( pixel_values: 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 = Nonereturn_dict: bool | None = None**kwargs ) → Seq2SeqLMOutput or tuple(torch.Tensor)

Parametreler

  • pixel_values (torch.Tensor, şekli (batch_size, num_channels, image_size, image_size), isteğe bağlı) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri image_processor_class kullanılarak elde edilebilir. Ayrıntılar için image_processor_class.__call__ bölümüne bakın (processor_class, görüntü işleme için image_processor_class kullanır).
  • 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.

    Girdi kimlikleri nelerdir?

    past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_input_ids girdi olarak verilebilir (bkz. past_key_values).

    Eğitim için decoder_input_ids, model tarafından labels sağa kaydırılarak, -100 değerleri pad_token_id ile değiştirilerek ve başlarına decoder_start_token_id eklenerek otomatik olarak oluşturulur.

  • decoder_attention_mask (torch.BoolTensor, şekli (batch_size, target_sequence_length), isteğe bağlı) — Varsayılan davranış: decoder_input_ids iç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 tuple last_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 genellikle past_key_values değerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülen use_cache=True veya config.use_cache=True.

    Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın. past_key_values geçirilmezse, varsayılan olarak DynamicCache başlatılır.

    Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.

    past_key_values kullanılıyorsa, kullanıcının tüm input_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_ids yerine doğrudan gömülü bir temsil geçmeyi tercih edebilirsiniz. Bu, decoder_input_ids indekslerini 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_ids dokümantasyonuna bakınız). İndeksleri -100 olarak 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ı) — True olarak ayarlanırsa, past_key_values anahtar 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ındaki attentions bö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ındaki hidden_states bölümüne bakın.
  • 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 (VisionEncoderDecoderConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

VisionEncoderDecoderModel 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ı, labels sağ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=True geçirildiğinde veya config.use_cache=True olduğ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_values girdisi) 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=True geçirildiğinde veya config.output_hidden_states=True olduğ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=True geçirildiğinde veya config.output_attentions=True olduğ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=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — (batch_size, num_heads, sequence_length, sequence_length) biçiminde, her katman için bir adet içeren torch.Tensor demeti.

    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=True geçirildiğinde veya config.output_hidden_states=True olduğ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=True geçirildiğinde veya config.output_attentions=True olduğ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 AutoProcessor, VisionEncoderDecoderModel
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from PIL import Image
>>> import torch

>>> processor = AutoProcessor.from_pretrained("microsoft/trocr-base-handwritten")
>>> model = VisionEncoderDecoderModel.from_pretrained("microsoft/trocr-base-handwritten")

>>> # load image from the IAM dataset
>>> url = "https://fki.tic.heia-fr.ch/static/img/a01-122-02.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read())).convert("RGB")

>>> # training
>>> model.config.decoder_start_token_id = processor.tokenizer.eos_token_id
>>> model.config.pad_token_id = processor.tokenizer.pad_token_id
>>> model.config.vocab_size = model.config.decoder.vocab_size

>>> pixel_values = processor(image, return_tensors="pt").pixel_values
>>> text = "hello world"
>>> labels = processor.tokenizer(text, return_tensors="pt").input_ids
>>> outputs = model(pixel_values=pixel_values, labels=labels)
>>> loss = outputs.loss

>>> # inference (generation)
>>> generated_ids = model.generate(pixel_values)
>>> generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]

from_encoder_decoder_pretrained

< >

( 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ı) — Görsel kodlayıcıyı başlatmak için gerekli bilgiler. Aşağıdakilerden biri olabilir:
    • Bir dize, huggingface.co'daki bir model deposunda barındırılan önceden eğitilmiş bir modelin model kimliği. Bir örnek google/vit-base-patch16-224-in21k'dir.
    • ./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 olarak None) — Metin çözücüsünü 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.
  • 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.

    config sağ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 VisionEncoderDecoderModel

>>> # initialize a vit-bert from a pretrained ViT and a pretrained BERT model. Note that the cross-attention layers will be randomly initialized
>>> model = VisionEncoderDecoderModel.from_encoder_decoder_pretrained(
...     "google/vit-base-patch16-224-in21k", "google-bert/bert-base-uncased"
... )
>>> # saving model after fine-tuning
>>> model.save_pretrained("./vit-bert")
>>> # load fine-tuned model
>>> model = VisionEncoderDecoderModel.from_pretrained("./vit-bert")
Update on GitHub