PaddlePaddle / Knover

Large-scale open domain KNOwledge grounded conVERsation system based on PaddlePaddle
Apache License 2.0
674 stars 131 forks source link

关于`role_ids` #112

Closed cingtiye closed 2 years ago

cingtiye commented 2 years ago

非常感谢百度开源代码! 想请教一下关于role_ids的设置。

我现在有多组多轮对话的数据,每组多轮对话有多个角色,请问我是否需要为每一组的每个角色都设置一个唯一的role_id,还是只需要设置nrole_id(远小于角色数),依次分配到每一组中。

非常期待能得到回复! 元宵节快乐~

sserdoubleh commented 2 years ago

role id一般是这样处理的: 1)倒过来依次确认每一个utterance的role id(因此保证回复的role id为0) 2)每遇到一个新用户(新分配一个role id,比如之前有3个role_id,为0~2,那新用户的role id为3) 3)如果是以前出现的用户(role id就可以直接复用之前的)

cingtiye commented 2 years ago

role id一般是这样处理的: 1)倒过来依次确认每一个utterance的role id(因此保证回复的role id为0) 2)每遇到一个新用户(新分配一个role id,比如之前有3个role_id,为0~2,那新用户的role id为3) 3)如果是以前出现的用户(role id就可以直接复用之前的)

您好,非常感谢您的回复! 我整理了一下我的数据,发现有几万个role。然后,我看了一下PLATO-XL的论文和参数设置,我发现在中文数据集上有1.2B个samples,并且"role_type_size": 128,这样一算的话,平均一个role至少要讲几百万句话。难道真的每遇到一个新的role就要分配一个新的role_id吗?请问有没有什么trick?

20220222二~非常期待能得到您的回复。

sserdoubleh commented 2 years ago

role_id,不是根据整个语料计算的,是每个样本单独编码role_id 比如有两个样本: 样本1: context: A B,response:A 样本2: context:C B A B,response:A 这里两个样本回复 role_id 相同,都是A,但是是不同的user

cingtiye commented 2 years ago

懂了懂了~3q3q