以下是关于生成 prompt 数据集的相关内容:
在 RAG 提示工程系列中,动手做一个 RAG 提示词的过程包括搭建测试环境。其中,Presence Penalty 用于控制模型输出中某些词或短语的出现频率,与频率惩罚类似但有区别,有助于生成更平衡和全面的文本内容。介绍完基本设置后可创建提示词,主要提示词放在 System 中,User 提示词可预置提问的话,重点在于{Query}这种特殊的变量形式写法,创建并保存后会在“Registry”中看到。准备数据集时,可以上传自己的测试数据集,也可以使用 PromptLayer 提供的测试数据集,目前 PromptLayer 支持 Json 和 CSV 两种格式,但上传中文数据集可能会出现乱码。
在制作 LLM 微调数据集方面,经过对文本的处理,得到非结构式和结构式的数据。对于需求以 QA 数据集和 dialogue 数据集为主的情况,对于 QA 数据集,可依靠大语言模型生成,先对文件中的文本进行切割,将每一大部分放进一个约 200 字的 txt 文件,然后设定提示词模板。例如对于公司产品手册,可使用特定的模板来生成问题和答案。
8.Presence Penalty:Presence Penalty用于控制模型输出中某些词或短语的出现频率。与频率惩罚类似,存在惩罚可以减少特定词汇的使用,但不同于频率惩罚的是,存在惩罚更侧重于避免在输出中过度强调某些概念或主题。这有助于生成更平衡和全面的文本内容。介绍完基本设置,接下来我们就可以创建整个提示词了。大家可以看到,我将主要的提示词放到了System中,正如刚才所讲,我们需要控制模型的行为与设定,所以会放在此处。而User提示词,我预置了一句提问的话(当然你也可以在此基础上修改,对单次交互提出更多要求),重点在于{Query},这种写法是特殊的变量形式写法,如果在实际运行中,{Query}会被替代成具体问题,这个效果在后面我们将会看到。创建并保存后,你将会在“Registry”中看到你所创建的提示词。第三步:准备数据集在这一步中,你可以上传自己的测试数据集,也可以使用PromptLayer提供的测试数据集,目前PromptLayer支持的数据集格式有Json和CSV两种。请注意,经过测试后发现上传中文数据集可能会出现乱码,所以在构建数据集时请大家多多留意
8.Presence Penalty:Presence Penalty用于控制模型输出中某些词或短语的出现频率。与频率惩罚类似,存在惩罚可以减少特定词汇的使用,但不同于频率惩罚的是,存在惩罚更侧重于避免在输出中过度强调某些概念或主题。这有助于生成更平衡和全面的文本内容。介绍完基本设置,接下来我们就可以创建整个提示词了。大家可以看到,我将主要的提示词放到了System中,正如刚才所讲,我们需要控制模型的行为与设定,所以会放在此处。而User提示词,我预置了一句提问的话(当然你也可以在此基础上修改,对单次交互提出更多要求),重点在于{Query},这种写法是特殊的变量形式写法,如果在实际运行中,{Query}会被替代成具体问题,这个效果在后面我们将会看到。创建并保存后,你将会在“Registry”中看到你所创建的提示词。第三步:准备数据集在这一步中,你可以上传自己的测试数据集,也可以使用PromptLayer提供的测试数据集,目前PromptLayer支持的数据集格式有Json和CSV两种。请注意,经过测试后发现上传中文数据集可能会出现乱码,所以在构建数据集时请大家多多留意
制作LLM微调数据集对于以上文本进行如上处理后,下面我们要生成LLM所需的格式。经过以上的过程,我们现在已经得到了文本格式非结构式的数据还有网络式结构式的数据。我的需求现阶段还算比较简单,主要以QA数据集和dialogue数据集为主。对于QA数据集,我的方法主要靠已有的大语言模型生成,根据不同文本设定不同的提示词,进行尽可能地信息量大的获取QA。首先,先得对文件中的文本进行切割,我是将每一大部分放进一个txt文件里,一个txt文件大约200字(私密马赛,我的场景初步阶段还没有那么复杂),然后设定提示词模板。对于公司产品手册:template = f"""你是一个聪明的xxx公司的xxx产品的产品经理。给你一段xxxxx有限公司xx产品相关的文本,你必须依据文本想出十个不同的问题和这十个问题对应的答案。你想出的问题可以被用来测试公司内部xxx职员的专业能力。你想出的问题可以是使用公司产品的用户会想到的问题。你想出的问题和答案必须和所给文本相关。你回答得答案必须可以让使用产品的用户理解。当你想出问题和答案后,你必须用以下格式回复:```[