LLM kecil (7B ke bawah), siap produksi yang telah disesuaikan untuk beragam tugas berguna.
Tugas yang didukung: Parafrase, Mengubah nada suatu bagian, Ringkasan dan pembuatan topik dari dailog, Pengambilan QA yang ditambah (WIP) .
Kami menyempurnakan LoRA pada model terkuantisasi 3B dan 7B. Model 3B menyempurnakan tugas-tugas tertentu, sedangkan model 7B menyempurnakan semua tugas.
Tujuannya adalah untuk dapat menyempurnakan dan menggunakan semua model ini pada perangkat keras tingkat konsumen yang sangat sederhana.
pip install llm-toys
Mungkin tidak berfungsi tanpa GPU berkemampuan CUDA
Jika Anda menemukan "Versi bitsandbytes yang diinstal dikompilasi tanpa dukungan GPU" dengan bitsandbytes, lihat di sini bitsandbytes-foundation/bitsandbytes#112
atau coba
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
Perhatikan bahwa kami menggunakan paket transformator dan peft dari direktori sumber, bukan paket yang diinstal. Kuantisasi 4bit bitsandbytes hanya bekerja dengan cabang utama transformator dan peft. Setelah transformer versi 4.31.0 dan peft versi 0.4.0 dipublikasikan ke pypi kami akan menggunakan versi yang dipublikasikan.
Model | Ukuran | Tugas | Kolaborasi |
---|---|---|---|
llm-toys/RedPajama-INCITE-Base-3B-v1-paraphrase-tone | 3B | Parafrase, Perubahan nada | Buku catatan |
llm-toys/RedPajama-INCITE-Base-3B-v1-dialog-ringkasan-topik | 3B | Ringkasan Dialog dan Pembuatan Topik | Buku catatan |
llm-toys/falcon-7b-parafrase-nada-dialog-ringkasan-topik | 7B | Parafrase, Perubahan nada, Ringkasan Dialog dan Pembuatan Topik | Buku catatan |
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"}
Parafrase dan Perubahan Nada: Berisi bagian-bagian dan versi parafrasenya serta bagian dalam nada yang berbeda seperti santai, profesional, dan jenaka. Digunakan sebagai model untuk menyusun ulang dan mengubah nada suatu bagian. Data dihasilkan menggunakan gpt-35-turbo. Contoh kecil bagian pelatihan juga telah diambil dari pertanyaan quora dan kumpulan data squad_2.
Ringkasan Dialog dan Pembuatan Topik: Berisi Dialog beserta Ringkasan dan Topiknya. Data pelatihan adalah ~1k catatan dari pemisahan pelatihan kumpulan data Dialogsum. Ini juga berisi ~20 sampel dari pemisahan dev. Poin data dengan Ringkasan dan Topik yang lebih panjang diberi prioritas dalam pengambilan sampel. Perhatikan bahwa beberapa (~30) topik diedit secara manual di data pelatihan akhir karena Topik asli yang diberi label hanya berupa kata dan tidak cukup deskriptif.
Untuk melihat semua opsi
python llm_toys/train.py --help
Untuk melatih model parafrase dan perubahan nada
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
WIP
Evaluasi dilakukan pada 500 catatan dari pemisahan tes 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 }