GPT4-Turbor 128k ? 还不够?还不够!

本篇通译自:dev.to/maximsaplin...

OpenAI 去年11月 推出的GPT-4 Turbo模型,具有128K的上下文窗口,这比此前 GPT4 的最大上下文值 32K 提升了四倍。

128K 上下文提示语,是一个什么样的概念?

这个大小可以容纳 1684 条推文或 123 个 StackOverflow 问题;

但却只有 Linux 内核中最大的源文件的 1/540 。

这里带来了一些数据对比,看看 128K 能容纳哪些内容:

完整的对比数据在这里:docs.google.com

核心观点

所以,先来阐述一下本篇文章的核心观点:

  • 目前 128K 的上下文对于许多实际处理任务来说仍然不够

  • 它勉强能够容纳单个网页的原始HTML,或者搜索一个复杂知识的文档内容。

  • RAG(检索增强生成)是一种解决方案,但输入的文本片段不足以支撑检索复杂知识库,它们可能是无序的、不相关的。

  • 不能期望 100% 的上下文窗口内容都能被有效利用,在达到 50% 的时候,LLM 的性能就开始下降。

  • 提升上下文窗口容量(10-100倍)或扩充多模态,可能是一种前进的方向。

文本的转换问题

LLM 大型语言模型只能处理文本,虽然可以通过多种方式可以将给定的文档/对象/实体转换为文本,但并没有很完美的方式,能保留所有信息的同时转换不同类型的对象。

例如:转换文档为文本可能会丢失样式、结构、媒体内容,甚至某些文本信息本身(例如超链接的URL)。

例如,这个 StackOverflow 问题:

如果我在浏览器中选择部分内容并复制/粘贴到文本编辑器,它显示如下:

可以看到:点赞计数变成了单一数字,代码块没有格式化,链接的URL也缺失了。

Markdown 格式的文本有细微差异:

将源文本(而不是纯文本)提供给 LLM ,LLM 能够理解结构化的输入,这在 XML、HTML、JSON 等源文本提示中,

而不是屏幕上看到的纯文本提供给LLM是有意义的。LLM能够理解结构化输入,在XML、HTML、JSON等格式提示中有很多例子,LLM 有更好的表现。

从 TXT 复制到源文件复制,大小就会发生变化,并不是所有源文件都想 Markdown 那样轻量。

示例 Token 数 大小差异
Google Results Page (copy/paste, txt) 975
Google Results Page (source, HTML) 246781 253x
apple.com(copy/paste, txt) 997
apple.com(source, HTML) 92091 92x
Wikipedia page (Albania, copy/paste, txt) 42492
Wikipedia page (Albania, source, wikitext) 76462 1.8x

这里,我深有感触,比如写 提示语 直接复制到 GPT 对话框中,某些纯文本的提示语,就不会保存链接格式,要先复制到 markdown 中。这个替代方案某些情景适用,但并不是所有源文件,markdown 都支持,GPT 为什么不能进一步支持源文件格式的文本呢?

比如:HTML 源文件很大,里面包含了 JS、CSS,需要更大的上下文窗口容量支持。

RAG

以下是 Google 的检索 Google 结果:

它包含了:搜索框、搜索结果、侧边栏、图块等等,像这样的页面,纯用粘贴复制功能,贴到 GPT 上下文提示语框中,128K 的大小限制是足够的,因为它会丢失样式、链接、布局、交互性等信息;

如果是贴源文件,那么 128K 的大小就不够用了。

这个时候,如果用到 RAG ------ 生成式检索增强,它能通过 API 调用,请求页面或读取文件,优化检索数据,缩小文本或标记梳理,同时保留必要信息;然后使用文本分割器,将文档转换为段落、代码块,确定每段落大小;接着进行语义索引、并存储在向量数据库;在回复用户生成的内容前,选择与用户初始请求语义相关的段落块,插入到提示中。

这里的关键就是:细化结果并保留信息,嵌入相关性片段并连接相关信息。

假设我们想读取任意网页,并不清楚其中的结构,根本无法实现提取特定信息,比如:提取都带有 search-result CSS类的<div>元素;RAG 则可以帮我们解决这一问题,是一种较好的解决方案,帮助理解页面结构,也无需太大的上下文提示语容量。

一图胜千言

我们如何构建一个通用的、上述 RAG 代理,它能爬取网页、分析结构、深入分析,再提取相关数据?

在这篇 《The Dawn of LMMs: Preliminary Explorations with GPT-4V(ision)》 探索GPT-4V(ision)能力的论文中,有一个很好的"图形用户界面导航"使用案例:

"一图胜千言"这句话本身就体现了:如何通过改变信息模态将成百上千的 token 转变为可操作的信息片段的。

上下文长度限制的"骗局"

首先我们想想为什么提示语有长度限制?

当进行推理时,输入提示双倍增加(请求中的token数量)会使CPU和内存需求增加4倍;并且会延长2倍的请求时间、4倍的完成时间。

为了让大模型在理解、操作更多的上下文时仍保证有效,就必须在更大的上下文窗口上进行训练,这也需要更多的计算资源。

个别开发者通过实证研究和测试,宣传的上下文数量限制与实际有效上下文数量限制之间的严峻差异;当越接近上下文的最大限制时,LLM 越会忘记或错过提示中的某些信息。

GPT-4 Turbo的一项测试表明,只有当上下文不超过 71k token长度,约最大值的 55% ,才有可能一直保持上下文的信息处理能力。

这项测试现象在 GPT-3.5 也被得到证明;

虽然说极值是 128K,但实际到一半的时候,就开始出现前后不连贯的情况了。。

小结

所以,本瓜认为:我们几乎可以断定,目前的 128K 上下文提示语容量还有点"虚",并且还不够!

期待通过 RAG 等方式进一步解决这个问题,并且在未来,持续提升上下文提示语的数量、容量大小、文本类型等还是非常有必要的一项工作!


我们不断发现:成长与发展是学习与工作的主旋律 ,说到这里,自荐一下我和机械工业出版社联合出版的 《程序员成长手记》 一书:全书分为3大模块、8个章节:从入门程序员到程序员自驱成长,回归纸质阅读,相信能给你一个更全局的程序员视野,提供成长帮助。京东搜"程序员成长手记"

OK,以上便是本次分享,希望各位喜欢~ 欢迎点赞、收藏、评论 🤟 我是安东尼 🤠 人气技术博主 💥 坚持千日更文 ✍ 关注我,安东尼陪你一起度过漫长编程岁月

相关推荐
春末的南方城市1 小时前
Ctrl-Crash 助力交通安全:可控生成逼真车祸视频,防患于未然
人工智能·计算机视觉·自然语言处理·aigc·音视频
深科文库2 小时前
构建 MCP 服务器:第 4 部分 — 创建工具
python·chatgpt·prompt·aigc·agi·ai-native
幼稚园的山代王2 小时前
Prompt Enginering(提示工程)先进技术
java·人工智能·ai·chatgpt·langchain·prompt
土豆12503 小时前
告别“专属”编辑器:为什么 GitHub Copilot 是比 Cursor 更优的 AI 编程选择
llm·cursor·github copilot
墨风如雪4 小时前
AI理财新秀Kuvera-8B:同理心与钱袋子的秘密
aigc
知其然亦知其所以然4 小时前
RAG 结果太水?用 RRF + Reranker 重排,效果翻倍提升!
java·后端·llm
磊叔的技术博客4 小时前
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
spring·llm·openai
春末的南方城市17 小时前
港科大&快手提出统一上下文视频编辑 UNIC,各种视频编辑任务一网打尽,还可进行多项任务组合!
人工智能·计算机视觉·stable diffusion·aigc·transformer
草梅友仁19 小时前
AI 图片文字翻译与视频字幕翻译工具推荐 | 2025 年第 23 周草梅周报
开源·github·aigc
憨憨睡不醒啊19 小时前
如何让LLM智能体开发助力求职之路——构建属于你的智能体开发知识体系📚📚📚
面试·程序员·llm