يحتوي هذا المستودع على مجموعة من نماذج لغة المحولات ذاتية الانحدار المدربة على مجموعة بيانات ضخمة من اللغة الروسية.
نماذج GPT-3 الروسية (ruGPT3XL، ruGPT3Large، ruGPT3Medium، ruGPT3Small) تم تدريبها بطول تسلسل 2048 مع كتل انتباه متفرقة وكثيفة. نوفر أيضًا النموذج الروسي الكبير GPT-2 (ruGPT2Large) المُدرب بطول تسلسلي 1024.
جرب إنشاء النماذج في Colab! ruGPT-3 XL: أو نماذج ruGPT-3 الأصغر:
يتم وصف أمثلة الاستخدام بالتفصيل هنا. انظر كيف يعمل الضبط الدقيق:
بالنسبة لـ colab، نوصي باستخدام تعليمات التثبيت التالية:
export LD_LIBRARY_PATH=/usr/lib/
apt-get install clang-9 llvm-9 llvm-9-dev llvm-9-tools
git clone https://github.com/qywu/apex
cd apex
pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./
pip install triton
DS_BUILD_CPU_ADAM=1 DS_BUILD_SPARSE_ATTN=1 pip install deepspeed
pip install transformers
pip install huggingface_hub
pip install timm==0.3.2
git clone https://github.com/sberbank-ai/ru-gpts
cp ru-gpts/src_utils/trainer_pt_utils.py /usr/local/lib/python3.8/dist-packages/transformers/trainer_pt_utils.py
cp ru-gpts/src_utils/_amp_state.py /usr/local/lib/python3.8/dist-packages/apex/amp/_amp_state.py
بعد التثبيت env يرجى إعادة تشغيل colab. للتحقق من أن كل شيء على ما يرام، قم بتشغيل الأوامر التالية:
!ds_report
# Output:
...
sparse_attn ............ [YES] ...... [OKAY]
...
import deepspeed.ops.sparse_attention.sparse_attn_op
هنا مثال بسيط للاستخدام. للمزيد انظر هذا المثال أو .
import sys
from src . xl_wrapper import RuGPT3XL
import os
# If run to from content root.
sys . path . append ( "ru-gpts/" )
os . environ [ "USE_DEEPSPEED" ] = "1"
# We can change address and port
os . environ [ "MASTER_ADDR" ] = "127.0.0.1"
os . environ [ "MASTER_PORT" ] = "5000"
gpt = RuGPT3XL . from_pretrained ( "sberbank-ai/rugpt3xl" , seq_len = 512 )
gpt . generate (
"Кто был президентом США в 2020? " ,
max_length = 50 ,
no_repeat_ngram_size = 3 ,
repetition_penalty = 2. ,
)
يوجد هنا مثال على الضبط الدقيق وتحميل النموذج المضبوط وإنشاءه.
مثالنا على ضبط النص هنا
تم تدريب النموذج بطول 512 تسلسلًا باستخدام كود Deepspeed وMegatron بواسطة فريق الأجهزة، على مجموعة بيانات 80 مليار رمز مميز لمدة 4 حقب. بعد ذلك تم ضبط النموذج لعصر واحد بطول تسلسل 2048.
ملحوظة! يحتوي النموذج على كتل انتباه متفرقة.
كان إجمالي وقت التدريب حوالي 10 أيام على 256 وحدة معالجة رسوميات.
الحيرة النهائية في مجموعة الاختبار هي 12.05
.
?HuggingFace رابط البطاقة النموذجية.
لاستخدام ruGPT3Large، ruGPT3Medium، ruGPT3Small، ruGPT2Large فقط قم بتثبيت محولات HuggingFace.
pip install transformers==4.24.0
هنا يمكننا الحصول على أمثلة للضبط الدقيق أو التوليد.
تم أيضًا تكييف هذه الأمثلة مع google colab:
from transformers import GPT2LMHeadModel , GPT2Tokenizer
model_name_or_path = "sberbank-ai/rugpt3large_based_on_gpt2"
tokenizer = GPT2Tokenizer . from_pretrained ( model_name_or_path )
model = GPT2LMHeadModel . from_pretrained ( model_name_or_path ). cuda ()
text = "Александр Сергеевич Пушкин родился в "
input_ids = tokenizer . encode ( text , return_tensors = "pt" ). cuda ()
out = model . generate ( input_ids . cuda ())
generated_text = list ( map ( tokenizer . decode , out ))[ 0 ]
print ( generated_text )
# Output should be like this:
# Александр Сергеевич Пушкин родился в n1799 году. Его отец был крепостным крестьянином, а мать – крепостной крестьянкой. Детство и юность Пушкина прошли в деревне Михайловское под Петербургом. В 1820-х годах семья переехала
تم إجراء كل التدريب المسبق على وحدات معالجة الرسوميات Nvidia Tesla V100-SXM3 32 Gb على مجموعة Christofari. فيما يلي تفاصيل التدريب المسبق لكل نموذج.
تم تدريب النموذج بطول تسلسل 1024 باستخدام محولات lib بواسطة فريق الأجهزة على 80 مليار رمز لمدة 3 فترات. بعد ذلك تم ضبط النموذج لعصر واحد بطول تسلسل 2048.
كان إجمالي وقت التدريب حوالي 14 يومًا على 128 وحدة معالجة رسوميات لسياق 1024 وبضعة أيام على 16 وحدة معالجة رسوميات لسياق 2048.
الحيرة النهائية في مجموعة الاختبار هي 13.6
.
يمكنك الحصول على هذا النموذج باستخدام المحولات التي تحمل اسم النموذج sberbank-ai/rugpt3large_based_on_gpt2
.
?HuggingFace رابط البطاقة النموذجية
نص التدريب المسبق الخاص بنا هنا
تم تدريب النموذج بطول تسلسل 1024 باستخدام محولات lib بواسطة فريق الأجهزة على 80 مليار رمز مميز لمدة 3 حقب. بعد ذلك تم تحسين هذا النموذج في سياق 2048.
كان إجمالي وقت التدريب حوالي 16 يومًا على 64 وحدة معالجة رسوميات.
الحيرة النهائية في مجموعة الاختبار هي 17.4
.
يمكنك الحصول على هذا النموذج باستخدام المحولات التي تحمل اسم النموذج sberbank-ai/rugpt3medium_based_on_gpt2
.
?HuggingFace رابط البطاقة النموذجية
نص التدريب المسبق الخاص بنا هنا
تم تدريب النموذج بطول تسلسل 1024 باستخدام المحولات بواسطة فريق الأجهزة على 80 مليار رمز في حوالي 3 حقب. بعد ذلك تم تحسين هذا النموذج في سياق 2048.
استغرق إجمالي وقت التدريب حوالي أسبوع واحد على 32 وحدة معالجة رسوميات.
يمكنك الحصول على هذا النموذج باستخدام المحولات التي تحمل اسم النموذج sberbank-ai/rugpt3small_based_on_gpt2
.
?HuggingFace رابط البطاقة النموذجية
نص التدريب المسبق الخاص بنا هنا
تم تدريب النموذج بطول تسلسل 1024 باستخدام المحولات بواسطة فريق الأجهزة على بيانات 170 جيجابايت على 64 وحدة معالجة رسوميات لمدة 3 أسابيع.
يمكنك الحصول على هذا النموذج باستخدام المحولات التي تحمل اسم النموذج sberbank-ai/rugpt2large
.
?HuggingFace رابط البطاقة النموذجية
وفقًا لبحث Google Scholar - لا تتردد في إضافة روابط إلى هذه القائمة
@article{shatilovsentence,
title={Sentence simplification with ruGPT3},
author={Shatilov, AA and Rey, AI},
url={http://www.dialog-21.ru/media/5281/shatilovaaplusreyai142.pdf}
}
@article{fenogenovatext,
title={Text Simplification with Autoregressive Models},
author={Fenogenova, Alena},
url={http://www.dialog-21.ru/media/5250/fenogenovaa141.pdf}}
@article{dementieva2021methods,
title={Methods for Detoxification of Texts for the Russian Language},
author={Dementieva, Daryna and Moskovskiy, Daniil and Logacheva, Varvara and Dale, David and Kozlova, Olga and Semenov, Nikita and Panchenko, Alexander},
journal={arXiv preprint arXiv:2105.09052},
year={2021},
url={https://arxiv.org/abs/2105.09052}
}
@inproceedings{fenogenova2021russian,
title={Russian Paraphrasers: Paraphrase with Transformers},
author={Fenogenova, Alena},
booktitle={Proceedings of the 8th Workshop on Balto-Slavic Natural Language Processing},
pages={11--19},
year={2021},
url={https://www.aclweb.org/anthology/2021.bsnlp-1.2.pdf}
}
@article{malykh2021morocco,
title={MOROCCO: Model Resource Comparison Framework},
author={Malykh, Valentin and Kukushkin, Alexander and Artemova, Ekaterina and Mikhailov, Vladislav and Tikhonova, Maria and Shavrina, Tatiana},
journal={arXiv preprint arXiv:2104.14314},
year={2021},
url={https://arxiv.org/abs/2104.14314}}