居然可以这样理解【token】,中学生都能看懂!

本篇为各位同学介绍一个大语言模型中的重要概念token。众所周知,我们在对大模型进行训练和微调(Fine-Tuning)前,先要获得数据集,数据集一般都是以固定格式,多组对话组成,比如以下例子:

 `` `{` ``    `` `"instruction": "\"评估这个句子的拼写和语法错误\"。",` ``    `` `"input": "他吃完饭离开了餐厅。",` ``    `` `"output": "他吃完饭离开了餐厅。"` ``  `` `},` ``  `` `{` ``    `` `"instruction": "\"法国的首都是什么?\"",` ``    `` `"input": "",` ``    `` `"output": "\"法国的首都是巴黎。\""` ``  `` `},` ``  `` `{` ``    `` `"instruction": "将以下内容分类为动物、植物和矿物。",` ``    `` `"input": "\"橡树,铜矿石,大象\"",` ``    `` `"output": "\"橡树:植物\n铜矿石:矿物\n大象:动物\""` ``  `` `},` ````

这些文本除了文件字节大小参数外,开发者还引入了 token 作为大模型的重要的参数。

01

什么是大模型中的token

首先,我们知道,大模型(自然语言模型)处理的信息通常是文本。但是,计算机直接处理文本是很困难的,因为它只能理解数字和二进制代码。所以,我们需要把文本转换成计算机能理解的格式。

这里引入了“token”的概念。token可以理解为对输入文本进行分割和编码时的最小单位,它可以是单词、子词、字符或其他形式的文本片段。就像我们说话时,一个句子是由很多单词组成的,同样,一个文本也是由很多token组成的。这些token可以是单词,也可以是标点符号、数字等。就像我们说话时,一个句子是由很多单词组成的,同样,一段文本也是由很多token组成的。

举个例子,如果我们有一个句子:“我喜欢吃苹果。”,在处理这个句子时,我们可能会把它分割成以下几个token:

  • 喜欢

  • 苹果

  • 。(注意,最后一个是句号,也被视为一个token)

大模型在处理文本时,就是一个token一个token地进行的。它会学习不同token之间的关系,比如“我”和“喜欢”经常一起出现,而“苹果”通常是“吃”的对象等等。

通过这种方式,大模型能够理解和生成文本,因为它已经学会了token之间的复杂关系。

02

token数量如何计算

我们先来了解一下token的拆分:

1. 并非所有token都和单词一样长:

  • 有些token是一个完整的单词,比如 “cat”, “dog”。

  • 有些token只是一个词的一部分,比如 “un”,“ing”, “ly”。

  • 有些token只是一个字符,比如 “a”, “1”, “#”.

2. 不同的语言模型使用不同的token化方式:

  • 这意味着,同一个句子,在不同的模型中,token的数量可能不同。

举个例子:

句子 “I love using large language models!”

  • - 单词数量: 6

  • - 字符数量 (包含空格): 31

  • - 使用GPT-3模型,token数量:8 (“I”, " love", " using", " large", " language", " models", “!”, “”)

下面是一个简单的Python示例,使用`nltk`库来计算文本的token数量:

 ```python ``from nltk.tokenize import word_tokenize``   ``def count_tokens(text):`    `# 预处理文本(这里只是简单地转换为小写)`    `text = text.lower()``   `    `# 分词`    `tokens = word_tokenize(text)``   `    `# 计数并返回token数量`    `return len(tokens)``# 示例用法``text = "我喜欢吃苹果。"``token_count = count_tokens(text)``print(f"Token数量: {token_count}")

token数量在大模型中扮演着至关重要的角色,主要体现在以下几个方面:

1. 影响模型的计算量和内存占用

2. 限制模型的输入和输出长度

3. 影响模型的表现

4. 影响模型训练和使用的成本

03

什么是tokenizer

想象一下,我们要教一个只懂数字的小机器人学习语言。但是,语言是由文字组成的,机器人看不懂啊!这时候,就需要一个“翻译官”,把文字翻译成机器人能懂的数字,这个“翻译官”就是 tokenizer。Tokenizer的作用是把文本(比如句子或文章)转换成一系列的数字,这些数字代表了文本中的不同单词或字符。这样,机器人就能够理解和处理这些数字了。

Tokenizer 把输入的文本分成一个个小单元,然后将每个单元转换成一个数字,方便机器学习模型处理。

举个例子:

  • 你对机器人说: “This is the first step in the NLP pipeline”。

  • Tokenizer 就把这句话分成: “This”, “is”, “the”, “first”, “step”,“in”, “the”, “NLP”, “pipeline”。

  • 然后,它会从它的小字典里查找每个词对应的数字,比如:

  • “This” -> 1

  • “is” -> 3

  • “the” -> 5

  • “first” -> 10

  • “step” -> 15

  • “in” -> 21

  • “the” - > 5

  • “NLP” -> 120

  • “pipeline” -> 30

  • 这样,机器人就得到了数字序列: [1,3,5,10,15,21,5,120,30],它就能理解这句话啦!

具体来说,tokenizer做了以下几件事:

1. 分词:把文本分割成一个个单词或字符。比如,"This is the first step in the NLP pipeline"这个句子,可能会被分割成 “This”, “is”, “the”, “first”, “step”,“in”, “the”, “NLP”, “pipeline” 9个单词。

2. 编码:为每个单词或字符分配一个唯一的数字编号。比如,"This"可能被编码为1,"is"可能被编码为3,以此类推,文本就被转换成了一系列的数字。

3. 解码(可选):在需要把数字转换回文本时,tokenizer可以进行解码操作,将数字序列转换回原始的文本。

当然,我们可以用程序来完成tokenizer的过程。下面是一个简单的示例,使用Python的`nltk`库来创建和使用一个tokenizer:

from nltk.tokenize import word_tokenize``from nltk.corpus import stopwords``# 创建一个tokenizer``stop_words = set(stopwords.words('english'))``tokenizer = lambda text: [word.lower() for word in word_tokenize(text) if word.isalnum() and word.lower() not in stop_words]``# 使用tokenizer进行分词和编码``text = "I love eating apples."``tokens = tokenizer(text)``print(tokens)  # 输出: ['love', 'eating', 'apples']

在这个示例中,我们定义了一个简单的tokenizer,它会去除标点符号、小写化单词,并移除英语中的停用词(常见但不重要的词汇,如“the”、“and”等)。然后,我们使用这个tokenizer对一句话进行分词和编码,得到了一个由单词组成的列表,只有这样的格式才能被大模型使用。

04

总结

本篇为各位同学介绍了深度学习中,token,token数量,tokenizer,几个基本概念,我们重点记住以下几点:

  • Token指的是文本中的最小单位,可以是一个词、一个字符或者一个子词。

  • Token的数量取决于文本的长度和所使用的分词策略,它在深度学习模型中通常指的是模型处理的文本单元总数,是评价模型性能的一个重要指标。

  • 在深度学习模型中,tokenizer的作用是将原始文本转换成模型可以理解的数值形式,即token序列。通过tokenizer,模型能够将文本信息转化为可以进行数学运算的数据,进而进行训练和预测。

零基础如何学习大模型 AI

领取方式在文末

为什么要学习大模型?

学习大模型课程的重要性在于它能够极大地促进个人在人工智能领域的专业发展。大模型技术,如自然语言处理和图像识别,正在推动着人工智能的新发展阶段。通过学习大模型课程,可以掌握设计和实现基于大模型的应用系统所需的基本原理和技术,从而提升自己在数据处理、分析和决策制定方面的能力。此外,大模型技术在多个行业中的应用日益增加,掌握这一技术将有助于提高就业竞争力,并为未来的创新创业提供坚实的基础。

大模型典型应用场景

AI+教育:智能教学助手和自动评分系统使个性化教育成为可能。通过AI分析学生的学习数据,提供量身定制的学习方案,提高学习效果。
AI+医疗:智能诊断系统和个性化医疗方案让医疗服务更加精准高效。AI可以分析医学影像,辅助医生进行早期诊断,同时根据患者数据制定个性化治疗方案。
AI+金融:智能投顾和风险管理系统帮助投资者做出更明智的决策,并实时监控金融市场,识别潜在风险。
AI+制造:智能制造和自动化工厂提高了生产效率和质量。通过AI技术,工厂可以实现设备预测性维护,减少停机时间。

AI+零售:智能推荐系统和库存管理优化了用户体验和运营成本。AI可以分析用户行为,提供个性化商品推荐,同时优化库存,减少浪费。

AI+交通:自动驾驶和智能交通管理提升了交通安全和效率。AI技术可以实现车辆自动驾驶,并优化交通信号控制,减少拥堵。


这些案例表明,学习大模型课程不仅能够提升个人技能,还能为企业带来实际效益,推动行业创新发展。

学习资料领取

如果你对大模型感兴趣,可以看看我整合并且整理成了一份AI大模型资料包,需要的小伙伴文末免费领取哦,无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

在这里插入图片描述

部分资料展示

一、 AI大模型学习路线图

整个学习分为7个阶段
在这里插入图片描述

二、AI大模型实战案例

涵盖AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,皆可用。
在这里插入图片描述

三、视频和书籍PDF合集

从入门到进阶这里都有,跟着老师学习事半功倍。
在这里插入图片描述

在这里插入图片描述

四、LLM面试题

在这里插入图片描述

如果二维码失效,可以点击下方链接,一样的哦
【CSDN大礼包】最新AI大模型资源包,这里全都有!无偿分享!!!

😝朋友们如果有需要的话,可以V扫描下方二维码联系领取~
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值