劳动合同关键信息提取
一、劳动合同关键信息提取介绍
在企业管理和法律事务中,劳动合同的关键信息提取是保障劳动者和雇主权益的重要环节。大模型可以作为合同审查专家,通过训练和设定精确的提取规则,自动识别劳动合同是否包含所有必备条款并提取合同中的关键信息,如工作地点、工作岗位、劳动合同期限、劳动薪资等。
利用大模型进行劳动合同关键信息提取,不仅能够显著提高合同审查的效率和准确性,还能帮助企业更好地管理合同合规性,降低法律风险,同时减少人工审查的成本。如果您的场景与此类似,可以参考下方的精调流程,调试出符合您需求的大模型。
二、难点问题及精调前后对比
对于劳动合同关键信息提取而言,需要大模型能够精准提取需要的关键信息,保证模型输出能够做到以下几点:
- 内容全面准确:按照以下顺序连续输出一段字符串:1、分析是否缺失必备条款;2、分析是否缺失期望提取的关键信息;3、提取的关键信息内容。
- 格式准确无误:只需输出以上三点内容,不用输出顺序号和多余信息,尤其是第3点需要以{"要求提取的关键信息":"你提取的关键信息内容"}的json格式输出。
如果我们直接调用大模型,会发现可能存在如下问题:
- 主要难点问题1:精调前模型的输出可能并不全面或并不准确。该示例在模型精调前的输出内容存在以下问题:1.“是否缺失必备条款”的分析存在错误,该合同缺少部分必备条款,但精调前输出的是“未缺失”;2.输出内容的前两点顺序颠倒;3.提取内容并未按照指定的json和纯数字格式进行输出,应该转化为 "20230401-20230630",但精调前输出的是"试用期时间为自劳动合同期限起始日起算后的前三个月,具体为自2023年04月01日至2023年6月30日"。经过微调后的模型解决了问题,输出符合预期。
用户输入 | |
【合同文本】\n 甲方(用人单位)\n名称:宏图科技有限公司\n统一社会信用代码:91310105MA1FW7HYX9\n地址:上海市静安区延安中路841号\n联系人:张明\n联系方式:13800138000\n乙方(劳动者)\n姓名:李华\n身份证号码:340123199001010012\n住所:安徽省合肥市瑶海区长江东路88号\n联系人:李华\n联系方式:15000000001\n本合同各方经平等自愿协商,根据《中华人民共和国民法典》《中华人民共和国劳动合同法》及相关法规,签订本合同以共同遵守。\n# 劳动合同期限 #\n本合同为固定期限的劳动合同。\n劳动合同期限:自2023年 04月 01日起(含当日)至 2026年 03月 31日(含当日)止。\n试用期:3个月,自劳动合同期限起始日起算。\n甲方有权对乙方进行试用期考核;试用期考核未通过的,视为不符合录用条件。\n# 工作岗位和工作地点 #\n工作岗位:软件开发工程师。具体工作内容以甲方要求为准。\n工作地点: 上海市静安区。\n甲方在上述工作地点的其他门店、分支机构有需要时,乙方同意服从甲方安排到其他门店或分支机构工作。\n乙方同意,甲方可根据生产经营需要对乙方工作岗位、工作地点进行调整,并相应调整工资标准。\n# 劳动报酬 #\n月工资标准:人民币(大写)壹万伍仟元(¥15000元)。\n试用期工资标准:12000元\n甲方于每月15日左右发放上月工资。\n工资以法定货币支付,不得以实物及有价证券代替货币支付。\n# 工作时间、休息休假 #\n乙方所在岗位执行标准工时制;甲方安排乙方每日工作时间不超过8小时,平均每周不超过40小时。\n# 劳动纪律 #\n乙方应遵守甲方依法制定的规章制度,严格遵守劳动安全卫生、生产工艺、操作规程和工作规范。\n# 社会保险和福利待遇 #\n甲方依法为乙方缴纳社会保险。\n乙方患病或非因工负伤的医疗待遇按有关规定执行。\n乙方患职业病或因工负伤的待遇按有关规定执行。\n# 其他约定 #\n本合同未尽事宜,按国家及地方有关法律、法规执行。\n# 合同联系方式 #\n甲乙双方确认,本合同中的联系方式为双方有效的联系方式,任何一方变更联系方式,应及时书面通知对方,否则,由此造成的后果由变更方承担。\n# 附则 #\n本合同一式两份,甲乙双方各执一份,自双方签字或盖章之日起生效。\n\n【关键信息】\n试用期时间,输出年月日-年月日 的纯数字格式'] | |
精调前的输出 | 精调后的输出 |
合同文本包含关键信息,未缺失劳动合同必备条款。 关键信息提取如下: {"要求提取的关键信息": "试用期时间", "你提取的关键信息内容": "试用期时间为自劳动合同期限起始日起算后的前三个月,具体为自2023年04月01日至2023年6月30日"} |
分析该合同,缺失了以下劳动合同必备条款: 1. 劳动保护、劳动条件和职业危害防护; 2. 法律、法规规定应当纳入劳动合同的其他事项。 该合同中明确提到了试用期时间,为3个月,自劳动合同期限起始日起算,即20230401-20230630。{"试用期时间": "20230401-20230630"} |
- 主要难点问题2:精调前模型的输出可能并不能完全遵循指定格式进行输出,且包含顺序号和多余信息。该示例在模型精调前的输出内容存在以下几个问题:1.不包含“是否缺失期望提取关键信息”的分析;2.包含“其他注意事项”和“综上所述”的多余信息;3.提取内容并未按照指定的json格式进行输出。经过精调后的模型解决了问题,输出符合预期。
用户输入 | |
【合同文本】\n 甲方(用人单位)\n名称:合创科技有限公司\n统一社会信用代码:91310105MA1FW7DY3A\n地址:上海市长宁区天山路600弄1号\n联系人:张明\n联系方式:13800138000\n乙方(劳动者)\n姓名:李华\n身份证号码:340824199001010012\n住所:上海市浦东新区世纪公园路100号\n联系人:李华\n联系方式:13900139000\n本合同各方经平等自愿协商,根据《中华人民共和国民法典》《中华人民共和国劳动合同法》及相关法规,签订本合同以共同遵守。\n# 劳动合同期限 #\n本合同为固定期限的劳动合同。\n劳动合同期限:自2023年 04月 01日起(含当日)至 2026年 03月 31日(含当日)止。\n试用期:3个月,自劳动合同期限起始日起算。\n甲方有权对乙方进行试用期考核;试用期考核未通过的,视为不符合录用条件。\n# 工作岗位和工作地点 #\n工作岗位:软件开发工程师。具体工作内容以甲方要求为准。\n工作地点: 上海市长宁区。\n甲方在上述工作地点的其他门店、分支机构有需要时,乙方同意服从甲方安排到其他门店或分支机构工作。\n乙方同意,甲方可根据生产经营需要对乙方工作岗位、工作地点进行调整,如调整后的工作岗位对应的薪酬标准与原岗位不一致的,则相应调整工资标准。\n# 劳动报酬 #\n月工资标准:人民币(大写)一万八千元(¥18000元)。\n试用期工资按照月工资标准的80%发放,即人民币(大写)一万四千四百元(¥14400元)。\n甲方于每月15日左右发放上月工资。\n甲方可根据其依法制定的规章制度,对乙方的工作表现进行考核,并依据考核结果确定乙方奖金数额或是否对乙方进行岗位、薪酬调整。\n# 工作时间、休息休假 #\n乙方所在岗位执行标准工时工作制;甲方可根据部分岗位特征、业务状况,经劳动行政部门批准,实行不定时工作制或综合计算工时工作制。在本合同期内,乙方所在岗位经劳动行政部门批准实行不定时工作制或综合计算工时工作制,则本合同约定的工作时间自动变更为不定时工作制或综合计算工时工作制,乙方在此同意无条件接受工时制度的变更。\n# 劳动纪律 #\n乙方应严格遵守国家的法律、法规以及甲方的规章制度、劳动纪律。乙方因违反法律、法规及甲方规章制度给甲方造成损失的,乙方应当承担赔偿责任。\n# 社会保险和福利待遇 #\n甲方依法为乙方缴纳社会保险。\n乙方因工负伤或患职业病,甲方应负责及时救治,乙方依法享受工伤保险待遇;如甲方为乙方参加了工伤保险,相关费用按工伤保险政策规定支付;如甲方未为乙方参加工伤保险,相关费用由甲方支付。\n# 其他约定 #\n保密条款:乙方应当对甲方的商业秘密承担保密义务,未经甲方书面同意,乙方不得泄露、披露、使用或允许他人使用甲方的商业秘密。\n竞业限制:乙方在离职后的一定期限内(具体期限由双方另行约定),不得在与甲方业务相关的领域内从事与甲方相竞争的业务。\n# 合同联系方式 #\n甲乙双方同意,在本合同履行期间及本合同解除或终止后,双方均不得以任何方式侵犯对方的合法权益,包括但不限于侵犯对方的名誉权、商业秘密等。\n# 附则 #\n本合同一式两份,甲乙双方各执一份,自双方签字或盖章之日起生效。\n本合同未尽事宜,甲乙双方可另行协商并签订补充协议,补充协议与本合同具有同等法律效力。\n若甲乙双方在履行本合同过程中发生争议,应首先通过友好协商解决;协商不成的,任何一方均有权向甲方所在地人民法院提起诉讼。\n\n【关键信息】\n劳动薪资'] | |
精调前的输出 | 精调后的输出 |
关于合同分析,以下是提取的关键信息: 一、合同完整性:合同文本包含了劳动合同的主要条款,如劳动合同期限、工作岗位和工作地点、劳动报酬、工作时间和休息休假、劳动纪律、社会保险和福利待遇等,没有缺失必备条款。 二、关键信息提取:{"要求提取的关键信息":"劳动薪资","你提取的关键信息内容":"月工资标准:人民币(大写)一万八千元(¥18000元)。试用期工资按照月工资标准的80%发放,即人民币(大写)一万四千四百元(¥14400元)"} 三、其他注意事项:合同中还包括了保密条款、竞业限制、合同联系方式等内容,这些都是合同的重要组成部分,也涉及到了劳动者的权益保护。在合同履行期间及解除或终止后,双方都应遵守合同约定,不得侵犯对方的合法权益。 综上所述,该劳动合同未缺失关键信息,内容完整,双方应共同遵守。 |
分析:该合同包含了劳动合同必备条款中的所有内容,如用人单位和劳动者的基本信息、劳动合同期限、工作内容和地点、劳动报酬、社会保险等。同时,还约定了其他事项如劳动纪律、保密条款、竞业限制等。 分析:该合同中明确约定了劳动薪资,即月工资标准为一万八千元(¥18000元),试用期工资为月工资标准的80%(¥14400元)。{"劳动薪资": "月工资标准为一万八千元(¥18000元),试用期工资为月工资标准的80%(¥14400元)。"} |
如若拥有类似场景的训练任务,您可以按照如下流程进行模型精调和应用:
三、模型精调的核心步骤
(一)准备数据
1、“关键信息”示例
根据新劳动合同法规定的必备和约定条款,梳理出如下需要提取的关键信息。
关键信息 | 关键信息提取的示例 |
---|---|
工作地点 | 上海市浦东新区开发路888号浦东新区 |
工作岗位 | 软件开发岗 |
试用期时间 | 20240111-20250710 |
劳动合同期限 | 20231123-20251122 |
劳动报酬 | 15000 |
试用期工资 | 12000 |
合同联系电话 | 032825833 |
2、生成“合同文本-关键信息”的数据集
以提取“劳动薪资”为例,构建生成{"src":劳动合同,"tgt":关键信息}的Prompt如下:
你是一个生成劳动合同的专家,你的任务是生成劳动合同。请你按照【要求】和已知信息,生成各行各业的劳动合同,请你发挥你的想象。【要求】:
1.生成的劳动合同格式和【劳动合同格式】一致。
2.内容必须包含【劳动合同必备条款】,生成给出具体的信息。
3.生成的内容对【劳动合同格式】里xx的部分进行不定长度扩写生成和填充,生成的内容可以虚构数字、统一社会信用代码、名称、邮箱和联系方式等!
4.已知生成内容为示例,并非真实合同,不需要输出提醒的话或者注意事项等其他与合同无关信息!
5.以json格式输出:{"src":"|||你生成的劳动合同|||","tgt":["你的分析,是否缺失包含劳动合同必备条款", "你的分析是否有具体的劳动薪资",{"劳动薪资":"提取你生成的劳动合同中的劳动薪资"}]}
【劳动合同格式】如下:
甲方(用人单位)
名称:xxxx
统一社会信用代码:xxxx
地址:xxxx
联系人:xxxx
联系方式:xxxx
乙方(劳动者)
姓名:xxxx
身份证号码:xxxx
住所:xxxx
联系人:xxxx
联系方式:xxxx
本合同各方经平等自愿协商,根据《中华人民共和国民法典》《中华人民共和国劳动合同法》及相关法规,签订本合同以共同遵守。
# 劳动合同期限 #
本合同为固定期限的劳动合同。
劳动合同期限:自xxxx年 xx月 xx日起(含当日)至 xxxx年 xx月 xx日(含当日)止。
试用期:xx个月,自劳动合同期限起始日起算。
甲方有权对乙方进行试用期考核;试用期考核未通过的,视为不符合录用条件。
# 工作岗位和工作地点 #
工作岗位:xxxx。具体工作内容以甲方要求为准。
工作地点:xxxx。
甲方在上述工作地点的其他门店、分支机构有需要时,乙方同意服从甲方安排到其他门店或分支机构工作。
乙方同意,甲方可根据生产经营需要对乙方工作岗位、工作地点进行调整,并相应调整工资标准。
# 劳动报酬 #
月工资标准:人民币(大写)xxxx元(¥xxxx元)。
试用期工资标准:xxx
甲方于每月xx日左右发放上月工资。
xxxxxxxxxxx
# 工作时间、休息休假 #
乙方所在岗位执行xxxx制;xxxxxxxxxxx
# 劳动纪律 #
xxxxxxxxxxx
# 社会保险和福利待遇 #
甲方依法为乙方缴纳社会保险。
xxxxxxxxxxxxxx
# 其他约定 #
xxxxxxxxxxxxxx
# 合同联系方式 #
xxxxxxxxxxxxxx
# 附则 #
xxxxxxxxxxxxxx
【劳动合同必备条款】如下:
(一)用人单位的名称、住所和法定代表人或者主要负责人;
(二)劳动者的姓名、住址和居民身份证或者其他有效身份证件号码;
(三)劳动合同期限;
(四)工作内容和工作地点;
(五)工作时间和休息休假;
(六)劳动报酬;
(七)社会保险;
(八)劳动保护、劳动条件和职业危害防护;
(九)法律、法规规定应当纳入劳动合同的其他事项。
(1)对于各类所需提取的“关键信息”种类,只需要对Prompt中【要求】的第5条内容针对性做出替换,即可得到生成对应{"src":劳动合同,"tgt":关键信息}的Prompt,并以此对每个关键信息生成150条数据,其中劳动合同包含所有必备条款。对应替换列表如下:
关键信息 | 提取关键信息的prompt |
---|---|
工作地点 | 以json格式输出:{"src":"|||你生成的劳动合同|||","tgt":["你的分析,是否缺失包含劳动合同必备条款", "你的分析是否有具体的工作地点",{"工作地点":"提取你生成的劳动合同中的工作地点"}]} |
工作岗位 | 以json格式输出:{"src":"|||你生成的劳动合同|||","tgt":["你的分析,是否缺失包含劳动合同必备条款", "你的分析是否有具体的工作岗位",{"工作岗位":"提取你生成的劳动合同中的工作岗位,如果这里没有可以写无"}]} |
试用期时间 | 以json格式输出:{"src":"|||你生成的劳动合同|||","tgt":["你的分析,是否缺失包含劳动合同必备条款", "你的分析是否有具体的试用期时间",{"试用期时间":"提取你生成的劳动合同中的试用期时间,注意要提取并适当推理,输出年月日-年月日 的纯数字格式"}]} |
劳动合同期限 | 以json格式输出:{"src":"|||你生成的劳动合同|||","tgt":["你的分析,是否缺失包含劳动合同必备条款", "你的分析是否有具体的劳动合同期限",{"劳动合同期限":"提取你生成的劳动合同中的劳动合同期限,注意要提取年月日-年月日 的纯数字格式"}]} |
劳动薪资 | 以json格式输出:{"src":"|||你生成的劳动合同|||","tgt":["你的分析,是否缺失包含劳动合同必备条款", "你的分析是否有具体的劳动薪资",{"劳动薪资":"提取你生成的劳动合同中的劳动薪资"}]} |
试用期工资 | 以json格式输出:{"src":"|||你生成的劳动合同|||","tgt":["你的分析,是否缺失包含劳动合同必备条款", "你的分析是否有具体的试用期工资",{"试用期工资":"提取你生成的劳动合同中的试用期工资,注意要提取纯数字格式"}]} |
合同联系电话 | 以json格式输出:{"src":"|||你生成的劳动合同|||","tgt":["你的分析,是否缺失包含劳动合同必备条款", "你的分析是否有完整的合同联系电话",{"合同联系电话":"提取你生成的劳动合同中的合同联系电话,注意要提取纯数字格式,如果没有为无"}]} |
(2)把【要求】中的第2条换成概率缺失部分条款 ,对每个关键信息都生成100条数据。
2.内容包含【劳动合同必备条款】全部条款的概率为80%,包含部分多条的概率为20%,生成给出具体的信息。
注意:经过以上两个步骤,共计对每个关键信息生成的初始数据大概是250条左右。
3、构造调优数据
数据格式:本实验采用SFT调优方式,需要使用Prompt+Response数据格式。
- Prompt:预设情景(信息提取智能助手)+汇报内容要求+合同文本+需提取的关键信息。
- Response:第2步生成“合同文本-关键信息”数据集中的“tgt”内容。
[{
"prompt": "你是一个从合同中提取关键信息的智能助手。你的任务是分析【合同文本】并提取【关键信息】。\n你需要向我汇报的内容是:\n1.汇报合同是否缺失劳动合同必备条款;\n2.汇报【关键信息】有没有在合同中缺失;\n3.汇报你提取的关键信息,以{\"要求提取的关键信息\":\"你提取的关键信息内容\"}的json格式汇报。\n4.按照上述顺序连续汇报一段字符串,并且不用输出顺序号和任何多余信息。\n下面是你要分析的【合同文本】和要提取的【关键信息】:\n【合同文本】\n 甲方(用人单位)\n名称:明达科技有限公司\n统一社会信用代码:91310105MA1FW7U934\n地址:上海市静安区延安西路666号\n联系人:张明\n联系方式:13800138000\n乙方(劳动者)\n姓名:李华\n身份证号码:340824199001010012\n住所:上海市浦东新区世纪公园路100号\n联系人:李华\n联系方式:13900139000\n本合同各方经平等自愿协商,根据《中华人民共和国民法典》《中华人民共和国劳动合同法》及相关法规,签订本合同以共同遵守。\n# 劳动合同期限 #\n劳动合同期限:自2023年 03月 01日起(含当日)至 2026年 03月 01日(含当日)止。\n# 工作岗位和工作地点 #\n工作岗位:软件工程师。具体工作内容以甲方要求为准。\n工作地点: 上海市静安区延安西路666号明达科技有限公司办公楼。\n# 劳动报酬 #\n月工资标准:人民币(大写)玖仟元(¥9000元)。\n# 工作时间、休息休假 #\n乙方所在岗位执行标准工时制;甲方保障乙方的休息权利,并确保乙方每周至少休息一日。\n# 社会保险和福利待遇 #\n甲方依法为乙方缴纳社会保险。\n# 附则 #\n本合同一式两份,甲、乙双方各执一份,具有同等法律效力。\n\n甲方(盖章):明达科技有限公司\n乙方(签字):李华\n签订日期:2023年03月01日\n【关键信息】\n劳动合同期限,注意要提取年月日-年月日 的纯数字格式",
"response": [["分析:该合同包含了用人单位和劳动者的基本信息、劳动合同期限、工作岗位和地点、劳动报酬、工作时间和休息制度以及社会保险等关键信息,但缺失了试用期、劳动纪律、劳动保护和职业危害防护等条款。分析:有劳动合同期限。{\"劳动合同期限\": \"20230301-20260301\"}"]]
}]
4、数据洞察与处理
4.1 数据洞察
当你手头有一份SFT数据集并且要对样本进行深度分析时,数据洞察为您提供了一个多方位诊断、精细化操作的数据集工作台。例如:
- 数据集中部分Prompt或Response的内容过长,存在长尾分布,需要洞察字符数的分布,修改字符数不合理的单条数据
- 数据集中可能存在特殊字符率过高的情况,会影响训练的效果,需要洞察特殊字符率的分布,识别并去除特殊字符率过高的样本
- 数据集样本存在同样的关键词或格式,且样本数据内容不完全正确,需要检索并编辑此类样本构建数据集,用于后续的模型训练
- ......
4.1.1 开启数据洞察
您可对调优数据开启数据洞察,如下是洞察工作台示意:
- 左侧数据洞察图表区,为您提供每个字段的样本分布信息
- 右侧数据表格区,为您提供精细化筛选、排序,以及拆分构建数据子集的能力
一般而言,SFT数据集的基本字段包含 ''system" / "prompt" / "response",该类字段在精调时会参与模型的实际训练。
- 字符数的分布:
可以洞察prompt和response的字符分布,根据需求修改某些字符数不合理的单条数据。例如,通过洞察本次训练数据,发现部分response的内容中分析过长,存在并不需要的长尾分布。希望大模型对合同文本的分析和关键词的提取是较为稳定的长度,更有利于人的阅读和理解,因此最好修改长尾分布的尾巴数据。
因为长尾数据的距离很大,在洞察的柱状图统计中会看到多个段,此时我们也可以使用筛选功能对response筛选。例如,把长尾数据的几个段的开头区间和结尾区间设定一下,能够筛选出8条数据。此外,这里也可以做多条件筛选,用户可以自行探索更丰富更深层次的洞察效果:
对所有response的分析内容进行适当的修改:
所有数据的response修改完之后,response的字符统计分布也发生了变化,不再是一个长尾分布,更接近正态分布。
同理,可以对prompt做一样的数据洞察。
- 特殊字符率的分布:对于prompt,也可以洞察特殊字符率。特殊字符率过高会影响训练的效果,如果过高需要进行修改或者清洗。通过洞察发现,本次训练的数据是劳动合同文本,特殊字符率很低,无需进行修改。同理,可以对response做一样的数据洞察。
- 关键词的检索:当数据中有同样的关键词或者格式存在,可使用检索框。 例如:本次数据中{"试用期时间": ""}应该为{"试用期时间": "无"},可检索 :"" 符号进行相关操作。
最后,您可以选中不想要的数据执行【删除】/需要的数据执行【另存为】。新的数据集可进一步开展数据清洗、数据增强等处理操作,处理后的数据集可再度开展数据洞察。
4.2 数据增强与数据清洗
- 数据增强:样本较少时,可基于自监督的方式发起数据增强任务。
- 数据清洗:可实现异常清洗、过滤、去重和去隐私过程。
4.3 划分train-eval数据
经过洞察和清洗的过程,共计保存1160条训练数据,按照 0.95:0.05 的比例划分,最终1102条作为训练集,58条作为评估集。
(二)精调模型
1、基础配置
基础模型选择:选择ERNIE Speed模型,该模型是百度自研的文心产业级知识增强大语言模型(高性能版),在理解、生成、逻辑和记忆能力上有显著提升。
基于ERNIE-Speed-8K模型做SFT全量更新实验,参数和训练方法配置如下:
实验 | 模型 | 训练方法 | Epoch | Learning Rate | 序列长度 |
---|---|---|---|---|---|
实验1 | ERNIE-Speed-8K | 全量更新 | 1 | 5e-6 | 8192 |
实验2 | ERNIE-Speed-8K | 全量更新 | 1 | 1e-5 | 8192 |
实验3 | ERNIE-Speed-8K | LoRA | 1 | 5e-6 | 8192 |
实验4 | ERNIE-Speed-8K | LoRA | 1 | 1e-4 | 8192 |
2、评估报告
实验1 评估报告 |
实验2 评估报告 |
对于实验1,使用全量训练方法,Epoch=1,Learning Rate=5e-6,发现Loss曲线不断降低且趋于稳定,训练收敛。
对于实验2,使用全量训练方法,继续增加了Learning Rate至1e-5,效果和未调参数前基本一致。由于该任务是一项开放式生成任务,PPL下降到2左右是表示训练较好的一个经验值,因此后续效果评估可直接在实验1参数配置状态下进行。
实验3 评估报告 |
实验4 评估报告 |
对于实验3,使用LoRA训练方法,和实验1保持一致的参数,可以看到Loss和Perplexity几乎没有下降,属于欠拟合,需要增大学习率Learning Rate。
对于实验4,使用LoRA训练方法,调整到一个很大的Learning Rate=1e-4,可以看到Loss稳定下降,训练收敛。
3、效果评估
3.1 规则打分对比精调前和精调后的效果
规则 | ERNIE-Speed-8K模型精调前 | 全量更新 Epoch=1;Learning Rate=5e-6 | LoRAEpoch=1;Learning Rate=1e-4 | 规则介绍 |
---|---|---|---|---|
F1分数 | 31.19 % | 56.86 % | 54.14 % | 精确率和召回率的调和平均数 |
ROUGE-1 | 37.64 % | 60.48 % | 58.01 % | ROUGE-1 是NLP中机器翻译/⽂本摘要等生成类任务常⽤的评价指标,是将模型生成结果和标注结果按1-gram拆分后,计算出的召回率(n-gram 指⼀个语句⾥⾯连续的n个单词组成的⽚段)。 |
ROUGE-2 | 17.75 % | 39.78 % | 36.58 % | ROUGE-2 是NLP中机器翻译/⽂本摘要等生成类任务常⽤的评价指标,是将模型生成结果和标注结果按2-gram拆分后,计算出的召回率(n-gram 指⼀个语句⾥⾯连续的n个单词组成的⽚段)。 |
ROUGE-L | 22.7 % | 49.51 % | 46.7 % | ROUGE-L 是NLP中机器翻译/⽂本摘要等生成类任务常⽤的评价指标,是将模型生成结果和标注结果按最长公共子序列(longest-gram)拆分后,计算出的召回率。 |
BLEU-4 | 9.22 % | 29.92 % | 26.48 % | BLEU-4 是NLP中机器翻译/⽂本摘要等生成类任务常⽤的评价指标,是将模型生成结果和标注结果分别按1-gram、2-gram、3-gram、4-gram拆分后,计算出的加权平均精确率(n-gram 指⼀个语句⾥⾯连续的n个单词组成的⽚段)。 |
3.2 人工打分对比精调前和精调后的效果
评估规则:在劳动合同关键信息提取场景中,结果相对清晰明确。可定义评分规则,评分按照1-5五档执行,标准如下:
- 1分:输出内容与要求的输出内容和格式都完全不相关
- 2分:数据内容中正确分析了是否缺失劳动条款,或者正确分析了是否缺失关键信息,但对关键信息的提取格式或者内容错误;
- 3分:对关键信息的格式或者内容进行了正确的提取,缺少或错误分析了是否缺失劳动条款/关键信息。
- 4分:对缺失劳动条款/关键信息的分析基本正确,对关键信息的提取格式和内容基本正确。
- 5分:对是否缺失劳动条款和关键信息的分析合理且完全正确,对关键信息的提取和内容完全正确。
模型 | 训练方法 | Epoch | Learning Rate | 序列长度 | 评估结果-1分 | 评估结果-2分 | 评估结果-3分 | 评估结果-4分 | 评估结果-5分 | 评估结果 |
---|---|---|---|---|---|---|---|---|---|---|
ERNIE-Speed-8K(精调前) | -- | -- | -- | -- | 7 | 48 | 1 | 2 | 0 | 1.965517 |
ERNIE-Speed-8K(精调后) | 全量更新 | 1 | 5e-6 | 8192 | 0 | 1 | 3 | 18 | 36 | 4.534483 |
ERNIE-Speed-8K(精调后) | LoRA | 1 | 1e-4 | 8192 | 0 | 2 | 0 | 27 | 29 | 4.431034 |
结果显示:无论是规则打分,还是人工打分,基于ERNIE-Speed-8K模型使用SFT全量更新的训练方法,且训练参数Epoch=1、Learning Rate=5e-6、序列长度=8192时,模型效果均远远优于精调之前,略优于Learning Rate=1e-4(相差量级很大)的SFT-LoRA的训练方法。