在当今数字化时代,大语言模型(LLMs)正以前所未有的速度融入人们的生活和工作,从智能写作辅助到精准的语言翻译,从高效的问题解答到复杂的代码生成,LLMs 展现出了令人惊叹的能力。而在与 LLMs 交互的过程中,提示词工程逐渐崭露头角,成为发挥 LLMs 最大效能的关键所在。
一、提示词工程的诞生与定义
提示词工程的概念并非新生事物,它广泛存在于诸多领域。在艺术领域,提示词可以激发作家创作灵感,或是帮助演讲者即兴发挥;科学实验中,它是开启实验的起始指令;刑事调查里,作为初始线索引导调查方向;计算机编程时,依据特定情境迈出第一步也离不开提示词。这些提示词都是为了引出各自期望的回应。
当与大语言模型交互时,情况也并无不同。为了让 LLMs 生成理想的回答,人们需要精心设计最佳提示词,这便催生了提示词工程这一新兴领域。提示词工程并非严格意义上基于数学和科学基础的工程学科或精确科学,而是一种实践方法,它依据一系列准则,精心构建精确、简洁且富有创意的文本,以此指示 LLMs 执行特定任务,也可以说它是 “与生成式大语言模型沟通的艺术”。
二、提示词工程的原则与技巧
(一)Bsharat 等人的 26 条原则
Bsharat 等人系统梳理出 26 条有序的提示词原则,并将其进一步归纳为五大类别。
- 提示结构与清晰度:在提示词中融入目标受众相关信息,这有助于 LLMs 更好地理解内容需求,使生成的回答更具针对性。例如,若希望生成面向小学生的科普文章,在提示词中明确指出 “面向小学生”,模型就会采用更通俗易懂的语言和更生动有趣的表述方式。
- 特异性与信息:采用示例驱动的提示方式,也就是少样本提示。通过提供少量具体示例,让模型更快掌握任务要求和期望输出的格式、风格等。比如在进行文本分类任务时,给出几个已分类的文本示例,模型就能更准确地对新文本进行分类。
- 用户交互与参与度:允许模型询问精确的细节和要求,直到获取足够信息来提供所需的回应。这一原则增强了模型与用户之间的互动性,避免模型在信息不充分的情况下生成不准确或不完整的回答。
- 内容与语言风格:明确指示模型生成回应的语气和风格。无论是正式严谨的学术风格,还是轻松幽默的日常对话风格,模型都能根据设定进行调整。
- 复杂任务与编码提示:把复杂任务拆解成一系列更简单的步骤,以提示词的形式逐步引导模型完成。在处理长篇文章的多轮润色任务时,可以先让模型进行语法检查,再进行词汇优化,最后调整文章结构。
(二)Elvis Saravia 的提示词元素
Elvis Saravia 的提示词工程指南指出,一个完整的提示词可以包含多个关键元素。
- 指令:清晰描述希望模型执行的特定任务,如 “撰写一篇关于人工智能发展趋势的文章”。
- 上下文:提供额外信息或背景,辅助模型生成更贴合实际需求的回应。在询问历史事件相关问题时,给出事件发生的大致时间范围和地点,帮助模型缩小信息检索范围。
- 输入数据:作为模型需要回应的输入或问题,直接影响模型的输出内容。
- 输出和风格格式:明确输出的类型或格式,如要求以 JSON 格式输出数据,或是限定回答的行数、段落数等。同时,提示词还与角色相关联,系统提示词可以让模型扮演助手、教师等不同角色,不同角色决定了模型的交互行为和回答方式。
(三)OpenAI 的建议
OpenAI 在提示词工程指南中给出了具有权威性的建议。
- 编写清晰的指令:确保模型能够准确理解任务意图,避免模糊不清的表述。不要使用含义模糊的词汇,明确阐述任务的具体要求和期望结果。
- 提供参考文本:为模型提供相关的参考资料,帮助它更好地把握任务内容和风格。在进行文案创作时,可以提供一些优秀的文案范例,让模型学习借鉴。
- 分解复杂任务:将复杂的任务拆解为简单的子任务,依次引导模型完成,降低任务难度,提高回答的准确性和质量。
- 给予模型思考时间:有些复杂任务需要模型进行深入的分析和推理,适当增加等待时间,让模型有足够的时间处理信息,生成更优质的回答。
(四)Sahoo 等人的技术分类
Sahoo、Singh 和 Saha 等人对提示词工程技术进行了系统的调研,将提示词技术从零基础提示到最新的技术进展进行了详细分类,为研究和应用提示词工程提供了全面的技术框架。
三、CO – STAR 提示词框架
CO – STAR 提示词框架在众多指南和原则的基础上进行了简化和提炼,成为一种极具实用性的方法。Sheila Teo 在其赢得新加坡 GPT – 4 提示词工程竞赛的博客中,详细介绍了如何运用 CO – STAR 框架从 LLMs 中获取最佳结果。
CO – STAR 框架包含六个关键要素:
- C:上下文(Context):提供任务相关的背景和信息,让模型对任务所处的情境有清晰的认识。在询问关于某部电影的评价时,介绍电影的基本剧情、导演风格和主要演员等信息,有助于模型给出更全面、深入的评价。
- O:目标(Objective):明确希望 LLMs 执行的任务,使模型清楚知道需要达成的目标。比如 “分析这部电影在剧情设置上的优缺点”,让模型聚焦于特定的分析方向。
- S:风格(Style):指定希望模型采用的写作风格,无论是严谨的学术分析风格,还是通俗易懂的影评风格,模型都能按照要求进行创作。
- T:语气(Tone):设定回应的态度和语气,如客观中立、积极赞赏或批判性评价等,使模型的回答更符合用户期望。
- A:受众(Audience):确定回应的目标受众,模型会根据受众的特点和需求调整回答的内容和语言。如果受众是电影专业人士,模型可能会使用更专业的术语和深入的分析;如果是普通观众,则采用更通俗易懂的表述。
- R:回应(Response):规定回应的格式和风格,例如以列表形式呈现优点和缺点,或是以段落形式进行详细阐述。
通过一个简单的示例便能直观感受到 CO – STAR 框架的有效性。在一个演示笔记本中,使用 CO – STAR 提示词后,LLMs 生成了简洁且符合要求的回应。除了基础任务,在自然语言处理任务等领域,CO – STAR 框架也能发挥重要作用,相关的 Colab 笔记本中提供了大量丰富的示例供人们学习和参考。
四、提示词类型与任务
提示词的类型与 LLMs 执行的任务紧密相连,不同的任务需要不同类型的提示词,也决定了提示词的构建方式。Saravia 对各种与任务相关的提示词进行了深入分析,并给出了构建有效提示词以完成任务的建议。常见的任务类型包括:
- 文本摘要:旨在让模型提炼出文本的关键信息,生成简洁的摘要。构建提示词时,需要明确指出提取的重点内容,如主要观点、关键事件等。对于一篇新闻报道,提示词可以是 “提取这篇新闻的核心事件、涉及的主要人物和重要结论”。
- 零样本和少样本学习:零样本学习要求模型在没有见过类似示例的情况下完成任务,少样本学习则依赖少量示例。在零样本学习的提示词中,需要提供足够的任务描述和通用知识引导;少样本学习则要精心挑选具有代表性的示例,并在提示词中说明示例与任务的关联。
- 信息提取:从文本中提取特定的信息,如人物、时间、地点、事件等。提示词应明确指定需要提取的信息类型和文本范围,例如 “从这篇文档中提取所有提到的公司名称和成立时间”。
- 问答:模型需要根据问题提供准确的答案。构建提示词时,要确保问题表述清晰、明确,避免产生歧义。如果问题比较复杂,可以适当提供一些背景信息辅助模型理解。
- 文本和图像分类:对给定的文本或图像进行分类。对于文本分类,提示词可以包含类别定义和分类依据;对于图像分类,可能需要描述图像的关键特征和分类标准。
- 对话:实现与模型的自然流畅对话。提示词要设定对话的场景、角色和对话目的,引导模型生成符合对话情境的回应。在模拟客服对话时,提示词可以设定 “你是客服人员,负责解答用户关于产品售后的问题”。
- 推理:要求模型根据给定的信息进行逻辑推理,得出结论。提示词应提供完整的推理前提和条件,例如 “已知 A 大于 B,B 大于 C,根据这些信息推理 A 和 C 的大小关系,并说明推理过程”。
- 代码生成:让模型生成特定功能的代码。提示词要详细描述代码的功能需求、使用的编程语言和相关的技术框架等,如 “用 Python 语言编写一个函数,实现对列表中所有元素求和的功能”。
相关的 Colab 笔记本中提供了丰富的示例,这些示例基于 OpenAI APIs 在 GPT – 4 – turbo、Llama 2 系列模型、Mixtral 系列、Code Llama 70B 等模型上进行了测试,为人们了解如何构建有效提示词和获得准确回应提供了宝贵的参考。
五、提示词工程的应用与未来展望
提示词工程在众多领域都有着广泛的应用前景。在教育领域,教师可以利用提示词工程引导 LLMs 生成个性化的教学材料,如针对不同学生水平的练习题、讲解案例等;学生也可以借助提示词更好地理解知识、完成作业和进行研究。在商业领域,营销人员可以通过精心设计的提示词,让 LLMs 创作吸引人的广告文案、产品描述;客服人员利用提示词优化与客户的对话,提高服务质量和效率。在科研领域,研究人员可以运用提示词工程辅助文献综述、数据分析和模型构建等工作。
随着 LLMs 技术的不断发展,提示词工程也将迎来新的挑战和机遇。一方面,模型的能力不断提升,对提示词的要求也会更加多样化和精细化,需要人们不断探索新的提示词构建方法和技巧;另一方面,新的应用场景和任务将不断涌现,为提示词工程提供更广阔的发展空间。未来,提示词工程有望成为一门更加成熟的学科,为人们与 LLMs 的交互提供更强大、更高效的支持。
提示词工程作为与大语言模型沟通的关键桥梁,在当前的人工智能时代发挥着重要作用。通过深入理解提示词工程的原则、技巧、框架以及不同的提示词类型与任务的关系,人们能够更好地利用 LLMs 的能力,为各个领域的发展带来新的动力。