GrammarGPT:通过监督微调探索开源大语言模型进行原生中文语法纠错
✨ 最新消息
⚡ 简介
欢迎来到GrammarGPT的代码仓库。
这是NLPCC 2023共享任务1的实现仓库,该项目获得了第三名。
以下是已发布的内容列表:
💭 概述
我们引入了GrammarGPT,这是一个开源大语言模型,初步探索了它在原生中文语法纠错方面的潜力。GrammarGPT的核心方法是利用ChatGPT生成和人工标注的混合数据集。对于有线索的语法错误,我们提出了一种启发式方法,通过提供这些线索来引导ChatGPT生成不符合语法的句子。对于没有线索的语法错误,我们从公开可用的网站收集了不符合语法的句子,并进行人工纠正。此外,我们采用了一种错误不变增强方法来提升模型纠正原生中文语法错误的能力。
📚 混合数据集的构建
这个表格展示了中文母语者常犯的六种主要语法错误类型,可以分为两类,即有线索和无线索的错误。我们可以发现,错误的句子通顺且符合中文母语者的习惯,但不符合中文语法规则,这使得纠错更加困难。我们分别利用ChatGPT生成的数据和人工标注的数据来处理有线索和无线索的语法错误。
ChatGPT生成的数据
有线索的语法错误通过识别特定线索容易检测和纠正。例如,"超过"和"左右"一起使用导致成分冗余,"原因"和"导致"一起使用导致结构混乱,"促进"和"步伐"一起使用导致搭配不当。相反,我们可以通过在语法正确的句子中插入这些线索来构造不符合语法的句子。我们可以通过提供这些从公开网站收集的线索来指导ChatGPT生成符合我们要求的不符合语法的句子。
人工标注数据
对于那些不符合语法的错误,我们从公共网站1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16收集数据并进行人工标注。
错误不变增强
中文母语者的语法错误通常比较微妙,很少出现在命名实体的位置上。因此,我们采用了一种策略,用相似的实体(同义词)替换平行数据中的命名实体。
🚀 训练
python finetuning.py
🧐 推理
python generate.py
😀 致谢
我们意识到我们的工作受到了以下作品的启发,包括但不限于:
- Bloom: https://huggingface.co/bigscience/bloom
- Self-instruct: https://github.com/yizhongw/self-instruct
- LLMZoo: https://github.com/FreedomIntelligence/LLMZoo
没有这些,本仓库中的任何内容都无法实现。
引用
@inproceedings{fan2023grammargpt,
title={GrammarGPT:通过监督微调探索开源大语言模型用于中文母语语法纠错},
author={范雅欣 and 蒋锋 and 李培峰 and 李海洲},
booktitle={CCF国际自然语言处理与中文计算会议},
pages={69--80},
year={2023},
organization={Springer}
}
我们来自香港中文大学(深圳)数据科学学院和深圳市大数据研究院。
第一作者是来自苏州大学的访问学生,我们欢迎有志之士加入我们的团队,为大语言模型的新时代做出贡献。