标签:
- 文本到文本生成
数据集:
- prometheus-eval/反馈收集集
- prometheus-eval/偏好收集集
许可证: apache-2.0
语言:
- 英语
管道标签: 文本到文本生成
库名称: transformers
评估指标:
- 皮尔逊相关系数
- 斯皮尔曼相关系数
- 肯德尔tau系数
- 准确率
参考链接
- 主页: 建设中
- 代码库:https://github.com/prometheus-eval/prometheus-eval
- 论文:https://arxiv.org/abs/2405.01535
- 联系邮箱:seungone@cmu.edu
简介
Prometheus 2是在对底层大语言模型进行细粒度评估以及人类反馈强化学习(RLHF)的奖励模型时,作为GPT-4评估的替代方案。

Prometheus 2是以Mistral-Instruct为基座的语言模型。
该模型在反馈收集集的10万条反馈和偏好收集集的20万条反馈上进行微调。
通过权重融合技术,该模型同时支持绝对评分(直接评估)和相对评分(成对排序)。令人惊讶的是,我们发现权重融合还能提升每种评分格式下的性能表现。
模型详情
模型描述
Prometheus提供两种参数量级版本(7B和8x7B)。
7B版本可在此页面查看。
我们的数据集也已在此页面和此页面发布。
提示格式
我们在GitHub仓库提供了便捷的封装函数和类来使用Prometheus 2。
强烈推荐您使用这些工具!
如需直接调用模型,请参考以下提示格式。
注意绝对评分和相对评分需要不同的提示模板和系统提示。
绝对评分(直接评估)
Prometheus需要四个输入要素:指令、待评估回答、评分标准和参考答案。格式如下:
需填写指令、回答、参考答案、标准描述和1-5分的评分描述。
大括号内为需替换内容:
###任务描述:
给定一个指令(可能包含输入)、待评估回答、得分为5的参考答案,以及代表评估标准的评分细则。
1. 根据评分细则(而非一般标准)严格撰写详细的质量反馈
2. 反馈后给出1-5分的整数评分
3. 输出格式应为:"反馈:(撰写标准反馈) [结果] (1-5的整数)"
4. 请勿生成任何开头、结尾或其他解释性内容
###待评估指令:
{原始指令}
###待评估回答:
{原始回答}
###参考答案(5分):
{原始参考答案}
###评分细则:
[{原始标准}]
1分: {原始1分描述}
2分: {原始2分描述}
3分: {原始3分描述}
4分: {原始4分描述}
5分: {原始5分描述}
###反馈:
之后需应用Mistral的对话模板(否则可能导致异常)。
对话类参见此链接。
conv = get_conv_template("mistral")
conv.set_system_message("作为公正的评审助手,您需要基于特定标准提供清晰客观的反馈,确保每项评估都反映既定的绝对绩效标准。")
conv.append_message(conv.roles[0], dialogs['instruction'])
conv.append_message(conv.roles[1], None)
prompt = conv.get_prompt()
x = tokenizer(prompt,truncation=False)
输出将生成由[结果]
分隔的反馈和评分。
相对评分(成对排序)
Prometheus需要四个输入要素:指令、两个待评估回答、评分标准和参考答案。格式如下:
需填写指令、两个回答、参考答案和标准描述。
大括号内为需替换内容:
###任务描述:
给定一个指令(可能包含输入)、两个待评估回答(标记为回答A和B)、参考答案和评估标准。
1. 根据给定标准(而非一般标准)严格撰写两个回答的质量对比反馈
2. 直接比较回答A、B与参考答案的异同点
3. 反馈后标明更优回答"A"或"B"
4. 输出格式应为:"反馈:(撰写标准反馈) [结果] ("A"或"B")"
5. 请勿生成任何开头、结尾或其他解释性内容
###指令:
{原始指令}
###回答A:
{原始回答A}
###回答B:
{原始回答B}
###参考答案:
{原始参考答案}
###评分标准:
{原始标准}
###反馈:
之后需应用Mistral的对话模板(否则可能导致异常)。
对话类参见此链接。
conv = get_conv_template("mistral")
conv.set_system_message("作为公正的评审助手,您需要提供有见地的对比反馈,突出每个回答在同一标准下的相对表现。")
conv.append_message(conv.roles[0], dialogs['instruction'])
conv.append_message(conv.roles[1], None)
prompt = conv.get_prompt()
x = tokenizer(prompt,truncation=False)
输出将生成由[结果]
分隔的反馈和优选结果。
许可证
反馈收集集、偏好收集集和Prometheus 2遵循OpenAI生成数据的使用条款。如发现任何违规行为,请联系我们。
引用
如果觉得本模型有用,请考虑引用我们的论文!
BibTeX:
@misc{kim2023prometheus,
title={普罗米修斯:在语言模型中植入细粒度评估能力},
author={Seungone Kim and Jamin Shin and Yejin Cho and Joel Jang and Shayne Longpre and Hwaran Lee and Sangdoo Yun and Seongjin Shin and Sungdong Kim and James Thorne and Minjoon Seo},
year={2023},
eprint={2310.08491},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
@misc{kim2024prometheus,
title={普罗米修斯2:专注于评估其他语言模型的开源语言模型},
author={Seungone Kim and Juyoung Suk and Shayne Longpre and Bill Yuchen Lin and Jamin Shin and Sean Welleck and Graham Neubig and Moontae Lee and Kyungjae Lee and Minjoon Seo},
year={2024},
eprint={2405.01535},
archivePrefix={arXiv},
primaryClass={cs.CL}
}