经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 大数据/云/AI » 人工智能基础 » 查看文章
开源最强中文纠错大模型,超越华为17个点! - TW-NLP
来源:cnblogs  作者:TW-NLP  时间:2025/3/7 9:38:08  对本文有异议
?

项目地址:GitHub - TW-NLP/ChineseErrorCorrector: 中文拼写错误和语法错误纠正

 

文本纠错任务在审查、写作任务中至关重要,以前的纠错大多采用小模型进行训练,例如BART、T5、BERT等,但是小模型的泛化性较差,需要在不同领域训练不同的小模型进行纠错,为此我们使用200万数据进行大模型的训练,经过验证我们在GitHub - masr2000/NaCGEC数据集上,F1值比华为高10个点,遥遥领先,下面从三个方面进行详细的技术说明:数据集(涵盖业界所有的开源数据)、评估结果、使用方法,欢迎star,后续会持续更新纠错模型。

 

1、数据集

数据集名称数据链接数据量和类别说明描述
CSC(拼写纠错数据集) twnlp/csc_data W271K:279,816 条,Medical:39,303 条,Lemon:22,259 条,ECSpell:6,688 条,CSCD:35,001 条 中文拼写纠错的数据集
CGC(语法纠错数据集) twnlp/cgc_data CGED:20449 条,FCGEC:37354 条,MuCGEC:2467 条,NaSGEC:7568条 中文语法纠错的数据集
Lang8+HSK(百万语料-拼写和语法错误混合数据集) twnlp/lang8_hsk 1568885条 中文拼写和语法数据集

项目包含三个部分的数据集,分别为CSC、CGC和Lang8+HSK,涵盖了所有开源高质量的拼写纠错和语法纠错的数据集,也是我们分阶段训练的数据。

2、评估结果

Model NameModel LinkPrecRecF0.5
twnlp/ChineseErrorCorrector2-7B https://huggingface.co/twnlp/ChineseErrorCorrector2-7B 0.6233 0.6228 0.6232
HW_TSC_nlpcc2023_cgec(华为) 未开源 0.5095 0.3129 0.4526
鱼饼啾啾Plus 未开源 0.5708 0.1294 0.3394
CUHK_SU 未开源 0.3882 0.1558 0.2990
CGEC++ 未开源 0.2414 0.0735 0.1657
zhao_jia 未开源 0.1719 0.1478 0.1665

我们在NaCGEC数据集上,比最高的华为要高17个点,实测效果也很不错,强力推荐!


3、使用方法

transformers

通过 transformers 库,您可以方便地加载和使用中文拼写纠错模型:

  1. # 安装 transformers 库
  2. pip install transformers

 

以下是使用模型进行拼写纠错的代码示例:

  1. # pip install transformers
  2. from transformers import AutoModelForCausalLM, AutoTokenizer
  3. checkpoint = "twnlp/ChineseErrorCorrector2-7B"
  4. device = "cuda" # for GPU usage or "cpu" for CPU usage
  5. tokenizer = AutoTokenizer.from_pretrained(checkpoint)
  6. model = AutoModelForCausalLM.from_pretrained(checkpoint).to(device)
  7. input_content = "你是一个文本纠错专家,纠正输入句子中的语法错误,并输出正确的句子,输入句子为:\n少先队员因该为老人让坐。"
  8. messages = [{"role": "user", "content": input_content}]
  9. input_text=tokenizer.apply_chat_template(messages, tokenize=False)
  10. print(input_text)
  11. inputs = tokenizer.encode(input_text, return_tensors="pt").to(device)
  12. outputs = model.generate(inputs, max_new_tokens=1024, temperature=0, do_sample=False, repetition_penalty=1)
  13. print(tokenizer.decode(outputs[0]))

 

VLLM

使用 VLLM 进行推理,支持快速高效地生成文本:

  1. # 安装 VLLM
  2. pip install vllm

 

以下是 VLLM 示例代码:

  1. from transformers import AutoTokenizer
  2. from vllm import LLM, SamplingParams
  3. # Initialize the tokenizer
  4. tokenizer = AutoTokenizer.from_pretrained("twnlp/ChineseErrorCorrector2-7B")
  5. # Pass the default decoding hyperparameters of twnlp/ChineseErrorCorrector-7B
  6. # max_tokens is for the maximum length for generation.
  7. sampling_params = SamplingParams(seed=42, max_tokens=512)
  8. # Input the model name or path. Can be GPTQ or AWQ models.
  9. llm = LLM(model="twnlp/ChineseErrorCorrector2-7B")
  10. # Prepare your prompts
  11. prompt = "少先队员因该为老人让坐。"
  12. messages = [
  13. {"role": "user", "content": "你是一个文本纠错专家,纠正输入句子中的语法错误,并输出正确的句子,输入句子为:"+prompt}
  14. ]
  15. text = tokenizer.apply_chat_template(
  16. messages,
  17. tokenize=False,
  18. add_generation_prompt=True
  19. )
  20. # generate outputs
  21. outputs = llm.generate([text], sampling_params)
  22. # Print the outputs.
  23. for output in outputs:
  24. prompt = output.prompt
  25. generated_text = output.outputs[0].text
  26. print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")

 

  1.  

总结

ChineseErrorCorrector 是一个强大的中文拼写和语法纠错工具,开箱即用,后面会不断的跟进前沿的纠错方法和数据,不断更新开源模型。

?

原文链接:https://www.cnblogs.com/TW-NLP/p/18756992

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号