上下文窗口在欺骗你:如何真正使用128K个令牌

发布日期:2026-03-28 10:06:02   浏览量 :5
发布日期:2026-03-28 10:06:02  
5

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

如今每个模型都在吹嘘上下文窗口。12.8万词元。20万词元。营销文案大喊:“把你的整个代码库粘贴进来!”

我试过。我把一个 Node.js 项目的 8 万词元内容粘贴到 Claude 中,让它找一个 bug。它确实找到了一个 bug——但出现在一个我根本不在意的文件里,却完全忽略了我在问题中提到的那个文件里的真正问题。

以下是我用惨痛教训学到的关于上下文窗口的真相。

注意力问题

大的上下文窗口并不意味着模型会对所有内容给予同等关注。关于“迷失在中间”的研究表明,大语言模型会不成比例地聚焦于上下文的开头结尾,而对中间部分的关注明显减弱。

在实践中,这意味着:

  • 50 个文件中的第 1 个:高度关注 ✓
  • 第 2 到第 49 个文件:关注度逐渐下降 ✗
  • 第 50 个文件:高度关注 ✓
  • 你在最后提出的具体问题:高度关注 ✓

因此,如果你的 bug 出现在第 27 个文件里,模型实际上会给予更少的关注——尽管它“在上下文中”。

成本问题

在 GPT-4o 上输入 12.8 万词元大约花费 0.32 美元。听起来很便宜,直到你开始反复迭代。如果你带着相同的上下文连续问 10 个后续问题,单次调试就会花掉 3.20 美元。如果每天这样做,你每月会在大部分根本不需要的上下文上烧掉 60 多美元。

噪声问题

更多上下文意味着模型更容易被干扰。当你粘贴整个代码库并问“认证机制是怎么工作的?”,模型会在你的中间件、测试文件、旧的迁移脚本、README 文档以及 CI 配置中都找到与认证相关的代码。它会把这些内容综合成一个技术上准确但实际毫无用处的回答,因为它混杂了当前代码和已被弃用的模式。

真正有效的方法:上下文预算

我现在把上下文当作一种预算来管理。每个项目都有一个上下文预算——即完成当前任务所需的最少文件集合,不多不少。

规则一:修复 bug 最多只用三个文件

对于任何 bug 修复,我最多只包含三个文件:

  1. 包含 bug 的文件
  2. 调用该文件的文件
  3. 测试文件(如果存在)

这通常只需要 1000 到 3000 词元。速度快、成本低,而且模型能将全部注意力集中在相关代码上。

规则二:先给目录结构,再给文件内容

在粘贴任何代码之前,我会先提供项目的目录结构:

以下是项目目录结构(仅列出文件,不含内容):
src/
  auth/
    middleware.ts
    oauth.ts
    session.ts
  api/
    users.ts
    posts.ts
  db/
    schema.prisma
    migrations/

然后我会问:“为了完成[任务],你需要看哪些文件?” 模型会选出两到三个文件。我只粘贴这些文件。这种方法比一股脑全贴进去要高效得多。

规则三:大型代码库用摘要代替源码

对于架构类问题,我会写一段 200 字左右的摘要,而不是粘贴 50 个文件:

## 架构摘要
- 基于 Express 的 API,使用 Prisma ORM 和 PostgreSQL
- 认证方式:Google OAuth2,会话存储在 Redis 中
- 三大核心模块:用户、帖子、评论
- 每个模块均包含路由层、服务层和数据访问层
- 测试框架:单元测试用 Vitest,端到端测试用 Playwright
- 当前问题:会话过期时未触发令牌刷新

这样能让模型掌握“地图”而不陷入“领土”的细节。它从摘要中推理架构的速度,远快于……

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部