从零开始一步一步掌握大语言模型---(2-什么是Token?)

了解自然语言处理或者听说过大语言模型的同学都听过,token。一般来说,它代表的是语言中不可再分的最小单元。我们人类的语言不仅有文字,还有语音。针对文字、语音来说,它们都各自有不同的划分token的方法。本节将尽可能详细的介绍它们。

文本和语音中的Token

文本,就是我们人类的文字。不同的国家、民族、地区使用不同的文字,不同的模型使用不同的切分这些文字的方法。所以有时候经常容易被闹晕乎。先介绍流行的用的人最多的划分token的方法。

第一种是phoneme,表示一个发音的音标,或发音的基本单位。
        Lexicon:单词到音标的转换表。cat-->K AE T.phoneme是以前一种的常见选择。
第二种是Grapherne:最小的书写单位。英文中一个单词就是一个最小单位。但在单词之间通常还要加上空格“_”。

        one_punch_man:这句话里N=13。V=26+。中文的最小单位可以用一个一个字来表示。中文不需要加入空白。


第三种是word(即词汇).

        one punch man按照这种方式的话就有3个token。“一拳” ”打死” ”你”。就有3个词汇。用词汇来表示token的话,太多太多了。无法穷举出所有的词。


第四种是Morpheme:表达意思的最小单位。

        unbreakable,可拆解为un, break, able.

最后一种是Bytes. 每一个符号都可以用UTF-8表示。

        什么字,符号都可以用UTF-8表示。太大了。 V总是256.

通常大家都用Grapheme和phoneme.

常见的大语言模型是如何划分token的?(指Chatgpt之类)

Chatgpt3.5&Chatgpt4:

官方介绍如何分词:

-------------------------------我是翻译线-----------------------------------------------------------------------------------

OpenAI 的大型语言模型(有时称为 GPT)使用tokens处理文本,tokens是一组文本中常见的字符序列。这些模型学习理解这些标记之间的统计关系,并擅长生成标记序列中的下一个token。

您可以使用下面的工具来了解语言模型如何对一段文本进行标记,以及该文本中的标记总数。

值得注意的是,确切的标记化过程因模型而异。GPT-3.5 和 GPT-4 等较新的模型使用与以前的模型不同的标记器,并且将为相同的输入文本生成不同的tokens。

-------------------------------我是翻译线-----------------------------------------------------------------------------------

我在Openai官网提供的版本中尝试了一下,看他们是如何分词的:

输入(注释:引号表示的是我输入的内容,我实际上并没有输入引号):“我是中国西北人”

Chatgpt3.5&Chatgpt4的分词器输出:“我”,“是”,”中国“,”西“,”北“,”人“。对应的id为“【[37046, 21043, 59795, 61786, 49409, 17792]】”。也就是说,在这个模型中,“我”是由37046表示的,依此类推。模型最后输出的就是这些数字,然后再拿这些数字去找对应的是哪个词。

人家输出的时候没有引号。再次提醒。

Chatglm以及Llama:

这两个模型都用的是谷歌的Sentencepiece包来进行分词的。把文本分完词之后,再转换为词表中的id。

后面再继续完善一下这个章节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/763743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【收藏】什么是API测试?这是我见过的最全的测试指南!

在最近的部署中,当我被问到“什么是API测试?”时,我正与客户一起制定API测试策略。那时我突然意识到,要描述API测试居然是一件如此具有挑战性的事情,即使你如实地描述了它,也往往听起来很无聊和复杂。 好吧…

CPU百分百问题如何排查

排查CPU百分百问题通常需要一步一步地识别并解决潜在的原因。以下是一些常见的排查步骤: 查看系统负载:首先,使用系统监控工具比如top查看系统的负载情况。确定是哪个进程导致CPU高占用:查找哪个进程或应用程序的CPU占用率很高。…

遥控按键处理

遥控按键: 编写AndroidTV应用遥控事件怎么处理_mob64ca12e9cad4的技术博客_51CTO博客

第十二届蓝桥杯省赛CC++ 研究生组

十二届省赛题 第十二届蓝桥杯省赛C&C 研究生组-卡片 第十二届蓝桥杯省赛C&C 研究生组-直线 第十二届蓝桥杯省赛C&C 研究生组-货物摆放 第十二届蓝桥杯省赛C&C 研究生组-路径 第十二届蓝桥杯省赛C&C 研究生组-时间显示 第十二届蓝桥杯省赛C&C 研究生组…

AI PPT生成工具 V1.0.0

AI PPT是一款高效快速的PPT生成工具,能够一键生成符合相关主题的PPT文件,大大提高工作效率。生成的PPT内容专业、细致、实用。 软件特点 免费无广告,简单易用,快速高效,提高工作效率 一键生成相关主题的标题、大纲、…

TCP | TCP协议格式 | 三次握手

1.TCP协议 为什么需要 TCP 协议 ?TCP 工作在哪一层? IP网络层是不可靠的,TCP工作在传输层,保证数据传输的可靠性。 TCP全称为 “传输控制协议(Transmission Control Protocol”)。 TCP 是面向连接的、可靠…

YOLOV9训练自己的数据集

1.代码下载地址GitHub - WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information 2.准备自己的数据集 这里数据集我以SAR数据集为例 具体的下载链接如下所示: 链接:https:/…

生活电子产品拆解分析~汇总目录

一、锂电池电源 ①电子产品拆解分析-暖手宝 ②电子产品拆解分析-电动牙刷 ③电子产品拆解分析-充电宝台灯 ④电子产品拆解分析-太阳能自动感应灯 ⑤电子产品拆解分析-人体感应灯 ⑥电子产品拆解分析-食物电子秤 ⑦电子产品拆解分析-6600mA充电宝 ⑨电子产品拆解分析-触摸化妆镜…

备战蓝桥杯Day34 - 每日一题

题目描述 解题思路 1.输入数据n,并将字符串类型转换成整数类型 2.求出输入n是2的几次幂(调用math库中的求对数的方法),在下面的循环中要用到 3.定义sum和,将抽取到的牌的总数加起来存储 4.count 0 # 记录 2 的第几…

nju cs上机

给定一个正整数n(3≤n≤90)&#xff0c;数出长度为n的所有可能的不同二进制串的个数&#xff0c;使得串中没有连续的1出现。 #include<bits/stdc.h> using namespace std; int n; int dp[100][100]; int main(){while(cin >> n){dp[0][0] 1;dp[0][1] 1;for(int …

算法打卡day20|二叉树篇09|Leetcode 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

算法题 Leetcode 669. 修剪二叉搜索树 题目链接:669. 修剪二叉搜索树 大佬视频讲解&#xff1a;修剪二叉搜索树视频讲解 个人思路 把这道题想复杂了&#xff0c;还想着如何去重构树 解法 递归法 依旧递归三步走 1.确定递归函数的参数以及返回值 这题递归需要返回值&#…

探索人工智能基础:从概念到应用【文末送书-42】

文章目录 人工智能概念人工智能基础【文末送书-42】 人工智能概念 人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;作为当今科技领域的热门话题&#xff0c;已经深刻地影响着我们的生活和工作。但是&#xff0c;要理解人工智能&#xff0c;我们首先需…

【OpenSSH】Windows系统使用OpenSSH搭建SFTP服务器

【OpenSSH】Windows系统使用OpenSSH搭建SFTP服务器 文章目录 【OpenSSH】Windows系统使用OpenSSH搭建SFTP服务器一、环境说明二、安装配置步骤1.下载完成后&#xff0c;传至服务器或者本机并解压至C:/Program Files/目录下2.打开PowerShell终端3.进入到包含ssh可执行exe文件的文…

物联网和工业物联网的区别——青创智通

工业物联网解决方案-工业IOT-青创智通 物联网&#xff08;IoT&#xff09;和工业物联网&#xff08;IIoT&#xff09;作为现代科技的重要分支&#xff0c;正在逐渐渗透到我们的日常生活和工业生产中。它们的应用范围广泛&#xff0c;涵盖了从智能家居到自动化工厂的多个领域。…

类于对象(上)--- 类的定义、访问限定符、计算类和对象的大小、this指针

在本篇中将会介绍一个很重要和很基础的Cpp知识——类和对象。对于类和对象的篇目将会有三篇&#xff0c;本篇是基础篇&#xff0c;将会介绍类的定义、类的访问限定符符和封装、计算类和对象的大小、以及类的 this 指针。目录如下&#xff1a; 目录 1. 关于类 1.1 类的定义 2 类…

Windows Insiders WSLg Linux GUI App 支持尝鲜

2021 年 4 月 21 日&#xff0c;微软在 Developer Blogs 发布了 Windows 预览版 WSL&#xff08;Windows Linux 子系统&#xff09; 对 Linux GUI App 的支持的公告&#x1f517;&#xff0c;碰巧&#x1f600;我最近重装了波电脑&#xff0c;系统换成了 Windows Insiders&…

Python Flask框架 -- 模版渲染、模版访问对象属性、过滤器与自定义过滤器

模版渲染 使用 render_template 来渲染模板 from flask import Flask, render_templateapp Flask(__name__)app.route(/blog/<blog_id>) def blog_detail(blog_id):return render_template(blog_detail.html, blog_idblog_id, username核)if __name__ __main__:app.r…

如何在Terraform中覆盖资源参数的.go代码?

要覆盖 Terraform 资源参数的 .go 代码&#xff0c;可以使用 go get 命令将资源的代码复制到本地&#xff0c;进行修改并重新编译。具体步骤如下&#xff1a; 1&#xff09;使用 go get 命令将资源复制到本地&#xff1a; $ go get github.com/terraform-providers/terraform…

ByteTrack多目标跟踪——YOLOX详解

文章目录 1 before train1.1 dataset1.2 model 2 train2.1 Backbone2.2 PAFPN2.3 Head2.3.1 Decoupled Head2.3.2 anchor-free2.3.3 标签分配① 初步筛选② simOTA 2.3.4 Loss计算 项目地址&#xff1a; ByteTrack ByteTrack使用的检测器是YOLOX&#xff0c;是一个目前非常流行…

C++程序变量的引用

在C中&#xff0c;变量的“引用” 就是变量的别名&#xff0c;因此引用又称为别名。由于引用不是独立的变量&#xff0c;编译系统不给它单独分配存储单元&#xff0c;因此在建立引用时只有声明&#xff0c;没有定义&#xff0c;只是声明它和原有的某一变量的关系。 一、引用变更…