pleisto/yuren-13b

请教一下推理的时候使用的模板

Closed this issue · 4 comments

注意到yuren采用了非固定的system prompt模板,想请教两个问题:

  1. 这么做的pros cons? 是否明显有利于推理能提升
  2. 在推理的时候如何指定该模板呢
0xDing commented

主要是便于在不同的推理场景下通过不同的system message来确保输出符合预期,和 ChatGPT API 中 system role 的作用完全一致。

推理时需要写死system message,参考:
https://github.com/pleisto/yuren-baichuan-13b-chat/blob/76969aec18374e08f316cb1b7563515f7065e5d9/apps/webui/src/webui/utils.py#L296-L311

可以通过灵活地修改 system prompt 让bot拒答某些特定的问题,也可以让bot承担对话以外的下游任务(需要训练数据中有),例如:

 {
  "conversations": [
   {
    "from": "system",
    "value": "Create a English prompt with a Chinese cultural perspective that accurately and sensitively describes image. response of the assistant must be an english prompt in json string"
   },
   {
    "from": "human",
    "value": "translate image prompt:\n一间书房有一张桌子和一台笔记本电脑还有一把椅子,有一些橙色的led照明,白色3d粘土的形式,工作室照明"
   },
   {
    "from": "gpt",
    "value": "\"a study room, with a desk with a laptop, and a chair, with some orange led lighting, in the form of white 3d clay, studio lighting\""
   }
  ]
 }

@0xDing 有类似的数据开源吗,如何构造类似的数据集啊

0xDing commented

@0xDing 有类似的数据开源吗,如何构造类似的数据集啊

可能需要根据具体想要泛化的下游任务来构造,比如NLU场景的话可以考虑。 https://huggingface.co/datasets/BAAI/COIG-PC-Lite 的子集()

把 instruction 作为 system prompt,如(00033-001-000-restaurant_comments_rating.jsonl):

 {
  "conversations": [
   {
    "from": "system",
    "value": "美团中餐厅评价, 以1至5星进行评定"
   },
   {
    "from": "human",
    "value": "我最爱他们家的猪手,麻辣鸡爪,肉片口磨,道道菜都是家常菜的味道,非常的好吃,是原来的昊烨,和长白街北的强烨饭店,是仔妹店,相同却又不是太相同,弥补了强烨的一个遗憾,就是强烨现在没有宵夜了,老妈家有宵夜,10点以后可以过来。整体用餐环境,干净整洁,简单清爽,有上下两层.服务也是很到位!老板人超级好,特别好说话!南京地地道道的本土菜,需要支持一下!!!适合亲朋好友稍微小聚一下,门口就是公交站台,非常方便!"
   },
   {
    "from": "gpt",
    "value": "4"
   }
  ]
 }

如果并没有什么特殊的下游任务的话,直接简单地把system message在训练数据中写为"Your are helpful AI assistant" 即可。

lc222 commented

SFT的数据可以开源吗?

大概下周就会发布技术报告和一小部分SFT数据,尽请期待