ChatGPT 强大的自然语言能力让人不得不为之惊叹,但其 Token 限制仍让许多用户不胜其烦。虽然 Claude 2 的 Token 容量更大,但 ChatGPT 的用户群远远超过了 Anthropic 的同类产品。
本文将介绍如何突破 Token 限制,不仅让你可以上传更长的文本,也可以让 ChatGPT 输出万字长文。通过实际案例,你将一步步了解如何操作这一过程,从而释放 ChatGPT 更多的潜力。
为什么 ChatGPT 有 Token 限制
人类是以字数 (单词数) 来计算文本长度的,大语言模型 (LLM) 却不是这样的计算方式。ChatGPT 使用 Token 把一个句子分解成若干部分。
Token 可以是一个单词、一个单词中的一个部分、甚至是一个字符,具体取决于它使用的标记化方法 (tokenization method)。例如,句子 “ChatGPT is great !”可能会被分割成 [“Chat”, “G”, “PT”, ” is”, ” great”, “!”] 这 6 个 Token。
你可以使用 OpenAI 的 Tokenizer (platform.openai.com/tokenizer) 把 Token 数换算为字符数。或者可以使用近似的公式:
- 1 个 Token ~= 4 个 英文字符
- 1 个 Token ~= ¾ 个英文单词
- 100 个 Token ~= 75 个英文单词
Token 限制包括了输入和输出,也就是你在一次对话中提交给 ChatGPT 的内容和 ChatGPT 输出的内容不能超过模型规定的 Token 数量。比如 ChatGTP 3.5 的 Token 限制是 4096,ChatGPT 4 的 Token 限制是 8192。
ChatGPT 有 Token 限制的原因与内存限制和计算效率有关。用于运行 ChatGPT 等模型的 GPU(图形处理单元)或 TPU 具有物理内存限制。如果对话超过 Token 限制,就会超过内存限制导致操作失败或极其缓慢。
此外,随着 Token 数量的增加,所需的计算量大幅度增加。这会使 ChatGPT 响应速度变慢,影响用户体验。这也是为什么 GPT-4 比 GPT-3.5 响应速度慢的原因。
尽管如此,我们很多情况下需要给 ChatGPT 在一次对话中提交很长的内容,比如,让 ChatGPT 总结一本书的内容。或者让 ChatGPT 在一次对话中输出很长的内容,比如写一篇很长的论文。
如何提交超过 Token 限制的文本
可以使用以下方法提交:
- 在 OpenAI Playground 中使用 Token 数量更大的模型,比如 “GPT-4.5-turbo-16k” 或 “gpt-4-32k”。但是这样会额外付费且离开了 ChatGPT,故本文不做讨论。
- 写一个提示词,告诉 ChatGPT 你将会把提交的内容分为若干部分依次上传。提示词可以这样写 “The text that I’m about to submit will be divided into several parts. I request that you wait until all parts have been provided before summarizing or answering any questions about it. (我即将提交的文本将分为几个部分。我请求您等到所有部分都提供完之后,再对其进行总结或回答任何问题。)”。上传结束以后,你再向 ChatGPT 提问题或者分配任务。
- 使用谷歌浏览器 “ChatGPT File Uploader Extended”。这个插件会自动帮你把长文本分为若干部分提交给 ChatGPT。
- 把要提交的内容做成一个 PDF 并使用 AskYourPDF 上传。
- 放到记事本文件里并使用 ChatGPT 的代码解释器上传。
详细的方法可以看我之前的文章:
👉 4种方法让你上传任何文件到ChatGPT: 总有一种适合你
如何让 ChatGPT 的输出突破 Token 限制
具体分为以下几种方法:
- 有时候 ChatGPT 的回答超过 Token 限制时,在响应的结尾会出现一个 “Continue” 按钮,这时候你只需要点击这个按钮就可以了。但是这种效果有随机性,不一定会出现。
- 如果 ChatGPT 的响应因为 Token 限制而中断了,你可以输入 “Continue” 让 ChatGPT 继续未完成的响应就好。
- 如果我们一定要让 ChatGPT 输出超过 Token 限制的文本,最好指定字数或者字符数。比如 ”写一篇 1 万字有关生成式 AI 的论文“。
- 如果你指定的字数超过了 Token 限制,ChatGPT 可能会主动告诉你它会把内容分为若干个部分依次输出,你只需要不停地让它继续输出就好。
- 你还可以让 ChatGPT 给你列一个提纲或者按照你列的提纲依次输出不同的部分。
让我们通过实际案例看看如何实现全过程吧。
实际案例演示
现在我要完成这样一个任务:Youtube 上有一个哈佛大学关于 GPT-4 的讲座,视频长达55分钟,视频字幕文本长达一万多个单词。现在我要把这个视频变成1万个单词的笔记。其实一万个单词的讲座浓缩成笔记的话要不了1万个单词,但是我还是尽力让笔记更详细,让 ChatGPT 根据自己的知识完善一些细节。
1/ 首先,我用 YouTube Summarizer with ChatGPT 这个谷歌浏览器插件把视频的字幕文本复制下来并放在一个文本文档里。这个插件还可以一键总结 Youtube 视频内容,具体用法可以参考 👉 如何用ChatGPT或Claude总结Youtube视频内容。
2/ 然后我激活了刚才提到过的 ”ChatGPT File Uploader Extended“ 这个谷歌浏览器插件。然后用它分割这个文本文件然后依次提交给 ChatGPT。
3/ 把所有部分都上传以后,这个谷歌插件会输出以下提示词。然后就可以给 ChatGPT 分配任务了。
css复制代码I have finished reviewing the document and I'm ready to assist you with your inquiries.(我已审阅完文件,随时准备为您的咨询提供帮助。)
4/ 我写了如下的提示词让 ChatGPT 把它转变为一篇笔记。
复制代码我想把您之前的所有回复(YouTube 文字记录)转换成一份全面的 Obsidian 笔记,目标字数约为 10,000 字。目的是捕捉到原始文字记录中的每一个细微差别和细节。以下是具体步骤和指南: 初步提纲: 在开始转换之前,请先创建一个大纲,将记录稿分成几个部分。说明每个部分的预计字数,以确保我们达到 10,000 字的总体目标。 保留细节: 在转换字幕文本时,请确保保留所有细节。这不仅包括要点,还包括任何轶事、例子或特定短语。 澄清: 如果您在字幕文本中遇到任何模棱两可或不清楚的片段,请利用自己的知识来澄清和阐述这些要点。 Token 限制:我知道每次互动都有 Token 限制。请随意使用多个互动来完成任务。但要确保互动的连续性和一致性。 暂停和反思: 在最后确定每个部分之前,请花点时间回顾一下,确保与原始记录保持一致,并有效填补任何空白。 请在阅读并理解这些指导原则后继续完成任务。
vbnet复制代码I'd like to convert all your previous responses (the YouTube transcript) into a comprehensive Obsidian note with a target word count of approximately 10,000 words. The aim is to capture every nuance and detail from the original transcript. Here are the specific steps and guidelines:
Preliminary Outline: Before diving into the conversion, please create an outline that breaks down the transcript into sections. Indicate the estimated word count for each section to ensure we reach the overall target of 10,000 words.
Detail Retention: As you convert the transcript, make sure to retain all the details. This includes not just the main points but also any anecdotes, examples, or specific phrases.
Clarification: If you encounter any ambiguous or unclear segments in the transcript, use your own knowledge to clarify and elaborate on those points.
Token Limit: I understand that there's a token limit for each interaction. Feel free to use multiple interactions to complete the task. Just make sure to maintain continuity and coherence across interactions.
Pause and Reflect: Before finalizing each section, take a moment to review and ensure that it aligns well with the original transcript and fills in any gaps effectively.
Please proceed with the task once you've read and understood these guidelines.
5/ 接着,ChatGPT 告诉我它接下去采取的步骤,内容如下:
复制代码收到!我将按照您提供的步骤和指南,开始将 YouTube 文字实录转换成目标字数约为 10,000 字的全面的 Obsidain 笔记。我会创建一个初步大纲,保留原始文字记录中的所有细节,澄清任何含糊不清之处,并确保每个部分都与原始内容保持一致。我还会根据需要使用多种互动方式来管理 Token 限制,以保持连续性。首先,让我们根据字幕文本中提供的部分创建初步大纲。可以开始了吗?
6/ 我让它继续,然后它就列了一个提纲,内容如下:
markdown复制代码1. 引言(字数:400)
- 介绍关于语言模型和 GPT-4 的演讲。
- 提及 OpenAI 的使命和演讲的目标。
2. 语言模型和 GPT-4 (字数:800)
- 解释什么是语言模型及其功能。
- 介绍 GPT-4(Generative Pre-trained Transformer 3)。
- 提及 GPT-4 的大规模训练和数据源。
- 讨论 GPT-4 的架构和基于提示词的生成。
3. 写作 Atlas 项目(字数:750)
- 介绍写作 Atlas 项目及其目的。
- 解释语言模型中 "知识分界线 "的概念。
- 使用 GPT-4 生成短篇故事和写作提示。
4. 构建人工智能生成的实用应用程序(字数:1300)
- 讨论构建人工智能生成的实用应用程序。
- 解释创建实用应用程序的过程。
- 提及 "提示词工程"的概念,以指导 GPT-4。
- 介绍 "模板循环"以提高输出质量。
5. 处理幻觉和提高准确性(字数:1200)
- 解释 GPT-4 中的幻觉问题。
- 讨论减少幻觉和提高准确性的策略。
- 提及使用示例和微调来减少问题。
- 解释如何使用提示引导 GPT-4 的回答。
6. 应用和商业价值(字数:1100)
- 解释 GPT-4 在不同领域的应用。
- 讨论 GPT-4 在初创企业和公司中的价值。
- 介绍使用 GPT-4 的不同模式,包括私人版本。
7. 隐私和知识产权考虑(字数:900)
- 解释与提示相关的隐私影响。
- 讨论不同的部署选项: SAS、私有 VPC 和开源。
- 提及 OpenAI 有关提示词的隐私政策更新。
8. GPT-4 在未来计算中的作用(字数:900)
- 解释 GPT-4 在未来计算中的作用。
- 讨论 GPT-4 作为 "第二处理器 "的概念。
- 介绍将 GPT-4 集成到各种应用程序中的想法。
9. 结论(字数:400)
- 回顾整个演示过程中讨论的要点。
- 提及语言模型的潜在影响和发展轨迹。
预计总字数 9,750
7/ 接着,我就按照它给的提纲让 ChatGPT 依次按照它自己分配的字数一个部分一个部分地完成了整篇笔记。虽然最终并没有达到 9,750 个单词。但是已经是非常详细的一篇笔记。
小结
乍看 ChatGPT 的 Token 限制或许会让那些想要处理大量内容的用户感到不便。然而,正如我们所讨论的,有多种策略和工具可以有效地应对这一局限。
无论是通过智能文本分割技术,还是专门设计的提示词,甚至使用浏览器插件,都能让你更好地发挥 ChatGPT 在自然语言处理方面的强大能力。
通过理解和适应这些限制,你将能够充分发掘这个先进的语言模型所能带来的各种优势。
分享完毕,感谢阅读🤗 欢迎点赞,收藏,评论
更多免费原创教程,🚀关注公众号:我的AI力量