دورات LLM صغيرة (7B وأقل)، وجاهزة للإنتاج لمجموعة متنوعة من المهام المفيدة.
المهام المدعومة: إعادة الصياغة، تغيير لهجة المقطع، إنشاء ملخص وموضوع من حوار، استرجاع ضمان الجودة المعزز (WIP) .
نقوم بضبط LoRAs على نماذج 3B و7B الكمية. يتم ضبط النموذج 3B على مهام محددة، في حين يتم ضبط النموذج 7B على جميع المهام.
الهدف هو أن تكون قادرًا على ضبط كل هذه النماذج واستخدامها على أجهزة متواضعة جدًا من فئة المستهلك.
pip install llm-toys
قد لا يعمل بدون وحدة معالجة الرسومات التي تدعم CUDA
إذا واجهت "تم تجميع الإصدار المثبت من bitsandbytes بدون دعم GPU" مع bitsandbytes، فابحث هنا bitsandbytes-foundation/bitsandbytes#112
أو حاول
cp <path_to_your_venv>/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cpu.so <path_to_your_venv>/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda117.so
لاحظ أننا نستخدم المحولات وحزم peft من الدليل المصدر، وليس الحزمة المثبتة. كان تكميم 4 بت وساند بايت يعمل فقط مع الفرع الرئيسي للمحولات والبيفت. بمجرد نشر الإصدار 4.31.0 من المحولات والإصدار 0.4.0 من peft على pypi، سنستخدم الإصدار المنشور.
نموذج | مقاس | المهام | كولاب |
---|---|---|---|
llm-toys/RedPajama-INCITE-Base-3B-v1-paraphrase-tone | 3 ب | إعادة الصياغة، تغيير النغمة | دفتر الملاحظات |
llm-toys/RedPajama-INCITE-Base-3B-v1-حوار-ملخص-الموضوع | 3 ب | ملخص الحوار وتوليد الموضوع | دفتر الملاحظات |
llm-toys/falcon-7b-إعادة صياغة-نغمة-حوار-موضوع-ملخص | 7 ب | إعادة الصياغة وتغيير النغمة وملخص الحوار وتوليد الموضوع | دفتر الملاحظات |
from llm_toys . tasks import Paraphraser
paraphraser = Paraphraser ()
paraphraser . paraphrase ( "Hey, can yuo hepl me cancel my last order?" )
# "Could you kindly assist me in canceling my previous order?"
paraphraser . paraphrase ( "Hey, can yuo hepl me cancel my last order?" , tone = "casual" )
# "Hey, could you help me cancel my order?"
paraphraser . paraphrase ( "Hey, can yuo hepl me cancel my last order?" , tone = "professional" )
# "I would appreciate guidance on canceling my previous order."
paraphraser . paraphrase ( "Hey, can yuo hepl me cancel my last order?" , tone = "witty" )
# "Hey, I need your help with my last order. Can you wave your magic wand and make it disappear?"
from llm_toys . tasks import SummaryAndTopicGenerator
summary_topic_generator = SummaryAndTopicGenerator ()
summary_topic_generator . generate_summary_and_topic (
"""
#Person1#: I'm so excited for the premiere of the latest Studio Ghibli movie!
#Person2#: What's got you so hyped?
#Person1#: Studio Ghibli movies are pure magic! The animation, storytelling, everything is incredible.
#Person2#: Which movie is it?
#Person1#: It's called "Whisper of the Wind." It's about a girl on a magical journey to save her village.
#Person2#: Sounds amazing! I'm in for the premiere.
#Person1#: Great! We're in for a visual masterpiece and a heartfelt story.
#Person2#: Can't wait to be transported to their world.
#Person1#: It'll be an unforgettable experience, for sure!
""" . strip ()
)
# {"summary": "#Person1# is excited for the premiere of the latest Studio Ghibli movie.
# #Person1# thinks the animation, storytelling, and heartfelt story will be unforgettable.
# #Person2# is also excited for the premiere.",
# "topic": "Studio ghibli movie"}
from llm_toys . tasks import GeneralTaskAssitant
from llm_toys . config import TaskType
gta = GeneralTaskAssitant ()
gta . complete ( TaskType . PARAPHRASE_TONE , "Hey, can yuo hepl me cancel my last order?" )
# "Could you assist me in canceling my previous order?"
gta . complete ( TaskType . PARAPHRASE_TONE , "Hey, can yuo hepl me cancel my last order?" , tone = "casual" )
# "Hey, can you help me cancel my last order?"
gta . complete ( TaskType . PARAPHRASE_TONE , "Hey, can yuo hepl me cancel my last order?" , tone = "professional" )
# "I would appreciate if you could assist me in canceling my previous order."
gta . complete ( TaskType . PARAPHRASE_TONE , "Hey, can yuo hepl me cancel my last order?" , tone = "witty" )
# "Oops! Looks like I got a little carried away with my shopping spree. Can you help me cancel my last order?"
chat = """
#Person1#: I'm so excited for the premiere of the latest Studio Ghibli movie!
#Person2#: What's got you so hyped?
#Person1#: Studio Ghibli movies are pure magic! The animation, storytelling, everything is incredible.
#Person2#: Which movie is it?
#Person1#: It's called "Whisper of the Wind." It's about a girl on a magical journey to save her village.
#Person2#: Sounds amazing! I'm in for the premiere.
#Person1#: Great! We're in for a visual masterpiece and a heartfelt story.
#Person2#: Can't wait to be transported to their world.
#Person1#: It'll be an unforgettable experience, for sure!
""" . strip ()
gta . complete ( TaskType . DIALOGUE_SUMMARY_TOPIC , chat )
# {"summary": "#Person1# tells #Person2# about the upcoming Studio Ghibli movie.
# #Person1# thinks it's magical and #Person2#'s excited to watch it.",
# "topic": "Movie premiere"}
إعادة الصياغة وتغيير النغمة: يحتوي على مقاطع ونسخها المعاد صياغتها بالإضافة إلى المقطع بنغمات مختلفة مثل غير الرسمية والمهنية والبارعة. تستخدم للنماذج لإعادة صياغة وتغيير لهجة المقطع. تم إنشاء البيانات باستخدام gpt-35-turbo. تم أيضًا التقاط عينة صغيرة من مقاطع التدريب من أسئلة quora ومجموعات بيانات Squad_2.
ملخص الحوار وتوليد الموضوع: يحتوي على الحوارات وملخصها وموضوعها. بيانات التدريب هي حوالي 1 ألف سجل من تقسيم التدريب لمجموعة بيانات Dialogsum. ويحتوي أيضًا على 20 عينة تقريبًا من قسم التطوير. تم إعطاء الأولوية لنقاط البيانات ذات الملخصات والموضوعات الأطول في أخذ العينات. لاحظ أنه تم تحرير بعض المواضيع (~ 30) يدويًا في بيانات التدريب النهائية حيث أن الموضوع الأصلي المسمى كان مجرد كلمة ولم يكن وصفيًا بدرجة كافية.
للنظر في جميع الخيارات
python llm_toys/train.py --help
لتدريب نموذج إعادة الصياغة وتغيير النغمة
python llm_toys/train.py
--task_type paraphrase_tone
--model_name meta-llama/Llama-2-7b
--max_length 128
--batch_size 8
--gradient_accumulation_steps 1
--learning_rate 1e-4
--num_train_epochs 3
--eval_ratio 0.05
قيد التنفيذ
يتم التقييم على 500 سجل من قسم اختبار Dialogsum.
# llm-toys/RedPajama-INCITE-Base-3B-v1-dialogue-summary-topic
{ "rouge1" : 0.453 , "rouge2" : 0.197 , "rougeL" : 0.365 , "topic_similarity" : 0.888 }
# llm-toys/falcon-7b-paraphrase-tone-dialogue-summary-topic
{ 'rouge1' : 0.448 , 'rouge2' : 0.195 , 'rougeL' : 0.359 , 'topic_similarity' : 0.886 }