咬文嚼字:词元是当今生成式人工智能失败的一个重要原因

生成式人工智能模型处理文本的方式与人类不同。了解它们基于"标记"的内部环境可能有助于解释它们的一些奇怪行为和顽固的局限性。从 Gemma 这样的小型设备上模型到 OpenAI 业界领先的 GPT-4o 模型,大多数模型都建立在一种称为转换器的架构上。由于转换器在文本和其他类型数据之间建立关联的方式,它们无法接收或输出原始文本–至少在没有大量计算的情况下是如此。

在这里插入图片描述
因此,出于实用性和技术性的考虑,今天的转换器模型使用的文本已经被分解成更小、更小的片段,这些片段被称为标记–这一过程被称为标记化。

词元可以是单词,如"fantastic"。也可以是音节,如"fan"、“tas"和"tic”。根据标记化器(标记化模型)的不同,它们甚至可以是单词中的单个字符(例如,“f”、“a”、“n”、“t”、“a”、“s”、“t”、“i”、“c”)。

使用这种方法,转换器可以在达到称为上下文窗口的上限之前接收更多信息(语义意义上的)。但标记化也会带来偏差。

有些标记符有奇特的间距,这会使转换器出错。例如,词元转换器可能会将"once upon a time"编码为"once"、“on”、“a”、“time”,而将"once upon a"(有尾部空白)编码为"once"、“on”、“a”、“.”。根据对模型的提示方式–“once upon a"还是"once upon a ,”–结果可能完全不同,因为模型并不能理解(就像人一样)意思是一样的。

标记符号化器处理大小写的方式也不同。对模型来说,“Hello"并不一定等同于"HELLO”;"hello"通常是一个标记(取决于标记化器),而"HELLO"可能有三个标记(“HE”、“El"和"O”)。这就是许多转换器无法通过大写字母测试的原因。

东北大学研究大型语言模型可解释性的博士生 Sheridan Feucht 对此表示:"对于语言模型来说,'词’到底应该是什么,这个问题有点难以解决,即使我们让人类专家就完美的标记词汇达成一致,模型可能仍然会认为进一步’分块’是有用的。“我的猜测是,由于这种模糊性,不存在完美的标记符号生成器。”

这种"模糊性"给英语以外的语言带来了更多问题。许多标记化方法都认为句子中的空格表示一个新词。这是因为它们是针对英语设计的。但并非所有语言都使用空格来分隔单词。汉语和日语不使用空格,韩语、泰语和高棉语也不使用。

2023 年牛津大学的一项研究发现,由于非英语语言的标记化方式不同,转换器完成一项非英语语言任务所需的时间可能是英语任务的两倍。同一项研究和另一项研究发现,"标记效率"较低的语言的用户很可能会看到更差的模型性能,但却要支付更高的使用费用,因为许多人工智能供应商是按标记收费的。

标记化器通常将逻各斯书写系统中的每个字符(在这种系统中,印刷符号代表单词,而与发音无关,如中文)视为一个独立的标记,从而导致标记数较高。同样,标记化器在处理凝集语(单词由称为词素的有意义的小词元组成,如土耳其语)时,往往会将每个词素变成一个标记,从而增加总体标记数。(在泰语中,"hello"的对应词สวัสดี有六个标记)。

2023 年,Google DeepMind 人工智能研究员 Yennie Jun进行了一项分析,比较了不同语言的标记化及其下游效果。通过使用一个翻译成 52 种语言的平行文本数据集,Jun 发现有些语言需要多达 10 倍的标记才能表达英语中的相同含义。

除了语言上的不平等,标记化也可以解释为什么今天的模型数学不好。

数字标记化很少能保持一致。因为它们并不真正了解数字是什么,标记符号化器可能会将"380"视为一个标记符号,而将"381"表示为一对(“38"和"1”)–这实际上破坏了数字之间的关系以及方程和公式中的结果。结果就是转换器混乱;最近的一篇论文表明,模型很难理解重复的数字模式和上下文,尤其是时间数据。(参见:GPT-4认为7735 大于 7926)。

这也是模型不擅长解决变位问题或颠倒单词的原因。标记化显然给生成式人工智能带来了挑战。它们能被解决吗?也许吧。

Feucht 指出,像MambaByte 这样的"字节级"状态空间模型,通过完全取消标记化,可以摄取比转换器多得多的数据,而不会影响性能。MambaByte 可直接处理代表文本和其他数据的原始字节,在语言分析任务方面可与某些转换器模型媲美,同时还能更好地处理"噪音",如带有交换字符、间距和大写字母的单词。

不过,像 MambaByte 这样的模式还处于早期研究阶段。

"最好的办法可能是让模型直接查看字符,而不强加标记化,但现在这对变换器来说在计算上是不可行的,"Feucht 说。“特别是对于变换器模型来说,计算量与序列长度成二次方关系,因此我们真的希望使用简短的文本表示”。

如果不能在词元化方面取得突破,新的模型架构似乎将成为关键。

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

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

相关文章

Ubuntu24.04清理常见跟踪软件tracker

尽量一天一更,不刷视频,好好生活 打开系统监视器,发现开机有个tracker-miner-fs-fs3的跟踪程序,而且上传了10kb的数据。 搜索知,该程序会搜集应用和文件的信息。 删除tracker 显示带tracker的apt程序 sudo apt lis…

ThreadLocal的内存泄漏

什么是内存泄漏 程序在申请内存后,无法释放已申请的内存空间在定义变量时,需要一段内存空间来存储数据信息,而这段内存如果一直不被释放,那么就会导致内存被占用光,而被占用的这个对象,一直不能被回收掉&am…

书生·浦语2.5开源,推理能力再创新标杆

导读 2024 年 7 月 3 日,上海人工智能实验室与商汤科技联合香港中文大学和复旦大学正式发布新一代大语言模型书⽣浦语2.5(InternLM2.5)。相比上一代模型,InternLM2.5 有三项突出亮点: 推理能力大幅提升,在…

VUE与React的生命周期对比

前言 在前端开发中,Vue和React是两个非常流行的JavaScript框架,它们各自有着独特的生命周期机制。了解并熟练掌握这些生命周期,对于开发高效、可维护的前端应用至关重要。本文将详细对比Vue和React的生命周期,帮助开发者更好地理…

Python | Leetcode Python题解之第222题完全二叉树的节点个数

题目: 题解: # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def countNodes(self,…

好玩的珠玑妙算-加作弊带概率空间+日志存储240705mindMaster

Python代码 import random import time import datetimeNUM_DIGITS 10 #NUM_NON_ZERO_DIGITS 9failFlag 0class Mastermind:def __init__(self, code_length, max_attempts, secret01code, game_id): # def __init__(self, code_length, max_attempts):self.code_length…

【Elasticsearch】Elasticsearch倒排索引详解

文章目录 📑引言一、倒排索引简介二、倒排索引的基本结构三、Elasticsearch中的倒排索引3.1 索引和文档3.2 创建倒排索引3.3 倒排索引的存储结构3.4 词典和倒排列表的优化 四、倒排索引的查询过程4.1 过程4.2 示例 五、倒排索引的优缺点5.1 优点5.2 缺点 六、倒排索…

【Excel】求和带文字的数据

目录标题 1. 给出样例2. CtrlE3. CtrlH → A替换为 → 全部替换 1. 给出样例 2. CtrlE 3. CtrlH → A替换为 → 全部替换

算法期末函数题

R6-1 可重复选择的组合数问题 【考核知识点】可重复选择的组合计数 【问题描述】 有n个不同元素&#xff08;1<n<20&#xff09;&#xff0c;每个元素可以选多次&#xff0c;一共需要选出k个元素出来&#xff08;1<k<20&#xff09;&#xff0c;问有多少种选取的…

监控易V7.6.6.15升级详解2:设备管理功能

随着企业IT架构的日益复杂&#xff0c;对设备管理的需求也在不断提升。为了满足广大用户对于设备管理的高效、精准需求&#xff0c;我们荣幸地宣布监控易系统已完成了一次重要的版本升级。本次升级不仅优化了原有功能&#xff0c;还新增了一系列实用特性&#xff0c;旨在为用户…

仿qq音乐播放微信小程序模板源码

手机qq音乐应用小程序&#xff0c;在线音乐播放器微信小程序网页模板。包含&#xff1a;音乐歌曲主页、推荐、排行榜、搜索、音乐播放器、歌单详情等。 仿qq音乐播放微信小程序模板源码

【ubuntu自启shell脚本】——在ubuntu中如何使用系统自带的启动应用程序设置开机自启自己的本地shell脚本

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、设置开机自启shell脚本1.使用 gnome-session-properties2.测试的shell例程代码 总结 前言 在Ubuntu系统中设置开机自启脚本是一种重要的自动化方法。开机自…

YOLO-World实时开集检测论文阅读

论文&#xff1a;《YOLO-World: Real-Time Open-Vocabulary Object Detection》 代码&#xff1a;https://github.com/AILab-CVC/YOLO-World 1.Abstract 我们介绍了YOLO World&#xff0c;这是一种创新的方法&#xff0c;通过在大规模数据集上进行视觉语言建模和预训练&#…

js之弹性布局使用方法

弹性布局&#xff08;Flexbox&#xff09;是一种现代化的 CSS 布局方法&#xff0c;它可以让您更方便地创建响应式和动态布局。在本篇文档中&#xff0c;我们将介绍弹性布局的基本概念以及如何在项目中使用它。 一、基本概念 容器&#xff08;Container&#xff09;&#xff…

WPF中逻辑树和视觉树

在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;“逻辑树”&#xff08;Logical Tree&#xff09;和“可视树”&#xff08;Visual Tree&#xff09;是两个重要的概念&#xff0c;它们代表了不同的对象层次结构&#xff0c;用于描述应用程序的组织…

洛谷 [SNCPC2024] 写都写了,交一发吧 题解

分析 显然&#xff0c;两个相同的数去按位与的结果还是该数。 由于一个代码可以提交多次&#xff0c;那么可以把得分最高的代码提交两次&#xff0c;这样的得分就是这个代码的得分&#xff0c;很明显&#xff0c;这样是最优的。 Code #include<iostream> using names…

STM32微控制器的SPI存储解决方案:W25Q64 Flash存储器深度应用

摘要 在嵌入式系统设计中&#xff0c;存储解决方案对于数据的持久化至关重要。W25Q64 Flash存储器以其高效的存储能力和与SPI总线的兼容性&#xff0c;成为STM32微控制器项目中的优选。本文将深入探讨STM32微控制器的SPI存储解决方案&#xff0c;重点介绍W25Q64 Flash存储器的…

vue3+antd 实现点击按钮弹出对话框

格式1&#xff1a;确认对话框 按钮&#xff1a; 点击按钮之后&#xff1a; 完整代码&#xff1a; <template><div><a-button click"showConfirm">Confirm</a-button></div> </template> <script setup> import {Mod…

如何查看程序是否在运行-Linux

1.命令 ps aux | grep RiboCode2_manythreads.py2.结果&#xff1a; 2020200 1063124 99.8 19.2 56105444 50796184 pts/0 Sl 18:40 114:36 python RiboCode2_manythreads.py -a ./RiboCode_annot -c config15d.txt -o ./ORFs_15d_final_result --gtf -t 15从输出结果可以看出…

阶段三:项目开发---大数据开发运行环境搭建:任务4:安装配置Spark集群

任务描述 知识点&#xff1a;安装配置Spark 重 点&#xff1a; 安装配置Spark 难 点&#xff1a;无 内 容&#xff1a; Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop …