利用LLM接口,以三种不同策略,构建一系列针对不同能力的单轮SFT数据。策略包括:
- ImitateGenerator:以若干案例样本为模板,扩增数据。支持同时生成多种语言数据。
- AbilityExtractionGenerator: 利用LLM接口,归纳出若干案例样本中包含的能力。根据这个能力集合,生成新样本和答案。
- AbilityDirectGenerator: 根据指定的能力类型,或者任务类型,直接生成与该能力或任务相关的新样本。例如,指定能力为“逻辑推理”,则可生成一系列逻辑推理题目及答案。为增强生成样本的多样性,支持排除已生成样本。
具体示例见example.py
example_ls = [
'我小时候吃虾,然后出现过敏反应。几年后,我吃了带有章鱼的虾,然后出现了更严重的过敏反应。每次我去那些有强烈虾味的餐馆,我都会一贯性地出现过敏反应。这可以推断出:',
'小明观察到他周围的人们都喜欢吃巧克力。因此,他得出结论:所有人都喜欢吃巧克力。请问这个结论是否可靠?如果可靠,可以如何解释这种观察结果?如果不可靠,应该如何修正这个结论?',
'在一个实验中,A组实验者使用药物X,B组实验者使用药物Y。最后发现A组的痊愈率明显高于B组。基于这一结果,我们可以得出什么结论?',
'如果一个人经常迟到,那么他的时间观念是强还是弱?',
'如果一个地区的犯罪率降低了,那么这个地区的治安是提高了还是降低了?']
task = '逻辑推理'