大模型为什么会有 tokens 限制?

news2024/9/23 13:26:54

人是以字数来计算文本长度,大语言模型 (LLM)是以 token 数来计算长度的。LLM 使用 token 把一个句子分解成若干部分。

token 可以是一个单词、一个单词中的一个部分、甚至是一个字符,具体取决于它使用的标记化方法 (tokenization method)。比如:句子 “ChatGPT is great !” 可能会被分割成 [“Chat”, “G”, “PT”, " is", " great", “!”] 这 6 个 tokens。

图片

上下文 token 长度为什么会有限制?有以下3方面的相互制约:文本长短、注意力、算力,这3方面不可能同时满足,也就是存在“不可能三角”,如下图所示:

图片

也就是说:上下文文本越长,越难聚焦充分注意力(Transformer 网络的注意力机制),难以完整理解;注意力限制下,短文本无法完整解读复杂信息;处理长文本需要大量算力,从而提高了成本。

根本原因还是大模型的 Transformer 网络结构的自注意力机制,自注意力机制的计算量会随着上下文长度的增加呈平方级增长,比如:上下文增加32倍时,计算量实际会增长1000倍。这就构成了“不可能三角”中的第一组矛盾:上下文文本长短与注意力。

另外在大模型实际部署时,企业端根本无法提供很大的算力支持,这也就倒逼厂商无论是扩大模型参数还是文本长度,都要紧守算力一关。但现阶段要想突破更长的文本技术,就不得不消耗更多的算力,于是就形成了文本长短与算力之间的第二组矛盾

大模型如何突破 tokens 限制?

突破大模型的 tokens 限制主要采用以下 3种方法。

方法一:采用 LongLoRA 微调技术重建自注意力计算方式

通过 LongLoRA 微调技术将长文本划分为不同的组,在每个组里进行计算,而不用计算每个词之间的关系,从而降低计算量,提供生成速度。

图片

方法二:采用 RAG 技术给大模型开“外挂”

将长文本切分为多个短文本处理,大模型在处理长文本时,会在向量数据库中对短文本进行检索,以此来获得多个短文本回答构成的长文本。每次只加载所需要的短文本片段,从而避开了模型无法一次读入整个长文本的问题。

图片

方法三:提升大模型支持的上下文长度

对大模型的上下文长度持续优化,比如:以 OpenLLaMA-3B 和 OpenLLaMA-7B 模型为起点,在其基础上进行微调,产生了LONGLLaMA 新模型。该模型很容易外推到更长的序列,在 8K tokens上训练的模型,很容易外推到 256K 窗口大小。

图片

在技术侧这3种方法到底如何实现?可以参与我们下面的技术群

技术交流&资料

技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。

成立了大模型技术交流群,本文完整代码、相关资料、技术交流&答疑,均可加我们的交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、微信搜索公众号:机器学习社区,后台回复:加群
方式②、添加微信号:mlc2060,备注:来自CSDN + 技术交流

通俗易懂讲解大模型系列

  • 做大模型也有1年多了,聊聊这段时间的感悟!

  • 用通俗易懂的方式讲解:大模型算法工程师最全面试题汇总

  • 用通俗易懂的方式讲解:不要再苦苦寻觅了!AI 大模型面试指南(含答案)的最全总结来了!

  • 用通俗易懂的方式讲解:我的大模型岗位面试总结:共24家,9个offer

  • 用通俗易懂的方式讲解:大模型 RAG 在 LangChain 中的应用实战

  • 用通俗易懂的方式讲解:一文讲清大模型 RAG 技术全流程

  • 用通俗易懂的方式讲解:如何提升大模型 Agent 的能力?

  • 用通俗易懂的方式讲解:ChatGPT 开放的多模态的DALL-E 3功能,好玩到停不下来!

  • 用通俗易懂的方式讲解:基于扩散模型(Diffusion),文生图 AnyText 的效果太棒了

  • 用通俗易懂的方式讲解:在 CPU 服务器上部署 ChatGLM3-6B 模型

  • 用通俗易懂的方式讲解:使用 LangChain 和大模型生成海报文案

  • 用通俗易懂的方式讲解:ChatGLM3-6B 部署指南

  • 用通俗易懂的方式讲解:使用 LangChain 封装自定义的 LLM,太棒了

  • 用通俗易懂的方式讲解:基于 Langchain 和 ChatChat 部署本地知识库问答系统

  • 用通俗易懂的方式讲解:在 Ubuntu 22 上安装 CUDA、Nvidia 显卡驱动、PyTorch等大模型基础环境

  • 用通俗易懂的方式讲解:Llama2 部署讲解及试用方式

  • 用通俗易懂的方式讲解:基于 LangChain 和 ChatGLM2 打造自有知识库问答系统

  • 用通俗易懂的方式讲解:一份保姆级的 Stable Diffusion 部署教程,开启你的炼丹之路

  • 用通俗易懂的方式讲解:对 embedding 模型进行微调,我的大模型召回效果提升了太多了

  • 用通俗易懂的方式讲解:LlamaIndex 官方发布高清大图,纵览高级 RAG技术

  • 用通俗易懂的方式讲解:为什么大模型 Advanced RAG 方法对于AI的未来至关重要?

  • 用通俗易懂的方式讲解:使用 LlamaIndex 和 Eleasticsearch 进行大模型 RAG 检索增强生成

  • 用通俗易懂的方式讲解:基于 Langchain 框架,利用 MongoDB 矢量搜索实现大模型 RAG 高级检索方法

  • 用通俗易懂的方式讲解:使用Llama-2、PgVector和LlamaIndex,构建大模型 RAG 全流程

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

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

相关文章

基于麻雀优化算法优化XGBoost参数的优化控制策略

目录 一、背景 二、算法流程图 三、附录 一、背景 为提高极端梯度提升(Extreme Gradient Boosting, XGBoost)集成算法在时间预测、信贷风险预测、工件参数预测、故障诊断预测等方面中的准确性,研究者提出了一种改进的麻雀算法(…

相机图像质量研究(7)常见问题总结:光学结构对成像的影响--镜片固化

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

07-OpenFeign-HTTP压缩优化

gzip是一种数据格式,采用用deflate算法压缩数据;gzip是一种流行的数据压缩算法,应用十分广泛,尤其是在Linux平台。 当GZIP压缩到一个纯文本数据时,效果是非常明显的,大约可以减少70%以上的数据…

QTabWidget和QTabBar控件样式设置(qss)

QTabWidget和QTabBar控件样式设置 1、QTabWidget样式可自定义的有哪些示例:效果图 2、QTabBar样式可自定义的有哪些示例效果图 1、QTabWidget样式可自定义的有哪些 QTabWidget::pane{} 定义tabWidgetFrameQTabWidget::tab-bar{} 定义TabBar的位置QTabWidget::tab{}定…

【最详解】如何进行点云的凹凸缺陷检测(opene3D)(完成度80%)

文章目录 前言实现思路想法1想法2想法3 补充实现想法1想法2代码 想法3代码 总结 前言 读前须知: 首先我们得确保你已经完全知晓相关的基本的数学知识,其中包括用最小二乘法拟合曲二次曲面,以及曲面的曲率详细求解。若还是没弄清楚&#xff0…

《幻兽帕鲁》攻略:0基础入门及游戏基础操作 幻兽帕鲁基础设施 幻兽帕鲁基础攻击力 Mac苹果电脑玩幻兽帕鲁 幻兽帕鲁加班加点

今天就跟大家聊聊《幻兽帕鲁》攻略:0基础入门及游戏基础操作。 如果想在苹果电脑玩《幻兽帕鲁》记得安装CrossOver哦。 以下纯干货: CrossOver正版安装包(免费试用):https://souurl.cn/Y1gDao 一、基础操作 二、界面…

稳压二极管应用电路

稳压二极管比较特殊,基本结构与普通二极管一样,也有一个PN结。由于制造工艺的不同,当这种PN结处于反向击穿状态时,PN结不会损坏(普通二极管的PN结是会损坏),在稳压二极管用来稳定电压时就是利用它的这一击穿特性。 由…

【学网攻】 第(23)节 -- PPP协议

系列文章目录 目录 系列文章目录 文章目录 前言 一、PPP协议是什么? 二、实验 1.引入 实验目的 实验背景你是某公司的网络管理员,现在需要与另一个公司进行通信,需要你配置PPP协议保证双方发送的人是真正的而非黑客 技术原理 实验步骤新建Pack…

MySQL学习记录——유 表的约束

文章目录 1、了解2、空属性3、默认值default4、列描述comment就是注释,desc看不到,show能看到。5、zerofill6、主键7、自增长auto_increment8、唯一键9、外键 1、了解 只有数据类型的约束肯定不够,mysql还有表的约束来进而保证数据合法性。约…

安全名词解析-威胁情报、蜜罐技术

为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 威胁情报02 蜜罐技术 01 威胁情报 威胁情报(Threat Intelligence),也被称作安全情报(Security Intelligence)、安全威胁情报(Security Threat Intelligence)。 关于威胁情报的定义有很多…

redis的主从配置模拟(一主双从)

目录 先来给大家扩展机道面试官经常会问到关于redis的题 一、redis有哪些好处 二、redis相比memcached有哪些优势 三、redis常见性能问题和解决方案 四、redis集群的工作原理 五、redis主从的原理 redis的主从配置模拟(一主双从) 一、准备环境 …

C++ 内存管理(newdelete)

目录 本节目标 1. C/C内存分布 2. C语言中动态内存管理方式:malloc/calloc/realloc/free 3. C内存管理方式 3.1 new/delete操作内置类型 3.2 new和delete操作自定义类型 4. operator new与operator delete函数 5. new和delete的实现原理 6. 定位new表达式(placem…

Visio 2019下载安装教程,保姆级教程,附安装包

前言 Visio是负责绘制流程图和示意图的软件,便于IT和商务人员就复杂信息、系统和流程进行可视化处理、分析和交流,可以促进对系统和流程的了解,深入了解复杂信息并利用这些知识做出更好的业务决策。帮助您创建具有专业外观的图表&#xff0c…

Redis中内存淘汰算法实现

Redis中内存淘汰算法实现 Redis的maxmemory支持的内存淘汰机制使得其成为一种有效的缓存方案,成为memcached的有效替代方案。 当内存达到maxmemory后,Redis会按照maxmemory-policy启动淘汰策略。 Redis 3.0中已有淘汰机制: noevictionall…

【STL】list模拟实现

vector模拟实现 一、接口大框架函数声明速览二、结点类的模拟实现1、构造函数 三、迭代器类的模拟实现1、迭代器类存在的意义2、迭代器类的模板参数说明3、构造函数4、运算符的重载(前置和后置)(1)前置(2)后…

单片机学习笔记---LED点阵屏显示图形动画

目录 LED点阵屏显示图形 LED点阵屏显示动画 最后补充 上一节我们讲了点阵屏的工作原理,这节开始代码演示! 前面我们已经说了74HC595模块也提供了8个LED,当我们不使用点阵屏的时候也可以单独使用74HC595,这8个LED可以用来测试7…

cpp11新特性之智能指针(下):深入理解现代cpp中的智能指针shared_ptr、unique_ptr 以及 weak_ptr

目录 写在前面 unique_ptr shared_ptr weak_ptr 智能指针的使用陷阱 致谢 写在前面 上一篇文章同大家深入探讨了auto_ptr。今天给大家带来的是对于 shared_ptr、unique_ptr 以及 weak_ptr 的深入理解,通过测试案例和源码剖析对这三种重要的智能指针的使用方法&…

阿里云学生服务器完成验证领取300元无门槛代金券和优惠权益

阿里云高校计划「云工开物」学生和教师均可参与,完成学生认证和教师验证后学生可以免费领取300元无门槛代金券和3折优惠折扣,适用于云服务器等全量公共云产品,订单原价金额封顶5000元/年,阿里云百科aliyunbaike.com分享阿里云高校…

[linux]:匿名管道和命名管道(什么是管道,怎么创建管道(函数),匿名管道和命名管道的区别,代码例子)

目录 一、匿名管道 1.什么是管道?什么是匿名管道? 2.怎么创建匿名管道(函数) 3.匿名管道的4种情况 4.匿名管道有5种特性 5.怎么使用匿名管道?匿名管道有什么用?(例子) 二、命名…

Android SDK 上传 Maven 喂奶级教程

最近领导给安排了个任务,让我把我们现有的一个 SDK 上传到 Maven 上去,方便客户直接用 gradle 依赖,不再需要拷贝 jar 和 so 了,此前我也看过一些相关的文章我想问题也不大,觉得工作量也就一两天的事情,主要…