一句话结论

长文本处理先按任务选策略:对话历史做摘要,文档用检索,代码按需重取;再用截断滑窗保留近期信息,必要时让长上下文模型处理真正需要全文的任务。

先这样答

长文本处理通常有四类策略:截断与滑动窗口、摘要压缩、RAG 化,以及分级模型。实际选哪一种,要看内容类型和任务是否需要完整上下文。

截断与滑动窗口适合优先保留最近内容。可以直接截掉较早文本,也可以让窗口随着对话继续向前移动。摘要压缩则把历史整理成卡片,保留后续任务需要的信息。做摘要时,目标约束不能压缩掉。

RAG 化适合长文档。系统先检索相关片段,再把片段交给模型,不把整篇文档一次塞入上下文。分级模型则把模型能力和任务需要匹配起来。长上下文模型只处理确实需要长上下文的任务。具体来说,对话历史优先做摘要,文档优先检索,代码按需重新获取相关部分。

面试官会怎么追问

  • 「这四种策略应该怎么选?」 对话历史通常做摘要,让历史变成可继续使用的卡片。长文档通常做检索,只取和当前问题有关的片段。代码则按需重取相关内容,不必持续保留全部代码。

  • 「为什么不直接使用长上下文模型?」 不是所有任务都需要完整长文本。只有确实需要长上下文的任务,才交给长上下文模型处理。其他任务可以先用截断、摘要或检索减少需要处理的内容。

  • 「摘要压缩时,怎么避免影响后续任务?」 摘要要围绕后续目标整理历史,而不是只做机械缩短。历史可以整理成卡片,但目标约束不能压缩。这样后续任务仍能获得完成目标所需的信息。

回答的坑

  • 不要把长文本处理只回答成截断,因为摘要、检索和分级模型也属于常用策略。
  • 不要脱离内容类型选方案,对话、文档和代码的处理方式并不相同。

这家公司的面经实录

—— 本题完 ——