1. 文本预处理
-
分词:将句子“你好!”拆分为单词或子词。对于中文,通常使用分词工具(如Jieba)或模型内置的分词器。
-
添加特殊标记:在句子开头和结尾添加特殊标记,如
[CLS]
和[SEP]
,以帮助模型理解句子的边界。
2. 输入编码
-
Tokenization:将分词后的结果转换为模型能理解的ID序列。每个词或子词对应一个唯一的ID。
-
Padding/Truncation:将输入序列调整到固定长度,不足的部分用填充符(如
[PAD]
)补齐,超出的部分截断。
3. 模型处理
-
嵌入层:将输入的ID序列转换为词向量。每个ID对应一个高维向量,这些向量在训练过程中学习得到。
-
Transformer编码:通过多层Transformer编码器处理词向量。每层包含自注意力机制和前馈神经网络,逐步提取句子的语义信息。
-
池化:通常使用
[CLS]
标记对应的向量作为整个句子的表示,或对词向量进行平均/最大池化操作。
4. 输出向量
-
生成句向量:经过Transformer编码和池化后,模型输出一个固定长度的向量(如384维),表示整个句子的语