Prompt 领域

7 分钟阅读

背景

提示工程可以在不更新模型权重的情况下引导 LLM 的行为。已经出现了各种用于不同用例的提示(例如,参见 @dair_ai提示工程指南 和 Lilian Weng 的 这篇精彩评论)。随着 LLM 的数量 和不同用例的扩展,越来越需要 提示管理 来支持提示的可发现性、共享、研讨和调试。一个多月前,我们推出了 LangChain Hub 以支持这些需求,它既是浏览社区提示的场所,也是管理您自己提示的场所。下面我们概述了自发布以来我们看到的提示中的主要主题,并重点介绍了一些有趣的示例。

LangChain Hub 中一些流行的提示类别

推理

思维链 推理鼓励 LLM 将其“思考”分散到许多 tokens 中:它使 LLM 通过一个简单的语句(例如,Let's think step by step)来展示其工作原理。这已获得广泛欢迎,因为它在很大程度上 提高了 许多推理任务的性能,并且易于实现。更复杂的方法(例如,思维树)也值得考虑,但应评估 相对于开销 (tokens) 的好处。

Deepmind 最近使用 LLM 来优化提示,并收敛到 Take a deep breath and work on this problem step-by-step 作为 最佳 性能优化。展望未来,这指向了在人类指令和 LLM 优化提示之间进行 翻译模块 的一些有趣的潜力。

来自各种提示指令的测试准确率(来自 此处

如上所示的推理提示 可以作为简单的指令附加到许多任务中,并且对于代理变得尤为重要。例如,ReAct 代理 以交错的方式将工具使用与推理相结合。代理提示可以以不同的方式编码多步骤推理,但通常目标是根据观察结果更新行动计划。请参阅 Lilian Weng 关于代理的 精彩文章,以全面了解代理设计和提示的各种方法。

示例

写作

鉴于 LLM 令人印象深刻 的创造力展示,改进写作的提示具有广泛的吸引力。@mattshumer_ 流行的 GPT4 提示提供了改进写作清晰度或自定义 LLM 生成文本风格的方法。利用 LLM 的语言翻译能力是写作的另一个良好应用。

示例

还有大量用于生成各种内容的提示(例如,入职电子邮件、博客文章、推文、教育 的学习材料)。

示例

SQL

由于企业数据通常捕获在 SQL 数据库中,因此人们对使用 LLM 作为 SQL 的自然语言界面非常感兴趣(请参阅我们的 博客文章)。许多论文 报道称,LLM 可以根据有关表的某些特定信息生成 SQL,包括每个表的 CREATE TABLE 描述,后跟 SELECT 语句中的三个示例行。LangChain 具有许多用于查询 SQL 数据库的工具(请参阅我们的 用例指南cookbook)。

示例

头脑风暴

许多人与 LLM 进行了有启发性和/或娱乐性的对话。LLM 已被证明在头脑风暴中非常有用:一个技巧是创建多个用户角色,让他们共同思考一个想法,如 @mattshumer_ 商业计划构思提示所示。该原则可以广泛应用。例如,BIDARA(生物启发设计和研究助手)是一个 GPT-4 聊天机器人,旨在帮助科学家和工程师理解、学习和模仿生物使用的策略,以用于新的设计和技术。

示例

提取

LLM 可以成为以特定格式提取文本的强大工具,通常借助 函数调用。这是一个丰富的领域,开发了框架来支持它,例如 @jxnlco 的 Instructor(请参阅他们的 提示工程指南)。我们还看到了专为特定提取任务设计的提示,例如知识图谱三元组提取(如 Instagraphtext-to-graph playground 等工具所示)。

来自 @yoheinakajima 的知识图谱三元组可视化

示例

RAG

检索增强生成 (RAG) 是一种流行的 LLM 应用:它通过提示将相关上下文传递给 LLM。RAG 在 事实 召回 方面特别有前景,因为它将 LLM 的推理能力与外部数据源的内容相结合,这对于企业数据而言 尤其强大

upload in progress, 0
RAG 概述

示例

指令调优的 LLM

开源 指令调优的 LLM 的格局在过去一年中呈爆炸式增长。随之而来的是各种流行的 LLM,每个 LLM 都有特定的提示指令(例如,请参阅 LLaMA2Mistral 的指令)。检索增强生成 (RAG) 等流行任务可以从特定于 LLM 的提示中受益。

按基础模型大小和指令数量组织的开源 LLM 格局

示例

LLM 评分器

使用 LLM 作为评分器是一个强大的想法,已在 OpenAI cookbook开源 项目 中得到广泛展示:核心思想是利用 LLM 的辨别能力来对响应相对于标准答案(或相对于参考材料(如检索到的上下文)的一致性)进行排名或评分。LangSmith 的许多工作都 侧重于 评估 支持

示例

合成数据生成

微调 LLM 是引导 LLM 行为的主要方法之一(与 RAG 一起)。然而,收集用于微调的训练数据是一个挑战。大量 工作 都集中在 使用 LLM 生成合成数据集。

示例

提示优化

Deepmind 的工作表明,LLM 可以优化提示,这为人类指令和 LLM 优化提示之间的 翻译模块 提供了广阔的潜力。我们已经看到了许多与这些思路相关的有趣提示;一个很好的例子是 Midjourney,它具有令人难以置信的创造潜力,可以通过提示和参数标志来解锁。对于一个通用的输入想法(Freddie Mercury performing at the 2023 San Francisco Pride Parade hyper realistic),它可以生成一系列 N 个提示来修饰这个想法,如下所示

Freddie Mercury 在旧金山骄傲游行舞台上激情四射,身穿闪闪发光的金色服装,手持标志性的麦克风支架,唤起卡拉瓦乔的超现实主义风格,生动而充满活力 --ar 16:9 --q 2)

来自上述提示的 Midjourney 生成

示例

代码理解和生成

代码分析是最流行的 LLM 用例之一,GitHub co-pilotCode Interpreter 以及微调的 LLM (Code LLaMA) 的普及就证明了这一点。我们已经看到了许多与此主题相关的提示

示例

摘要

内容摘要 是一种强大的 LLM 用例。更长上下文的 LLM,例如 Anthropic Claude2,可以吸收超过 70 页的内容以进行直接摘要。提示技术(如 密度链)提供了一种互补方法,可生成密集但更符合人类偏好的摘要。

示例

此外,摘要可以应用于各种内容类型,例如聊天对话(例如,压缩内容 以作为上下文传递到聊天 LLM 内存中)或特定领域的数据(财务表格摘要)

示例

结论

您可以使用“Try It”按钮轻松测试所有这些提示

这将打开一个 playground,用于使用各种不同的 LLM 进行提示的研讨和调试,其中许多 LLM 可以免费使用