공식 계정 [Yeungnlp]
Python3.6, 변압기 == 4.2.0, pytorch == 1.7.0

각 교육 데이터는 스 플라이 싱 된 다음 교육을 위해 모델에 입력됩니다.
다음 여러 라운드의 채팅 훈련 데이터의 경우 모델을 훈련 할 때 교육 데이터가 다음과 같이 스 플라이 싱됩니다. "[CLS]는 아름다운 사진을보고 싶어 [Sep] 키스를하고 [sep] 나는 당신에게 키스하고 [sep] 나는 작은 주먹을 사용하여 가슴을 때리는 사람들을 싫어합니다 [sep]. 그런 다음 위의 스 플라이 싱 결과를 모델에 대한 입력으로 사용하고 모델이 자동 회귀 교육을 받도록하십시오.
想看你的美照
亲我一口就给你看
我亲两口
讨厌人家拿小拳拳捶你胸口
모델 공유에서 모델을 다운로드하고 모델 폴더 모델을 모델 디렉토리에 넣고 다음 명령을 실행하고 대화를 수행하십시오.
python interact.py --no_cuda --model_path model_epoch40_50w (使用cpu生成,速度相对较慢)
或
python interact.py --model_path model_epoch40_50w --device 0 (指定0号GPU进行生成,速度相对较快)
프로젝트 루트 디렉토리에서 데이터 폴더를 만들고 원래 Training Corpus Train.txt의 이름을 지정 하여이 디렉토리에 저장하십시오. Train.txt의 형식은 다음과 같습니다. 각 채팅 사이에 한 줄이 있으며 형식은 다음과 같습니다.
真想找你一起去看电影
突然很想你
我也很想你
想看你的美照
亲我一口就给你看
我亲两口
讨厌人家拿小拳拳捶你胸口
美女约嘛
开好房等你了
我来啦
preprocess.py를 실행하고, 데이터/train.txt 코퍼스를 토큰 화하고, 직렬화하여 데이터/trave.pkl에 저장하십시오. Train.pkl의 직렬화 된 객체의 유형은 List [List]이며 대화 상자 목록에 각 대화에 포함 된 토큰을 기록합니다.
python preprocess.py --train_path data/train.txt --save_path data/train.pkl
Train.py를 실행하고, 전처리 된 데이터를 사용하여 모델에 대한 자동 회귀 교육을 수행하고, 루트 디렉토리의 모델 폴더에 모델을 저장하십시오.
훈련 중에 인내 매개 변수를 지정하여 조기에 시작할 수 있습니다. patience = n이면, n 연속 에포크 인 경우, 검증 세트에서 모델의 손실이 감소하지 않으면 조기 정지 및 훈련이 중지됩니다. 인내 = 0이면 조기 정지가 수행되지 않습니다.
코드에서 기본적으로 조기 정지가 꺼집니다. 실제로 조기 정지에 의해 얻은 모델의 생성 효과는 더 나을 수 없기 때문입니다.
python train.py --epochs 40 --batch_size 8 --device 0,1 --train_path data/train.pkl
교육 매개 변수에 대한 자세한 내용은 Train.py의 set_args () 함수의 매개 변수 설명을 직접 볼 수 있습니다.
interact.py를 실행하고, 훈련 된 모델을 사용하고, 컴퓨터 상호 작용을 수행하고, CTRL+Z를 입력하여 대화를 종료하면 채팅 레코드는 샘플 디렉토리의 Sample.txt 파일에 저장됩니다.
python interact.py --no_cuda --model_path path_to_your_model --max_history_len 3(由于闲聊对话生成的内容长度不是很长,因此生成部分在CPU上跑速度也挺快的)
interact.py를 실행할 때 Topk, Topp, Repetition_Penalty, Max_History_Len 등과 같은 매개 변수를 조정하여 생성 된 효과를 조정하려고 시도 할 수 있습니다. GPU를 생성에 사용하려면 -no_cuda 매개 변수를 호출하지 말고 -device gpu_id를 사용하여 사용할 gpu를 지정하십시오.
| 중국 채팅 자료 | 데이터 세트 주소 | 코퍼스 설명 |
|---|---|---|
| 일반적인 중국 채팅 | 중국어 _chatbot_corpus | Xiaohuang Chicken Corpus, Douban Corpus, TV 시리즈 Dialogue Corpus, Tieba Forum Reply Corpus, Weibo Corpus, PTT Gossip Corpus, Qingyun Corpus 등을 포함하여 |
| 50W 중국 채팅 자료 | Baidu NetDisk [추출 코드 : 4G5E] 또는 Google 드라이브 | 50W 다중 라운드 대화로 원래 코퍼스 및 전처리 된 데이터가 포함되어 있습니다. |
| 100W 중국 채팅 자료 | Baidu NetDisk [추출 코드 : S908] 또는 Google 드라이브 | 100W 다중 라운드 대화로 원래 코퍼스 및 전처리 된 데이터가 포함되어 있습니다. |
중국 채팅 코퍼스의 내용은 다음과 같습니다.
谢谢你所做的一切
你开心就好
开心
嗯因为你的心里只有学习
某某某,还有你
这个某某某用的好
你们宿舍都是这么厉害的人吗
眼睛特别搞笑这土也不好捏但就是觉得挺可爱
特别可爱啊
今天好点了吗?
一天比一天严重
吃药不管用,去打一针。别拖着
| 모델 | 공유 주소 | 모델 설명 |
|---|---|---|
| model_epoch40_50w | Baidu NetDisk [추출 코드 : JU6M] 또는 Google 드라이브 | 50W 다중 라운드 대화 코퍼스를 사용하여 40 개의 에포크가 훈련되었으며 손실은 약 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:我们不用上课的呀