🚀 Prometheus 2
Prometheus 2は、基盤となる大規模言語モデル(LLM)の細粒度評価や、人間のフィードバックに基づく強化学習(RLHF)の報酬モデルを行う際に、GPT - 4評価の代替手段として使用できます。
🚀 クイックスタート
参考リンク
- ホームページ: 準備中
- リポジトリ:https://github.com/prometheus-eval/prometheus-eval
- 論文:https://arxiv.org/abs/2405.01535
- 問い合わせ先:seungone@cmu.edu
概要
Prometheus 2は、Mistral - Instructをベースモデルとする言語モデルです。
このモデルは、Feedback Collection内の10万件のフィードバックと、Preference Collection内の20万件のフィードバックを用いてファインチューニングされています。また、重みマージにより、絶対評価(直接評価)と相対評価(ペアワイズランキング)の両方をサポートするように構築されています。驚くべきことに、重みマージにより各形式でのパフォーマンスも向上することがわかりました。
✨ 主な機能
モデルの詳細
モデルの説明
Prometheusは2つの異なるサイズ(7Bと8x7B)で学習されています。8x7Bサイズの言語モデルは、このページで確認できます。また、データセットはこのページとこのページで確認できます。
プロンプト形式
私たちは、GitHubリポジトリでPrometheus 2を便利に使用するためのラッパー関数とクラスを作成しています。是非ご利用ください。
ただし、モデルをあなたのユースケースで使用したい場合は、以下のプロンプト形式を参照してください。絶対評価と相対評価には、異なるプロンプトテンプレートとシステムプロンプトが必要です。
絶対評価(直接評価)
Prometheusの入力には4つの要素が必要です。指示、評価するレスポンス、スコアルーブリック、および参照回答です。以下のプロンプト形式を参照してください。
指示、レスポンス、参照回答、基準の説明、および1から5までのスコアの説明を記入する必要があります。
###タスクの説明:
指示(入力を含む場合もあります)、評価するレスポンス、スコア5を得る参照回答、および評価基準を表すスコアルーブリックが与えられます。
1. 与えられたスコアルーブリックに基づいて、レスポンスの品質を厳密に評価する詳細なフィードバックを書きます。一般的な評価ではなく、ルーブリックに基づいて評価します。
2. フィードバックを書いた後、1から5までの整数のスコアを書きます。スコアルーブリックを参照してください。
3. 出力形式は、「Feedback: (基準に対するフィードバックを書く) [RESULT] (1から5までの整数)」のようになります。
4. 他のオープニング、クロージング、および説明を生成しないでください。
###評価する指示:
{orig_instruction}
###評価するレスポンス:
{orig_response}
###参照回答 (スコア5):
{orig_reference_answer}
###スコアルーブリック:
[{orig_criteria}]
Score 1: {orig_score1_description}
Score 2: {orig_score2_description}
Score 3: {orig_score3_description}
Score 4: {orig_score4_description}
Score 5: {orig_score5_description}
###フィードバック:
この後、Mistralの会話テンプレートを適用する必要があります(適用しないと、予期しない動作につながる可能性があります)。会話クラスは、このリンクで見つけることができます。
conv = get_conv_template("mistral")
conv.set_system_message("You are a fair judge assistant tasked with providing clear, objective feedback based on specific criteria, ensuring each assessment reflects the absolute standards set for performance.")
conv.append_message(conv.roles[0], dialogs['instruction'])
conv.append_message(conv.roles[1], None)
prompt = conv.get_prompt()
x = tokenizer(prompt,truncation=False)
結果として、フィードバックとスコアの決定が生成され、区切りフレーズ [RESULT]
で区切られます。
相対評価(ペアワイズランキング)
Prometheusの入力には4つの要素が必要です。指示、評価する2つのレスポンス、スコアルーブリック、および参照回答です。以下のプロンプト形式を参照してください。
指示、2つのレスポンス、参照回答、および基準の説明を記入する必要があります。
###タスクの説明:
指示(入力を含む場合もあります)、評価する2つのレスポンス(Response AおよびResponse Bと表記)、参照回答、および評価基準が与えられます。
1. 与えられた評価基準に基づいて、2つのレスポンスの品質を厳密に評価する詳細なフィードバックを書きます。一般的な評価ではなく、基準に基づいて評価します。
2. Response A、Response B、および参照回答の間の比較を行います。Response AとResponse Bを個別に調べるのではなく、要点を直截に述べ、それらの共通点と相違点について言及します。
3. フィードバックを書いた後、より良いレスポンスを示します。「A」または「B」のいずれかです。
4. 出力形式は、「Feedback: (基準に対するフィードバックを書く) [RESULT] (「A」または「B」のいずれか)」のようになります。
5. 他のオープニング、クロージング、および説明を生成しないでください。
###指示:
{orig_instruction}
###Response A:
{orig_response_A}
###Response B:
{orig_response_B}
###参照回答:
{orig_reference_answer}
###スコアルーブリック:
{orig_criteria}
###フィードバック:
この後、Mistralの会話テンプレートを適用する必要があります(適用しないと、予期しない動作につながる可能性があります)。会話クラスは、このリンクで見つけることができます。
conv = get_conv_template("mistral")
conv.set_system_message("You are a fair judge assistant assigned to deliver insightful feedback that compares individual performances, highlighting how each stands relative to others within the same cohort.")
conv.append_message(conv.roles[0], dialogs['instruction'])
conv.append_message(conv.roles[1], None)
prompt = conv.get_prompt()
x = tokenizer(prompt,truncation=False)
結果として、フィードバックとスコアの決定が生成され、区切りフレーズ [RESULT]
で区切られます。
ライセンス
Feedback Collection、Preference Collection、およびPrometheus 2は、生成されたデータについてOpenAIの利用規約の対象となります。違反の疑いがある場合は、お問い合わせください。
📄 ライセンス
引用
このモデルが役に立った場合は、論文を引用していただけると幸いです。
BibTeX:
@misc{kim2023prometheus,
title={Prometheus: Inducing Fine-grained Evaluation Capability in Language Models},
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={Prometheus 2: An Open Source Language Model Specialized in Evaluating Other Language Models},
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}
}