You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在spaCy 3.0中微调基于en_core_web_trf的NER命名实体识别模型

spaCy 3.0 微调en_core_web_trf NER模型操作步骤

1. 环境准备

先安装所需依赖并下载基础模型:

pip install "spacy[transformers]"
python -m spacy download en_core_web_trf

2. 标注数据格式转换

你需要把自己标注的NER数据转换为spaCy专属的.spacy二进制格式,可以参考以下示例脚本完成转换:

import spacy
from spacy.tokens import DocBin
nlp = spacy.blank("en")
# 这里替换为你自己的标注数据,格式为(文本, 实体列表),实体列表每个元素是(起始位置, 结束位置, 实体类型)
train_data = [
    ("苹果公司总部位于加州", [(0, 4, "ORG"), (7, 9, "GPE")]),
    # 更多标注数据...
]
db = DocBin()
for text, annotations in train_data:
    doc = nlp.make_doc(text)
    ents = []
    for start, end, label in annotations:
        span = doc.char_span(start, end, label=label)
        if span is not None:
            ents.append(span)
    doc.ents = ents
    db.add(doc)
# 保存为训练集文件,验证集也用同样逻辑生成
db.to_disk("./train.spacy")

3. 编写训练配置文件

spaCy 3.0 采用配置文件驱动训练流程,你可以先生成基础配置再做针对性修改:

  1. 先执行命令生成基础配置:
python -m spacy init config base_config.cfg --lang en --pipeline transformer,ner --optimize accuracy
  1. 修改base_config.cfg的核心配置项:
[components.ner]
source = "en_core_web_trf" # 加载预训练模型的NER权重作为初始化

[components.transformer]
source = "en_core_web_trf" # 复用预训练的Transformer权重

[training]
train = "./train.spacy"
dev = "./dev.spacy"
learning_rate = 2e-5 # Transformer微调学习率控制在1e-5~5e-5区间
max_epochs = 20
# 若要先冻结Transformer层训练NER头,可加以下配置,前几轮训完再注释掉解冻训练
# frozen_components = ["transformer"]
  1. 补全配置文件默认参数:
python -m spacy init fill-config base_config.cfg config.cfg

4. 启动训练

执行以下命令启动训练,有GPU的话将--gpu-id设为0,无GPU设为-1:

python -m spacy train config.cfg --output ./ner_model_output --gpu-id 0

训练完成后效果最好的模型会保存在./ner_model_output/model-best路径下。

5. 测试微调后模型

import spacy
nlp = spacy.load("./ner_model_output/model-best")
doc = nlp("你要测试的文本内容")
for ent in doc.ents:
    print(f"实体文本:{ent.text},实体类型:{ent.label_}")

注意事项

  • 微调时学习率不要设置过高,否则会破坏预训练模型已经学到的通用语义特征,导致过拟合
  • 如果你的自定义实体和原en_core_web_trf支持的实体类型有重叠,建议保留部分原实体的标注数据加入训练集,避免灾难性遗忘
  • 训练前需要检查标注数据是否存在冲突、边界错误等问题,错误标注会大幅降低模型训练效果

内容的提问来源于stack exchange,提问作者Sai Prashanth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 02:36:06