📦 AI 上下文工程(第二部分):Token、上下文窗口与记忆——为何更多的上下文并不总是更好
构建有效的人工智能应用不仅仅是制作好的提示词;提供正确的背景至关重要。这引出了一个问题:AI究竟能处理多少上下文,因为开发者经常会遇到AI助手忘记对话中之前分享的信息。这一现象源于上下文窗口的概念,这是现代人工智能系统的核心要素。在理解上下文窗口之前,必须先掌握词元的概念,这是AI模型处理文本的基本单位。代币并不等同于单词;它们是由分词器生成的较小文本片段,分词器作为人类语言与人工智能模型之间的翻译器。文本被划分为令牌的方式各不相同,即相同数量的字符或词可能会根据内容的复杂程度(如代码、JSON或URL)产生不同的令牌计数。开发者必须重视令牌,因为它们显著影响成本、延迟、响应质量和可扩展性。每个 AI 请求都会消耗代币,包括系统指令、用户提示、对话历史和检索到的数据。与AI交互时,应用通常会发送大量令牌,即使是简单的提示。每个新的AI请求通常都会从零开始,应用程序需要重新发送相关对话记录以保持连贯性。上下文窗口表示AI模型一次能考虑的单次响应中最多的token数。就像白板一样,上下文窗口内的信息是可访问的,但空间是有限的。现代AI应用在发送给模型前构建丰富的上下文,通常包括系统指令、对话历史、检索的知识和上传的文件,使用户的提示成为整体输入中的一小部分。更大的上下文窗口并不自动保证AI性能更好;通过包含相关信息和排除噪声来优化上下文更为重要。“迷失在中间”问题凸显了深藏在庞大背景中的信息可能较少受到关注。关键是,语境不是记忆;上下文是当前请求可用的信息,而内存则是应用程序有意存储并重新引入到未来对话中的数据。理解这些区别是构建和有效与人工智能互动的关键。