Compte officiel [yeungnlp]
python3.6, transformateurs == 4.2.0, pytorch == 1,7.0

Chaque données de formation est épissée puis les saisis dans le modèle de formation.
Pour les multiples tours de données de formation de chat suivantes, lors de la formation du modèle, les données de formation sont épissées comme suit: "[CLS] Je veux voir vos belles photos [sep] embrasse-moi et te montre [sept] je t'embrasse [sep] Je déteste les gens qui utilisent de petits poings pour frapper la poitrine [Sep]". Utilisez ensuite les résultats d'épissage ci-dessus comme entrée au modèle et laissez le modèle suivre une formation d'autorégression.
想看你的美照
亲我一口就给你看
我亲两口
讨厌人家拿小拳拳捶你胸口
Téléchargez le modèle dans le partage du modèle, mettez le dossier modèle Model_EPOCH40_50W dans le répertoire du modèle, exécutez les commandes suivantes et effectuez un dialogue
python interact.py --no_cuda --model_path model_epoch40_50w (使用cpu生成,速度相对较慢)
或
python interact.py --model_path model_epoch40_50w --device 0 (指定0号GPU进行生成,速度相对较快)
Créez un dossier de données dans le répertoire des racines du projet, nommez le Train Train.txt de formation originale et stockez-les dans ce répertoire. Le format de Train.txt est le suivant, avec une ligne entre chaque chat, et le format est le suivant:
真想找你一起去看电影
突然很想你
我也很想你
想看你的美照
亲我一口就给你看
我亲两口
讨厌人家拿小拳拳捶你胸口
美女约嘛
开好房等你了
我来啦
Exécutez Preprocess.py, tokenize the data / train.txt corpus et sérialisez et enregistrez-les sur data / train.pkl. Le type d'objet sérialisé dans Train.pkl est la liste [Liste], qui enregistre les jetons contenus dans chaque conversation dans la liste de dialogue.
python preprocess.py --train_path data/train.txt --save_path data/train.pkl
Exécutez Train.py, utilisez les données prétraitées pour effectuer une formation d'autorégression sur le modèle et enregistrez le modèle dans le dossier du modèle dans le répertoire racine.
Pendant la formation, vous pouvez commencer un arrêt tôt en spécifiant le paramètre de patience. Lorsque la patience = n, si n époques consécutives, la perte du modèle sur l'ensemble de vérification ne diminue pas, alors l'arrêt et l'entraînement précoce sont arrêtés. Lorsque Patience = 0, aucun arrêt précoce n'est effectué.
L'arrêt précoce est désactivé par défaut dans le code, car dans la pratique, l'effet de génération du modèle obtenu au début de l'arrêt peut ne pas être meilleur.
python train.py --epochs 40 --batch_size 8 --device 0,1 --train_path data/train.pkl
Pour plus d'introduction aux paramètres de formation, vous pouvez directement consulter la description du paramètre dans la fonction set_args () dans Train.py
Exécutez Interact.py, utilisez le modèle formé, effectuez une interaction humaine-ordinateur et entrez Ctrl + Z pour mettre fin à la conversation, l'enregistrement de chat sera enregistré dans le fichier Exemple.txt dans l'exemple de répertoire.
python interact.py --no_cuda --model_path path_to_your_model --max_history_len 3(由于闲聊对话生成的内容长度不是很长,因此生成部分在CPU上跑速度也挺快的)
Lors de l'exécution d'interact.py, vous pouvez essayer d'ajuster l'effet généré en ajustant les paramètres tels que Topk, Topp, Repetition_penalty, Max_History_Len, etc. Si vous souhaitez utiliser le GPU pour la génération, n'appelez pas le paramètre --no_cuda et utilisez --Device GPU_ID pour spécifier quel GPU utiliser.
| Matériel de chat chinois | Adresse de l'ensemble de données | Description du corpus |
|---|---|---|
| Chats chinois communs | chinois_chatbot_corpus | Y compris Xiaohuang Chicken Corpus, Douban Corpus, TV Series Dialog Corpus, Tieba Forum Reply Corpus, Weibo Corpus, PTT Gossip Corpus, Qingyun Corpus, etc. |
| Matériel de chat chinois 50W | Baidu NetDisk [Code d'extraction: 4G5E] ou Google Drive | Contient un corpus d'origine et des données prétraitées avec un dialogue multi-ronde 50 W |
| Matériel de chat chinois 100W | Baidu NetDisk [Code d'extraction: S908] ou Google Drive | Contient un corpus original et des données prétraitées avec un dialogue multi-ronde de 100W |
Le contenu du corpus de chat chinois est le suivant:
谢谢你所做的一切
你开心就好
开心
嗯因为你的心里只有学习
某某某,还有你
这个某某某用的好
你们宿舍都是这么厉害的人吗
眼睛特别搞笑这土也不好捏但就是觉得挺可爱
特别可爱啊
今天好点了吗?
一天比一天严重
吃药不管用,去打一针。别拖着
| Modèle | Adresse partagée | Description du modèle |
|---|---|---|
| Model_EPOCH40_50W | Baidu NetDisk [Code d'extraction: JU6M] ou Google Drive | 40 époques ont été formées à l'aide du corpus de dialogue multi-rounds 50 W, et la perte a été réduite à environ 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:我们不用上课的呀