Akun resmi [yeungnlp]
python3.6, transformers == 4.2.0, pytorch == 1.7.0

Setiap data pelatihan disambung dan kemudian memasukkannya ke dalam model untuk pelatihan.
Untuk beberapa putaran data pelatihan obrolan berikut, saat melatih model, data pelatihan disambung sebagai berikut: "[CLS] ingin melihat foto -foto indah Anda [Sep] Cium saya dan tunjukkan [sep] Saya mencium Anda [sep] Saya benci orang yang menggunakan tinju kecil untuk meninju dada Anda [Sep]". Kemudian gunakan hasil splicing di atas sebagai input ke model dan biarkan model menjalani pelatihan autoregresi.
想看你的美照
亲我一口就给你看
我亲两口
讨厌人家拿小拳拳捶你胸口
Unduh model dalam berbagi model, masukkan folder model model_epoch40_50w ke dalam direktori model, menjalankan perintah berikut, dan melakukan dialog
python interact.py --no_cuda --model_path model_epoch40_50w (使用cpu生成,速度相对较慢)
或
python interact.py --model_path model_epoch40_50w --device 0 (指定0号GPU进行生成,速度相对较快)
Buat folder data di Direktori Root Proyek, beri nama pelatihan asli corpus train.txt, dan simpan di direktori ini. Format train.txt adalah sebagai berikut, dengan satu baris antara setiap obrolan, dan formatnya adalah sebagai berikut:
真想找你一起去看电影
突然很想你
我也很想你
想看你的美照
亲我一口就给你看
我亲两口
讨厌人家拿小拳拳捶你胸口
美女约嘛
开好房等你了
我来啦
Jalankan preprocess.py, tokenize data/train.txt corpus, dan serial dan simpan ke data/train.pkl. Jenis objek serial di train.pkl adalah daftar [daftar], yang mencatat token yang terkandung dalam setiap percakapan dalam daftar dialog.
python preprocess.py --train_path data/train.txt --save_path data/train.pkl
Jalankan train.py, gunakan data preproses untuk melakukan pelatihan autoregresi pada model, dan simpan model di folder model di direktori root.
Selama pelatihan, Anda dapat mulai berhenti lebih awal dengan menentukan parameter kesabaran. Ketika kesabaran = n, jika n zaman berturut -turut, hilangnya model pada set verifikasi tidak berkurang, maka berhenti lebih awal dan pelatihan dihentikan. Saat kesabaran = 0, tidak ada pemberhentian awal yang dilakukan.
Stop awal dimatikan secara default dalam kode, karena dalam praktiknya, efek generasi dari model yang diperoleh dengan stop awal mungkin tidak lebih baik.
python train.py --epochs 40 --batch_size 8 --device 0,1 --train_path data/train.pkl
Untuk lebih lanjut pengantar parameter pelatihan, Anda dapat secara langsung melihat deskripsi parameter dalam fungsi set_args () di train.py
Jalankan Interact.py, gunakan model terlatih, lakukan interaksi manusia-komputer, dan masukkan Ctrl+Z untuk mengakhiri percakapan, catatan obrolan akan disimpan ke file sampel.txt di direktori sampel.
python interact.py --no_cuda --model_path path_to_your_model --max_history_len 3(由于闲聊对话生成的内容长度不是很长,因此生成部分在CPU上跑速度也挺快的)
Saat mengeksekusi interact.py, Anda dapat mencoba menyesuaikan efek yang dihasilkan dengan menyesuaikan parameter seperti topk, topp, repetition_penalty, max_history_len, dll. Untuk lebih banyak parameter, Anda dapat secara langsung melihat deskripsi parameter dalam fungsi set_args () dari interact.py. Jika Anda ingin menggunakan GPU untuk generasi, jangan hubungi parameter ---No_Cuda, dan gunakan --vice GPU_ID untuk menentukan GPU mana yang akan digunakan.
| Materi obrolan Cina | Alamat dataset | Deskripsi Corpus |
|---|---|---|
| Obrolan Cina biasa | China_chatbot_corpus | Termasuk Corpus Ayam Xiaohuang, Doban Corpus, Serial TV dialog Corpus, Tieba Forum Balas Corpus, Weibo Corpus, PTT Gossip Corpus, Qingyun Corpus, dll. |
| 50W materi obrolan Cina | Baidu Netdisk [Kode Ekstraksi: 4G5E] atau Google Drive | Berisi Corpus Asli dan Data Preprosesed dengan Dialog Multi-Putaran 50W |
| 100W materi obrolan Cina | Baidu Netdisk [Kode Ekstraksi: S908] atau Google Drive | Berisi corpus asli dan data preproses dengan 100W dialog multi-putaran |
Isi corpus obrolan Cina adalah sebagai berikut:
谢谢你所做的一切
你开心就好
开心
嗯因为你的心里只有学习
某某某,还有你
这个某某某用的好
你们宿舍都是这么厉害的人吗
眼睛特别搞笑这土也不好捏但就是觉得挺可爱
特别可爱啊
今天好点了吗?
一天比一天严重
吃药不管用,去打一针。别拖着
| Model | Alamat bersama | Deskripsi model |
|---|---|---|
| model_epoch40_50w | Baidu Netdisk [Kode Ekstraksi: Ju6m] atau Google Drive | 40 zaman dilatih menggunakan corpus dialog multi-putaran 50W, dan kerugiannya dikurangi menjadi sekitar 2,0. |

user :你好啊
chatbot:你好,请问您是?
user :我是你的主人啊
chatbot:你是狗吗?
user :你才是狗
chatbot:你不是狗我是你的小主人
user :你这个大笨蛋
chatbot:你大笨蛋,你是想挨打了
user :你全家都是大笨蛋
chatbot:我是你爸爸
user :算了,不跟你吵了,你在干嘛呢
chatbot:我在上班啊,你还没下班呢啊你
user :我周末要做作业啊
chatbot:不是才交了吗,早晚做完啊
user :好多作业啊,还没做完呢
chatbot:我在抄,我妈让我周五交,还有事
user :你就不怕被你妈妈骂吗
chatbot:不怕
user :你周末有去哪里玩吗
chatbot:没时间啊,忙得很啊
user :忙着干嘛呢
chatbot:不知道啊,我周末没有作业,我想睡觉,然后还得找人
user :你好啊
chatbot:你好我好大家好
user :你在干嘛呢
chatbot:你不上课啊
user :今天是周末啊,笨蛋
chatbot:我在学校呢
user :我也是,周末还要做作业
chatbot:我还没写呢我们都还没写
user :周末你有去哪里玩吗
chatbot:没有去南京
user :南京有什么好玩的啊
chatbot:我们没去南京
user :你刚刚又说你去了南京,你是不是耍我啊
chatbot:我刚刚才到南京
user :你好笨啊
chatbot:我没有
user :你是大笨蛋
chatbot:你才是大笨蛋
user :你全家都是大笨蛋
chatbot:你个傻冒
user :你个智障
chatbot:哈哈哈
user :在干嘛
chatbot:睡觉
user :这么早就睡觉啦
chatbot:嗯啊你也早点睡啊
user :我再玩一会儿手机
chatbot:早点休息晚安
user :拜拜啦
chatbot:晚安晚安
user :多喝热水
chatbot:哈哈哈
user :多喝热水
chatbot:好的咯
user :在吗
chatbot:在
user :我不开心
chatbot:怎么啦
user :最近好累啊
chatbot:是挺累的
user :作业好多啊
chatbot:还好还好
user :我觉得我快要挂科了
chatbot:我也是啊,但是我觉得我快熬出头了
user :不说了,我还有好多作业没写
chatbot:我也是啊好多啊
user :那先这样,下次再聊,再见了
chatbot:好哒
user :你去过广州吗
chatbot:去过呀,但是没有找到工作呢
user :那你去过北京吗
chatbot:没有啊
user :北京有什么好玩的
chatbot:没有你想象的那么好
user :是吗,我还没过北京
chatbot:那里我也不怎么熟,我去过北京
user :北京天安门呢
chatbot:没去过,不过可以去玩玩
user :你好
chatbot:你好
user :在干嘛呢
chatbot:在想你呢
user :好害羞啊
chatbot:害羞什么啊
user :你这样夸我,我觉得不好意思呀
chatbot:我夸你你还不好意思呢
user :是啊,哈哈哈
chatbot:你是不是在考验我
user :你怎么会这样想呢
chatbot:我说我在夸你,这么客气,
user :你有睡午觉吗
chatbot:有啊
user :我现在有点困呢
chatbot:我也是
user :等下还要去上课,好烦啊
chatbot:我们不用上课的呀