跳到正文
LangChain Blog·· 2 天前精选AI 评分71

LangChain 发布提示词优化开源库 Promptim

Promptim: an experimental library for prompt optimization

AI 导读

LangChain 推出实验性开源库 Promptim,用于通过自动化循环系统性改进特定任务的提示词。该工具结合数据集、本地评估器与元提示词生成优化方案,并深度集成 LangSmith 记录结果并支持人工反馈介入。与面向复合 AI 系统的 DSPy 相比,Promptim 现阶段专注于单提示词重写,用户可通过 `pip install promptim` 安装体验。

推荐理由

原文对比了与 DSPy 的不同定位,读者可据此了解其基于评估指标和元提示词自动重写单提示词的完整工作流。

正文 · AI 翻译

Promptim 是一个实验性的提示词优化库,旨在帮助开发者系统化地改进 AI 系统。

Promptim 能够自动优化特定任务下的提示词。你只需提供初始提示词、数据集和自定义评估器(也可加入人工反馈),promptim 就会执行优化循环,生成一个效果优于原版本的新提示词。

从评估驱动开发到提示词优化

提示词工程是 AI 工程师的核心职责之一,通常需要通过手动调整提示词来获得更理想的输出结果。

采用评估驱动开发是解决该问题的有效途径:先构建一个包含输入(以及可选的预期输出)的数据集,再定义一系列评估指标。每次修改提示词后,都在数据集上运行并为输出打分。这样一来,你就能衡量提示词的表现,确保效果在稳步提升,至少不会倒退。LangSmith 等工具可以协助完成数据集整理与评估工作。

提示词优化的核心思路,就是利用这些规范定义的数据集和评估指标来自动迭代提示词。系统可以自动提出修改建议,再通过既定评估方法给新提示词打分。DSPy 等工具很早就在这一方向上展开了探索。

为什么要做提示词优化?

推行提示词优化主要有以下几个考量:

节省时间:手动调试提示词往往耗时费力。自动化提示词优化能大幅提升调试效率,省下宝贵的工程时间。

提升严谨性:提示词工程有时更像一门玄学而非科学,而自动化优化能为这一过程注入严谨性(通常评估驱动开发本身也能起到这种作用)。

降低模型切换成本:不同模型适用的提示策略往往大相径庭。切换模型提供商绝非改个调用接口地址那么简单,通常还要重写提示词。提示词优化能加快这一切换过程,因为你的主要精力可以集中在开发与模型无关的评估体系上,而不是受制于特定模型的提示词编写。

Promptim 工作原理

我们很高兴推出在提示词优化领域的首次尝试——开源库 promptim。它与 LangSmith 深度集成,借助后者完成数据集管理、提示词管理、结果追踪以及可选的人工标注。

其核心算法流程如下:

  • 指定 LangSmith 数据集、LangSmith 中的提示词以及本地定义的评估器。也可以指定 train/dev/test 数据集划分。
  • 在 dev 数据集(或完整数据集)上运行初始提示词,获得基线基准分。
  • 随后遍历 train 数据集(或完整数据集)中的所有样本。对所有样本运行该提示词并评分,接着将包含输入、输出、预期输出和得分的结果传递给一个元提示词,由其针对当前提示词提出修改建议。
  • 接着使用更新后的新提示词,在 dev 划分集上重新计算评估指标。
  • 若指标有所提升,则保留更新后的提示词;若未见提升,则维持原提示词不变。
  • 上述过程会重复执行 N 次。

你还可以选择加入人工反馈环节。当缺乏可靠的自动化评估指标,或者希望借助指标无法覆盖的人工反馈来优化提示词时,这一步非常实用。该功能基于 LangSmith 的标注队列实现。

提示词优化的局限性

尽管我们对提示词优化充满期待,但并不认为它是万灵药。在优化过程中保留“人在回路”(human-in-the-loop)依然很有必要——哪怕只是对最终结果做一次合理性复核。这也是我们选择用 LangSmith 的 Prompt Hub 存储提示词的原因之一,方便你后续随时查阅复核。

Promptim 与 DSPy 的对比

DSPy 是提示词优化领域的领先工具。将我们的思路与他们做个对比很有价值。

首先,我们目前的初期工作仅聚焦于单条提示词的优化,而 DSPy 则侧重于优化整个“复合 AI 系统”。我们暂时选择专注于单条提示词,是因为觉得眼下这个问题更好把控。

其次,我们更强调保留人在回路,而 DSPy 则在更大程度上减少了人工干预。例如,我们将标注队列接入优化流程来引入人工反馈,将生成的提示词存入 LangSmith 方便事后审查,并在 LangSmith 中追踪评估结果。

第三,我们完全专注于提示词重写,并力求将其做到极致;DSPy 则提供了覆盖面更广的系统优化方案(包括微调、少样本提示等)。

💡

基于这些差异,我们认为 promptim 和 dspy 是面向不同场景、解决不同问题的两款工具。

未来规划

随着基础模型日益稳定,我们对提示词优化的前景愈发兴奋。我们接下来期待推进的方向包括:

  • 深入探索动态少样本提示
  • 将 promptim 整合进 LangSmith 控制台界面
  • 为 promptim 增加更多优化方法
  • 对整个 LangGraph 图结构进行整体优化,而不仅限于单条提示词(理想方式是与 DSPy 进行整合)

你现在就可以上手体验 Promptim:pip install promptim。欢迎观看这段 YouTube 演示视频了解具体操作,也欢迎在 GitHub 或 Twitter 上给我们留言反馈。

来源:LangChain Blog · langchain.com