让 LLM 来评判、设计你自己的评估 prompt
随着大型语言模型(LLMs)的快速发展,如何有效地评估这些模型的输出质量成为了一个重要的研究课题。传统的评估方法往往依赖于人工标注,但这种方法成本高、耗时长,且难以规模化。因此,利用 LLM 自身来评估其输出质量成为一种可行的替代方案。本文将深入探讨如何设计高效的评估 prompt,以提升 LLM 评估的准确性和可靠性。
通用 prompt 设计建议
设计一个高效的评估 prompt 是确保 LLM 能够准确评估其输出的关键。以下是基于互联网上广泛使用的 prompt 设计原则的总结与扩展:
1. 任务描述清晰
清晰的任务描述是 prompt 设计的基石。LLM 需要明确知道它需要完成什么任务,以及它将获得哪些输入信息。以下是一些常见的任务描述模板:
明确任务目标: Your task is to do X (你的任务是 X)。例如:Your task is to evaluate the quality of the provided text based on its coherence and relevance.提供输入信息: You will be provided with Y (你拿到的信息是 Y)。例如:You will be provided with a text sample and a set of evaluation criteria.
2. 评估标准精细,评分细则详尽
为了确保评估的客观性和一致性,评估标准必须尽可能详细。评分细则应明确每个分值所代表的具体含义,避免模糊性。以下是一些设计评分标准的建议:
评分范围定义: You should evaluate property Z on a scale of 1 - 5, where 1 means ... (根据属性 Z 的表现进行评分,评分范围为 1 - 5,其中 1 分表示 ...)。例如:Evaluate the clarity of the text on a scale of 1 to 5, where 1 means "unclear and confusing" and 5 means "extremely clear and easy to understand."属性检测: You should evaluate if property Z is present in the sample Y. Property Z is present if ... (请指出样本 Y 中是否具备属性 Z,如果具备,那么 ...)。例如:Evaluate if the text contains a clear thesis statement. A thesis statement is present if the main argument is explicitly stated in the first paragraph.
3. 加入“推理”评估步骤
在评估过程中,要求 LLM 进行推理可以显著提高评估的准确性。通过分步骤的推理,模型能够更深入地理解任务并做出更合理的判断。以下是一个推理步骤的示例:
分步推理: To judge this task, you must first make sure to read sample Y carefully to identify ..., then ... (评估此任务之前,请先仔细阅读样本 Y,识别出 ...,然后再 ...)。例如:To evaluate the coherence of the text, first identify the main ideas in each paragraph, then assess how well these ideas are connected.
4. 输出格式明确
明确的输出格式可以提高评估结果的一致性和可读性。通过指定输出格式(如 JSON),可以确保 LLM 的输出易于解析和分析。以下是一个输出格式的示例:
JSON 格式输出: Your answer should be provided in JSON, with the following format {"Score": Your score, "Reasoning": The reasoning which led you to this score} (以 JSON 格式回答,格式为 {"Score": 评分, "Reasoning": 评分推理过程})。例如:Provide your evaluation in JSON format: {"Score": 4, "Reasoning": "The text is clear and well-structured, but the conclusion could be more concise."}
5. 参考现有模板
在设计 prompt 时,可以参考现有的评估模板,如 MixEval 和 MTBench 的 prompt 模板。这些模板经过大量实验验证,能够为设计高效的评估 prompt 提供灵感。
MixEval:MixEval Prompt 模板:https://github.com/huggingface/lighteval/blob/main/src/lighteval/tasks/extended/mix_eval/judge_prompts.py MTBench:MTBench Prompt 模板:https://github.com/huggingface/lighteval/blob/main/src/lighteval/tasks/extended/mt_bench/judge_prompt_templates.py
提升评估准确性的技术与方法
为了进一步提升 LLM 评估的准确性,可以采用以下技术或方法(尽管这些方法可能会增加一定的成本):
1. Few-shot 示例
提供少量的示例可以帮助 LLM 更好地理解任务要求和评估标准。Few-shot 示例能够为模型提供上下文,使其在评估时更加准确。然而,这种方法会增加上下文长度,从而可能增加计算成本。
2. 引用参考
在评估过程中,提供参考内容(如标准答案或参考文本)可以显著提高模型输出的准确性。通过对比参考内容,LLM 能够更好地判断输出质量。
3. 思维链 (Chain-of-Thought, CoT)
要求 LLM 在评分之前给出详细的推理过程,可以显著提高评估的准确性。思维链技术通过分步推理,帮助模型更深入地理解任务并做出更合理的判断。相关研究显示,CoT 能够有效提升复杂任务的评估效果。参考论文:https://arxiv.org/abs/2212.08073
4. 多轮分析
通过多轮分析,可以更好地检测输出中的事实性错误或逻辑漏洞。多轮分析要求 LLM 对同一任务进行多次评估,从而提高评估的鲁棒性。参考论文:https://arxiv.org/abs/2305.13281
5. 陪审团机制
使用多个模型进行独立评估,然后汇总结果,通常比单一模型的评估结果更加可靠。这种方法可以通过使用多个小模型替代一个大模型来降低成本,或者通过调整单一模型的温度参数来生成多样化的评估结果。参考论文:https://arxiv.org/abs/2404.18796
6. 奖励机制
社区研究发现,在 prompt 中引入奖励机制(如“回答正确将得到一只小猫”)可以提高 LLM 的回答正确性。这种方法的效果因场景而异,但可以作为一种有趣的尝试。
其他注意事项
减少模型偏见:在设计 prompt 时,可以参考社会学中的问卷设计方法,以减少模型输出中的偏见。例如,通过计算标注员一致性或使用多样化的评估指标来减少偏见。 快速评估 vs. 高质量评估:在实际应用中,大多数人并不需要完全可复现且高质量的评估。快速且略显粗糙的评估 prompt 通常能够满足需求,只要使用者清楚其局限性。
通过遵循上述设计原则和技术方法,您可以设计出高效的评估 prompt,从而利用 LLM 自身来评估其输出质量。这种方法不仅能够降低成本,还能够显著提高评估的效率和可扩展性。
🏴☠️宝藏级🏴☠️ 原创公众号『数据STUDIO』内容超级硬核。公众号以Python为核心语言,垂直于数据科学领域,包括可戳👉Python|MySQL|数据分析|数据可视化|机器学习与数据挖掘|爬虫 等,从入门到进阶!
长按👇关注- 数据STUDIO -设为星标,干货速递