外观
数据准备与采样
约 973 字大约 3 分钟
2025-05-23
一、数据预处理流程
1. 原始文本清洗
- 噪声过滤:清除HTML标签、特殊符号、非法字符及广告内容
- 文本规范化:统一全半角字符、处理缩写扩展("can't"→"cannot")、数字格式化(日期/金额标准化)
- 语言建模增强:通过回译(Back Translation)生成多语言平行语料
2. 序列结构化处理
- 动态分词:采用BPE(Byte-Pair Encoding)或WordPiece算法分割低频词为子词单元
- 示例:"unfriendly" → ["un", "##friend", "##ly"]
- 序列截断策略:采用滑动窗口处理超长文本(窗口重叠率通常设为25%)
- 掩码语言建模:随机遮蔽15%词元用于预训练任务构建
二、词元转换流程
1. 单词 → 词元ID
- 词表映射机制:
- 构建包含3万至50万子词单元的映射词典(如BERT词表30k,GPT-3词表50k)
- 采用最大前缀匹配算法进行贪婪分词(优先匹配最长已知子词)
- OOV处理:未登录词映射到特殊
[UNK]
标识符(约占词表0.1%容量)
2. 词元ID → 词元嵌入
- 嵌入矩阵:可训练参数矩阵,维度为 (词表大小, 嵌入维度) ,典型值(50257, 4096)
- 查询机制:通过词元ID索引对应行向量,实现离散符号到连续空间的映射
- 特性:捕获词元间的语义关联(相似词向量距离相近)
三、位置嵌入系统
1. 核心功能
- 绝对位置编码:为每个序列位置生成唯一向量标识
- 相对位置编码:建模词元间距离关系(如相邻词元具有特定交互模式)
2. 主流实现方案
编码类型 | 典型方法 | 优势 | 局限性 |
---|---|---|---|
可学习嵌入 | BERT、GPT-3采用方案 | 灵活适配任务特性 | 外推能力受限 |
正弦函数编码 | Transformer原始方案 | 支持任意长度外推 | 局部位置敏感性较弱 |
旋转位置编码 | LLaMA、ChatGLM采用方案 | 保持相对位置关系的数学完备性 | 计算复杂度较高 |
相对偏置编码 | T5、DeBERTa方案 | 显式建模词元对相对距离 | 需要修改注意力计算逻辑 |
3. 融合策略
- 加法融合:词元嵌入与位置嵌入直接相加(如BERT)
- 拼接融合:在特征维度拼接两种嵌入(如早期RNN模型)
- 门控融合:通过可学习参数动态调节位置信息权重
四、关键技术挑战
1. 长序列处理
- 稀疏注意力:采用局部窗口注意力降低计算复杂度(如Longformer的滑动窗口机制)
- 层次化编码:对长文本进行分段编码后聚合(如Transformer-XL的循环记忆机制)
2. 多语言适配
- 混合词表:平衡不同语言子词分布(如XLM-R使用250k跨语言词表)
- 语言标识嵌入:添加可学习语言ID向量强化模型多语言区分能力
3. 高效采样策略
策略类型 | 核心原理 | 适用场景 |
---|---|---|
温度采样 | 通过温度系数调节概率分布平滑度 | 创意文本生成 |
Top-k采样 | 仅保留概率最高的k个候选词 | 技术文档生成 |
核采样 | 动态累积概率阈值筛选候选词(top-p) | 对话系统响应生成 |
对比搜索 | 结合相似性惩罚项提升多样性 | 开放域问答 |
五、典型参数配置
组件 | GPT-3(175B) | BERT-large | LLaMA2-7B |
---|---|---|---|
词表大小 | 50,257 | 30,522 | 32,000 |
嵌入维度 | 12,288 | 1,024 | 4,096 |
位置编码类型 | 可学习嵌入 | 绝对位置编码 | 旋转位置编码 |
最大序列长度 | 2,048 | 512 | 4,096 |
版权所有
版权归属:NateHHX