开源最强中文纠错大模型,超越华为17个点!

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

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

1、数据集

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

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

2、评估结果

Model NameModel LinkPrecRecF0.5
twnlp/ChineseErrorCorrector2-7Bhttps://huggingface.co/twnlp/ChineseErrorCorrector2-7B0.62330.62280.6232
HW_TSC_nlpcc2023_cgec(华为)未开源0.50950.31290.4526
鱼饼啾啾Plus未开源0.57080.12940.3394
CUHK_SU未开源0.38820.15580.2990
CGEC++未开源0.24140.07350.1657
zhao_jia未开源0.17190.14780.1665

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


3、使用方法

transformers

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

# 安装 transformers 库
pip install transformers

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

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "twnlp/ChineseErrorCorrector2-7B"

model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)

prompt = "你是一个文本纠错专家,纠正输入句子中的语法错误,并输出正确的句子,输入句子为:"
text_input = "少先队员因该为老人让坐。"
messages = [
    {"role": "user", "content": prompt + text_input}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)

generated_ids = model.generate(
    **model_inputs,
    max_new_tokens=512
)
generated_ids = [
    output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]

response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)

VLLM

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

# 安装 VLLM
pip install vllm

以下是 VLLM 示例代码:

from transformers import AutoTokenizer
from vllm import LLM, SamplingParams

# Initialize the tokenizer
tokenizer = AutoTokenizer.from_pretrained("twnlp/ChineseErrorCorrector2-7B")

# Pass the default decoding hyperparameters of twnlp/ChineseErrorCorrector-7B
# max_tokens is for the maximum length for generation.
sampling_params = SamplingParams(seed=42, max_tokens=512)

# Input the model name or path. Can be GPTQ or AWQ models.
llm = LLM(model="twnlp/ChineseErrorCorrector2-7B")

# Prepare your prompts
prompt = "少先队员因该为老人让坐。"
messages = [
    {"role": "user", "content": "你是一个文本纠错专家,纠正输入句子中的语法错误,并输出正确的句子,输入句子为:"+prompt}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)

# generate outputs
outputs = llm.generate([text], sampling_params)

# Print the outputs.
for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}") 

总结

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

### 部署开源大模型华为910B设备 #### 使用Docker容器化环境准备 为了在华为Ascend 910B设备上成功部署开源大型模型,需先确保目标机器已安装并配置好Docker引擎。对于特定硬件架构的支持,如NPU (Neural Processing Unit),应确认所使用的Docker镜像兼容ARM64v8指令集,因为这是Ascend系列处理器采用的体系结构[^2]。 #### 获取适合的大规模预训练模型 选择合适的预训练模型至关重要。考虑到资源消耗和性能优化,建议挑选那些已经过移植或特别针对昇腾平台做了适配工作的版本。例如,一些流行的自然语言处理框架可能提供了官方支持的Docker镜像,这些镜像内含经过调整后的模型文件以及必要的依赖库。 #### 构建自定义Dockerfile 创建一个`Dockerfile`来定制运行时环境,其中包含但不限于: - 安装Python解释器及其开发包; - 设置工作目录并将主机上的源码挂载至容器内部; - 利用pip工具安装额外所需的第三方软件包; - 下载指定版本的基础映像作为起; 下面是一个简单的例子用于说明目的而非实际执行: ```dockerfile FROM python:3.8-slim-arm64v8 WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt CMD ["python", "./main.py"] ``` 此脚本假定存在名为`requirements.txt`的需求列表文档,并且应用程序入口位于根路径下的`main.py`文件中。 #### 推送与拉取私有仓库中的镜像 如果打算长期维护项目,则可以考虑注册个人账号于公有云服务商处(比如阿里云ACR),上传构建完成后的镜像以便后续快速获取更新。当然也可以搭建本地Harbor实例实现相同功能的同时保障数据安全性和隐私保护。 #### 执行命令启动服务 最后一步就是通过CLI发出指令让一切运转起来啦! ```bash docker run -d \ --name=my_model_service \ --gpus all \ # 如果适用的话启用GPU加速特性 my_private_registry/my_custom_image:latest ``` 上述操作完成后即完成了整个流程概述。值得注意的是,在真实场景里还需要关注更多细节方面的工作,譬如日志管理、监控告警机制建立等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值