介绍
bert-base-chinese 是Google在2018年发布的BERT(Bidirectional Encoder Representations from Transformers) 基础版中文预训练模型,专为中文语言理解设计,采用字符级(单字)输入,能有效处理中文无分隔词的特性。
- 发布时间:2018年10月(BERT原版),中文模型同步推出。
- 模型定位:基础版(base),轻量高效,适合通用中文NLP任务与低资源场景。
- 核心特点:双向Transformer编码器、字符级分词、中文通用语料预训练。
模型结构与参数
1. 核心架构
基于Transformer编码器,采用多层双向自注意力机制,捕捉上下文语义依赖。
- 层数(Layers):12层Transformer块。
- 隐藏维度(Hidden Size):768维。
- 注意力头数(Attention Heads):12头,并行捕捉不同语义特征。
- 参数量:约1.1亿(110M),平衡性能与算力。
2. 输入表示(中文适配)
中文输入采用单字(字符级)编码,避免分词错误影响,输入向量由三部分叠加:
- Token Embedding:单字向量(词表大小21128,含汉字、标点、特殊标记)。
- Position Embedding:位置向量(支持最长512字符序列)。
- Segment Embedding:句子向量(区分句子A/B,用于问答、句子对任务)。
3. 特殊标记
[CLS]:序列起始标记,输出用于分类任务(如情感分析)。[SEP]:句子分隔/结束标记,分隔句子对或单句结尾。[MASK]:掩码标记,预训练时随机替换15%字符,用于掩码语言模型(MLM)任务。
预训练任务(中文适配)
采用两大自监督任务,基于大规模中文通用语料训练:
1. 掩码语言模型(Masked Language Modeling, MLM)
- 随机将输入序列中15%的单字替换为
[MASK]。 - 模型通过上下文双向预测被掩码的原字,学习深层语义与语法。
- 中文优化:以单字为掩码单位,适配中文“字构词、词成句”的特点。
2. 下一句预测(Next Sentence Prediction, NSP)
- 输入句子对(A, B),判断B是否为A的真实下一句。
- 正样本:连续句子;负样本:随机句子,学习句子间逻辑关系(如因果、承接)。
3. 训练语料
- 规模:约10GB中文文本,涵盖维基百科、百度百科、网页新闻、书籍等通用领域。
- 覆盖:简体中文为主,含少量繁体与标点,覆盖日常、科技、文化等场景。
中文特性适配
- 字符级输入:直接处理单字,无需分词,避免分词错误(如歧义、未登录词),适配中文无空格书写特性。
- 双向语义:同时利用左/右上下文,优于GPT(单向)、ELMo(浅层双向),精准捕捉中文多义字/词的语境含义。
- 通用语义:预训练语料覆盖广,泛化性强,适配多数中文NLP任务,无需大规模领域数据微调。
支持的下游任务
通过添加任务专属输出层即可微调,典型任务:
- 文本分类:情感分析、新闻分类、意图识别(
[CLS]输出+全连接)。 - 句子对任务:语义相似度、自然语言推理、问答匹配(
[CLS]输出)。 - 序列标注:命名实体识别(NER)、分词、词性标注、关系抽取(逐字符输出)。
- 问答系统:抽取式阅读理解(如SQuAD中文),预测答案起始/结束位置。
优缺点
优点
- 轻量高效:12层+1.1亿参数,训练/推理快,适配单GPU部署。
- 中文友好:字符级输入,零分词依赖,解决中文分词痛点。
- 通用性强:预训练语料广,开箱即用,微调成本低。
- 社区成熟:Hugging Face支持,教程/案例丰富,易落地。
缺点
- 无知识增强:纯文本预训练,缺乏实体/常识知识,复杂推理任务弱(对比百度ERNIE)。
- 上下文窗口小:最长512字符,不支持长文本(如文档、书籍)。
- 简体为主:繁体覆盖少,繁体任务需微调。
与中文同类模型对比
| 模型 | 参数量 | 核心特点 | 适用场景 |
|---|---|---|---|
| bert-base-chinese | 1.1亿 | 字符级、通用语义、轻量 | 通用中文任务、低资源 |
| ERNIE-base(百度) | 1.1亿 | 知识增强(实体/短语掩码)、中文优化 | 实体密集、知识推理任务 |
| RoBERTa-base-chinese | 1.1亿 | 动态掩码、无NSP、更大语料 | 长文本、高语义精度任务 |
总结
bert-base-chinese 是中文NLP入门与通用场景的首选预训练模型,以字符级输入、双向语义、轻量高效为核心优势,适配绝大多数中文理解任务。虽在知识增强、长文本上有局限,但凭借低门槛、高泛化性、成熟社区,至今仍是中文NLP的基础标杆模型。