Transformers documentation
HerBERT
نُشر هذا النموذج في أوراق HF في 2020-05-01، وسُهم به في Hugging Face Transformers في 2020-11-16.
HerBERT
نظرة عامة
قُدِّم نموذج HerBERT في KLEJ: Comprehensive Benchmark for Polish Language Understanding من قِبل Piotr Rybak وRobert Mroczkowski وJanusz Tracz وIreneusz Gawlik. وهو نموذج لغوي مبني على BERT، تم تدريبه على مجموعات بيانات بولندية باستخدام هدف MLM فقط مع تطبيق قناع ديناميكي على الكلمات الكاملة.
المستخلص من الورقة البحثية هو كالتالي:
في السنوات الأخيرة، أتاحَ سِلسَلة من النماذج القائمة على Transformer تحسيناتٍ كبيرة في مهام فهم اللغة الطبيعية العامة (NLU). ولما كان هذا الوتيرة السريعة من البحث غيرَ ممكنة دون معاييرَ مرجعية عامة لفهم اللغة الطبيعية، التي تُمكّن من مقارنةٍ عادلة بين المقترحات، فإنَّ هذه المعايير متاحةٌ لعددٍ محدود من اللغات فقط. ولتخفيف هذه المشكلة، نُقدّم معيارًا مرجعيًا شاملًا متعدد المهام لفهم اللغة البولندية، مصحوبًا بلوحةِ ترتيبٍ إلكترونية. ويتكوّن هذا المعيار من مجموعةٍ متنوعة من المهام، مستمدة من مجموعات بياناتٍ موجودة مسبقًا للتعرف على الكيانات المسمّاة، والإجابة عن الأسئلة، والاستلزام النصي، وغيرها. كما نُقدّم مهمةً جديدة لتحليل المشاعر في مجال التجارة الإلكترونية، تُسمّى Allegro Reviews (AR). ولضمان مخطط تقييمٍ موحّد، وتعزيز النماذج التي تتعمّم على مهام NLU المختلفة، يشمل المعيار مجموعات بيانات من مجالات وتطبيقات متنوعة. بالإضافة إلى ذلك، نُطلق HerBERT، وهو نموذجٌ قائم على Transformer مُدرَّب خصيصًا للغة البولندية، ويحقق أفضل أداءٍ متوسط، ويحصل على أفضل النتائج في ثلاثٍ من بين تسع مهام. أخيرًا، نوفر تقييمًا موسّعًا، يشمل عدة خطوط أساسية قياسية ونماذجَ متعددة اللغات قائمة على Transformer اقترحت مؤخرًا.
تمت مساهمة هذا النموذج من قِبل rmroczkowski. يمكن العثور على الكود الأصلي هنا.
مثال على الاستخدام
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")تنفيذ Herbert هو نفسه
BERTباستثناء طريقة الترميز. راجع توثيق BERT للاطلاع على مرجع واجهة برمجة التطبيقات والأمثلة.
HerbertTokenizer
فئة 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 )
المعاملات
- vocab_file (
str) — مسار ملف المفردات. - merges_file (
str) — مسار ملف الدمج. - cls_token (
str، اختياري، القيمة الافتراضية"<s>") — رمز المصنّف. - unk_token (
str، اختياري، القيمة الافتراضية"<unk>") — رمز غير معروف. - pad_token (
str، اختياري، القيمة الافتراضية"<pad>") — رمز الحشو. - mask_token (
str، اختياري، القيمة الافتراضية"<mask>") — رمز القناع. - sep_token (
str، اختياري، القيمة الافتراضية"</s>") — رمز الفاصل. - vocab (
strأوdictأوlist، اختياري) — قاموس مفردات مخصص. - merges (
strأوlist[str]، اختياري) — قائمة دمج مخصصة.
أنشئ مُجزِّئ BPE لنموذج HerBERT (المعتمد على مكتبة tokenizers من HuggingFace).
الخصائص المميزة:
- يستخدم مقسّم الرموز المسبق الخاص بـ BERT: يقسم BertPreTokenizer الرموز على المسافات، وكذلك على علامات الترقيم. سيتم التعامل مع كل ظهور لعلامة ترقيم بشكل منفصل.
يرث هذا المُجزِّئ من TokenizersBackend الذي يحتوي على معظم الطرق. ينبغي للمستخدمين الرجوع إلى الفئة الأصلية لمزيد من المعلومات حول الطرق.