【从零构建LLM】第二章,embeddbing构建思路总结
【从零构建LLM】第二章,embeddbing构建思路总结
- 1. 概述
- 2. 理解embeddng
- 2.1 文本词元化
- 2.2 token转为tokenId
- 2.3 tokenId转为token
- 2.4 增加特殊的token代表所有未见过的词汇
- 2.5 openai 采用 tiktoken作为 BPE
- 2.6 使用sliding window进行采样
- 2.7 token转embedding
- 2.8 添加位置向量作为给transformer的输入
1. 概述
本文,作为笔者,学习《从零构建LLM》书籍的笔记,总结章节核心内容,方便理解与回顾,有些概念,在公账号对讲解,欢迎关注、点赞,未来有视频课程给大家学习。
2. 理解embeddng
本文从零构建LLM,分为三个阶段,第一阶段,构建一个LLM, 第二阶段训练模型,第三阶段进行微调,从第一阶段embedding
2.1 文本词元化
核心思想: 将连续的文本序列转化为离散的基本单元(即 token)”,中文固定译为 “分词” 或 “标记化”,在处理中文时可能表现为 “将句子拆分为单个汉字或词语”,处理英文时则常拆分为单词、标点等
2.2 token转为tokenId
2.3 tokenId转为token
2.4 增加特殊的token代表所有未见过的词汇
2.5 openai 采用 tiktoken作为 BPE
tiktoken 是 OpenAI 开发的一个快速 BPE(Byte Pair Encoding)分词器
BPE原理参考: https://mp.weixin.qq.com/s/YAtyHZ6IVECq39esigkfTg
tiktoken 是 OpenAI 开发的一个快速 BPE(Byte Pair Encoding)分词器,用于将文本转换为模型可以处理的 token(标记)序列。在处理大型语言模型(如 GPT 系列)时,准确计算 token 数量非常重要,因为:
计费基于 token 数:OpenAI API 的使用费用根据输入和输出的 token 数量计算。 上下文窗口限制:模型有最大 token 限制(如 GPT-4 为 8K/32K tokens),超过会导致错误。
性能优化:合理拆分文本可以提高处理效率。 核心功能
文本转 token:将文本转换为模型使用的 token 列表。
token 计数:精确计算文本的 token 数量,避免超出模型限制。
高效性能:用 Rust 实现,速度比纯 Python 库快得多
2.6 使用sliding window进行采样
2.7 token转embedding
2.8 添加位置向量作为给transformer的输入
添加位置向量,目的是捕捉同一个词汇在不同位置的影响