先这样答
长文本处理通常有四类策略:截断与滑动窗口、摘要压缩、RAG 化,以及分级模型。实际选哪一种,要看内容类型和任务是否需要完整上下文。
截断与滑动窗口适合优先保留最近内容。可以直接截掉较早文本,也可以让窗口随着对话继续向前移动。摘要压缩则把历史整理成卡片,保留后续任务需要的信息。做摘要时,目标约束不能压缩掉。
RAG 化适合长文档。系统先检索相关片段,再把片段交给模型,不把整篇文档一次塞入上下文。分级模型则把模型能力和任务需要匹配起来。长上下文模型只处理确实需要长上下文的任务。具体来说,对话历史优先做摘要,文档优先检索,代码按需重新获取相关部分。
面试官会怎么追问
-
「这四种策略应该怎么选?」 对话历史通常做摘要,让历史变成可继续使用的卡片。长文档通常做检索,只取和当前问题有关的片段。代码则按需重取相关内容,不必持续保留全部代码。
-
「为什么不直接使用长上下文模型?」 不是所有任务都需要完整长文本。只有确实需要长上下文的任务,才交给长上下文模型处理。其他任务可以先用截断、摘要或检索减少需要处理的内容。
-
「摘要压缩时,怎么避免影响后续任务?」 摘要要围绕后续目标整理历史,而不是只做机械缩短。历史可以整理成卡片,但目标约束不能压缩。这样后续任务仍能获得完成目标所需的信息。
回答的坑
- 不要把长文本处理只回答成截断,因为摘要、检索和分级模型也属于常用策略。
- 不要脱离内容类型选方案,对话、文档和代码的处理方式并不相同。
同系列的题
这家公司的面经实录
—— 本题完 ——