Transformers documentation
RoCBert
Bu model, 2022-11-08 tarihinde Hugging Face Transformers'a katkıda bulunulmuştur.
RoCBert
RoCBert, yazım hataları ve eş anlamlılar gibi adversarial saldırılara karşı tasarlanmış, önceden eğitilmiş bir Çin BERT modelidir. Normal ve adversarial metin örneklerini hizalamak için kontrastif öğrenme hedefiyle önceden eğitilmiştir. Örnekler, Çin dilinin farklı semantik, fonetik ve görsel özelliklerini içerir. Bu durum, RoCBert'in manipülasyona karşı daha dayanıklı olmasını sağlar.
Tüm orijinal RoCBert kontrol noktalarını weiweishi profilinde bulabilirsiniz.
Bu model weiweishi tarafından katkıda bulunmuştur.
Farklı Çin dili görevlerine RoCBert'i nasıl uygulayacağınızla ilgili daha fazla örnek için sağ kenar çubuğundaki RoCBert modellerine tıklayın.
Aşağıdaki örnek, Pipeline, AutoModel ve komut satırı aracılığıyla [MASK] token'ını nasıl tahmin edeceğinizi göstermektedir.
from transformers import pipeline
pipeline = pipeline(
task="fill-mask",
model="weiweishi/roc-bert-base-zh",
device=0,
)
pipeline("這家餐廳的拉麵是我[MASK]過的最好的拉麵之")import torch
from transformers import AutoModelForMaskedLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(
"weiweishi/roc-bert-base-zh",
)
model = AutoModelForMaskedLM.from_pretrained(
"weiweishi/roc-bert-base-zh",
device_map="auto",
)
inputs = tokenizer("這家餐廳的拉麵是我[MASK]過的最好的拉麵之", return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model(**inputs)
predictions = outputs.logits
masked_index = torch.where(inputs['input_ids'] == tokenizer.mask_token_id)[1]
predicted_token_id = predictions[0, masked_index].argmax(dim=-1)
predicted_token = tokenizer.decode(predicted_token_id)
print(f"The predicted token is: {predicted_token}")RoCBertConfig
sınıf transformers.RoCBertConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 30522hidden_size: int = 768num_hidden_layers: int = 12num_attention_heads: int = 12intermediate_size: int = 3072hidden_act: str = 'gelu'hidden_dropout_prob: float | int = 0.1attention_probs_dropout_prob: float | int = 0.1max_position_embeddings: int = 512type_vocab_size: int = 2initializer_range: float = 0.02layer_norm_eps: float = 1e-12use_cache: bool = Truepad_token_id: int | None = 0classifier_dropout: float | int | None = Noneenable_pronunciation: bool = Trueenable_shape: bool = Truepronunciation_embed_dim: int = 768pronunciation_vocab_size: int = 910shape_embed_dim: int = 512shape_vocab_size: int = 24858concat_input: bool = Trueis_decoder: bool = Falseadd_cross_attention: bool = Falsetie_word_embeddings: bool = True )
Parametreler
- vocab_size (
int, isteğe bağlı, varsayılan30522) — Modelin sözlük boyutu.input_idstarafından temsil edilebilecek farklı token sayısını tanımlar. - hidden_size (
int, isteğe bağlı, varsayılan768) — Gizli temsillerin boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan12) — Transformer çözücüdeki gizli katman sayısı. - num_attention_heads (
int, isteğe bağlı, varsayılan12) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - intermediate_size (
int, isteğe bağlı, varsayılan3072) — MLP temsillerinin boyutu. - hidden_act (
str, isteğe bağlı, varsayılangelu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin,"gelu","relu","silu"vb. - hidden_dropout_prob (
Union[float, int], isteğe bağlı, varsayılan0.1) — Gömme, kodlayıcı ve havuzlayıcıdaki tüm tam bağlı katmanlar için dropout olasılığı. - attention_probs_dropout_prob (
Union[float, int], isteğe bağlı, varsayılan0.1) — Dikkat olasılıkları için dropout oranı. - max_position_embeddings (
int, isteğe bağlı, varsayılan512) — Bu modelin kullanılabileceği en uzun dizi uzunluğu. - type_vocab_size (
int, isteğe bağlı, varsayılan2) —token_type_idsiçin sözlük boyutu. - initializer_range (
float, isteğe bağlı, varsayılan0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması. - layer_norm_eps (
float, isteğe bağlı, varsayılan1e-12) — Katman normalizasyon katmanları tarafından kullanılan epsilon. - use_cache (
bool, isteğe bağlı, varsayılanTrue) — Modelin son anahtar/değer dikkatlerini (tüm modellerde kullanılmaz) döndürüp döndürmeyeceği. Yalnızcaconfig.is_decoder=Trueolduğunda veya model yalnızca çözücü tabanlı üretken bir model olduğunda geçerlidir. - pad_token_id (
int, isteğe bağlı, varsayılan0) — Sözlükte dolgu için kullanılan token kimliği. - classifier_dropout (
Union[float, int], isteğe bağlı) — Sınıflandırıcı için dropout oranı. - enable_pronunciation (
bool, isteğe bağlı, varsayılanTrue) — Modelin eğitim sırasında telaffuz gömme (embedding) kullanıp kullanmadığı. - enable_shape (
bool, isteğe bağlı, varsayılanTrue) — Modelin eğitim sırasında shape embed kullanıp kullanmadığı. - pronunciation_embed_dim (
int, isteğe bağlı, varsayılan 768) — pronunciation_embed boyutu. - pronunciation_vocab_size (
int, isteğe bağlı, varsayılan 910) — RoCBert modelinin telaffuz sözlüğü boyutu. RoCBertModel çağrılırken geçirileninput_pronunciation_idsile temsil edilebilecek farklı token sayısını tanımlar. - shape_embed_dim (
int, isteğe bağlı, varsayılan 512) — shape_embed boyutu. - shape_vocab_size (
int, isteğe bağlı, varsayılan 24858) — RoCBert modelinin Shape Vocabulary boyutu. RoCBertModel çağrılırken geçirileninput_shape_idsile temsil edilebilecek farklı token sayısını tanımlar. - concat_input (
bool, isteğe bağlı, varsayılanTrue) — shape_embed, pronunciation_embed ve word_embed birleştirme yöntemini tanımlar. Değer true ise, output_embed = torch.cat((word_embed, shape_embed, pronunciation_embed), -1), aksi halde output_embed = (word_embed + shape_embed + pronunciation_embed) / 3 - is_decoder (
bool, isteğe bağlı, varsayılanFalse) — Modelin bir decoder olarak kullanılıp kullanılmadığı.Falseise model bir encoder olarak kullanılır. - add_cross_attention (
bool, isteğe bağlı, varsayılanFalse) — Modelde çapraz dikkat katmanlarının eklenip eklenmeyeceğini belirtir. - tie_word_embeddings (
bool, isteğe bağlı, varsayılanTrue) — Modelintied_weights_keyseşlemesine göre ağırlık gömme bağlamalarının yapılıp yapılmayacağı.
Bu, bir RoCBertModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Roc Bert modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, weiweishi/roc-bert-base-zh 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 RoCBertModel, RoCBertConfig
>>> # Initializing a RoCBert weiweishi/roc-bert-base-zh style configuration
>>> configuration = RoCBertConfig()
>>> # Initializing a model from the weiweishi/roc-bert-base-zh style configuration
>>> model = RoCBertModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configRoCBertTokenizer
sınıf transformers.RoCBertTokenizer
< source >( vocab_fileword_shape_fileword_pronunciation_filedo_lower_case = Truedo_basic_tokenize = Truenever_split = Noneunk_token = '[UNK]'sep_token = '[SEP]'pad_token = '[PAD]'cls_token = '[CLS]'mask_token = '[MASK]'tokenize_chinese_chars = Truestrip_accents = None**kwargs )
Parametreler
- Construct bir RoCBert tokenizer'ı oluşturur. WordPiece tabanlıdır. Bu tokenizer, PreTrainedTokenizer'dan devralır ve —
- contains ana yöntemlerin çoğunu içerir. Kullanıcıların bu yöntemlerle ilgili daha fazla bilgi için bu üst sınıfa başvurması gerekir —
- methods. —
vocab_file (
str): Sözlüğü içeren dosya. word_shape_file (str): Kelime => şekil bilgisini içeren dosya. word_pronunciation_file (str): Kelime => telaffuz bilgisini içeren dosya. do_lower_case (bool, isteğe bağlı, varsayılanTrue): Tokenizasyon sırasında girdinin küçük harfe dönüştürülüp dönüştürülmeyeceği. do_basic_tokenize (bool, isteğe bağlı, varsayılanTrue): WordPiece'ten önce temel tokenizasyonun yapılıp yapılmayacağı. never_split (Iterable, isteğe bağlı): Tokenizasyon sırasında asla bölünmeyecek tokenların koleksiyonu. Yalnızcado_basic_tokenize=Trueolduğunda etkilidir. unk_token (str, isteğe bağlı, varsayılan"[UNK]"): Bilinmeyen token. Sözlükte yer almayan bir token bir ID'ye dönüştürülemez ve bunun yerine bu token olarak ayarlanır. sep_token (str, isteğe bağlı, varsayılan"[SEP]"): Ayracı token, birden fazla diziden bir dizi oluşturulurken kullanılır, örneğin dizi sınıflandırması için iki dizi veya soru-cevap için bir metin ve bir soru. Özel tokenlarla oluşturulan bir dizinin son tokenı olarak da kullanılır. pad_token (str, isteğe bağlı, varsayılan"[PAD]"): Doldurma için kullanılan token, örneğin farklı uzunluklarda dizilerin toplu işlenmesinde. cls_token (str, isteğe bağlı, varsayılan"[CLS]"): Dizi sınıflandırması yapılırken (token başına sınıflandırma yerine tüm dizinin sınıflandırılması) kullanılan sınıflandırıcı token. Özel tokenlarla oluşturulduğunda dizinin ilk tokenıdır. mask_token (str, isteğe bağlı, varsayılan"[MASK]"): Değerleri maskelemek için kullanılan token. Bu, bu modelin maskeli dil modelleme ile eğitildiğinde kullanılan tokendir. Modelin tahmin etmeye çalışacağı token budur. tokenize_chinese_chars (bool, isteğe bağlı, varsayılanTrue): Çin karakterlerinin tokenize edilip edilmeyeceği. Bu, Japonca için muhtemelen devre dışı bırakılmalıdır (bkz. bu issue). strip_accents (bool, isteğe bağlı): Tüm aksanların kaldırılıp kaldırılmayacağı. Bu seçenek belirtilmezse,lowercasedeğeri tarafından (orijinal BERT'te olduğu gibi) belirlenir.
build_inputs_with_special_tokens
< source >( token_ids_0: listtoken_ids_1: list[int] | None = Nonecls_token_id: int | None = Nonesep_token_id: int | None = None ) → List[int]
Parametreler
- token_ids_0 (
List[int]) — Özel jetonların ekleneceği kimlik listesi. - token_ids_1 (
List[int], isteğe bağlı) — Dizi çiftleri için isteğe bağlı ikinci kimlik listesi.
Dönüş değeri
List[int]
Uygun özel jetonlarla girdi kimlikleri listesi.
Sınıflandırma görevleri için bir dizi veya dizi çiftinden model girdilerini birleştirerek ve özel jetonlar ekleyerek oluşturun. BERT dizisi aşağıdaki biçime sahiptir:
- tek dizi:
[CLS] X [SEP] - dizi çifti:
[CLS] A [SEP] B [SEP]
get_special_tokens_mask
< source >( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → List[int]
Parametreler
- token_ids_0 (
List[int]) — Kimlik listesi. - token_ids_1 (
List[int], isteğe bağlı) — Dizi çiftleri için isteğe bağlı ikinci kimlik listesi. - already_has_special_tokens (
bool, isteğe bağlı, varsayılanFalse) — Token listesinin, model için özel token'larla zaten biçimlendirilmiş olup olmadığı.
Dönüş değeri
List[int]
[0, 1] aralığında tamsayıların bir listesi: özel bir jeton için 1, bir dizi jetonu için 0.
Özel tokenler eklenmemiş bir token listesinden dizi kimliklerini alır. Bu yöntem, tokenizer'ın prepare_for_model yöntemi kullanılarak özel tokenler eklenirken çağrılır.
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Bir sıralama çifti sınıflandırma görevinde kullanılacak şekilde, iletilen iki sıralamadan bir maske oluşturun.
Bu yöntem, belirteçsizin yapılandırma özniteliklerine dayanarak belirteç türü kimliklerini dinamik olarak oluşturur:
token_type_ids_pattern: Kullanılacak desen (“all_zeros” veya “bert_style”)token_type_ids_include_special_tokens: Uzunluk hesabında özel jetonların dikkate alınıp alınmayacağı
Örnekler:
# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences
# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairsRoCBertModel
sınıf transformers.RoCBertModel
< source >( config: RoCBertConfigadd_pooling_layer = True )
Parametreler
- config (RoCBertConfig) — 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.
- add_pooling_layer (
bool, isteğe bağlı, varsayılanTrue) — Bir havuzlama katmanı eklenip eklenmeyeceği
Model, yalnızca öz-dikkat (self-attention) ile bir kodlayıcı (encoder) olarak da, bir çözücü (decoder) olarak da davranabilir; bu durumda, Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser ve Illia Polosukhin tarafından Attention is all you need makalesinde açıklanan mimariye uygun olarak, öz-dikkat katmanları arasına bir çapraz-dikkat (cross-attention) katmanı eklenir.
Bir decoder olarak davranabilmesi için modelin, yapılandırmasındaki is_decoder argümanının True olarak ayarlandığı şekilde başlatılması gerekir. Bir Seq2Seq modelinde kullanılması için modelin, hem is_decoder argümanının hem de add_cross_attention'in True olarak ayarlandığı şekilde başlatılması gerekir; bu durumda ileri geçişe girdi olarak encoder_hidden_states beklenir.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneinput_shape_ids: typing.Optional[torch.Tensor] = Noneinput_pronunciation_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPoolingAndCrossAttentions 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.
- input_shape_ids (
torch.LongTensorşeklinde(batch_size, sequence_length)) — Girdi dizisi belirteçlerinin sözlükteki indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- input_pronunciation_ids (
torch.LongTensorşeklinde(batch_size, sequence_length)) — Telaffuz sözlüğündeki girdi dizisi tokenlarının indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- 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.
- 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]. - inputs_embeds (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - encoder_hidden_states (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — Encoder'ın son katmanının çıktısındaki gizli durumlar dizisi. Model bir decoder olarak yapılandırılmışsa çapraz dikkat (cross-attention) için kullanılır. - encoder_attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Giriş verisindeki dolgu (padding) jetonlarının indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Model bir decoder olarak yapılandırılmışsa bu maske çapraz dikkat (cross-attention) işleminde kullanılır. Maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- past_key_values (
~cache_utils.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 genelliklepast_key_valuesdeğerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülenuse_cache=Trueveyaconfig.use_cache=True.Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın.
past_key_valuesgeçirilmezse, varsayılan olarak DynamicCache başlatılır.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcının tüminput_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. - use_cache (
bool, isteğe bağlı) —Trueolarak ayarlanırsa,past_key_valuesanahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz.past_key_values).
Dönüş değeri
BaseModelOutputWithPoolingAndCrossAttentions veya tuple(torch.Tensor)
A BaseModelOutputWithPoolingAndCrossAttentions veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (RoCBertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
RoCBertModel forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
last_hidden_state (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.pooler_output (
torch.Tensor, şekli(batch_size, hidden_size)) — Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, yardımcı ön eğitim görevi için kullanılan katmanlar üzerinden ek işlemden geçirildikten sonraki hali. Örneğin BERT ailesi modelleri için, bu, sınıflandırma token'ının doğrusal bir katman ve tanh aktivasyon fonksiyonu üzerinden işlenmesinden sonra döndürülen değerdir. Doğrusal katman ağırlıkları, ön eğitim sırasında bir sonraki cümle tahmini (sınıflandırma) hedefinden eğitilir.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
cross_attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Trueveconfig.add_cross_attention=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —(batch_size, num_heads, sequence_length, sequence_length)biçiminde, her katman için bir adet içerentorch.Tensordemeti.Dekoderin çapraz dikkat katmanının dikkat ağırlıkları, dikkat softmax'ından sonra, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
past_key_values (
Cache, isteğe bağlı,use_cache=Truegeçirildiğinde veyaconfig.use_cache=Trueolduğunda döndürülür) — Bir Cache örneğidir. Daha fazla ayrıntı için kv cache kılavuzumuza bakın.Sıralı çözümlemeyi hızlandırmak için (bkz.
past_key_valuesgirdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler ve isteğe bağlı olarakconfig.is_encoder_decoder=Trueise cross-attention bloklarındaki anahtar ve değerler) içerir.
RoCBertForPreTraining
sınıf transformers.RoCBertForPreTraining
< source >( config: RoCBertConfig )
Parametreler
- config (RoCBertConfig) — 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.
Ön eğitim sırasında kontrastif kayıp ve masked_lm_loss kullanan RoCBert Modeli.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneinput_shape_ids: typing.Optional[torch.Tensor] = Noneinput_pronunciation_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneattack_input_ids: typing.Optional[torch.Tensor] = Noneattack_input_shape_ids: typing.Optional[torch.Tensor] = Noneattack_input_pronunciation_ids: typing.Optional[torch.Tensor] = Noneattack_attention_mask: typing.Optional[torch.Tensor] = Noneattack_token_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels_input_ids: typing.Optional[torch.Tensor] = Nonelabels_input_shape_ids: typing.Optional[torch.Tensor] = Nonelabels_input_pronunciation_ids: typing.Optional[torch.Tensor] = Nonelabels_attention_mask: typing.Optional[torch.Tensor] = Nonelabels_token_type_ids: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MaskedLMOutput 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.
- input_shape_ids (
torch.LongTensorşeklinde(batch_size, sequence_length)) — Girdi dizisi belirteçlerinin sözlükteki indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- input_pronunciation_ids (
torch.LongTensorşeklinde(batch_size, sequence_length)) — Telaffuz sözlüğündeki girdi dizisi tokenlarının indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- 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.
- attack_input_ids (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Karşıtlı kaybı (contrastive loss) hesaplamak için saldırı örnek kimlikleri. Endeksler[-100, 0, ..., config.vocab_size]aralığında olmalıdır (input_idsdokümantasyonuna bakın). Endeksleri-100olarak ayarlanan tokenlar yok sayılır (maskelenir); kayıp yalnızca etiketleri[0, ..., config.vocab_size]aralığında olan tokenlar için hesaplanır. - attack_input_shape_ids (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Karşıtlı kaybı hesaplamak için saldırı örnek şekil kimlikleri. Endeksler[-100, 0, ..., config.vocab_size]aralığında olmalıdır (bkz.input_idsdocstring). Endeksleri-100olarak ayarlanan tokenlar yok sayılır (maskelenir); kayıp yalnızca etiketleri[0, ..., config.vocab_size]aralığında olan tokenlar için hesaplanır. - attack_input_pronunciation_ids (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — kontrastif kaybı hesaplamak için saldırı örneği telaffuz kimlikleri. İndisler[-100, 0, ..., config.vocab_size]aralığında olmalıdır (input_idsdocstring'ine bakın). İndisi-100olarak ayarlanan tokenlar yok sayılır (maskelenir); kayıp yalnızca etiketi[0, ..., config.vocab_size]aralığında olan tokenlar için hesaplanır. - attack_attention_mask (
torch.Tensor, şekli(batch_size, sequence_length), isteğe bağlı) — Saldırı örneğinde dolgu (padding) token indeksleri üzerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske.[0, 1]aralığında seçilen maske değerleri: MASKELENMEMİŞ tokenlar için1, MASKELENMİŞ tokenlar için0. - attack_token_type_ids (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Saldırı girdilerinin farklı bölümlerini belirtmek için segment token dizinleri. Dizinler[0, 1]aralığından seçilir:0, A cümlesi token'ına karşılık gelir,1ise B cümlesi token'ına karşılık gelir. - 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]. - inputs_embeds (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - labels_input_ids (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — kontrastif kayıp ve masked_lm_loss hesaplamak için hedef kimlikler. İndeksler[-100, 0, ..., config.vocab_size]aralığında olmalıdır (input_idsdocstring'ine bakın). İndeksleri-100olarak ayarlanan tokenlar yok sayılır (maskelenir), kayıp yalnızca etiketleri[0, ..., config.vocab_size]aralığında olan tokenlar için hesaplanır. - labels_input_shape_ids (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — kontrastif kayıp ve masked_lm_loss hesaplamak için hedef şekil kimlikleri. Endeksler[-100, 0, ..., config.vocab_size]aralığında olmalıdır (input_idsdocstring'ine bakın). Endeksleri-100olarak ayarlanan tokenlar yok sayılır (maskelenir); kayıp yalnızca etiketleri[0, ..., config.vocab_size]aralığında olan tokenlar için hesaplanır. - labels_input_pronunciation_ids (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — kontrastif kayıp ve masked_lm_loss hesaplamak için hedef telaffuz kimlikleri. Endeksler[-100, 0, ..., config.vocab_size]aralığında olmalıdır (bkz.input_idsdocstring). Endeksleri-100olarak ayarlanan tokenlar yoksayılır (maskelenir); kayıp yalnızca etiketleri[0, ..., config.vocab_size]aralığında olan tokenlar için hesaplanır. - labels_attention_mask (
torch.Tensor, şekli(batch_size, sequence_length), isteğe bağlı) — Etiket örneğinde dolgu (padding) token indeksleri üzerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske.[0, 1]aralığında seçilen maske değerleri: MASKELENMEMİŞ tokenlar için1, MASKELENMİŞ tokenlar için0. - labels_token_type_ids (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Etiket girdilerinin farklı bölümlerini belirtmek için segment token indeksleri. İndeksler[0, 1]aralığından seçilir:0, A cümlesi token'ına karşılık gelir,1ise B cümlesi token'ına karşılık gelir.
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 (RoCBertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
RoCBertForPreTraining 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ı,labelssağ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=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> from transformers import AutoTokenizer, RoCBertForPreTraining
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("weiweishi/roc-bert-base-zh")
>>> model = RoCBertForPreTraining.from_pretrained("weiweishi/roc-bert-base-zh")
>>> inputs = tokenizer("你好,很高兴认识你", return_tensors="pt")
>>> attack_inputs = {}
>>> for key in list(inputs.keys()):
... attack_inputs[f"attack_{key}"] = inputs[key]
>>> label_inputs = {}
>>> for key in list(inputs.keys()):
... label_inputs[f"labels_{key}"] = inputs[key]
>>> inputs.update(label_inputs)
>>> inputs.update(attack_inputs)
>>> outputs = model(**inputs)
>>> logits = outputs.logits
>>> logits.shape
torch.Size([1, 11, 21128])RoCBertForCausalLM
sınıf transformers.RoCBertForCausalLM
< source >( config: RoCBertConfig )
Parametreler
- config (RoCBertConfig) — 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.
CLM ince ayarı için üstünde language modeling başlığı bulunan RoCBert 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
< source >( input_ids: typing.Optional[torch.Tensor] = Noneinput_shape_ids: typing.Optional[torch.Tensor] = Noneinput_pronunciation_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: list[torch.Tensor] | None = Nonelabels: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutputWithCrossAttentions 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.
- input_shape_ids (
torch.LongTensorşeklinde(batch_size, sequence_length)) — Girdi dizisi belirteçlerinin sözlükteki indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- input_pronunciation_ids (
torch.LongTensorşeklinde(batch_size, sequence_length)) — Telaffuz sözlüğündeki girdi dizisi tokenlarının indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- 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.
- 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]. - inputs_embeds (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - encoder_hidden_states (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — Encoder'ın son katmanının çıktısındaki gizli durumlar dizisi. Model bir decoder olarak yapılandırılmışsa çapraz dikkat (cross-attention) için kullanılır. - encoder_attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Giriş verisindeki dolgu (padding) jetonlarının indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Model bir decoder olarak yapılandırılmışsa bu maske çapraz dikkat (cross-attention) işleminde kullanılır. Maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- past_key_values (
list[torch.Tensor], isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention bloklarındaki ve cross-attention bloklarındaki anahtar ve değerler). Bu genelliklepast_key_valuesdeğerinin çözümlemenin önceki bir aşamasında model tarafından döndürülenuse_cache=Trueveyaconfig.use_cache=True.Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın.
past_key_valuesgeçirilmezse, varsayılan olarak DynamicCache başlatılır.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcının tüminput_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. - labels (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Soldan sağa dil modelleme kaybını (sonraki kelime tahmini) hesaplamak için etiketler. Endeksler[-100, 0, ..., config.vocab_size]aralığında olmalıdır (bkz.input_idsdocstring). Endeksleri-100olarak ayarlanan tokenlar yoksayılır (maskelenir); kayıp yalnızca etiketleri[0, ..., config.vocab_size]aralığında olan tokenlar için hesaplanır. - use_cache (
bool, isteğe bağlı) —Trueolarak ayarlanırsa,past_key_valuesanahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz.past_key_values). - logits_to_keep (
Union[int, torch.Tensor], isteğe bağlı, varsayılan0) —intise, sonlogits_to_keeptoken için logits hesaplanır.0ise, tüminput_idsiçin logits hesaplanır (özel durum). Üretim için yalnızca son token logits'leri gereklidir ve bunların yalnızca o token için hesaplanması bellek tasarrufu sağlar; bu, uzun diziler veya büyük sözlük boyutu için oldukça önemli hale gelir.torch.Tensorise, dizi uzunluğu boyutundaki korunacak indekslere karşılık gelen 1B olmalıdır. Bu, paketlenmiş tensor biçimini (batch ve dizi uzunluğu için tek boyut) kullanırken faydalıdır.
Dönüş değeri
CausalLMOutputWithCrossAttentions veya tuple(torch.Tensor)
A CausalLMOutputWithCrossAttentions veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (RoCBertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
RoCBertForCausalLM 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ı,labelssağlandığında döndürülür) — Dil modelleme kaybı (sonraki token tahmini için).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=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
cross_attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —(batch_size, num_heads, sequence_length, sequence_length)biçiminde, her katman için bir adet içerentorch.Tensordemeti.Dikkat softmax'ı sonrası çapraz dikkat ağırlıkları, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
past_key_values (
Cache, isteğe bağlı,use_cache=Truegeçirildiğinde veyaconfig.use_cache=Trueolduğunda döndürülür) — Bir Cache örneğidir. Daha fazla ayrıntı için kv cache kılavuzumuza bakın.Sıralı çözümlemeyi hızlandırmak için (bkz.
past_key_valuesgirdisi) kullanılabilen, önceden hesaplanmış gizli durumları (dikkat bloklarındaki anahtar ve değerler) içerir.
Örnek:
>>> from transformers import AutoTokenizer, RoCBertForCausalLM, RoCBertConfig
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("weiweishi/roc-bert-base-zh")
>>> config = RoCBertConfig.from_pretrained("weiweishi/roc-bert-base-zh")
>>> config.is_decoder = True
>>> model = RoCBertForCausalLM.from_pretrained("weiweishi/roc-bert-base-zh", config=config)
>>> inputs = tokenizer("你好,很高兴认识你", return_tensors="pt")
>>> outputs = model(**inputs)
>>> prediction_logits = outputs.logitsRoCBertForMaskedLM
sınıf transformers.RoCBertForMaskedLM
< source >( config: RoCBertConfig )
Parametreler
- config (RoCBertConfig) — 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 Roc Bert Modeli.”
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneinput_shape_ids: typing.Optional[torch.Tensor] = Noneinput_pronunciation_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: 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.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.
- input_shape_ids (
torch.LongTensorşeklinde(batch_size, sequence_length)) — Girdi dizisi belirteçlerinin sözlükteki indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- input_pronunciation_ids (
torch.LongTensorşeklinde(batch_size, sequence_length)) — Telaffuz sözlüğündeki girdi dizisi tokenlarının indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- 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.
- 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]. - inputs_embeds (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - encoder_hidden_states (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — Encoder'ın son katmanının çıktısındaki gizli durumlar dizisi. Model bir decoder olarak yapılandırılmışsa çapraz dikkat (cross-attention) için kullanılır. - encoder_attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Giriş verisindeki dolgu (padding) jetonlarının indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Model bir decoder olarak yapılandırılmışsa bu maske çapraz dikkat (cross-attention) işleminde kullanılır. Maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- 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_idsdocstring). Endeksleri-100olarak 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 (RoCBertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
RoCBertForMaskedLM 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ı,labelssağ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=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> from transformers import AutoTokenizer, RoCBertForMaskedLM
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("weiweishi/roc-bert-base-zh")
>>> model = RoCBertForMaskedLM.from_pretrained("weiweishi/roc-bert-base-zh")
>>> inputs = tokenizer("法国是首都[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)
'.'RoCBertForSequenceClassification
sınıf transformers.RoCBertForSequenceClassification
< source >( config: RoCBertConfig )
Parametreler
- config (RoCBertConfig) — 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.
RoCBert Model, üstünde bir dizi sınıflandırma/geri dönüşüm kafası bulunan bir transformer (toplanmış çıktının üzerinde doğrusal bir katman) ö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
< source >( input_ids: typing.Optional[torch.Tensor] = Noneinput_shape_ids: typing.Optional[torch.Tensor] = Noneinput_pronunciation_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: 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.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.
- input_shape_ids (
torch.LongTensorşeklinde(batch_size, sequence_length)) — Girdi dizisi belirteçlerinin sözlükteki indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- input_pronunciation_ids (
torch.LongTensorşeklinde(batch_size, sequence_length)) — Telaffuz sözlüğündeki girdi dizisi tokenlarının indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- 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.
- 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]. - inputs_embeds (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - labels (
torch.LongTensor, şekli(batch_size,), 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 == 1ise bir geri dönüş kaybı (Ortalama Kare kaybı) hesaplanır,config.num_labels > 1ise 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 (RoCBertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
RoCBertForSequenceClassification sınıfının 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ı,labelssağ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=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Tek etiketli sınıflandırma örneği:
>>> import torch
>>> from transformers import AutoTokenizer, RoCBertForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("weiweishi/roc-bert-base-zh")
>>> model = RoCBertForSequenceClassification.from_pretrained("weiweishi/roc-bert-base-zh")
>>> 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 = RoCBertForSequenceClassification.from_pretrained("weiweishi/roc-bert-base-zh", 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, RoCBertForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("weiweishi/roc-bert-base-zh")
>>> model = RoCBertForSequenceClassification.from_pretrained("weiweishi/roc-bert-base-zh", 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 = RoCBertForSequenceClassification.from_pretrained(
... "weiweishi/roc-bert-base-zh", 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).lossRoCBertForMultipleChoice
sınıf transformers.RoCBertForMultipleChoice
< source >( config: RoCBertConfig )
Parametreler
- config (RoCBertConfig) — 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 çoklu seçim sınıflandırma başlığı (pooled çıktı üzerine doğrusal bir katman ve softmax) bulunan Roc Bert Model, örneğin RocStories/SWAG 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
< source >( input_ids: typing.Optional[torch.Tensor] = Noneinput_shape_ids: typing.Optional[torch.Tensor] = Noneinput_pronunciation_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: 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'> ) → MultipleChoiceModelOutput or tuple(torch.Tensor)
Parametreler
- input_ids (
torch.LongTensorşeklinde(batch_size, num_choices, sequence_length)) — Girdi dizisi belirteçlerinin sözlükteki indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- input_shape_ids (
torch.LongTensorşeklinde(batch_size, num_choices, sequence_length)) — Girdi dizisi belirteçlerinin sözlükteki indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- input_pronunciation_ids (
torch.LongTensorşeklinde(batch_size, num_choices, sequence_length)) — Telaffuz sözlüğündeki girdi dizisi tokenlarının indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- token_type_ids (
torch.LongTensorşeklinde(batch_size, num_choices, 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.
- position_ids (
torch.LongTensorşeklinde(batch_size, num_choices, 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.max_position_embeddings - 1]. - inputs_embeds (
torch.Tensor, şekli(batch_size, num_choices, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - labels (
torch.LongTensor, şekli(batch_size,), isteğe bağlı) — Çoklu seçim sınıflandırma kaybını hesaplamak için etiketler. İndisler,num_choices'in giriş tensörlerinin ikinci boyutunun boyutu olduğu[0, ..., num_choices-1]aralığında olmalıdır. (Bkz. yukarıdakiinput_ids)
Dönüş değeri
MultipleChoiceModelOutput veya tuple(torch.Tensor)
A MultipleChoiceModelOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (RoCBertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
RoCBertForMultipleChoice 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,), opsiyonel,labelssağlandığında döndürülür) — Sınıflandırma kaybı.logits (
torch.Tensor, şekli(batch_size, num_choices)) — num_choices, girdi tensörlerinin ikinci boyutudur (bkz. yukarıdaki input_ids).Sınıflandırma puanları (SoftMax öncesi).
hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> from transformers import AutoTokenizer, RoCBertForMultipleChoice
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("weiweishi/roc-bert-base-zh")
>>> model = RoCBertForMultipleChoice.from_pretrained("weiweishi/roc-bert-base-zh")
>>> prompt = "In Italy, pizza served in formal settings, such as at a restaurant, is presented unsliced."
>>> choice0 = "It is eaten with a fork and a knife."
>>> choice1 = "It is eaten while held in the hand."
>>> labels = torch.tensor(0).unsqueeze(0) # choice0 is correct (according to Wikipedia ;)), batch size 1
>>> encoding = tokenizer([prompt, prompt], [choice0, choice1], return_tensors="pt", padding=True)
>>> outputs = model(**{k: v.unsqueeze(0) for k, v in encoding.items()}, labels=labels) # batch size is 1
>>> # the linear classifier still needs to be trained
>>> loss = outputs.loss
>>> logits = outputs.logitsRoCBertForTokenClassification
sınıf transformers.RoCBertForTokenClassification
< source >( config: RoCBertConfig )
Parametreler
- config (RoCBertConfig) — 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.
Roc Bert transformer'ının üstünde bir token sınıflandırma başlığı (gizli durumlar çıktısının üzerine yerleştirilen doğrusal bir katman) örneğin Adlandırılmış Varlık Tanıma (NER) 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
< source >( input_ids: typing.Optional[torch.Tensor] = Noneinput_shape_ids: typing.Optional[torch.Tensor] = Noneinput_pronunciation_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: 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.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.
- input_shape_ids (
torch.LongTensorşeklinde(batch_size, sequence_length)) — Girdi dizisi belirteçlerinin sözlükteki indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- input_pronunciation_ids (
torch.LongTensorşeklinde(batch_size, sequence_length)) — Telaffuz sözlüğündeki girdi dizisi tokenlarının indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- 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.
- 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]. - inputs_embeds (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - labels (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — 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 (RoCBertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
RoCBertForTokenClassification 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ı,labelssağ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=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> from transformers import AutoTokenizer, RoCBertForTokenClassification
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("weiweishi/roc-bert-base-zh")
>>> model = RoCBertForTokenClassification.from_pretrained("weiweishi/roc-bert-base-zh")
>>> 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)
...RoCBertForQuestionAnswering
sınıf transformers.RoCBertForQuestionAnswering
< source >( config: RoCBertConfig )
Parametreler
- config (RoCBertConfig) — 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.
SQuAD gibi çıkarımsal soru-cevap görevleri için üstünde bir span sınıflandırma kafası bulunan Roc Bert transformer (gizli durum çıktısının üzerine, span start logits ve span end logits hesaplamak için bir doğrusal katman).
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneinput_shape_ids: typing.Optional[torch.Tensor] = Noneinput_pronunciation_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonestart_positions: typing.Optional[torch.Tensor] = Noneend_positions: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → QuestionAnsweringModelOutput 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.
- input_shape_ids (
torch.LongTensorşeklinde(batch_size, sequence_length)) — Girdi dizisi belirteçlerinin sözlükteki indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- input_pronunciation_ids (
torch.LongTensorşeklinde(batch_size, sequence_length)) — Telaffuz sözlüğündeki girdi dizisi tokenlarının indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- 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.
- 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]. - inputs_embeds (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - start_positions (
torch.Tensor, ş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.Tensor, ş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, kayıp hesabında dikkate alınmaz.
Dönüş değeri
QuestionAnsweringModelOutput veya tuple(torch.Tensor)
A QuestionAnsweringModelOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (RoCBertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
RoCBertForQuestionAnswering 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ı,labelssağlandığında döndürülür) — Toplam span çıkarım kaybı, başlangıç ve bitiş konumları için Çapraz Entropinin (Cross-Entropy) toplamıdır.start_logits (
torch.Tensor, şekli(batch_size, sequence_length)) — Span başlangıç puanları (SoftMax öncesi).end_logits (
torch.Tensor, şekli(batch_size, sequence_length)) — Span sonu puanları (SoftMax öncesi).hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> from transformers import AutoTokenizer, RoCBertForQuestionAnswering
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("weiweishi/roc-bert-base-zh")
>>> model = RoCBertForQuestionAnswering.from_pretrained("weiweishi/roc-bert-base-zh")
>>> question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"
>>> inputs = tokenizer(question, text, return_tensors="pt")
>>> with torch.no_grad():
... outputs = model(**inputs)
>>> answer_start_index = outputs.start_logits.argmax()
>>> answer_end_index = outputs.end_logits.argmax()
>>> predict_answer_tokens = inputs.input_ids[0, answer_start_index : answer_end_index + 1]
>>> tokenizer.decode(predict_answer_tokens, skip_special_tokens=True)
...
>>> # target is "nice puppet"
>>> target_start_index = torch.tensor([14])
>>> target_end_index = torch.tensor([15])
>>> outputs = model(**inputs, start_positions=target_start_index, end_positions=target_end_index)
>>> loss = outputs.loss
>>> round(loss.item(), 2)
...