大模型相关数据格式及训练器接收的数据格式
一、数据格式
1、常见格式(有人说是 AIpaca 格式,在本文称 AIpaca格式)
- 每条记录有 instruction、input、output、history(可选)字段,是最常见的数据格式
[{"instruction": "国际经济与贸易专业的就业前景是怎样的?","input": "","output": "国际经济与贸易专业的就业前景较为广阔。随着全球经济一体化的深入发展,国际贸易交流不断增加,对专业人才的需求也日益增长。毕业生可以在跨国公司、国际贸易企业、金融机构以及政府部门等领域找到就业机会。此外,随着国家对外贸易政策的不断调整与改善,国际经济与贸易专业的就业前景也将更加乐观。综合来看,国际经济与贸易专业具有较高的就业率和就业质量,为毕业生提供了良好的职业发展空间。","history": [["从事国际经济与贸易专业的人可以有哪些工作机会?","国际经济与贸易专业拥有广泛的就业领域。毕业生可以在进出口公司、物流公司、保险公司、银行中介类货代以及报关员、报检员等职位工作。此外,他们还可以在政府机构如外贸局、外汇局、商检局、海关等部门从事涉外经济贸易的实际业务、管理、调研和宣传策划工作。国际经济与贸易专业还培养了高素质的复合型涉外经贸人才,使他们具备从事国际经贸工作的能力和竞争力。"]]},{"instruction": "列出三种创造性的解决问题的技巧。","input": "","output": "1. 头脑风暴: 这种技巧旨在通过鼓励尽可能多的想法来产生新颖的解决方案。与团队成员合作,不管想法多么离奇都应该提出来。最终,团队成员可以一起筛选想法,找到可行的解决方案。\n2. 逆向思维: 这种技巧要求您从问题的根源入手,从结局反推回去。基于这种思想,您可以回顾失败的原因,找到问题的根本所在,并找到更好的解决方案。\n3. 生命周期思考: 这种技巧倡导从全局的角度思考问题。它要求您考虑问题的各个环节,从问题的产生,发展到最终的解决方案。每一个阶段都需要考虑,确保解决方案是全面和持久的。","history": []},...{"instruction": "多元化是否更好","input": "","output": "多元化更好。\n\n通过多元化,不同的观点、文化、价值观和经验可以在一个社会中得到广泛的表达和交流。多元化可以促进创新和进步,因为它鼓励不同的思维方式和方法的交流和融合。不同的人才和智慧可以相互启发和补充,从而推动社会的发展。\n\n多元化还可以提供更多的选择和机会。在一个多元化的社会中,人们可以自由选择自己感兴趣的事业、教育、生活方式等。这种多样性可以促进个人的发展和幸福感,同时也为社会的进步和繁荣创造更多的机会。\n\n此外,多元化还有助于促进社会的稳定和和谐。在一个多元化的社会中,人们可以更好地理解和尊重彼此的差异,增进相互之间的理解和合作。这有助于减少冲突和分裂,促进社会的和谐和稳定。\n\n总的来说,多元化可以带来更多的创新、选择和机会,同时也有助于社会的稳定和和谐。因此,多元化是更好的选择。","history": []}]
2、sharegpt 格式
{"conversations": [{"from": "human", "value": "What is the capital of France?"},{"from": "gpt", "value": "The capital of France is Paris."},{"from": "human", "value": "Can you tell me more about Paris?"},{"from": "gpt", "value": "Paris, known as the 'City of Light', is famous for its rich history, art, fashion, and gastronomy."}],..."conversations": [{"from": "human", "value": "What is the capital of France?"},{"from": "gpt", "value": "The capital of France is Paris."},{"from": "human", "value": "Can you tell me more about Paris?"},{"from": "gpt", "value": "Paris, known as the 'City of Light', is famous for its rich history, art, fashion, and gastronomy."}]
}
3、格式1
(有人说这是 AIpaca 格式,在本文称 格式1)
{"conversations": [{"role": "user","content": "What is the capital of France?"},{"role": "assistant","content": "The capital of France is Paris."},{"role": "user","content": "Can you tell me more about Paris?"},{"role": "assistant","content": "Paris is the largest city and the capital of France. It is known for its art, culture, and history..."}],..."conversations": [{"role": "user","content": "Can you tell me more about Paris?"},{"role": "assistant","content": "Paris is the largest city and the capital of France. It is known for its art, culture, and history..."}]
}
4、格式2
['<|im_start|>user\n根据描述,一个1岁的孩子在夏季头皮出现多处小结节,长期不愈合,且现在疮大如梅,溃破流脓,口不收敛,头皮下有空洞,患处皮肤增厚。这种病症在中医中诊断为什么病?<|im_end|>\n<|im_start|>assistant\n<think>\n这个小孩子在夏天头皮上长了些小结节,一直都没好,后来变成了脓包,流了好多脓。想想夏天那么热,可能和湿热有关。才一岁的小孩,免疫力本来就不强,夏天的湿热没准就侵袭了身体。\n\n用中医的角度来看,出现小结节、再加上长期不愈合,这些症状让我想到了头疮。小孩子最容易得这些皮肤病,主要因为湿热在体表郁结。\n\n但再看看,头皮下还有空洞,这可能不止是简单的头疮。看起来病情挺严重的,也许是脓肿没治好。这样的情况中医中有时候叫做禿疮或者湿疮,也可能是另一种情况。\n\n等一下,头皮上的空洞和皮肤增厚更像是疾病已经深入到头皮下,这是不是说明有可能是流注或瘰疬?这些名字常描述头部或颈部的严重感染,特别是有化脓不愈合,又形成通道或空洞的情况。\n\n仔细想想,我怎么感觉这些症状更贴近瘰疬的表现?尤其考虑到孩子的年纪和夏天发生的季节性因素,湿热可能是主因,但可能也有火毒或者痰湿造成的滞留。\n\n回到基本的症状描述上看,这种长期不愈合又复杂的状况,如果结合中医更偏重的病名,是不是有可能是涉及更深层次的感染?\n\n再考虑一下,这应该不是单纯的瘰疬,得仔细分析头皮增厚并出现空洞这样的严重症状。中医里头,这样的表现可能更符合‘蚀疮’或‘头疽’。这些病名通常描述头部严重感染后的溃烂和组织坏死。\n\n看看季节和孩子的体质,夏天又湿又热,外邪很容易侵入头部,对孩子这么弱的免疫系统简直就是挑战。头疽这个病名听起来真是切合,因为它描述的感染严重,溃烂到出现空洞。\n\n不过,仔细琢磨后发现,还有个病名似乎更为合适,叫做‘蝼蛄疖’,这病在中医里专指像这种严重感染并伴有深部空洞的情况。它也涵盖了化脓和皮肤增厚这些症状。\n\n哦,该不会是夏季湿热,导致湿毒入侵,孩子的体质不能御,其病情发展成这样的感染?综合分析后我觉得‘蝼蛄疖’这个病名真是相当符合。\n</think>\n\n从中医的角度来看,你所描述的症状符合“蝼蛄疖”的病症。这种病症通常发生在头皮,表现为多处结节,溃破流脓,形成空洞,患处皮肤增厚且长期不愈合。湿热较重的夏季更容易导致这种病症的发展,特别是在免疫力较弱的儿童身上。建议结合中医的清热解毒、祛湿消肿的治疗方法进行处理,并配合专业的医疗建议进行详细诊断和治疗。<|im_end|>\n',
.
.
."<|im_start|>user\n对于一名60岁男性患者,出现右侧胸疼并在X线检查中显示右侧肋膈角消失,诊断为肺结核伴右侧胸腔积液,请问哪一项实验室检查对了解胸水的性质更有帮助?<|im_end|>\n<|im_start|>assistant\n<think>\n嗯,有一个60岁的男性患者,出现了右侧胸疼,而且X光显示右侧肋膈角消失,这看起来很像是胸腔积液的问题。医生诊断是肺结核伴右侧胸腔积液。那我们就得想想,什么样的实验室检查能帮助我们更好地理解这个胸水的性质呢?\n\n首先,我们得从基础知识说起。胸腔积液就是说胸腔里有了多余的液体。这液体的来源可能是感染、恶性肿瘤或者其他因素。病因有些复杂,所以了解胸水性质很关键。\n\n嗯,实验室检查一般是用来分析胸水的,看看它到底是从哪儿来的。常见的检测项包括蛋白质、乳酸脱氢酶(LDH)、葡萄糖,以及更具体的病原检测,比如结核菌。\n\n患者是肺结核,那我们就要考虑到这可能是结核性胸腔积液。先要判断胸水的类型:是漏出液还是渗出液呢?为了确定这个,我们通常会用Light's标准,这个标准可以通过胸水的蛋白浓度和LDH水平区分。\n\n但是吧,光知道是渗出液可能还不足以确认是不是结核引起的。这时,结核相关的精确检测就显得格外重要,比如说结核菌PCR或者ADA(腺苷脱氨酶)活性。\n\n对了,ADA这个指标很有意思,特别是在结核性胸腔积液中。当ADA活性高的时候,通常会提示我们大概率是结核病。因此,虽然蛋白质和LDH很重要,但要确认结核,ADA或许更直接些。\n\n也就是说,虽然最开始我们要确认胸水是渗出液,但结合患者肺结核的情况,ADA检测会给我们更好的线索。\n\n所以,经过这么一番思考,我觉得对于已经被诊断为肺结核的患者来说,检测腺苷脱氨酶(ADA)更有指引性。这能帮忙进一步确认胸水与结核感染的关联。\n\n嗯,综上所述,ADA作为分析结核性胸腔积液的指标真的非常有效,最终还是选择它来作进一步检查。\n</think>\n\n对于已经诊断为肺结核伴右侧胸腔积液的患者,为了更好地了解胸水的性质,可以通过检测胸水中的腺苷脱氨酶(ADA)活性来提供有价值的线索。ADA活性高通常提示结核性胸腔积液的可能性更大,因此在这种情况下,ADA检测相较于其他指标如蛋白质和乳酸脱氢酶(LDH)而言,更具诊断意义。<|im_end|>\n"]
5、格式3
[{"input_ids": input_ids,"attention_mask": attention_mask,"labels": labels},...{"input_ids": input_ids,"attention_mask": attention_mask,"labels": labels}
]
二、微调使用的数据格式
1、trl库中的SFTTrainer 支持的数据格式
支持的数据格式为本文中的 格式1
类型的对话组的格式,需要使用下方的代码,转换为格式2
:
from modelscope import AutoModelForCausalLM, AutoTokenizer
model_name = "/root/autodl-tmp/Qwen/Qwen3-4B"# load the tokenizer and the model
tokenizer = AutoTokenizer.from_pretrained(model_name)
# 将转换后的推理数据集应用对话模板
reasoning_conversations = tokenizer.apply_chat_template(data1["conversations"],tokenize = False
)
reasoning_conversations
- 转换前
- 转换后
2、llama factory 微调时,使用的数据格式
本文中的Aipaca
格式数据集:
[{"instruction": "国际经济与贸易专业的就业前景是怎样的?","input": "","output": "国际经济与贸易专业的就业前景较为广阔。随着全球经济一体化的深入发展,国际贸易交流不断增加,对专业人才的需求也日益增长。毕业生可以在跨国公司、国际贸易企业、金融机构以及政府部门等领域找到就业机会。此外,随着国家对外贸易政策的不断调整与改善,国际经济与贸易专业的就业前景也将更加乐观。综合来看,国际经济与贸易专业具有较高的就业率和就业质量,为毕业生提供了良好的职业发展空间。","history": [["从事国际经济与贸易专业的人可以有哪些工作机会?","国际经济与贸易专业拥有广泛的就业领域。毕业生可以在进出口公司、物流公司、保险公司、银行中介类货代以及报关员、报检员等职位工作。此外,他们还可以在政府机构如外贸局、外汇局、商检局、海关等部门从事涉外经济贸易的实际业务、管理、调研和宣传策划工作。国际经济与贸易专业还培养了高素质的复合型涉外经贸人才,使他们具备从事国际经贸工作的能力和竞争力。"]]},{"instruction": "列出三种创造性的解决问题的技巧。","input": "","output": "1. 头脑风暴: 这种技巧旨在通过鼓励尽可能多的想法来产生新颖的解决方案。与团队成员合作,不管想法多么离奇都应该提出来。最终,团队成员可以一起筛选想法,找到可行的解决方案。\n2. 逆向思维: 这种技巧要求您从问题的根源入手,从结局反推回去。基于这种思想,您可以回顾失败的原因,找到问题的根本所在,并找到更好的解决方案。\n3. 生命周期思考: 这种技巧倡导从全局的角度思考问题。它要求您考虑问题的各个环节,从问题的产生,发展到最终的解决方案。每一个阶段都需要考虑,确保解决方案是全面和持久的。","history": []},...{"instruction": "多元化是否更好","input": "","output": "多元化更好。\n\n通过多元化,不同的观点、文化、价值观和经验可以在一个社会中得到广泛的表达和交流。多元化可以促进创新和进步,因为它鼓励不同的思维方式和方法的交流和融合。不同的人才和智慧可以相互启发和补充,从而推动社会的发展。\n\n多元化还可以提供更多的选择和机会。在一个多元化的社会中,人们可以自由选择自己感兴趣的事业、教育、生活方式等。这种多样性可以促进个人的发展和幸福感,同时也为社会的进步和繁荣创造更多的机会。\n\n此外,多元化还有助于促进社会的稳定和和谐。在一个多元化的社会中,人们可以更好地理解和尊重彼此的差异,增进相互之间的理解和合作。这有助于减少冲突和分裂,促进社会的和谐和稳定。\n\n总的来说,多元化可以带来更多的创新、选择和机会,同时也有助于社会的稳定和和谐。因此,多元化是更好的选择。","history": []}]
3、transformers库中的Trainer 微调时,使用的数据格式
本文中的 格式3
数据集:
[{"input_ids": input_ids,"attention_mask": attention_mask,"labels": labels},...{"input_ids": input_ids,"attention_mask": attention_mask,"labels": labels}
]
- 转换代码:
def process_func_single(example, tokenizer):"""医学问答数据集预处理(修复tokenizer未传递问题)Args:example: 包含question, cot, answer, type的样本tokenizer: 分词器对象(需支持apply_chat_template)Returns:包含input_ids, attention_mask, labels的字典"""try:# 构建对话结构messages = [{"role": "system", "content": "You are a helpful medical assistant."},{"role": "user", "content": example["question"]}]# 生成指令文本instruction_text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)instruction = tokenizer(instruction_text, add_special_tokens=False)# 生成响应内容response_text = f"<think>{example['cot']}</think>\n{example['answer']}" if example["type"] == "reason" \else f"<think>\n\n</think>\n{example['answer']}"response = tokenizer(response_text, add_special_tokens=False)# 合并结果input_ids = instruction["input_ids"] + response["input_ids"] + [tokenizer.pad_token_id]attention_mask = instruction["attention_mask"] + response["attention_mask"] + [1]labels = [-100] * len(instruction["input_ids"]) + response["input_ids"] + [tokenizer.pad_token_id]return {"input_ids": input_ids,"attention_mask": attention_mask,"labels": labels}except Exception as e:print(f"处理样本时出错: {e}\n样本内容: {example}")raisetrain_dataset = medical_dataset.map(lambda x: process_func_single(x, tokenizer),batched=False)
三、数据格式转换
1、sharegpt 格式
转 本文中说的 格式1
- 转换函数
from unsloth.chat_templates import standardize_sharegpt
dataset = standardize_sharegpt(ds)
- 转换前
{'instruction': '','id': 'industry-instruction-edu','conversations': [{'from': 'human','value': '问:月经不调经色发黑而且量少。2012年起到现在一直月经很少,而且经色发黑,每个月来2天就没有了,吃过很多调月经的药,也在当地和县城里多次治疗过,可都没用,2014年1月13日,做了个人流后月经越是少还是黑的。有过多次打胎'},{'from': 'gpt','value': '答:根据您的描述,您出现了月经不调的情况,伴有经血颜色发黑且量少。您还提到曾尝试过很多调经药物和治疗,但没有起到明显改善。此外,您还曾多次进行人工流产手术。\n\n月经不调有多种可能的原因,包括荷尔蒙失调、子宫内膜异常、卵巢功能异常、子宫肌瘤等。由于我无法对您进行身体检查,建议您尽快就诊妇科专科医生,让医生详细了解您的病史,并进行必要的检查以明确导致月经不调的具体原因。\n\n医生可能会建议您进行血液检查以评估荷尔蒙水平、进行子宫超声检查以了解子宫内膜情况,还可能需要做其他适当的检查。根据检查结果,医生会制定适合您病情的治疗方案。\n\n请您记住,经验丰富的医生会更好地帮助您解决问题,所以及早就诊非常重要。祝您早日康复!'},{'from': 'human','value': '问:请问我左侧小腹反反复复的疼痛是为什么呢?老师前几个月我以为是阑尾炎后来检查不是医生说是拉丝囊肿,和有盆腔积液说是没啥大问题的就开了药后来好了后,有时会反反复复的我小腹痛。坐凳子都痛'},{'from': 'gpt','value': '答:根据您的描述,您在左侧小腹出现反复疼痛的情况。您之前曾经被怀疑为阑尾炎,但后来的检查结果显示为拉丝囊肿和盆腔积液,并且医生认为这些问题并不严重,并开了药物给您,症状得到了缓解。然而,你还是时不时地出现小腹痛,甚至在坐下时也有疼痛感。\n\n小腹疼痛的原因有很多种可能,包括消化道问题、盆腔炎症、泌尿系统问题、肌肉或神经痛等。虽然拉丝囊肿和盆腔积液被排除为主要问题,但仍然可能有其他的原因导致您的疼痛。\n\n我强烈建议您咨询一位医生,最好是消化系统专科医生或妇科专科医生,以进行详细的病史询问和体格检查。您的医生可能会建议您进一步的检查,例如腹部超声检查、血液检查或其他适当的影像学检查。\n\n在等待就诊期间,您可以尝试以下措施来减轻疼痛:保持良好的饮食习惯,避免过度饮食或摄入过多脂肪;避免吃辛辣、刺激性食物;保持足够的休息和睡眠;避免过度劳累;注意身体姿势,避免长时间保持一个位置不动。\n\n希望您能早日找到引起疼痛的原因,并得到适当的治疗。预祝您早日康复!'}],'lang': 'zh'}
- 转换后
{'instruction': '','id': 'industry-instruction-edu','conversations': [{'content': '问:月经不调经色发黑而且量少。2012年起到现在一直月经很少,而且经色发黑,每个月来2天就没有了,吃过很多调月经的药,也在当地和县城里多次治疗过,可都没用,2014年1月13日,做了个人流后月经越是少还是黑的。有过多次打胎','role': 'user'},{'content': '答:根据您的描述,您出现了月经不调的情况,伴有经血颜色发黑且量少。您还提到曾尝试过很多调经药物和治疗,但没有起到明显改善。此外,您还曾多次进行人工流产手术。\n\n月经不调有多种可能的原因,包括荷尔蒙失调、子宫内膜异常、卵巢功能异常、子宫肌瘤等。由于我无法对您进行身体检查,建议您尽快就诊妇科专科医生,让医生详细了解您的病史,并进行必要的检查以明确导致月经不调的具体原因。\n\n医生可能会建议您进行血液检查以评估荷尔蒙水平、进行子宫超声检查以了解子宫内膜情况,还可能需要做其他适当的检查。根据检查结果,医生会制定适合您病情的治疗方案。\n\n请您记住,经验丰富的医生会更好地帮助您解决问题,所以及早就诊非常重要。祝您早日康复!','role': 'assistant'},{'content': '问:请问我左侧小腹反反复复的疼痛是为什么呢?老师前几个月我以为是阑尾炎后来检查不是医生说是拉丝囊肿,和有盆腔积液说是没啥大问题的就开了药后来好了后,有时会反反复复的我小腹痛。坐凳子都痛','role': 'user'},{'content': '答:根据您的描述,您在左侧小腹出现反复疼痛的情况。您之前曾经被怀疑为阑尾炎,但后来的检查结果显示为拉丝囊肿和盆腔积液,并且医生认为这些问题并不严重,并开了药物给您,症状得到了缓解。然而,你还是时不时地出现小腹痛,甚至在坐下时也有疼痛感。\n\n小腹疼痛的原因有很多种可能,包括消化道问题、盆腔炎症、泌尿系统问题、肌肉或神经痛等。虽然拉丝囊肿和盆腔积液被排除为主要问题,但仍然可能有其他的原因导致您的疼痛。\n\n我强烈建议您咨询一位医生,最好是消化系统专科医生或妇科专科医生,以进行详细的病史询问和体格检查。您的医生可能会建议您进一步的检查,例如腹部超声检查、血液检查或其他适当的影像学检查。\n\n在等待就诊期间,您可以尝试以下措施来减轻疼痛:保持良好的饮食习惯,避免过度饮食或摄入过多脂肪;避免吃辛辣、刺激性食物;保持足够的休息和睡眠;避免过度劳累;注意身体姿势,避免长时间保持一个位置不动。\n\n希望您能早日找到引起疼痛的原因,并得到适当的治疗。预祝您早日康复!','role': 'assistant'}],'lang': 'zh'}