GrammarGPT:基于监督微调的中文语法纠错开源LLMs探索

GrammarGPT:基于监督微调的中文语法纠错开源LLMs探索

语法纠错的目的是自动纠正不符合语法的句子。最近有些项目已经证明了闭源大型语言模型(llm,例如ChatGPT)在语法错误纠正方面的出色能力。然而,开源LLMs的潜力仍未得到开发。本文介绍了开源LLMs GrammarGPT,初步探讨了其在汉语语法纠错方面的潜力。GrammarGPT 的核心配方是利用chatgpt生成和人工注释的混合数据集。实验结果表明,GrammarGPT 显著优于现有的 SOTA 系统。尽管模型参数比 SOTA 基线大20倍,但指令调优所需的数据量却少了1200倍,这说明了开源llm在本地CGEC上的潜力。我们的 GrammarGPT 在 NLPCC 2023 SharedTask1中排名第三,证明了我们的方法的有效性。

今日AI资讯 2023-08-21 星期一

阿里:将推出大模型数学工具 MindOpt Copilot
联想推出AI大模型训练服务器
"视频版ControlNet"开源了,靠提示词精准换画风,全华人团队出品
清华系团队开源多模态生物医药大模型
AI创企Arthur开源大模型性能评估工具
Meta将推出"免费版编程工具" - Code Llama
腾讯云智能·文案创作:一键生成高质量视频脚本的全能创作工具
美联社禁用ChatGPT创建发布内容
阿里大文娱旗下科技业务公司神力视界孵化出爆款APP妙鸭相机
OpenAI首次公开收购,选择了开源版“我的世界”团队

一、背景介绍

语法错误纠正(grammar Error Correction, GEC)旨在不改变句子的意思,自动纠正不符合语法的句子。在此之前研究汉语语法纠错(CGEC)主要是来自国外汉语学习者的错误,很明显这是不对的。
因此,本次研究转向了母语人士的语法错误,这更加微妙和具有挑战性。

以往对GEC的研究主要采用Seq2edit和Seq2seq两种方法,并在各种GEC上取得了令人印象深刻的性能基准。随着LLMs的出现,有人对闭源LLMs(如ChatGPT)的性能进行了评估,并透露了其出色的错误检测和纠正能力。然而,潜在的的开源LLMs仍未被探索。

在本文中,我们介绍了GrammarGPT,这是一种用于研究语法的新模型开源llm架构通过监督微调解决汉语语法错误纠正(CGEC)的潜力。对CGEC llm进行微调的关键挑战是获得包含母语人士语法错误的高质量并行数据。但是,手动注释这些数据不仅耗时而且代价昂贵,因此需要使用探索自动数据标注方法。最近的研究已经成功地利用从ChatGPT提取的数据和真实世界的数据集对特定领域的LLMs进行微调,有效降低成本的同时实现优越的性能。受这一研究思路的启发,我们提出了一种混合方案包含不同类型的汉语语法错误的数据集。

具体来说,我们首先提出了一种启发式的语法错误检测方法
如图所示,这些线索引导ChatGPT通过提供这些线索来生成不符合语法的句子。然后,对于那些没有线索的错误,我们从公共网站上收集不符合语法的句子并改正手动。此外,我们还提出了一种误差不变的数据增强方法,通过替换命名实体来增强数据的多样性在与相似数据并行的情况下,可以提高模型的识别能力纠正汉语语法错误。我们最终构建了1k个并行数据,并利用这些数据对llm进行指令调优微调。

二、构造混合数据集

下面表中显示了六种以英语为母语的人常常犯的主要语法错误类型,可分为有(w/)线索和没有(w/o)线索两种类型。我们可以找到错误句子流利,符合汉语母语习惯。然而,他们不符合汉语语法,想正确就比较困难了。

表1:各种语法错误的例句。
对那些有(w/)线索的语法错误,我们可以很容易地发现并纠正它们。例如,出现的"超过(more than)"和"大约(about)"导致冗余组件的错误和我们可以去掉其中一个,使句子符合汉语语法。然而,对于那些没有线索的错误,需要对汉语语法有更深的了解检测和纠正。

虽然人工注释的数据提供了高质量的样本,但相关的高成本仍然是一个重要的问题。为了解决这个问题,我们采取了一种妥协的方法。引入ChatGPT生成不符合语法的句子;网上搜集再对不符合语法的句子进行标注。
采用误差不变增强技术,将并行数据中的命名实体替换为相似实体,进一步增强了模型的校正能力
汉语语法错误。最后,我们将并行数据转换为指令,然后利用这些指令对llm进行微调。

2.1 ChatGPT生成数据

有线索的语法错误很容易被发现,并通过识别具体的线索来纠正。例如,more than和about放在一起使用,导致成分冗余;The cause和cause by放在一起使用,导致结构混乱;prompt和pace放在一起使用,导致搭配不当。相反,我们可以通过将这些线索插入到符合语法的句子中来构建不符合语法的句子。我们可以通过提供这些从公共网站收集的线索来指导ChatGPT生成符合我们要求的不符合语法的句子。

2.2 人工标注数据

对于没有明显的语法线索错误句子,我们收集了公共网站的数据,并手工标注。

2.3 错误不变、数据增强

为了优先考虑模型对本地语法错误的关注并提高其鲁棒性,我们设计了一种错误不变的增强方法。
汉语的语法错误往往是微妙的,很少发现在命名实体的位置。因此,我们采用将并行数据中的命名实体替换为相似实体(同义词)的策略。
通过采用这种增强方法,模型可以集中精力进行识别不变的错误,而不是特定的名词,从而提高其性能纠正细微的和难以察觉的语法错误。

三、指令微调

指令调优已经成为调优llm的主流方式,通过提供明确的指令来增强模型理解。
在本文中,我们遵循了这一主流方式,并对llm进行了微调指令调优。指令细节如表2所示,主要是由四个部分组成:

    1. 任务后缀:该组件指导llm承担AI的角色助手。
    1. 任务描述:这里是llm需要完成的具体任务完成是轮廓。
    1. 输入:这对应于使用的不符合语法的句子微调过程中的输入。
    1. 输出:这表示符合语法的句子,作为微调期间的预期输出。
超参数详细信息

训练数据集

共构建1061个并行数据样本,大约35%是手工标注的,而剩下的65%是用ChatGPT生成的。

微调脚本finetuning.py
# https://github.com/FreedomIntelligence/GrammarGPT/blob/main/finetune.py
python finetuning.py

四、推理

验证数据集

采用NLPCC2023开源的数据集

https://github.com/masr2000/NaCGEC/blob/main/data/nacgec.test.input

推理脚本
# https://github.com/FreedomIntelligence/GrammarGPT/blob/main/generate.py
python generate.py
影响分析

在我们对我们的贡献的中,即混合数据集的构建和误差不变增强方法。
值得注意的是,无论是否应用数据增强,在chatgpt生成的数据上训练的模型始终优于训练人类注释数据的模型。将这一观察结果归因于两个主要原因:

  • 首先,人工标注的数据量比ChatGPT生成的数据量要少,因为人工标注的成本较高。
  • 第二,没有线索的语法错误更难纠正。

此外,我们的混合数据集展示了增强的潜力本机CGEC的性能。这一发现证实了我们的方法在构建由汉语语法错误组成的混合数据集方面的有效性。
此外,通过采用误差不变增强方法,我们观察到在混合数据集上训练的模型在召回率和F0.5指标上有显着改善,但在精度上只有微小改善。这表明我们的增强技术通过迫使模型更加关注增强数据中的语法错误来增强模型检测语法错误的能力。

五、应用场景

六、总结

本文介绍了一种开源的大型语言模型(LLM) GrammarGPT
专门设计的汉语语法错误纠正。首先构建了一个包含大约1k个并行数据样本的混合数据集。它包括chatgpt生成的数据和人工注释的数据,用于处理有线索和没有线索的语法错误。此外,我们引入了一种错误不变增强方法,通过强制模型更加关注增强数据中的语法错误,来提高模型对汉语语法错误的纠正能力。我们在构建的数据集上进一步微调开源大规模语言模型。
实验结果和深入分析证明了GrammarGPT在汉语语法纠错中的有效性。


【点击➕关注】:小贾探AI
本人投身于软件行业近十载,专注于WEB工程落地、大数据领域、图谱领域以及AI领域(大模型-GPT-应用落地),平时会在公众号不定期发布一些技术类和实践类的文章,欢
迎关注,一起进步一起成长~

引用
  • https://arxiv.org/pdf/2307.13923
  • https://github.com/FreedomIntelligence/GrammarGPT
  • https://huggingface.co/bigscience/bloom
  • https://github.com/yizhongw/self-instruct
  • https://github.com/FreedomIntelligence/LLMZoo
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值