Google Gemini:大上下文窗口是杀手级功能吗?

news2024/10/6 22:25:20

在八个月前,一封泄露的谷歌电子邮件透露,谷歌正努力超越其人工智能竞争对手。谷歌不仅没有围绕其人工智能产品的护城河——换句话说,没有建立起商业优势——也没有可以改变现状的秘诀。就在他们努力解决这个问题的同时,他们也看到像他们这样的私人资助的人工智能项目与开源人工智能模型之间的差距正在以“惊人”的速度缩小。

现在还不知道这个故事的结局。也许开源人工智能将继续在其早期成功的基础上继续发展,或者它可能会被谷歌、微软和苹果等财大气粗的竞争对手及其令人难以置信的海量数据所扼杀。目前,随着不同组织推出一系列快速的人工智能进步,冲突仍在继续。最近,谷歌在这个领域成为焦点,它宣布了其最新LLMGemini 1.5 Pro的预览版。另一天,另一个大型语言模型——或者看起来如此,直到谷歌描述了一个惊人的变化。

Gemini 1.5 Pro 大大扩展了上下文窗口——本质上,这是衡量 LLM 可以同时跟踪多少数据的指标。在过去的版本中,Gemini 的上下文窗口最多可容纳 128,000 个 token,就像 GPT-4 一样。但 Gemini 的新上下文窗口可容纳100 万个token,这一变化的影响是巨大的。

但在我们讨论上下文窗口对 LLM 功能的影响之前,我们需要回顾一下上下文窗口的工作原理。

上下文窗口(简而言之)

简单来说,上下文窗口决定了 LLM 在交互过程中可以记住多少信息。例如,如果您使用 ChatGPT,上下文窗口包括您给它的当前提示、您之前在该对话中输入的所有其他内容以及 ChatGPT 发回给您的每个回复。交谈时间长了,对话的旧部分就会从上下文窗口中消失,ChatGPT 会突然忘记这些细节。

128,000 个 token 上下文窗口听起来很大,但这个数字具有欺骗性。首先,考虑到一个普通单词在分解为 LLM 时实际上是 1 到 3 个 token。(经验法则是 3 个单词有 4 个 token,但随着语言变得更加复杂或在法律或医学等专业领域,这个数字会增加。)当你查看长文档、正在进行的交互和 AI 驱动的应用程序时,你很快就会发现你无法将你想要 LLM 知道的所有内容都放在其上下文窗口中。

因此,我们开发了一些巧妙的方法来解决上下文窗口限制。例如:

  • 分块。你可以将大量数据分解,然后让 LLM 一次查看一部分。这种方法对某些任务(总结一篇较长的文档)很有效,但如果你需要分析整个文档中的概念,这种方法就不太有效了。
  • 微调。你可以用你的特定数据训练 LLM。除了时间和费用之外,关键问题是你的新数据很容易被 LLM 已经吸收的更大的通用训练数据集所淹没。通常,它不会坚持下去。此外,许多 LLM 根本不支持微调——包括 GPT-4 和 Gemini。
  • 检索增强生成 (RAG)。首先,您将文本内容转换为一种特殊的表示形式,称为嵌入。(嵌入是 LLM 工作方式的重要组成部分。本质上,它们是一种捕捉内容含义的数字表示。)一旦有了嵌入,您就可以将它们放在向量数据库中。现在,您可以使用语义搜索的魔力来查看提示并在数据库中找到概念相关的内容,然后将其输入到 LLM 中。换句话说,您只给它重要的东西。

最后一点是当今最常见的方法。RAG 高效且可预测。如果您拥有大量松散相关的文档,它的效果会非常好。例如,假设您正在创建一个技术支持聊天机器人,该聊天机器人从公司的知识库文章中提取信息。使用 RAG,您可以找到相关数据,并将其与您的提示一起提供给 LLM。本质上,您是在告诉 LLM 在回答提示时要查看哪里。

但 RAG 并不完美。它迫使你花费更多时间准备数据。它并不容易进入一个全新的数据集。如果你确实需要一次性考虑大量信息,它就不是那么有效——例如,你正在寻找小说中的总体主题或代码库中的功能。但尽管有局限性,RAG 还是非常接近当今的最佳实践。

至少,直到 Gemini 1.5 Pro 改变剧本之前,情况都是如此。

惊喜时刻

尽管 Gemini 1.5 Pro 尚未发布,但已进行了严格限制的试用。其结果令人大开眼界。

一些最令人印象深刻的例子表明,Gemini 能够创建涵盖大量知识的分析。谷歌的演示令人印象深刻,但他们过去曾被指责进行演示和挑选示例。我对独立测试人员更感兴趣,他们报告的结果同样引人注目。

例如,Conor Grennan将一本 300 页的小说交给 Gemini,并要求它描述主要人物、寻找情节转折,并找出人物感受到某些情绪的例子。Gemini 毫不费力地提出了贯穿整本书的细致入微的论点。YouTube 上流行的Fireship 频道的创建者 Jeff Delaney向 Gemini 提供了包含数千个文件的整个代码库,并要求它添加新功能。Gemini 不仅编写了正确的代码,还遵循了现有项目的风格,使用已经建立的组件、库和约定。其他演示展示了 Gemini 识别应用程序中的问题、提取关键示例并编写 API 文档。

如果你想要用其他东西来填充 Gemini 巨大的上下文窗口,还有另一个新功能——视频。视频的标记方式与文字不同,占用的空间要大得多。但即便如此,100 万个标记上下文窗口可以容纳大约一小时的视频——足以浏览一部电影并回答有关其内容的复杂问题。当谷歌要求 Gemini在一部 Buster Keaton 电影中寻找具体细节时,它就是这样做的,比如在他们没有识别的场景中,在一张纸上写下的文字。

未来的LLM

大型上下文窗口是未来的发展方向吗?到目前为止,普遍的看法是大型上下文窗口充其量只是部分解决方案。我们担心它们在计算时间上会非常昂贵。一项研究发现,LLM 并不擅长在长上下文窗口中间查找信息,而更擅长查找出现在开头或结尾的细节。所有这些因素都支持同一个结论:强行将您的内容放入上下文窗口是幼稚且成本高昂的。将所有数据转储到一个请求中并不是与 LLM 交谈的正确方法。

现在看来,未来似乎突然发生了变化。大型上下文窗口即将出现,它们可以让LLM对广泛的知识集有更全面、更全面的理解。去年无法用文本完成的任务现在即将在视频中成为可能。谷歌研究院正在研究 Gemini 的一个变体,将上下文窗口扩展到惊人的 1000 万个标记。

有两个事实显而易见。首先,在LLM之争中挑选赢家是愚蠢的行为。其次,变化的步伐并没有减缓——而是在加快。

欢迎你分享你的作品到我们的平台上. http://www.shxcj.com 或者 www.2img.ai 让更多的人看到你的才华。


创作不易,觉得不错的话,点个赞吧!!!

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

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

相关文章

SpringSecurity中文文档(Servlet Password Storage)

存储机制(Storage Mechanisms) 每种支持的读取用户名和密码的机制都可以使用任何支持的存储机制: Simple Storage with In-Memory AuthenticationRelational Databases with JDBC AuthenticationCustom data stores with UserDetailsServic…

2024/07/04

1、梳理笔记(原创) 2、终端输入一个日期&#xff0c;判断是这一年的第几天 scanf("%d-%d-%d",&y,&m,&d); 闰年2月29天&#xff0c;平年2月28天 #include<stdio.h> int main(int argc, char const *argv[]) {int y0,m0,d0;printf("please ente…

KBL610-ASEMI无人机专用整流桥KBL610

编辑&#xff1a;ll KBL610-ASEMI无人机专用整流桥KBL610 型号&#xff1a;KBL610 品牌&#xff1a;ASEMI 封装&#xff1a;KBL-4 最大重复峰值反向电压&#xff1a;1000V 最大正向平均整流电流(Vdss)&#xff1a;6A 功率(Pd)&#xff1a;中小功率 芯片个数&#xff1a…

【每天学会一个渗透测试工具】SQLmap安装教程及使用

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 ✨SQLmap简介 Sqlmap是一款开源的渗透测试工具 &#x1f680;下载及安装 下载地址&#xff1a;http://sqlmap.org/ windo…

黑马点评DAY4|整体项目介绍、短信登录模块

项目整体介绍 项目功能介绍 项目结构 该项目前后端分离架构模式&#xff0c;后端部署在Tomcat服务器&#xff0c;前端部署在Niginx服务器上&#xff0c;这也是现在企业开发的标准做法。PC端首先向Niginx发起请求&#xff0c;得到页面的静态资源&#xff0c;页面再通过ajax向服…

【UE5.3】笔记7 控制Pawn移动

使用A、D键控制角色左右移动 打开我们的BP_Player蓝图类&#xff0c;选择事件图表&#xff0c;添加我们的控制事件 右键&#xff0c;搜索A keyboard&#xff0c;选择A,如下图&#xff0c;D也是 添加扭矩力 首先我们要把我们的player上的模拟物理选项打开&#xff0c;这样我们…

Windows系统安装MySQL8.0.38

MySQL 8.0 相对于 MySQL 5.7 来说有几个显著的区别和改进&#xff0c;以下是一些主要的区别&#xff1a; JSON 数据类型和函数改进&#xff1a; MySQL 8.0 引入了更多的 JSON 支持&#xff0c;包括 JSON 数据类型、JSON 函数和操作符。这使得存储和查询 JSON 数据更加方便和高效…

sql语句练习注意点

1、时间可以进行排序&#xff0c;也可以用聚合函数对时间求最大值max&#xff08;时间&#xff09; 例如下面的例子&#xff1a;取最晚入职的人&#xff0c;那就是将入职时间倒序排序&#xff0c;然后limit 1 表&#xff1a; 场景&#xff1a;查找最晚入职员工的所有信息 se…

MySQL-作业1

一、数据库 1、登陆数据库 2、创建数据库zoo 3、修改数据库zoo字符集为gbk 4、选择当前数据库为zoo 5、查看创建数据库zoo信息 6、删除数据库zoo 二、创建表 1、创建一个名称为db_system的数据库 2、在该数据库下创建两张表&#xff0c;具体要求如下&#xff1a; 员工表 user …

贵的智能猫砂盆值得买吗?包含百元、千元的高性价比品牌推荐!

对于养猫的上班族来说&#xff0c;智能猫砂盆真的是越早买越好&#xff0c;普通猫砂盆用这么久下来能把我们这些上班的都累死&#xff0c;每次一回到家就能闻到猫屎的臭味&#xff0c;一看就收获猫砂盆里满满当当的猫屎&#xff0c;在外面要上班&#xff0c;在家里也要给猫上班…

C语言数据类型和变量(三)

目录 1.赋值操作符 1&#xff09;连续赋值 2&#xff09;复合赋值符 2.单目操作符&#xff1a;、- -、&#xff08;正号&#xff09;、- &#xff08;负号&#xff09; 1&#xff09;和-- 2&#xff09; 和 - 3.强制类型转换 4.printf&#xff08;&#xff09;函数 1…

用for语句实现九九乘法表

① #define _CRT_SECURE_NO_WARNINGS #include <stdio.h>int main() {for (int i 1; i < 9; i){for (int j 1; j < i; j){printf("%d*%d%d\t", j, i, i * j);}printf("\n");}return 0; } ② #define _CRT_SECURE_NO_WARNINGS #include &…

美特CRM anotherValue FastJson反序列化RCE漏洞复现

0x01 产品简介 MetaCRM是一款智能平台化CRM软件,通过提升企业管理和协同办公,全面提高企业管理水平和运营效率,帮助企业实现卓越管理。美特软件开创性地在CRM领域中引入用户级产品平台MetaCRM V5/V6,多年来一直在持续地为客户创造价值,大幅提升了用户需求满足度与使用的满意…

前端学习(三)CSS介绍及选择符

##最近在忙期末考试&#xff0c;因此前端笔记的梳理并未及时更新。在学习语言过程中&#xff0c;笔记的梳理对于知识的加深very vital.因此坚持在明天学习新知识前将笔记梳理完整。 主要内容&#xff1a;CSS介绍及选择符 最后更新时间&#xff1a;2024/7/4 目录 内容&#x…

震惊!运气竟能如此放大!运气的惊人作用,你了解吗?

芒格&#xff1a;得到你想要的东西&#xff0c;最保险的办法&#xff0c;就是让自己配得上你想要的那个东西。今天仔细想了想这句话&#xff0c;他其实说的是无数成功人士的心声 —— “我配得上&#xff01;” 美剧《绝命毒师》有个导演叫文斯吉里根&#xff08;Vince Gilliga…

JAVA:文件防重设计指南

1、简述 在现代应用程序中&#xff0c;处理文件上传是一个常见的需求。为了保证文件存储的高效性和一致性&#xff0c;避免重复存储相同的文件是一个重要的优化点。本文将介绍一种基于哈希值的文件防重设计&#xff0c;并详细列出实现步骤。 2、设计原理 文件防重的基本思路…

「Java开发指南」如何用MyEclipse完成Spring Web Flow 2.0搭建?

本教程将引导您完成Spring Web Flow的软件组件生成&#xff0c;这是Spring的一个项目&#xff0c;用于简化Web应用程序的开发。虽然Spring Web Flow与Spring MVC兼容&#xff0c;但Spring Web Flow使用流而不是控制器来实现应用程序的Web层。在本教程中&#xff0c;您将学习如何…

跑腿平台小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;基础数据管理&#xff0c;管理员管理&#xff0c;接单详情管理&#xff0c;跑腿员管理&#xff0c;跑腿任务管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;跑腿任务&#xff0c;接单员&…

前端播放RTSP视频流,使用FLV请求RTSP视频流播放(Vue项目,在Vue中使用插件flv.js请求RTSP视频流播放)

简述&#xff1a;在浏览器中请求 RTSP 视频流并进行播放时&#xff0c;直接使用原生的浏览器 API 是行不通的&#xff0c;因为它们不支持 RTSP 协议。为了解决这个问题&#xff0c;开发者通常会选择使用像 flv.js 这样的库&#xff0c;它专为在浏览器中播放 FLV 和其他流媒体格…

使用SSE实现echarts数据实时更新

区别 SSE 和 WebSocket 原理和实现方式的区别 SSE( Server-Sent Events) SSE 是基于传统的 HTTP 协议实现的&#xff0c;采用了长轮询&#xff08;long-polling&#xff09;机制。客户端通过向服务器发送一个 HTTP 请求&#xff0c;服务器保持连接打开并周期性地向客户端发送…