Transformers documentation

BLIP-2

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 2023-01-30 tarihinde HF papers'ta yayımlandı ve 2023-02-09 tarihinde Hugging Face Transformers'a katkıda bulunuldu.

SDPA

BLIP-2

Genel Bakış

BLIP-2 modeli, Junnan Li, Dongxu Li, Silvio Savarese ve Steven Hoi tarafından BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models makalesinde önerilmiştir. BLIP-2, dondurulmuş önceden eğitilmiş görüntü kodlayıcıları ve büyük dil modellerini (LLM) kullanarak, bunların arasına eğitilen hafif, 12 katmanlı bir Transformer kodlayıcısı sayesinde çeşitli görme-dil görevlerinde en iyi performansı elde etmektedir. Özellikle BLIP-2, 80 milyar parametreli Flamingo modelini, 54 kat daha az eğitilebilir parametreyle sıfır atışlı (zero-shot) VQAv2 görevinde %8,7 oranında geliştirmektedir.

Makalenin özeti aşağıdaki gibidir:

Görüntü ve dil ön eğitiminin maliyeti, büyük ölçekli modellerin uçtan uca eğitimi nedeniyle giderek daha da erişilemez hale gelmiştir. Bu makale, BLIP-2'yi önermektedir; bu, hazır dondurulmuş ön eğitilmiş görüntü kodlayıcılarından ve dondurulmuş büyük dil modellerinden görüntü-dil ön eğitimini başlatan genel ve verimli bir ön eğitim stratejisidir. BLIP-2, modallık boşluğunu, iki aşamada ön eğitilen hafif bir Sorgulama Dönüştürücüsü (Querying Transformer) ile kapatır. Birinci aşama, dondurulmuş bir görüntü kodlayıcısından görüntü-dil temsil öğrenmesini başlatır. İkinci aşama, dondurulmuş bir dil modelinden görüntüden dile üretici öğrenmeyi başlatır. BLIP-2, mevcut yöntemlerden önemli ölçüde daha az eğitilebilir parametreye sahip olmasına rağmen, çeşitli görüntü-dil görevlerinde en iyi performansı elde eder. Örneğin, modelimiz, 54 kat daha az eğitilebilir parametreyle sıfır atışlı (zero-shot) VQAv2'de Flamingo80B'den %8,7 daha iyi performans göstermektedir. Ayrıca, doğal dil talimatlarını takip edebilen sıfır atışlı görüntüden metne üretim yeteneklerini de gösteriyoruz.

drawing BLIP-2 architecture. Taken from the original paper.

Bu model nielsr tarafından katkıda bulunmuştur. Orijinal kod burada bulunabilir.

Kullanım ipuçları

  • BLIP-2, bir görüntü ve isteğe bağlı bir metin istemcisi verildiğinde koşullu metin üretimi için kullanılabilir. Çıkarım sırasında generate metodunun kullanılması önerilir.
  • Görselleri model için hazırlamak ve tahmin edilen token kimliklerini tekrar metne dönüştürmek için Blip2Processor kullanılabilir.

v4.46 sürümünden sonra yayınlanan BLIP modelleri, processor.num_query_tokens = {{num_query_tokens}} eklenmesi ve model gömme katmanının özel <image> jetonunu eklemek için genişletilmesi konusunda uyarılar verecektir. Model kontrol noktasının sahibi iseniz bu öznitelikleri işlemciye eklemeniz, sahibi değilseniz bir PR açmanız şiddetle önerilir. Bu öznitelikleri eklemek, BLIP'in her görsel için gereken sorgu jetonu sayısını ekleyeceği ve sorgu jetonu sayısı kadar <image> yer tutucusuyla metni genişleteceği anlamına gelir. Genellikle görsel başına yaklaşık 500 jeton olduğundan, metnin kısaltılmadığından emin olun; aksi takdirde gömmeleri birleştirirken hata oluşacaktır. Öznitelikler, model yapılandırmasından model.config.num_query_tokens olarak elde edilebilir ve model gömmelerinin genişletilmesi bu bağlantıyı takip ederek yapılabilir.

Kaynaklar

BLIP-2 ile başlamanıza yardımcı olmak için resmi Hugging Face ve topluluk (🌎 ile belirtilen) kaynaklarının listesi.

  • Görsel açıklama, görsel soru-cevap (VQA) ve sohbet benzeri konuşmalar için BLIP-2 demo defterleri burada bulunabilir.

Buraya bir kaynak eklemek isterseniz, bir Pull Request açmaktan çekinmeyin; inceleyeceğiz! Kaynağın, mevcut bir kaynağı tekrarlamak yerine ideal olarak yeni bir şeyi göstermesi beklenir.

Blip2Config

sınıf transformers.Blip2Config

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneqformer_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonenum_query_tokens: int = 32image_text_hidden_size: int = 256image_token_index: int | None = Noneinitializer_factor: float = 1.0initializer_range: float = 0.02 )

Parametreler

  • vision_config (Union[dict, ~configuration_utils.PreTrainedConfig], isteğe bağlı) — Görüntü omurgasının yapılandırma nesnesi veya sözlüğü.
  • qformer_config (dict, isteğe bağlı) — Blip2QFormerConfig sınıfını başlatmak için kullanılan yapılandırma seçeneklerinin sözlüğü.
  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig], isteğe bağlı) — Metin omurgasının yapılandırma nesnesi veya sözlüğü.
  • num_query_tokens (int, isteğe bağlı, varsayılan 32) — Transformer'dan geçirilen sorgu jetonlarının sayısı.
  • image_text_hidden_size (int, isteğe bağlı, varsayılan 256) — Görsel-metin füzyon katmanının gizli durumunun boyutluluğu.
  • image_token_index (int, isteğe bağlı) — Girdi görselleri için yer tutucu olarak kullanılan görsel jeton indeksi.
  • initializer_factor (float, isteğe bağlı, varsayılan 1.0) — Tüm ağırlık matrislerini başlatmak için kullanılan bir çarpan (1 olarak tutulmalıdır, başlatma testleri için dahili olarak kullanılır).
  • initializer_range (float, isteğe bağlı, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.

Bu, bir Blip 2Model yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Blip 2 modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılanlarla bir yapılandırma örneklendiğinde, Salesforce/blip2-opt-2.7b ile benzer bir yapılandırma elde edilir.

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.

Örnek:

>>> from transformers import (
...     Blip2VisionConfig,
...     Blip2QFormerConfig,
...     OPTConfig,
...     Blip2Config,
...     Blip2ForConditionalGeneration,
... )

>>> # Initializing a Blip2Config with Salesforce/blip2-opt-2.7b style configuration
>>> configuration = Blip2Config()

>>> # Initializing a Blip2ForConditionalGeneration (with random weights) from the Salesforce/blip2-opt-2.7b style configuration
>>> model = Blip2ForConditionalGeneration(configuration)

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

>>> # We can also initialize a Blip2Config from a Blip2VisionConfig, Blip2QFormerConfig and any PreTrainedConfig

>>> # Initializing BLIP-2 vision, BLIP-2 Q-Former and language model configurations
>>> vision_config = Blip2VisionConfig()
>>> qformer_config = Blip2QFormerConfig()
>>> text_config = OPTConfig()

>>> config = Blip2Config(vision_config=vision_config, qformer_config=qformer_config, text_config=text_config)

Blip2VisionConfig

sınıf transformers.Blip2VisionConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 1408intermediate_size: int = 6144num_hidden_layers: int = 39num_attention_heads: int = 16image_size: int | list[int] | tuple[int, int] = 224patch_size: int | list[int] | tuple[int, int] = 14hidden_act: str = 'gelu'layer_norm_eps: float = 1e-06attention_dropout: float | int = 0.0initializer_range: float = 1e-10qkv_bias: bool = True )

Parametreler

  • hidden_size (int, isteğe bağlı, varsayılan 1408) — Gizli temsillerin boyutu.
  • intermediate_size (int, isteğe bağlı, varsayılan 6144) — MLP temsillerinin boyutu.
  • num_hidden_layers (int, isteğe bağlı, varsayılan 39) — Transformer çözücüdeki gizli katman sayısı.
  • num_attention_heads (int, isteğe bağlı, varsayılan 16) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.
  • image_size (Union[int, list[int], tuple[int, int]], isteğe bağlı, varsayılan 224) — Her bir görüntünün boyutu (çözünürlüğü).
  • patch_size (Union[int, list[int], tuple[int, int]], isteğe bağlı, varsayılan 14) — Her yamanın boyutu (çözünürlüğü).
  • hidden_act (str, isteğe bağlı, varsayılan gelu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, "gelu", "relu", "silu" vb.
  • layer_norm_eps (float, isteğe bağlı, varsayılan 1e-06) — Katman normalizasyon katmanları tarafından kullanılan epsilon.
  • attention_dropout (Union[float, int], isteğe bağlı, varsayılan 0.0) — Dikkat olasılıkları için dropout oranı.
  • initializer_range (float, isteğe bağlı, varsayılan 1e-10) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
  • qkv_bias (bool, isteğe bağlı, varsayılan True) — Sorgulara, anahtarlara ve değerlere bir sapma eklenip eklenmeyeceği.

Bu, bir Blip 2Model yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Blip 2 modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılanlarla bir yapılandırma örneklendiğinde, Salesforce/blip2-opt-2.7b ile benzer bir yapılandırma elde edilir.

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.

Örnek:

>>> from transformers import Blip2VisionConfig, Blip2VisionModel

>>> # Initializing a Blip2VisionConfig with Salesforce/blip2-opt-2.7b style configuration
>>> configuration = Blip2VisionConfig()

>>> # Initializing a Blip2VisionModel (with random weights) from the Salesforce/blip2-opt-2.7b style configuration
>>> model = Blip2VisionModel(configuration)

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

Blip2QFormerConfig

sınıf transformers.Blip2QFormerConfig

< >

( 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 = 30522hidden_size: int = 768num_hidden_layers: int = 12num_attention_heads: int = 12intermediate_size: int = 3072hidden_act: str = 'gelu'hidden_dropout_prob: float | int = 0.1attention_probs_dropout_prob: float | int = 0.1max_position_embeddings: int = 512initializer_range: float = 0.02layer_norm_eps: float = 1e-12pad_token_id: int | None = 0cross_attention_frequency: int = 2encoder_hidden_size: int = 1408use_qformer_text_input: bool = False )

Parametreler

  • vocab_size (int, isteğe bağlı, varsayılan 30522) — Modelin sözlük boyutu. input_ids tarafından temsil edilebilecek farklı token sayısını tanımlar.
  • hidden_size (int, isteğe bağlı, varsayılan 768) — Gizli temsillerin boyutu.
  • num_hidden_layers (int, isteğe bağlı, varsayılan 12) — Transformer çözücüdeki gizli katman sayısı.
  • num_attention_heads (int, isteğe bağlı, varsayılan 12) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.
  • intermediate_size (int, isteğe bağlı, varsayılan 3072) — MLP temsillerinin boyutu.
  • hidden_act (str, isteğe bağlı, varsayılan gelu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, "gelu", "relu", "silu" vb.
  • hidden_dropout_prob (Union[float, int], isteğe bağlı, varsayılan 0.1) — Gömme, kodlayıcı ve havuzlayıcıdaki tüm tam bağlı katmanlar için dropout olasılığı.
  • attention_probs_dropout_prob (Union[float, int], isteğe bağlı, varsayılan 0.1) — Dikkat olasılıkları için dropout oranı.
  • max_position_embeddings (int, isteğe bağlı, varsayılan 512) — Bu modelin kullanılabileceği en uzun dizi uzunluğu.
  • initializer_range (float, isteğe bağlı, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
  • layer_norm_eps (float, isteğe bağlı, varsayılan 1e-12) — Katman normalizasyon katmanları tarafından kullanılan epsilon.
  • pad_token_id (int, isteğe bağlı, varsayılan 0) — Sözlükte dolgu için kullanılan token kimliği.
  • cross_attention_frequency (int, isteğe bağlı, varsayılan 2) — Transformer katmanlarına çapraz dikkat (cross-attention) eklenmesinin sıklığı.
  • encoder_hidden_size (int, isteğe bağlı, varsayılan 1408) — Gizli temsillerin boyutu.
  • use_qformer_text_input (bool, isteğe bağlı, varsayılan False) — BERT tarzı gömme kullanılıp kullanılmayacağı.

Bu, bir Blip 2Model yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Blip 2 modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılanlarla bir yapılandırma örneklendiğinde, Salesforce/blip2-opt-2.7b ile benzer bir yapılandırma elde edilir.

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 Blip2QFormerConfig, Blip2QFormerModel

>>> # Initializing a BLIP-2 Salesforce/blip2-opt-2.7b style configuration
>>> configuration = Blip2QFormerConfig()

>>> # Initializing a model (with random weights) from the Salesforce/blip2-opt-2.7b style configuration
>>> model = Blip2QFormerModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config

Blip2Processor

sınıf transformers.Blip2Processor

< >

( image_processortokenizernum_query_tokens = None**kwargs )

Parametreler

  • image_processor (BlipImageProcessor) — Görüntü işleyici zorunlu bir girdidir.
  • tokenizer (GPT2Tokenizer) — Tokenizer zorunlu bir girdidir.
  • num_query_tokens (int, isteğe bağlı) — Qformer'ın sorgu olarak kullandığı token sayısı, modelin yapılandırmasındakiyle aynı olmalıdır.

Bir görüntü işleyiciyi ve bir belirteç oluşturucuyu tek bir işleyicide birleştiren bir Blip2Processor oluşturur.

Blip2Processor, BlipImageProcessor ve GPT2Tokenizer işlevlerinin tümünü sunar. Daha fazla bilgi için ~BlipImageProcessor ve ~GPT2Tokenizer belgelerine bakın.

__call__

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Nonetext: str | list[str] | None = None**kwargs: *<class 'transformers.models.blip_2.processing_blip_2.Blip2ProcessorKwargs'> ) → ~tokenization_utils_base.BatchEncoding

Parametreler

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], isteğe bağlı) — Ön işleme yapılacak görüntü. Piksel değerleri 0 ile 255 arasında değişen tek bir görüntü veya görüntü grubu beklenir. Piksel değerleri 0 ile 1 arasında olan görüntüler geçiriliyorsa do_rescale=False olarak ayarlayın.
  • text (Union[str, list[str]], isteğe bağlı) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Önceden tokenize edilmiş bir girdi geçirirseniz, gruplu girdilerle karışıklığı önlemek için is_split_into_words=True değerini ayarlayın.
  • return_tensors (str veya TensorType, isteğe bağlı) — Belirlenirse, belirli bir çerçeveye ait tensörler döndürülür. Kabul edilen değerler şunlardır:
    • 'pt': PyTorch torch.Tensor nesnelerini döndürür.
    • 'np': NumPy np.ndarray nesnelerini döndürür.
  • **kwargs (ProcessingKwargs, isteğe bağlı) — Her modalite (metin, görüntüler, videolar, ses) için ek işleme seçenekleri. Modelle ilgili parametreler yukarıda listelenmiştir; desteklenen argümanların tam listesi için TypedDict sınıfına bakın.

Dönüş değeri

~tokenization_utils_base.BatchEncoding

  • data (dict, isteğe bağlı) — __call__/encode_plus/batch_encode_plus yöntemleri tarafından döndürülen listeler/diziler/tensörler sözlüğü (‘input_ids’, ‘attention_mask’, vb.).
  • encoding (tokenizers.Encoding veya Sequence[tokenizers.Encoding], isteğe bağlı) — Tokenizer, kelime/karakter alanından token alanına eşleme gibi ek bilgiler üreten hızlı bir tokenizer ise, tokenizers.Encoding örneği veya örnekler listesi (toplu işlemler için) bu bilgileri barındırır.
  • tensor_type (Union[None, str, TensorType], isteğe bağlı) — Başlatma sırasında PyTorch/Numpy Tensörlerindeki tamsayı listelerini dönüştürmek için burada bir tensor_type verebilirsiniz.
  • prepend_batch_axis (bool, isteğe bağlı, varsayılan False) — Tensörlere dönüştürülürken bir batch ekseni eklenip eklenmeyeceğini belirtir (bkz. yukarıdaki tensor_type). tensor_type parametresi ayarlanmışsa bu parametrenin bir etkisi vardır, aksi halde hiçbir etkisi yoktur.
  • n_sequences (int, isteğe bağlı) — Her kodlamanın temsil ettiği girdi dizilerinin sayısı (None bilinmeyen, 1 tek bir dizi ve 2 dizi çifti için).

Blip2VisionModel

sınıf transformers.Blip2VisionModel

< >

( config: Blip2VisionConfig )

Parametreler

  • config (Blip2VisionConfig) — 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.

Üzerinde herhangi bir özel başlık olmadan ham gizli durumları (hidden-states) üreten çıplak Blip 2 Modeli.

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.FloatTensor] = Noneinterpolate_pos_encoding: bool = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.FloatTensor)

Parametreler

  • pixel_values (torch.FloatTensor of shape (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 BlipImageProcessor kullanılarak elde edilebilir. Ayrıntılar için BlipImageProcessor.call() bölümüne bakın (Blip2Processor, görüntü işleme için BlipImageProcessor kullanır).
  • interpolate_pos_encoding (bool, isteğe bağlı, varsayılan False) — Önceden eğitilmiş konum kodlamalarının interpolasyonunun yapılıp yapılmayacağı.

Dönüş değeri

BaseModelOutputWithPooling veya tuple(torch.FloatTensor)

A BaseModelOutputWithPooling veya bir torch.FloatTensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (Blip2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

Blip2VisionModel 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.

  • last_hidden_state (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

  • pooler_output (torch.FloatTensor, şekli (batch_size, hidden_size)) — Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, yardımcı ön eğitim görevi için kullanılan katmanlar üzerinden ek işlemden geçirildikten sonraki hali. Örneğin BERT ailesi modelleri için, bu, sınıflandırma token'ının doğrusal bir katman ve tanh aktivasyon fonksiyonu üzerinden işlenmesinden sonra döndürülen değerdir. Doğrusal katman ağırlıkları, ön eğitim sırasında bir sonraki cümle tahmini (sınıflandırma) hedefinden eğitilir.

  • hidden_states (tuple(torch.FloatTensor), 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.FloatTensor (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 modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.FloatTensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.FloatTensor (her katman için bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Blip2QFormerModel

sınıf transformers.Blip2QFormerModel

< >

( config: Blip2QFormerConfig )

Parametreler

  • config (Blip2QFormerConfig) — 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.

BLIP-2 Sorgulama Dönüştürücüsü (Q-Former).

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

< >

( query_embeds: FloatTensorquery_length: int | None = Noneattention_mask: typing.Optional[torch.FloatTensor] = Noneencoder_hidden_states: typing.Optional[torch.FloatTensor] = Noneencoder_attention_mask: typing.Optional[torch.FloatTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPoolingAndCrossAttentions or tuple(torch.FloatTensor)

Parametreler

  • query_embeds (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size)) — Dikkat (attention) hesabında kullanılacak gizli durumlar. Çapraz dikkat (cross-attention) durumunda sorgu (query) olarak kullanılacaktır (yani anahtar ve değer, encoder_hidden_states kullanacaktır).
  • query_length (int, optional) — Length of the query, usually based on the number of query tokens. If no value is provided, query_length will be inferred by the query_embeds.
  • attention_mask (torch.FloatTensor ş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.

    Dikkat maskeleri nedir?

  • encoder_hidden_states (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — Encoder'ın son katmanının çıktısındaki gizli durumlar dizisi. Model bir decoder olarak yapılandırılmışsa çapraz dikkat (cross-attention) için kullanılır.
  • encoder_attention_mask (torch.FloatTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi kodlayıcısının dolgu (padding) jeton indekslerinde dikkat (attention) işlemi yapılmasını önlemek için kullanılan maske. Model bir çözücü (decoder) olarak yapılandırılmışsa bu maske çapraz dikkat (cross-attention) işleminde kullanılır. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

Dönüş değeri

BaseModelOutputWithPoolingAndCrossAttentions veya tuple(torch.FloatTensor)

A BaseModelOutputWithPoolingAndCrossAttentions veya bir torch.FloatTensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (Blip2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

Blip2QFormerModel 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.

  • last_hidden_state (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

  • pooler_output (torch.FloatTensor, şekli (batch_size, hidden_size)) — Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, yardımcı ön eğitim görevi için kullanılan katmanlar üzerinden ek işlemden geçirildikten sonraki hali. Örneğin BERT ailesi modelleri için, bu, sınıflandırma token'ının doğrusal bir katman ve tanh aktivasyon fonksiyonu üzerinden işlenmesinden sonra döndürülen değerdir. Doğrusal katman ağırlıkları, ön eğitim sırasında bir sonraki cümle tahmini (sınıflandırma) hedefinden eğitilir.

  • hidden_states (tuple(torch.FloatTensor), 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.FloatTensor (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 modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.FloatTensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.FloatTensor (her katman için bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

  • cross_attentions (tuple(torch.FloatTensor), isteğe bağlı, output_attentions=True ve config.add_cross_attention=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — Şekli (batch_size, num_heads, sequence_length, sequence_length) olan torch.FloatTensor (her katman için bir tane) içeren bir demet.

    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.

  • past_key_values (Cache, isteğe bağlı, use_cache=True geçirildiğinde veya config.use_cache=True olduğunda döndürülür) — Bir Cache örneğidir. Daha fazla ayrıntı için kv cache 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 anahtar ve değerler ve isteğe bağlı olarak config.is_encoder_decoder=True ise cross-attention bloklarındaki anahtar ve değerler) içerir.

Blip2Model

sınıf transformers.Blip2Model

< >

( config: Blip2Config )

Parametreler

  • config (Blip2Config) — 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.

Metin ve görsel özellikleri üretmek için BLIP-2 Modeli. Model, bir görme kodlayıcı, Querying Transformer (Q-Former) ve bir dil modelinden oluşur.

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: FloatTensorinput_ids: FloatTensorattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneinterpolate_pos_encoding: bool = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Blip2ForConditionalGenerationModelOutput or tuple(torch.FloatTensor)

Parametreler

  • pixel_values (torch.FloatTensor of shape (batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri BlipImageProcessor kullanılarak elde edilebilir. Ayrıntılar için BlipImageProcessor.call()'a bakın (Blip2Processor, görüntü işleme için BlipImageProcessor kullanır).
  • input_ids (torch.FloatTensor şeklinde (batch_size, sequence_length)) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.LongTensor ş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.

    Dikkat maskeleri nedir?

  • decoder_input_ids (torch.LongTensor şeklinde (batch_size, target_sequence_length), isteğe bağlı) — Sözlükteki decoder giriş dizisi token'larının indeksleri.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Çözücü girdi kimlikleri nelerdir?

  • decoder_attention_mask (torch.BoolTensor şeklinde (batch_size, target_sequence_length), isteğe bağlı) — Varsayılan davranış: içindeki pad token'larını yok sayan bir tensör oluşturur decoder_input_ids. Varsayılan olarak nedensel maske de kullanılır.

    Sadece bir kodlayıcı-çözücü dil modeli (T5 gibi) kullanıldığında geçerlidir.

  • labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler [0, ..., config.vocab_size] aralığında olmalı ya da -100 olmalı (input_ids docstring'ine bakın). Endeksleri -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.
  • interpolate_pos_encoding (bool, isteğe bağlı, varsayılan False) — Önceden eğitilmiş konum kodlamalarının interpolasyonunun yapılıp yapılmayacağı.

Dönüş değeri

Blip2ForConditionalGenerationModelOutput veya tuple(torch.FloatTensor)

Blip2ForConditionalGenerationModelOutput veya bir torch.FloatTensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (Blip2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

Blip2Model 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.FloatTensor, opsiyonel, labels sağlandığında döndürülür, torch.FloatTensor, şekli (1,)) — Dil modelinden gelen dil modelleme kaybı.
  • logits (torch.FloatTensor, şekli (batch_size, sequence_length, config.vocab_size)) — Dil modelinin dil modelleme başlığının tahmin puanları.
  • vision_outputs (~modeling_outputs.BaseModelOutputWithPooling, isteğe bağlı) — Görüntü kodlayıcısının çıktıları.
  • qformer_outputs (~modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions, isteğe bağlı) — Q-Former'ın (Querying Transformer) çıktıları.
  • language_model_outputs (CausalLMOutputWithPast veya Seq2SeqLMOutput) — Dil modelinin çıktıları.

Örnekler:

>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import Blip2Processor, Blip2Model
>>> import torch

>>> device = "cuda" if torch.cuda.is_available() else "cpu"

>>> processor = Blip2Processor.from_pretrained("Salesforce/blip2-opt-2.7b")
>>> model = Blip2Model.from_pretrained("Salesforce/blip2-opt-2.7b", dtype=torch.float16)
>>> model.to(device)
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> prompt = "Question: how many cats are there? Answer:"
>>> inputs = processor(images=image, text=prompt, return_tensors="pt").to(device, torch.float16)

>>> outputs = model(**inputs)

get_text_features

< >

( input_ids: Tensorattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.Tensor] = Nonedecoder_attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.FloatTensor)

Parametreler

  • input_ids (torch.Tensor şeklinde (batch_size, sequence_length)) — Girdi dizisi belirteçlerinin sözlükteki indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • 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.

    Dikkat maskeleri nedir?

  • decoder_input_ids (torch.LongTensor şeklinde (batch_size, target_sequence_length), isteğe bağlı) — Sözlükteki decoder giriş dizisi token'larının indeksleri. İndeksler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() yöntemlerine bakın. Decoder input ID'leri nelerdir? T5, decoder_input_ids üretimi için başlangıç token'ı olarak pad_token_id kullanır. past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_input_ids girdisi sağlanmalıdır (bkz. past_key_values). Ön eğitim için decoder_input_ids hazırlamanın nasıl yapıldığı hakkında daha fazla bilgi için T5 Eğitim sayfasına göz atın.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Çözücü girdi kimlikleri nelerdir?

    T5, decoder_input_ids üretimi için başlangıç jetonu olarak pad_token_id'yi kullanır. past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_input_ids girdi olarak verilmelidir (bkz. past_key_values).

    Ön eğitim için decoder_input_ids nasıl hazırlanacağına dair daha fazla bilgi için T5 Eğitimi bölümüne göz atın.

  • 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.
  • labels (torch.Tensor, şekli (batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler [0, ..., config.vocab_size] aralığında olmalı ya da -100 olmalı (input_ids docstring'ine bakın). Endeksleri -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.

Dönüş değeri

BaseModelOutputWithPooling veya tuple(torch.FloatTensor)

A BaseModelOutputWithPooling veya bir torch.FloatTensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (Blip2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

  • last_hidden_state (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

  • pooler_output (torch.FloatTensor, şekli (batch_size, hidden_size)) — Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, yardımcı ön eğitim görevi için kullanılan katmanlar üzerinden ek işlemden geçirildikten sonraki hali. Örneğin BERT ailesi modelleri için, bu, sınıflandırma token'ının doğrusal bir katman ve tanh aktivasyon fonksiyonu üzerinden işlenmesinden sonra döndürülen değerdir. Doğrusal katman ağırlıkları, ön eğitim sırasında bir sonraki cümle tahmini (sınıflandırma) hedefinden eğitilir.

  • hidden_states (tuple(torch.FloatTensor), 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.FloatTensor (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 modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.FloatTensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.FloatTensor (her katman için bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Örnekler:

>>> import torch
>>> from transformers import AutoTokenizer, Blip2Model

>>> model = Blip2Model.from_pretrained("Salesforce/blip2-opt-2.7b")
>>> tokenizer = AutoTokenizer.from_pretrained("Salesforce/blip2-opt-2.7b")

>>> inputs = tokenizer(["a photo of a cat"], padding=True, return_tensors="pt")
>>> with torch.inference_mode():
...     text_features = model.get_text_features(**inputs)

get_image_features

< >

( pixel_values: FloatTensorinterpolate_pos_encoding: bool = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.FloatTensor)

Parametreler

  • pixel_values (torch.FloatTensor of shape (batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri BlipImageProcessor kullanılarak elde edilebilir. Ayrıntılar için BlipImageProcessor.call()'a bakın (Blip2Processor, görüntü işleme için BlipImageProcessor kullanır).
  • interpolate_pos_encoding (bool, isteğe bağlı, varsayılan False) — Önceden eğitilmiş konum kodlamalarının interpolasyonunun yapılıp yapılmayacağı.

Dönüş değeri

BaseModelOutputWithPooling veya tuple(torch.FloatTensor)

A BaseModelOutputWithPooling veya bir torch.FloatTensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (Blip2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

  • last_hidden_state (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

  • pooler_output (torch.FloatTensor, şekli (batch_size, hidden_size)) — Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, yardımcı ön eğitim görevi için kullanılan katmanlar üzerinden ek işlemden geçirildikten sonraki hali. Örneğin BERT ailesi modelleri için, bu, sınıflandırma token'ının doğrusal bir katman ve tanh aktivasyon fonksiyonu üzerinden işlenmesinden sonra döndürülen değerdir. Doğrusal katman ağırlıkları, ön eğitim sırasında bir sonraki cümle tahmini (sınıflandırma) hedefinden eğitilir.

  • hidden_states (tuple(torch.FloatTensor), 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.FloatTensor (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 modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.FloatTensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.FloatTensor (her katman için bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Örnekler:

>>> import torch
>>> from transformers import AutoProcessor, Blip2Model
>>> from transformers.image_utils import load_image

>>> model = Blip2Model.from_pretrained("Salesforce/blip2-opt-2.7b")

>>> processor = AutoProcessor.from_pretrained("Salesforce/blip2-opt-2.7b")
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = load_image(url)

>>> inputs = processor(images=image, return_tensors="pt")
>>> with torch.inference_mode():
...     image_outputs = model.get_image_features(**inputs)

get_qformer_features

< >

( pixel_values: FloatTensorinterpolate_pos_encoding: bool = False ) → qformer_outputs (torch.FloatTensor)

Parametreler

  • pixel_values (torch.FloatTensor of shape (batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri BlipImageProcessor kullanılarak elde edilebilir. Ayrıntılar için BlipImageProcessor.call()'a bakın (Blip2Processor, görüntü işleme için BlipImageProcessor kullanır).
  • interpolate_pos_encoding (bool, isteğe bağlı, varsayılan False) — Önceden eğitilmiş konum kodlamalarının interpolasyonunun yapılıp yapılmayacağı.

Dönüş değeri

qformer_outputs (torch.FloatTensor)

Q-Former modelinin son katman gizli durumları.

Örnekler:

>>> import torch
>>> from transformers import AutoProcessor, Blip2Model
>>> from transformers.image_utils import load_image

>>> processor = Blip2Processor.from_pretrained("Salesforce/blip2-opt-2.7b")
>>> model = Blip2Model.from_pretrained("Salesforce/blip2-opt-2.7b")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = load_image(url)

>>> inputs = processor(images=image, return_tensors="pt")
>>> with torch.inference_mode():
...     qformer_outputs = model.get_qformer_features(**inputs)

Blip2ForConditionalGeneration

sınıf transformers.Blip2ForConditionalGeneration

< >

( config: Blip2Config )

Parametreler

  • config (Blip2Config) — 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.

Bir görsel ve isteğe bağlı bir metin istemine (prompt) dayanarak metin üretmek için kullanılan BLIP-2 Modeli. Model, bir görme kodlayıcıdan (vision encoder), Sorgulama Dönüştürücüsünden (Querying Transformer, Q-Former) ve bir dil modelinden oluşur.

Model isteğe bağlı olarak input_ids parametresi alabilir; bu parametre metin istemi (prompt) olarak görev yapar ve dil modelinin bu istemi devam ettirmesini sağlar. Aksi takdirde dil modeli, [BOS] (dizinin başlangıcı) token'ından başlayarak metin üretmeye başlar.

Flan-T5 kontrol noktalarının float16'ya dönüştürülemeyeceğini unutmayın. Bunlar bfloat16 kullanılarak önceden eğitilmiştir.

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: FloatTensorinput_ids: LongTensorattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneinterpolate_pos_encoding: bool = Falsemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Blip2ForConditionalGenerationModelOutput or tuple(torch.FloatTensor)

Parametreler

  • pixel_values (torch.FloatTensor of shape (batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri BlipImageProcessor kullanılarak elde edilebilir. Ayrıntılar için BlipImageProcessor.call()'a bakın (Blip2Processor, görüntü işleme için BlipImageProcessor kullanır).
  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Dil modelinin sözlüğündeki girdi dizisi belirteçlerinin (token) indeksleri. Girdi belirteçleri, dil modelinin devam ettirebileceği bir metin istemi (prompt) olarak isteğe bağlı şekilde sağlanabilir.

    Dizinler Blip2Processor kullanılarak elde edilebilir. Ayrıntılar için Blip2Processor.call() bölümüne bakın.

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.LongTensor ş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.

    Dikkat maskeleri nedir?

  • decoder_input_ids (torch.LongTensor şeklinde (batch_size, target_sequence_length), isteğe bağlı) — Sözlükteki decoder giriş dizisi token'larının indeksleri.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Çözücü girdi kimlikleri nelerdir?

  • decoder_attention_mask (torch.BoolTensor şeklinde (batch_size, target_sequence_length), isteğe bağlı) — Varsayılan davranış: içindeki pad token'larını yok sayan bir tensör oluşturur decoder_input_ids. Varsayılan olarak nedensel maske de kullanılır.

    Sadece bir kodlayıcı-çözücü dil modeli (T5 gibi) kullanıldığında geçerlidir.

  • inputs_embeds (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini 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ı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler [0, ..., config.vocab_size] aralığında olmalı ya da -100 olmalı (input_ids docstring'ine bakın). Endeksleri -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.
  • interpolate_pos_encoding (bool, isteğe bağlı, varsayılan False) — Önceden eğitilmiş konum kodlamalarının interpolasyonunun yapılıp yapılmayacağı.
  • mm_encoder_outputs (dict[str, ~modeling_outputs.BaseModelOutputWithPooling], isteğe bağlı) — Anahtarları desteklenen modaliteler, değerleri ise o modalite için kodlanmış çıktılar olan bir sözlük. Her kodlanmış çıktı, (pooler_output, isteğe bağlı: last_hidden_states, isteğe bağlı: hidden_states, isteğe bağlı: attentions) pooler_output (şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) biçiminde bir demettir ve kodlayıcının çok modlu özelliklerinin metin gömme (embedding) değerleriyle birleştirilmiş bir dizisidir.

Dönüş değeri

Blip2ForConditionalGenerationModelOutput veya tuple(torch.FloatTensor)

Blip2ForConditionalGenerationModelOutput veya bir torch.FloatTensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (Blip2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

Blip2ForConditionalGeneration 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.FloatTensor, opsiyonel, labels sağlandığında döndürülür, torch.FloatTensor, şekli (1,)) — Dil modelinden gelen dil modelleme kaybı.
  • logits (torch.FloatTensor, şekli (batch_size, sequence_length, config.vocab_size)) — Dil modelinin dil modelleme başlığının tahmin puanları.
  • vision_outputs (~modeling_outputs.BaseModelOutputWithPooling, isteğe bağlı) — Görüntü kodlayıcısının çıktıları.
  • qformer_outputs (~modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions, isteğe bağlı) — Q-Former'ın (Querying Transformer) çıktıları.
  • language_model_outputs (CausalLMOutputWithPast veya Seq2SeqLMOutput) — Dil modelinin çıktıları.

Örnekler:

İşleyiciyi, modeli ve görüntü girdisini hazırlayın

>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import Blip2Processor, Blip2ForConditionalGeneration
>>> import torch

>>> device = "cuda" if torch.cuda.is_available() else "cpu"

>>> processor = Blip2Processor.from_pretrained("Salesforce/blip2-opt-2.7b")
>>> model = Blip2ForConditionalGeneration.from_pretrained(
...     "Salesforce/blip2-opt-2.7b", load_in_8bit=True, device_map={"": 0}, dtype=torch.float16
... )  # doctest: +IGNORE_RESULT

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

Görsel açıklama (metin istemi sağlanmadan):

>>> inputs = processor(images=image, return_tensors="pt").to(device, torch.float16)

>>> generated_ids = model.generate(**inputs)
>>> generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0].strip()
>>> print(generated_text)
two cats laying on a couch

Görsel soru yanıtlama (prompt = soru):

>>> prompt = "Question: how many cats are there? Answer:"
>>> inputs = processor(images=image, text=prompt, return_tensors="pt").to(device="cuda", dtype=torch.float16)

>>> generated_ids = model.generate(**inputs)
>>> generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0].strip()
>>> print(generated_text)
two

int8 çıkarımın bitsandbytes üzerinden de desteklendiğini unutmayın. Bu, aynı performansı korurken modelin kullandığı bellek miktarını büyük ölçüde azaltır.

>>> model = Blip2ForConditionalGeneration.from_pretrained(
...     "Salesforce/blip2-opt-2.7b", load_in_8bit=True, device_map={"": 0}, dtype=torch.bfloat16
... )  # doctest: +IGNORE_RESULT

>>> inputs = processor(images=image, text=prompt, return_tensors="pt").to(device="cuda", dtype=torch.bfloat16)

>>> generated_ids = model.generate(**inputs)
>>> generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0].strip()
>>> print(generated_text)
two

generate

< >

( pixel_values: FloatTensorinput_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneinterpolate_pos_encoding: bool = False**generate_kwargs ) → captions (list)

Parametreler

  • pixel_values (torch.FloatTensor of shape (batch_size, num_channels, height, width)) — İşlenecek girdi görüntüleri.
  • input_ids (şekli (batch_size, sequence_length) olan torch.LongTensor, isteğe bağlı) — Üretim için istem (prompt) olarak kullanılan dizi.
  • attention_mask (torch.LongTensor of shape (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapılmaması için kullanılan maske
  • inputs_embeds (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size)) — Girdilerin gömülü temsili. Tam sayı token'ları değil, float olmalıdır.
  • interpolate_pos_encoding (bool, isteğe bağlı, varsayılan False) — Görsel gömme (embedding) konumsal kodlamasının (positional encoding) interpolasyonunun uygulanıp uygulanmayacağını belirtir.

Dönüş değeri

alt yazılar (list)

batch_size * num_captions uzunluğunda bir dizi string.

Modelin koşullu bir üreteç olarak kullanılabilmesi için generate işlevini devre dışı bırakır.

get_image_features

< >

( pixel_values: FloatTensorinterpolate_pos_encoding: bool | None = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithVisionQformerOutputs or tuple(torch.FloatTensor)

Parametreler

  • pixel_values (torch.FloatTensor, şekli (batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler.
  • interpolate_pos_encoding (bool, isteğe bağlı, varsayılan False) — Önceden eğitilmiş konum kodlamalarının interpolasyonunun yapılıp yapılmayacağı.

Dönüş değeri

BaseModelOutputWithVisionQformerOutputs veya tuple(torch.FloatTensor)

BaseModelOutputWithVisionQformerOutputs veya bir torch.FloatTensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (Blip2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

  • last_hidden_state (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

  • pooler_output (torch.FloatTensor, şekli (batch_size, hidden_size)) — Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, yardımcı ön eğitim görevi için kullanılan katmanlar üzerinden ek işlemden geçirildikten sonraki hali. Örneğin BERT ailesi modelleri için, bu, sınıflandırma token'ının doğrusal bir katman ve tanh aktivasyon fonksiyonu üzerinden işlenmesinden sonra döndürülen değerdir. Doğrusal katman ağırlıkları, ön eğitim sırasında bir sonraki cümle tahmini (sınıflandırma) hedefinden eğitilir.

  • hidden_states (tuple(torch.FloatTensor), 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.FloatTensor (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 modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.FloatTensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.FloatTensor (her katman için bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

  • vision_outputs (~modeling_outputs.BaseModelOutputWithPooling, isteğe bağlı) — Görüntü kodlayıcısının çıktıları.

  • qformer_outputs (~modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions, isteğe bağlı) — Q-Former'ın (Querying Transformer) çıktıları.

Örnek:

>>> from PIL import Image
>>> from transformers import AutoProcessor, Blip2ForConditionalGeneration

>>> model = Blip2ForConditionalGeneration.from_pretrained("Salesforce/blip2-opt-2.7b")
>>> processor = AutoProcessor.from_pretrained("Salesforce/blip2-opt-2.7b")

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

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

Blip2ForImageTextRetrieval

sınıf transformers.Blip2ForImageTextRetrieval

< >

( config: Blip2Config )

Parametreler

  • config (Blip2Config) — 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.

Görüntü ve metin projeksiyoncusuna sahip, üstünde bir sınıflandırma başlığı bulunan BLIP-2 Modeli. Model, görüntü-metin eşleştirme bağlamında kullanılır. Bir görüntü ve bir metin verildiğinde, model metnin görüntüyle ilgili olma olasılığını döndürür.

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: FloatTensorinput_ids: LongTensorattention_mask: typing.Optional[torch.LongTensor] = Noneuse_image_text_matching_head: bool | None = Falseoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → Blip2ImageTextMatchingModelOutput or tuple(torch.FloatTensor)

Parametreler

  • pixel_values (torch.FloatTensor of shape (batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri BlipImageProcessor kullanılarak elde edilebilir. Ayrıntılar için BlipImageProcessor.call()'a bakın (Blip2Processor, görüntü işleme için BlipImageProcessor kullanır).
  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Dil modelinin sözlüğündeki girdi dizisi belirteçlerinin (token) indeksleri. Girdi belirteçleri, dil modelinin devam ettirebileceği bir metin istemi (prompt) olarak isteğe bağlı şekilde sağlanabilir.

    Dizinler Blip2Processor kullanılarak elde edilebilir. Ayrıntılar için Blip2Processor.call() bölümüne bakın.

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.LongTensor ş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.

    Dikkat maskeleri nedir?

  • use_image_text_matching_head (bool, isteğe bağlı) — Görsel-Metin Eşleştirme veya Karşıtlık skorlarının döndürülüp döndürülmeyeceğini belirtir.
  • 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

Blip2ImageTextMatchingModelOutput veya tuple(torch.FloatTensor)

Blip2ImageTextMatchingModelOutput veya bir torch.FloatTensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (Blip2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

Blip2ForImageTextRetrieval 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.FloatTensor, şekli (1,), opsiyonel, return_loss True olduğunda döndürülür) — Görsel-metin benzerliği için kontrastif kayıp.
  • logits_per_image (torch.FloatTensor, şekli (image_batch_size, text_batch_size)) — image_embeds ile text_embeds arasındaki ölçekli nokta çarpımı puanları. Bu, görsel-metin benzerlik puanlarını temsil eder.
  • logits_per_text (torch.FloatTensor, şekli (text_batch_size, image_batch_size)) — text_embeds ile image_embeds arasındaki ölçekli nokta çarpımı puanları. Bu, metin-görsel benzerlik puanlarını temsil eder.
  • text_embeds (torch.FloatTensor, şekli (batch_size, output_dim) — Havuzlanmış çıktıya projeksiyon katmanının uygulanmasıyla elde edilen metin gömme değerleri.
  • image_embeds (torch.FloatTensor, şekli (batch_size, output_dim) — Havuzlanmış çıktıya projeksiyon katmanının uygulanmasıyla elde edilen gömme vektörleri.
  • text_model_output (~modeling_outputs.BaseModelOutputWithPooling, isteğe bağlı) — Blip2QFormerModel'ün çıktısı.
  • vision_model_output (~modeling_outputs.BaseModelOutputWithPooling, isteğe bağlı) — Blip2VisionModel'ün çıktısı.

Örnekler:

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

>>> device = "cuda" if torch.cuda.is_available() else "cpu"

>>> model = Blip2ForImageTextRetrieval.from_pretrained("Salesforce/blip2-itm-vit-g", dtype=torch.float16)
>>> processor = AutoProcessor.from_pretrained("Salesforce/blip2-itm-vit-g")

>>> model.to(device)
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> text = "two cats laying on a pink blanket"

>>> inputs = processor(images=image, text=text, return_tensors="pt").to(device, torch.float16)
>>> itm_out = model(**inputs, use_image_text_matching_head=True)
>>> logits_per_image = torch.nn.functional.softmax(itm_out.logits_per_image, dim=1)
>>> probs = logits_per_image.softmax(dim=1)  # we can take the softmax to get the label probabilities

>>> print(f"{probs[0][0]:.1%} that image 0 is not '{text}'")
26.9% that image 0 is not 'two cats laying on a pink blanket'

>>> print(f"{probs[0][1]:.1%} that image 0 is '{text}'")
73.0% that image 0 is 'two cats laying on a pink blanket'

>>> texts = ["a photo of a cat", "a photo of a dog"]

>>> inputs = processor(images=image, text=texts, return_tensors="pt").to(device, torch.float16)
>>> itc_out = model(**inputs, use_image_text_matching_head=False)
>>> logits_per_image = itc_out.logits_per_image  # this is the image-text similarity score
>>> probs = logits_per_image.softmax(dim=1)  # we can take the softmax to get the label probabilities

>>> print(f"{probs[0][0]:.1%} that image 0 is '{texts[0]}'")
55.3% that image 0 is 'a photo of a cat'

>>> print(f"{probs[0][1]:.1%} that image 0 is '{texts[1]}'")
44.7% that image 0 is 'a photo of a dog'

Blip2TextModelWithProjection

sınıf transformers.Blip2TextModelWithProjection

< >

( config: Blip2Config )

Parametreler

  • config (Blip2Config) — 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.

Üzerinde bir projeksiyon katmanı bulunan Blip 2 Modeli (havuzlanmış çıktının üzerinde doğrusal bir katman).

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

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Blip2TextModelOutput or tuple(torch.FloatTensor)

Parametreler

  • input_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • 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.

    Dikkat maskeleri nedir?

  • position_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

Dönüş değeri

Blip2TextModelOutput veya tuple(torch.FloatTensor)

Blip2TextModelOutput veya bir torch.FloatTensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (Blip2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

Blip2TextModelWithProjection 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.

  • text_embeds (torch.FloatTensor, şekli (batch_size, output_dim) isteğe bağlı, model with_projection=True ile başlatıldığında döndürülür) — pooler_output'a projeksiyon katmanının uygulanmasıyla elde edilen metin gömme değerleri.

  • last_hidden_state (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

  • hidden_states (tuple[torch.FloatTensor, ...], 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.FloatTensor (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 modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple[torch.FloatTensor, ...], 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 torch.FloatTensor (her katman için bir tane) içeren bir demet.

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Örnekler:

>>> import torch
>>> from transformers import AutoProcessor, Blip2TextModelWithProjection

>>> device = "cuda" if torch.cuda.is_available() else "cpu"

>>> model = Blip2TextModelWithProjection.from_pretrained(
...     "Salesforce/blip2-itm-vit-g", dtype=torch.float16
... )

>>> model.to(device)
>>> processor = AutoProcessor.from_pretrained("Salesforce/blip2-itm-vit-g")

>>> inputs = processor(text=["a photo of a cat", "a photo of a dog"], return_tensors="pt").to(device)

>>> outputs = model(**inputs)
>>> text_embeds = outputs.text_embeds
>>> print(text_embeds.shape)
torch.Size([2, 7, 256])

Blip2VisionModelWithProjection

sınıf transformers.Blip2VisionModelWithProjection

< >

( config: Blip2Config )

Parametreler

  • config (Blip2Config) — 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.

Üzerinde bir projeksiyon katmanı bulunan Blip 2 Modeli (havuzlanmış çıktının üzerinde doğrusal bir katman).

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

Parametreler

Dönüş değeri

Blip2VisionModelOutput veya tuple(torch.FloatTensor)

Blip2VisionModelOutput veya bir torch.FloatTensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (Blip2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

Blip2VisionModelWithProjection 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.

  • image_embeds (torch.FloatTensor, şekli (batch_size, output_dim) isteğe bağlı, model with_projection=True ile başlatıldığında döndürülür) — pooler_output'a projeksiyon katmanının uygulanmasıyla elde edilen gömme değerleri.

  • last_hidden_state (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

  • hidden_states (tuple[torch.FloatTensor, ...], 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.FloatTensor (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 modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple[torch.FloatTensor, ...], 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 torch.FloatTensor (her katman için bir tane) içeren bir demet.

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Örnekler:

>>> import torch
>>> from transformers import AutoProcessor, Blip2VisionModelWithProjection
>>> from transformers.image_utils import load_image

>>> device = "cuda" if torch.cuda.is_available() else "cpu"

>>> processor = AutoProcessor.from_pretrained("Salesforce/blip2-itm-vit-g")
>>> model = Blip2VisionModelWithProjection.from_pretrained(
...     "Salesforce/blip2-itm-vit-g", dtype=torch.float16
... )
>>> model.to(device)
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = load_image(url)

>>> inputs = processor(images=image, return_tensors="pt").to(device, torch.float16)

>>> with torch.inference_mode():
...     outputs = model(**inputs)
>>> image_embeds = outputs.image_embeds
>>> print(image_embeds.shape)
torch.Size([1, 32, 256])
Update on GitHub