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

BERT词嵌入的预处理流程及字符串转固定向量的实现原理

BERT文本转固定数值向量的预处理实现逻辑

BERT将任意字符串转为固定长度数值向量的过程分为4个明确的预处理步骤,全程依赖预训练时固定的词表、规则完成映射:

  • 第一步:WordPiece分词与长度对齐
    先对原始文本做规则预处理:
    1. 序列头部添加特殊分类符<[BOS_never_used_51bce0c785ca2f68081bfa7d91973934]>,单句任务在尾部加[SEP],句对任务在两个句子中间和尾部各加一个[SEP]
    2. 按照BERT预训练使用的WordPiece词表拆分文本,低频词会拆为多个子词,完全不在词表中的字符统一映射为[UNK]特殊符
    3. 长度对齐:分词后序列超过设定的最大长度(常用128/256/512)则截断尾部内容,不足则用[PAD]填充符补到最大长度,这一步直接保证所有输入的序列长度统一
  • 第二步:映射为输入ID张量
    把上一步得到的所有分词结果,逐个匹配词表中的整数索引,比如<[BOS_never_used_51bce0c785ca2f68081bfa7d91973934]>对应索引101、[SEP]对应102、[PAD]对应0,直接将字符串序列转换为整数序列,形状固定为[max_seq_len]
  • 第三步:生成Segment ID张量
    用于区分句对中的不同句子:单句任务下所有位置统一标0;句对任务下第一个句子(包含中间的[SEP])所有位置标0,第二个句子(包含尾部[SEP]、[PAD]填充位)所有位置标1,形状同样为[max_seq_len]
  • 第四步:生成Attention Mask张量
    用于区分真实文本和无效填充位:真实文本对应的位置标1,[PAD]填充位标0,避免模型对无意义的填充位做计算,形状为[max_seq_len]

上述三个形状相同的张量输入BERT后,会分别经过词嵌入层、段嵌入层、位置嵌入层转换为同维度的向量,三个向量逐位相加后输入Transformer编码器进行编码,最终<[BOS_never_used_51bce0c785ca2f68081bfa7d91973934]>位置对应的输出向量就是整个输入文本的固定大小语义向量:BERT-base版维度为768,BERT-large版维度为1024。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:39:04