源码位置

pengxiaochao/csc

整个源码已经包含了训练好的模型和简单训练需要准备的数据集

背景

中文错别字纠错(Chinese Spelling Check,CSC)是一个非常简单的大模型应用场景,训练的成本也比较低,非常适合入门机器学习和自然语言处理。

去年(2025年)我的某个KPI项目就是实践做一个中文错别字纠错模型。

最终我实现的代码是很基础的模型,并无法非常优秀地在生产环境运行(和现在各家AI公司提供的API存在一些差距,个人学习项目也不会在训练数据上持续改进),所以就放出来作为开源项目

一方面让小白可以参考,另一方面当作我自己的学习笔记。

技术栈取舍

训练

毫无疑问的是Python

推理

采用了Rust而没有采用大模型从业人员经常使用的Python或者Go

为什么我会采用Rust做推理服务:

  • Rust和Pyhon相比性能好太多了,和Java、go相比又没有GC压力
  • 我也在尽可能的多使用Rust让自己更熟悉这门语言

源码训练和部署步骤

环境准备

  1. 安装系统依赖
apt update
apt install -y \
  build-essential \
  curl \
  git \
  libssl-dev \
  zlib1g-dev \
  libbz2-dev \
  libreadline-dev \
  libsqlite3-dev \
  libncursesw5-dev \
  xz-utils \
  tk-dev \
  libxml2-dev \
  libxmlsec1-dev \
  libffi-dev \
  liblzma-dev
  1. 安装 pyenv
curl https://pyenv.run | bash
  1. 配置环境变量(root 用户也要配):
echo '
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
' >> ~/.bashrc

source ~/.bashrc
  1. 安装推荐 Python 版本(建议3.10.14因为一些工具链对新版本支持并不那么友好)
pyenv install 3.10.14
pyenv global 3.10.14
  1. 创建虚拟环境并安装依赖
python -m venv venv
source venv/bin/activate
pip install -U pip setuptools wheel
pip uninstall -y numpy
pip install \
  torch==2.1.2+cpu \
  torchvision==0.16.2 \
  torchaudio==2.1.2 \
  transformers==4.37.2 \
  numpy==1.26.4 \
  onnx \
  onnxscript \
  --extra-index-url https://download.pytorch.org/whl/cpu

训练步骤

cd csc_python
pip install -r requirements.txt
cd ..
python csc_python/train.py

对的,训练一个大模型实际上就这么简单,就这么简单就能训练出一个可用的错别字智能纠错模型

导出模型给Rust推理使用

python csc_python/export_onnx.py

复制导出的文件 csc.onnxcsc_model中的文件到 csc_rust_service/model/ 目录

开启Rust推理服务

cd csc_rust_service
cargo run --release

测试

curl --location 'http://127.0.0.1:8080/csc/correct' \
--header 'Content-Type: application/json' \
--data '{"text": "这件衣服很漂流,今天天气部错。一毛一样的错误没出现过,有没有什么泛画的能力,好像泛化能力一半半啊。这理有一个错别字啊。哼"}'

总结

训练模型是一个非常简单的事情,现在的开源和工具链已经非常成熟。当然现在模型因为训练数据非常少,泛化能力比较差,但作为一个入门项目对我来说已经足够了

下一篇我会介绍整个训练的原理和代码的一些细节