Token背景
讲理论没用,没有几个人会看长篇大论的知识文,大多数人都是关注怎么用,实际运用的时候应该注意哪些问题?
我发的视频课程都是从运用层面出发,从小白到精通,新手看了易理解 ,高手看了更通透 ,不要死记硬背,这年头不是参加考试,而是你能不能拿到结果 才是最大的考题。
本文会通透的讲解清楚token在我们实际运用AI的过程中起到了什么作用?
官方的解释
文本生成模型以 Token 为基本单位来处理文本。Token 代表常见的字符序列。例如,单个汉字"夔"可能会被分解为若干 Token 的组合,而像"中国"这样短且常见的短语则可能会使用单个 Token。
大致来说,对于一段通常的中文文本,1 个 Token 大约相当于 1.5-2 个汉字。
需要注意的是,对于我们的文本模型,Input 和 Output 的总和长度不能超过模型的最大上下文长度。
我的解释
一、为什么token代表1.5-2个汉字,为什么不是固定的
在不同的语言中,Token的长度和构成有很大的差异。比如我们把一段话分成一小段一小段的,每一段都代表一个意思,那么这些小段就是我们说的"Token"。
在英文里,表示token很简单,因为单词之间有空格,根据空格我们就知道一个单词结束了,下一个单词要开始了。比如,"I love Moonshot AI"这句话,就被分成了四个Token:I、love、Moonshot、AI。
但是中文不一样,中文的字是连在一起的,没有空格。所以,我们需要用一种特别的方法来决定哪些字应该放在一起成为一个Token。比如,"我爱Moonshot AI"这句话,我们可以把它分成以下几个Token:
- 我 - 一个Token,表示说话的人。
- 爱 - 一个Token,表示喜欢的意思。
- Moonshot AI - 一个Token,因为它是一个专有名词,表示一个特定的公司或产品。
但是,如果我们遇到一个更复杂的句子,比如"我非常喜欢我的女友",这里的"非常喜欢"就可以看作是一个Token,因为它表达了一个完整的喜欢的程度。这样,一个Token就包含了三个汉字。
所以,为什么说一个Token大约等于1.5到2个汉字呢?这是因为:
- 简单词:有些词很简单,比如"我"、"你"、"好",这些词都是单独一个汉字,所以每个Token就是一个汉字。
- 复合词:有些词是由两个或更多汉字组成的,比如"喜欢"、"我的"、"女友",这些词都是由两个汉字组成,所以每个Token就大约是两个汉字。
- 成语和短语:还有一些特殊的词组,比如"马到成功"、"画龙点睛",这些成语都是由四个汉字组成,如果我们把它们看作一个整体,那么每个Token就大约是四个汉字。
和AI的交互当中,token是如何计算的?
在和AI的交互中,Token的计算是基于输入和输出的文本内容。每次你给AI发送消息或者AI给你回复时,都会涉及到Token的计算。比如当你向AI发送一条消息时,这条消息中的所有文字都会被转换成Token。
当AI回复你的消息时,它的回复内容同样会被转换成Token。Token的计算方式取决于使用的AI模型和分词算法。
不同的模型可能会以不同的方式将文本分割成Token。
举个例子,假设你问AI:"明天的会议几点开始?"这句话可能被转换成5个Token。然后AI回答:"会议定在上午9点开始。"这句话可能被转换成6个Token。
在这个例子中,你的输入和AI的输出分别计算Token,然后将两者的Token数相加。5个Token(提问)+ 6个Token(回答)= 11个Token。这就是这次对话中总共消耗的Token数量。
在token的计算中,上下文指的是单词对话,还是整个页面的所有对话?
上下文是指大模型处理任务的时候,能够考虑的信息范围。这个范围可能包括对话历史、文档内容、用户查询等,并不是单纯的指整个页面的所有对话。
比如你在和一个朋友聊天。你们的话题可能会从天气聊到电影,再到晚上吃啥。在这个对话中,每一个话题都是基于之前的对话内容来展开的。比如:
- 你说:"今天天气真好。"
- 朋友回答:"是啊,适合出去走走。"
- 你接着说:"那我们去看个电影怎么样?"
- 朋友说:"好主意,最近有部新上映的电影评价不错。"
在这个对话中,每个回答都是基于之前的对话内容(也就是上下文)来回应的。
如果你的朋友突然跳到一个完全不相关的话题,比如在你说"今天天气真好"之后,他突然说"我昨天吃了个很好吃的披萨",这个回答就会显得有点突兀,因为它没有考虑到之前的对话上下文。
在AI聊天或者处理文本的时候,也是类似的。AI需要理解你的问题是基于什么样的背景或之前的对话来的,这样它才能给出合适的回答。比如:
- 你问AI:"余华的作品最后一本书是什么时候出版的?"
- AI回答:"余华的最后一部长篇小说《第七天》是在2013年出版的。"
在这个例子中,AI需要理解你的问题是关于《余华》系列的书籍,然后根据这个上下文给出正确的回答。
我们该怎么选择模型呢?
KIMI的模型有8k、32k、128k这些数字。这些数字实际上是指AI在处理你的对话或者文本时,能够记住和考虑的信息量。就像人的短时记忆一样,AI也有一个"记忆"限制,它不能无限制地记住所有的对话内容。
- 8k模型:就像一个记忆力只能记住8000个单词的短对话。
- 32k模型:记忆力更好一些,能记住32000个单词的较长对话。
- 128k模型:记忆力非常好,能记住128000个单词的超长对话。
所以,如果你和AI的对话非常长,或者你需要AI处理一篇很长的文章,你可能就需要一个记忆力更好的模型(比如32k或128k模型),这样AI就能更好地理解整个对话或文章的内容,给出更合适的回答或生成更连贯的文本。
如果是中文,8k,32k,128k分别能处理多少字的文章的上下文
由于1个Token大约相当于1.5到2个汉字,我们可以估算出8k、32k、128k模型分别能处理的汉字数量。这里我们取1.5和2这两个数字的平均值,即1.75,来进行估算,这样可以提供一个大致的估计范围。
- 对于8k模型:
- 最小估计:8000 Tokens×1.5 字/Token=12000 字8000 Tokens×1.5 字/Token=12000 字
- 最大估计:8000 Tokens×2 字/Token=16000 字8000 Tokens×2 字/Token=16000 字
- 平均估计:8000 Tokens×1.75 字/Token=14000 字8000 Tokens×1.75 字/Token=14000 字
- 对于32k模型:
- 最小估计:32000 Tokens×1.5 字/Token=48000 字32000 Tokens×1.5 字/Token=48000 字
- 最大估计:32000 Tokens×2 字/Token=64000 字32000 Tokens×2 字/Token=64000 字
- 平均估计:32000 Tokens×1.75 字/Token=56000 字32000 Tokens×1.75 字/Token=56000 字
- 对于128k模型:
- 最小估计:128000 Tokens×1.5 字/Token=192000 字128000 Tokens×1.5 字/Token=192000 字
- 最大估计:128000 Tokens×2 字/Token=256000 字128000 Tokens×2 字/Token=256000 字
- 平均估计:128000 Tokens×1.75 字/Token=224000 字128000 Tokens×1.75 字/Token=224000 字
因此,根据这个估算:
- 8k模型大约能处理 14000字的文章上下文。
- 32k模型大约能处理 56000字的文章上下文。
- 128k模型大约能处理 224000字的文章上下文。
总结
token并不是固定的汉语文字或英文字母,而是以词语的形式存在的,词语就有可能是一个字、两个字、或四个字,如果是英文,则是一串不知道长度的单词。
token的使用数量会根据用户和AI在当前页面的交互情况,判断应该消耗多少token,页面的总消耗不会重叠,哪怕你在这个页面交互100次,那么这100次里面的总和才是所有消耗的token数量。
所以在实际运用中,8k能处理我们日常所有的小文案,和千字的文章。32k能处理万字文章,是一本短篇网文小说了。而128k则是处理超长的交互,和长篇小说的(在我的课程中写小说都是分布进行,也不需要128k),
关于token你明白了吗?
本文由mdnice多平台发布