IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Tokenizer总结 -> 正文阅读

[人工智能]Tokenizer总结

Introduciton

? ? ? ? transformer类型的预训练模型层出不穷,其中的tokenizer方法作为一个非常重要的模块也出现了一些方法。本文对tokenizer方法做一些总结。参考来自hunggingface

? ? ? ? tokenizer在中文中叫做分词器,就是将句子分成一个个小的词块(token),生成一个词表,并通过模型学习到更好的表示。其中词表的大小和token的长短是很关键的因素,两者需要进行权衡,token太长,则它的表示也能更容易学习到,相应的词表也会变小;token短了,词表就会变大,相应词矩阵变大,参数也会线性变多。所以token的粒度通常分为word和char,中文则对应为词级别和字级别;目前比较流行的是subword-子词级别,将词进一步分为有意义的子词,这在英文中比较常见(词根,词缀),其中在transformers模型中常用的subword tokenizer有三种:BPE、WordPiece、SentencePiece。

Byte-Pair-Encoding

? ? ? ? BPE(byte-pair-encoding)基于pre-tokenization对训练数据进行切分。Pre-tokenization可以使用简单的空格分割,比如GPT2、RoBERTa;可以使用规则分词方法,如XLM、FlauBERT,GPT;进行完pre-tokenization之后,需要对词进行频率统计,之后会将一批symbol作为基础vocabulary,根据之前的词频统计结果或者别的规则方法作为合并方法symbol进行合并,并扩充入vocabulary。如此循环直至词表大小达到预先设置值或者合并结束。

Byte-Level BPE

? ? ? ? 代表模型:GPT。如果将所有unicode字符视为基本字符,则包含所有可能的基本字符的基本词汇表可能相当大。为了获得更好的基础词汇表,GPT-2使用字节作为基础词汇表,这是一个巧妙的技巧,可以强制基础词汇表的大小为256,同时确保每个基础字符都包含在词汇表中。使用一些额外的规则来处理标点符号,GPT2的标记器可以标记每个文本,而不需要<unk>符号。

WordPiece

????????WordPiece代表模型:BERT、DistilBERT和Electra,与BPE非常相似。WordPiece首先初始化词汇表以包含训练数据中的每个字符,并逐步学习给定数量的合并规则。与BPE相反,WordPiece并没有选择最频繁的符号对,而是选择一个一旦将训练数据添加到词汇表中,就可以最大化训练数据可能性的符号对。下图为词表的生成流程:

Unigram

? ? ? ? Unigram也是一种子词的tokenization,虽然在transformer模型中没有直接使用,但是在SentencePiece中会有用到,所以学习一下。unigram方法和上面两种分词器方法相反,先初始化一个包含大量的symbol的基础vocabulary,其中包含预分词生成的word和高频的子词,然后通过修剪方法缩小词表大小。unigram的修剪方法是训练一个语言模型来计算word修剪前后的loss变化,选择去除loss增加最少的词。为了防止out-of-vocabylary,词表会始终保留单个字符。具体流程如下图:

? ? ? ? 由于unigram没有合并规则,所以在对句子进行tokenizer时会有很多可能的情况。unigram方法会在生成词表时记录每个词的概率,所以可以在tokenizer时会可能出现的情况计算其概率选择概率最大的情况作为最终tokenizer方案。

SentencePiece

? ? ? ? SentencePiece代表模型:XLNet、marian、T5、ALBERT。前面描述的tokenizer算法都有相同的问题:假设输入文本使用空格分隔单词。然而,并非所有语言都使用空格分隔单词。一种可能的解决方案是使用特定于语言的预标记器,例如,XLM使用特定的中文、日文和泰文预标记器。为了更普遍地解决这一问题,SentencePiece将输入视为原始输入流,从而包括要使用的字符集中的空间。它一般使用BPE或unigram算法来构造适当的词汇表。

????????

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-03 11:10:51  更:2021-08-03 11:11:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 14:48:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码