Transformers documentation

HerBERT

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

نُشر هذا النموذج في أوراق 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

< >

( 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 الذي يحتوي على معظم الطرق. ينبغي للمستخدمين الرجوع إلى الفئة الأصلية لمزيد من المعلومات حول الطرق.

Update on GitHub