Transformers documentation
InstructBlipVideo
Bu model 2023-05-11 tarihinde HF papers'ta yayımlandı ve 2024-06-25 tarihinde Hugging Face Transformers'a katkıda bulunuldu.
InstructBlipVideo
Genel Bakış
InstructBLIPVideo, Wenliang Dai, Junnan Li, Dongxu Li, Anthony Meng Huat Tiong, Junqi Zhao, Weisheng Wang, Boyang Li, Pascale Fung ve Steven Hoi tarafından önerilen InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning makalesindeki modellerin bir uzantısıdır. InstructBLIPVideo, InstructBLIP ile aynı mimariyi kullanır ve InstructBLIP ile aynı checkpoint'lerle çalışır. Tek fark, video işleme yeteneğidir.
Makalenin özeti aşağıdaki gibidir:
Çeşitli dil alanı görevlerini çözebilecek genel amaçlı dil modelleri, ön eğitim ve talimat ayarlama (instruction-tuning) hattının itici gücüyle ortaya çıkmıştır. Ancak, eklenen görsel girdi nedeniyle artan görev tutarsızlığı (task discrepancy) nedeniyle genel amaçlı görsel-dil modelleri geliştirmek zordur. Görsel-dil ön eğitimi yaygın olarak incelenmiş olsa da, görsel-dil talimat ayarlaması (instruction tuning) nispeten daha az keşfedilmiştir. Bu makalede, ön eğitilmiş BLIP-2 modelleri temel alınarak görsel-dil talimat ayarlaması üzerine sistematik ve kapsamlı bir çalışma yürütüyoruz. 26 farklı, kamuya açık veri setini derliyoruz, bunları talimat ayarlama formatına dönüştürüyor ve tutarlı (held-in) talimat ayarlaması ile tutarlı olmayan (held-out) sıfır atışlı (zero-shot) değerlendirme için iki küme olarak sınıflandırıyoruz. Ayrıca, modele verilen talimata göre bilgilendirici özellikler çıkarmasını sağlayan kritik bir yöntem olan talimat duyarlı görsel özellik çıkarımını (instruction-aware visual feature extraction) tanıtıyoruz. Sonuç olarak elde edilen InstructBLIP modelleri, tüm 13 tutarlı olmayan (held-out) veri setinde en iyi sıfır atışlı (state-of-the-art zero-shot) performansa ulaşmakta ve BLIP-2 ile daha büyük Flamingo modelini önemli ölçüde geride bırakmaktadır. Modellerimiz, bireysel aşağı akış (downstream) görevlerinde ayarlandığında (örneğin, ScienceQA IMG üzerinde %90,7 doğruluk) da en iyi performansa (state-of-the-art) yol açmaktadır. Bunun yanı sıra, InstructBLIP'in eş zamanlı çok modlu modellere (concurrent multimodal models) kıyasla avantajlarını nitel olarak gösteriyoruz.
InstructBLIPVideo architecture. Taken from the original paper. Bu model RaushanTurganbay tarafından katkıda bulunmuştur. Orijinal kod burada bulunabilir.
Kullanım ipuçları
- Model, video başına 4 kare örnekleyerek eğitildiğinden, 4 kare örneklenmesi önerilir
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ındanmodel.config.num_query_tokensolarak elde edilebilir ve model gömmelerinin genişletilmesi bu bağlantıyı takip ederek yapılabilir.
InstructBlipVideoConfig
sınıf transformers.InstructBlipVideoConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = 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 = 32initializer_factor: float = 1.0initializer_range: float = 0.02video_token_index: int | None = None )
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ı) — InstructBlipVideoQFormerConfig 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ı. - initializer_factor (
float, isteğe bağlı, varsayılan1.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ılan0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması. - video_token_index (
int, isteğe bağlı) — Girdi videoları için yer tutucu olarak kullanılan video token indeksi.
Bu, bir InstructBlipVideoModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Instructblipvideo modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, Salesforce/instructblip-flan-t5-xl modelinin yapılandırmasına 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 (
... InstructBlipVideoVisionConfig,
... InstructBlipVideoQFormerConfig,
... OPTConfig,
... InstructBlipVideoConfig,
... InstructBlipVideoForConditionalGeneration,
... )
>>> # Initializing a InstructBlipVideoConfig with Salesforce/instructblip-flan-t5-xl style configuration
>>> configuration = InstructBlipVideoConfig()
>>> # Initializing a InstructBlipVideoForConditionalGeneration (with random weights) from the Salesforce/instructblip-flan-t5-xl style configuration
>>> model = InstructBlipVideoForConditionalGeneration(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config
>>> # We can also initialize a InstructBlipVideoConfig from a InstructBlipVideoVisionConfig, InstructBlipVideoQFormerConfig and any PreTrainedConfig
>>> # Initializing Instructblipvideo vision, Instructblipvideo Q-Former and language model configurations
>>> vision_config = InstructBlipVideoVisionConfig()
>>> qformer_config = InstructBlipVideoQFormerConfig()
>>> text_config = OPTConfig()
>>> config = InstructBlipVideoConfig(vision_config=vision_config, qformer_config=qformer_config, text_config=text_config)InstructBlipVideoVisionConfig
sınıf transformers.InstructBlipVideoVisionConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = 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ılan1408) — Gizli temsillerin boyutu. - intermediate_size (
int, isteğe bağlı, varsayılan6144) — MLP temsillerinin boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan39) — Transformer çözücüdeki gizli katman sayısı. - num_attention_heads (
int, isteğe bağlı, varsayılan16) — 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ılan224) — 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ılan14) — Her yamanın boyutu (çözünürlüğü). - hidden_act (
str, isteğe bağlı, varsayılangelu) — Çö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ılan1e-06) — Katman normalizasyon katmanları tarafından kullanılan epsilon. - attention_dropout (
Union[float, int], isteğe bağlı, varsayılan0.0) — Dikkat olasılıkları için dropout oranı. - initializer_range (
float, isteğe bağlı, varsayılan1e-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ılanTrue) — Sorgulara, anahtarlara ve değerlere bir sapma eklenip eklenmeyeceği.
Bu, bir InstructBlipVideoModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Instructblipvideo modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, Salesforce/instructblip-flan-t5-xl modelinin yapılandırmasına 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 InstructBlipVideoVisionConfig, InstructBlipVideoVisionModel
>>> # Initializing a InstructBlipVideoVisionConfig with Salesforce/instructblip-flan-t5-xl style configuration
>>> configuration = InstructBlipVideoVisionConfig()
>>> # Initializing a InstructBlipVideoVisionModel (with random weights) from the Salesforce/instructblip-flan-t5-xl style configuration
>>> model = InstructBlipVideoVisionModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configInstructBlipVideoQFormerConfig
sınıf transformers.InstructBlipVideoQFormerConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 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 = 1408 )
Parametreler
- vocab_size (
int, isteğe bağlı, varsayılan30522) — Modelin sözlük boyutu.input_idstarafından temsil edilebilecek farklı token sayısını tanımlar. - hidden_size (
int, isteğe bağlı, varsayılan768) — Gizli temsillerin boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan12) — Transformer çözücüdeki gizli katman sayısı. - num_attention_heads (
int, isteğe bağlı, varsayılan12) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - intermediate_size (
int, isteğe bağlı, varsayılan3072) — MLP temsillerinin boyutu. - hidden_act (
str, isteğe bağlı, varsayılangelu) — Çö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ılan0.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ılan0.1) — Dikkat olasılıkları için dropout oranı. - max_position_embeddings (
int, isteğe bağlı, varsayılan512) — Bu modelin kullanılabileceği en uzun dizi uzunluğu. - initializer_range (
float, isteğe bağlı, varsayılan0.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ılan1e-12) — Katman normalizasyon katmanları tarafından kullanılan epsilon. - pad_token_id (
int, isteğe bağlı, varsayılan0) — 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) — Çapraz dikkat için gizli durumların gizli boyutu.
Bu, bir InstructBlipVideoModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Instructblipvideo modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, Salesforce/instructblip-flan-t5-xl modelinin yapılandırmasına 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 InstructBlipVideoQFormerConfig, InstructBlipVideoQFormerModel
>>> # Initializing a InstructBlipVideo Salesforce/instructblip-flan-t5-xl style configuration
>>> configuration = InstructBlipVideoQFormerConfig()
>>> # Initializing a model (with random weights) from the Salesforce/instructblip-flan-t5-xl style configuration
>>> model = InstructBlipVideoQFormerModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configInstructBlipVideoProcessor
sınıf transformers.InstructBlipVideoProcessor
< source >( video_processortokenizerqformer_tokenizernum_query_tokens = None**kwargs )
Parametreler
- video_processor (
InstructBlipVideoVideoProcessor) — Video işleyici zorunlu bir girdidir. - tokenizer (
GPT2Tokenizer) — Tokenizer zorunlu bir girdidir. - qformer_tokenizer (
AutoTokenizer) — [‘PreTrainedTokenizer`] sınıfının bir örneği. Q-Former 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 video işleyiciyi, bir belirteç oluşturucuyu ve bir qformer belirteç oluşturucuyu tek bir işleyicide birleştiren bir InstructBlipVideoProcessor oluşturur.
InstructBlipVideoProcessor, InstructBlipVideoVideoProcessor, GPT2Tokenizer ve {qformer_tokenizer_class} sınıflarının tüm işlevlerini sunar. Daha fazla bilgi için ~InstructBlipVideoVideoProcessor, ~GPT2Tokenizer ve ~{qformer_tokenizer_class} belgelerine bakın.
InstructBlipVideoVideoProcessor
sınıf transformers.InstructBlipVideoVideoProcessor
< source >( **kwargs: *<class 'transformers.processing_utils.VideosKwargs'> )
Parametreler
- do_convert_rgb (
bool, kwargs, opsiyonel, varsayılanTrue) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi. - do_resize (
bool, kwargs, isteğe bağlı, varsayılanTrue) — Görselin yeniden boyutlandırılıp boyutlandırılmayacağı. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, varsayılan{'height' -- 384, 'width': 384}): Modelin kabul ettiği maksimum giriş boyutlarını açıklar. - default_to_square (
bool, kwargs, isteğe bağlı, varsayılanTrue) — size bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntü kullanılıp kullanılmayacağı. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, varsayılan3) — Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu,PILImageResamplingenum değerlerinden biri olabilir. Yalnızcado_resizeTrueolarak ayarlanırsa etkilidir. - do_rescale (
bool, kwargs, isteğe bağlı, varsayılanTrue) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği. - rescale_factor (
float, kwargs, opsiyonel, varsayılan0.00392156862745098) —do_rescaleTrueolarak ayarlandığında görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü. - do_normalize (
bool, kwargs, opsiyonel, varsayılanTrue) — Görselin normalize edilip edilmeyeceği. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel, varsayılan[0.48145466, 0.4578275, 0.40821073]) — Normalizasyon için kullanılacak görüntü ortalaması. Yalnızcado_normalizeTrueolarak ayarlanırsa etkilidir. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel, varsayılan[0.26862954, 0.26130258, 0.27577711]) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızcado_normalizeTrueolarak ayarlanırsa etkilidir. - do_center_crop (
bool, kwargs, opsiyonel) — Görselin ortadan kırpılıp kırpılmayacağı. - do_pad (
bool, kwargs, opsiyonel) — Görselin dolgu (padding) uygulanıp uygulanmayacağı. Dolgu, partideki en büyük boyuta veya görsel başına sabit kare bir boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_cropuygulandıktan sonra çıktı görüntüsünün boyutu. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — YalnızcaChannelDimension.FIRSTdesteklenir. Yavaş işleyicilerle uyumluluk için eklendi. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:"channels_first"veyaChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü."channels_last"veyaChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü."none"veyaChannelDimension.NONE: (height, width) biçiminde görüntü.
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır. - do_sample_frames (
bool, kwargs, opsiyonel, varsayılanFalse) — İşlemden önce videodan kare örneklenip örneklenmeyeceği veya videonun tamamının işleneceği. - video_metadata (
Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None], kwargs) — Toplam süre, fps ve toplam kare sayısı hakkında bilgi içeren videonun metadata'sı. Videodan kare örneklemek veya zaman damgaları hesaplamak için kullanılacaktır. Videoyu işlemden önce manuel olarak çözmeye çalışmıyorsanız herhangi bir metadata geçirmeyin - fps (
Annotated[int | float | None, None], kwargs) —do_sample_frames=Trueolduğunda saniyede örneklenmesi hedeflenen kare sayısı. - num_frames (
Annotated[int | None, None], kwargs) —do_sample_frames=Trueolduğunda örneklenmesi gereken maksimum kare sayısı. - return_metadata (
bool, kwargs, opsiyonel, varsayılanFalse) — Video meta verilerinin döndürülüp döndürülmeyeceğini belirtir. Video meta verileri, video süresi, fps, çözümleme arka ucu gibi bilgileri içeren bir nesnedir. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Belirtilirse, belirli bir çerçeveye ait tensörler döndürülür. Kabul edilen değerler şunlardır:'pt': PyTorchtorch.Tensornesnelerini döndürür.'np': NumPynp.ndarraynesnelerini döndürür.
- **kwargs (VideosKwargs, opsiyonel) — 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.
InstructBlipVideoVideoProcessor video işleyicisi oluşturur.
ön işleme
< source >( videos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]]]**kwargs: *<class 'transformers.processing_utils.VideosKwargs'> ) → ~image_processing_base.BatchFeature
Parametreler
- videos (
Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor], list[list[PIL.Image.Image]], list[list[numpy.ndarray]], list[list[torch.Tensor]], ~video_utils.URL, list[~video_utils.URL], list[list[~video_utils.URL]], ~video_utils.Path, list[~video_utils.Path], list[list[~video_utils.Path]]]) — Ön işleme yapılacak video. Piksel değerleri 0 ile 255 arasında değişen tek bir video veya video grubu beklenir. Piksel değerleri 0 ile 1 arasında olan videoları geçiriyorsanızdo_rescale=Falseolarak ayarlayın. - do_convert_rgb (
bool, kwargs, opsiyonel) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi. - do_resize (
bool, kwargs, opsiyonel) — Görselin yeniden boyutlandırılıp boyutlandırılmayacağı. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Modelin kabul ettiği maksimum giriş boyutlarını açıklar. - default_to_square (
bool, kwargs, opsiyonel) — Boyut bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntüye geçilip geçilmeyeceği. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu,PILImageResamplingenum değerlerinden biri olabilir. Yalnızcado_resizeTrueolarak ayarlanırsa etkilidir. - do_rescale (
bool, kwargs, opsiyonel) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği. - rescale_factor (
float, kwargs, opsiyonel) —do_rescaleTrueolarak ayarlanırsa görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü. - do_normalize (
bool, kwargs, opsiyonel) — Görselin normalize edilip edilmeyeceği. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü ortalaması. Yalnızcado_normalizeTrueolarak ayarlanırsa etkilidir. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızcado_normalizeTrueolarak ayarlanmışsa etkilidir. - do_center_crop (
bool, kwargs, opsiyonel) — Görselin ortadan kırpılıp kırpılmayacağı. - do_pad (
bool, kwargs, opsiyonel) — Görselin dolgu (padding) uygulanıp uygulanmayacağı. Dolgu, partideki en büyük boyuta veya görsel başına sabit kare bir boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_cropuygulandıktan sonra çıktı görüntüsünün boyutu. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — YalnızcaChannelDimension.FIRSTdesteklenir. Yavaş işleyicilerle uyumluluk için eklendi. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:"channels_first"veyaChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü."channels_last"veyaChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü."none"veyaChannelDimension.NONE: (height, width) biçiminde görüntü.
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır. - do_sample_frames (
bool, kwargs, opsiyonel) — İşlemden önce videodan kare örneklenip örneklenmeyeceği veya videonun tamamının işleneceği. - video_metadata (
Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None], kwargs) — Toplam süre, fps ve toplam kare sayısı hakkında bilgi içeren videonun metadata'sı. Videodan kare örneklemek veya zaman damgaları hesaplamak için kullanılacaktır. Videoyu işlemden önce manuel olarak çözmeye çalışmıyorsanız herhangi bir metadata geçirmeyin - fps (
Annotated[int | float | None, None], kwargs) —do_sample_frames=Trueolduğunda saniyede örneklenmesi hedeflenen kare sayısı. - num_frames (
Annotated[int | None, None], kwargs) —do_sample_frames=Trueolduğunda örneklenmesi gereken maksimum kare sayısı. - return_metadata (
bool, kwargs, opsiyonel) — Video metadata döndürülüp döndürülmemesi. Video metadata, video süresi, fps, çözümleme arka ucu gibi bilgileri içeren bir nesnedir. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'olarak ayarlanırsa yığılmış tensörler döndürür, aksi takdirde tensör listesi döndürür.
Dönüş değeri
~image_processing_base.BatchFeature
- data (
dict) — call yönteminin döndürdüğü listeler/diziler/tensörler sözlüğü (‘pixel_values’ vb.). - 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.
InstructBlipVideoVisionModel
sınıf transformers.InstructBlipVideoVisionModel
< source >( config: InstructBlipVideoVisionConfig )
forward
< source >( pixel_values: typing.Optional[torch.Tensor] = Noneinterpolate_pos_encoding: bool = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling 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ğerleriimage_processor_classkullanılarak elde edilebilir. Ayrıntılar içinimage_processor_class.__call__bölümüne bakın (InstructBlipVideoProcessor, görüntü işleme içinimage_processor_classkullanır). - interpolate_pos_encoding (
bool, isteğe bağlı, varsayılanFalse) — Önceden eğitilmiş konum kodlamalarının interpolasyonunun yapılıp yapılmayacağı.
Dönüş değeri
BaseModelOutputWithPooling veya tuple(torch.Tensor)
A BaseModelOutputWithPooling veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (InstructBlipVideoConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
InstructBlipVideoVisionModel 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.Tensor, şekli(batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.pooler_output (
torch.Tensor, ş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.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
InstructBlipVideoQFormerModel
sınıf transformers.InstructBlipVideoQFormerModel
< source >( config: InstructBlipVideoQFormerConfig )
InstructBlipVideo'da kullanılan Querying Transformer (Q-Former). BLIP-2'den hafifçe değiştirilmiştir, çünkü talimatı da girdi olarak alır.
forward
< source >( input_ids: LongTensorattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonequery_embeds: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPoolingAndCrossAttentions or tuple(torch.Tensor)
Parametreler
- input_ids (
torch.LongTensorş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.
- 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.
- position_ids (
torch.LongTensorş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]. - query_embeds (
torch.Tensor, ş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). - encoder_hidden_states (
torch.Tensor, ş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.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Giriş verisindeki dolgu (padding) jetonlarının indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Model bir decoder olarak yapılandırılmışsa bu maske çapraz dikkat (cross-attention) işleminde kullanılır. Maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
Dönüş değeri
BaseModelOutputWithPoolingAndCrossAttentions veya tuple(torch.Tensor)
A BaseModelOutputWithPoolingAndCrossAttentions veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (InstructBlipVideoConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
InstructBlipVideoQFormerModel 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.Tensor, şekli(batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.pooler_output (
torch.Tensor, ş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.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat 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.Tensor), isteğe bağlı,output_attentions=Trueveconfig.add_cross_attention=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —(batch_size, num_heads, sequence_length, sequence_length)biçiminde, her katman için bir adet içerentorch.Tensordemeti.Dekoderin çapraz dikkat katmanının dikkat ağırlıkları, dikkat softmax'ından sonra, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
past_key_values (
Cache, isteğe bağlı,use_cache=Truegeçirildiğinde veyaconfig.use_cache=Trueolduğ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_valuesgirdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler ve isteğe bağlı olarakconfig.is_encoder_decoder=Trueise cross-attention bloklarındaki anahtar ve değerler) içerir.
InstructBlipVideoModel
sınıf transformers.InstructBlipVideoModel
< source >( config: InstructBlipVideoConfig )
Parametreler
- config (InstructBlipVideoConfig) — 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.
Dil modeli, qformer ve görme kodlayıcıdan oluşan InstructBlipVideo taban 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
< source >( pixel_values: Tensorqformer_input_ids: Tensorqformer_attention_mask: typing.Optional[torch.LongTensor] = Noneinput_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneinterpolate_pos_encoding: bool = Falseuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → InstructBlipVideoForConditionalGenerationModelOutput or tuple(torch.Tensor)
Parametreler
- pixel_values (
torch.Tensor, şekli(batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleriimage_processor_classkullanılarak elde edilebilir. Ayrıntılar içinimage_processor_class.__call__bölümüne bakın (InstructBlipVideoProcessor, görüntü işleme içinimage_processor_classkullanır). - qformer_input_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Q-Former sözlüğündeki girdi dizisi tokenlarının indeksleri. Girdi tokenları, Q-Former modelinin kodlayacağı bir metin istemi olarak görev yapacak şekilde isteğe bağlı olarak sağlanabilir.Endeksler InstructBlipVideoProcessor kullanılarak elde edilebilir. Ayrıntılar için
InstructBlipVideoProcessor.__call__()bölümüne bakın. - qformer_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.
- 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.
- 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.
- 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.
- 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ştururdecoder_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.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - interpolate_pos_encoding (
bool, isteğe bağlı, varsayılanFalse) — Önceden eğitilmiş konum kodlamalarının interpolasyonunun yapılıp yapılmayacağı. - use_cache (
bool, isteğe bağlı) —Trueolarak ayarlanırsa,past_key_valuesanahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz.past_key_values).
Dönüş değeri
InstructBlipVideoForConditionalGenerationModelOutput veya tuple(torch.Tensor)
InstructBlipVideoForConditionalGenerationModelOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (InstructBlipVideoConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
InstructBlipVideoModel 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, opsiyonel,labelssağlandığında döndürülür,torch.Tensor, şekli(1,)) — Dil modelinden gelen dil modelleme kaybı. - logits (
torch.Tensor, ş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 (
CausalLMOutputWithPastveyaSeq2SeqLMOutput) — Dil modelinin çıktıları.
InstructBlipVideoForConditionalGeneration
sınıf transformers.InstructBlipVideoForConditionalGeneration
< source >( config: InstructBlipVideoConfig )
Parametreler
- config (InstructBlipVideoConfig) — 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örüntü ve isteğe bağlı bir metin istemine (prompt) dayanarak metin üretmek için kullanılan InstructBlipVideo Modeli. Model, bir görme kodlayıcı (vision encoder), Sorgulama Dönüştürücüsü (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.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( pixel_values: Tensorqformer_input_ids: Tensorqformer_attention_mask: typing.Optional[torch.LongTensor] = Noneinput_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneinterpolate_pos_encoding: bool = Falseuse_cache: bool | None = Nonemm_encoder_outputs: transformers.modeling_outputs.BaseModelOutputWithPooling | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → InstructBlipVideoForConditionalGenerationModelOutput or tuple(torch.Tensor)
Parametreler
- pixel_values (
torch.Tensor, şekli(batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleriimage_processor_classkullanılarak elde edilebilir. Ayrıntılar içinimage_processor_class.__call__bölümüne bakın (InstructBlipVideoProcessor, görüntü işleme içinimage_processor_classkullanır). - qformer_input_ids (
torch.LongTensorof shape (batch_size, sequence_length)) — Q-Former modülüne girdi olarak verilecek istem (prompt) olarak kullanılan dizi. - qformer_attention_mask (
torch.LongTensorof shape (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapılmaması için kullanılan maske. - 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.
- 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.
- 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.
- decoder_attention_mask (
torch.LongTensor, şekli(batch_size, target_sequence_length), isteğe bağlı) — Belirli token indekslerinde dikkat işleminin uygulanmasını önlemek için kullanılan maske. Varsayılan olarak, modelin geleceği tahmin ederken yalnızca önceki girdilere bakmasını sağlamak için nedensel bir maske kullanılır. - inputs_embeds (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden 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_idsdocstring'ine bakın). Endeksleri-100olarak ayarlanan tokenlar yok sayılır (maskelenir), kayıp yalnızca etiketleri[0, ..., config.vocab_size]aralığında olan tokenlar için hesaplanır. - interpolate_pos_encoding (
bool, isteğe bağlı, varsayılanFalse) — Önceden eğitilmiş konum kodlamalarının interpolasyonunun yapılıp yapılmayacağı. - use_cache (
bool, isteğe bağlı) —Trueolarak ayarlanırsa,past_key_valuesanahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz.past_key_values). - mm_encoder_outputs (
~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, kodlayıcının çok modlu özelliklerinin metin gömme vektörlerine birleştirilmiş bir dizisidir.
Dönüş değeri
InstructBlipVideoForConditionalGenerationModelOutput veya tuple(torch.Tensor)
InstructBlipVideoForConditionalGenerationModelOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (InstructBlipVideoConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
InstructBlipVideoForConditionalGeneration 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, opsiyonel,labelssağlandığında döndürülür,torch.Tensor, şekli(1,)) — Dil modelinden gelen dil modelleme kaybı. - logits (
torch.Tensor, ş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 (
CausalLMOutputWithPastveyaSeq2SeqLMOutput) — Dil modelinin çıktıları.
Örnekler:
>>> from transformers import InstructBlipVideoProcessor, InstructBlipVideoForConditionalGeneration
>>> import torch
>>> from huggingface_hub import hf_hub_download
>>> import av
>>> import numpy as np
>>> def read_video_pyav(container, indices):
... '''
... Decode the video with PyAV decoder.
... Args:
... container (`av.container.input.InputContainer`): PyAV container.
... indices (`list[int]`): List of frame indices to decode.
... Returns:
... result (np.ndarray): np array of decoded frames of shape (num_frames, height, width, 3).
... '''
... frames = []
... container.seek(0)
... start_index = indices[0]
... end_index = indices[-1]
... for i, frame in enumerate(container.decode(video=0)):
... if i > end_index:
... break
... if i >= start_index and i in indices:
... frames.append(frame)
... return np.stack([x.to_ndarray(format="rgb24") for x in frames])
>>> model = InstructBlipVideoForConditionalGeneration.from_pretrained("Salesforce/instructblip-vicuna-7b", device_map="auto")
>>> processor = InstructBlipVideoProcessor.from_pretrained("Salesforce/instructblip-vicuna-7b")
>>> file_path = hf_hub_download(
... repo_id="nielsr/video-demo", filename="eating_spaghetti.mp4", repo_type="dataset"
... )
>>> container = av.open(file_path)
>>> # sample uniformly 4 frames from the video
>>> total_frames = container.streams.video[0].frames
>>> indices = np.arange(0, total_frames, total_frames / 4).astype(int)
>>> clip = read_video_pyav(container, indices)
>>> prompt = "What is happening in the video?"
>>> inputs = processor(text=prompt, images=clip, return_tensors="pt").to(model.device)
>>> outputs = model.generate(
... **inputs,
... do_sample=False,
... num_beams=5,
... max_length=256,
... repetition_penalty=1.5,
... length_penalty=1.0,
... )
>>> generated_text = processor.batch_decode(outputs, skip_special_tokens=True)[0].strip()
>>> print(generated_text)
"A person is eating a bowl of pasta, and they are using a fork to eat it. The person is sitting at a table, and the plate of pasta is on the table in front"generate
< source >( pixel_values: Tensorqformer_input_ids: typing.Optional[torch.LongTensor] = Noneqformer_attention_mask: typing.Optional[torch.LongTensor] = Noneinput_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneinterpolate_pos_encoding: bool = False**generate_kwargs ) → captions (list)
Parametreler
- pixel_values (şekli (batch_size, num_channels, height, width) olan bir
torch.Tensorveya — (batch_size, num_frames, num_channels, height, width)): İşlenecek girdi görüntüleri veya videolar. - qformer_input_ids (şekli (batch_size, sequence_length) olan
torch.LongTensor, isteğe bağlı) — Q-Former modülüne girdi olarak verilecek istem (prompt) olarak kullanılan dizi. - qformer_attention_mask (
torch.LongTensorof shape (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapılmaması için kullanılan maske. - 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 (şekli (batch_size, sequence_length) olan
torch.LongTensor, isteğe bağlı) — Doldurma (padding) belirteç indekslerinde dikkat (attention) işleminin uygulanmaması için kullanılan maske. - inputs_embeds (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size)) — Girdilerin gömülü temsili. float olmalı, int token değil. - interpolate_pos_encoding (
bool, isteğe bağlı, varsayılanFalse) — 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_video_features
< source >( pixel_values: Tensorqformer_input_ids: LongTensorqformer_attention_mask: typing.Optional[torch.LongTensor] = Noneinterpolate_pos_encoding: bool | None = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithVisionQformerOutputs or tuple(torch.Tensor)
Parametreler
- pixel_values (
torch.Tensor, şekli(batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. - qformer_input_ids (
torch.LongTensorof shape (batch_size, sequence_length)) — Q-Former modülüne girdi olarak verilecek istem (prompt) olarak kullanılan dizi. - qformer_attention_mask (
torch.LongTensorof shape (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapılmaması için kullanılan maske. - interpolate_pos_encoding (
bool, isteğe bağlı, varsayılanFalse) — Önceden eğitilmiş konum kodlamalarının interpolasyonunun yapılıp yapılmayacağı.
Dönüş değeri
BaseModelOutputWithVisionQformerOutputs veya tuple(torch.Tensor)
BaseModelOutputWithVisionQformerOutputs veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (InstructBlipVideoConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
last_hidden_state (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.pooler_output (
torch.Tensor, ş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.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat 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, InstructBlipVideoForConditionalGeneration
>>> model = InstructBlipVideoForConditionalGeneration.from_pretrained("Salesforce/instructblip-flan-t5-xl")
>>> processor = AutoProcessor.from_pretrained("Salesforce/instructblip-flan-t5-xl")
>>> 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]