Transformers documentation
mLUKE
Model ini dipublikasikan di HF papers pada 2021-10-15 dan disumbangkan ke Hugging Face Transformers pada 2021-12-07.
mLUKE
Ikhtisar
Model mLUKE diusulkan dalam mLUKE: The Power of Entity Representations in Multilingual Pretrained Language Models oleh Ryokan Ri, Ikuya Yamada, dan Yoshimasa Tsuruoka. Ini adalah ekstensi multibahasa dari model LUKE yang dilatih berdasarkan XLM-RoBERTa.
Model ini didasarkan pada XLM-RoBERTa dan menambahkan entity embeddings, yang membantu meningkatkan kinerja pada berbagai tugas downstream yang melibatkan penalaran tentang entitas, seperti named entity recognition, extractive question answering, relation classification, dan cloze-style knowledge completion.
Abstrak dari makalah tersebut adalah sebagai berikut:
Studi-studi terbaru menunjukkan bahwa model bahasa pralatih multibahasa dapat ditingkatkan secara efektif dengan informasi penyesuaian lintas bahasa dari entitas Wikipedia. Namun, metode yang ada hanya memanfaatkan informasi entitas dalam prapelatihan dan tidak secara eksplisit menggunakan entitas dalam tugas turunan. Dalam studi ini, kami mengeksplorasi efektivitas pemanfaatan representasi entitas untuk tugas lintas bahasa turunan. Kami melatih model bahasa multibahasa dengan 24 bahasa menggunakan representasi entitas dan menunjukkan bahwa model tersebut secara konsisten melampaui model pralatih berbasis kata dalam berbagai tugas transfer lintas bahasa. Kami juga menganalisis model tersebut dan wawasan utamanya adalah bahwa memasukkan representasi entitas ke dalam input memungkinkan kami mengekstrak fitur-fitur yang lebih tidak bergantung pada bahasa. Kami juga mengevaluasi model tersebut dengan tugas prompt cloze multibahasa menggunakan dataset mLAMA. Kami menunjukkan bahwa prompt berbasis entitas lebih mungkin memicu pengetahuan faktual yang benar dibandingkan hanya menggunakan representasi kata.
Model ini disumbangkan oleh ryo0634. Kode aslinya dapat ditemukan di sini.
Tips penggunaan
Seseorang dapat langsung memasukkan bobot mLUKE ke dalam model LUKE, seperti berikut:
from transformers import LukeModel
model = LukeModel.from_pretrained("studio-ousia/mluke-base", device_map="auto")Perhatikan bahwa mLUKE memiliki tokenizer-nya sendiri, MLukeTokenizer. Anda dapat menginisialisasinya sebagai berikut:
from transformers import MLukeTokenizer
tokenizer = MLukeTokenizer.from_pretrained("studio-ousia/mluke-base")Karena arsitektur mLUKE setara dengan LUKE, Anda dapat merujuk ke halaman dokumentasi LUKE untuk semua tips, contoh kode, dan notebook.
MLukeTokenizer
kelas transformers.MLukeTokenizer
< source >( bos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'task = Nonemax_entity_length = 32max_mention_length = 30entity_1_token = '<ent>'entity_2_token = '<ent2>'entity_unk_token = '[UNK]'entity_pad_token = '[PAD]'entity_mask_token = '[MASK]'entity_mask2_token = '[MASK2]'vocab: str | dict | list | None = Noneentity_vocab: str | dict | list | None = None**kwargs )
Parameter
- vocab_file (
str) — Path ke file kosakata. - entity_vocab_file (
str) — Path ke file kosakata entitas. - 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. - sep_token (
str, opsional, default"</s>") — 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. - cls_token (
str, opsional, default"<s>") — 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. - 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. - pad_token (
str, opsional, defaultnya"<pad>") — Token yang digunakan untuk padding, misalnya saat membatching urutan dengan panjang yang berbeda. - 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. - task (
str, opsional) — Tugas yang ingin Anda siapkan untuk sekuens. Salah satu dari"entity_classification","entity_pair_classification", atau"entity_span_classification". Jika Anda menentukan argumen ini, sekuens entitas dibuat secara otomatis berdasarkan span entitas yang diberikan. - max_entity_length (
int, opsional, defaultnya 32) — Panjang maksimum darientity_ids. - max_mention_length (
int, opsional, defaultnya 30) — Jumlah token maksimum di dalam rentang entitas. - entity_1_token (
str, opsional, defaultnya<ent>) — Token khusus yang digunakan untuk mewakili rentang entitas dalam urutan token kata. Token ini hanya digunakan ketikataskdiatur ke"entity_classification"atau"entity_pair_classification". - entity_2_token (
str, opsional, default<ent2>) — Token khusus yang digunakan untuk mewakili span entitas dalam urutan token kata. Token ini hanya digunakan ketikataskdiatur ke"entity_pair_classification". - additional_special_tokens (
list[str], opsional, defaultnya["<s>NOTUSED", "</s>NOTUSED"]) — Token khusus tambahan yang digunakan oleh tokenizer. - sp_model_kwargs (
dict, opsional) — Akan diteruskan keSentencePieceProcessor.__init__()metode. Python wrapper untuk SentencePiece dapat digunakan, di antara hal-hal lain, untuk mengatur:-
enable_sampling: Aktifkan regularisasi subword. -
nbest_size: Parameter sampling untuk unigram. Tidak valid untuk BPE-Dropout.nbest_size = {0,1}: Tidak ada sampling yang dilakukan.nbest_size > 1: mengambil sampel dari hasil nbest_size.nbest_size < 0: diasumsikan bahwa nbest_size tak hingga dan mengambil sampel dari semua hipotesis (lattice) menggunakan algoritma forward-filtering-and-backward-sampling.
-
alpha: Parameter penghalusan untuk pengambilan sampel unigram, dan probabilitas dropout untuk operasi penggabungan pada BPE-dropout.
-
- sp_model (
SentencePieceProcessor) — Pemroses SentencePiece yang digunakan untuk setiap konversi (string, token, dan ID).
Diadaptasi dari XLMRobertaTokenizer dan LukeTokenizer. Berbasis pada SentencePiece.
Tokenizer ini mewarisi dari PreTrainedTokenizer yang berisi sebagian besar metode utama. Pengguna harus merujuk ke superclass ini untuk informasi lebih lanjut mengenai metode-metode tersebut.
__call__
< source >( text: str | list[str]text_pair: str | list[str] | None = Noneentity_spans: list[tuple[int, int]] | list[list[tuple[int, int]]] | None = Noneentity_spans_pair: list[tuple[int, int]] | list[list[tuple[int, int]]] | None = Noneentities: list[str] | list[list[str]] | None = Noneentities_pair: list[str] | list[list[str]] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy | None = Nonemax_length: int | None = Nonemax_entity_length: int | None = Nonestride: int = 0is_split_into_words: bool | None = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = True**kwargs ) → BatchEncoding
Mengembalikan
BatchEncoding dengan bidang berikut:
-
input_ids — Daftar id token yang akan diberikan ke model.
-
token_type_ids — Daftar token type id yang akan diberikan ke model (ketika
return_token_type_ids=Trueatau jika “token_type_ids” ada diself.model_input_names). -
attention_mask — Daftar indeks yang menentukan token mana yang harus diperhatikan oleh model (ketika
return_attention_mask=Trueatau jika “attention_mask” ada diself.model_input_names). -
entity_ids — Daftar id entitas yang akan diberikan ke model.
-
entity_position_ids — Daftar posisi entitas dalam urutan input yang akan diberikan ke model.
-
entity_token_type_ids — Daftar id tipe token entitas yang akan diberikan ke model (ketika
return_token_type_ids=Trueatau jika “entity_token_type_ids” ada diself.model_input_names). -
entity_attention_mask — Daftar indeks yang menentukan entitas mana yang harus diperhatikan oleh model (jika
return_attention_mask=Trueatau jika “entity_attention_mask” ada di dalamself.model_input_names). -
entity_start_positions — Daftar posisi awal entitas dalam urutan token kata (ketika
task="entity_span_classification"). -
entity_end_positions — Daftar posisi akhir entitas dalam urutan token kata (ketika
task="entity_span_classification"). -
overflowing_tokens — Daftar sekuens token yang meluap (ketika
max_lengthditentukan danreturn_overflowing_tokens=True). -
num_truncated_tokens — Jumlah token yang dipangkas (ketika
max_lengthditentukan danreturn_overflowing_tokens=True). -
special_tokens_mask — Daftar angka 0 dan 1, di mana 1 menandakan token khusus yang ditambahkan dan 0 menandakan token urutan reguler (ketika
add_special_tokens=Truedanreturn_special_tokens_mask=True). -
length — Panjang dari input (ketika
return_length=True)
add_special_tokens (bool, opsional, defaultnya True):
Apakah akan menambahkan token khusus saat mengkodekan urutan. Ini akan menggunakan fungsi PretrainedTokenizerBase.build_inputs_with_special_tokens yang mendasarinya, yang mendefinisikan token mana yang
ditambahkan secara otomatis ke input ids. Ini berguna jika Anda ingin menambahkan token bos atau eos
secara otomatis.
padding (bool, str atau PaddingStrategy, opsional, defaultnya False):
Mengaktifkan dan mengontrol padding. Menerima nilai-nilai berikut:
Trueatau'longest': Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan).'max_length': Pad hingga panjang maksimum yang ditentukan dengan argumenmax_lengthatau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan.Falseatau'do_not_pad'(default): Tidak ada padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda-beda). truncation (bool,stratau TruncationStrategy, opsional, defaultnyaFalse): Mengaktifkan dan mengontrol pemotongan. Menerima nilai-nilai berikut:Trueatau'longest_first': Memotong hingga panjang maksimum yang ditentukan dengan argumenmax_lengthatau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini akan memotong per token, dengan menghapus satu token dari urutan terpanjang dalam pasangan jika sepasang urutan (atau batch pasangan) diberikan.'only_first': Potong hingga panjang maksimum yang ditentukan dengan argumenmax_lengthatau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan pertama dari sebuah pasangan jika sepasang urutan (atau batch dari pasangan) diberikan.'only_second': Potong hingga panjang maksimum yang ditentukan dengan argumenmax_lengthatau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan kedua dari sebuah pasangan jika sepasang urutan (atau batch dari pasangan) diberikan.Falseatau'do_not_truncate'(default): Tidak ada pemotongan (yaitu, dapat menghasilkan batch dengan panjang sekuens yang lebih besar dari ukuran input maksimum yang diizinkan model). max_length (int, opsional): Mengontrol panjang maksimum yang digunakan oleh salah satu parameter pemotongan/pengisian.
Jika tidak disetel atau disetel ke None, ini akan menggunakan panjang maksimum model yang predefined jika panjang maksimum diperlukan oleh salah satu parameter truncation/padding. Jika model tidak memiliki panjang input maksimum yang spesifik (seperti XLNet), truncation/padding ke panjang maksimum akan dinonaktifkan.
stride (int, opsional, default 0):
Jika disetel ke sebuah angka bersama dengan max_length, token yang meluap yang dikembalikan saat return_overflowing_tokens=True akan berisi beberapa token dari akhir urutan terpotong yang dikembalikan untuk menyediakan beberapa tumpang tindih antara urutan terpotong dan urutan yang meluap. Nilai argumen ini menentukan jumlah token yang tumpang tindih.
is_split_into_words (bool, opsional, default False):
Apakah input sudah di-pre-tokenize (misalnya, dipecah menjadi kata). Jika disetel ke True, tokenizer mengasumsikan input sudah dipecah menjadi kata (misalnya, dengan memecahnya pada spasi) yang akan ditokenize. Ini berguna untuk NER atau klasifikasi token.
pad_to_multiple_of (int, opsional):
Jika disetel, akan mem-padded urutan menjadi kelipatan dari nilai yang diberikan. Memerlukan padding untuk diaktifkan. Ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan kemampuan komputasi >= 7.5 (Volta).
padding_side (str, opsional):
Sisi di mana model harus memiliki padding diterapkan. Harus dipilih antara [‘right’, ‘left’].
Nilai default dipilih dari atribut kelas dengan nama yang sama.
return_tensors (str atau TensorType, opsional):
Jika disetel, akan mengembalikan tensor alih-alih daftar integer python. Nilai yang dapat diterima adalah:
'pt': Mengembalikan objek PyTorchtorch.Tensor.'np': Mengembalikan objek Numpynp.ndarray.
return_token_type_ids (bool, opsional):
Apakah akan mengembalikan ID tipe token. Jika dibiarkan pada nilai default, akan mengembalikan ID tipe token sesuai dengan default tokenizer spesifik, yang didefinisikan oleh atribut return_outputs.
Apa itu token type IDs? return_attention_mask (bool, opsional):
Apakah akan mengembalikan attention mask. Jika dibiarkan pada nilai default, akan mengembalikan attention mask sesuai
dengan default tokenizer spesifik, yang didefinisikan oleh atribut return_outputs.
Apa itu attention mask? return_overflowing_tokens (bool, opsional, default False):
Apakah akan mengembalikan urutan token yang meluap. Jika sepasang urutan id input (atau batch dari pasangan) diberikan dengan truncation_strategy = longest_first atau True, error akan dilemparkan alih-alih mengembalikan token yang meluap.
return_special_tokens_mask (bool, opsional, default False):
Apakah akan mengembalikan informasi mask token khusus.
return_offsets_mapping (bool, opsional, default False):
Apakah akan mengembalikan (char_start, char_end) untuk setiap token.
Ini hanya tersedia pada fast tokenizer yang mewarisi dari PreTrainedTokenizerFast, jika menggunakan tokenizer Python, metode ini akan memicu NotImplementedError.
return_length (bool, opsional, default False):
Apakah akan mengembalikan panjang dari input yang dienkod.
verbose (bool, opsional, default True):
Apakah akan mencetak lebih banyak informasi dan peringatan.
**kwargs: diteruskan ke metode self.tokenize()
Simpan hanya file kosakata entitas. tokenizer.json disimpan oleh TokenizersBackend induk.