git clone https://github.com/QuentinWach/image-ranker.git
cd image-ranker
python -m venv venv
source venv/bin/activate # On Windows, use `venvScriptsactivate`
pip install flask trueskill
python app.py
を実行します。http://localhost:5000
に移動します。 各イメージは 2 つの値で表されます。
新しい項目は、デフォルトの μ (多くの場合 25 ですが、ここでは 0) と高い σ (多くの場合 8.33) で始まります。 2 つの項目を比較する場合、それらの μ 値と σ 値を使用して期待される結果が計算されます。実際の結果はこの期待と比較されます。勝者のμは増加し、敗者のμは減少します。通常、両方の項目の σ が減少します (確実性の増加を表します)。変化の大きさは次の要素によって異なります。
ガウス分布を使用してスキル レベルをモデル化し、効率的な更新のためにファクター グラフとメッセージ パッシングを採用します。項目は通常、μ - 3σ (保守的な推定値) によってランク付けされます。
重要なのは、このアルゴリズムは、新しい画像のみを更新するのではなく、比較するたびに、以前にランク付けされたすべてのアイテムを同時に更新します。これは、アルゴリズムがペアごとの比較だけでなく、比較から得られるすべての情報を考慮できることを意味します。
したがって、全体として、このシステムは不完全な比較データでも効率的にランク付けできるため、完全なペアごとの比較が非現実的である大規模な項目セットに適しています。
ランク付けのために順次排除を有効にするオプションがあります
シャッフル ボタンをクリックすると、いつでも画像ペアを手動でシャッフルしたり、3 回の比較ごとに自動的にシャッフルしたりすることができます。これは、ランキングの不確実性をできるだけ早く最小限に抑えたい場合に便利です。ランク付けが数回しか行われておらず、不確実性 σ が高い画像が優先されます。こうすることで、すでに確信を持っている画像のランク付けに時間を費やす必要がなく、非常に類似したスコアを持つ画像のより正確なランク付けをより迅速に行うことができます。
Image Rankerは、誰もが特定のニーズに合わせてカスタマイズされた独自の基礎モデルを作成できるようにする全体的な取り組みの一部です。
トレーニング後の基礎モデルは、実際に役立つものになります。たとえば、大規模な言語モデルでは、ポストトレーニングなしではチャットさえできない場合があります。画像についても同様です。これを行うための一般的な手法は RLHF です。これは報酬モデルを使用して、ユーザーの好みに基づいて生成基盤モデルの出力に報酬を与えたり罰したりします。この報酬モデルを作成するには、データセット (ここでは画像) を必要とするユーザーの好みを知る必要があります。したがって、Stable Diffusion や Flux などの既存のモデルに根本的な変更を加える場合でも、独自のモデルをトレーニングする場合でも、どの画像がより優れているかを知るために、何らかの方法で画像をランク付けできることが重要です。ここでこのアプリが登場します。
ご質問がある場合は、GitHub で問題を開いてください。また、お気軽にこのプロジェクトをフォークしたり、新機能を提案したり貢献したりしてください。 OPEN_TODO.md
ファイルには、実装が予定されている機能のリストが含まれています。ご協力をよろしくお願いいたします。そうは言っても、プロジェクトをサポートする最も簡単な方法は、このリポジトリに !
ありがとう!