本次比赛地址:星火大模型驱动阅读理解题库构建挑战赛
目的:基于大模型微调技术,微调适用于高考语文现代文阅读和英语阅读的QAG的大模型,完成输入文章输出问题与答案的任务。
概述:给定语文、英语高考阅读真题,包括:原文、题目、答案。根据数据集生成“同样格式”的题目以及答案,实现“题目扩增”的效果。
核心要点:Prompt工程
整体学习资料:Datawhale AI 夏令营(第四期)---- 大模型微调
原因:数据量少、按照Baseline1跑完只有152条数据,且数据集包含的语文以及英语题目不均衡(类别不均)
Baseline地址
基础代码Baseline:
# 读取Excel文件
df = pd.read_excel('训练集-语文.xlsx')
# 正则匹配替换
df = df.replace('.', '.', regex=True)
df = df.replace('(', '(', regex=True)
将数据中选择题、简答题区分开
def chinese_multiple_choice_questions(questions_with_answers):
# 输入的题目文本
text = questions_with_answers
question_pattern = re.compile(r'\d+\..*?(?=\d+\.|$)', re.DOTALL)
# 这一行作用是匹配一个以数字开头、后面跟着一个点字符的字符串,
#。直到遇到下一个数字和点字符或字符串结束。
choice_pattern = re.compile(r'([A-D])\s*(.*?)(?=[A-D]|$|\n)', re.DOTALL)
# 这一行作用是匹配一个以字母[A到D]开头、后面跟着一个点字符的字符串,
#直到遇到下一个[A到D]或字符串结束。
# 找到所有问题
questions = question_pattern.findall(text)
# 初始化选择题和简答题列表
multiple_choice_questions = []
short_answer_questions = []
# 处理每个问题
for id,question in enumerate(questions):
# 这里取到的question,如果是选择题会带着选择题的选项。
# 检查是否是选择题 因为选择题内有ABCD这样的选项
if re.search(r'[A-D]', question):
# 如果有选项,提取出选项的内容
choices