Transformers documentation
HerBERT
Model ini dipublikasikan di HF papers pada 2020-05-01 dan disumbangkan ke Hugging Face Transformers pada 2020-11-16.
HerBERT
Ikhtisar
Model HerBERT diusulkan dalam KLEJ: Comprehensive Benchmark for Polish Language Understanding oleh Piotr Rybak, Robert Mroczkowski, Janusz Tracz, dan Ireneusz Gawlik. Ini adalah Language Model berbasis BERT yang dilatih pada Korpus Bahasa Polandia menggunakan hanya tujuan MLM dengan masking dinamis seluruh kata.
Abstrak dari makalah tersebut adalah sebagai berikut:
Beberapa tahun terakhir, serangkaian model berbasis Transformer membuka jalan bagi peningkatan besar dalam tugas pemahaman bahasa alami umum (NLU). Laju penelitian yang cepat ini tidak akan mungkin terjadi tanpa benchmark NLU umum, yang memungkinkan perbandingan yang adil antara metode yang diusulkan. Namun, benchmark semacam itu hanya tersedia untuk segelintir bahasa. Untuk mengatasi masalah ini, kami memperkenalkan benchmark multi-tugas yang komprehensif untuk pemahaman bahasa Polandia, disertai dengan papan peringkat daring. Benchmark ini terdiri dari serangkaian tugas yang beragam, diadaptasi dari dataset yang ada untuk pengenalan entitas bernama, penjawab pertanyaan, entailment teks, dan lainnya. Kami juga memperkenalkan tugas analisis sentimen baru untuk domain e-commerce, yang dinamakan Allegro Reviews (AR). Untuk memastikan skema evaluasi yang umum dan mempromosikan model yang dapat digeneralisasi ke berbagai tugas NLU, benchmark ini mencakup dataset dari berbagai domain dan aplikasi. Selain itu, kami merilis HerBERT, model berbasis Transformer yang dilatih secara khusus untuk bahasa Polandia, yang memiliki kinerja rata-rata terbaik dan memperoleh hasil terbaik untuk tiga dari sembilan tugas. Terakhir, kami menyediakan evaluasi yang luas, termasuk beberapa baseline standar dan model berbasis Transformer multibahasa yang baru-baru ini diusulkan.
Model ini disumbangkan oleh rmroczkowski. Kode aslinya dapat ditemukan di sini.
Contoh penggunaan
from transformers import HerbertTokenizer, RobertaModel
tokenizer = HerbertTokenizer.from_pretrained("allegro/herbert-klej-cased-tokenizer-v1")
model = RobertaModel.from_pretrained("allegro/herbert-klej-cased-v1", device_map="auto")
encoded_input = tokenizer.encode("Kto ma lepszą sztukę, ma lepszy rząd – to jasne.", return_tensors="pt").to(model.device)
outputs = model(encoded_input)
# HerBERT can also be loaded using AutoTokenizer and AutoModel:
from transformers import AutoModel, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("allegro/herbert-klej-cased-tokenizer-v1")
model = AutoModel.from_pretrained("allegro/herbert-klej-cased-v1", device_map="auto")Implementasi Herbert sama dengan
BERTkecuali untuk metode tokenisasi. Lihat dokumentasi BERT untuk referensi API dan contoh.
HerbertTokenizer
kelas transformers.HerbertTokenizer
< source >( vocab: str | dict[str, int] | None = Nonemerges: str | list[str] | None = Nonecls_token: str = '<s>'unk_token: str = '<unk>'pad_token: str = '<pad>'mask_token: str = '<mask>'sep_token: str = '</s>'vocab_file: str | None = Nonemerges_file: str | None = None**kwargs )
Parameter
- vocab_file (
str) — Path ke file kosakata. - merges_file (
str) — Path ke file merges. - cls_token (
str, opsional, default"<s>") — Token klasifikator. - unk_token (
str, opsional, defaultnya"<unk>") — Token yang tidak dikenal. - pad_token (
str, opsional, defaultnya"<pad>") — Token padding. - mask_token (
str, opsional, default"<mask>") — Token mask. - sep_token (
str, opsional, defaultnya"</s>") — Token pemisah. - vocab (
str,dictataulist, opsional) — Kamus kosakata kustom. - merges (
strataulist[str], opsional) — Daftar merges kustom.
Konstruksi tokenizer BPE untuk HerBERT (didukung oleh pustaka tokenizers dari HuggingFace).
Kekhasan:
- menggunakan pre-tokenizer BERT: BertPreTokenizer memisahkan token berdasarkan spasi, dan juga berdasarkan tanda baca. Setiap kemunculan karakter tanda baca akan diperlakukan secara terpisah.
Tokenizer ini mewarisi dari TokenizersBackend yang berisi sebagian besar metode. Pengguna harus merujuk ke kelas induk untuk informasi lebih lanjut mengenai metode.