数据准备
训练之前需要准备如下格式的训练数据:
阅读理解选择题的样例如下:
{
“input” : lora使用的系统prompts+回答要求prompts+主要阅读类容
“output”:每个选择题的:问题+选项+答案
}
每条数据都是由input内容与output内容构成。
处理成这样的数据格式需要用到python的文本处理、pandas、正则表达式等技能。主要难点在正则表达式匹配所有重要的数据类型,然后分类处理。
不重要
这是处理过程中的中间数据,可以借助pandas进行批量处理
模型增强
直接将处理好的训练数据丢入平台中,就可以自动训练。下面主要讲如何提升。主要是根据自己的数据增强需求,给出合适的prompt上更大的超大模型给出自己想要的数据结果。例如
- 补全答案;
- 问题与答案的评分;
- 使用相同的题目,生成多组QA;
- 等等。
这部分的主要难度在prompt的抒写,接着使用pandas对每条数据进行apply提示词函数,将处理后的每条数据也就是prompt送入超大模型获得更多更全的数据。
数据补全
由于数据中会存在答案不足4个的情况,所以需要描述出合适的prompt让大模型进行补全。
其中cankao_content部分可以如下
cankao_content = '''
1. 以下哪个选项是“具身认知”的定义?
A. 认知在功能上的独立性、离身性构成了两种理论的基础。
B. 认知在很大程度上是依赖于身体的。
C. 认知的本质就是计算。
D. 认知和心智根本就不存在。
答案:B
2. 以下哪个实验支持了“具身认知”的假设?
A. 一个关于耳机舒适度的测试。
B. 一个关于眼睛疲劳程度的测试。
C. 一个关于人类感知能力的实验。
D. 一个关于人类记忆力的实验。
答案:A
‘’‘
def get_adddata_prompt_zero(reading, cankao_content, question, answer):
prompt = f'''你是一个高考英语阅读题出题专家,请阅读材料,需要参考参考内容 按照要求将题目、选项、答案对其补充完整。
###阅读材料
{reading}
###要求
1.需要将序号对应的题目与答案做匹配。
2.匹配后格式按照问题、ABCD四个选项顺序、答案的结构组合,按照参考内容格式输出。
3.如果选择题目数量不够四个请根据阅读材料及出题思路再生成题目,总题目达到四个。
4.题目中不能出现任何不合理的词汇、语法错误。
5.如果有简答题目与答案请忽略这部分内容,只处理选择题目。
###参考内容
{cankao_content}
###题目
{question}
###答案
{answer}
'''
return prompt
数据扩充
使用相同的题目,生成多组QA。
模型评分
通过补充完整的prompt,然后传递给更高参数量的大模型进行打分,获得评分结果。
judgement = f'''
你是一个高考阅读题目出题专家,你需要根据下面要求结合阅读文章对题目及答案这样的出题情况进行打分,根据要求一步一步打分,得到有效分数后你将得到100万元的报酬,给出最终得分情况,以“总分:XX分”的形式返回。
### 阅读文章
{reading}
### 题目及答案
{QA}
### 要求
1. 判断给出的题目及答案,题目是否为四道,如果不满足四道,少一道题扣10分,如果每个题目没有答案,少一个答案扣5分。
1. 给出题目选项与答案匹配正确度给分,通过阅读文章每分析道题目正确,则给5分,如果错误给0分。四道题满分20分。
2. 给出题目与选项在阅读文章中的匹配程度给分,每道题目符合阅读文章且选择答案复合题目并可用通过阅读文章分析得到,完全符合给3分,完全不符合给0分。四道题满分12分。
3. 给出题目与选项是否符合高考难度,每道题目与答案是否符合高考的难度,完全符合给3分,完全不符合给0分。四道题满分12分。
4. 给出最终得分情况,对上面三个分数进行求和得到总分,以“总分:XX分”的形式返回,三个问题满分共44分。
'''