Transformers documentation
HerBERT
Mô hình này được công bố trên HF papers vào ngày 2020-05-01 và được đóng góp cho Hugging Face Transformers vào ngày 2020-11-16.
HerBERT
Tổng quan
Mô hình HerBERT được đề xuất trong KLEJ: Comprehensive Benchmark for Polish Language Understanding bởi Piotr Rybak, Robert Mroczkowski, Janusz Tracz và Ireneusz Gawlik. Đây là một Language Model dựa trên BERT được huấn luyện trên các Polish Corpora chỉ sử dụng mục tiêu MLM với việc che động toàn bộ từ.
Tóm tắt từ bài báo như sau:
Trong những năm gần đây, một loạt các mô hình dựa trên Transformer đã mở ra những cải tiến lớn trong các tác vụ hiểu ngôn ngữ tự nhiên (NLU) tổng quát. Tốc độ nghiên cứu nhanh chóng như vậy sẽ không thể đạt được nếu không có các bộ chuẩn NLU tổng quát, cho phép so sánh công bằng giữa các phương pháp được đề xuất. Tuy nhiên, các bộ chuẩn như vậy chỉ có sẵn cho một số ít ngôn ngữ. Để giảm bớt vấn đề này, chúng tôi giới thiệu một bộ chuẩn đa tác vụ toàn diện cho việc hiểu ngôn ngữ Ba Lan, kèm theo một bảng xếp hạng trực tuyến. Nó bao gồm một tập hợp đa dạng các tác vụ, được áp dụng từ các bộ dữ liệu hiện có cho nhận thực thể có tên, trả lời câu hỏi, suy luận văn bản và các tác vụ khác. Chúng tôi cũng giới thiệu một tác vụ phân tích cảm xúc mới cho lĩnh vực thương mại điện tử, có tên là Allegro Reviews (AR). Để đảm bảo một phương án đánh giá chung và thúc đẩy các mô hình có khả năng tổng quát hóa sang các tác vụ NLU khác nhau, bộ chuẩn bao gồm các bộ dữ liệu từ nhiều lĩnh vực và ứng dụng khác nhau. Ngoài ra, chúng tôi phát hành HerBERT, một mô hình dựa trên Transformer được huấn luyện đặc biệt cho ngôn ngữ Ba Lan, có hiệu suất trung bình tốt nhất và đạt kết quả tốt nhất cho ba trong số chín tác vụ. Cuối cùng, chúng tôi cung cấp một đánh giá toàn diện, bao gồm một số đường cơ sở tiêu chuẩn và các mô hình đa ngôn ngữ dựa trên Transformer được đề xuất gần đây.
Mô hình này được đóng góp bởi rmroczkowski. Mã gốc có thể được tìm thấy tại đây.
Ví dụ sử dụng
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")Cài đặt Herbert giống hệt với
BERTngoại trừ phương pháp phân tách token. Tham khảo tài liệu BERT để xem tham chiếu API và các ví dụ.
HerbertTokenizer
lớp 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 )
Tham số
- vocab_file (
str) — Đường dẫn đến tệp từ vựng. - merges_file (
str) — Đường dẫn đến tệp merges. - cls_token (
str, tùy chọn, mặc định là"<s>") — Token phân loại. - unk_token (
str, tùy chọn, mặc định là"<unk>") — Token không xác định. - pad_token (
str, tùy chọn, mặc định là"<pad>") — Token đệm. - mask_token (
str, tùy chọn, mặc định là"<mask>") — Token mask. - sep_token (
str, tùy chọn, mặc định là"</s>") — Token phân tách. - vocab (
str,dicthoặclist, tùy chọn) — Từ điển từ vựng tùy chỉnh. - merges (
strhoặclist[str], tùy chọn) — Danh sách merges tùy chỉnh.
Xây dựng bộ phân từ BPE cho HerBERT (dựa trên thư viện tokenizers của HuggingFace).
Đặc điểm:
- sử dụng pre-tokenizer của BERT: BertPreTokenizer tách token theo khoảng trắng và theo ký hiệu câu. Mỗi lần xuất hiện của một ký tự ký hiệu câu sẽ được xử lý riêng biệt.
Tokenizer này kế thừa từ TokenizersBackend, nơi chứa hầu hết các phương thức. Người dùng nên tham khảo lớp cha để biết thêm thông tin về các phương thức.