Transformers documentation

ESMC

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-08-19 tarihinde Hugging Face Transformers'a katkıda bulunulmuştur.

ESMC

Genel Bakış

ESMC (ESM Cambrian), BioHub tarafından yayımlanan bir protein dil modeli ailesidir. Amino asit dizileri üzerinde maskeli dil modelleme hedefiyle eğitilmiş çift yönlü bir Transformer kodlayıcısıdır. ESM-2 gibi, ESMC de aşağı akışlı protein modelleme görevleri için faydalı olan rezidü başına temsiller üretir.

ESMC, protein sınıflandırma veya token sınıflandırma görevlerinde ince ayar için uygundur. Ayrıca, katlama başlığına girdi olarak kullanılan temsilleri üreten ESMFold2 iskeleti olarak da kullanılır.

Önceden eğitilmiş denetim noktaları Hugging Face Hub'da mevcuttur:

Kullanım örneği

ESMC, otomatik sınıflara (AutoModel, AutoModelForMaskedLM, AutoModelForSequenceClassification, AutoModelForTokenClassification) kayıtlıdır.

Pipeline
AutoModel
import torch
from transformers import pipeline

extractor = pipeline(
    task="feature-extraction",
    model="biohub/ESMC-300M",
)
# Per-residue representations of shape (batch, sequence_length, hidden_size).
representations = extractor("MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQ", return_tensors="pt")

EsmcConfig

sınıf transformers.EsmcConfig

< >

( 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 = 64hidden_size: int = 2560intermediate_size: int = 6912num_hidden_layers: int = 80num_attention_heads: int = 40num_key_value_heads: int | None = Nonehidden_act: str = 'silu'max_position_embeddings: int = 2048initializer_range: float = 0.02pad_token_id: int | None = 1bos_token_id: int | None = 0eos_token_id: int | list[int] | None = 2tie_word_embeddings: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falseattention_dropout: int | float | None = 0.0mlp_bias: bool = Falsehead_dim: int | None = Nonemask_token_id: int | None = 32classifier_dropout: float | None = 0.1 )

Parametreler

  • vocab_size (int, opsiyonel, varsayılan 64) — Modelin sözlük boyutu. input_ids ile temsil edilebilecek farklı token sayısını belirler.
  • hidden_size (int, opsiyonel, varsayılan 2560) — Gizli temsillerin boyutu.
  • intermediate_size (int, isteğe bağlı, varsayılan 6912) — MLP temsillerinin boyutu.
  • num_hidden_layers (int, isteğe bağlı, varsayılan 80) — Transformer decoder'ındaki gizli katman sayısı.
  • num_attention_heads (int, opsiyonel, varsayılan 40) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.
  • num_key_value_heads (int, optional) — Grouped Query Attention'ı uygulamak için kullanılması gereken 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, opsiyonel, varsayılan silu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, “gelu”, “relu”, “silu” vb.
  • max_position_embeddings (int, opsiyonel, varsayılan 2048) — Bu modelin kullanılabileceği maksimum dizi uzunluğu.
  • initializer_range (float, opsiyonel, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
  • pad_token_id (int, opsiyonel, varsayılan 1) — Sözlükte dolgu için kullanılan token kimliği.
  • bos_token_id (int, opsiyonel, varsayılan 0) — Sözlükte akış başlangıcı için kullanılan token kimliği.
  • eos_token_id (Union[int, list[int]], opsiyonel, varsayılan 2) — Sözlükte akış sonu için kullanılan token kimliği.
  • tie_word_embeddings (bool, opsiyonel, varsayılan False) — Ağırlık gömme değerlerinin, modelin tied_weights_keys eşlemesine göre bağlanıp bağlanmayacağı.
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], opsiyonel) — RoPE gömmelemeleri için yapılandırma parametrelerini içeren sözlük. Sözlük, rope_theta için bir değer ve RoPE'yi daha uzun max_position_embeddings ile kullanmak istiyorsanız ölçekleme için kullanılan isteğe bağlı parametreleri içermelidir.
  • attention_bias (bool, opsiyonel, 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], opsiyonel, varsayılan 0.0) — Dikkat olasılıkları için dropout oranı.
  • mlp_bias (bool, opsiyonel, varsayılan False) — MLP katmanlarındaki up_proj, down_proj ve gate_proj katmanlarında bias kullanılıp kullanılmayacağı.
  • head_dim (int, opsiyonel) — Dikkat başı boyutu. None ise, varsayılan olarak hidden_size // num_attention_heads değerini alır.
  • mask_token_id (int, opsiyonel, varsayılan 32) — Sözlükte mask jetonunun indeksi ("<mask>"), maskeli dil modellemesi için kullanılır.
  • classifier_dropout (float, opsiyonel, varsayılan 0.1) — Sınıflandırma katmanı için dropout oranı.

Bu, bir EsmcModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Esmc modelinin örneklenmesi ve model mimarisinin tanımlanması için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, biohub/ESMC-6B ile benzer bir yapılandırma elde edilir.

Configuration 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 EsmcConfig, EsmcModel

>>> # Initializing an ESMC biohub/ESMC-6B style configuration
>>> configuration = EsmcConfig()

>>> # Initializing a model (with random weights) from the configuration
>>> model = EsmcModel(configuration)

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

EsmcTokenizer

sınıf transformers.EsmcTokenizer

< >

( unk_token = '<unk>'cls_token = '<cls>'pad_token = '<pad>'mask_token = '<mask>'eos_token = '<eos>'bos_token = Nonechain_break_token = '|'extra_special_tokens = None**kwargs )

Parametreler

  • unk_token (str, isteğe bağlı, varsayılan ””) — Bilinmeyen token.
  • cls_token (str, isteğe bağlı, varsayılan ””) — Sınıflandırma belirteci (her dizinin başına eklenir).
  • pad_token (str, isteğe bağlı, varsayılan ””) — Doldurma belirteci.
  • mask_token (str, opsiyonel, varsayılan ””) — Maskeli dil modellemesinde kullanılan mask token'ı.
  • eos_token (str, opsiyonel, varsayılan ””) — Dizi sonu belirteci (her dizinin sonuna eklenir).
  • bos_token (str, opsiyonel, varsayılan ””) — Dizinin başlangıç tokeni (her dizinin başına eklenir). Ayarlanmadığında, cls_token kullanılır.
  • chain_break_token (str, opsiyonel, varsayılan ”|”) — Çoklu zincirli protein girdilerinde zincirler arasına eklenen token. Model-özel bir özel token olarak kaydedildiğinden chain_break_token / chain_break_token_id olarak sunulur.
  • extra_special_tokens (list[str], opsiyonel) — Kaydedilen yapılandırmadan geri yüklenen, tokenizer'a kaydedilecek ek özel jetonlar.

Bir ESMC tokenizer'ı oluşturun.

Bu tokenizer, HuggingFace tokenizers kütüphanesi tarafından desteklenen karakter düzeyinde bir tokenizer'dır. Her diziyi <cls> ve <eos> token'larıyla sarmalar ve çoklu zincirli girdiler için | zincir kırma token'ını destekler.

Örnekler:

>>> from transformers import EsmcTokenizer

>>> tokenizer = EsmcTokenizer()
>>> tokenizer("ACDEFGHIKLMNPQRSTVWY")["input_ids"]
[0, 5, 23, 13, 9, 18, 6, 21, 12, 15, 4, 20, 17, 14, 16, 10, 8, 11, 7, 22, 19, 2]

EsmcModel

sınıf transformers.EsmcModel

< >

( config: EsmcConfig )

Parametreler

  • config (EsmcConfig) — 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 olmadan ham hidden-state çıktısı üreten çıplak Esmc 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] = Nonesequence_id: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → [~modeling_outputs.BaseModelOutput] or tuple(torch.Tensor)

Parametreler

  • input_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi tokenlarının indeksleri. Varsayılan olarak dolgu (padding) yoksayılır.

    Dizinler [AutoTokenizer] kullanılarak elde edilebilir. Ayrıntılar için [PreTrainedTokenizer.encode] ve [PreTrainedTokenizer.call]'a 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 yapılmamasını sağlayan maske. [0, 1] aralığında seçilen maske değerleri: maskelenmemiş tokenlar için 1, maskelenmiş tokenlar için 0. Dikkat maskeleri nelerdir? [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ı) — Sıradaki her token'ın konumu, RoPE tarafından kullanılır. Varsayılan değer arange(sequence_length).

    ESMC konumları, tüm girdi üzerinde mutlak değerlere sahiptir ve çok zincirli bir girdide zincir sınırlarını geçerek devam eder. Zincir yapısı, dikkati maskeleyen sequence_id tarafından ayrı olarak taşınır; bu nedenle, kütüphanenin başka yerlerinde kullanılan paketlenmiş dizi biçiminin aksine, bunlar 0'dan yeniden başlayan zincir başına konum kimlikleri değildir ve zincir yapısı bunlardan bilinçli olarak çıkarılmaz.

  • sequence_id (torch.Tensor, şekli (batch_size, sequence_length), isteğe bağlı) — Zincir farkındalıklı dikkat maskelendirmesi için tamsayı zincir kimliği tensörü. Aynı negatif olmayan tamsayı değere sahip tokenlar birbirine dikkat edebilir; farklı değerlere sahip tokenlar edemez (zincirler arası maskelendirme). Dolgu konumları -1 olarak ayarlanmalı ve girdiler sağdan doldurulmuş olmalıdır (RoPE, 0'dan başlayan mutlak konumları kullanır). Sağlandığında, attention_mask yok sayılır. sequence_id geçirildiğinde özel bir dikkat maskesi oluşturulur; bunun için torch>=2.6 gerekir. Çoklu zincirli girdiler ayrıca flash olmayan bir attn_implementation ('sdpa' / 'eager' / 'flex_attention') gerektirir; flash attention yalnızca tek zincirli durumu destekler.

Dönüş değeri

[~modeling_outputs.BaseModelOutput] veya tuple(torch.Tensor)

Bir [~modeling_outputs.BaseModelOutput] veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya ([EsmcConfig]) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[EsmcModel] forward metodu, call özel metodunu geçersiz kılar.

İleri geçiş (forward pass) tarifi bu fonksiyon içinde tanımlanmakla birlikte, sonrasında bu fonksiyon yerine [Module] örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumlu iken ikincisi bu adımları 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), opsiyonel, 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), opsiyonel, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (her katman için bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

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

Örnekler:

>>> from transformers import AutoTokenizer, EsmcModel

>>> model = EsmcModel.from_pretrained("biohub/ESMC-300M")
>>> tokenizer = AutoTokenizer.from_pretrained("biohub/ESMC-300M")
>>> inputs = tokenizer(["MLKNVQVQLV"], return_tensors="pt")
>>> outputs = model(**inputs)
>>> outputs.last_hidden_state.shape
torch.Size([1, 12, 960])

EsmcForMaskedLM

sınıf transformers.EsmcForMaskedLM

< >

( config: EsmcConfig )

Parametreler

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

Üstünde language modeling başlığı bulunan Esmc 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.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonesequence_id: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → [~modeling_outputs.MaskedLMOutput] or tuple(torch.Tensor)

Parametreler

  • input_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi tokenlarının indeksleri. Varsayılan olarak dolgu (padding) yoksayılır.

    Dizinler [AutoTokenizer] kullanılarak elde edilebilir. Ayrıntılar için [PreTrainedTokenizer.encode] ve [PreTrainedTokenizer.call]'a 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 yapılmamasını sağlayan maske. [0, 1] aralığında seçilen maske değerleri: maskelenmemiş tokenlar için 1, maskelenmiş tokenlar için 0. Dikkat maskeleri nelerdir? [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 dizisindeki her token'ın konum gömme (position embedding) içindeki konum endeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

  • sequence_id (torch.Tensor, şekli (batch_size, sequence_length), isteğe bağlı) — Zincir farkındalıklı dikkat maskelendirmesi için kodlayıcıya iletilen tamsayı zincir kimliği tensörü. Kodlama için EsmcModel.forward() yöntemine bakın.
  • labels (torch.LongTensor, şekli (batch_size, sequence_length), opsiyonel) — Maskeli dil modelleme kaybı için etiketler. -100 etiketine sahip konumlar yok sayılır. Diğer konumlar [0, config.vocab_size) aralığında olmalıdır.

Dönüş değeri

[~modeling_outputs.MaskedLMOutput] veya tuple(torch.Tensor)

A [~modeling_outputs.MaskedLMOutput] veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise) yapılandırma ([EsmcConfig]) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[EsmcForMaskedLM] sınıfının forward metodu, call özel metodunu geçersiz kılar.

İleri geçiş (forward pass) tarifi bu fonksiyon içinde tanımlanmakla birlikte, sonrasında bu fonksiyon yerine [Module] örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumlu iken ikincisi bu adımları sessizce yok sayar.

  • loss (torch.Tensor, şekli (1,), opsiyonel, 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), opsiyonel, 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), opsiyonel, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (her katman için bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

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

Örnekler:

>>> from transformers import AutoTokenizer, EsmcForMaskedLM
>>> import torch

>>> model = EsmcForMaskedLM.from_pretrained("biohub/ESMC-300M")
>>> tokenizer = AutoTokenizer.from_pretrained("biohub/ESMC-300M")
>>> inputs = tokenizer(["MLKNVQ<mask>LV"], return_tensors="pt")
>>> outputs = model(**inputs)
>>> outputs.logits.shape
torch.Size([1, 11, 64])

EsmcForSequenceClassification

sınıf transformers.EsmcForSequenceClassification

< >

( config: EsmcConfig )

Parametreler

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

Üzerinde bir dizi sınıflandırma/geri dönüşüm başlığı (toplanmış çıktının üzerinde doğrusal bir katman) bulunan ESMC Model transformer'ı, örneğin GLUE görevleri için.

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.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = 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.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?

  • 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ırmaya (EsmcConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

EsmcForSequenceClassification 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, EsmcForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("biohub/ESMC-6B")
>>> model = EsmcForSequenceClassification.from_pretrained("biohub/ESMC-6B")

>>> 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 = EsmcForSequenceClassification.from_pretrained("biohub/ESMC-6B", 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, EsmcForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("biohub/ESMC-6B")
>>> model = EsmcForSequenceClassification.from_pretrained("biohub/ESMC-6B", 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 = EsmcForSequenceClassification.from_pretrained(
...     "biohub/ESMC-6B", 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

EsmcForTokenClassification

sınıf transformers.EsmcForTokenClassification

< >

( 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 = Nonelabels: torch.LongTensor | None = Noneuse_cache: bool | None = None**kwargs: Unpack[TransformersKwargs] ) → TokenClassifierOutput

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.
  • 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.
  • use_cache (bool, isteğe bağlı) — True olarak ayarlanırsa, past_key_values anahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz. past_key_values).

Dönüş değeri

TokenClassifierOutput

GenericForTokenClassification 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