第 29 页 / 共 100 页 / 飞书修订版 8

1.prompt engineering

此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)

邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org

==================================================

RkeHbtLoYohU7lxkzxTcFj3rnsd.bin
SBJEbKkpAoGqd7xiIKfcQKCMnwO.bin

Prompt工程是指对你编写的prompt进行改进,以获得更可靠、更高质量的输出。这个过程涉及迭代优化——从基础prompt开始,评估其性能,然后系统性地应用工程技术来改进它。

image1.png

迭代改进流程

这种方法遵循一个清晰的循环,你可以重复执行直到达到期望的结果:

image2.png
  1. 设定目标 - 明确你希望prompt完成什么任务
  2. 编写初始prompt - 创建一个基础的首次尝试
  3. 评估prompt - 根据你的标准对其进行测试
  4. 应用prompt工程技术 - 使用特定方法来提升性能
  5. 重新评估 - 验证你的修改是否真正改善了结果

你需要重复最后两个步骤,直到对性能感到满意。每次迭代都应该在评估分数上显示出可衡量的改进。

建立你的评估管道

为了演示这个过程,我们将通过一个实际示例来进行:创建一个为运动员生成一日膳食计划的提示词。该提示词需要考虑运动员的身高、体重、目标和饮食限制,然后生成一个全面的膳食计划。

image3.png

评估设置使用了一个 PromptEvaluator 类来处理数据集生成和模型评分。在创建评估器实例时,你可以通过 max_concurrent_tasks 参数控制并发数:

evaluator = PromptEvaluator(max_concurrent_tasks=5)

从较低的并发值开始(比如 3)以避免速率限制错误。如果你的 API 配额允许更快的处理速度,可以增加这个值。

生成测试数据

评估系统可以根据你的提示词要求自动生成测试用例。你需要定义提示词需要的输入:

dataset = evaluator.generate_dataset(

task_description="为单个运动员编写紧凑、简洁的1日膳食计划",

prompt_inputs_spec={

"height": "运动员身高(厘米)",

"weight": "运动员体重(公斤)",

"goal": "运动员的目标",

"restrictions": "运动员的饮食限制"

},

output_file="dataset.json",

num_cases=3

)

在开发过程中保持测试用例数量较少(2-3个),以加快迭代周期。您可以在最终验证时增加这个数量。

编写初始提示词

从一个简单、朴素的提示词开始,建立基准线。以下是一个故意简化的首次尝试示例:

def run_prompt(prompt_inputs):

prompt = f"""

这个人应该吃什么?

- Height: {prompt_inputs["height"]}

- Weight: {prompt_inputs["weight"]}

- Goal: {prompt_inputs["goal"]}

- Dietary restrictions: {prompt_inputs["restrictions"]}

"""

messages = []

add_user_message(messages, prompt)

return chat(messages)

这个基础提示词可能会产生较差的结果,但它为你提供了一个衡量改进效果的起始基准。

添加评估标准

在运行评估时,你可以指定评分模型应该考虑的额外标准:

results = evaluator.run_evaluation(

run_prompt_function=run_prompt,

dataset_file="dataset.json",

extra_criteria="""

输出应该包括:

- Daily caloric total

- Macronutrient breakdown

- Meals with exact foods, portions, and timing

"""

)

这有助于确保你的提示词针对你用例中重要的特定要求进行评估。

Analyzing Results

运行评估后,你将获得数值分数和详细的HTML报告。报告会准确显示每个测试用例的表现,包括模型对每个分数的推理过程。

image4.png

不要因为初始分数较低而气馁——首次尝试得到2.3分(满分10分)是很典型的。目标是在应用工程技术时看到持续的改进。

image5.png

详细的评估报告帮助你准确了解提示词在哪些方面存在问题以及需要哪些改进。利用这些反馈来指导你的下一次迭代。

Next Steps

建立基准后,你就可以开始应用具体的提示词工程技术了。你学到的每种技术都应该在评估分数上带来可衡量的改进,逐步将你的基础提示词转变为可靠、高性能的工具。

记住,提示词工程是一个迭代过程。关键是每次只做一个改变,评估影响,并在有效的基础上继续构建。这种系统性方法确保你了解哪些技术对你的特定用例最有价值。

==================================================



此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org