Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

运行interact.py问题 #72

Open
guijuzhejiang opened this issue Aug 20, 2021 · 16 comments
Open

运行interact.py问题 #72

guijuzhejiang opened this issue Aug 20, 2021 · 16 comments

Comments

@guijuzhejiang
Copy link

运行interact进行多伦问答时,发现第2,3...轮的回答还是针对第一轮的问题的,没有对后面的问题作回答。
请问这是为什么?
源码把所有历史信息和当前的问题连起来作为输入token_ids,并且type_ids都为0,不知道训练是不是也是这样的。

@sserdoubleh
Copy link
Collaborator

能贴个 case 吗?type_id 对整个 context 都是0,response 是1,这个是正常的

@guijuzhejiang
Copy link
Author

[Human]: Example: 0
Context:
你喜欢猫还是狗?
[Bot]: 我养了一只吉娃娃。
[Human]: Example: 0
Context:
你喜欢猫还是狗?
我养了一只吉娃娃。
买彩票了吗?
[Bot]: 我觉得小猫比较可爱。
[Human]: Example: 0
Context:
你喜欢猫还是狗?
我养了一只吉娃娃。
买彩票了吗?
我觉得小猫比较可爱。
你有什么爱好?
[Bot]: 我是爱猫派

@guijuzhejiang
Copy link
Author

这是我debug时的结果,和run出来的界面稍有区别,[Human]的提问是Context的最后一句

@guijuzhejiang
Copy link
Author

训练NSP模型时也用多轮对话语料吗?会不会用单轮对话语料训NSP模型,对上下句预测的分数更准呢?

@sserdoubleh
Copy link
Collaborator

你跑的中文是从哪里下载的?还是你自己训的呢?我这边用我的模型跑了下,效果是正常的

@guijuzhejiang
Copy link
Author

是我自己收集数据训练的模型

@sserdoubleh
Copy link
Collaborator

这个预测出来的效果是有些奇怪,你的 decode strategy 是什么呢?有在脚本打开task.debug()吗?可以看看采样出来的多个候选回复,进一步看看是否正常

@guijuzhejiang
Copy link
Author

有开task.debug。用了nsp_score,topk_sampling=3,我训练的是小语种。我用翻译软件把结果翻译一下:
[人类]:示例:0
背景:
你更喜欢狗还是猫?
预测:
我有一只吉娃娃。 0.99367
是的。猫很可爱。 0.99352
我有一只猫!0.99309
我有一只吉娃娃。 0.99285
我不打算养狗,但我想知道这只狗是否可爱。 0.99249
[机器人]:我有一只吉娃娃。
[人类]:示例:0
背景:
你更喜欢狗还是猫?
我有一只吉娃娃。
你买彩票了吗?
预测:
我是一只猫和一只猫米妮。很可爱,但我喜欢这件衣服。 0.99416
很多人买了就留着。 0.99035
我不能保留 0.98374
我不能保留它,因为我是我父母的房子。 0.98179
有多少条裙子? 0.96495
[机器人]:我是一只猫和一只猫米妮。很可爱,但我喜欢这件衣服。
[人类]:示例:0
背景:
你更喜欢狗还是猫?
我有一只吉娃娃。
你买彩票了吗?
我是一只猫和一只猫米妮。很可爱,但我喜欢这件衣服。
你有什么爱好?
预测:
我是猫教派-0.99317
我经常养猫。 0.99041
毕竟是猫。 0.98828
猫咖啡馆怎么样?0.96132
我喜欢狗。猫是猫吗?-999.00636
[机器人]:我是猫派

@guijuzhejiang
Copy link
Author

抱歉,感觉翻译的也不太确切。不过候选里面似乎有相对正确的回答,但是NSP的分数排在了后面,所以我想是不是我训练的NSP模型的问题

@guijuzhejiang
Copy link
Author

训练NSP的语料和训练UT,Plato的语料都是一样的吧。也就是说训练这三个模型所使用的语料是同一个语聊吧?

@sserdoubleh
Copy link
Collaborator

对的,三个模型训练的时候用的是同一份语料

@sserdoubleh
Copy link
Collaborator

sserdoubleh commented Aug 20, 2021

抱歉,感觉翻译的也不太确切。不过候选里面似乎有相对正确的回答,但是NSP的分数排在了后面,所以我想是不是我训练的NSP模型的问题

不知道是不是翻译的原因,感觉效果不够好
这个语料的有多少个 context - response pair 呢?

@guijuzhejiang
Copy link
Author

一共收集了348603个pair,后续数据还在收集

@guijuzhejiang
Copy link
Author

是否在转换话题的时候会有这种现象呢?我测试的几个问题之间都是没有关联的

@sserdoubleh
Copy link
Collaborator

是否在转换话题的时候会有这种现象呢?我测试的几个问题之间都是没有关联的

从上面你试的 case 来看,这个 NSP 的打分倾向于给之前的话题高分,能否多试几个例子呢?

@guijuzhejiang
Copy link
Author

确实是NSP 模型打分倾向于给之前的话题高分,是不是说明NSP模型训练的还不够收敛,继续训练NSP比较好

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants