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

使用Spacy空白模型训练时,配置文件中en_core_web_lg向量的作用

关于Spacy训练中vectors = "en_core_web_lg"的作用疑问

你使用spacy.blank("en")空白模型训练自定义标注的模型,标注数据格式为[(text_1, [(start_1, end_1, LABEL_1)]), (text_2, [(start_2, end_2, LABEL_1)]).....],训练数据准备代码如下:

# Load a new spacy model:
nlp = spacy.blank("en")
# Create a DocBin object:
db = DocBin()
for text, annotations in input: # Data in previous format
    doc = nlp(text)
    ents = []
    spans = []
    for start, end, label in annotations: # Add character indexes
        spans.append(Span(doc, 0, len(doc), label=label))
        span = doc.char_span(start, end, label=label)
        ents.append(span)
        doc.ents = ents # Label the text with the ents
        group = SpanGroup(doc, name="sc", spans=spans)
        doc.spans["sc"] = group
        db.add(doc)
db.to_disk(output_path)

配置文件开头内容:

# This is an auto-generated partial config. To use it with 'spacy train'
# you can run spacy init fill-config to auto-fill all default settings:
# python -m spacy init fill-config ./base_config.cfg ./config.cfg
[paths]
train = null
dev = null
vectors = "en_core_web_lg"

疑问:配置文件中的vectors = "en_core_web_lg"在该训练流程中具体有什么作用?为什么使用自定义标注训练时需要指定它?


解答

  • 提供预训练词向量基础:en_core_web_lg包含基于海量英文通用语料训练完成的大型词向量库,这些向量已经捕捉到了单词的语义关联、语法特征等通用语言信息。训练自定义模型时,无需从0开始学习基础语言表示,直接复用这些预训练向量作为词的初始特征,能大幅减少训练所需的数据量和计算成本。
  • 提升小数据集下的模型性能:自定义标注任务的训练数据通常规模有限,预训练词向量可以帮助模型理解未见过的词汇,或迁移相似词汇的语义知识。比如你的任务是识别特定领域实体,预训练向量已经知道"Python"和"Java"同属编程语言类别,模型能快速把这种关联迁移到你的自定义标注任务中。
  • 适配Spacy训练的默认架构:spacy train默认使用的模型组件(比如用于生成词特征的tok2vec)依赖词向量作为输入。而spacy.blank("en")空白模型本身不包含任何词向量,必须通过配置指定预训练向量来源,否则训练时模型无法获得有效的词特征表示,会导致模型性能极差甚至无法正常完成训练。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 02:10:20