当前位置:AIGC资讯 > AIGC > 正文

为ChatGLM-6B模型的训练纪实:从数据集准备到LLamA-Factory的高效应用(一)

文章目录

前言 一、数据来源的选择 (一)、开源数据集 1. 存在的问题 2. 解决方案 (二)、自定义数据集 网络爬虫 用户生成内容 法律咨询

阶段成果展示

前言

在人工智能和自然语言处理领域,生成式预训练模型(如GPT-3和ChatGPT)已经展示了其强大的语言生成能力。随着技术的发展,开源社区也逐渐涌现出许多强大的模型和工具,其中ChatGLM-6B和LLamA-Factory便是两个值得关注的项目。本文将详细介绍如何为训练ChatGLM-6B模型寻找和创造训练集,以及利用LLamA-Factory对模型进行训练的具体步骤和方法。

我们的项目目标是完成一个能够对法律问题进行解答并给出比较规格的法律咨询建议、判决书等。项目地址

一、数据来源的选择

(一)、开源数据集

首先根据需求,我们的目标是强化默认ChatGLM-6B模型在法律咨询,处理案件的逻辑,和法院一样生成标准法律文书。基于以上的目标,我们寻找相似的主题的开源仓库。我们找到了和项目有类似功能的中文法律模型,和开源的法律相关内容数据集,包含通用领域数据、法律问答数据、法律法规和法律参考书籍、法律文书的数据,从而强化模型可以更好地理解自然语言和上下文信息的性能,在处理法律问题时能够提供准确、全面的法律咨询和支持。

1. 存在的问题

需要注意的是,开源数据集可能存在与自己的模型规定的数据集格式不相同、数据集质量参差不齐(如口语化过于严重,存在语病等问题),数据集的质量会直接关系到后续生成解答的质量。例如下面的条目提问的意义不明:

过于口语化:

2. 解决方案

基于此,我们需要对开源数据集进行针对性的清洗。数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。由此可以提高数据集的质量。与问卷审核不同,录入后的数据清理一般是由计算机而不是人工完成。针对数据集的清洗可以参阅这篇文章。

改变数据集格式的问题,需要具体问题具体分析,设计相应的脚本。以这次数据集的收集过程中的工作举例。

ChatGLM-6B标准数据集格式中,每个条目包含以下字段:

instruction: 提示的指令 input: 输入内容(在示例中通常为空) output: 生成的回应

文件结构示例:

[
    {
        "instruction": "你好, 我叫chatglm3-6b",
        "input": "",
        "output": "嗨!很高兴见到您!我是山东大学软件学院CLD开发团队的LecumentGEN中文法律文书生成大模型,有什么可以帮到您的吗?"
    },
    ...
]

收集的开源数据集legal_advice.json格式

legal_advice.json中,每个条目是一个列表,包含多个对象,每个对象有以下字段:

input: 输入内容(通常为空) instruction: 提示的指令 output: 生成的回应

文件结构示例:

[
    [
        {
            "input": "",
            "instruction": "假冒他人专利进行买卖算不算诈骗",
            "output": "假冒他人专利进行买卖属于知识产权侵权行为,可能涉及到欺诈和诈骗行为..."
        }
    ],
    ...
]

差异分析

ChatGLM-6B标准数据集格式使用了平面列表结构,直接包含对象。 开源数据集legal_advice.json则使用嵌套列表结构,每个条目都是一个包含对象的列表。

修改脚本

以下Python脚本将legal_advice.json转换为与ChatGLM-6B一致的标准格式:

import json

def convert_to_standard_format(input_file, output_file):
    with open(input_file, 'r', encoding='utf-8') as infile:
        data = json.load(infile)
    
    # Flatten the nested list structure
    flattened_data = [item for sublist in data for item in sublist]
    
    with open(output_file, 'w', encoding='utf-8') as outfile:
        json.dump(flattened_data, outfile, ensure_ascii=False, indent=4)

input_file = '/mnt/data/legal_advice.json'
output_file = '/mnt/data/legal_advice_standard.json'
convert_to_standard_format(input_file, output_file)
print(f"Converted file saved as {output_file}")

此脚本读取legal_advice.json文件,将嵌套列表展开为单个平面列表,并将结果保存到新的JSON文件legal_advice_standard.json中。

(二)、自定义数据集

自定义数据来源可以通过网络爬虫,用户生成内容等。

网络爬虫
用户生成内容

我们通过将JEC-QA中国法考数据集中的试题输入ChatGPT,让其生成对每个答案的解析从而构造自定义数据集。

GPT-3.5生成 GPT-4o生成 问题: 根据《物权法》,下列关于物权变动的特别规定,表述正确吗? 因继承或者受遗赠取得物权的,自继承或者受遗赠开始时发生效力 请给出详细的推理过程之后再给出答案。 回复:《物权法》规定了关于物权变动的特别规定,其中包括因继承或受遗赠取得物权的情况。根据该法律,继承或受遗赠取得物权的效力是自继承或受遗赠开始时发生的。这意味着,一旦继承或受遗赠的程序开始,相应的物权就会立即生效,而不是等到继承或受遗赠程序完成后才生效。这一规定是为了确保继承人或受遗赠人能够及时获得相应的物权,以维护其合法权益。 问题: 情景分析:张某欠李某2万元,张某有一辆出租车价值4万元,现张某将该车赠与其友王五;李某发现张某无其他值钱的东西,这一赠与会影响张某偿还债务,于是向法院起诉请求撤销张某的赠与行为。法院对该赠与行为的效力应认定。 回复: 根据《中华人民共和国民法典》和相关法律规定,法院在处理张某将出租车赠与王五,而李某请求撤销该赠与行为的案件时,应重点考虑以下法律原则和条款: 1. 债权人的撤销权《中华人民共和国民法典》第538条规定,债务人因放弃债权、无偿转让财产或者以明显不合理的低价转让财产,导致债权人无法实现债权的,债权人有权请求人民法院撤销债务人的行为,但债权人请求撤销的权利,自知道或者应当知道撤销事由之日起一年内行使。2. 无偿转让财产在本案中,张某将价值4万元的出租车无偿赠与其朋友王五,属于无偿转让财产。由于张某无其他值钱的东西,该赠与行为显然影响了张某偿还李某债务的能力。 3. 法院的认定法院在审理此案时,应根据上述法律条款认定:- 张某的赠与行为属于无偿转让财产。- 该赠与行为影响了李某实现债权的可能性。4. 撤销赠与行为鉴于上述分析,法院应当支持李某的请求,撤销张某将出租车赠与王五的行为,以保护李某作为债权人的合法权益。 结论法院应认定张某将出租车赠与王五的行为无效,并支持李某的请求撤销该赠与行为,从而保障李某的债权实现。具体判决如下:- 撤销张某将出租车赠与王五的行为。- 要求张某将出租车作为清偿李某债务的资产。 法律依据主要依据为《中华人民共和国民法典》第538条,即债权人的撤销权条款。该条款明确规定了在债务人无偿转让财产导致债权人无法实现债权时,债权人有权请求撤销该行为的法律依据。
法律咨询

我们从开放数据集中收集了一些咨询问题,输入ChatGPT,让ChatGPT扮演律师解答问题。将相关法条一同输入,可以提升ChatGPT生成的质量。

GPT-3.5生成 GPT-4o生成 问题: 离婚后夫妻的财产是怎么分配的?根据《民法典》和有关法律进行说明。**回复:**根据《中华人民共和国民法典》和相关法律规定,离婚后夫妻的财产分配主要依据以下原则:1. 一般原则: 《民法典》规定,离婚时夫妻共同财产由离婚协议或者人民法院根据夫妻双方的请求,依法平等地划分。这意味着夫妻可以通过自愿达成的协议来分割共同财产,如果没有达成协议或协议不合理,则由人民法院根据法律规定进行划分。2. 财产来源原则: 夫妻共同财产是指自婚姻关系成立起到离婚前取得的财产。该财产主要包括夫妻共同劳动、共同生活所形成的收入,以及夫妻共同财产增值所形成的财产。3. 分割原则: 在划分夫妻共同财产时,通常采取平等分割原则,即按照公平、合理的方式将共同财产划分给夫妻双方。但也要考虑到个别情况的特殊性,如婚姻期间一方出现过度消费、虚报财产等情形,人民法院有权作出调整。4. 个人财产原则: 夫妻各自的个人财产不属于夫妻共同财产,离婚时应归各自所有,不参与共同财产的分割。总的来说,离婚后夫妻的财产分配以平等、公平为原则,依法依情况进行划分,保障双方合法权益。 问题: 我老公经常不回家,我知道他在外面有人,同时干了许多坏事,一年365天,这个情况怎么办呢?根据《民法典》和有关法律进行说明。 回复: 根据中国的有关法律,你可以采取以下步骤应对这种情况: 1. 收集证据首先,你需要收集你丈夫不回家、在外面有第三者以及从事不良行为的证据。这些证据对于后续的法律程序非常重要。证据可以包括照片、视频、录音、聊天记录、证人证言等。2. 离婚诉讼根据《中华人民共和国民法典》,如果夫妻感情确已破裂,可以向法院提起离婚诉讼。你可以以夫妻感情破裂为由,向人民法院申请离婚。3. 财产分割和抚养权在离婚诉讼中,可以同时请求分割夫妻共同财产和确定子女抚养权。根据《民法典》:- 夫妻共同财产应当公平分割。考虑到你丈夫的不忠行为,法院在分割财产时可能会对你有一定倾斜。- 子女的抚养权问题将根据子女的利益优先原则进行判决,考虑双方的经济状况、教育背景、抚养能力等因素。 4. 请求损害赔偿根据《中华人民共和国民法典》第1091条规定,如果因为配偶的过错导致离婚的,无过错方可以请求损害赔偿。你可以向法院请求因你丈夫的不忠行为所造成的精神损害赔偿。 **5. 提起刑事诉讼(如有必要)**如果你丈夫的行为涉及违法犯罪行为,例如赌博、吸毒、家庭暴力等,你可以向公安机关报案,并要求追究其刑事责任。6. 寻求法律援助和支持在处理离婚及相关法律事务时,建议你寻求专业律师的帮助。律师可以为你提供法律咨询、帮助你准备和提交法律文件、代理你出庭等。此外,你还可以寻求心理咨询或社会服务机构的支持,以应对离婚过程中可能出现的情感压力和困惑。通过以上法律途径,你可以保护自己的合法权益,并对你丈夫的不当行为进行应有的法律追究。

数据预处理(数据清洗,数据标注)、数据增强方法(数据扩展技术、数据平衡技术)将在后续实践中介绍。

更新时间 2024-06-22