最近深度学习了解了一下Context Engineering(上下文工程),决定跟大家做下分享。我相信大家会跟我有一样的疑问:
- 什么是Context Engineering?它是怎么来的?
- 它跟Prompt Engineering有什么区别?
- 我们怎么来用Context Engineering?
看完这篇文章你将会得到答案。
目录
Context Engineering vs Prompt Engineering
Context Engineering的由来和定义
自从ChatGPT2022年11月出世,大模型能力从只是处理简单的单点回答问题到能够推理,能够生成视频,能够深度研究编写报告等做复杂任务。过去,ChatGPT等大模型,看到新问题就忘记了之前的内容,编写一个小说前后搭不上边,更别提编程完成一个应用了,难以完成复杂任务或者序列化任务。但现在,我们可以看到大模型的能力越来越强,如记忆功能,长文本RAG,AI辅助编码,推理等,让我们认识到大模型也可以帮我们完成复杂或者序列化的任务了。流水线功能感觉可以用大模型来做工作流替代了。
那么简单只是给指令,ChatGPT等大模型就能够完成复杂任务吗?
答案是:No。
那怎么解决呢?
答案是:我们需要给指令。而这个指令就是Context Engineering上下文工程。简单的Prompt Engineering已经无法胜任这个任务,我需要在大模型执行任务过程中,动态信息的输入,来让大模型按我们的要求正确完成任务。
因此,Context Engineering来了。什么是Context Enginnering?
Context engineering is building dynamic systems to provide the right information and tools in the right format such that the LLM can plausibly accomplish the task.
上下文工程就是构建一个动态系统,这个动态系统能够用正确的格式提供正确的信息和工具,让大模型能够完成整个任务。这个任务特指复杂的任务,尤其是现在AI Agent处理的任务,比如企业问答系统,电商客服,代码助手等。
简单来说,上下文工程关心:模型在给出回答之前可以看见什么,以及模型需要关注什么
AI大佬Andrej Karpathy甚至把Context Engineering比作精美的艺术和科学 delicate art and science of filling the context window。
一个好的Context Engineering通常包含:
-
工具使用(Tool use): 确保当智能体需要访问外部信息时,它拥有能够访问该信息的工具。当工具返回信息时,信息的格式应尽可能便于大语言模型(LLM)理解和处理。