Knover icon indicating copy to clipboard operation
Knover copied to clipboard

关于plato2的persona定制

Open Anery opened this issue 3 years ago • 5 comments

您好,我看了issue #24,尝试在24L的plato-2上使用persona定制,修改代码如下:

https://github.com/PaddlePaddle/Knover/blob/9d0db786dca9c575b40eb5776c6620bbd6657070/knover/scripts/interact.py#L84 改成:

personas = ["your persona: i have three cats.", "your persona: i am 20 years old.", "your persona: i like eggs."]
example = Example(src=" [SEP] ".join(personas + data.decode("utf8")), data_id=0)

https://github.com/PaddlePaddle/Knover/blob/9d0db786dca9c575b40eb5776c6620bbd6657070/knover/scripts/interact.py#L127 改成:

personas = ["your persona: i have three cats.", "your persona: i am 20 years old.", "your persona: i like eggs."]
src = " [SEP] ".join(personas + context)

执行interact后结果混乱,如下: image

能否帮忙看下,是哪里使用不对吗?

Anery avatar Jan 19 '22 10:01 Anery

更新问题:试了下32L的model可以,看来采用BST微调是定制的关键。请问 1、这种定制能力是完全依靠数据集吗? 2、上面的代码在每次对话都append persona信息,使用是否正确?还是只要第一句话加入即可?

Anery avatar Jan 19 '22 17:01 Anery

更新问题:试了下32L的model可以,看来采用BST微调是定制的关键。请问 1、这种定制能力是完全依靠数据集吗? 2、上面的代码在每次对话都append persona信息,使用是否正确?还是只要第一句话加入即可?

24L 开源的模型是没有经过 BST finetune 的

  1. 这种能力主要还是来自于 finetune,会生成下游数据集的格式的对话
  2. 只需要保证传进去的 src 里面最前面是 persona信息,这是当时我们的开源模型训练时使用的格式;你这里处理的方式没问题,因为 interact 脚本里只维护了对话历史,没有单独维护 persona,可以按照你这种方式处理的

另外分布式 interact 脚本改的有点问题哈,大致是需要改成(不过这里还有一些边界需要处理下)

personas = ["your persona: i have three cats.", "your persona: i am 20 years old.", "your persona: i like eggs."]
example = Example(src=" [SEP] ".join(personas) + " [SEP] " + data.decode("utf8"), data_id=0)

sserdoubleh avatar Jan 22 '22 13:01 sserdoubleh

感谢回复,另外问下self-chat有脚本可以运行吗 代码里没找到

Anery avatar Jan 23 '22 04:01 Anery

self chat的代码,我后面可以提供一个,大概月底有时间了吧

sserdoubleh avatar Jan 24 '22 18:01 sserdoubleh

https://github.com/PaddlePaddle/Knover/pull/118 我这里提供了一个 self-chat 的脚本,和一个 demo 配置 ./scripts/local/job.sh ./package/dialog_en/self_chat.conf 默认是以"hi"作为对话的开头,你可以在infer_args里面加一个--in_file来指定以什么为开头,进行self-chat 具体的可以参考 knover/scripts/self_chat.py,里面的逻辑也不是很复杂,可以参考着改 self_chat 的配置可以参考./package/dialog_en/24L_infer.conf改动解码策略

sserdoubleh avatar Mar 01 '22 03:03 sserdoubleh