يهدف هذا الريبو كمساحة لمركزية المحولات الرومانية وتوفير تقييم موحد. المساهمات موضع ترحيب.
نحن نستخدم Transformers Lib ، وهي أداة رائعة لـ NLP. ما الذي تسأله بيرت؟ إليك مقالة واضحة ومكثفة حول ماهية بيرت وما يمكن أن يفعله. تحقق أيضًا من هذا الملخص لنماذج المحولات المختلفة.
ما يلي هو قائمة نماذج المحولات الرومانية ، نماذج اللغة المقنعة والشرطية.
لا تتردد في فتح مشكلة وإضافة النموذج/eval هنا!
| نموذج | يكتب | مقاس | المادة/الاقتباس/المصدر | تم تدريبه مسبقًا / تم ضبطه | تاريخ الافراج عنه |
|---|---|---|---|---|---|
| Dumitrescustefan/Bert-base-Romanian-Cazed-V1 | بيرت | 124m | PDF / cite | تم تدريبه مسبقًا | أبريل 2020 |
| Dumitrescustefan/bert-base-romanian-uncared-V1 | بيرت | 124m | PDF / cite | تم تدريبه مسبقًا | أبريل 2020 |
| Racai/Distillbert-Base-Romanian | Distilbert | 81m | - | تم تدريبه مسبقًا | أبريل 2021 |
| ReaderBench/Robert-Small | بيرت | 19M | تم تدريبه مسبقًا | مايو ، 2021 | |
| ReaderBench/Robert-Base | بيرت | 114 م | تم تدريبه مسبقًا | مايو ، 2021 | |
| ReaderBench/Robert-Large | بيرت | 341 م | تم تدريبه مسبقًا | مايو ، 2021 | |
| Dumitrescustefan/bert-base-romanian-ner | بيرت | 124m | مساحة HF | اسم التعرف على الكيان على RONECV2 | يناير 2022 |
| Snisioi/Bert-Legal-Romanian-Cazed-V1 | بيرت | 124m | - | الوثائق القانونية على marcellv2 | يناير 2022 |
| ReaderBench/Jurbert-Base | بيرت | 111 م | الوثائق القانونية | أكتوبر ، 2021 | |
| ReaderBench/Jurbert-Large | بيرت | 337M | الوثائق القانونية | أكتوبر ، 2021 |
| نموذج | يكتب | مقاس | المادة/الاقتباس/المصدر | تم تدريبه مسبقًا / تم ضبطه | تاريخ الافراج عنه |
|---|---|---|---|---|---|
| Dumitrescustefan/gpt-neo-romanian-780m | GPT-NEO | 780 م | ليس بعد / مساحة HF | تم تدريبه مسبقًا | سبتمبر ، 2022 |
| ReaderBench/Rogpt2-base | GPT2 | 124m | تم تدريبه مسبقًا | يوليو ، 2021 | |
| ReaderBench/Rogpt2-Medium | GPT2 | 354m | تم تدريبه مسبقًا | يوليو ، 2021 | |
| ReaderBench/Rogpt2-large | GPT2 | 774m | تم تدريبه مسبقًا | يوليو ، 2021 |
جديد: تحقق من مساحة HF هذه للعب مع النماذج التوليدية الرومانية: https://huggingface.co/spaces/dumitrescustefan/romanian-text-generation
يتم تقييم النماذج باستخدام نص كولاب العام المتاح هنا. جميع النتائج التي تم الإبلاغ عنها هي متوسط الدرجات البالغة 5 أشواط ، باستخدام نفس المعلمات. بالنسبة للنماذج الأكبر ، إذا كان ذلك ممكنًا ، فقد تم محاكاة حجم الدفعات الأكبر عن طريق تراكم التدرجات ، بحيث يكون لجميع النماذج نفس حجم الدفعة الفعالة. يتم تقييم النماذج القياسية فقط (غير المحددة لمهمة معينة) والتي يمكن أن تتناسب مع ذاكرة الوصول العشوائي 16 جيجابايت.
تغطي الاختبارات الحقول التالية ، وبالنسبة للإيجاز ، نختار مقياسًا واحدًا من كل حقل:
| نموذج | يكتب | مقاس | ner/em_strict | Rosts/Pearson | Ro-Pos-Tagger/Upos F1 | redv2/hamming_loss |
|---|---|---|---|---|---|---|
| Dumitrescustefan/Bert-base-Romanian-Cazed-V1 | بيرت | 124m | 0.8815 | 0.7966 | 0.982 | 0.1039 |
| Dumitrescustefan/bert-base-romanian-uncared-V1 | بيرت | 124m | 0.8572 | 0.8149 | 0.9826 | 0.1038 |
| Racai/Distillbert-Base-Romanian | Distilbert | 81m | 0.8573 | 0.7285 | 0.9637 | 0.1119 |
| ReaderBench/Robert-Small | بيرت | 19M | 0.8512 | 0.7827 | 0.9794 | 0.1085 |
| ReaderBench/Robert-Base | بيرت | 114 م | 0.8768 | 0.8102 | 0.9819 | 0.1041 |
| نموذج | يكتب | مقاس | ner/em_strict | Rosts/Pearson | Ro-Pos-Tagger/Upos F1 | redv2/hamming_loss | الحيرة |
|---|---|---|---|---|---|---|---|
| ReaderBench/Rogpt2-base | GPT2 | 124m | 0.6865 | 0.7963 | 0.9009 | 0.1068 | 52.34 |
| ReaderBench/Rogpt2-Medium | GPT2 | 354m | 0.7123 | 0.7979 | 0.9098 | 0.114 | 31.26 |
باستخدام محولات HuggingFace LIB ، قم بتثبيت نموذج واستبدل اسم النموذج حسب الضرورة. ثم استخدم رأس نموذج مناسب اعتمادًا على مهمتك. فيما يلي بعض الأمثلة:
from transformers import AutoTokenizer , AutoModel
import torch
# load tokenizer and model
tokenizer = AutoTokenizer . from_pretrained ( "dumitrescustefan/bert-base-romanian-cased-v1" )
model = AutoModel . from_pretrained ( "dumitrescustefan/bert-base-romanian-cased-v1" )
# tokenize a sentence and run through the model
input_ids = tokenizer . encode ( "Acesta este un test." , add_special_tokens = True , return_tensors = "pt" )
outputs = model ( input_ids )
# get encoding
last_hidden_states = outputs [ 0 ] # The last hidden-state is the first element of the output tuple text = text.replace("ţ", "ț").replace("ş", "ș").replace("Ţ", "Ț").replace("Ş", "Ș")
أعط موجهًا لنموذج توليدي واتركه يكتب:
tokenizer = AutoTokenizer . from_pretrained ( "dumitrescustefan/gpt-neo-romanian-125m" )
model = AutoModelForCausalLM . from_pretrained ( "dumitrescustefan/gpt-neo-romanian-125m" )
input_ids = tokenizer . encode ( "Cine a fost Mihai Eminescu? A fost" , return_tensors = 'pt' )
text = model . generate ( input_ids , max_length = 128 , do_sample = True , no_repeat_ngram_size = 2 , top_k = 50 , top_p = 0.9 , early_stopping = True )
print ( tokenizer . decode ( text [ 0 ], skip_special_tokens = True ))PS يمكنك اختبار جميع النماذج التوليدية هنا: https://huggingface.co/spaces/dumitrescustefan/Romanian-Text-generation