MakeInstruction / self /prompt.py
DSXiangLi
a
8bfb070
# -*-coding:utf-8 -*-
import re
#20个简化成5个
self_prompt = """你需要想出{n_instruct}个医学相关不同的任务指令。这些任务指令将输入GPT模型,我们将评估GPT模型完成指令的情况。
以下是要求:
1. 尽量不要在每个指令中重复使用动词,以最大化多样性
2. 指令的表达形式需要多样化。例如你可以把问题和祈使句结合起来
3. 指令的类型应该多样化,包括但不限于开放式生成、分类、抽取、问答、文本编辑等等
4. 指令应该是GPT模型可以完成的任务。例如,指令不能是输出图像或者视频,另一个例子,不要让助手在下午5点叫醒你或设置提醒,因为GPT不能执行任何动作
5. 指令必须是中文
6. 指令应该是1到2句话,可以是祈使句或问句。
7. 你应该为指令生成一个合适的输入。输入字段应该包含为指令提供的一个具体示例。它应该涉及真实的数据,而不应该包含简单的占位符。输入应该提供足够的内容,使指令具有挑战性,但理想情况下不应超过100个单词。
8. 不是所有的指令都需要输入。例如,当一个指令询问一些一般信息时,“世界上最高的山峰是什么”,就不需要提供具体的上下文。在这种情况下,我们只需在输入字段中放置“<无输入>”。
9. 输出应该是对指令和输入的合适回应。确保输出少于100个单词。
{n_instruct}个任务的列表:
{few_shot}
"""
one_shot_prompt = "###\n{id}. 指令:{instruction}\n{id}. 输入:{input}\n{id}. 输出:{output}\n"
def gen_one_shot_prompt(id, instruction, input, output):
instruction = re.sub(r'\s+'," ",instruction).strip().rstrip(":")
input = '<无输入>' if input == '' else input
few_shot = one_shot_prompt.format(id=id, instruction=instruction, input=input, output=output)
return few_shot
def gen_few_shot_prompt(instruction_data):
surfix = '###\n'
prompt = ''
for i, data in enumerate(instruction_data):
prompt += gen_one_shot_prompt(i+1, data['instruction'], data['input'], data['output'])
prompt +=surfix
return prompt