综合介绍
PromptWizard是微软开发的一个开源框架,采用自我进化机制,可以让模型自己生成、评价和改进提示词及生成示例,通过不断反馈来提高输出质量。它能够自主优化提示词、生成和选择合适的示例、并进行推理和验证、最终输出高质量的提示词,通过自动化流程减少了手动提示词工程的工作量。特点是其加入了任务意图和专家角色的概念,使用思维链方式优化推理,结合正面、负面和合成示例来改进其性能。能适应不同领域的任务需求、性能稳定,支持多种规模的多种LLM。
功能列表
- 反馈驱动的优化:通过生成、批评和改进提示和示例,持续提升任务性能。
- 多样化示例生成:生成具有鲁棒性和任务感知的合成示例,优化提示和示例。
- 自适应优化:通过自我进化机制,优化指令和上下文学习示例。
- 多任务支持:适用于多种任务和大语言模型,提升模型的准确性和效率。
- 成本效益高:显著减少计算成本,实现高效的提示工程。
使用帮助
安装流程
- 克隆仓库:
git clone https://github.com/microsoft/PromptWizard
cd PromptWizard
- 创建并激活虚拟环境:
- Windows:
bash
python -m venv venv
venv\Scripts\activate
- macOS/Linux:
bash
python -m venv venv
source venv/bin/activate
- Windows:
- 安装包:
pip install -e .
使用指南
PromptWizard提供了三种主要使用方式:
- 优化无示例的提示:
- 适用于需要优化提示但没有训练数据的场景。
- 生成合成示例并优化提示:
- 通过生成合成示例来优化提示,适用于需要示例支持的任务。
- 使用训练数据优化提示:
- 结合现有的训练数据进行提示优化,适用于有丰富数据支持的任务。
配置和环境变量设置
- 配置文件:
- 使用
promptopt_config.yaml
文件设置配置。例如,对于GSM8k任务,可以使用该文件进行配置。
- 使用
- 环境变量:
- 使用
.env
文件设置环境变量。例如,对于GSM8k任务,可以设置以下变量:plaintext
AZURE_OPENAI_ENDPOINT="XXXXX" # 替换为你的Azure OpenAI端点
OPENAI_API_VERSION="XXXX" # 替换为API版本
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME="XXXXX" # 创建模型部署并放置部署名称
- 使用
操作流程
- 选择使用场景:
- 根据任务需求选择合适的使用场景(无示例优化、合成示例优化、训练数据优化)。
- 配置环境:
- 设置API调用的配置和环境变量。
- 运行优化:
- 根据选择的场景运行PromptWizard进行提示优化。
示例
以下是一个简单的示例,展示如何使用PromptWizard优化提示:
from promptwizard import PromptWizard
# 初始化PromptWizard
pw = PromptWizard(config_file="promptopt_config.yaml")
# 选择场景并运行优化
pw.optimize_scenario_1()
通过以上步骤,用户可以轻松安装和使用PromptWizard进行提示优化,提升大语言模型的任务性能。