Is It Time To Treat Prompts As Code? A Multi-Use Case Study For Prompt Optimization Using DSPy

📄 arXiv: 2507.03620v1 📥 PDF

作者: Francisca Lemos, Victor Alves, Filipa Ferraz

分类: cs.SE, cs.AI, cs.CL, cs.LG

发布日期: 2025-07-04

备注: 20 pages with 1 figure


💡 一句话要点

利用DSPy框架优化Prompt,提升LLM在多场景下的性能表现

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 提示词工程 大型语言模型 自动化优化 DSPy框架 指令调优

📋 核心要点

  1. 当前Prompt工程依赖人工试错,效率低下,缺乏系统性方法。
  2. 论文提出使用DSPy框架,通过编程方式自动创建和优化Prompt。
  3. 实验表明,DSPy在特定任务上能显著提升LLM性能,例如提示词评估任务。

📝 摘要(中文)

本研究探讨了声明式自提升Python(DSPy)框架在提示词优化中的应用。DSPy通过编程方式创建和改进提示词,并应用于五个用例:安全护栏执行、代码中的幻觉检测、代码生成、路由代理和提示词评估。研究评估了通过DSPy进行提示词优化对性能的影响。结果表明,在安全护栏和幻觉检测用例中性能提升有限,但在提示词评估任务中,准确率从46.2%显著提高到64.0%。在路由代理用例中,研究探索了优化性能不佳的提示词的可能性,以及使用优化后的提示词能否使较小模型匹配较强模型的性能。虽然提示词优化将准确率从85.0%提高到90.0%,但将优化后的提示词用于更便宜的模型并未提高性能。总体而言,该研究表明,DSPy的系统性提示词优化可以增强LLM的性能,尤其是在指令调优和示例选择共同优化时。然而,影响因任务而异,突出了在提示词优化研究中评估特定用例的重要性。

🔬 方法详解

问题定义:当前,大型语言模型(LLM)的性能很大程度上依赖于提示词的设计。然而,设计有效的提示词通常是一个耗时且依赖人工直觉的试错过程。缺乏一种系统化的方法来自动优化提示词,使得LLM的潜力难以充分发挥。现有方法难以兼顾效率和效果,并且缺乏对不同任务的适应性。

核心思路:论文的核心思路是利用DSPy框架,将提示词工程视为一个软件开发问题,通过声明式的方式定义任务目标,并利用DSPy的优化器自动搜索最佳提示词。这种方法旨在减少人工干预,提高提示词优化的效率和效果。

技术框架:DSPy框架的核心在于其声明式的编程模型和自动优化能力。用户首先使用DSPy的模块定义任务,包括输入和输出的格式、约束条件等。然后,DSPy的优化器会自动搜索最佳的提示词、示例和参数,以满足任务目标。这个过程通常涉及多个迭代步骤,每次迭代都会根据性能反馈调整提示词。

关键创新:该论文的关键创新在于将提示词工程视为一个可以编程优化的过程。与传统的手工调整提示词相比,DSPy提供了一种系统化的、自动化的方法。这种方法可以显著提高提示词优化的效率和效果,并且可以更容易地适应不同的任务和数据集。

关键设计:DSPy的关键设计包括:1) 声明式的编程模型,允许用户以简洁的方式定义任务;2) 自动优化器,可以根据性能反馈自动调整提示词;3) 模块化的架构,允许用户轻松地组合不同的模块来构建复杂的任务。具体的参数设置和损失函数取决于具体的任务,但DSPy提供了一系列的内置模块和优化器,可以满足大多数需求。

🖼️ 关键图片

fig_0

📊 实验亮点

实验结果表明,DSPy在提示词评估任务中取得了显著的性能提升,准确率从46.2%提高到64.0%。在路由代理任务中,通过优化提示词,准确率从85.0%提高到90.0%。这些结果表明,DSPy的系统性提示词优化方法可以有效提升LLM的性能,尤其是在指令调优和示例选择共同优化时。

🎯 应用场景

该研究成果可广泛应用于各种需要利用LLM的任务中,例如智能客服、内容生成、代码生成、信息检索等。通过自动优化提示词,可以提高LLM在这些任务中的性能,降低人工成本,并提升用户体验。此外,该研究也为LLM的自动化开发和部署提供了新的思路。

📄 摘要(原文)

Although prompt engineering is central to unlocking the full potential of Large Language Models (LLMs), crafting effective prompts remains a time-consuming trial-and-error process that relies on human intuition. This study investigates Declarative Self-improving Python (DSPy), an optimization framework that programmatically creates and refines prompts, applied to five use cases: guardrail enforcement, hallucination detection in code, code generation, routing agents, and prompt evaluation. Each use case explores how prompt optimization via DSPy influences performance. While some cases demonstrated modest improvements - such as minor gains in the guardrails use case and selective enhancements in hallucination detection - others showed notable benefits. The prompt evaluation criterion task demonstrated a substantial performance increase, rising accuracy from 46.2% to 64.0%. In the router agent case, the possibility of improving a poorly performing prompt and of a smaller model matching a stronger one through optimized prompting was explored. Although prompt refinement increased accuracy from 85.0% to 90.0%, using the optimized prompt with a cheaper model did not improve performance. Overall, this study's findings suggest that DSPy's systematic prompt optimization can enhance LLM performance, particularly when instruction tuning and example selection are optimized together. However, the impact varies by task, highlighting the importance of evaluating specific use cases in prompt optimization research.