深度学习-19-深入理解并训练自己的Tokenizer分词器

news/2024/9/29 20:24:21/

文章目录

  • 1 tokenization是什么
  • 2 Tokenization方法简介
    • 2.1 单词级的Tokenization
    • 2.2 子词Tokenization技术
    • 2.3 举例说明
      • 2.3.1 字符级别
      • 2.3.2 词语级别
      • 2.3.3 子词级别
  • 3 训练自己的Tokenizer
    • 3.1 下载数据集
    • 3.2 huggingface的Tokenizer实现
    • 3.3 my-tokenizer.json字段说明
    • 3.4 验证一下tokenizer的结果
    • 3.5 使用AutoTokenizer
      • 3.5.1 tokenizer_config.json
      • 3.5.2 加载使用分词器示例一
      • 3.5.3 加载使用分词器示例二
  • 4 问题及解决
    • 4.1 untagged enum ModelWrapper
  • 5 参考附录

1 tokenization是什么

任何一段文本,输入给模型,都是要转换成一串embedding。
这个过程简单概括为:
(1)分词,并把词转换为token(即词的ID)
(2)token转换成embedding

而tokenization就是在做这第一步。

而对于第二步就是常见的Embedding查表操作,即根据token_id的值,去Embedding矩阵中查找第token_id行的数据作为embedding。

对于以下文本:你好,我的小名是小明
在这里插入图片描述

2 Tokenization方法简介

子词Tokenization(可以理解为分词)在很多SOTA NLP模型上得到广泛的使用,包括BERT和GPT-3。
它能很有效的处理未登陆词。

2.1 单词级的Tokenization

假设我们有一个训练数据集。
我们从这个训练数据集中构建一个词表。
为了构建该词表,我们将数据集中的


http://www.ppmy.cn/news/1532074.html

相关文章

OpenCV-图像透视变换

文章目录 一、定义与原理二、应用场景三、实现方法四、代码运用 图像的透视变换(Perspective Transformation)是一种在图像处理中广泛使用的技术,它通过模拟人眼或相机镜头观看三维空间物体时的透视效果,来改变图像的视角和形状。…

React学习笔记(四)——React 组件生命周期

目录 1. 生命周期-概览 2. 生命周期-挂载阶段 3. 生命周期-更新阶段 4. 生命周期-卸载阶段 5. setState扩展-发现问题 6. setState扩展-更多用法 7. setState扩展-异步 1. 生命周期-概览 了解react类组件生命周期整体情况 大致步骤: 什么是生命周期React类组…

VMware ESXi 8.0U3 macOS Unlocker OEM BIOS 2.7 Dell HPE 定制版 9 月更新发布

VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS 2.7 Dell HPE 定制版 9 月更新发布 VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版 ESXi 8.0U3 标准版,Dell (戴尔)、HPE (慧与)、Lenovo (联想)、IEIT SYSTEMS (浪潮信息)、Cisco (思…

nvm 安装node 报错

Could not retrieve https://npm.taobao.org/mirrors/node/latest/SHASUMS256.txt. Get "https://npm.taobao.org/mirrors/node/latest/SHASUMS256.txt": tls: failed to verify certificate: x509: certificate is valid for *.tbcdn.cn 原因认证过期, 查看nvm安装…

了解输出电源优先级

主要又SUB,SBU以及USB三种模式。 调试10kW逆变器存在的输出电源优先级的问题,当优先级为SUB时,利用电压源模拟电池,当电池电压超过58.4V,即过压,在接入市电,市电继电器仍然闭合,仍然…

一文说完c++全部基础知识,类,多态,继承,虚函数,友元,构造,重载(一)

原文链接:https://blog.csdn.net/qq_33670157/article/details/104455787 原文写的不够好,我已经进行总结优化。要看懂本文,需要有C语言,c基础。一文有点长,打算分多篇来解释 分为c基础,c文件流相关的操作…

Qt中多语言的操作(以QtCreator为例)

1、首先,我们在代码中与文本相关的且需要支持多语言的地方,用tr来包含多语言key(多语言key是我们自己定义的),如下 //举例 QPushButton* btnnew QPushButton(this); btn->move(20,20); btn->resize(100,50); //…

配置STM32F103的高级定时器TIM1用于PWM功能

配置STM32F103的高级定时器TIM1用于PWM功能 之前在使用stm32f103的PA9引脚复用为高级定时器TIM1_CH2,用它来输出PWM波时发现无法正常输出PWM波形。出现这种问题的情况一般是将PA9先初始化成了串口,然后又配置成PWM功能,这样会导致无法输出PW…