NLP的tokenization

GPT3.5的tokenization流程如上图所示,以下是chatGPT对BPE算法的解释:

BPE(Byte Pair Encoding)编码算法是一种基于统计的无监督分词方法,用于将文本分解为子词单元。它的原理如下:

  1. 初始化:将文本中的每个字符视为一个单词,并统计每个字符出现的频率。这些字符可以是字母、标点符号或其他任意字符。

  2. 统计频率:在每次迭代中,计算每对相邻字符(或字符序列)的频率,并记录最常出现的一对。

  3. 合并频率最高的一对:将频率最高的字符对合并成一个新的字符(或字符序列),并将其作为新的单词。同时,更新字符频率统计。

  4. 重复步骤2和3:重复执行步骤2和3,直到达到预定的子词数量或达到指定的迭代次数。

  5. 构建词表:将合并得到的字符组合形成的新单词添加到词表中。

  6. 分词:使用得到的词表将文本分解为子词单元。

BPE算法的核心思想是通过反复合并频率最高的字符对来构建子词单元。这样做的好处是可以将常见的词汇合并为一个单元,同时也能够处理未登录词(OOV)问题,即将未在训练集中出现过的词拆解为可识别的子词。

BPE算法的优点是可以自适应地根据数据集构建词表,而不需要依赖外部词典。它在机器翻译、文本生成等自然语言处理任务中得到广泛应用。

BPE采用了一种贪婪的思想来生成token,以下博客举例解释了BPE算法的迭代过程

理解NLP最重要的编码方式 --- Byte Pair Encoding (BPE),这一篇就够了 - 知乎在machine learning,尤其是NLP的算法面试时,Byte Pair Encoding (BPE) 的概念几乎成了一道必问的题,然而尴尬的是,很多人用过,却未必十分清楚它的概念(调包大法好)。本文将由浅入深地介绍BPE算法背后的思想...https://zhuanlan.zhihu.com/p/424631681

相关推荐
aiguangyuan5 小时前
使用PyTorch和Hugging Face Transformers构建GPT教学演示:从基础原理到实践应用
人工智能·python·nlp
玄同7651 天前
LangChain v1.0+ Prompt 模板完全指南:构建精准可控的大模型交互
人工智能·语言模型·自然语言处理·langchain·nlp·交互·知识图谱
名为沙丁鱼的猫7292 天前
【MCP 协议层(Protocol layer)详解】:深入分析MCP Python SDK中协议层的实现机制
人工智能·深度学习·神经网络·机器学习·自然语言处理·nlp
桂花很香,旭很美2 天前
基于 MCP 的 LLM Agent 实战:架构设计与工具编排
人工智能·nlp
aoqDrPjNRbKr2 天前
PMSM永磁同步电机无传感器仿真 simulink仿真 SMO滑模观测器 PLL锁相环 无速度...
nlp
玄同7653 天前
告别 AgentExecutor:LangChain v1.0+ Agent 模块深度迁移指南与实战全解析
人工智能·语言模型·自然语言处理·langchain·nlp·agent·智能体
童话名剑3 天前
自然语言处理(吴恩达深度学习笔记)
人工智能·深度学习·机器学习·自然语言处理·nlp·词嵌入
阿龙AI日记4 天前
快速学会BERT模型!
深度学习·自然语言处理·nlp·bert
一招定胜负4 天前
回顾:cbow连续词袋与词嵌入
人工智能·自然语言处理·nlp
诸神缄默不语4 天前
如何用Python调用智谱清言GLM系API实现智能问答
python·ai·大模型·nlp·chatglm·glm·智谱清言