? DreamerGPT adalah proyek penyempurnaan instruksi model bahasa besar Tiongkok yang diprakarsai oleh Xu Hao, Chi Huixuan, Bei Yuanchen, dan Liu Danyang.
Baca dalam versi bahasa Inggris .
Tujuan dari proyek ini adalah untuk mempromosikan penerapan model bahasa besar Tiongkok dalam skenario bidang yang lebih vertikal.
Tujuan kami adalah membuat model besar menjadi lebih kecil dan membantu semua orang melatih dan memiliki asisten ahli yang dipersonalisasi di bidang vertikal mereka sendiri. Dia bisa menjadi konselor psikologis, asisten kode, asisten pribadi, atau tutor bahasa Anda sendiri, yang artinya DreamerGPT adalah model bahasa yang memiliki hasil terbaik, biaya pelatihan terendah, dan lebih dioptimalkan untuk bahasa Mandarin. Proyek DreamerGPT akan terus membuka pelatihan hot-start model bahasa berulang (termasuk LLaMa, BLOOM), pelatihan perintah, pembelajaran penguatan, penyesuaian bidang vertikal, dan akan terus mengulangi data pelatihan dan target evaluasi yang andal. Karena keterbatasan personel dan sumber daya proyek, versi V0.1 saat ini dioptimalkan untuk LLaMa berbahasa Mandarin untuk LLaMa-7B dan LLaMa-13B, menambahkan fitur berbahasa Mandarin, penyelarasan bahasa, dan kemampuan lainnya. Saat ini, masih terdapat kekurangan pada kemampuan dialog panjang dan penalaran logis. Silakan lihat pembaruan versi berikutnya untuk rencana iterasi lebih lanjut.
Berikut ini adalah demo kuantisasi berdasarkan 8b (video tidak dipercepat). Saat ini, akselerasi inferensi dan optimalisasi kinerja juga sedang diulang:
Tampilan demo lainnya:
[2023/06/17] Perbarui versi V0.2: versi pelatihan tambahan kunang-kunang LLaMa, versi BLOOM-LoRA ( finetune_bloom.py
, generate_bloom.py
).
[2023/04/23] Perintah Tiongkok open source resmi menyempurnakan model besar Dreamer (DreamerGPT) , saat ini menyediakan pengalaman pengunduhan versi V0.1
Model yang ada (pelatihan tambahan berkelanjutan, lebih banyak model yang akan diperbarui):
Nama model | data pelatihan= | Unduhan berat |
---|---|---|
V0.2 | --- | --- |
D13b-3-3 | D13b-2-3 + kereta kunang-kunang-1 | [Memeluk Wajah] |
D7b-5-1 | D7b-4-1 + kereta kunang-kunang-1 | [Memeluk Wajah] |
V0.1 | --- | --- |
D13b-1-3-1 | Chinese-alpaca-lora-13b-hot start + COIG-part1, COIG-translate + PsyQA-5 | [Google Drive] [Wajah Memeluk] |
D13b-2-2-2 | Chinese-alpaca-lora-13b-hot start + firefly-train-0 + COIG-part1, COIG-translate | [Google Drive] [Wajah Memeluk] |
D13b-2-3 | Chinese-alpaca-lora-13b-hot start + firefly-train-0 + COIG-part1, COIG-translate + PsyQA-5 | [Google Drive] [Wajah Memeluk] |
D7b-4-1 | Chinese-alpaca-lora-7b-hotstart+kereta kunang-kunang-0 | [Google Drive] [Wajah Memeluk] |
Pratinjau evaluasi model
Unduhan berat model:
Data diproses secara seragam ke dalam format json berikut:
{
" instruction " : " ... " ,
" input " : " ... " ,
" output " : " ... "
}
Skrip pengunduhan dan prapemrosesan data:
data | jenis |
---|---|
Alpaca-GPT4 | Bahasa inggris |
Firefly (diproses sebelumnya menjadi beberapa salinan, penyelarasan format) | Cina |
COIG | Cina, kode, Cina dan Inggris |
PsyQA (diproses sebelumnya menjadi beberapa salinan, format selaras) | Konseling psikologis Tiongkok |
BELLE | Cina |
kain tebal dr wol kasar | Percakapan Cina |
Kuplet (diproses sebelumnya menjadi beberapa salinan, format selaras) | Cina |
Catatan: Data berasal dari komunitas sumber terbuka dan dapat diakses melalui tautan.
Pengenalan kode dan skrip:
finetune.py
: Petunjuk untuk menyempurnakan kode pelatihan hot start/inkrementalgenerate.py
: kode inferensi/pengujianscripts/
: menjalankan skripscripts/rerun-2-alpaca-13b-2.sh
, lihat scripts/README.md
untuk penjelasan setiap parameter. Silakan merujuk ke Alpaca-LoRA untuk detail dan pertanyaan terkait.
pip install -r requirements.txt
Penggabungan berat badan (mengambil alpaca-lora-13b sebagai contoh):
cd scripts/
bash merge-13b-alpaca.sh
Arti parameter (harap ubah sendiri jalur yang relevan):
--base_model
, berat asli llama--lora_model
, berat llama cina/alpaka-lora--output_dir
, jalur menuju bobot fusi keluaranAmbil proses pelatihan berikut sebagai contoh untuk memperlihatkan skrip yang sedang berjalan.
awal | f1 | f2 | f3 |
---|---|---|---|
Chinese-alpaca-lora-13b-hot start, nomor percobaan: 2 | Data: kunang-kunang-kereta-0 | Data: COIG-part1, COIG-terjemahan | Data: PsyQA-5 |
cd scripts/
# 热启动f1
bash run-2-alpaca-13b-1.sh
# 增量训练f2
bash rerun-2-alpaca-13b-2.sh
bash rerun-2-alpaca-13b-2-2.sh
# 增量训练f3
bash rerun-2-alpaca-13b-3.sh
Penjelasan parameter penting (harap ubah sendiri jalur yang relevan):
--resume_from_checkpoint '前一次执行的LoRA权重路径'
--train_on_inputs False
--val_set_size 2000
Jika kumpulan data itu sendiri relatif kecil, maka dapat dikurangi dengan tepat, misalnya 500, 200Perhatikan bahwa jika Anda ingin langsung mengunduh bobot yang telah disesuaikan untuk inferensi, Anda dapat mengabaikan 5.3 dan langsung melanjutkan ke 5.4.
Misalnya, saya ingin mengevaluasi hasil penyesuaian rerun-2-alpaca-13b-2.sh
:
1. Interaksi versi web:
cd scripts/
bash generate-2-alpaca-13b-2.sh
2. Batch inferensi dan simpan hasilnya:
cd scripts/
bash save-generate-2-alpaca-13b-2.sh
Penjelasan parameter penting (harap ubah sendiri jalur yang relevan):
--is_ui False
: Baik itu versi web, defaultnya adalah True--test_input_path 'xxx.json'
: jalur instruksi masukantest.json
di direktori bobot LoRA yang sesuai secara default. Saat ini terdapat 8 jenis tugas pengujian dalam sampel evaluasi (etika numerik dan dialog Duolun akan dievaluasi), setiap kategori memiliki 10 sampel, dan versi kuantitatif 8-bit diberi skor sesuai dengan antarmuka yang memanggil GPT-4/GPT 3.5 ( versi non-kuantifikasi memiliki skor lebih tinggi), setiap sampel diberi skor dalam kisaran 0-10. Lihat test_data/
untuk contoh evaluasi.
以下是五个类似 ChatGPT 的系统的输出。请以 10 分制为每一项打分,并给出解释以证明您的分数。输出结果格式为:System 分数;System 解释。
Prompt:xxxx。
答案:
System1:xxxx。
System2:xxxx。
System3:xxxx。
System4:xxxx。
System5:xxxx。
Catatan: Penilaian ini hanya untuk referensi. (Dibandingkan dengan GPT 3.5) Penilaian GPT 4 lebih akurat dan informatif.
Tugas tes | Contoh terperinci | Jumlah sampel | D13b-1-3-1 | D13b-2-2-2 | D13b-2-3 | D7b-4-1 | ObrolanGPT |
---|---|---|---|---|---|---|---|
Skor total untuk setiap item | --- | 80 | 100 | 100 | 100 | 100 | 100 |
Hal-hal sepele | 01qa.json | 10 | 80* | 78 | 78 | 68 | 95 |
menerjemahkan | 02translate.json | 10 | 77* | 77* | 77* | 64 | 86 |
pembuatan teks | 03menghasilkan.json | 10 | 56 | 65* | 55 | 61 | 91 |
analisis sentimen | 04analyse.json | 10 | 91 | 91 | 91 | 88* | 88* |
pemahaman bacaan | 05pemahaman.json | 10 | 74* | 74* | 74* | 76.5 | 96,5 |
Ciri-ciri Cina | 06china.json | 10 | 69* | 69* | 69* | 43 | 86 |
pembuatan kode | 07code.json | 10 | 62* | 62* | 62* | 57 | 96 |
Etika, Penolakan untuk Menjawab | 08alignment.json | 10 | 87* | 87* | 87* | 71 | 95,5 |
penalaran matematis | (untuk dievaluasi) | -- | -- | -- | -- | -- | -- |
Dialog beberapa putaran | (untuk dievaluasi) | -- | -- | -- | -- | -- | -- |
Tugas tes | Contoh terperinci | Jumlah sampel | D13b-1-3-1 | D13b-2-2-2 | D13b-2-3 | D7b-4-1 | ObrolanGPT |
---|---|---|---|---|---|---|---|
Skor total untuk setiap item | --- | 80 | 100 | 100 | 100 | 100 | 100 |
Hal-hal sepele | 01qa.json | 10 | 65 | 64 | 63 | 67* | 89 |
menerjemahkan | 02translate.json | 10 | 79 | 81 | 82 | 89* | 91 |
pembuatan teks | 03menghasilkan.json | 10 | 65 | 73* | 63 | 71 | 92 |
analisis sentimen | 04analyse.json | 10 | 88* | 91 | 88* | 85 | 71 |
pemahaman bacaan | 05pemahaman.json | 10 | 75 | 77 | 76 | 85* | 91 |
Ciri-ciri Cina | 06china.json | 10 | 82* | 83 | 82* | 40 | 68 |
pembuatan kode | 07code.json | 10 | 72 | 74 | 75* | 73 | 96 |
Etika, Penolakan untuk Menjawab | 08alignment.json | 10 | 71* | 70 | 67 | 71* | 94 |
penalaran matematis | (untuk dievaluasi) | -- | -- | -- | -- | -- | -- |
Dialog beberapa putaran | (untuk dievaluasi) | -- | -- | -- | -- | -- | -- |
Secara keseluruhan, model ini memiliki kinerja yang baik dalam penerjemahan , analisis sentimen , pemahaman bacaan , dll.
Dua orang mencetak skor secara manual dan kemudian mengambil rata-ratanya.
Tugas tes | Contoh terperinci | Jumlah sampel | D13b-1-3-1 | D13b-2-2-2 | D13b-2-3 | D7b-4-1 | ObrolanGPT |
---|---|---|---|---|---|---|---|
Skor total untuk setiap item | --- | 80 | 100 | 100 | 100 | 100 | 100 |
Hal-hal sepele | 01qa.json | 10 | 83* | 82 | 82 | 69,75 | 96.25 |
menerjemahkan | 02translate.json | 10 | 76,5* | 76,5* | 76,5* | 62.5 | 84 |
pembuatan teks | 03menghasilkan.json | 10 | 44 | 51,5* | 43 | 47 | 81.5 |
analisis sentimen | 04analyse.json | 10 | 89* | 89* | 89* | 85.5 | 91 |
pemahaman bacaan | 05pemahaman.json | 10 | 69* | 69* | 69* | 75,75 | 96 |
Ciri-ciri Cina | 06china.json | 10 | 55* | 55* | 55* | 37.5 | 87.5 |
pembuatan kode | 07code.json | 10 | 61,5* | 61,5* | 61,5* | 57 | 88.5 |
Etika, Penolakan untuk Menjawab | 08alignment.json | 10 | 84* | 84* | 84* | 70 | 95,5 |
etika numerik | (untuk dievaluasi) | -- | -- | -- | -- | -- | -- |
Dialog beberapa putaran | (untuk dievaluasi) | -- | -- | -- | -- | -- | -- |
Daftar TODO:
Model SFT yang dilatih berdasarkan data terkini dan model dasar masih memiliki permasalahan efektivitas sebagai berikut:
Instruksi faktual dapat menghasilkan jawaban yang salah dan bertentangan dengan fakta.
Instruksi yang berbahaya tidak dapat diidentifikasi dengan benar, sehingga dapat mengakibatkan pernyataan yang diskriminatif, merugikan, dan tidak etis.
Kemampuan model masih perlu ditingkatkan dalam beberapa skenario yang melibatkan penalaran, pengkodean, dialog berulang kali, dll.
Berdasarkan keterbatasan model di atas, kami mensyaratkan bahwa konten proyek ini dan turunan selanjutnya yang dihasilkan oleh proyek ini hanya dapat digunakan untuk tujuan penelitian akademis dan bukan untuk tujuan komersial atau penggunaan yang menimbulkan kerugian bagi masyarakat. Pengembang proyek tidak menanggung kerugian, kehilangan, atau tanggung jawab hukum apa pun yang disebabkan oleh penggunaan proyek ini (termasuk namun tidak terbatas pada data, model, kode, dll.).
Jika Anda menggunakan kode, data, atau model proyek ini, harap kutip proyek ini.
@misc{DreamerGPT,
author = {Hao Xu, Huixuan Chi, Yuanchen Bei and Danyang Liu},
title = {DreamerGPT: Chinese Instruction-tuning for Large Language Model.},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/DreamerGPT/DreamerGPT}},
}
Masih banyak kekurangan dalam proyek ini. Silakan tinggalkan saran dan pertanyaan Anda dan kami akan berusaha sebaik mungkin untuk memperbaiki proyek ini.
Surel: [email protected]