|
最近频繁接触到上下文工程这一新兴概念:它与我们熟知的提示词工程究竟存在怎样的关联?又能针对性解决哪些实际问题? 不妨跟着我一起深入探索~ 什么是上下文工程上下文工程构建的是一个动态系统,旨在为LLM提供正确格式的信息和工具,使其能合理地完成任务。 这个系统可从多个来源获取上下文,包括应用开发者、用户、之前的交互、工具调用或其他外部数据,并根据不同的任务和情境动态地构建最终的提示。
例如,当AI智能体需要根据邮件安排会议时,需要整合日历信息、过往邮件、联系人列表等多种信息,还会提供如发送邀请等可用工具,让模型基于这些丰富的上下文生成合理回复。
上下文工程 和 提示词工程 区别上下文工程和prompt工程有以下区别:
prompt工程主要关注于如何巧妙地措辞提示,以期从LLM中获得更好的答案,重点在于提示词的设计。而上下文工程更强调提供正确的信息和工具,关注的是如何从多个来源收集和整合上下文信息,以及确保这些信息和工具的格式适合LLM处理。
prompt工程是上下文工程的一个子集。上下文工程的范畴更广,它不仅包括提示的构建,还涉及到对系统级指令、用户当前输入、对话历史、长期记忆等多种上下文信息的管理和调度。
prompt工程核心是手动构思一小段精妙的指令。而上下文工程则是构建一个自动化系统,像设计一条“信息流水线”,该系统负责从数据库、文档等来源自动抓取、整合信息,并将其打包成完整的上下文,再喂给模型。
prompt工程适用于相对简单的任务,通过优化提示词就能让模型给出较好的回答,普通用户写好提示词就可满足一些基本需求。而上下文工程则主要针对复杂任务,当需要构建能够自主规划和行动的AI Agent时,就需要上下文工程来动态地识别信息缺口、自主调用工具、组织并填充上下文。
上下文工程的组成上下文工程主要由任务描述与解释、少样本示例、检索增强生成等部分组成,具体如下: - 任务描述与解释:清晰地界定任务目标,让模型明确需要完成的工作,类似于给模型下达具体的指令,告知其任务的性质、范围和要求等,有助于模型朝着正确的方向输出结果。
- 检索增强生成(RAG):从外部知识库动态注入相关信息,使模型能够获取更广泛、更准确的知识,从而更好地处理复杂问题。例如,当模型回答特定领域的问题时,RAG可以从专业文档、数据库中检索相关内容并提供给模型。
- 记忆(Memery): 包含短期记忆(history and state)或长期记忆(从对话中提取的事实信息),保证任务的进展的记录和对话的延续性。
- 工具(Tools):赋予模型调用外部API或函数的能力,如搜索工具、计算器、代码执行器等。模型可以根据任务需求,调用相应工具来获取特定信息或执行特定操作,增强其解决实际问题的能力。
- 少样本示例(Few - shot examples):为模型提供具体的范例参考,通过展示一些类似任务的成功案例或正确输出形式,让模型学习任务的执行方式和期望的输出格式,帮助模型更好地理解任务并生成符合要求的答案。
总结在与大模型交互的过程中,我们在做的事本质上就是在完善Prompt,给它提供更多的上下文。而上下文工程系统的讲解了我们补充上下文的手段,可以看作是构建大模型应用的最佳实践。 |