标签:
- 文本到文本生成
数据集:
- 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
简介
普罗米修斯2是在对底层大语言模型进行细粒度评估以及人类反馈强化学习(RLHF)的奖励模型时,作为GPT-4评估的替代方案。

普罗米修斯2是以Mistral-Instruct为基座的语言模型。
该模型在反馈收集集的10万条反馈数据和偏好收集集的20万条反馈数据上进行了微调。
通过权重合并技术,该模型同时支持绝对评分(直接评估)和相对评分(成对排序)。令人惊讶的是,我们发现权重合并还能提升每种评分格式下的性能表现。
模型详情
模型描述
- 模型类型: 语言模型
- 支持语言(NLP): 英语
- 许可证: Apache 2.0
- 相关模型: 所有普罗米修斯检查点
- 更多信息参考:
普罗米修斯提供两种规模版本(7B和8x7B)。
您可以在此页面查看80亿参数版本。
同时也可以在此页面和此页面查看我们的数据集。
提示格式
我们在GitHub仓库中提供了便捷的封装函数和类来使用普罗米修斯2。
强烈推荐您使用这些工具!
不过如果您只想针对特定场景使用模型,请参考以下提示格式。
请注意绝对评分和相对评分需要不同的提示模板和系统提示。
绝对评分(直接评估)
普罗米修斯需要输入包含4个要素:指令、待评估回答、评分标准和参考答案。格式如下:
需要填写指令、回答、参考答案、标准描述以及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)
输出将生成由分隔符[结果]
分隔的反馈和评分。
相对评分(成对排序)
普罗米修斯需要输入包含5个要素:指令、两个待评估回答、评分标准和参考答案。格式如下:
需要填写指令、两个回答、参考答案和标准描述。
用{文本}标记需替换部分:
###任务描述:
给定一个指令(可能包含输入内容)、两个待评估回答(标记为回答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)
输出将生成由分隔符[结果]
分隔的反馈和优选结果。
许可证
反馈收集集、偏好收集集和普罗米修斯2受限于OpenAI生成数据的使用条款。如发现任何违规行为,请联系我们。
引用
如果觉得本模型有帮助,请考虑引用我们的论文!
BibTeX:
@misc{kim2023prometheus,
title={普罗米修斯:在语言模型中植入细粒度评估能力},
author={金承元 and 申在民 and 赵艺珍 and 张杰尔 and 龙普雷 and 李和兰 and 尹相道 and 申成镇 and 金成东 and 詹姆斯·索恩 and 徐敏俊},
year={2023},
eprint={2310.08491},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
@misc{kim2024prometheus,
title={普罗米修斯2:专精评估其他语言模型的开源语言模型},
author={金承元 and 石周英 and 龙普雷 and 林柏宇 and 申在民 and 韦勒克 and 格雷厄姆·纽比格 and 李文泰 and 李庚载 and 徐敏俊},
year={2024},
eprint={2405.01535},
archivePrefix={arXiv},
primaryClass={cs.CL}
}