Transformers documentation

DPR

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 2020-04-10 tarihinde HF papers'ta yayımlandı ve 2020-11-16 tarihinde Hugging Face Transformers'a katkıda bulunuldu.

DPR

SDPA

Genel Bakış

Dense Passage Retrieval (DPR), son teknoloji açık alan Q&A araştırmaları için bir araç ve model setidir. Vladimir Karpukhin, Barlas Oğuz, Sewon Min, Patrick Lewis, Ledell Wu, Sergey Edunov, Danqi Chen ve Wen-tau Yih tarafından Dense Passage Retrieval for Open-Domain Question Answering makalesinde tanıtılmıştır.

Makalenin özeti aşağıdaki gibidir:

Açık alan soru-cevap, aday bağlamları seçmek için verimli pasaj geri getirmeye dayanır; bu alanda TF-IDF veya BM25 gibi geleneksel seyrek vektör uzayı modelleri fiili standart yöntemdir. Bu çalışmada, gömme (embedding) değerlerinin basit bir çift kodlayıcı (dual-encoder) çerçevesi kullanılarak az sayıda soru ve pasajdan öğrenildiği, geri getirmenin yalnızca yoğun (dense) temsillerle pratik olarak uygulanabileceğini gösteriyoruz. Geniş bir açık alan soru-cevap veri kümesi yelpazesinde değerlendirildiğinde, yoğun geri getiricimiz, üst-20 (top-20) pasaj geri getirme doğruluğu açısından güçlü bir Lucene-BM25 sistemini büyük ölçüde %9-%19 mutlak farkla geride bırakmakta ve uçtan uca soru-cevap sistemimizin birden fazla açık alan soru-cevap benchmark'ında yeni en iyi sonuçları (state-of-the-art) elde etmesine yardımcı olmaktadır.

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

Kullanım ipuçları

  • DPR üç modelden oluşur:

    • Soru kodlayıcı: Soruları vektör olarak kodlayın
    • Bağlam kodlayıcı: bağlamları vektör olarak kodlayın
    • Okuyucu: retrieve edilen bağlamlar içindeki soruların yanıtlarını, bir uygunluk puanıyla birlikte çıkarır (çıkarılan aralık soruyu gerçekten yanıtlıyorsa puan yüksek olur).

DPRConfig

sınıf transformers.DPRConfig

< >

( 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 = 512type_vocab_size: int = 2initializer_range: float = 0.02layer_norm_eps: float = 1e-12pad_token_id: int | None = 0bos_token_id: int | None = Noneeos_token_id: int | list[int] | None = Noneprojection_dim: int = 0is_decoder: bool = Falseadd_cross_attention: 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.
  • type_vocab_size (int, isteğe bağlı, varsayılan 2) — token_type_ids için sözlük boyutu.
  • 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.
  • bos_token_id (int, isteğe bağlı) — Sözlükte akış başlangıcı için kullanılan token kimliği.
  • eos_token_id (Union[int, list[int]], isteğe bağlı) — Sözlükte akış sonu için kullanılan token kimliği.
  • projection_dim (int, isteğe bağlı, varsayılan 0) — Metin ve görme projeksiyon katmanlarının boyutluluğu.
  • is_decoder (bool, isteğe bağlı, varsayılan False) — Modelin bir decoder olarak kullanılıp kullanılmadığı. False ise model bir encoder olarak kullanılır.
  • add_cross_attention (bool, isteğe bağlı, varsayılan False) — Modelde çapraz dikkat katmanlarının eklenip eklenmeyeceğini belirtir.

Bu, bir DPRQuestionEncoder yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Dpr modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, facebook/dpr-ctx_encoder-single-nq-base 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 DPRConfig, DPRContextEncoder

>>> # Initializing a DPR facebook/dpr-ctx_encoder-single-nq-base style configuration
>>> configuration = DPRConfig()

>>> # Initializing a model (with random weights) from the facebook/dpr-ctx_encoder-single-nq-base style configuration
>>> model = DPRContextEncoder(configuration)

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

DPRContextEncoderTokenizer

sınıf transformers.DPRContextEncoderTokenizer

< >

( *argsdo_lower_case = False**kwargs )

DPRContextEncoder tokenizer'ı oluşturun.

DPRContextEncoderTokenizer, BertTokenizer ile aynıdır ve uçtan uca tokenizasyonu çalıştırır: noktalama ayrımı ve wordpiece.

Parametreler ile ilgili kullanım örnekleri ve belgeler için üst sınıf BertTokenizer'a başvurun.

DPRContextEncoderTokenizerFast

sınıf transformers.DPRContextEncoderTokenizerFast

< >

( vocab: str | dict[str, int] | None = Nonedo_lower_case: bool = Trueunk_token: str = '[UNK]'sep_token: str = '[SEP]'pad_token: str = '[PAD]'cls_token: str = '[CLS]'mask_token: str = '[MASK]'tokenize_chinese_chars: bool = Truestrip_accents: bool | None = None**kwargs )

HuggingFace'in tokenizers kütüphanesiyle desteklenen “fast” bir DPRContextEncoder tokenizer'ı oluşturun.

DPRContextEncoderTokenizerFast, BertTokenizer ile aynıdır ve uçtan uca tokenizasyonu çalıştırır: noktalama ayrımı ve wordpiece.

Parametreler ile ilgili kullanım örnekleri ve belgeler için üst sınıf BertTokenizer'a başvurun.

DPRQuestionEncoderTokenizer

sınıf transformers.DPRQuestionEncoderTokenizer

< >

( *argsdo_lower_case = False**kwargs )

Bir DPRQuestionEncoder tokenizer'ı oluşturur.

DPRQuestionEncoderTokenizer, BertTokenizer ile aynıdır ve uçtan uca tokenizasyonu çalıştırır: noktalama ayrımı ve wordpiece.

Parametreler ile ilgili kullanım örnekleri ve belgeler için üst sınıf BertTokenizer'a başvurun.

DPRQuestionEncoderTokenizerFast

sınıf transformers.DPRQuestionEncoderTokenizerFast

< >

( vocab: str | dict[str, int] | None = Nonedo_lower_case: bool = Trueunk_token: str = '[UNK]'sep_token: str = '[SEP]'pad_token: str = '[PAD]'cls_token: str = '[CLS]'mask_token: str = '[MASK]'tokenize_chinese_chars: bool = Truestrip_accents: bool | None = None**kwargs )

HuggingFace'in tokenizers kütüphanesi tarafından desteklenen “fast” DPRQuestionEncoder tokenizer'ı oluşturur.

DPRQuestionEncoderTokenizerFast, BertTokenizer ile aynıdır ve uçtan uca tokenizasyonu çalıştırır: noktalama işareti bölme ve wordpiece.

Parametreler ile ilgili kullanım örnekleri ve belgeler için üst sınıf BertTokenizer'a başvurun.

DPRReaderTokenizer

sınıf transformers.DPRReaderTokenizer

< >

( *argsdo_lower_case = False**kwargs ) → dict[str, list[list[int]]]

Parametreler

  • questions (str veya list[str]) — Kodlanacak sorular. Birçok pasaj için tek bir soru belirleyebilirsiniz. Bu durumda, soru [questions] * n_passages şeklinde çoğaltılır. Aksi takdirde, titles veya texts içindeki kadar soru belirtmeniz gerekir.
  • titles (str veya list[str]) — Kodlanacak pasaj başlıkları. Birden fazla pasaj varsa bu, bir dize veya dize listesi olabilir.
  • texts (str veya list[str]) — Kodlanacak pasaj metinleri. Birden fazla pasaj varsa bu, bir dize veya dize listesi olabilir.
  • padding (bool, str veya PaddingStrategy, isteğe bağlı, varsayılan olarak False) — Dolgu işlemini etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:
    • True veya 'longest': Batch içindeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlandıysa dolgu yapılmaz).
    • 'max_length': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kadar doldurur.
    • False veya 'do_not_pad' (varsayılan): Dolgu yok (yani, farklı uzunluklarda diziler içeren bir parti çıktı olarak üretilebilir).
  • truncation (bool, str veya TruncationStrategy, isteğe bağlı, varsayılan olarak False) — Kesmeyi (truncation) etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:
    • True veya 'longest_first': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltır. Bu işlem, token bazında gerçekleşir; bir çift dizi (veya çift dizilerden oluşan bir batch) sağlandığında, çiftteki en uzun diziden bir token kaldırılır.
    • 'only_first': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltır. Bir çift dizi (veya çiftlerin bir partisi) sağlandığında, yalnızca çiftin ilk dizisini kısaltır.
    • 'only_second': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum girdi uzunluğuna kısaltır. Bu, bir çift dizi (veya çiftlerin bir partisi) sağlandığında yalnızca çiftin ikinci dizisini kısaltır.
    • False veya 'do_not_truncate' (varsayılan): Kesme yapılmaz (yani, modelin kabul edebileceği maksimum giriş boyutundan daha uzun dizi uzunluklarına sahip bir çıktı partisi üretilebilir).
  • max_length (int, isteğe bağlı) — Bir kesme/doldurma parametresi tarafından kullanılacak maksimum uzunluğu kontrol eder.

    Eğer ayarlanmazsa veya None olarak ayarlanırsa, kırpma/dolgu parametrelerinden biri tarafından bir maksimum uzunluk gerekiyorsa, bu, önceden tanımlanmış modelin maksimum uzunluğunu kullanır. Modelin belirli bir maksimum giriş uzunluğu yoksa (XLNet gibi), maksimum uzunluğa kırpma/dolgu devre dışı bırakılır.

  • return_tensors (str veya TensorType, isteğe bağlı) — Belirlenirse, Python tamsayı listesi yerine 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.
  • return_attention_mask (bool, isteğe bağlı) — Dikkat maskesinin döndürülüp döndürülmeyeceğini belirtir. Belirtilmezse, return_outputs özniteliğinde tanımlanan ilgili tokenizer varsayılanına göre dikkat maskesi döndürülür.

    Dikkat maskeleri nedir?

Dönüş değeri

dict[str, list[list[int]]]

Aşağıdaki anahtarlara sahip bir sözlük:

  • input_ids: Bir modele verilecek token kimliklerinin listesi.
  • attention_mask: Modelin hangi token'lara dikkat etmesi gerektiğini belirleyen indeks listesi.

DPRReader tokenizer'ı oluşturun.

DPRReaderTokenizer, BertTokenizer ile neredeyse aynıdır ve uçtan uca tokenizasyonu çalıştırır: noktalama işareti bölme ve wordpiece. Farkı, DPRReader modeline beslenmek üzere birleştirilen question, titles ve texts olmak üzere üç girdi dizgesi almasıdır.

Parametreler ile ilgili kullanım örnekleri ve belgeler için üst sınıf BertTokenizer'a başvurun.

Giriş dizelerinin token kimliklerini ve .decode_best_spans fonksiyonuna verilecek diğer bilgileri içeren bir sözlük döndürür. Bu işlem, bir sorunun ve farklı pasajların (başlık ve metin) dizelerini, tokenizer ve sözlük kullanarak kimlik (tamsayı) dizilerine dönüştürür. Sonuçta elde edilen input_ids, boyutu (n_passages, sequence_length) olan bir matristir.

şu biçimle:

[CLS] <question token ids> [SEP] <titles ids> [SEP] <texts ids>

DPRReaderTokenizerFast

sınıf transformers.DPRReaderTokenizerFast

< >

( vocab: str | dict[str, int] | None = Nonedo_lower_case: bool = Trueunk_token: str = '[UNK]'sep_token: str = '[SEP]'pad_token: str = '[PAD]'cls_token: str = '[CLS]'mask_token: str = '[MASK]'tokenize_chinese_chars: bool = Truestrip_accents: bool | None = None**kwargs ) → dict[str, list[list[int]]]

Parametreler

  • questions (str veya list[str]) — Kodlanacak sorular. Birçok pasaj için tek bir soru belirleyebilirsiniz. Bu durumda, soru [questions] * n_passages şeklinde çoğaltılır. Aksi takdirde, titles veya texts içindeki kadar soru belirtmeniz gerekir.
  • titles (str veya list[str]) — Kodlanacak pasaj başlıkları. Birden fazla pasaj varsa bu, bir dize veya dize listesi olabilir.
  • texts (str veya list[str]) — Kodlanacak pasaj metinleri. Birden fazla pasaj varsa bu, bir dize veya dize listesi olabilir.
  • padding (bool, str veya PaddingStrategy, isteğe bağlı, varsayılan olarak False) — Dolgu işlemini etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:
    • True veya 'longest': Batch içindeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlandıysa dolgu yapılmaz).
    • 'max_length': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kadar doldurur.
    • False veya 'do_not_pad' (varsayılan): Dolgu yok (yani, farklı uzunluklarda diziler içeren bir parti çıktı olarak üretilebilir).
  • truncation (bool, str veya TruncationStrategy, isteğe bağlı, varsayılan olarak False) — Kesmeyi (truncation) etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:
    • True veya 'longest_first': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltır. Bu işlem, token bazında gerçekleşir; bir çift dizi (veya çift dizilerden oluşan bir batch) sağlandığında, çiftteki en uzun diziden bir token kaldırılır.
    • 'only_first': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltır. Bir çift dizi (veya çiftlerin bir partisi) sağlandığında, yalnızca çiftin ilk dizisini kısaltır.
    • 'only_second': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum girdi uzunluğuna kısaltır. Bu, bir çift dizi (veya çiftlerin bir partisi) sağlandığında yalnızca çiftin ikinci dizisini kısaltır.
    • False veya 'do_not_truncate' (varsayılan): Kesme yapılmaz (yani, modelin kabul edebileceği maksimum giriş boyutundan daha uzun dizi uzunluklarına sahip bir çıktı partisi üretilebilir).
  • max_length (int, isteğe bağlı) — Bir kesme/doldurma parametresi tarafından kullanılacak maksimum uzunluğu kontrol eder.

    Eğer ayarlanmazsa veya None olarak ayarlanırsa, kırpma/dolgu parametrelerinden biri tarafından bir maksimum uzunluk gerekiyorsa, bu, önceden tanımlanmış modelin maksimum uzunluğunu kullanır. Modelin belirli bir maksimum giriş uzunluğu yoksa (XLNet gibi), maksimum uzunluğa kırpma/dolgu devre dışı bırakılır.

  • return_tensors (str veya TensorType, isteğe bağlı) — Belirlenirse, Python tamsayı listesi yerine 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.
  • return_attention_mask (bool, isteğe bağlı) — Dikkat maskesinin döndürülüp döndürülmeyeceğini belirtir. Belirtilmezse, return_outputs özniteliğinde tanımlanan ilgili tokenizer varsayılanına göre dikkat maskesi döndürülür.

    Dikkat maskeleri nedir?

Dönüş değeri

dict[str, list[list[int]]]

Aşağıdaki anahtarlara sahip bir sözlük:

  • input_ids: Bir modele verilecek token kimliklerinin listesi.
  • attention_mask: Modelin hangi token'lara dikkat etmesi gerektiğini belirleyen indeks listesi.

HuggingFace'in tokenizers kütüphanesi tarafından desteklenen “fast” DPRReader tokenizer'ı oluşturur.

DPRReaderTokenizerFast, BertTokenizer ile neredeyse aynıdır ve uçtan uca tokenizasyonu çalıştırır: noktalama işareti bölme ve wordpiece. Farkı, DPRReader modeline beslenmek üzere birleştirilen üç giriş dizisine sahip olmasıdır: question, titles ve texts.

Parametreler ile ilgili kullanım örnekleri ve belgeler için üst sınıf BertTokenizer'a başvurun.

Giriş dizelerinin token kimliklerini ve .decode_best_spans fonksiyonuna verilecek diğer bilgileri içeren bir sözlük döndürür. Bu işlem, bir sorunun ve farklı pasajların (başlık ve metin) dizelerini, tokenizer ve sözlük kullanarak kimlik (tamsayı) dizilerine dönüştürür. Sonuçta elde edilen input_ids, (n_passages, sequence_length) boyutunda, aşağıdaki formata sahip bir matristir:

[CLS] <soru token kimlikleri> [SEP] <başlık kimlikleri> [SEP] <metin kimlikleri>

DPR'ye özgü çıktılar

sınıf transformers.models.dpr.modeling_dpr.DPRContextEncoderOutput

< >

( pooler_output: Tensorhidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

Parametreler

  • pooler_output (torch.Tensor, şekli (batch_size, embeddings_size)) — DPR kodlayıcısı, bağlam temsiline karşılık gelen pooler_output değerini üretir. Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, bir Linear katmanı tarafından daha fazla işlenir. Bu çıktı, soru gömme değerleriyle en yakın komşu sorguları için bağlamları gömmek amacıyla kullanılmalıdır.
  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_hidden_states=True geçildiğinde veya config.output_hidden_states=True) — şu türden bir demet: torch.Tensor (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) ve şekli (batch_size, sequence_length, hidden_size).

    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ı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet torch.Tensor (şeklinde, her katman için bir adet). Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır. (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.

DPRQuestionEncoder çıktılarının sınıfı.

sınıf transformers.models.dpr.modeling_dpr.DPRQuestionEncoderOutput

< >

( pooler_output: Tensorhidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

Parametreler

  • pooler_output (torch.Tensor, şekli (batch_size, embeddings_size)) — DPR kodlayıcısı, soru temsiline karşılık gelen pooler_output değerini üretir. Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, bir Linear katmanı tarafından daha fazla işlenir. Bu çıktı, bağlam gömme değerleriyle en yakın komşu sorguları için soruları gömmek amacıyla kullanılmalıdır.
  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_hidden_states=True geçildiğinde veya config.output_hidden_states=True) — şu türden bir demet: torch.Tensor (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) ve şekli (batch_size, sequence_length, hidden_size).

    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ı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet torch.Tensor (şeklinde, her katman için bir adet). Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır. (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.

DPRQuestionEncoder çıktılarının sınıfı.

sınıf transformers.DPRReaderOutput

< >

( start_logits: Tensorend_logits: typing.Optional[torch.Tensor] = Nonerelevance_logits: typing.Optional[torch.Tensor] = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

Parametreler

  • start_logits (torch.Tensor, şekli (n_passages, sequence_length)) — Her pasaj için span'ın başlangıç indeksine ait logitler.
  • end_logits (torch.Tensor, şekli (n_passages, sequence_length)) — Her pasaj için aralığın son indeksine ait logitler.
  • relevance_logits (torch.Tensor, şekli (n_passages, )) — DPRReader'ın QA sınıflandırıcısının çıktıları; soruyu yanıtlamak için her pasajın puanlarını, diğer tüm pasajlarla karşılaştırılarak verir.
  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_hidden_states=True geçildiğinde veya config.output_hidden_states=True) — şu türden bir demet: torch.Tensor (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) ve şekli (batch_size, sequence_length, hidden_size).

    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ı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet torch.Tensor (şeklinde, her katman için bir adet). Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır. (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.

DPRQuestionEncoder çıktılarının sınıfı.

DPRContextEncoder

sınıf transformers.DPRContextEncoder

< >

( config: DPRConfig )

Parametreler

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

Pooler çıktılarını bağlam temsilleri olarak üreten, çıplak DPRContextEncoder dönüştürücüsü.

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] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → DPRContextEncoderOutput or tuple(torch.Tensor)

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length)) — Sözlükteki girdi dizisi token'larının indeksleri. Ön eğitmeyle uyumlu olması için DPR girdi dizisi, [CLS] ve [SEP] token'ları kullanılarak aşağıdaki gibi biçimlendirilmelidir:

    (a) Dizi çiftleri için (örneğin başlık+metin çifti için):

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

  • token_type_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler [0, 1]:
    • 0, sentence A belirteci ile eşleşir,
    • 1, sentence B belirteçlerine karşılık gelir.

    Token type ID'leri nelerdir?

  • inputs_embeds (torch.Tensor, ş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 matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • 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

DPRContextEncoderOutput veya tuple(torch.Tensor)

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

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

  • pooler_output (torch.Tensor, şekli (batch_size, embeddings_size)) — DPR kodlayıcısı, bağlam temsiline karşılık gelen pooler_output değerini üretir. Sıralamanın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, bir Linear katmanı tarafından daha fazla işlenir. Bu çıktı, soru gömme değerleriyle en yakın komşu sorguları için bağlamları gömmek amacıyla kullanılmalıdır.

  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple[torch.Tensor, ...], isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — (batch_size, num_heads, sequence_length, sequence_length) biçiminde, her katman için bir adet içeren torch.Tensor demeti.

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

tokens:         [CLS] is this jack ##son ##ville ? [SEP] no it is not . [SEP]
token_type_ids:   0   0  0    0    0     0       0   0   1  1  1  1   1   1

(b) Tek diziler için (örneğin bir soru için):

tokens:         [CLS] the dog is hairy . [SEP]
token_type_ids:   0   0   0   0  0     0   0

DPR, mutlak konum gömme (embedding) kullanan bir modeldir; bu nedenle girdilerin soldan değil, sağdan doldurulması (padding) genellikle önerilir.

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

Girdi kimlikleri nelerdir?

Örnekler:

>>> from transformers import DPRContextEncoder, DPRContextEncoderTokenizer

>>> tokenizer = DPRContextEncoderTokenizer.from_pretrained("facebook/dpr-ctx_encoder-single-nq-base")
>>> model = DPRContextEncoder.from_pretrained("facebook/dpr-ctx_encoder-single-nq-base")
>>> input_ids = tokenizer("Hello, is my dog cute ?", return_tensors="pt")["input_ids"]
>>> embeddings = model(input_ids).pooler_output

DPRQuestionEncoder

sınıf transformers.DPRQuestionEncoder

< >

( config: DPRConfig )

Parametreler

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

Soru temsilleri olarak pooler çıktıları üreten, çıplak DPRQuestionEncoder dönüştürücüsü.

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] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → DPRQuestionEncoderOutput or tuple(torch.Tensor)

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length)) — Sözlükteki girdi dizisi token'larının indeksleri. Ön eğitmeyle uyumlu olması için DPR girdi dizisi, [CLS] ve [SEP] token'ları kullanılarak aşağıdaki gibi biçimlendirilmelidir:

    (a) Dizi çiftleri için (örneğin başlık+metin çifti için):

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

  • token_type_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler [0, 1]:
    • 0, sentence A belirteci ile eşleşir,
    • 1, sentence B belirteçlerine karşılık gelir.

    Token type ID'leri nelerdir?

  • inputs_embeds (torch.Tensor, ş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 matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • 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

DPRQuestionEncoderOutput veya tuple(torch.Tensor)

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

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

  • pooler_output (torch.Tensor, şekli (batch_size, embeddings_size)) — DPR kodlayıcısı, soru temsiline karşılık gelen pooler_output değerini üretir. Sıralamanın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, bir Linear katmanı tarafından daha fazla işlenir. Bu çıktı, bağlam gömme değerleriyle en yakın komşu sorguları için soruları gömmek amacıyla kullanılmalıdır.

  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple[torch.Tensor, ...], isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — (batch_size, num_heads, sequence_length, sequence_length) biçiminde, her katman için bir adet içeren torch.Tensor demeti.

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

tokens:         [CLS] is this jack ##son ##ville ? [SEP] no it is not . [SEP]
token_type_ids:   0   0  0    0    0     0       0   0   1  1  1  1   1   1

(b) Tek diziler için (örneğin bir soru için):

tokens:         [CLS] the dog is hairy . [SEP]
token_type_ids:   0   0   0   0  0     0   0

DPR, mutlak konum gömme (embedding) kullanan bir modeldir; bu nedenle girdilerin soldan değil, sağdan doldurulması (padding) genellikle önerilir.

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

Girdi kimlikleri nelerdir?

Örnekler:

>>> from transformers import DPRQuestionEncoder, DPRQuestionEncoderTokenizer

>>> tokenizer = DPRQuestionEncoderTokenizer.from_pretrained("facebook/dpr-question_encoder-single-nq-base")
>>> model = DPRQuestionEncoder.from_pretrained("facebook/dpr-question_encoder-single-nq-base")
>>> input_ids = tokenizer("Hello, is my dog cute ?", return_tensors="pt")["input_ids"]
>>> embeddings = model(input_ids).pooler_output

DPRReader

sınıf transformers.DPRReader

< >

( config: DPRConfig )

Parametreler

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

Span tahminleri üreten çıplak DPRReader transformer'ı.

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] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → DPRReaderOutput or tuple(torch.Tensor)

Parametreler

  • input_ids (tuple[torch.LongTensor] şeklinde (n_passages, sequence_length)) — Sözlükteki girdi dizisi belirteçlerinin indeksleri. Bir soru, 2) parça başlıkları ve 3) parça metinlerinden oluşan bir üçlü dizisi olmalıdır. Ön eğitime uyum sağlamak için DPR input_ids dizisi [CLS] ve [SEP] ile şu biçimde biçimlendirilmelidir:

    [CLS] <question token ids> [SEP] <titles ids> [SEP] <texts ids>

    DPR, mutlak konum gömme (embedding) kullanan bir modeldir; bu nedenle girdilerin soldan değil, sağdan doldurulması (padding) genellikle önerilir.

    DPRReaderTokenizer kullanılarak indeksler elde edilebilir. Daha fazla ayrıntı için bu sınıfın belgesine 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?

  • inputs_embeds (torch.Tensor, şekli (n_passages, 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.
  • 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

DPRReaderOutput veya tuple(torch.Tensor)

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

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

  • start_logits (torch.Tensor, şekli (n_passages, sequence_length)) — Her pasaj için span'ın başlangıç indeksine ait logits.

  • end_logits (torch.Tensor, şekli (n_passages, sequence_length)) — Her pasaj için aralığın son indeksine ait logitler.

  • relevance_logits (torch.Tensor, şekli (n_passages, )) — DPRReader'ın QA sınıflandırıcısının çıktıları; soruyu yanıtlamak için her pasajın puanını, diğer tüm pasajlarla karşılaştırarak verir.

  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple[torch.Tensor, ...], isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — (batch_size, num_heads, sequence_length, sequence_length) biçiminde, her katman için bir adet içeren torch.Tensor demeti.

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

Örnekler:

>>> from transformers import DPRReader, DPRReaderTokenizer

>>> tokenizer = DPRReaderTokenizer.from_pretrained("facebook/dpr-reader-single-nq-base")
>>> model = DPRReader.from_pretrained("facebook/dpr-reader-single-nq-base")
>>> encoded_inputs = tokenizer(
...     questions=["What is love ?"],
...     titles=["Haddaway"],
...     texts=["'What Is Love' is a song recorded by the artist Haddaway"],
...     return_tensors="pt",
... )
>>> outputs = model(**encoded_inputs)
>>> start_logits = outputs.start_logits
>>> end_logits = outputs.end_logits
>>> relevance_logits = outputs.relevance_logits
Update on GitHub