生成式AI的短板在于“Token”的存在

生成式AI模型处理文本的方式与人类不同。理解它们基于“token”的内部环境,可能有助于解释一些奇怪行为和固有局限性。

从小型设备上的Gemma到OpenAI领先行业的GPT-4o,大多数模型都是基于一种称为Transformer的架构。由于Transformer在将文本与其他类型的数据关联时的独特方式,它们不能直接处理原始文本——至少在不消耗大量计算资源的情况下是不行的。WildCard平台支持订阅各类服务,包括GPT-4,OF,X,Overleaf等

因此,出于实用和技术原因,当前的Transformer模型都使用被分解为较小的、易处理的片段——称为“token”的文本,这一过程被称为分词。

Token可以是单词,比如“fantastic”(极好的)。也可以是音节,比如“fan”,“tas”和“tic”。根据分词器(进行分词的模型)的不同,它们甚至可能是单词中的单个字符(例如,“f”,“a”,“n”,“t”,“a”,“s”,“t”,“i”,“c”)。

通过这种方法,Transformer能够在达到称为上下文窗口的上限之前,吸收更多信息(从语义上讲)。但分词也可能引入偏差。

一些token的间距不规则,这可能会扰乱Transformer。例如,分词器可能将“once upon a time”编码为“once”,“upon”,“a”,“time”,而将“once upon a ”(带有尾随空格)编码为“once”,“upon”,“a”,“”。根据模型的提示方式——是“once upon a”还是“once upon a ,”——结果可能完全不同,因为模型并不理解(如人类那样)两者的意义相同。

分词器对大小写的处理也不同。“Hello”对模型来说不一定与“HELLO”相同;“hello”通常是一个token(取决于分词器),而“HELLO”可能多达三个(“HE”,“El”和“O”)。这也是许多Transformer未能通过大写字母测试的原因。

“要解决语言模型中‘单词’究竟应该是什么这个问题有点困难,即使我们让语言专家达成一致的完美token词汇表,模型可能仍然会发现将内容‘块化’进一步有用,”东北大学研究大型语言模型可解释性的博士生谢里丹·福伊希特(Sheridan Feucht)告诉TechCrunch。“我猜这种模糊性导致了不存在完美的分词器。”

这种“模糊性”在英语以外的语言中问题更为严重。

许多分词方法假设句子中的空格表示新词。这是因为它们是针对英语设计的。但并非所有语言都用空格来分隔单词。中文和日语没有——韩语、泰语和高棉语也没有。

2023年牛津大学的一项研究发现,由于非英语语言在分词方式上的差异,Transformer完成用非英语语言表达的任务所需时间可能是用英语表达的两倍。同一研究——以及另一项研究——发现,使用分词效率较低语言的用户可能会看到模型性能较差,但使用成本更高,因为许多AI供应商按token收费。

分词器通常将汉字系统中的每个字符(如中文)视为一个独立的token,从而导致token数量大幅增加。同样,处理黏着语(如土耳其语)——即由小的有意义词素构成单词的语言——的分词器往往将每个词素视为一个token,增加了整体token数量。(泰语中“你好”的等价词“สวัสดี”是六个token。)

2023年,谷歌DeepMind的AI研究员延妮·俊(Yennie Jun)进行了一项分析,比较了不同语言的分词及其下游影响。利用一个翻译成52种语言的平行文本数据集,俊展示了一些语言需要多达10倍的token来捕捉英语中的相同意义。

除了语言不平等,分词可能还解释了当今模型在数学上的糟糕表现。

数字很少被一致地分词。因为它们不真正知道数字是什么,分词器可能将“380”视为一个token,但将“381”表示为一对token(“38”和“1”),从而有效地破坏了数字与公式和方程结果之间的关系。结果是Transformer的混淆;最近一篇论文表明,模型难以理解重复的数字模式和上下文,特别是时间数据。(见:GPT-4认为7735大于7926。)

这也是模型不擅长解决字谜问题或倒转单词的原因。

那么,分词显然给生成式AI带来了挑战。这些挑战能解决吗?

也许可以。

福伊希特指出了“字节级”状态空间模型,如MambaByte,它可以直接处理表示文本和其他数据的原始字节,不使用分词,从而在不影响性能的情况下摄取更多数据。MambaByte在语言分析任务上与一些Transformer模型竞争,同时更好地处理“噪音”,如字符交换、间距和大写字符。

然而,像MambaByte这样的模型还处于早期研究阶段。

“让模型直接查看字符而不进行分词可能是最好的,但现在对于Transformer来说,这在计算上是不可行的,”福伊希特说。“对于Transformer模型,计算量随着序列长度成二次方增长,因此我们真的希望使用短文本表示。”

除非分词技术取得突破,否则新模型架构将是关键

阅读原文:生成式AI的短板在于“token”的存在

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

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

相关文章

[Multi-Modal] MDETR 论文及代码学习笔记

代码地址:https://github.com/ashkamath/mdetr 论文地址:https://arxiv.org/abs/2104.12763 多模态推理系统依靠预先训练的目标检测器从图像中提取感兴趣区域(边界框包围区域)。然而,这个关键模块通常被用作黑匣子&…

飞书 API 2-4:如何使用 API 将数据写入数据表

一、引入 上一篇创建好数据表之后,接下来就是写入数据和对数据的处理。 本文主要探讨数据的插入、更新和删除操作。所有的操作都是基于上一篇(飞书 API 2-4)创建的数据表进行操作。上面最终的数据表只有 2 个字段:序号和邮箱。序…

英语学习交流小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,每日打卡管理,备忘录管理,学习计划管理,学习资源管理,论坛交流 微信端账号功能包括:系统首页,学习资源&…

C++基础(八):类和对象 (下)

经过前面的学习,我们已经翻过了两座大山,类和对象入门知识就剩下这一讲了,加油吧,少年! 目录 一、再谈构造函数 1.1 构造函数体赋值 1.2 初始化列表(理解) 1.3 explicit关键字(C…

【Java探索之旅】继承概念_语法_父类的成员访问

文章目录 📑前言一、继承1.1 继承的概念1.2 继承语法1.3 继承发生后 二、父类的访问2.1 父类成员变量访问2.2 父类成员方法访问 🌤️全篇总结 📑前言 在面向对象编程中,继承是一种重要的概念,它允许我们创建一个类&…

html的作业

目录 作业题目 1.用户注册 A图 B代码 2.工商银行电子汇款单 A图 B代码 3.李白诗词 A图 B代码 4.豆瓣电影 A图 B代码 学习产出&#xff1a; 作业题目 1.用户注册 A图 B代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset&qu…

Java技术栈总结:Redis篇

一、数据类型 Redis 自身是一个 Map&#xff0c;其中的所有数据均采用“key:value”的形式存储。 数据类型指的是存储的数据的类型&#xff0c;即 value 部分的类型&#xff0c;key 的部分只能是字符串。 value 部分的数据类型&#xff1a;<String、List、Hash、Set、Zse…

MSPM0G3507——编码器控制速度

绿色设置的为目标值100&#xff0c;红色为编码器实际数据 。 最后也是两者合在了一起&#xff0c;PID调试成功。 源码直接分享&#xff0c;用的是CCStheia&#xff0c;KEIL打不开。大家可以看一下源码的思路&#xff0c;PID部分几乎不用改 链接&#xff1a;https://pan.baid…

S32DS S32 Design Studio for S32 Platform 3.5 代码显示行号与空白符

介绍 NXP S32DS&#xff0c;全称 S32 Design Studio&#xff0c;s32 系列芯片默认使用 S32 Design Studio for S32 Platform 作为 IDE 集成开发环境&#xff0c;当前版本 S32 Design Studio for S32 Platform 3.5&#xff0c;IDE 可以简称 s32DS 使用 S32DS&#xff0c;可以认…

Qt 网络编程 网络信息获取操作

学习目标&#xff1a;网络信息获取操作 前置环境 运行环境:qt creator 4.12 学习内容 一、Qt 网络编程基础 Qt 直接提供了网络编程模块,包括基于 TCP/IP 的客户端和服务器相关类,如 QTcpSocket/QTcpServer 和 QUdpSocket,以及实现 HTTP、FTP 等协议的高级类,如 QNetworkRe…

【简单介绍下Memcached】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

昇思25天学习打卡营第08天 | 模型训练

昇思25天学习打卡营第08天 | 模型训练 文章目录 昇思25天学习打卡营第08天 | 模型训练超参数损失函数优化器优化过程 训练与评估总结打卡 模型训练一般遵循四个步骤&#xff1a; 构建数据集定义神经网络模型定义超参数、损失函数和优化器输入数据集进行训练和评估 构建数据集和…

uniapp 去掉小数末尾多余的0

文章目录 在uniapp或者一般的JavaScript环境中&#xff0c;要去掉小数末尾的0&#xff0c;可以使用以下几种方法&#xff1a; 使用parseFloat()函数 let num 123.4500; let result parseFloat(num); console.log(result); // 输出: 123.45字符串处理 将数字转换为字符串&am…

24年沈阳教师招聘报名全流程(电脑版)

公开招聘1876名事业编制工作人员 报名时间&#xff1a;7月8日10:00至7月11日16:00&#xff1b; 报名网站&#xff1a;&#xff1a;沈阳市考试院 报名流程&#xff1a; 1.报名 ①登录沈阳市考试院填写报名信息&#xff0c;上传照片 本人近期免冠2寸正面电子证jian照片&#xff0…

接口依赖-动态参数+数据依赖的代码

怎么写测试用例 接口名:被依赖的返回值的jsonpath表达式&#xff0c;有几个依赖往后写就可以 代码 如果caseinfo里的getisdep等于yes&#xff0c;并且&#xff0c;depkey不为空 用正则解析 在testrun里增加判断 判断的内容是正则表达式&#xff0c;先去匹配&#xff0c;再去…

2024年世界人工智能大会(WAIC)各大佬的精彩发言

2024年世界人工智能大会&#xff08;WAIC&#xff09;在上海举行&#xff0c;受到了广泛关注和参与。以下是大会首日的主要观点和议题的总结&#xff1a; AI 应用落地&#xff1a;大会讨论了AI应用如何落地&#xff0c;即如何在当前阶段利用大模型技术实现实际应用。 AI 安全&…

flask缓存、信号的使用

【 一 】flask-ache ​ 它为 Flask 应用程序提供了缓存支持。缓存是 Web 应用程序中非常常见的做法&#xff0c;用于存储频繁访问但不太可能经常更改的数据&#xff0c;以减少对数据库或其他慢速存储系统的访问&#xff0c;从而提高应用程序的性能和响应速度。 ​ Flask-Cach…

041基于SSM+Jsp的高校校园点餐系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

昇思MindSpore学习笔记4-05生成式--Pix2Pix实现图像转换

摘要&#xff1a; 记录昇思MindSpore AI框架使用Pix2Pix模型生成图像、判断图像真实概率的原理和实际使用方法、步骤。包括环境准备、下载数据集、数据加载和处理、创建cGAN神经网络生成器和判别器、模型训练、模型推理等。 一、概念 1.Pix2Pix模型 条件生成对抗网络&#x…

科研绘图系列:R语言两组数据散点分布图(scatter plot)

介绍 展示两组数据的散点分布图是一种图形化表示方法,用于显示两个变量之间的关系。在散点图中,每个点代表一个数据点,其x坐标对应于第一组数据的值,y坐标对应于第二组数据的值。以下是散点图可以展示的一些结果: 线性关系:如果两组数据之间存在线性关系,散点图将显示出…