趋近智
一次性写出完美的提示词 (prompt)是很少见的。多数情况下,初次尝试的提示词生成的输出虽然接近,但总有些不足,可能缺少细节、信息编造、格式错误,或者未能严格遵守指令。迭代式提示词优化是一个系统性的流程,它通过分析这些不足,并对提示词进行有针对性的调整,来逐步提升大型语言模型(LLM)的输出质量和可靠性。这更像是一种有条不紊的实验,而非奇迹。
这个流程通常遵循一个循环:生成输出,根据要求进行评估,找出具体问题,提出一项旨在修正问题的提示词修改设想,修改提示词,然后再次测试。这个循环会重复进行,直到输出持续满足您应用的预期标准。
采用结构化的方法对高效优化很重要。同时修改提示词的太多方面,会让人难以弄清是哪个改动带来了性能的提升或下降。因此,应采纳一个侧重于逐步调整的循环:
这个系统性的循环将提示词工程从猜测转变为一种更具科学性的观察、设想验证和优化流程。
一个典型的提示词迭代优化循环。
在“修改提示词 (prompt)”这一步,可以运用几种方法:
#、列表* -)、XML标签(<example>、</example>)、JSON片段或不同的分隔符(###)来区分指令、上下文、输入数据和预期输出格式。temperature或top_p等生成参数(在第1章讨论过)会与您的提示词互相作用。如果一个优化的提示词生成的输出过于可预测或过于随机,尝试调整这些参数可以是一种补充的优化步骤。不过,在严重依赖参数调整之前,请先尝试稳定提示词内容。高效优化依赖于严谨性:
我们来看一个简单的例子。假设您需要一个大型语言模型从客户反馈邮件中提取具体信息,并将其格式化为JSON。
输入邮件: “你好客服,我的订单#12345收货时损坏了。屏幕裂了。我想让你们寄一个替换品到我的存档地址。我的账号邮箱是[email protected]。谢谢,Alex。”
初始提示词 (prompt)(尝试1):
Extract the order number, issue, desired resolution, and customer email from the following text. Format as JSON.
Text:
"{email_text}"
输出(尝试1):
{
"order": "12345",
"problem": "arrived damaged, screen cracked",
"resolution": "replacement",
"customer": "[email protected]"
}
分析(尝试1): 它运行得相当好,但键名(“order”、“problem”、“resolution”、“customer”)过于通用。我们希望使用更具体的键名。
设想: 在提示词中明确定义带有目标键名的所需JSON结构,将能更好地指导模型。
修改后的提示词(尝试2):
Extract the following information from the customer email and format it as a JSON object with the keys "orderId", "reportedIssue", "requestedAction", and "customerEmail".
Desired JSON format:
{
"orderId": "...",
"reportedIssue": "...",
"requestedAction": "...",
"customerEmail": "..."
}
Email Text:
"{email_text}"
输出(尝试2):
{
"orderId": "12345",
"reportedIssue": "arrived damaged. The screen is cracked.",
"requestedAction": "replacement sent",
"customerEmail": "[email protected]"
}
分析(尝试2): 效果好很多。键名符合要求。reportedIssue更完整,requestedAction也稍微更具描述性。对于需要特定字段名称的下游处理来说,这个版本更可靠。
“这个简单的例子表明,识别一个具体不足(通用键名)如何引出一个设想(明确的结构定义)以及一个有针对性的修改,从而带来可衡量的输出改进。优化通常涉及更多循环并处理更复杂的问题,但其基本原理保持不变:分析、设想、修改、测试,然后重复。”
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•