Promptimizer 使用教程
promptimizer Prompt optimization scratch 项目地址: https://gitcode.com/gh_mirrors/pr/promptimizer
1. 项目介绍
Promptimizer 是一个实验性的提示优化库,旨在帮助用户系统地改进其 AI 系统。它通过自动化改进特定任务上的提示,接收初始提示、数据集和自定义评估器(以及可选的人类反馈),然后运行优化循环,以产生一个旨在超越原始提示的优化后的提示。
2. 项目快速启动
以下步骤将指导您如何快速启动并使用 Promptimizer。
首先,安装 CLI 工具:
pip install -U promptim
确保您在环境中拥有有效的 LangSmith API Key。对于快速启动任务,我们将使用 Anthropic 的 Claude 模型作为优化器和目标系统:
export LANGSMITH_API_KEY=CHANGEME
export ANTHROPIC_API_KEY=CHANGEME
接下来,创建一个任务来优化:
promptim create task ./my-tweet-task \
--name my-tweet-task \
--prompt langchain-ai/tweet-generator-example-with-nothing:starter \
--dataset https://smith.langchain.com/public/6ed521df-c0d8-42b7-a0db-48dd73a0c680/d \
--description "Write informative tweets on any subject." \
-y
此命令将生成一个包含以下内容的起始代码:
- 任务名称:为任务提供一个有用的名称(如“票务分类器”或“报告生成器”)。
- 提示:LangSmith 提示库中的标识符。
- 数据集:我们优化的数据集的名称(或公共 URL)。可选地,它可以有训练/开发/测试分割,以便在整个训练过程中报告不同的指标。
- 描述:关于此提示用途的高级描述。
完成模板创建后,您应该在 my-tweet-task
目录中看到两个文件:
my-tweet-task
├── config.json
└── task.py
我们可以暂时忽略 config.json
文件。在训练之前,我们需要创建一个评估器。
打开 my-tweet-task/task.py
文件中的评估器存根,并找到分配预测分数的行。我们将更新此评估器以对不包含哈希标签的推文给予高分:
def example_evaluator(run: Run, example: Example) -> dict:
"""一个示例评估器。数字越大表示越好。"""
predicted: AIMessage = run.outputs["output"]
result = str(predicted.content)
score = int("#" not in result)
return {
"key": "tweet_omits_hashtags",
"score": score,
"comment": "Pass: tweet omits hashtags" if score == 1 else "Fail: omit all hashtags from generated tweets",
}
现在我们准备开始训练!
promptim train --task ./my-tweet-task/config.json
您将在终端中看到进度。完成训练后,训练作业将打印出最终的“优化”提示以及指向库中提交的链接。
3. 应用案例和最佳实践
- 案例 1: 使用 Promptimizer 优化生成式对话系统的提示,以提高对话的自然性和相关性。
- 案例 2: 在机器翻译任务中,通过优化提示来减少翻译错误并提高翻译质量。
4. 典型生态项目
目前 Promptimizer 作为一个独立的开源项目,其生态项目还在不断发展中。以下是一些可能的生态项目方向:
- 集成工具: 开发与 Promptimizer 集成的其他自然语言处理工具,如文本分析、情感分析等。
- 插件系统: 构建一个插件系统,允许社区开发和使用自定义的评估器和优化策略。
promptimizer Prompt optimization scratch 项目地址: https://gitcode.com/gh_mirrors/pr/promptimizer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考