Transformers documentation
XLNet
Model ini dipublikasikan di HF papers pada 2019-06-19 dan disumbangkan ke Hugging Face Transformers pada 2020-11-16.
XLNet
Ikhtisar
Model XLNet diusulkan dalam XLNet: Generalized Autoregressive Pretraining for Language Understanding oleh Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, Quoc V. Le. XLnet adalah ekstensi dari model Transformer-XL yang dilatih sebelumnya menggunakan metode autoregressive untuk mempelajari konteks bidireksional dengan memaksimalkan kemungkinan yang diharapkan atas semua permutasi dari urutan faktorisasi urutan input.
Abstrak dari makalah tersebut adalah sebagai berikut:
Dengan kemampuan untuk memodelkan konteks bidireksional, pra-pelatihan berbasis autoencoding denoising seperti BERT mencapai kinerja yang lebih baik daripada pendekatan pra-pelatihan yang berbasis pemodelan bahasa autoregresif. Namun, karena bergantung pada pengrusakan input dengan mask, BERT mengabaikan ketergantungan antara posisi yang dimask dan mengalami ketidaksesuaian antara pra-pelatihan dan penyesuaian halus. Mengingat kelebihan dan kekurangan tersebut, kami mengusulkan XLNet, sebuah metode pra-pelatihan autoregresif yang digeneralisasi yang (1) memungkinkan pembelajaran konteks bidireksional dengan memaksimalkan kemungkinan yang diharapkan di atas semua permutasi urutan faktorisasi dan (2) mengatasi keterbatasan BERT berkat formulasi autoregresifnya. Selain itu, XLNet mengintegrasikan ide-ide dari Transformer-XL, model autoregresif terkini, ke dalam pra-pelatihan. Secara empiris, dalam pengaturan eksperimen yang sebanding, XLNet melampaui BERT pada 20 tugas, sering kali dengan selisih yang besar, termasuk penjawab pertanyaan, penalaran bahasa alami, analisis sentimen, dan peringkat dokumen.
Model ini disumbangkan oleh thomwolf. Kode aslinya dapat ditemukan di sini.
Tips penggunaan
- Pola perhatian spesifik dapat dikendalikan pada saat pelatihan dan pengujian menggunakan input
perm_mask. - Karena sulitnya melatih model auto-regresif penuh pada berbagai urutan faktorisasi, XLNet dilatih awal menggunakan hanya sub-himpunan token output sebagai target, yang dipilih melalui input
target_mapping. - Untuk menggunakan XLNet untuk decoding berurutan (yaitu bukan dalam pengaturan bi-directional penuh), gunakan input
perm_maskdantarget_mappinguntuk mengontrol rentang perhatian dan output - XLNet adalah salah satu dari sedikit model yang tidak memiliki batas panjang urutan.
- XLNet bukanlah model autoregresif tradisional, tetapi menggunakan strategi pelatihan yang dibangun di atasnya. Model ini mempermutasi token dalam kalimat, lalu memungkinkan model menggunakan n token terakhir untuk memprediksi token ke-n+1. Karena semua ini dilakukan dengan mask, kalimat sebenarnya dimasukkan ke dalam model dengan urutan yang benar, tetapi alih-alih mem-mask n token pertama untuk n+1, XLNet menggunakan mask yang menyembunyikan token-token sebelumnya dalam beberapa permutasi tertentu dari 1,…,panjang sekuens.
- XLNet juga menggunakan mekanisme rekurensi yang sama dengan Transformer-XL untuk membangun dependensi jangka panjang.
Sumber daya
- Panduan tugas klasifikasi teks
- Panduan tugas klasifikasi token
- Panduan tugas question answering
- Panduan tugas pemodelan bahasa kausal
- Panduan tugas pilihan ganda
XLNetConfig
kelas transformers.XLNetConfig
< 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 = 32000d_model: int = 1024n_layer: int = 24n_head: int = 16d_inner: int = 4096d_head: int | None = Noneff_activation: str = 'gelu'attn_type: str = 'bi'initializer_range: float = 0.02layer_norm_eps: float = 1e-12dropout: float | int = 0.1mem_len: int | None = 512reuse_len: int | None = Noneuse_mems_eval: bool = Trueuse_mems_train: bool = Falsebi_data: bool = Falseclamp_len: int = -1same_length: bool = Falsesummary_type: str = 'last'summary_use_proj: bool = Truesummary_activation: str = 'tanh'summary_last_dropout: float | int = 0.1start_n_top: int = 5end_n_top: int = 5pad_token_id: int | None = 5bos_token_id: int | None = 1eos_token_id: int | list[int] | None = 2tie_word_embeddings: bool = True )
Parameter
- vocab_size (
int, opsional, default32000) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan olehinput_ids. - d_model (
int, opsional, default1024) — Ukuran lapisan encoder dan lapisan pooler. - n_layer (
int, opsional, default24) — Jumlah lapisan tersembunyi dalam decoder Transformer. - n_head (
int, opsional, default16) — Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer. - d_inner (
int, opsional, default4096) — Dimensi dari representasi MLP. - d_head (
int, opsional) — Dimensi head attention. Jika None, nilainya akan secara default menjadi hidden_size // num_attention_heads - ff_activation (
stratauCallable, opsional, default"gelu") — Fungsi aktivasi non-linear (fungsi atau string). Jika berupa string,"gelu","relu","silu", dan"gelu_new"didukung. - attn_type (
str, opsional, default"bi") — Jenis perhatian yang digunakan oleh model. Atur"bi"untuk XLNet,"uni"untuk Transformer-XL. - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - layer_norm_eps (
float, opsional, defaultnya1e-12) — Epsilon yang digunakan oleh lapisan normalisasi lapisan. - dropout (
Union[float, int], opsional, default0.1) — Rasio untuk semua lapisan dropout. - mem_len (
intatauNone, opsional) — Jumlah token yang akan di-cache. Pasangan kunci/nilai yang sudah dihitung sebelumnya pada langkah forward sebelumnya tidak akan dihitung ulang. Lihat quickstart untuk informasi lebih lanjut. - reuse_len (
int, opsional) — Jumlah token dalam batch saat ini yang akan di-cache dan digunakan kembali di masa mendatang. - use_mems_eval (
bool, opsional, defaultTrue) — Apakah model harus menggunakan mekanisme memori rekuren dalam mode evaluasi. - use_mems_train (
bool, opsional, defaultFalse) — Apakah model harus menggunakan mekanisme memori rekuren dalam mode pelatihan.Untuk pretraining, disarankan untuk mengatur `use_mems_train` ke `True`. Untuk fine-tuning, disarankan untuk mengatur `use_mems_train` ke `False` seperti yang dibahas [di sini](https://github.com/zihangdai/xlnet/issues/41#issuecomment-505102587). Jika `use_mems_train` diatur ke `True`, Anda harus memastikan bahwa batch pelatihan diproses sebelumnya dengan benar, *misalnya* `batch_1 = [[This line is], [This is the]]` dan `batch_2 = [[ the first line], [ second line]]` dan bahwa semua batch memiliki ukuran yang sama. - bi_data (
bool, opsional, defaultFalse) — Apakah akan menggunakan pipeline input bidireksional. Biasanya disetel keTrueselama pretraining danFalseselama finetuning. - clamp_len (
int, opsional, default -1) — Batasi semua jarak relatif yang lebih besar dari clamp_len. Mengatur atribut ini ke -1 berarti tidak ada pembatasan. - same_length (
bool, opsional, defaultFalse) — Apakah akan menggunakan panjang perhatian yang sama untuk setiap token. - summary_type (
str, opsional, bernilai default “last”) — Argumen yang digunakan saat melakukan ringkasan sekuens. Digunakan pada model klasifikasi sekuens dan pilihan ganda. Harus menjadi salah satu dari opsi berikut:"last": Ambil hidden state token terakhir (seperti XLNet)."first": Ambil hidden state token pertama (seperti BERT)."mean": Ambil rata-rata dari semua hidden states token."cls_index": Berikan Tensor posisi token klasifikasi (seperti GPT/GPT-2)."attn": Belum diimplementasikan saat ini, gunakan multi-head attention.
- summary_use_proj (
bool, opsional, defaultTrue) — Argumen yang digunakan saat melakukan ringkasan urutan. Dipakai pada model klasifikasi urutan dan pilihan ganda. Apakah akan menambahkan proyeksi setelah ekstraksi vektor. - summary_activation (
str, opsional) — Argumen yang digunakan saat melakukan ringkasan urutan. Digunakan dalam model klasifikasi urutan dan pilihan ganda. Lewati"tanh"untuk aktivasi tanh pada output, nilai lain akan menghasilkan tanpa aktivasi. - summary_last_dropout (
float, opsional, default 0.1) — Digunakan pada model klasifikasi urutan dan pilihan ganda. Rasio dropout yang digunakan setelah proyeksi dan aktivasi. - start_n_top (
int, opsional, default 5) — Digunakan dalam skrip evaluasi SQuAD. - end_n_top (
int, opsional, default 5) — Digunakan dalam skrip evaluasi SQuAD. - pad_token_id (
int, opsional, default5) — ID token yang digunakan untuk padding dalam kosakata. - bos_token_id (
int, opsional, default1) — ID token yang digunakan untuk awal aliran (beginning-of-stream) dalam kosakata. - eos_token_id (
Union[int, list[int]], opsional, default2) — ID token yang digunakan untuk end-of-stream dalam kosakata. - tie_word_embeddings (
bool, opsional, defaultTrue) — Apakah akan mengikat bobot embedding sesuai dengan pemetaantied_weights_keysmodel.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari XLNetModel. Kelas ini digunakan untuk membuat instans model Xlnet berdasarkan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari xlnet/xlnet-large-cased
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Contoh:
>>> from transformers import XLNetConfig, XLNetModel
>>> # Initializing a XLNet configuration
>>> configuration = XLNetConfig()
>>> # Initializing a model (with random weights) from the configuration
>>> model = XLNetModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configXLNetTokenizer
kelas transformers.XLNetTokenizer
< source >( vocab: str | list[tuple[str, float]] | None = Noneunk_id: int = 0do_lower_case = Falseremove_space = Truekeep_accents = Falsebos_token = '<s>'eos_token = '</s>'unk_token = '<unk>'sep_token = '<sep>'pad_token = '<pad>'cls_token = '<cls>'mask_token = '<mask>'_spm_precompiled_charsmap = Noneadditional_special_tokens = None**kwargs )
Parameter
- vocab (
list of tuples, opsional) — Daftar tuple (token, score) untuk model Unigram. Jika tidak disediakan, daftar kosong akan digunakan. - unk_id (
int, opsional, default 0) — ID token yang tidak diketahui dalam kosakata. - do_lower_case (
bool, opsional, defaultFalse) — Apakah akan mengubah input menjadi huruf kecil saat melakukan tokenisasi. - remove_space (
bool, opsional, defaultTrue) — Apakah akan menghapus teks saat melakukan tokenisasi (menghapus spasi berlebih di depan dan belakang string). - keep_accents (
bool, opsional, defaultFalse) — Apakah mempertahankan aksen saat melakukan tokenisasi. - bos_token (
str, opsional, defaultnya"<s>") — Token awal urutan yang digunakan selama pretraining. Dapat digunakan sebagai token klasifikator urutan. Saat membangun urutan menggunakan token khusus, ini bukan token yang digunakan untuk awal urutan. Token yang digunakan adalah cls_token.Saat membangun sebuah sekuens menggunakan token khusus, token ini bukan token yang digunakan untuk awal sekuens. Token yang digunakan adalah
cls_token. - eos_token (
str, opsional, defaultnya"</s>") — Token akhir urutan.Saat membangun sebuah urutan menggunakan token khusus, token ini bukan yang digunakan untuk akhir urutan. Token yang digunakan adalah
sep_token. - unk_token (
str, opsional, default"<unk>") — Token yang tidak diketahui. Token yang tidak ada dalam kosakata tidak dapat dikonversi menjadi ID dan akan diset sebagai token ini sebagai gantinya. - sep_token (
str, opsional, default"<sep>") — Token pemisah, yang digunakan saat membangun satu rangkaian dari beberapa rangkaian, misalnya dua rangkaian untuk klasifikasi rangkaian atau untuk teks dan pertanyaan untuk penjawaban pertanyaan. Token ini juga digunakan sebagai token terakhir dari rangkaian yang dibangun dengan token khusus. - pad_token (
str, opsional, defaultnya"<pad>") — Token yang digunakan untuk padding, misalnya saat membatching urutan dengan panjang yang berbeda. - cls_token (
str, opsional, default"<cls>") — Token klasifikator yang digunakan saat melakukan klasifikasi sekuens (klasifikasi seluruh sekuens, bukan klasifikasi per-token). Token ini merupakan token pertama dari sekuens ketika dibangun dengan token khusus. - mask_token (
str, opsional, default"<mask>") — Token yang digunakan untuk memask nilai. Ini adalah token yang digunakan saat melatih model ini dengan pemodelan bahasa ter-mask. Ini adalah token yang akan diprediksi oleh model. - additional_special_tokens (
list[str], opsional, defaultnya["<eop>", "<eod>"]) — Token khusus tambahan yang digunakan oleh tokenizer.
Konstruksi tokenizer XLNet (didukung oleh pustaka tokenizers dari HuggingFace). Berbasis pada Unigram.
Tokenizer ini mewarisi dari TokenizersBackend yang berisi sebagian besar metode utama. Pengguna sebaiknya merujuk ke superclass ini untuk informasi lebih lanjut mengenai metode-metode tersebut.
get_special_tokens_mask
< source >( token_ids_0: list[int]token_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]
Parameter
- token_ids_0 — Daftar ID untuk urutan (yang mungkin sudah diformat).
- token_ids_1 — Tidak digunakan saat
already_has_special_tokens=True. Harus None dalam kasus tersebut. - already_has_special_tokens — Apakah urutan sudah diformat dengan token khusus.
Mengembalikan
Daftar bilangan bulat dalam rentang [0, 1]
1 untuk token khusus, 0 untuk token urutan.
Ambil id urutan dari daftar token yang tidak memiliki token khusus yang ditambahkan.
Untuk tokenizer yang cepat, data collator memanggil ini dengan already_has_special_tokens=True untuk membangun mask di atas urutan yang sudah diformat. Dalam kasus tersebut, kami menghitung mask dengan memeriksa keanggotaan dalam all_special_ids.
Output khusus XLNet
kelas transformers.models.xlnet.modeling_xlnet.XLNetModelOutput
< source >( last_hidden_state: Tensormems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )
Parameter
- last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_predict, hidden_size)) — Urutan hidden-state pada lapisan terakhir model.num_predictbersesuaian dengantarget_mapping.shape[1]. Jikatarget_mappingadalahNone, makanum_predictbersesuaian dengansequence_length. - mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Berisi hidden-states yang sudah dihitung sebelumnya. Dapat digunakan (lihat inputmems) untuk mempercepat decoding berurutan. Token id yang sudah diberikan past-nya ke model ini tidak boleh dilewatkan sebagaiinput_idskarena sudah dihitung. - hidden_states (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings, jika model memiliki lapisan embedding, + satu untuk output setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
- attentions (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Jenis output dari XLNetModel.
kelas transformers.models.xlnet.modeling_xlnet.XLNetLMHeadModelOutput
< source >( loss: typing.Optional[torch.Tensor] = Nonelogits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )
Parameter
- loss (
torch.Tensordengan bentuk (1,), opsional, dikembalikan saatlabelsdisediakan) — Loss pemodelan bahasa (untuk prediksi token berikutnya). - logits (
torch.Tensordengan bentuk(batch_size, num_predict, config.vocab_size)) — Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).num_predictbersesuaian dengantarget_mapping.shape[1]. Jikatarget_mappingadalahNone, makanum_predictbersesuaian dengansequence_length. - mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Berisi hidden-states yang sudah dihitung sebelumnya. Dapat digunakan (lihat inputmems) untuk mempercepat decoding berurutan. Token id yang sudah diberikan past-nya ke model ini tidak boleh dilewatkan sebagaiinput_idskarena sudah dihitung. - hidden_states (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings, jika model memiliki lapisan embedding, + satu untuk output setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
- attentions (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Jenis output dari XLNetLMHeadModel.
kelas transformers.models.xlnet.modeling_xlnet.XLNetForSequenceClassificationOutput
< source >( loss: typing.Optional[torch.Tensor] = Nonelogits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )
Parameter
- loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabeldisediakan) — Loss klasifikasi (atau regresi jika config.num_labels==1). - logits (
torch.Tensordengan bentuk(batch_size, config.num_labels)) — Skor klasifikasi (atau regresi jika config.num_labels==1) (sebelum SoftMax). - mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Berisi hidden-states yang telah dihitung sebelumnya. Dapat digunakan (lihat inputmems) untuk mempercepat decoding berurutan. Token id yang past-nya diberikan ke model ini tidak boleh diteruskan sebagaiinput_idskarena sudah dihitung. - hidden_states (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings, jika model memiliki lapisan embedding, + satu untuk output setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
- attentions (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Jenis output dari XLNetForSequenceClassification.
kelas transformers.models.xlnet.modeling_xlnet.XLNetForMultipleChoiceOutput
< source >( loss: typing.Optional[torch.Tensor] = Nonelogits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )
Parameter
- loss (
torch.Tensordengan bentuk (1,), opsional, dikembalikan saatlabelsdisediakan) — Loss klasifikasi. - logits (
torch.Tensordengan bentuk(batch_size, num_choices)) — num_choices adalah dimensi kedua dari tensor input. (lihat input_ids di atas).Skor klasifikasi (sebelum SoftMax).
- mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Berisi hidden-states yang telah dihitung sebelumnya. Dapat digunakan (lihat inputmems) untuk mempercepat decoding berurutan. Token id yang sudah diberikan past-nya ke model ini tidak boleh diteruskan sebagaiinput_idskarena sudah dihitung. - hidden_states (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings, jika model memiliki lapisan embedding, + satu untuk output setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
- attentions (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Jenis output dari XLNetForMultipleChoice.
kelas transformers.models.xlnet.modeling_xlnet.XLNetForTokenClassificationOutput
< source >( loss: typing.Optional[torch.Tensor] = Nonelogits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )
Parameter
- loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss klasifikasi. - logits (
torch.Tensordengan bentuk(batch_size, sequence_length, config.num_labels)) — Skor klasifikasi (sebelum SoftMax). - mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Berisi hidden-states yang telah dihitung sebelumnya. Dapat digunakan (lihat inputmems) untuk mempercepat decoding berurutan. Token id yang sudah diberikan past-nya ke model ini tidak boleh diteruskan sebagaiinput_idskarena sudah dihitung. - hidden_states (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings, jika model memiliki lapisan embedding, + satu untuk output setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
- attentions (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Jenis output dari XLNetForTokenClassificationOutput.
kelas transformers.models.xlnet.modeling_xlnet.XLNetForQuestionAnsweringSimpleOutput
< source >( loss: typing.Optional[torch.Tensor] = Nonestart_logits: typing.Optional[torch.Tensor] = Noneend_logits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )
Parameter
- loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Total loss ekstraksi span adalah jumlah dari Cross-Entropy untuk posisi awal dan akhir. - start_logits (
torch.Tensordengan bentuk(batch_size, sequence_length,)) — Skor awal span (sebelum SoftMax). - end_logits (
torch.Tensordengan bentuk(batch_size, sequence_length,)) — Skor akhir span (sebelum SoftMax). - mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Berisi hidden-states yang sudah dihitung sebelumnya. Dapat digunakan (lihat inputmems) untuk mempercepat decoding berurutan. Token id yang sudah diberikan past-nya ke model ini tidak boleh dilewatkan sebagaiinput_idskarena sudah dihitung. - hidden_states (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings, jika model memiliki lapisan embedding, + satu untuk output setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
- attentions (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Jenis output dari XLNetForQuestionAnsweringSimple.
kelas transformers.models.xlnet.modeling_xlnet.XLNetForQuestionAnsweringOutput
< source >( loss: typing.Optional[torch.Tensor] = Nonestart_top_log_probs: typing.Optional[torch.Tensor] = Nonestart_top_index: typing.Optional[torch.LongTensor] = Noneend_top_log_probs: typing.Optional[torch.Tensor] = Noneend_top_index: typing.Optional[torch.LongTensor] = Nonecls_logits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )
Parameter
- loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan jikastart_positionsdanend_positionskeduanya disediakan) — Loss klasifikasi sebagai jumlah dari loss klasifikasi token awal, token akhir (dan is_impossible jika disediakan). - start_top_log_probs (
torch.Tensordengan bentuk(batch_size, config.start_n_top), opsional, dikembalikan jikastart_positionsatauend_positionstidak disediakan) — Probabilitas log untuk kemungkinan token awal teratas sebanyak config.start_n_top (beam-search). - start_top_index (
torch.LongTensordengan bentuk(batch_size, config.start_n_top), opsional, dikembalikan jikastart_positionsatauend_positionstidak disediakan) — Indeks untuk kemungkinan token awal teratas config.start_n_top (beam-search). - end_top_log_probs (
torch.Tensordengan bentuk(batch_size, config.start_n_top * config.end_n_top), opsional, dikembalikan jikastart_positionsatauend_positionstidak disediakan) — Probabilitas log untukconfig.start_n_top * config.end_n_topkemungkinan token akhir teratas (beam-search). - end_top_index (
torch.LongTensordengan bentuk(batch_size, config.start_n_top * config.end_n_top), opsional, dikembalikan jikastart_positionsatauend_positionstidak disediakan) — Indeks untukconfig.start_n_top * config.end_n_topkemungkinan token akhir teratas (beam-search). - cls_logits (
torch.Tensordengan bentuk(batch_size,), opsional, dikembalikan jikastart_positionsatauend_positionstidak disediakan) — Probabilitas log untuk labelis_impossibledari jawaban. - mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Berisi hidden-states yang telah dihitung sebelumnya. Dapat digunakan (lihat inputmems) untuk mempercepat decoding berurutan. Token id yang sudah diberikan past-nya ke model ini tidak boleh diteruskan sebagaiinput_idskarena sudah dihitung. - hidden_states (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings, jika model memiliki lapisan embedding, + satu untuk output setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
- attentions (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Jenis output dari XLNetForQuestionAnswering.
XLNetModel
kelas transformers.XLNetModel
< source >( config: XLNetConfig )
Parameter
- config (XLNetConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model Xlnet polos yang menghasilkan hidden-states mentah tanpa head spesifik di atasnya.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetModelOutput or tuple(torch.Tensor)
Parameter
- input_ids (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Berisi hidden-states yang sudah dihitung sebelumnya (lihatmemsoutput di bawah). Dapat digunakan untuk mempercepat decoding berurutan. Token id yang sudah memiliki past yang diberikan ke model ini tidak boleh diteruskan sebagaiinput_idskarena sudah dihitung sebelumnya.use_memsharus disetel keTrueuntuk menggunakanmems. - perm_mask (
torch.Tensordengan bentuk(batch_size, sequence_length, sequence_length), opsional) — Mask untuk menunjukkan pola perhatian untuk setiap token input dengan nilai yang dipilih dalam[0, 1]:- jika
perm_mask[k, i, j] = 0, i memperhatikan j dalam batch k; - Jika
perm_mask[k, i, j] = 1, i tidak memperhatikan j pada batch k.
Jika tidak diatur, setiap token memperhatikan semua token lainnya (perhatian bidireksional penuh). Hanya digunakan selama prapelatihan (untuk menentukan urutan faktorisasi) atau untuk decoding berurutan (generasi).
- jika
- target_mapping (
torch.Tensordengan bentuk(batch_size, num_predict, sequence_length), opsional) — Mask untuk menunjukkan token output yang akan digunakan. Jikatarget_mapping[k, i, j] = 1, prediksi ke-i pada batch k berada pada token ke-j. Hanya digunakan selama pretraining untuk partial prediction atau untuk sequential decoding (generation). - token_type_ids (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari[0, 1]:- 0 sesuai dengan token sentence A,
- 1 sesuai dengan token sentence B.
- input_mask (
torch.Tensordengan bentukbatch_size, sequence_length, opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Negatif dariattention_mask, yaitu dengan 0 untuk token asli dan 1 untuk padding, yang dipertahankan untuk kompatibilitas dengan kode basis asli.Nilai mask yang dipilih dalam
[0, 1]:- 1 untuk token yang dimasker,
- 0 untuk token yang tidak dimasker.
Anda hanya dapat menggunakan salah satu dari
input_maskdanattention_mask. - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - use_mems (
bool, opsional) — Apakah akan menggunakan state memori untuk mempercepat decoding berurutan. Jika diset keTrue, model akan menggunakan hidden states dari forward pass sebelumnya untuk menghitung attention, yang dapat meningkatkan performa secara signifikan untuk tugas decoding berurutan. - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihatattentionsdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - return_dict (
bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.
Mengembalikan
XLNetModelOutput atau tuple(torch.Tensor)
A XLNetModelOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (XLNetConfig) dan input.
Metode forward dari XLNetModel menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_predict, hidden_size)) — Urutan hidden-states pada lapisan terakhir model.num_predictbersesuaian dengantarget_mapping.shape[1]. Jikatarget_mappingadalahNone, makanum_predictbersesuaian dengansequence_length.mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Mengandung hidden-states yang telah dihitung sebelumnya. Dapat digunakan (lihat inputmems) untuk mempercepat decoding berurutan. Token id yang past-nya diberikan ke model ini tidak boleh dilewatkan sebagaiinput_idskarena sudah dihitung.hidden_states (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple[torch.Tensor, ...], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
XLNetLMHeadModel
kelas transformers.XLNetLMHeadModel
< source >( config: XLNetConfig )
Parameter
- config (XLNetConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model XLNet dengan kepala pemodelan bahasa di atasnya (lapisan linear dengan bobot yang terikat ke embedding input).
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs ) → XLNetLMHeadModelOutput or tuple(torch.Tensor)
Parameter
- input_ids (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Berisi hidden-states yang sudah dihitung sebelumnya (lihatmemsoutput di bawah). Dapat digunakan untuk mempercepat decoding berurutan. Token id yang sudah memiliki past yang diberikan ke model ini tidak boleh diteruskan sebagaiinput_idskarena sudah dihitung sebelumnya.use_memsharus disetel keTrueuntuk menggunakanmems. - perm_mask (
torch.Tensordengan bentuk(batch_size, sequence_length, sequence_length), opsional) — Mask untuk menunjukkan pola perhatian untuk setiap token input dengan nilai yang dipilih dalam[0, 1]:- jika
perm_mask[k, i, j] = 0, i memperhatikan j dalam batch k; - Jika
perm_mask[k, i, j] = 1, i tidak memperhatikan j pada batch k.
Jika tidak diatur, setiap token memperhatikan semua token lainnya (perhatian bidireksional penuh). Hanya digunakan selama prapelatihan (untuk menentukan urutan faktorisasi) atau untuk decoding berurutan (generasi).
- jika
- target_mapping (
torch.Tensordengan bentuk(batch_size, num_predict, sequence_length), opsional) — Mask untuk menunjukkan token output yang akan digunakan. Jikatarget_mapping[k, i, j] = 1, maka prediksi ke-i pada batch k berada pada token ke-j. Hanya digunakan selama pretraining untuk partial prediction atau untuk sequential decoding (generation). - token_type_ids (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari[0, 1]:- 0 sesuai dengan token sentence A,
- 1 sesuai dengan token sentence B.
- input_mask (
torch.Tensordengan bentukbatch_size, sequence_length, opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Negatif dariattention_mask, yaitu dengan 0 untuk token asli dan 1 untuk padding, yang dipertahankan untuk kompatibilitas dengan kode basis asli.Nilai mask yang dipilih dalam
[0, 1]:- 1 untuk token yang dimasker,
- 0 untuk token yang tidak dimasker.
Anda hanya dapat menggunakan salah satu dari
input_maskdanattention_mask. - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - labels (
torch.LongTensordengan bentuk(batch_size, num_predict), opsional) — Label untuk masked language modeling.num_predictberkorespondensi dengantarget_mapping.shape[1]. Jikatarget_mappingadalahNone, makanum_predictberkorespondensi dengansequence_length.Label harus sesuai dengan kata input yang dimasker yang perlu diprediksi dan bergantung pada
target_mapping. Perhatikan bahwa untuk melakukan pemodelan bahasa auto-regresif standar, tokenharus ditambahkan ke input_ids(lihat fungsiprepare_inputs_for_generationdan contoh di bawah)Indeks dipilih dalam
[-100, 0, ..., config.vocab_size]Semua label yang disetel ke-100diabaikan, loss hanya dihitung untuk label dalam[0, ..., config.vocab_size] - use_mems (
bool, opsional) — Apakah akan menggunakan state memori untuk mempercepat decoding berurutan. Jika diset keTrue, model akan menggunakan hidden states dari forward pass sebelumnya untuk menghitung attention, yang dapat meningkatkan performa secara signifikan untuk tugas decoding berurutan. - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihatattentionsdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - return_dict (
bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa. - logits_to_keep (
Union[int, torch.Tensor], opsional, default0) — Jika berupaint, hitung logits untuklogits_to_keeptoken terakhir. Jika0, hitung logits untuk semuainput_ids(kasus khusus). Hanya logits token terakhir yang diperlukan untuk generasi, dan menghitungnya hanya untuk token tersebut dapat menghemat memori, yang menjadi cukup signifikan untuk urutan panjang atau ukuran kosakata besar. Jika berupatorch.Tensor, harus 1D yang sesuai dengan indeks yang akan dipertahankan pada dimensi panjang urutan. Ini berguna saat menggunakan format tensor terpadu (satu dimensi untuk batch dan panjang urutan).
Mengembalikan
XLNetLMHeadModelOutput atau tuple(torch.Tensor)
Sebuah XLNetLMHeadModelOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (XLNetConfig) dan input.
Metode forward dari XLNetLMHeadModel menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.Tensordengan bentuk (1,), opsional, dikembalikan ketikalabelsdisediakan) — Loss pemodelan bahasa (untuk prediksi token berikutnya).logits (
torch.Tensordengan bentuk(batch_size, num_predict, config.vocab_size)) — Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).num_predictbersesuaian dengantarget_mapping.shape[1]. Jikatarget_mappingadalahNone, makanum_predictbersesuaian dengansequence_length.mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Mengandung hidden-states yang telah dihitung sebelumnya. Dapat digunakan (lihat inputmems) untuk mempercepat decoding berurutan. Token id yang past-nya diberikan ke model ini tidak boleh dilewatkan sebagaiinput_idskarena sudah dihitung.hidden_states (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple[torch.Tensor, ...], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Contoh:
>>> from transformers import AutoTokenizer, XLNetLMHeadModel
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetLMHeadModel.from_pretrained("xlnet/xlnet-large-cased")
>>> # We show how to setup inputs to predict a next token using a bi-directional context.
>>> input_ids = torch.tensor(
... tokenizer.encode("Hello, my dog is very <mask>", add_special_tokens=False)
... ).unsqueeze(
... 0
... ) # We will predict the masked token
>>> perm_mask = torch.zeros((1, input_ids.shape[1], input_ids.shape[1]), dtype=torch.float)
>>> perm_mask[:, :, -1] = 1.0 # Previous tokens don't see last token
>>> target_mapping = torch.zeros(
... (1, 1, input_ids.shape[1]), dtype=torch.float
... ) # Shape [1, 1, seq_length] => let's predict one token
>>> target_mapping[
... 0, 0, -1
... ] = 1.0 # Our first (and only) prediction will be the last token of the sequence (the masked token)
>>> outputs = model(input_ids, perm_mask=perm_mask, target_mapping=target_mapping)
>>> next_token_logits = outputs[
... 0
... ] # Output has shape [target_mapping.size(0), target_mapping.size(1), config.vocab_size]
>>> # The same way can the XLNetLMHeadModel be used to be trained by standard auto-regressive language modeling.
>>> input_ids = torch.tensor(
... tokenizer.encode("Hello, my dog is very <mask>", add_special_tokens=False)
... ).unsqueeze(
... 0
... ) # We will predict the masked token
>>> labels = torch.tensor(tokenizer.encode("cute", add_special_tokens=False)).unsqueeze(0)
>>> assert labels.shape[0] == 1, "only one word will be predicted"
>>> perm_mask = torch.zeros((1, input_ids.shape[1], input_ids.shape[1]), dtype=torch.float)
>>> perm_mask[
... :, :, -1
... ] = 1.0 # Previous tokens don't see last token as is done in standard auto-regressive lm training
>>> target_mapping = torch.zeros(
... (1, 1, input_ids.shape[1]), dtype=torch.float
... ) # Shape [1, 1, seq_length] => let's predict one token
>>> target_mapping[
... 0, 0, -1
... ] = 1.0 # Our first (and only) prediction will be the last token of the sequence (the masked token)
>>> outputs = model(input_ids, perm_mask=perm_mask, target_mapping=target_mapping, labels=labels)
>>> loss = outputs.loss
>>> next_token_logits = (
... outputs.logits
... ) # Logits have shape [target_mapping.size(0), target_mapping.size(1), config.vocab_size]XLNetForSequenceClassification
kelas transformers.XLNetForSequenceClassification
< source >( config: XLNetConfig )
Parameter
- config (XLNetConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model XLNet dengan kepala klasifikasi/regresi urutan di atasnya (lapisan linear di atas output yang dipool) misalnya untuk tugas GLUE.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetForSequenceClassificationOutput or tuple(torch.Tensor)
Parameter
- input_ids (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Berisi hidden-states yang sudah dihitung sebelumnya (lihatmemsoutput di bawah). Dapat digunakan untuk mempercepat decoding berurutan. Token id yang sudah memiliki past yang diberikan ke model ini tidak boleh diteruskan sebagaiinput_idskarena sudah dihitung sebelumnya.use_memsharus disetel keTrueuntuk menggunakanmems. - perm_mask (
torch.Tensordengan bentuk(batch_size, sequence_length, sequence_length), opsional) — Mask untuk menunjukkan pola perhatian untuk setiap token input dengan nilai yang dipilih dalam[0, 1]:- jika
perm_mask[k, i, j] = 0, i memperhatikan j dalam batch k; - Jika
perm_mask[k, i, j] = 1, i tidak memperhatikan j pada batch k.
Jika tidak diatur, setiap token memperhatikan semua token lainnya (perhatian bidireksional penuh). Hanya digunakan selama prapelatihan (untuk menentukan urutan faktorisasi) atau untuk decoding berurutan (generasi).
- jika
- target_mapping (
torch.Tensordengan bentuk(batch_size, num_predict, sequence_length), opsional) — Mask untuk menunjukkan token output yang akan digunakan. Jikatarget_mapping[k, i, j] = 1, prediksi ke-i pada batch k berada pada token ke-j. Hanya digunakan selama pretraining untuk partial prediction atau untuk sequential decoding (generation). - token_type_ids (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari[0, 1]:- 0 sesuai dengan token sentence A,
- 1 sesuai dengan token sentence B.
- input_mask (
torch.Tensordengan bentukbatch_size, sequence_length, opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Negatif dariattention_mask, yaitu dengan 0 untuk token asli dan 1 untuk padding, yang dipertahankan untuk kompatibilitas dengan kode basis asli.Nilai mask yang dipilih dalam
[0, 1]:- 1 untuk token yang dimasker,
- 0 untuk token yang tidak dimasker.
Anda hanya dapat menggunakan salah satu dari
input_maskdanattention_mask. - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - labels (
torch.LongTensordengan bentuk(batch_size,), opsional) — Label untuk menghitung loss klasifikasi/regresi urutan. Indeks harus berada dalam[0, ..., config.num_labels - 1]. Jikaconfig.num_labels == 1, loss regresi dihitung (Mean-Square loss). Jikaconfig.num_labels > 1, loss klasifikasi dihitung (Cross-Entropy). - use_mems (
bool, opsional) — Apakah akan menggunakan state memori untuk mempercepat decoding berurutan. Jika diset keTrue, model akan menggunakan hidden states dari forward pass sebelumnya untuk menghitung attention, yang dapat meningkatkan performa secara signifikan untuk tugas decoding berurutan. - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihatattentionsdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - return_dict (
bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.
Mengembalikan
XLNetForSequenceClassificationOutput atau tuple(torch.Tensor)
Sebuah XLNetForSequenceClassificationOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (XLNetConfig) dan input.
Metode forward dari XLNetForSequenceClassification menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabeldisediakan) — Loss klasifikasi (atau regresi jika config.num_labels==1).logits (
torch.Tensordengan bentuk(batch_size, config.num_labels)) — Skor klasifikasi (atau regresi jika config.num_labels==1) (sebelum SoftMax).mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Mengandung hidden-states yang telah dihitung sebelumnya. Dapat digunakan (lihat inputmems) untuk mempercepat decoding berurutan. Token id yang past-nya diberikan ke model ini tidak boleh dilewatkan sebagaiinput_idskarena sudah dihitung.hidden_states (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple[torch.Tensor, ...], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Contoh klasifikasi label tunggal:
>>> import torch
>>> from transformers import AutoTokenizer, XLNetForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetForSequenceClassification.from_pretrained("xlnet/xlnet-large-cased")
>>> 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 = XLNetForSequenceClassification.from_pretrained("xlnet/xlnet-large-cased", num_labels=num_labels)
>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...Contoh klasifikasi multi-label:
>>> import torch
>>> from transformers import AutoTokenizer, XLNetForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetForSequenceClassification.from_pretrained("xlnet/xlnet-large-cased", 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 = XLNetForSequenceClassification.from_pretrained(
... "xlnet/xlnet-large-cased", 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).lossXLNetForMultipleChoice
kelas transformers.XLNetForMultipleChoice
< source >( config: XLNetConfig )
Parameter
- config (XLNetConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model Xlnet dengan kepala klasifikasi pilihan ganda di atasnya (lapisan linear di atas output yang dipooling dan softmax), misalnya untuk tugas RocStories/SWAG.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetForMultipleChoiceOutput or tuple(torch.Tensor)
Parameter
- input_ids (
torch.LongTensordengan bentuk(batch_size, num_choices, sequence_length)) — Indeks token dari urutan input dalam kosakata.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- token_type_ids (
torch.LongTensordengan bentuk(batch_size, num_choices, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari[0, 1]:- 0 sesuai dengan token sentence A,
- 1 sesuai dengan token sentence B.
- input_mask (
torch.Tensordengan bentukbatch_size, num_choices, sequence_length, opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Negatif dariattention_mask, yaitu dengan 0 untuk token asli dan 1 untuk padding, yang dipertahankan untuk kompatibilitas dengan kode basis asli.Nilai mask yang dipilih dalam
[0, 1]:- 1 untuk token yang dimasker,
- 0 untuk token yang tidak dimasker.
Anda hanya dapat menggunakan salah satu dari
input_maskdanattention_mask. - attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Berisi hidden-states yang sudah dihitung sebelumnya (lihatmemsoutput di bawah). Dapat digunakan untuk mempercepat decoding berurutan. Token id yang sudah memiliki past yang diberikan ke model ini tidak boleh diteruskan sebagaiinput_idskarena sudah dihitung sebelumnya.use_memsharus disetel keTrueuntuk menggunakanmems. - perm_mask (
torch.Tensordengan bentuk(batch_size, sequence_length, sequence_length), opsional) — Mask untuk menunjukkan pola perhatian untuk setiap token input dengan nilai yang dipilih dalam[0, 1]:- jika
perm_mask[k, i, j] = 0, i memperhatikan j dalam batch k; - Jika
perm_mask[k, i, j] = 1, i tidak memperhatikan j pada batch k.
Jika tidak diatur, setiap token memperhatikan semua token lainnya (perhatian bidireksional penuh). Hanya digunakan selama prapelatihan (untuk menentukan urutan faktorisasi) atau untuk decoding berurutan (generasi).
- jika
- target_mapping (
torch.Tensordengan bentuk(batch_size, num_predict, sequence_length), opsional) — Mask untuk menunjukkan token output yang akan digunakan. Jikatarget_mapping[k, i, j] = 1, prediksi ke-i pada batch k berada pada token ke-j. Hanya digunakan selama pretraining untuk partial prediction atau untuk sequential decoding (generation). - inputs_embeds (
torch.Tensordengan bentuk(batch_size, num_choices, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - labels (
torch.LongTensordengan bentuk(batch_size,), opsional) — Label untuk menghitung loss klasifikasi pilihan ganda. Indeks harus berada dalam `[0, …, - use_mems (
bool, opsional) — Apakah akan menggunakan state memori untuk mempercepat decoding berurutan. Jika diset keTrue, model akan menggunakan hidden states dari forward pass sebelumnya untuk menghitung attention, yang dapat meningkatkan performa secara signifikan untuk tugas decoding berurutan. - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihatattentionsdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - return_dict (
bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.
Mengembalikan
XLNetForMultipleChoiceOutput atau tuple(torch.Tensor)
Sebuah XLNetForMultipleChoiceOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (XLNetConfig) dan input.
Metode forward dari XLNetForMultipleChoice menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.Tensordengan bentuk (1,), opsional, dikembalikan saatlabelsdisediakan) — Loss klasifikasi.logits (
torch.Tensordengan bentuk(batch_size, num_choices)) — num_choices adalah dimensi kedua dari tensor input. (lihat input_ids di atas).Skor klasifikasi (sebelum SoftMax).
mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Mengandung hidden-states yang telah dihitung sebelumnya. Dapat digunakan (lihat inputmems) untuk mempercepat decoding berurutan. Token id yang past-nya diberikan ke model ini tidak boleh dilewatkan sebagaiinput_idskarena sudah dihitung.hidden_states (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple[torch.Tensor, ...], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Contoh:
>>> from transformers import AutoTokenizer, XLNetForMultipleChoice
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetForMultipleChoice.from_pretrained("xlnet/xlnet-large-cased")
>>> 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.logitsXLNetForTokenClassification
kelas transformers.XLNetForTokenClassification
< source >( config: XLNetConfig )
Parameter
- config (XLNetConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Transformer Xlnet dengan kepala klasifikasi token di atasnya (lapisan linear di atas output hidden-states), misalnya untuk tugas Named-Entity-Recognition (NER).
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetForTokenClassificationOutput or tuple(torch.Tensor)
Parameter
- input_ids (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Berisi hidden-states yang sudah dihitung sebelumnya (lihatmemsoutput di bawah). Dapat digunakan untuk mempercepat decoding berurutan. Token id yang sudah memiliki past yang diberikan ke model ini tidak boleh diteruskan sebagaiinput_idskarena sudah dihitung sebelumnya.use_memsharus disetel keTrueuntuk menggunakanmems. - perm_mask (
torch.Tensordengan bentuk(batch_size, sequence_length, sequence_length), opsional) — Mask untuk menunjukkan pola perhatian untuk setiap token input dengan nilai yang dipilih dalam[0, 1]:- jika
perm_mask[k, i, j] = 0, i memperhatikan j dalam batch k; - Jika
perm_mask[k, i, j] = 1, i tidak memperhatikan j pada batch k.
Jika tidak diatur, setiap token memperhatikan semua token lainnya (perhatian bidireksional penuh). Hanya digunakan selama prapelatihan (untuk menentukan urutan faktorisasi) atau untuk decoding berurutan (generasi).
- jika
- target_mapping (
torch.Tensordengan bentuk(batch_size, num_predict, sequence_length), opsional) — Mask untuk menunjukkan token output yang akan digunakan. Jikatarget_mapping[k, i, j] = 1, maka prediksi ke-i pada batch k berada pada token ke-j. Hanya digunakan selama pretraining untuk partial prediction atau untuk sequential decoding (generation). - token_type_ids (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari[0, 1]:- 0 sesuai dengan token sentence A,
- 1 sesuai dengan token sentence B.
- input_mask (
torch.Tensordengan bentukbatch_size, sequence_length, opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Negatif dariattention_mask, yaitu dengan 0 untuk token asli dan 1 untuk padding, yang dipertahankan untuk kompatibilitas dengan kode basis asli.Nilai mask yang dipilih dalam
[0, 1]:- 1 untuk token yang dimasker,
- 0 untuk token yang tidak dimasker.
Anda hanya dapat menggunakan salah satu dari
input_maskdanattention_mask. - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - labels (
torch.LongTensordengan bentuk(batch_size,), opsional) — Label untuk menghitung loss klasifikasi pilihan ganda. Indeks harus berada dalam[0, ..., num_choices]di mana num_choices adalah ukuran dimensi kedua dari tensor input. (lihat input_ids di atas) - use_mems (
bool, opsional) — Apakah akan menggunakan state memori untuk mempercepat decoding berurutan. Jika diatur keTrue, model akan menggunakan hidden states dari forward pass sebelumnya untuk menghitung attention, yang dapat secara signifikan meningkatkan kinerja untuk tugas decoding berurutan. State memori untuk mempercepat decoding berurutan. Jika diatur keTrue, model akan menggunakan hidden states dari forward pass sebelumnya untuk menghitung attention, yang dapat secara signifikan meningkatkan kinerja untuk tugas decoding berurutan. - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihatattentionsdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - return_dict (
bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.
Mengembalikan
XLNetForTokenClassificationOutput atau tuple(torch.Tensor)
Sebuah XLNetForTokenClassificationOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (XLNetConfig) dan input.
Metode forward dari XLNetForTokenClassification menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss klasifikasi.logits (
torch.Tensordengan bentuk(batch_size, sequence_length, config.num_labels)) — Skor klasifikasi (sebelum SoftMax).mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Mengandung hidden-states yang telah dihitung sebelumnya. Dapat digunakan (lihat inputmems) untuk mempercepat decoding berurutan. Token id yang past-nya diberikan ke model ini tidak boleh dilewatkan sebagaiinput_idskarena sudah dihitung.hidden_states (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple[torch.Tensor, ...], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Contoh:
>>> from transformers import AutoTokenizer, XLNetForTokenClassification
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetForTokenClassification.from_pretrained("xlnet/xlnet-large-cased")
>>> 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)
...XLNetForQuestionAnsweringSimple
kelas transformers.XLNetForQuestionAnsweringSimple
< source >( config: XLNetConfig )
Parameter
- config (XLNetConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model XLNet dengan kepala klasifikasi span di atasnya untuk tugas tanya-jawab ekstraktif seperti SQuAD (lapisan linear di atas keluaran hidden-states untuk menghitung span start logits dan span end logits).
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonestart_positions: typing.Optional[torch.Tensor] = Noneend_positions: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetForQuestionAnsweringSimpleOutput or tuple(torch.Tensor)
Parameter
- input_ids (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Berisi hidden-states yang sudah dihitung sebelumnya (lihatmemsoutput di bawah). Dapat digunakan untuk mempercepat decoding berurutan. Token id yang sudah memiliki past yang diberikan ke model ini tidak boleh diteruskan sebagaiinput_idskarena sudah dihitung sebelumnya.use_memsharus disetel keTrueuntuk menggunakanmems. - perm_mask (
torch.Tensordengan bentuk(batch_size, sequence_length, sequence_length), opsional) — Mask untuk menunjukkan pola perhatian untuk setiap token input dengan nilai yang dipilih dalam[0, 1]:- jika
perm_mask[k, i, j] = 0, i memperhatikan j dalam batch k; - Jika
perm_mask[k, i, j] = 1, i tidak memperhatikan j pada batch k.
Jika tidak diatur, setiap token memperhatikan semua token lainnya (perhatian bidireksional penuh). Hanya digunakan selama prapelatihan (untuk menentukan urutan faktorisasi) atau untuk decoding berurutan (generasi).
- jika
- target_mapping (
torch.Tensordengan bentuk(batch_size, num_predict, sequence_length), opsional) — Mask untuk menunjukkan token output yang akan digunakan. Jikatarget_mapping[k, i, j] = 1, maka prediksi ke-i pada batch k berada pada token ke-j. Hanya digunakan selama pretraining untuk partial prediction atau untuk sequential decoding (generation). - token_type_ids (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari[0, 1]:- 0 sesuai dengan token sentence A,
- 1 sesuai dengan token sentence B.
- input_mask (
torch.Tensordengan bentukbatch_size, sequence_length, opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Negatif dariattention_mask, yaitu dengan 0 untuk token asli dan 1 untuk padding, yang dipertahankan untuk kompatibilitas dengan kode basis asli.Nilai mask yang dipilih dalam
[0, 1]:- 1 untuk token yang dimasker,
- 0 untuk token yang tidak dimasker.
Anda hanya dapat menggunakan salah satu dari
input_maskdanattention_mask. - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - start_positions (
torch.Tensordengan bentuk(batch_size,), opsional) — Label untuk posisi (indeks) awal span berlabel untuk menghitung kerugian klasifikasi token. Posisi dibatasi pada panjang sekuens (sequence_length). Posisi di luar sekuens tidak diperhitungkan dalam perhitungan kerugian. - end_positions (
torch.Tensordengan bentuk(batch_size,), opsional) — Label untuk posisi (indeks) akhir span berlabel untuk menghitung kerugian klasifikasi token. Posisi dibatasi pada panjang sekuens (sequence_length). Posisi di luar sekuens tidak diperhitungkan dalam perhitungan kerugian. - use_mems (
bool, opsional) — Apakah akan menggunakan state memori untuk mempercepat decoding berurutan. Jika diset keTrue, model akan menggunakan hidden states dari forward pass sebelumnya untuk menghitung attention, yang dapat meningkatkan performa secara signifikan untuk tugas decoding berurutan. - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihatattentionsdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - return_dict (
bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.
Mengembalikan
XLNetForQuestionAnsweringSimpleOutput atau tuple(torch.Tensor)
Sebuah XLNetForQuestionAnsweringSimpleOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (XLNetConfig) dan input.
Metode forward dari XLNetForQuestionAnsweringSimple menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Total loss ekstraksi span adalah jumlah dari Cross-Entropy untuk posisi awal dan akhir.start_logits (
torch.Tensordengan bentuk(batch_size, sequence_length,)) — Skor awal span (sebelum SoftMax).end_logits (
torch.Tensordengan bentuk(batch_size, sequence_length,)) — Skor akhir span (sebelum SoftMax).mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Mengandung hidden-states yang telah dihitung sebelumnya. Dapat digunakan (lihat inputmems) untuk mempercepat decoding berurutan. Token id yang past-nya diberikan ke model ini tidak boleh dilewatkan sebagaiinput_idskarena sudah dihitung.hidden_states (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple[torch.Tensor, ...], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Contoh:
>>> from transformers import AutoTokenizer, XLNetForQuestionAnsweringSimple
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetForQuestionAnsweringSimple.from_pretrained("xlnet/xlnet-large-cased")
>>> 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)
...XLNetForQuestionAnswering
kelas transformers.XLNetForQuestionAnswering
< source >( config: XLNetConfig )
Parameter
- config (XLNetConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Transformer Xlnet dengan kepala klasifikasi span di atasnya untuk tugas tanya-jawab ekstraktif seperti SQuAD (lapisan linear di atas keluaran hidden-states untuk menghitung span start logits dan span end logits).
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonestart_positions: typing.Optional[torch.Tensor] = Noneend_positions: typing.Optional[torch.Tensor] = Noneis_impossible: typing.Optional[torch.Tensor] = Nonecls_index: typing.Optional[torch.Tensor] = Nonep_mask: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetForQuestionAnsweringOutput or tuple(torch.Tensor)
Parameter
- input_ids (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Berisi hidden-states yang sudah dihitung sebelumnya (lihatmemsoutput di bawah). Dapat digunakan untuk mempercepat decoding berurutan. Token id yang sudah memiliki past yang diberikan ke model ini tidak boleh diteruskan sebagaiinput_idskarena sudah dihitung sebelumnya.use_memsharus disetel keTrueuntuk menggunakanmems. - perm_mask (
torch.Tensordengan bentuk(batch_size, sequence_length, sequence_length), opsional) — Mask untuk menunjukkan pola perhatian untuk setiap token input dengan nilai yang dipilih dalam[0, 1]:- jika
perm_mask[k, i, j] = 0, i memperhatikan j dalam batch k; - Jika
perm_mask[k, i, j] = 1, i tidak memperhatikan j pada batch k.
Jika tidak diatur, setiap token memperhatikan semua token lainnya (perhatian bidireksional penuh). Hanya digunakan selama prapelatihan (untuk menentukan urutan faktorisasi) atau untuk decoding berurutan (generasi).
- jika
- target_mapping (
torch.Tensordengan bentuk(batch_size, num_predict, sequence_length), opsional) — Mask untuk menunjukkan token output yang akan digunakan. Jikatarget_mapping[k, i, j] = 1, maka prediksi ke-i pada batch k berada pada token ke-j. Hanya digunakan selama pretraining untuk partial prediction atau untuk sequential decoding (generation). - token_type_ids (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari[0, 1]:- 0 sesuai dengan token sentence A,
- 1 sesuai dengan token sentence B.
- input_mask (
torch.Tensordengan bentukbatch_size, sequence_length, opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Negatif dariattention_mask, yaitu dengan 0 untuk token asli dan 1 untuk padding, yang dipertahankan untuk kompatibilitas dengan kode basis asli.Nilai mask yang dipilih dalam
[0, 1]:- 1 untuk token yang dimasker,
- 0 untuk token yang tidak dimasker.
Anda hanya dapat menggunakan salah satu dari
input_maskdanattention_mask. - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - start_positions (
torch.Tensordengan bentuk(batch_size,), opsional) — Label untuk posisi (indeks) awal span berlabel untuk menghitung kerugian klasifikasi token. Posisi dibatasi pada panjang sekuens (sequence_length). Posisi di luar sekuens tidak diperhitungkan dalam perhitungan kerugian. - end_positions (
torch.Tensordengan bentuk(batch_size,), opsional) — Label untuk posisi (indeks) akhir span berlabel untuk menghitung kerugian klasifikasi token. Posisi dibatasi pada panjang sekuens (sequence_length). Posisi di luar sekuens tidak diperhitungkan dalam perhitungan kerugian. - is_impossible (
torch.LongTensordengan bentuk(batch_size,), opsional) — Label apakah sebuah pertanyaan memiliki jawaban atau tidak (SQuAD 2.0) - cls_index (
torch.LongTensordengan bentuk(batch_size,), opsional) — Label untuk posisi (indeks) token klasifikasi yang digunakan sebagai input untuk menghitung plausibilitas jawaban. - p_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask opsional untuk token yang tidak dapat menjadi jawaban (mis. [CLS], [PAD], …). 1.0 berarti token harus di-mask. 0.0 berarti token tidak di-mask. - use_mems (
bool, opsional) — Apakah akan menggunakan state memori untuk mempercepat decoding berurutan. Jika diset keTrue, model akan menggunakan hidden states dari forward pass sebelumnya untuk menghitung attention, yang dapat meningkatkan performa secara signifikan untuk tugas decoding berurutan. - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihatattentionsdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - return_dict (
bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.
Mengembalikan
XLNetForQuestionAnsweringOutput atau tuple(torch.Tensor)
Sebuah XLNetForQuestionAnsweringOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (XLNetConfig) dan input.
Metode forward dari XLNetForQuestionAnswering menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan jikastart_positionsdanend_positionskeduanya disediakan) — Klasifikasi loss sebagai jumlah dari start token, end token (dan is_impossible jika disediakan) klasifikasi losses.start_top_log_probs (
torch.Tensordengan bentuk(batch_size, config.start_n_top), opsional, dikembalikan jikastart_positionsatauend_positionstidak disediakan) — Probabilitas log untuk kemungkinan token awal teratas config.start_n_top (beam-search).start_top_index (
torch.LongTensordengan bentuk(batch_size, config.start_n_top), opsional, dikembalikan jikastart_positionsatauend_positionstidak disediakan) — Indeks untuk kemungkinan token awal teratas config.start_n_top (beam-search).end_top_log_probs (
torch.Tensordengan bentuk(batch_size, config.start_n_top * config.end_n_top), opsional, dikembalikan jikastart_positionsatauend_positionstidak disediakan) — Probabilitas log untukconfig.start_n_top * config.end_n_topkemungkinan token akhir teratas (beam-search).end_top_index (
torch.LongTensordengan bentuk(batch_size, config.start_n_top * config.end_n_top), opsional, dikembalikan jikastart_positionsatauend_positionstidak disediakan) — Indeks untuk kemungkinan token akhir teratasconfig.start_n_top * config.end_n_top(beam-search).cls_logits (
torch.Tensordengan bentuk(batch_size,), opsional, dikembalikan jikastart_positionsatauend_positionstidak disediakan) — Probabilitas log untuk labelis_impossibledari jawaban.mems (
list[torch.Tensor]dengan panjangconfig.n_layers) — Mengandung hidden-states yang telah dihitung sebelumnya. Dapat digunakan (lihat inputmems) untuk mempercepat decoding berurutan. Token id yang past-nya diberikan ke model ini tidak boleh dilewatkan sebagaiinput_idskarena sudah dihitung.hidden_states (
tuple[torch.Tensor, ...], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple[torch.Tensor, ...], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Contoh:
>>> from transformers import AutoTokenizer, XLNetForQuestionAnswering
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-base-cased")
>>> model = XLNetForQuestionAnswering.from_pretrained("xlnet/xlnet-base-cased")
>>> input_ids = torch.tensor(tokenizer.encode("Hello, my dog is cute", add_special_tokens=True)).unsqueeze(
... 0
... ) # Batch size 1
>>> start_positions = torch.tensor([1])
>>> end_positions = torch.tensor([3])
>>> outputs = model(input_ids, start_positions=start_positions, end_positions=end_positions)
>>> loss = outputs.loss