# 热门搜索 #
搜索
谷歌揭秘大模型不会数r原因:嵌入维度是关键,不止分词器问题
8496点击    2024-09-04 22:03

大模型做奥赛题游刃有余,简单的数数却屡屡翻车的原因找到了。


谷歌的一项新研究,发现大模型不会数数的原因,并不是简单的tokenizer所致,而是没有足够的空间来存储用于计数的向量



数出一段话中某个单词出现的次数,这样简单的任务可以难倒许多大模型,GPT-4o、Claude 3.5也无法幸免。


如果再进一步,想要找到出现频率最高的一个词,更是难如登天,即便能蒙对给出的具体数量也是错的。



有人认为是词汇的token化导致了大模型看到的“词”和我们的看法不一致,但论文表明,实际情况并不是这么简单。



想数清单词,嵌入维度要够大


Transformer的计数能力与其嵌入维度d和词汇量m(指词汇表中词的数量,非序列长度)的关系密切相关。


详细的原因,就涉及到了Transformer统计词频时的机制。


Transformer通过一种特殊的嵌入方式,利用嵌入空间的线性结构,巧妙地将计数问题转化为了向量加法


具体说是将每个词映射到一个独特的正交向量上,在这种表示下,词频可以通过对这些正交向量求和来简单地计算



然而,这种机制的局限性在于,它要求词汇表中的每个词都有一个独立的正交向量表示,因此嵌入维度必须大于词汇量


嵌入维度不足时,词向量就无法保持正交性,词频的线性叠加也就无法实现了。


此时Transformer要实现计数,可以通过注意力机制(CountAttend)来实现,但需要一个随序列长度n线性增长的大型“逆转MLP”层。


具体来说,模型首先通过注意力赋予被查询词较大的权重,再利用位置编码将注意力权重提取到值向量的最后一个元素,这个元素实际记录了被查询词的出现频率的倒数。


这意味着,模型需要一个大小为O(n)的MLP层来计算1/x函数(x为某个词出现的次数)


但进一步分析表明,任何常数层ReLU网络都无法在o(n)的神经元数量下逼近1/x函数


因此,对于固定规模的Transformer,这种方案无法推广到任意长度的序列。当序列长度超出训练集长度时,模型的计数能力会急剧恶化。



长度非主要因素,词汇表中数量是关键


为了验证这一结论,作者一共进行了两个实验。


第一个实验,是在一个从头开始训练的Transformer模型上进行的,具体有关参数如下:


  • 使用一个由两个Transformer层、四个注意力头组成的标准模型;

  • 嵌入维度d的取值范围为8到128;

  • 对每个固定的d,词汇量m从5到150变化,分别测试20个不同的值;

  • 模型使用Adam优化器从零开始训练,批量大小为16,学习率为10^-4,训练10万步。

训练和评测数据通过随机采样生成。首先从大小为m的词汇表中均匀采样n个词,构成一个长度为n的序列。


序列长度n设置为n=10m,平均每个词出现的次数固定为10次,一共使用了1600个样本进行测试。


作者发现,随着词汇量的增加,模型的计数准确率呈阶梯状下降,临界点恰好出现在词汇量超过嵌入维度的时刻


为了进一步量化模型的计数能力,作者定义了一个指标m_thr,表示模型的计数准确率下降到80%时的临界词汇量。


直观地说,m_thr反映了在给定嵌入维度下,模型可以“承受”的最大词汇量,m_thr越大说明模型的计数能力越强。


结果显示,对于计数(QC)和找出最高频词(MFC)的任务,m_thr都随嵌入维度d的增大而近似线性增长



第二个实验则是在预训练的Gemini 1.5模型上开展,在这个实验中,作者更关注词汇量对计数能力的影响。


他们设计了一系列计数任务,每个任务使用不同大小的词汇表,并把每个词在序列中出现的平均次数固定。


这意味着,在实验组当中,词汇量越大,序列长度也就越长。


作为对照,作者还设置了一个“Binary Baseline”,词汇表中只有固定为两个词,但序列长度与主实验组相同。


这样一来,就可以判断出带来模型计数误差的究竟是词汇量还是序列长度。


实验结果显示,随着词汇量的增加,Gemini 1.5在计数任务上的平均绝对误差显著上升,而“Binary Baseline”的误差要低得多。



这表明,词汇量的增加,而非序列长度的增长,是导致大模型计数能力下降的主要原因。


不过作者也表示,虽然这项研究一定程度上划定了大模型计数能力的上下界,但这些界限还不够紧致,距离理想的结果还有一定差距。


同时,作者也没有探究增加Transformer的层数是否会改变这一结论,需要未来开发新的技术工具才能进一步验证。


文章来源于“量子位”,作者“克雷西”


关键词: AI , GPT-4o , Claude 3.5 , 大模型
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
AI数据分析

【开源免费】DeepBI是一款AI原生的数据分析平台。DeepBI充分利用大语言模型的能力来探索、查询、可视化和共享来自任何数据源的数据。用户可以使用DeepBI洞察数据并做出数据驱动的决策。

项目地址:https://github.com/DeepInsight-AI/DeepBI?tab=readme-ov-file

本地安装:https://www.deepbi.com/

【开源免费airda(Air Data Agent)是面向数据分析的AI智能体,能够理解数据开发和数据分析需求、根据用户需要让数据可视化。

项目地址:https://github.com/hitsz-ids/airda

2
RAG

【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。

项目地址:https://github.com/microsoft/graphrag

【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。

项目地址:https://github.com/langgenius/dify


【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。

项目地址:https://github.com/infiniflow/ragflow/tree/main


【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目

项目地址:https://github.com/phidatahq/phidata


【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。

项目地址:https://github.com/TaskingAI/TaskingAI

3
免费使用GPT-4o

【免费】ffa.chat是一个完全免费的GPT-4o镜像站点,无需魔法付费,即可无限制使用GPT-4o等多个海外模型产品。

在线使用:https://ffa.chat/