Transformers documentation

UltraBERT

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, 2026-10-10 tarihinde HF papers'ta yayımlandı ve 2026-10-14 tarihinde Hugging Face Transformers'a katkıda bulunuldu.

UltraBERT

Genel Bakış

UltraBERT, Jungwoo Park, Taewhoo Lee ve Jaewoo Kang tarafından UltraBERT: Beyond the Limit of BERT Pre-Training makalesinde tanıtılmıştır. Sınıflandırma ve arama görevleri için maskeleme oranları, budama ve damıtma kombinasyonuyla eğitilmiş çift yönlü metin kodlayıcıları ailesidir.

Yayınlanan kodlayıcılar, 32.768 token'a kadar olan dizileri destekler. Döner konum gömme (RoPE), RMSNorm, SwiGLU ileri besleme katmanları ve sırayla yerel ile küresel dikkat kullanırlar. Her üçüncü katman küresel dikkat kullanır. Diğer katmanlar, geçerli token'a ve her iki tarafta en fazla 128 token'a dikkat eder. Yerel katmanlar için RoPE tabanı 10.000, küresel katmanlar için ise 2.560.000'dür.

Kontrol NoktasıKatmanlarGizli boyutDikkat kafalarıKullan
UltraBERT-150M247686Maskeli dil modellemesi ve aşağı akış ince ayarı
UltraBERT-380M241,0248Maskeli dil modellemesi ve aşağı akış ince ayarı
UltraBERT-Embed-150M247686Metin gömceleri

Maskeli dil modelleme kontrol noktaları, düşük maskeleme oranıyla eğitilmiş tahmin başlığını içerir. Çıkış ağırlıkları, giriş gömme (embedding) katmanından bağımsızdır. Sözcük bölücü (tokenizer), 49.152 token'lık SmolLM2 sözlüğünü kullanır.

Kullanım örnekleri

Maskeli dil modellemesi

Maskelenmiş bir token tahmin etmek için Pipeline veya AutoModelForMaskedLM kullanın. Mask token'ı <|mask|>'dir.

Pipeline
AutoModel
from transformers import pipeline

fill_mask = pipeline(
    task="fill-mask",
    model="dmis-lab/UltraBERT-150M",
    device_map="auto",
)
print(fill_mask("The capital of France is <|mask|>."))
# [
#     {'score': 0.9612365961074829, 'token': 7042, 'token_str': ' Paris',
#      'sequence': 'The capital of France is Paris.'},
#     {'score': 0.00930546224117279, 'token': 38034, 'token_str': ' Lyon',
#      'sequence': 'The capital of France is Lyon.'},
#     {'score': 0.008486305363476276, 'token': 44558, 'token_str': ' Nice',
#      'sequence': 'The capital of France is Nice.'},
#     {'score': 0.0034405170008540154, 'token': 37628, 'token_str': ' Versailles',
#      'sequence': 'The capital of France is Versailles.'},
#     {'score': 0.0014691735850647092, 'token': 4649, 'token_str': ' France',
#      'sequence': 'The capital of France is France.'}
# ]

Metin gömceleri

UltraBERT-Embed-150M, metin gömme (embedding) olarak ilk token'ın gizli durumunu (hidden state) kullanır. Arama (retrieval) için görev talimatını sorguların başına ekleyin ve belgeleri talimatsız kodlayın. İlk token'ın konumunu korumak için sağ dolgu (right padding) kullanın. Diğer görevlere yönelik talimatlar için model kartına bakın.

Aşağıdaki örnekler, ilk token'ın gizli durumunu seçer ve gömme vektörlerini normalize eder; böylece nokta çarpımları kosinüs benzerliği verir.

Pipeline
AutoModel
import torch
import torch.nn.functional as F
from transformers import pipeline

extractor = pipeline(
    task="feature-extraction",
    model="dmis-lab/UltraBERT-Embed-150M",
    device_map="auto",
)

texts = [
    "Instruct: Given a question, retrieve passages that answer the question\nQuery: What is the capital of France?",
    "Paris is the capital of France.",
    "Berlin is the capital of Germany.",
]
features = extractor(texts, return_tensors=True, truncation=True, tokenize_kwargs={"max_length": 32768})
embeddings = F.normalize(torch.cat([output[:, 0] for output in features]), p=2, dim=-1)

print(embeddings[:1] @ embeddings[1:].T)
# tensor([[0.6527, 0.3981]])

UltrabertConfig

sınıf transformers.UltrabertConfig

< >

( 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 = 32000hidden_size: int = 4096intermediate_size: int = 11008num_hidden_layers: int = 32num_attention_heads: int = 32num_key_value_heads: int | None = Nonehidden_act: str = 'silu'max_position_embeddings: int = 32768initializer_range: float = 0.02rms_norm_eps: float = 1e-06use_cache: bool = Falsepad_token_id: int | None = 0bos_token_id: int | None = 0eos_token_id: int | list[int] | None = 0tie_word_embeddings: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falseattention_dropout: int | float = 0.0mlp_bias: bool = Falsehead_dim: int | None = Noneclassifier_pooling: typing.Literal['cls', 'mean'] = 'cls'sliding_window: int = 128layer_types: list[str] | None = Noneprediction_head_size: int = 768classifier_dropout: float = 0.0 )

Parametreler

  • vocab_size (int, isteğe bağlı, varsayılan 32000) — 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 4096) — Gizli temsillerin boyutu.
  • intermediate_size (int, isteğe bağlı, varsayılan 11008) — MLP temsillerinin boyutu.
  • num_hidden_layers (int, isteğe bağlı, varsayılan 32) — Transformer çözücüdeki gizli katman sayısı.
  • num_attention_heads (int, isteğe bağlı, varsayılan 32) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.
  • num_key_value_heads (int, isteğe bağlı) — Bu, Grouped Query Attention uygulamasında kullanılacak key_value başlarının sayısıdır. num_key_value_heads=num_attention_heads ise model Multi Head Attention (MHA) kullanır, num_key_value_heads=1 ise model Multi Query Attention (MQA) kullanır, aksi halde GQA kullanılır. Çok başlı bir checkpoint'i GQA checkpoint'ine dönüştürürken, her grup key ve value başı, o gruptaki tüm orijinal başların ortalama havuzlanması (meanpooling) ile oluşturulmalıdır. Daha fazla ayrıntı için bu makaleye göz atın. Belirtilmezse, varsayılan olarak num_attention_heads kullanılır.
  • hidden_act (str, isteğe bağlı, varsayılan silu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, "gelu", "relu", "silu" vb.
  • max_position_embeddings (int, isteğe bağlı, varsayılan 32768) — Bu modelin kullanılabileceği en uzun dizi uzunluğu.
  • initializer_range (float, isteğe bağlı, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
  • rms_norm_eps (float, isteğe bağlı, varsayılan 1e-06) — rms normalizasyon katmanları tarafından kullanılan epsilon.
  • use_cache (bool, isteğe bağlı, varsayılan False) — Modelin son anahtar/değer dikkatlerini döndürüp döndürmeyeceğini belirtir (tüm modellerde kullanılmaz). Yalnızca config.is_decoder=True olduğunda veya model yalnızca decoder tabanlı üretken bir model olduğunda geçerlidir.
  • 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ı, varsayılan 0) — 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ı, varsayılan 0) — Sözlükte akış sonu için kullanılan token kimliği.
  • tie_word_embeddings (bool, isteğe bağlı, varsayılan False) — Modelin tied_weights_keys eşlemesine göre ağırlık gömme bağlamalarının yapılıp yapılmayacağı.
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], isteğe bağlı) — RoPE gömme yapılandırma parametrelerini içeren sözlük. Sözlük, rope_theta için bir değer ve daha uzun max_position_embeddings ile RoPE kullanmak istiyorsanız ölçekleme için kullanılan isteğe bağlı parametreleri içermelidir.
  • attention_bias (bool, isteğe bağlı, varsayılan False) — Öz-dikkat sırasında sorgu, anahtar, değer ve çıktı projeksiyon katmanlarında önyargı (bias) kullanılıp kullanılmayacağı.
  • attention_dropout (Union[int, float], isteğe bağlı, varsayılan 0.0) — Dikkat olasılıkları için dropout oranı.
  • mlp_bias (bool, isteğe bağlı, varsayılan False) — MLP katmanlarındaki up_proj, down_proj ve gate_proj katmanlarında bias kullanılıp kullanılmayacağı.
  • head_dim (int, isteğe bağlı) — Dikkat başı boyutu. None ise, varsayılan olarak hidden_size // num_attention_heads değerini alır.
  • classifier_pooling (str, isteğe bağlı, varsayılan "cls") — Dizi sınıflandırma için havuzlama yöntemi. "cls" veya "mean".
  • sliding_window (int, isteğe bağlı, varsayılan 128) — Kayan pencere dikkat katmanlarında her tokenın her iki yanındaki kapsayıcı dikkat yarıçapı.
  • layer_types (list[str], isteğe bağlı) — Her katman indeksini ilgili katman türüyle açıkça eşleyen bir liste. Sağlanmazsa, config değerlerine göre otomatik olarak oluşturulur.
  • prediction_head_size (int, isteğe bağlı, varsayılan 768) — İki katmanlı maskeli dil modelleme tahmin başlığının ara boyutu.
  • classifier_dropout (float, isteğe bağlı, varsayılan 0.0) — Sınıflandırıcı için dropout oranı.

Bu, bir UltrabertModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Ultrabert modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneği oluşturmak, dmis-lab/UltraBERT-150M ile benzer bir yapılandırmaya yol açar.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

UltrabertModel

sınıf transformers.UltrabertModel

< >

( config: UltrabertConfig )

Parametreler

  • config (UltrabertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Üzerinde herhangi bir özel head bulunmayan, ham hidden-state çıktısı üreten çıplak Ultrabert Model.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

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

Parametreler

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

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

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

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

    Pozisyon kimlikleri nedir?

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

Dönüş değeri

BaseModelOutput veya tuple(torch.Tensor)

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

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

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

UltrabertForMaskedLM

sınıf transformers.UltrabertForMaskedLM

< >

( config: UltrabertConfig )

Parametreler

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

Maskeli dil modellemesi için üstünde bir decoder başlığı bulunan Ultrabert Model.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

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

Parametreler

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

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

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

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

    Pozisyon kimlikleri nedir?

  • 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.
  • labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler [-100, 0, ..., config.vocab_size] aralığında olmalıdır (bkz. input_ids docstring). Endeksleri -100 olarak ayarlanan jetonlar yok sayılır (maskelenir), kayıp yalnızca etiketleri [0, ..., config.vocab_size] aralığında olan jetonlar için hesaplanır.

Dönüş değeri

MaskedLMOutput veya tuple(torch.Tensor)

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

UltrabertForMaskedLM forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Maskeli dil modelleme (MLM) kaybı.

  • logits (torch.Tensor, şekli (batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).

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

Örnek:

>>> from transformers import AutoTokenizer, UltrabertForMaskedLM
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("dmis-lab/UltraBERT-150M")
>>> model = UltrabertForMaskedLM.from_pretrained("dmis-lab/UltraBERT-150M")

>>> inputs = tokenizer("The capital of France is <mask>.", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> # retrieve index of <mask>
>>> mask_token_index = (inputs.input_ids == tokenizer.mask_token_id)[0].nonzero(as_tuple=True)[0]

>>> predicted_token_id = logits[0, mask_token_index].argmax(axis=-1)
>>> tokenizer.decode(predicted_token_id)
...

>>> labels = tokenizer("The capital of France is Paris.", return_tensors="pt")["input_ids"]
>>> # mask labels of non-<mask> tokens
>>> labels = torch.where(inputs.input_ids == tokenizer.mask_token_id, labels, -100)

>>> outputs = model(**inputs, labels=labels)
>>> round(outputs.loss.item(), 2)
...

UltrabertForSequenceClassification

sınıf transformers.UltrabertForSequenceClassification

< >

( config: UltrabertConfig )

Parametreler

  • config (UltrabertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Üzerinde havuzlama (pooling) işlemini gerçekleştiren bir dizi sınıflandırma başlığına sahip Ultrabert 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

< >

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

Parametreler

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

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

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

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

    Pozisyon kimlikleri nedir?

  • 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.
  • labels (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Sınıflandırma/geri dönüş kaybını hesaplamak için etiketler. Endeksler [0, ..., config.num_labels - 1] aralığında olmalıdır. config.num_labels == 1 ise bir geri dönüş kaybı (Ortalama Kare kaybı) hesaplanır, config.num_labels > 1 ise bir sınıflandırma kaybı (Çapraz Entropi) hesaplanır.

Dönüş değeri

SequenceClassifierOutput veya tuple(torch.Tensor)

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

UltrabertForSequenceClassification forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Sınıflandırma (config.num_labels==1 ise regresyon) kaybı.

  • logits (torch.Tensor, şekli (batch_size, config.num_labels)) — Sınıflandırma (veya config.num_labels==1 ise regresyon) puanları (SoftMax öncesi).

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

Tek etiketli sınıflandırma örneği:

>>> import torch
>>> from transformers import AutoTokenizer, UltrabertForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("dmis-lab/UltraBERT-150M")
>>> model = UltrabertForSequenceClassification.from_pretrained("dmis-lab/UltraBERT-150M")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_id = logits.argmax().item()
>>> model.config.id2label[predicted_class_id]
...

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = UltrabertForSequenceClassification.from_pretrained("dmis-lab/UltraBERT-150M", num_labels=num_labels)

>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...

Çok etiketli sınıflandırma örneği:

>>> import torch
>>> from transformers import AutoTokenizer, UltrabertForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("dmis-lab/UltraBERT-150M")
>>> model = UltrabertForSequenceClassification.from_pretrained("dmis-lab/UltraBERT-150M", problem_type="multi_label_classification")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_ids = torch.arange(0, logits.shape[-1])[torch.sigmoid(logits).squeeze(dim=0) > 0.5]

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = UltrabertForSequenceClassification.from_pretrained(
...     "dmis-lab/UltraBERT-150M", num_labels=num_labels, problem_type="multi_label_classification"
... )

>>> labels = torch.sum(
...     torch.nn.functional.one_hot(predicted_class_ids[None, :].clone(), num_classes=num_labels), dim=1
... ).to(torch.float)
>>> loss = model(**inputs, labels=labels).loss

UltrabertForTokenClassification

sınıf transformers.UltrabertForTokenClassification

< >

( config: UltrabertConfig )

Parametreler

  • config (UltrabertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Üzerinde adlandırılmış varlık tanıma (NER) görevleri için örneğin bir token sınıflandırma başlığı bulunan Ultrabert 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

< >

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

Parametreler

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

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

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

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

    Pozisyon kimlikleri nedir?

  • 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.
  • labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Token sınıflandırma kaybını hesaplamak için etiketler. Endeksler [0, ..., config.num_labels - 1] aralığında olmalıdır.

Dönüş değeri

TokenClassifierOutput veya tuple(torch.Tensor)

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

UltrabertForTokenClassification forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Sınıflandırma kaybı.

  • logits (torch.Tensor, şekli (batch_size, sequence_length, config.num_labels)) — Sınıflandırma puanları (SoftMax öncesi).

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

Örnek:

>>> from transformers import AutoTokenizer, UltrabertForTokenClassification
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("dmis-lab/UltraBERT-150M")
>>> model = UltrabertForTokenClassification.from_pretrained("dmis-lab/UltraBERT-150M")

>>> inputs = tokenizer(
...     "HuggingFace is a company based in Paris and New York", add_special_tokens=False, return_tensors="pt"
... )

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_token_class_ids = logits.argmax(-1)

>>> # Note that tokens are classified rather then input words which means that
>>> # there might be more predicted token classes than words.
>>> # Multiple token classes might account for the same word
>>> predicted_tokens_classes = [model.config.id2label[t.item()] for t in predicted_token_class_ids[0]]
>>> predicted_tokens_classes
...

>>> labels = predicted_token_class_ids
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...

UltrabertForQuestionAnswering

sınıf transformers.UltrabertForQuestionAnswering

< >

( config )

forward

< >

( input_ids: torch.LongTensor | None = Noneattention_mask: torch.Tensor | None = Noneposition_ids: torch.LongTensor | None = Nonepast_key_values: Cache | None = Noneinputs_embeds: torch.Tensor | None = Nonestart_positions: torch.LongTensor | None = Noneend_positions: torch.LongTensor | None = None**kwargs: Unpack[TransformersKwargs] ) → QuestionAnsweringModelOutput

Parametreler

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

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

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • position_ids (torch.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].

    Pozisyon kimlikleri nedir?

  • past_key_values (Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genellikle past_key_values değerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülen use_cache=True veya config.use_cache=True.

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

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

    past_key_values kullanılıyorsa, kullanıcının tüm input_ids (şekli (batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemiş input_ids (şekli (batch_size, unprocessed_length)) girmesi beklenir.

  • 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.
  • start_positions (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Token sınıflandırma kaybını hesaplamak için etiketli aralığın başlangıç konumunun (indeksinin) etiketleri. Konumlar, dizinin uzunluğuna (sequence_length) göre sınırlandırılır. Dizi dışındaki konumlar, kayıp hesabında dikkate alınmaz.
  • end_positions (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Token sınıflandırma kaybını hesaplamak için etiketli aralığın sonundaki konumun (indeksin) etiketleri. Konumlar, dizinin uzunluğuna (sequence_length) göre sınırlandırılır. Dizi dışındaki konumlar, kaybın hesaplanmasında dikkate alınmaz.

Dönüş değeri

QuestionAnsweringModelOutput

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

Update on GitHub