从头训练中文错别字纠错模型 (一)
文章目录
源码位置
整个源码已经包含了训练好的模型和简单训练需要准备的数据集
背景
中文错别字纠错(Chinese Spelling Check,CSC)是一个非常简单的大模型应用场景,训练的成本也比较低,非常适合入门机器学习和自然语言处理。
去年(2025年)我的某个KPI项目就是实践做一个中文错别字纠错模型。
最终我实现的代码是很基础的模型,并无法非常优秀地在生产环境运行(和现在各家AI公司提供的API存在一些差距,个人学习项目也不会在训练数据上持续改进),所以就放出来作为开源项目
一方面让小白可以参考,另一方面当作我自己的学习笔记。
技术栈取舍
训练
毫无疑问的是Python
推理
采用了Rust而没有采用大模型从业人员经常使用的Python或者Go
为什么我会采用Rust做推理服务:
- Rust和Pyhon相比性能好太多了,和Java、go相比又没有GC压力
- 我也在尽可能的多使用Rust让自己更熟悉这门语言
源码训练和部署步骤
环境准备
- 安装系统依赖
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
- 安装 pyenv
curl https://pyenv.run | bash
- 配置环境变量(root 用户也要配):
echo '
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
' >> ~/.bashrc
source ~/.bashrc
- 安装推荐 Python 版本(建议3.10.14因为一些工具链对新版本支持并不那么友好)
pyenv install 3.10.14
pyenv global 3.10.14
- 创建虚拟环境并安装依赖
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.onnx及csc_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": "这件衣服很漂流,今天天气部错。一毛一样的错误没出现过,有没有什么泛画的能力,好像泛化能力一半半啊。这理有一个错别字啊。哼"}'
总结
训练模型是一个非常简单的事情,现在的开源和工具链已经非常成熟。当然现在模型因为训练数据非常少,泛化能力比较差,但作为一个入门项目对我来说已经足够了
下一篇我会介绍整个训练的原理和代码的一些细节
文章作者 pengxiaochao
上次更新 2026-01-21
许可协议 不允许任何形式转载。