Spaces:
Sleeping
Sleeping
initial commit
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- README.md +35 -6
- app.py +65 -0
- arena_elo/LICENSE +21 -0
- arena_elo/README.md +46 -0
- arena_elo/battle_count_heatmap.png +0 -0
- arena_elo/cut_off_date.txt +1 -0
- arena_elo/elo_rating/__init__.py +0 -0
- arena_elo/elo_rating/__pycache__/__init__.cpython-310.pyc +0 -0
- arena_elo/elo_rating/__pycache__/basic_stats.cpython-310.pyc +0 -0
- arena_elo/elo_rating/__pycache__/clean_battle_data.cpython-310.pyc +0 -0
- arena_elo/elo_rating/__pycache__/elo_analysis.cpython-310.pyc +0 -0
- arena_elo/elo_rating/__pycache__/generate_leaderboard.cpython-310.pyc +0 -0
- arena_elo/elo_rating/__pycache__/inspect_cost.cpython-310.pyc +0 -0
- arena_elo/elo_rating/__pycache__/inspect_elo_rating_pkl.cpython-310.pyc +0 -0
- arena_elo/elo_rating/__pycache__/model_registry.cpython-310.pyc +0 -0
- arena_elo/elo_rating/__pycache__/utils.cpython-310.pyc +0 -0
- arena_elo/elo_rating/basic_stats.py +227 -0
- arena_elo/elo_rating/clean_battle_data.py +342 -0
- arena_elo/elo_rating/elo_analysis.py +395 -0
- arena_elo/elo_rating/filter_clean_battle_data.py +34 -0
- arena_elo/elo_rating/generate_leaderboard.py +88 -0
- arena_elo/elo_rating/inspect_conv_rating.py +234 -0
- arena_elo/elo_rating/inspect_cost.py +177 -0
- arena_elo/elo_rating/inspect_elo_rating_pkl.py +33 -0
- arena_elo/elo_rating/model_registry.py +578 -0
- arena_elo/elo_rating/upload_battle_data.py +193 -0
- arena_elo/elo_rating/utils.py +83 -0
- arena_elo/evaluator/convert_to_evaluator_data.py +134 -0
- arena_elo/evaluator/rating_analysis.ipynb +321 -0
- arena_elo/get_latest_data.sh +17 -0
- arena_elo/pyproject.toml +28 -0
- arena_elo/requirements.txt +28 -0
- arena_elo/results/20241224/clean_battle.json +210 -0
- arena_elo/results/20241224/elo_results.pkl +3 -0
- arena_elo/results/20241224/leaderboard.csv +3 -0
- arena_elo/results/20241226/clean_battle.json +482 -0
- arena_elo/results/20241226/elo_results.pkl +3 -0
- arena_elo/results/20241226/leaderboard.csv +9 -0
- arena_elo/results/latest/clean_battle.json +482 -0
- arena_elo/results/latest/elo_results.pkl +3 -0
- arena_elo/results/latest/leaderboard.csv +9 -0
- arena_elo/simple_test.py +16 -0
- arena_elo/update_elo_rating.sh +30 -0
- arena_elo/win_fraction_heatmap.png +0 -0
- logs/vote_log/2024-12-24-conv.json +26 -0
- logs/vote_log/2024-12-25-conv.json +7 -0
- logs/vote_log/2024-12-26-conv.json +27 -0
- logs/vote_log/2024-12-27-conv.json +4 -0
- logs/vote_log/gr_web_image_generation_multi.log +450 -0
- logs/vote_log/gr_web_image_generation_multi.log.2024-12-25 +797 -0
README.md
CHANGED
|
@@ -1,14 +1,43 @@
|
|
| 1 |
---
|
| 2 |
title: IDEA Bench Arena
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom:
|
| 5 |
-
colorTo:
|
| 6 |
sdk: gradio
|
| 7 |
sdk_version: 5.9.1
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
-
license: cc-by-
|
| 11 |
-
short_description: Official
|
| 12 |
---
|
| 13 |
|
| 14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
title: IDEA Bench Arena
|
| 3 |
+
emoji: 📉
|
| 4 |
+
colorFrom: blue
|
| 5 |
+
colorTo: green
|
| 6 |
sdk: gradio
|
| 7 |
sdk_version: 5.9.1
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
+
license: cc-by-4.0
|
| 11 |
+
short_description: Official arena of IDEA-Bench.
|
| 12 |
---
|
| 13 |
|
| 14 |
+
## Installation
|
| 15 |
+
|
| 16 |
+
- for cuda 11.8
|
| 17 |
+
```bash
|
| 18 |
+
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
|
| 19 |
+
pip3 install -U xformers --index-url https://download.pytorch.org/whl/cu118
|
| 20 |
+
pip install -r requirements.txt
|
| 21 |
+
```
|
| 22 |
+
- for cuda 12.1
|
| 23 |
+
```bash
|
| 24 |
+
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
|
| 25 |
+
pip install -r requirements.txt
|
| 26 |
+
```
|
| 27 |
+
|
| 28 |
+
## Start Hugging Face UI
|
| 29 |
+
```bash
|
| 30 |
+
python app.py
|
| 31 |
+
```
|
| 32 |
+
|
| 33 |
+
## Start Log server
|
| 34 |
+
```bash
|
| 35 |
+
uvicorn serve.log_server:app --reload --port 22005 --host 0.0.0.0
|
| 36 |
+
```
|
| 37 |
+
|
| 38 |
+
## Update leaderboard
|
| 39 |
+
```bash
|
| 40 |
+
cd arena_elo && bash update_leaderboard.sh
|
| 41 |
+
```
|
| 42 |
+
|
| 43 |
+
Paper: [https://arxiv.org/abs/2412.11767](https://arxiv.org/abs/2412.11767)
|
app.py
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import gradio as gr
|
| 2 |
+
import os
|
| 3 |
+
# os.system("pip install -r requirements.txt -U")
|
| 4 |
+
# os.system("pip uninstall -y apex")
|
| 5 |
+
# os.system("pip uninstall -y flash-attn")
|
| 6 |
+
# os.system("FLASH_ATTENTION_FORCE_BUILD=TRUE pip install flash-attn")
|
| 7 |
+
from serve.gradio_web import *
|
| 8 |
+
from serve.leaderboard import build_leaderboard_tab
|
| 9 |
+
from model.model_manager import ModelManager
|
| 10 |
+
from pathlib import Path
|
| 11 |
+
from serve.constants import SERVER_PORT, ROOT_PATH, ELO_RESULTS_DIR
|
| 12 |
+
|
| 13 |
+
def build_combine_demo(models, elo_results_file, leaderboard_table_file):
|
| 14 |
+
|
| 15 |
+
with gr.Blocks(
|
| 16 |
+
title="Play with Open Vision Models",
|
| 17 |
+
theme=gr.themes.Default(),
|
| 18 |
+
css=block_css,
|
| 19 |
+
) as demo:
|
| 20 |
+
with gr.Tabs() as tabs_combine:
|
| 21 |
+
with gr.Tab("Image Generation", id=0):
|
| 22 |
+
with gr.Tabs() as tabs_ig:
|
| 23 |
+
with gr.Tab("Generation Arena (battle)", id=0):
|
| 24 |
+
build_side_by_side_ui_anony(models)
|
| 25 |
+
|
| 26 |
+
with gr.Tab("Generation Arena (side-by-side)", id=1):
|
| 27 |
+
build_side_by_side_ui_named(models)
|
| 28 |
+
|
| 29 |
+
if elo_results_file:
|
| 30 |
+
with gr.Tab("Generation Leaderboard", id=2):
|
| 31 |
+
build_leaderboard_tab(elo_results_file['t2i_generation'], leaderboard_table_file['t2i_generation'])
|
| 32 |
+
|
| 33 |
+
with gr.Tab("About Us", id=3):
|
| 34 |
+
build_about()
|
| 35 |
+
|
| 36 |
+
return demo
|
| 37 |
+
|
| 38 |
+
|
| 39 |
+
def load_elo_results(elo_results_dir):
|
| 40 |
+
from collections import defaultdict
|
| 41 |
+
elo_results_file = defaultdict(lambda: None)
|
| 42 |
+
leaderboard_table_file = defaultdict(lambda: None)
|
| 43 |
+
if elo_results_dir is not None:
|
| 44 |
+
elo_results_dir = Path(elo_results_dir)
|
| 45 |
+
elo_results_file = {}
|
| 46 |
+
leaderboard_table_file = {}
|
| 47 |
+
for file in elo_results_dir.glob('elo_results*.pkl'):
|
| 48 |
+
elo_results_file['t2i_generation'] = file
|
| 49 |
+
for file in elo_results_dir.glob('*leaderboard.csv'):
|
| 50 |
+
leaderboard_table_file['t2i_generation'] = file
|
| 51 |
+
|
| 52 |
+
return elo_results_file, leaderboard_table_file
|
| 53 |
+
|
| 54 |
+
if __name__ == "__main__":
|
| 55 |
+
|
| 56 |
+
server_port = int(SERVER_PORT)
|
| 57 |
+
root_path = ROOT_PATH
|
| 58 |
+
elo_results_dir = ELO_RESULTS_DIR
|
| 59 |
+
|
| 60 |
+
models = ModelManager()
|
| 61 |
+
|
| 62 |
+
elo_results_file, leaderboard_table_file = load_elo_results(elo_results_dir)
|
| 63 |
+
demo = build_combine_demo(models, elo_results_file, leaderboard_table_file)
|
| 64 |
+
demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 65 |
+
demo.launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
arena_elo/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) 2024 WildVision-Bench
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE.
|
arena_elo/README.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
## Computing the Elo Ratings
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
```bash
|
| 5 |
+
apt-get -y install pkg-config
|
| 6 |
+
pip install -r requirements.txt
|
| 7 |
+
```
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
### to update the leaderboard
|
| 11 |
+
|
| 12 |
+
```bash
|
| 13 |
+
export LOGDIR="/path/to/your/logdir"
|
| 14 |
+
bash update_elo_rating.sh
|
| 15 |
+
```
|
| 16 |
+
|
| 17 |
+
### to inspect the leaderboard status
|
| 18 |
+
```bash
|
| 19 |
+
python -m elo_rating.inspect_elo_rating_pkl
|
| 20 |
+
```
|
| 21 |
+
|
| 22 |
+
### to inspect the collected data status and cost
|
| 23 |
+
```bash
|
| 24 |
+
export LOGDIR="/path/to/your/logdir"
|
| 25 |
+
python -m elo_rating.inspect_cost
|
| 26 |
+
```
|
| 27 |
+
|
| 28 |
+
### to upload the battle data to hugging face🤗
|
| 29 |
+
```bash
|
| 30 |
+
export HUGGINGFACE_TOKEN="your_huggingface_token"
|
| 31 |
+
bash get_latest_data.sh
|
| 32 |
+
python -m elo_rating.upload_battle_data --repo_id "WildVision/wildvision-bench" --log_dir "./vision-arena-logs/"
|
| 33 |
+
```
|
| 34 |
+
|
| 35 |
+
### to upload the chat data to hugging face🤗
|
| 36 |
+
```bash
|
| 37 |
+
export HUGGINGFACE_TOKEN="your_huggingface_token"
|
| 38 |
+
bash get_latest_data.sh
|
| 39 |
+
python -m elo_rating.upload_chat_data --repo_id "WildVision/wildvision-bench" --log_dir "./vision-arena-logs/"
|
| 40 |
+
```
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
### to get the collected data
|
| 44 |
+
```bash
|
| 45 |
+
python -m
|
| 46 |
+
|
arena_elo/battle_count_heatmap.png
ADDED
|
arena_elo/cut_off_date.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
20241226
|
arena_elo/elo_rating/__init__.py
ADDED
|
File without changes
|
arena_elo/elo_rating/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file (185 Bytes). View file
|
|
|
arena_elo/elo_rating/__pycache__/basic_stats.cpython-310.pyc
ADDED
|
Binary file (6.26 kB). View file
|
|
|
arena_elo/elo_rating/__pycache__/clean_battle_data.cpython-310.pyc
ADDED
|
Binary file (8.12 kB). View file
|
|
|
arena_elo/elo_rating/__pycache__/elo_analysis.cpython-310.pyc
ADDED
|
Binary file (9.89 kB). View file
|
|
|
arena_elo/elo_rating/__pycache__/generate_leaderboard.cpython-310.pyc
ADDED
|
Binary file (2.02 kB). View file
|
|
|
arena_elo/elo_rating/__pycache__/inspect_cost.cpython-310.pyc
ADDED
|
Binary file (4.96 kB). View file
|
|
|
arena_elo/elo_rating/__pycache__/inspect_elo_rating_pkl.cpython-310.pyc
ADDED
|
Binary file (1.08 kB). View file
|
|
|
arena_elo/elo_rating/__pycache__/model_registry.cpython-310.pyc
ADDED
|
Binary file (14.4 kB). View file
|
|
|
arena_elo/elo_rating/__pycache__/utils.cpython-310.pyc
ADDED
|
Binary file (2.29 kB). View file
|
|
|
arena_elo/elo_rating/basic_stats.py
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import argparse
|
| 2 |
+
import code
|
| 3 |
+
import datetime
|
| 4 |
+
import json
|
| 5 |
+
import os
|
| 6 |
+
from pytz import timezone
|
| 7 |
+
import time
|
| 8 |
+
|
| 9 |
+
import pandas as pd # pandas>=2.0.3
|
| 10 |
+
import plotly.express as px
|
| 11 |
+
import plotly.graph_objects as go
|
| 12 |
+
from tqdm import tqdm
|
| 13 |
+
|
| 14 |
+
NUM_SERVERS = 1
|
| 15 |
+
LOG_ROOT_DIR = os.getenv("LOGDIR", None)
|
| 16 |
+
if LOG_ROOT_DIR is None:
|
| 17 |
+
raise ValueError("LOGDIR environment variable not set, please set it by `export LOGDIR=...`")
|
| 18 |
+
|
| 19 |
+
def get_log_files(max_num_files=None):
|
| 20 |
+
log_root = os.path.expanduser(LOG_ROOT_DIR)
|
| 21 |
+
filenames = []
|
| 22 |
+
if NUM_SERVERS == 1:
|
| 23 |
+
for filename in os.listdir(log_root):
|
| 24 |
+
if filename.endswith("-conv.json"):
|
| 25 |
+
filepath = f"{log_root}/{filename}"
|
| 26 |
+
name_tstamp_tuple = (filepath, os.path.getmtime(filepath))
|
| 27 |
+
filenames.append(name_tstamp_tuple)
|
| 28 |
+
else:
|
| 29 |
+
for i in range(NUM_SERVERS):
|
| 30 |
+
for filename in os.listdir(f"{log_root}/server{i}"):
|
| 31 |
+
if filename.endswith("-conv.json"):
|
| 32 |
+
filepath = f"{log_root}/server{i}/{filename}"
|
| 33 |
+
name_tstamp_tuple = (filepath, os.path.getmtime(filepath))
|
| 34 |
+
filenames.append(name_tstamp_tuple)
|
| 35 |
+
# sort by tstamp
|
| 36 |
+
filenames = sorted(filenames, key=lambda x: x[1])
|
| 37 |
+
filenames = [x[0] for x in filenames]
|
| 38 |
+
|
| 39 |
+
max_num_files = max_num_files or len(filenames)
|
| 40 |
+
filenames = filenames[-max_num_files:]
|
| 41 |
+
return filenames
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
def load_log_files(filename):
|
| 45 |
+
data = []
|
| 46 |
+
for retry in range(5):
|
| 47 |
+
try:
|
| 48 |
+
lines = open(filename).readlines()
|
| 49 |
+
break
|
| 50 |
+
except FileNotFoundError:
|
| 51 |
+
time.sleep(2)
|
| 52 |
+
|
| 53 |
+
for l in lines:
|
| 54 |
+
row = json.loads(l)
|
| 55 |
+
data.append(
|
| 56 |
+
dict(
|
| 57 |
+
type=row["type"],
|
| 58 |
+
tstamp=row["tstamp"],
|
| 59 |
+
model=row.get("model", ""),
|
| 60 |
+
models=row.get("models", ["", ""]),
|
| 61 |
+
)
|
| 62 |
+
)
|
| 63 |
+
return data
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
def load_log_files_parallel(log_files, num_threads=16):
|
| 67 |
+
data_all = []
|
| 68 |
+
from multiprocessing import Pool
|
| 69 |
+
|
| 70 |
+
with Pool(num_threads) as p:
|
| 71 |
+
ret_all = list(tqdm(p.imap(load_log_files, log_files), total=len(log_files)))
|
| 72 |
+
for ret in ret_all:
|
| 73 |
+
data_all.extend(ret)
|
| 74 |
+
return data_all
|
| 75 |
+
|
| 76 |
+
|
| 77 |
+
def get_anony_vote_df(df):
|
| 78 |
+
anony_vote_df = df[
|
| 79 |
+
df["type"].isin(["leftvote", "rightvote", "tievote", "bothbad_vote"])
|
| 80 |
+
]
|
| 81 |
+
anony_vote_df = anony_vote_df[anony_vote_df["models"].apply(lambda x: x[0] == "")]
|
| 82 |
+
return anony_vote_df
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
def merge_counts(series, on, names):
|
| 86 |
+
ret = pd.merge(series[0], series[1], on=on)
|
| 87 |
+
for i in range(2, len(series)):
|
| 88 |
+
ret = pd.merge(ret, series[i], on=on)
|
| 89 |
+
ret = ret.reset_index()
|
| 90 |
+
old_names = list(ret.columns)[-len(series) :]
|
| 91 |
+
rename = {old_name: new_name for old_name, new_name in zip(old_names, names)}
|
| 92 |
+
ret = ret.rename(columns=rename)
|
| 93 |
+
return ret
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
def report_basic_stats(log_files):
|
| 97 |
+
df_all = load_log_files_parallel(log_files)
|
| 98 |
+
df_all = pd.DataFrame(df_all)
|
| 99 |
+
now_t = df_all["tstamp"].max()
|
| 100 |
+
df_1_hour = df_all[df_all["tstamp"] > (now_t - 3600)]
|
| 101 |
+
df_1_day = df_all[df_all["tstamp"] > (now_t - 3600 * 24)]
|
| 102 |
+
anony_vote_df_all = get_anony_vote_df(df_all)
|
| 103 |
+
|
| 104 |
+
# Chat trends
|
| 105 |
+
chat_dates = [
|
| 106 |
+
datetime.datetime.fromtimestamp(x, tz=timezone("US/Pacific")).strftime(
|
| 107 |
+
"%Y-%m-%d"
|
| 108 |
+
)
|
| 109 |
+
for x in df_all[df_all["type"] == "chat"]["tstamp"]
|
| 110 |
+
]
|
| 111 |
+
chat_dates_counts = pd.value_counts(chat_dates)
|
| 112 |
+
vote_dates = [
|
| 113 |
+
datetime.datetime.fromtimestamp(x, tz=timezone("US/Pacific")).strftime(
|
| 114 |
+
"%Y-%m-%d"
|
| 115 |
+
)
|
| 116 |
+
for x in anony_vote_df_all["tstamp"]
|
| 117 |
+
]
|
| 118 |
+
vote_dates_counts = pd.value_counts(vote_dates)
|
| 119 |
+
chat_dates_bar = go.Figure(
|
| 120 |
+
data=[
|
| 121 |
+
go.Bar(
|
| 122 |
+
name="Anony. Vote",
|
| 123 |
+
x=vote_dates_counts.index,
|
| 124 |
+
y=vote_dates_counts,
|
| 125 |
+
text=[f"{val:.0f}" for val in vote_dates_counts],
|
| 126 |
+
textposition="auto",
|
| 127 |
+
),
|
| 128 |
+
go.Bar(
|
| 129 |
+
name="Chat",
|
| 130 |
+
x=chat_dates_counts.index,
|
| 131 |
+
y=chat_dates_counts,
|
| 132 |
+
text=[f"{val:.0f}" for val in chat_dates_counts],
|
| 133 |
+
textposition="auto",
|
| 134 |
+
),
|
| 135 |
+
]
|
| 136 |
+
)
|
| 137 |
+
chat_dates_bar.update_layout(
|
| 138 |
+
barmode="stack",
|
| 139 |
+
xaxis_title="Dates",
|
| 140 |
+
yaxis_title="Count",
|
| 141 |
+
height=300,
|
| 142 |
+
width=1200,
|
| 143 |
+
)
|
| 144 |
+
|
| 145 |
+
# Model call counts
|
| 146 |
+
model_hist_all = df_all[df_all["type"] == "chat"]["model"].value_counts()
|
| 147 |
+
model_hist_1_day = df_1_day[df_1_day["type"] == "chat"]["model"].value_counts()
|
| 148 |
+
model_hist_1_hour = df_1_hour[df_1_hour["type"] == "chat"]["model"].value_counts()
|
| 149 |
+
model_hist = merge_counts(
|
| 150 |
+
[model_hist_all, model_hist_1_day, model_hist_1_hour],
|
| 151 |
+
on="model",
|
| 152 |
+
names=["All", "Last Day", "Last Hour"],
|
| 153 |
+
)
|
| 154 |
+
model_hist_md = model_hist.to_markdown(index=False, tablefmt="github")
|
| 155 |
+
|
| 156 |
+
# Action counts
|
| 157 |
+
action_hist_all = df_all["type"].value_counts()
|
| 158 |
+
action_hist_1_day = df_1_day["type"].value_counts()
|
| 159 |
+
action_hist_1_hour = df_1_hour["type"].value_counts()
|
| 160 |
+
action_hist = merge_counts(
|
| 161 |
+
[action_hist_all, action_hist_1_day, action_hist_1_hour],
|
| 162 |
+
on="type",
|
| 163 |
+
names=["All", "Last Day", "Last Hour"],
|
| 164 |
+
)
|
| 165 |
+
action_hist_md = action_hist.to_markdown(index=False, tablefmt="github")
|
| 166 |
+
|
| 167 |
+
# Anony vote counts
|
| 168 |
+
anony_vote_hist_all = anony_vote_df_all["type"].value_counts()
|
| 169 |
+
anony_vote_df_1_day = get_anony_vote_df(df_1_day)
|
| 170 |
+
anony_vote_hist_1_day = anony_vote_df_1_day["type"].value_counts()
|
| 171 |
+
# anony_vote_df_1_hour = get_anony_vote_df(df_1_hour)
|
| 172 |
+
# anony_vote_hist_1_hour = anony_vote_df_1_hour["type"].value_counts()
|
| 173 |
+
anony_vote_hist = merge_counts(
|
| 174 |
+
[anony_vote_hist_all, anony_vote_hist_1_day],
|
| 175 |
+
on="type",
|
| 176 |
+
names=["All", "Last Day"],
|
| 177 |
+
)
|
| 178 |
+
anony_vote_hist_md = anony_vote_hist.to_markdown(index=False, tablefmt="github")
|
| 179 |
+
|
| 180 |
+
# Last 24 hours
|
| 181 |
+
chat_1_day = df_1_day[df_1_day["type"] == "chat"]
|
| 182 |
+
num_chats_last_24_hours = []
|
| 183 |
+
base = df_1_day["tstamp"].min()
|
| 184 |
+
for i in range(24, 0, -1):
|
| 185 |
+
left = base + (i - 1) * 3600
|
| 186 |
+
right = base + i * 3600
|
| 187 |
+
num = ((chat_1_day["tstamp"] >= left) & (chat_1_day["tstamp"] < right)).sum()
|
| 188 |
+
num_chats_last_24_hours.append(num)
|
| 189 |
+
times = [
|
| 190 |
+
datetime.datetime.fromtimestamp(
|
| 191 |
+
base + i * 3600, tz=timezone("US/Pacific")
|
| 192 |
+
).strftime("%Y-%m-%d %H:%M:%S %Z")
|
| 193 |
+
for i in range(24, 0, -1)
|
| 194 |
+
]
|
| 195 |
+
last_24_hours_df = pd.DataFrame({"time": times, "value": num_chats_last_24_hours})
|
| 196 |
+
last_24_hours_md = last_24_hours_df.to_markdown(index=False, tablefmt="github")
|
| 197 |
+
|
| 198 |
+
# Last update datetime
|
| 199 |
+
last_updated_tstamp = now_t
|
| 200 |
+
last_updated_datetime = datetime.datetime.fromtimestamp(
|
| 201 |
+
last_updated_tstamp, tz=timezone("US/Pacific")
|
| 202 |
+
).strftime("%Y-%m-%d %H:%M:%S %Z")
|
| 203 |
+
|
| 204 |
+
# code.interact(local=locals())
|
| 205 |
+
|
| 206 |
+
return {
|
| 207 |
+
"chat_dates_bar": chat_dates_bar,
|
| 208 |
+
"model_hist_md": model_hist_md,
|
| 209 |
+
"action_hist_md": action_hist_md,
|
| 210 |
+
"anony_vote_hist_md": anony_vote_hist_md,
|
| 211 |
+
"num_chats_last_24_hours": last_24_hours_md,
|
| 212 |
+
"last_updated_datetime": last_updated_datetime,
|
| 213 |
+
}
|
| 214 |
+
|
| 215 |
+
|
| 216 |
+
if __name__ == "__main__":
|
| 217 |
+
parser = argparse.ArgumentParser()
|
| 218 |
+
parser.add_argument("--max-num-files", type=int)
|
| 219 |
+
args = parser.parse_args()
|
| 220 |
+
|
| 221 |
+
log_files = get_log_files(args.max_num_files)
|
| 222 |
+
basic_stats = report_basic_stats(log_files)
|
| 223 |
+
|
| 224 |
+
print(basic_stats["action_hist_md"] + "\n")
|
| 225 |
+
print(basic_stats["model_hist_md"] + "\n")
|
| 226 |
+
print(basic_stats["anony_vote_hist_md"] + "\n")
|
| 227 |
+
print(basic_stats["num_chats_last_24_hours"] + "\n")
|
arena_elo/elo_rating/clean_battle_data.py
ADDED
|
@@ -0,0 +1,342 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Clean chatbot arena battle log.
|
| 3 |
+
|
| 4 |
+
Usage:
|
| 5 |
+
python3 clean_battle_data.py --mode conv_release
|
| 6 |
+
"""
|
| 7 |
+
import argparse
|
| 8 |
+
import datetime
|
| 9 |
+
import json
|
| 10 |
+
import os
|
| 11 |
+
import sys
|
| 12 |
+
from pytz import timezone
|
| 13 |
+
import time
|
| 14 |
+
import PIL
|
| 15 |
+
from PIL import ImageFile
|
| 16 |
+
ImageFile.LOAD_TRUNCATED_IMAGES = True
|
| 17 |
+
|
| 18 |
+
from tqdm import tqdm
|
| 19 |
+
|
| 20 |
+
from .basic_stats import get_log_files, NUM_SERVERS, LOG_ROOT_DIR
|
| 21 |
+
from .utils import detect_language, get_time_stamp_from_date
|
| 22 |
+
|
| 23 |
+
VOTES = ["tievote", "leftvote", "rightvote", "bothbad_vote"]
|
| 24 |
+
IDENTITY_WORDS = [
|
| 25 |
+
"vicuna",
|
| 26 |
+
"lmsys",
|
| 27 |
+
"koala",
|
| 28 |
+
"uc berkeley",
|
| 29 |
+
"open assistant",
|
| 30 |
+
"laion",
|
| 31 |
+
"chatglm",
|
| 32 |
+
"chatgpt",
|
| 33 |
+
"gpt-4",
|
| 34 |
+
"openai",
|
| 35 |
+
"anthropic",
|
| 36 |
+
"claude",
|
| 37 |
+
"bard",
|
| 38 |
+
"palm",
|
| 39 |
+
"lamda",
|
| 40 |
+
"google",
|
| 41 |
+
"llama",
|
| 42 |
+
"qianwan",
|
| 43 |
+
"alibaba",
|
| 44 |
+
"mistral",
|
| 45 |
+
"zhipu",
|
| 46 |
+
"KEG lab",
|
| 47 |
+
"01.AI",
|
| 48 |
+
"AI2",
|
| 49 |
+
"Tülu",
|
| 50 |
+
"Tulu",
|
| 51 |
+
"NETWORK ERROR DUE TO HIGH TRAFFIC. PLEASE REGENERATE OR REFRESH THIS PAGE.",
|
| 52 |
+
"$MODERATION$ YOUR INPUT VIOLATES OUR CONTENT MODERATION GUIDELINES.",
|
| 53 |
+
"API REQUEST ERROR. Please increase the number of max tokens.",
|
| 54 |
+
"**API REQUEST ERROR** Reason: The response was blocked.",
|
| 55 |
+
"**API REQUEST ERROR**",
|
| 56 |
+
]
|
| 57 |
+
|
| 58 |
+
for i in range(len(IDENTITY_WORDS)):
|
| 59 |
+
IDENTITY_WORDS[i] = IDENTITY_WORDS[i].lower()
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
def remove_html(raw):
|
| 63 |
+
if raw.startswith("<h3>"):
|
| 64 |
+
return raw[raw.find(": ") + 2 : -len("</h3>\n")]
|
| 65 |
+
if raw.startswith("### Model A: ") or raw.startswith("### Model B: "):
|
| 66 |
+
return raw[13:]
|
| 67 |
+
return raw
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
def to_openai_format(messages):
|
| 71 |
+
roles = ["user", "assistant"]
|
| 72 |
+
ret = []
|
| 73 |
+
for i, x in enumerate(messages):
|
| 74 |
+
ret.append({"role": roles[i % 2], "content": x[1]})
|
| 75 |
+
return ret
|
| 76 |
+
|
| 77 |
+
|
| 78 |
+
def replace_model_name(old_name, tstamp):
|
| 79 |
+
replace_dict = {
|
| 80 |
+
"bard": "palm-2",
|
| 81 |
+
"claude-v1": "claude-1",
|
| 82 |
+
"claude-instant-v1": "claude-instant-1",
|
| 83 |
+
"oasst-sft-1-pythia-12b": "oasst-pythia-12b",
|
| 84 |
+
"claude-2": "claude-2.0",
|
| 85 |
+
"PlayGroundV2": "PlayGround V2",
|
| 86 |
+
"PlayGroundV2.5": "PlayGround V2.5",
|
| 87 |
+
}
|
| 88 |
+
if old_name in ["gpt-4", "gpt-3.5-turbo"]:
|
| 89 |
+
if tstamp > 1687849200:
|
| 90 |
+
return old_name + "-0613"
|
| 91 |
+
else:
|
| 92 |
+
return old_name + "-0314"
|
| 93 |
+
if old_name in replace_dict:
|
| 94 |
+
return replace_dict[old_name]
|
| 95 |
+
return old_name
|
| 96 |
+
|
| 97 |
+
|
| 98 |
+
def read_file(filename):
|
| 99 |
+
data = []
|
| 100 |
+
for retry in range(5):
|
| 101 |
+
try:
|
| 102 |
+
# lines = open(filename).readlines()
|
| 103 |
+
for l in open(filename):
|
| 104 |
+
row = json.loads(l)
|
| 105 |
+
if row["type"] in VOTES:
|
| 106 |
+
data.append(row)
|
| 107 |
+
break
|
| 108 |
+
except FileNotFoundError:
|
| 109 |
+
time.sleep(2)
|
| 110 |
+
except json.JSONDecodeError:
|
| 111 |
+
print(f"Error in reading {filename}")
|
| 112 |
+
print(row)
|
| 113 |
+
exit(0)
|
| 114 |
+
return data
|
| 115 |
+
|
| 116 |
+
|
| 117 |
+
def read_file_parallel(log_files, num_threads=16):
|
| 118 |
+
data_all = []
|
| 119 |
+
from multiprocessing import Pool
|
| 120 |
+
|
| 121 |
+
with Pool(num_threads) as p:
|
| 122 |
+
ret_all = list(tqdm(p.imap(read_file, log_files), total=len(log_files)))
|
| 123 |
+
for ret in ret_all:
|
| 124 |
+
data_all.extend(ret)
|
| 125 |
+
return data_all
|
| 126 |
+
|
| 127 |
+
def load_image(image_path):
|
| 128 |
+
try:
|
| 129 |
+
return PIL.Image.open(image_path)
|
| 130 |
+
except:
|
| 131 |
+
return None
|
| 132 |
+
|
| 133 |
+
def clean_battle_data(log_files, exclude_model_names, ban_ip_list=None, sanitize_ip=False, mode="simple"):
|
| 134 |
+
data = read_file_parallel(log_files, num_threads=16)
|
| 135 |
+
|
| 136 |
+
convert_type = {
|
| 137 |
+
"leftvote": "model_a",
|
| 138 |
+
"rightvote": "model_b",
|
| 139 |
+
"tievote": "tie",
|
| 140 |
+
"bothbad_vote": "tie (bothbad)",
|
| 141 |
+
}
|
| 142 |
+
|
| 143 |
+
all_models = set()
|
| 144 |
+
all_ips = dict()
|
| 145 |
+
ct_anony = 0
|
| 146 |
+
ct_invalid = 0
|
| 147 |
+
ct_leaked_identity = 0
|
| 148 |
+
ct_banned = 0
|
| 149 |
+
battles = []
|
| 150 |
+
for row in tqdm(data, desc="Cleaning"):
|
| 151 |
+
if row["models"][0] is None or row["models"][1] is None:
|
| 152 |
+
print(f"Invalid model names: {row['models']}")
|
| 153 |
+
continue
|
| 154 |
+
|
| 155 |
+
# Resolve model names
|
| 156 |
+
models_public = [remove_html(row["models"][0]), remove_html(row["models"][1])]
|
| 157 |
+
if "model_name" in row["states"][0]:
|
| 158 |
+
models_hidden = [
|
| 159 |
+
row["states"][0]["model_name"],
|
| 160 |
+
row["states"][1]["model_name"],
|
| 161 |
+
]
|
| 162 |
+
if models_hidden[0] is None:
|
| 163 |
+
models_hidden = models_public
|
| 164 |
+
else:
|
| 165 |
+
models_hidden = models_public
|
| 166 |
+
|
| 167 |
+
if (models_public[0] == "" and models_public[1] != "") or (
|
| 168 |
+
models_public[1] == "" and models_public[0] != ""
|
| 169 |
+
):
|
| 170 |
+
ct_invalid += 1
|
| 171 |
+
print(f"Invalid model names: {models_public}")
|
| 172 |
+
continue
|
| 173 |
+
|
| 174 |
+
if row["anony"]:
|
| 175 |
+
anony = True
|
| 176 |
+
models = models_hidden
|
| 177 |
+
ct_anony += 1
|
| 178 |
+
else:
|
| 179 |
+
anony = False
|
| 180 |
+
models = models_public
|
| 181 |
+
if not models_public == models_hidden:
|
| 182 |
+
print(f"Model names mismatch: {models_public} vs {models_hidden}")
|
| 183 |
+
ct_invalid += 1
|
| 184 |
+
continue
|
| 185 |
+
|
| 186 |
+
def preprocess_model_name(m):
|
| 187 |
+
if m == "Playground v2":
|
| 188 |
+
return 'playground_PlayGroundV2_generation'
|
| 189 |
+
if m == "Playground v2.5":
|
| 190 |
+
return 'playground_PlayGroundV2.5_generation'
|
| 191 |
+
return m
|
| 192 |
+
models = [preprocess_model_name(m) for m in models]
|
| 193 |
+
|
| 194 |
+
# valid = True
|
| 195 |
+
# for _model in models:
|
| 196 |
+
# print(_model)
|
| 197 |
+
# input()
|
| 198 |
+
# try:
|
| 199 |
+
# platform, model_name, task = _model.split("_")
|
| 200 |
+
# except ValueError:
|
| 201 |
+
# print(f"Invalid model names: {_model}")
|
| 202 |
+
# valid = False
|
| 203 |
+
# break
|
| 204 |
+
# if not (platform.lower() in ["playground", "imagenhub", 'fal'] and (task == "generation" or task == "text2image")):
|
| 205 |
+
# valid = False
|
| 206 |
+
# break
|
| 207 |
+
# if not valid:
|
| 208 |
+
# ct_invalid += 1
|
| 209 |
+
# print(f"Invalid model names: {models} for t2i_generation")
|
| 210 |
+
# continue
|
| 211 |
+
# for i, _model in enumerate(models):
|
| 212 |
+
# platform, model_name, task = _model.split("_")
|
| 213 |
+
# models[i] = model_name
|
| 214 |
+
|
| 215 |
+
models = [replace_model_name(m, row["tstamp"]) for m in models]
|
| 216 |
+
|
| 217 |
+
# Exclude certain models
|
| 218 |
+
if exclude_model_names and any(x in exclude_model_names for x in models):
|
| 219 |
+
ct_invalid += 1
|
| 220 |
+
continue
|
| 221 |
+
|
| 222 |
+
if mode == "conv_release":
|
| 223 |
+
# assert the two images are the same
|
| 224 |
+
date = datetime.datetime.fromtimestamp(row["tstamp"], tz=timezone("US/Pacific")).strftime("%Y-%m-%d") # 2024-02-29
|
| 225 |
+
image_path_format = f"{LOG_ROOT_DIR}/{date}-convinput_images/input_image_"
|
| 226 |
+
image_path_0 = image_path_format + str(row["states"][0]["conv_id"]) + ".png"
|
| 227 |
+
image_path_1 = image_path_format + str(row["states"][1]["conv_id"]) + ".png"
|
| 228 |
+
if not os.path.exists(image_path_0) or not os.path.exists(image_path_1):
|
| 229 |
+
print(f"Image not found for {image_path_0} or {image_path_1}")
|
| 230 |
+
ct_invalid += 1
|
| 231 |
+
continue
|
| 232 |
+
|
| 233 |
+
image_0 = load_image(image_path_0)
|
| 234 |
+
image_1 = load_image(image_path_1)
|
| 235 |
+
if image_0 is None or image_1 is None:
|
| 236 |
+
print(f"Image not found for {image_path_0} or {image_path_1}")
|
| 237 |
+
ct_invalid += 1
|
| 238 |
+
continue
|
| 239 |
+
if image_0.tobytes() != image_1.tobytes():
|
| 240 |
+
print(f"Image not the same for {image_path_0} and {image_path_1}")
|
| 241 |
+
ct_invalid += 1
|
| 242 |
+
continue
|
| 243 |
+
|
| 244 |
+
|
| 245 |
+
# question_id = row["states"][0]["conv_id"]
|
| 246 |
+
|
| 247 |
+
ip = row["ip"]
|
| 248 |
+
if ip not in all_ips:
|
| 249 |
+
all_ips[ip] = {"ip": ip, "count": 0, "sanitized_id": len(all_ips)}
|
| 250 |
+
all_ips[ip]["count"] += 1
|
| 251 |
+
if sanitize_ip:
|
| 252 |
+
user_id = f"arena_user_{all_ips[ip]['sanitized_id']}"
|
| 253 |
+
else:
|
| 254 |
+
user_id = f"{all_ips[ip]['ip']}"
|
| 255 |
+
|
| 256 |
+
if ban_ip_list is not None and ip in ban_ip_list:
|
| 257 |
+
ct_banned += 1
|
| 258 |
+
print(f"User {user_id} is banned")
|
| 259 |
+
continue
|
| 260 |
+
|
| 261 |
+
# Save the results
|
| 262 |
+
battles.append(
|
| 263 |
+
dict(
|
| 264 |
+
model_a=models[0],
|
| 265 |
+
model_b=models[1],
|
| 266 |
+
winner=convert_type[row["type"]],
|
| 267 |
+
judge=f"arena_user_{user_id}",
|
| 268 |
+
anony=anony,
|
| 269 |
+
tstamp=row["tstamp"],
|
| 270 |
+
)
|
| 271 |
+
)
|
| 272 |
+
|
| 273 |
+
all_models.update(models_hidden)
|
| 274 |
+
battles.sort(key=lambda x: x["tstamp"])
|
| 275 |
+
last_updated_tstamp = battles[-1]["tstamp"]
|
| 276 |
+
|
| 277 |
+
last_updated_datetime = datetime.datetime.fromtimestamp(
|
| 278 |
+
last_updated_tstamp, tz=timezone("US/Pacific")
|
| 279 |
+
).strftime("%Y-%m-%d %H:%M:%S %Z")
|
| 280 |
+
|
| 281 |
+
print(
|
| 282 |
+
f"#votes: {len(data)}, #invalid votes: {ct_invalid}, "
|
| 283 |
+
f"#leaked_identity: {ct_leaked_identity} "
|
| 284 |
+
f"#banned: {ct_banned} "
|
| 285 |
+
)
|
| 286 |
+
print(f"#battles: {len(battles)}, #anony: {ct_anony}")
|
| 287 |
+
print(f"#models: {len(all_models)}, {all_models}")
|
| 288 |
+
print(f"last-updated: {last_updated_datetime}")
|
| 289 |
+
|
| 290 |
+
if ban_ip_list is not None:
|
| 291 |
+
for ban_ip in ban_ip_list:
|
| 292 |
+
if ban_ip in all_ips:
|
| 293 |
+
del all_ips[ban_ip]
|
| 294 |
+
print("Top 30 IPs:")
|
| 295 |
+
print(sorted(all_ips.values(), key=lambda x: x["count"], reverse=True)[:30])
|
| 296 |
+
return battles
|
| 297 |
+
|
| 298 |
+
|
| 299 |
+
if __name__ == "__main__":
|
| 300 |
+
parser = argparse.ArgumentParser()
|
| 301 |
+
parser.add_argument("--max-num-files", type=int)
|
| 302 |
+
parser.add_argument(
|
| 303 |
+
"--mode", type=str, choices=["simple", "conv_release"], default="simple"
|
| 304 |
+
)
|
| 305 |
+
parser.add_argument("--exclude-model-names", type=str, nargs="+")
|
| 306 |
+
parser.add_argument("--ban-ip-file", type=str)
|
| 307 |
+
parser.add_argument("--sanitize-ip", action="store_true", default=False)
|
| 308 |
+
args = parser.parse_args()
|
| 309 |
+
|
| 310 |
+
log_files = get_log_files(args.max_num_files)
|
| 311 |
+
ban_ip_list = json.load(open(args.ban_ip_file)) if args.ban_ip_file else None
|
| 312 |
+
|
| 313 |
+
battles = clean_battle_data(
|
| 314 |
+
log_files, args.exclude_model_names or [], ban_ip_list, args.sanitize_ip, args.mode,
|
| 315 |
+
)
|
| 316 |
+
last_updated_tstamp = battles[-1]["tstamp"]
|
| 317 |
+
cutoff_date = datetime.datetime.fromtimestamp(
|
| 318 |
+
last_updated_tstamp, tz=timezone("US/Pacific")
|
| 319 |
+
).strftime("%Y%m%d")
|
| 320 |
+
|
| 321 |
+
if args.mode == "simple":
|
| 322 |
+
for x in battles:
|
| 323 |
+
for key in [
|
| 324 |
+
"conversation_a",
|
| 325 |
+
"conversation_b",
|
| 326 |
+
"question_id",
|
| 327 |
+
]:
|
| 328 |
+
if key in x:
|
| 329 |
+
del x[key]
|
| 330 |
+
print("Samples:")
|
| 331 |
+
for i in range(min(4, len(battles))):
|
| 332 |
+
print(battles[i])
|
| 333 |
+
output = f"clean_battle_{cutoff_date}.json"
|
| 334 |
+
elif args.mode == "conv_release":
|
| 335 |
+
output = f"clean_battle_conv_{cutoff_date}.json"
|
| 336 |
+
|
| 337 |
+
with open(output, "w") as fout:
|
| 338 |
+
json.dump(battles, fout, indent=2, ensure_ascii=False)
|
| 339 |
+
print(f"Write cleaned data to {output}")
|
| 340 |
+
|
| 341 |
+
with open("cut_off_date.txt", "w") as fout:
|
| 342 |
+
fout.write(cutoff_date)
|
arena_elo/elo_rating/elo_analysis.py
ADDED
|
@@ -0,0 +1,395 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import argparse
|
| 2 |
+
from collections import defaultdict
|
| 3 |
+
import datetime
|
| 4 |
+
import json
|
| 5 |
+
import math
|
| 6 |
+
import pickle
|
| 7 |
+
from pytz import timezone
|
| 8 |
+
|
| 9 |
+
import numpy as np
|
| 10 |
+
import pandas as pd
|
| 11 |
+
import plotly.express as px
|
| 12 |
+
from tqdm import tqdm
|
| 13 |
+
|
| 14 |
+
from .model_registry import get_model_info
|
| 15 |
+
from .basic_stats import get_log_files
|
| 16 |
+
from .clean_battle_data import clean_battle_data
|
| 17 |
+
|
| 18 |
+
pd.options.display.float_format = "{:.2f}".format
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
def compute_elo(battles, K=4, SCALE=400, BASE=10, INIT_RATING=1000):
|
| 22 |
+
rating = defaultdict(lambda: INIT_RATING)
|
| 23 |
+
|
| 24 |
+
for rd, model_a, model_b, winner in battles[
|
| 25 |
+
["model_a", "model_b", "winner"]
|
| 26 |
+
].itertuples():
|
| 27 |
+
ra = rating[model_a]
|
| 28 |
+
rb = rating[model_b]
|
| 29 |
+
ea = 1 / (1 + BASE ** ((rb - ra) / SCALE))
|
| 30 |
+
eb = 1 / (1 + BASE ** ((ra - rb) / SCALE))
|
| 31 |
+
if winner == "model_a":
|
| 32 |
+
sa = 1
|
| 33 |
+
elif winner == "model_b":
|
| 34 |
+
sa = 0
|
| 35 |
+
elif winner == "tie" or winner == "tie (bothbad)":
|
| 36 |
+
sa = 0.5
|
| 37 |
+
else:
|
| 38 |
+
raise Exception(f"unexpected vote {winner}")
|
| 39 |
+
rating[model_a] += K * (sa - ea)
|
| 40 |
+
rating[model_b] += K * (1 - sa - eb)
|
| 41 |
+
|
| 42 |
+
return dict(rating)
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
def get_bootstrap_result(battles, func_compute_elo, num_round=1000):
|
| 46 |
+
rows = []
|
| 47 |
+
for i in tqdm(range(num_round), desc="bootstrap"):
|
| 48 |
+
tmp_battles = battles.sample(frac=1.0, replace=True)
|
| 49 |
+
print(f"Bootstrap round {i}: {tmp_battles.shape}")
|
| 50 |
+
rows.append(func_compute_elo(tmp_battles))
|
| 51 |
+
df = pd.DataFrame(rows)
|
| 52 |
+
return df[df.median().sort_values(ascending=False).index]
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
def compute_elo_mle_with_tie(df, SCALE=400, BASE=10, INIT_RATING=1000):
|
| 56 |
+
print(f"Columns in df: {df.columns}")
|
| 57 |
+
print(f"First few rows: {df.head()}")
|
| 58 |
+
|
| 59 |
+
from sklearn.linear_model import LogisticRegression
|
| 60 |
+
|
| 61 |
+
models = pd.concat([df["model_a"], df["model_b"]]).unique()
|
| 62 |
+
models = pd.Series(np.arange(len(models)), index=models)
|
| 63 |
+
|
| 64 |
+
# duplicate battles
|
| 65 |
+
df = pd.concat([df, df], ignore_index=True)
|
| 66 |
+
p = len(models.index)
|
| 67 |
+
n = df.shape[0]
|
| 68 |
+
|
| 69 |
+
X = np.zeros([n, p])
|
| 70 |
+
X[np.arange(n), models[df["model_a"]]] = +math.log(BASE)
|
| 71 |
+
X[np.arange(n), models[df["model_b"]]] = -math.log(BASE)
|
| 72 |
+
|
| 73 |
+
# one A win => two A win
|
| 74 |
+
Y = np.zeros(n)
|
| 75 |
+
Y[df["winner"] == "model_a"] = 1.0
|
| 76 |
+
|
| 77 |
+
# one tie => one A win + one B win
|
| 78 |
+
# find tie + tie (both bad) index
|
| 79 |
+
tie_idx = (df["winner"] == "tie") | (df["winner"] == "tie (bothbad)")
|
| 80 |
+
tie_idx[len(tie_idx) // 2 :] = False
|
| 81 |
+
Y[tie_idx] = 1.0
|
| 82 |
+
|
| 83 |
+
lr = LogisticRegression(fit_intercept=False)
|
| 84 |
+
lr.fit(X, Y)
|
| 85 |
+
|
| 86 |
+
elo_scores = SCALE * lr.coef_[0] + INIT_RATING
|
| 87 |
+
# calibrate llama-13b to 800 if applicable
|
| 88 |
+
if "llama-13b" in models.index:
|
| 89 |
+
elo_scores += 800 - elo_scores[models["llama-13b"]]
|
| 90 |
+
return pd.Series(elo_scores, index=models.index).sort_values(ascending=False)
|
| 91 |
+
|
| 92 |
+
|
| 93 |
+
def get_median_elo_from_bootstrap(bootstrap_df):
|
| 94 |
+
median = dict(bootstrap_df.quantile(0.5))
|
| 95 |
+
median = {k: int(v + 0.5) for k, v in median.items()}
|
| 96 |
+
return median
|
| 97 |
+
|
| 98 |
+
|
| 99 |
+
def compute_pairwise_win_fraction(battles, model_order, limit_show_number=None):
|
| 100 |
+
# Times each model wins as Model A
|
| 101 |
+
a_win_ptbl = pd.pivot_table(
|
| 102 |
+
battles[battles["winner"] == "model_a"],
|
| 103 |
+
index="model_a",
|
| 104 |
+
columns="model_b",
|
| 105 |
+
aggfunc="size",
|
| 106 |
+
fill_value=0,
|
| 107 |
+
)
|
| 108 |
+
|
| 109 |
+
# Table counting times each model wins as Model B
|
| 110 |
+
b_win_ptbl = pd.pivot_table(
|
| 111 |
+
battles[battles["winner"] == "model_b"],
|
| 112 |
+
index="model_a",
|
| 113 |
+
columns="model_b",
|
| 114 |
+
aggfunc="size",
|
| 115 |
+
fill_value=0,
|
| 116 |
+
)
|
| 117 |
+
|
| 118 |
+
# Table counting number of A-B pairs
|
| 119 |
+
num_battles_ptbl = pd.pivot_table(
|
| 120 |
+
battles, index="model_a", columns="model_b", aggfunc="size", fill_value=0
|
| 121 |
+
)
|
| 122 |
+
|
| 123 |
+
# Computing the proportion of wins for each model as A and as B
|
| 124 |
+
# against all other models
|
| 125 |
+
row_beats_col_freq = (a_win_ptbl + b_win_ptbl.T) / (
|
| 126 |
+
num_battles_ptbl + num_battles_ptbl.T
|
| 127 |
+
)
|
| 128 |
+
|
| 129 |
+
if model_order is None:
|
| 130 |
+
prop_wins = row_beats_col_freq.mean(axis=1).sort_values(ascending=False)
|
| 131 |
+
model_order = list(prop_wins.keys())
|
| 132 |
+
|
| 133 |
+
if limit_show_number is not None:
|
| 134 |
+
model_order = model_order[:limit_show_number]
|
| 135 |
+
|
| 136 |
+
# Arrange ordering according to proprition of wins
|
| 137 |
+
row_beats_col = row_beats_col_freq.loc[model_order, model_order]
|
| 138 |
+
return row_beats_col
|
| 139 |
+
|
| 140 |
+
|
| 141 |
+
def visualize_leaderboard_table(rating):
|
| 142 |
+
models = list(rating.keys())
|
| 143 |
+
models.sort(key=lambda k: -rating[k])
|
| 144 |
+
|
| 145 |
+
emoji_dict = {
|
| 146 |
+
1: "🥇",
|
| 147 |
+
2: "🥈",
|
| 148 |
+
3: "🥉",
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
md = ""
|
| 152 |
+
md += "| Rank | Model | Elo Rating | Description |\n"
|
| 153 |
+
md += "| --- | --- | --- | --- |\n"
|
| 154 |
+
for i, model in enumerate(models):
|
| 155 |
+
rank = i + 1
|
| 156 |
+
minfo = get_model_info(model)
|
| 157 |
+
emoji = emoji_dict.get(rank, "")
|
| 158 |
+
md += f"| {rank} | {emoji} [{model}]({minfo.link}) | {rating[model]:.0f} | {minfo.description} |\n"
|
| 159 |
+
|
| 160 |
+
return md
|
| 161 |
+
|
| 162 |
+
|
| 163 |
+
def visualize_pairwise_win_fraction(battles, model_order):
|
| 164 |
+
row_beats_col = compute_pairwise_win_fraction(battles, model_order)
|
| 165 |
+
fig = px.imshow(
|
| 166 |
+
row_beats_col,
|
| 167 |
+
color_continuous_scale="RdBu",
|
| 168 |
+
text_auto=".2f",
|
| 169 |
+
height=700,
|
| 170 |
+
width=700,
|
| 171 |
+
)
|
| 172 |
+
fig.update_layout(
|
| 173 |
+
xaxis_title="Model B",
|
| 174 |
+
yaxis_title="Model A",
|
| 175 |
+
xaxis_side="top",
|
| 176 |
+
title_y=0.07,
|
| 177 |
+
title_x=0.5,
|
| 178 |
+
)
|
| 179 |
+
fig.update_traces(
|
| 180 |
+
hovertemplate="Model A: %{y}<br>Model B: %{x}<br>Fraction of A Wins: %{z}<extra></extra>"
|
| 181 |
+
)
|
| 182 |
+
|
| 183 |
+
return fig
|
| 184 |
+
|
| 185 |
+
|
| 186 |
+
def visualize_battle_count(battles, model_order):
|
| 187 |
+
ptbl = pd.pivot_table(
|
| 188 |
+
battles, index="model_a", columns="model_b", aggfunc="size", fill_value=0
|
| 189 |
+
)
|
| 190 |
+
battle_counts = ptbl + ptbl.T
|
| 191 |
+
fig = px.imshow(
|
| 192 |
+
battle_counts.loc[model_order, model_order],
|
| 193 |
+
text_auto=True,
|
| 194 |
+
height=700,
|
| 195 |
+
width=700,
|
| 196 |
+
)
|
| 197 |
+
fig.update_layout(
|
| 198 |
+
xaxis_title="Model B",
|
| 199 |
+
yaxis_title="Model A",
|
| 200 |
+
xaxis_side="top",
|
| 201 |
+
title_y=0.07,
|
| 202 |
+
title_x=0.5,
|
| 203 |
+
)
|
| 204 |
+
fig.update_traces(
|
| 205 |
+
hovertemplate="Model A: %{y}<br>Model B: %{x}<br>Count: %{z}<extra></extra>"
|
| 206 |
+
)
|
| 207 |
+
return fig
|
| 208 |
+
|
| 209 |
+
|
| 210 |
+
def visualize_average_win_rate(battles, limit_show_number):
|
| 211 |
+
row_beats_col_freq = compute_pairwise_win_fraction(
|
| 212 |
+
battles, None, limit_show_number=limit_show_number
|
| 213 |
+
)
|
| 214 |
+
fig = px.bar(
|
| 215 |
+
row_beats_col_freq.mean(axis=1).sort_values(ascending=False),
|
| 216 |
+
text_auto=".2f",
|
| 217 |
+
height=500,
|
| 218 |
+
width=700,
|
| 219 |
+
)
|
| 220 |
+
fig.update_layout(
|
| 221 |
+
yaxis_title="Average Win Rate", xaxis_title="Model", showlegend=False
|
| 222 |
+
)
|
| 223 |
+
return fig
|
| 224 |
+
|
| 225 |
+
|
| 226 |
+
def visualize_bootstrap_elo_rating(df, df_final, limit_show_number):
|
| 227 |
+
bars = (
|
| 228 |
+
pd.DataFrame(
|
| 229 |
+
dict(
|
| 230 |
+
lower=df.quantile(0.025),
|
| 231 |
+
rating=df_final,
|
| 232 |
+
upper=df.quantile(0.975),
|
| 233 |
+
)
|
| 234 |
+
)
|
| 235 |
+
.reset_index(names="model")
|
| 236 |
+
.sort_values("rating", ascending=False)
|
| 237 |
+
)
|
| 238 |
+
bars = bars[:limit_show_number]
|
| 239 |
+
bars["error_y"] = bars["upper"] - bars["rating"]
|
| 240 |
+
bars["error_y_minus"] = bars["rating"] - bars["lower"]
|
| 241 |
+
bars["rating_rounded"] = np.round(bars["rating"], 2)
|
| 242 |
+
fig = px.scatter(
|
| 243 |
+
bars,
|
| 244 |
+
x="model",
|
| 245 |
+
y="rating",
|
| 246 |
+
error_y="error_y",
|
| 247 |
+
error_y_minus="error_y_minus",
|
| 248 |
+
text="rating_rounded",
|
| 249 |
+
height=500,
|
| 250 |
+
width=700,
|
| 251 |
+
)
|
| 252 |
+
fig.update_layout(xaxis_title="Model", yaxis_title="Rating")
|
| 253 |
+
return fig
|
| 254 |
+
|
| 255 |
+
|
| 256 |
+
def report_elo_analysis_results(battles_json, rating_system="bt", num_bootstrap=100, anony_only=True):
|
| 257 |
+
battles = pd.DataFrame(battles_json)
|
| 258 |
+
print(battles)
|
| 259 |
+
print(f"Data before filtering: {battles.shape}")
|
| 260 |
+
if battles.empty:
|
| 261 |
+
raise ValueError("The battles dataframe is empty. Check the data loading or filtering steps.")
|
| 262 |
+
|
| 263 |
+
battles = battles.sort_values(ascending=True, by=["tstamp"])
|
| 264 |
+
# Only use anonymous votes
|
| 265 |
+
if anony_only:
|
| 266 |
+
battles = battles[battles["anony"]].reset_index(drop=True)
|
| 267 |
+
if battles.empty:
|
| 268 |
+
raise ValueError("No anonymous battles found. Check the filtering logic.")
|
| 269 |
+
|
| 270 |
+
battles_no_ties = battles[~battles["winner"].str.contains("tie")]
|
| 271 |
+
print(f"Data after filtering: {battles_no_ties.shape}")
|
| 272 |
+
if battles_no_ties.empty:
|
| 273 |
+
raise ValueError("No valid battles after removing ties. Check the filtering logic.")
|
| 274 |
+
# Online update
|
| 275 |
+
elo_rating_online = compute_elo(battles)
|
| 276 |
+
|
| 277 |
+
if rating_system == "bt":
|
| 278 |
+
bootstrap_df = get_bootstrap_result(
|
| 279 |
+
battles, compute_elo_mle_with_tie, num_round=num_bootstrap
|
| 280 |
+
)
|
| 281 |
+
elo_rating_final = compute_elo_mle_with_tie(battles)
|
| 282 |
+
elif rating_system == "elo":
|
| 283 |
+
bootstrap_df = get_bootstrap_result(
|
| 284 |
+
battles, compute_elo, num_round=num_bootstrap
|
| 285 |
+
)
|
| 286 |
+
elo_rating_median = get_median_elo_from_bootstrap(bootstrap_df)
|
| 287 |
+
elo_rating_final = elo_rating_median
|
| 288 |
+
|
| 289 |
+
model_order = list(elo_rating_final.keys())
|
| 290 |
+
model_order.sort(key=lambda k: -elo_rating_final[k])
|
| 291 |
+
|
| 292 |
+
limit_show_number = 25 # limit show number to make plots smaller
|
| 293 |
+
model_order = model_order[:limit_show_number]
|
| 294 |
+
|
| 295 |
+
# leaderboard_table_df: elo rating, variance, 95% interval, number of battles
|
| 296 |
+
leaderboard_table_df = pd.DataFrame(
|
| 297 |
+
{
|
| 298 |
+
"rating": elo_rating_final,
|
| 299 |
+
"variance": bootstrap_df.var(),
|
| 300 |
+
"rating_q975": bootstrap_df.quantile(0.975),
|
| 301 |
+
"rating_q025": bootstrap_df.quantile(0.025),
|
| 302 |
+
"num_battles": battles["model_a"].value_counts()
|
| 303 |
+
+ battles["model_b"].value_counts(),
|
| 304 |
+
}
|
| 305 |
+
)
|
| 306 |
+
|
| 307 |
+
# Plots
|
| 308 |
+
leaderboard_table = visualize_leaderboard_table(elo_rating_final)
|
| 309 |
+
win_fraction_heatmap = visualize_pairwise_win_fraction(battles_no_ties, model_order)
|
| 310 |
+
battle_count_heatmap = visualize_battle_count(battles_no_ties, model_order)
|
| 311 |
+
average_win_rate_bar = visualize_average_win_rate(
|
| 312 |
+
battles_no_ties, limit_show_number
|
| 313 |
+
)
|
| 314 |
+
bootstrap_elo_rating = visualize_bootstrap_elo_rating(
|
| 315 |
+
bootstrap_df, elo_rating_final, limit_show_number
|
| 316 |
+
)
|
| 317 |
+
|
| 318 |
+
last_updated_tstamp = battles["tstamp"].max()
|
| 319 |
+
last_updated_datetime = datetime.datetime.fromtimestamp(
|
| 320 |
+
last_updated_tstamp, tz=timezone("US/Pacific")
|
| 321 |
+
).strftime("%Y-%m-%d %H:%M:%S %Z")
|
| 322 |
+
|
| 323 |
+
return {
|
| 324 |
+
"rating_system": rating_system,
|
| 325 |
+
"elo_rating_online": elo_rating_online,
|
| 326 |
+
"elo_rating_final": elo_rating_final,
|
| 327 |
+
"leaderboard_table": leaderboard_table,
|
| 328 |
+
"win_fraction_heatmap": win_fraction_heatmap,
|
| 329 |
+
"battle_count_heatmap": battle_count_heatmap,
|
| 330 |
+
"average_win_rate_bar": average_win_rate_bar,
|
| 331 |
+
"bootstrap_elo_rating": bootstrap_elo_rating,
|
| 332 |
+
"last_updated_datetime": last_updated_datetime,
|
| 333 |
+
"last_updated_tstamp": last_updated_tstamp,
|
| 334 |
+
"bootstrap_df": bootstrap_df,
|
| 335 |
+
"leaderboard_table_df": leaderboard_table_df,
|
| 336 |
+
}
|
| 337 |
+
|
| 338 |
+
|
| 339 |
+
def pretty_print_elo_rating(rating):
|
| 340 |
+
model_order = list(rating.keys())
|
| 341 |
+
model_order.sort(key=lambda k: -rating[k])
|
| 342 |
+
for i, model in enumerate(model_order):
|
| 343 |
+
print(f"{i+1:2d}, {model:25s}, {rating[model]:.0f}")
|
| 344 |
+
|
| 345 |
+
|
| 346 |
+
if __name__ == "__main__":
|
| 347 |
+
parser = argparse.ArgumentParser()
|
| 348 |
+
parser.add_argument("--clean-battle-file", type=str)
|
| 349 |
+
parser.add_argument("--max-num-files", type=int)
|
| 350 |
+
parser.add_argument("--num-bootstrap", type=int, default=100)
|
| 351 |
+
parser.add_argument(
|
| 352 |
+
"--rating-system", type=str, choices=["bt", "elo"], default="bt"
|
| 353 |
+
)
|
| 354 |
+
parser.add_argument("--exclude-tie", action="store_true", default=False)
|
| 355 |
+
args = parser.parse_args()
|
| 356 |
+
|
| 357 |
+
np.random.seed(42)
|
| 358 |
+
|
| 359 |
+
if args.clean_battle_file:
|
| 360 |
+
# Read data from a cleaned battle files
|
| 361 |
+
battles = pd.read_json(args.clean_battle_file)
|
| 362 |
+
else:
|
| 363 |
+
# Read data from all log files
|
| 364 |
+
log_files = get_log_files(args.max_num_files)
|
| 365 |
+
battles = clean_battle_data(log_files)
|
| 366 |
+
|
| 367 |
+
anony_results = report_elo_analysis_results(
|
| 368 |
+
battles, rating_system=args.rating_system, num_bootstrap=args.num_bootstrap, anony_only=True
|
| 369 |
+
)
|
| 370 |
+
full_results = report_elo_analysis_results(
|
| 371 |
+
battles, rating_system=args.rating_system, num_bootstrap=args.num_bootstrap, anony_only=False
|
| 372 |
+
)
|
| 373 |
+
|
| 374 |
+
|
| 375 |
+
print("# Online Elo")
|
| 376 |
+
pretty_print_elo_rating(anony_results["elo_rating_online"])
|
| 377 |
+
print("# Median")
|
| 378 |
+
pretty_print_elo_rating(anony_results["elo_rating_final"])
|
| 379 |
+
print(f"Annoy last update : {anony_results['last_updated_datetime']}")
|
| 380 |
+
print(f"Full last update : {full_results['last_updated_datetime']}")
|
| 381 |
+
|
| 382 |
+
last_updated_tstamp = full_results["last_updated_tstamp"]
|
| 383 |
+
cutoff_date = datetime.datetime.fromtimestamp(
|
| 384 |
+
last_updated_tstamp, tz=timezone("US/Pacific")
|
| 385 |
+
).strftime("%Y%m%d")
|
| 386 |
+
|
| 387 |
+
|
| 388 |
+
results = {
|
| 389 |
+
"anony": anony_results,
|
| 390 |
+
"full": full_results,
|
| 391 |
+
}
|
| 392 |
+
with open("cut_off_date.txt", "w") as fout:
|
| 393 |
+
fout.write(cutoff_date)
|
| 394 |
+
with open(f"elo_results_{cutoff_date}.pkl", "wb") as fout:
|
| 395 |
+
pickle.dump(results, fout)
|
arena_elo/elo_rating/filter_clean_battle_data.py
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import json
|
| 2 |
+
import argparse
|
| 3 |
+
import pandas as pd
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
if __name__ == "__main__":
|
| 7 |
+
parser = argparse.ArgumentParser()
|
| 8 |
+
parser.add_argument("--task_name", type=str, default="image_editing", choices=["image_editing", "t2i_generation", "video_generation"])
|
| 9 |
+
parser.add_argument("--clean-battle-file", type=str)
|
| 10 |
+
parser.add_argument("--model-info-file", type=str)
|
| 11 |
+
|
| 12 |
+
args = parser.parse_args()
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
if args.clean_battle_file:
|
| 16 |
+
print(args.clean_battle_file)
|
| 17 |
+
with open(args.clean_battle_file, 'r') as f:
|
| 18 |
+
battle_data = json.load(f)
|
| 19 |
+
|
| 20 |
+
if args.model_info_file:
|
| 21 |
+
with open(args.model_info_file, 'r') as f:
|
| 22 |
+
model_info = json.load(f)
|
| 23 |
+
|
| 24 |
+
valid_models = set(model_info.keys())
|
| 25 |
+
|
| 26 |
+
filtered_battle_data = [
|
| 27 |
+
entry for entry in battle_data
|
| 28 |
+
if entry['model_a'] in valid_models and entry['model_b'] in valid_models
|
| 29 |
+
]
|
| 30 |
+
|
| 31 |
+
with open(f"filtered_battle_{args.task_name}.json", 'w') as f:
|
| 32 |
+
json.dump(filtered_battle_data, f, indent=2)
|
| 33 |
+
|
| 34 |
+
print(f"Filtered data saved to filtered_battle_{args.task_name}.json")
|
arena_elo/elo_rating/generate_leaderboard.py
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import csv
|
| 2 |
+
import fire
|
| 3 |
+
import json
|
| 4 |
+
import pandas as pd
|
| 5 |
+
import pickle
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
def main(
|
| 9 |
+
model_info_file: str,
|
| 10 |
+
elo_rating_pkl: str,
|
| 11 |
+
output_csv: str
|
| 12 |
+
):
|
| 13 |
+
model_info = {}
|
| 14 |
+
with open(model_info_file, 'r', newline='', encoding='utf-8') as file:
|
| 15 |
+
csv_reader = csv.reader(file)
|
| 16 |
+
header = next(csv_reader)
|
| 17 |
+
for row in csv_reader:
|
| 18 |
+
if len(row) == 8: # Ensure that all columns are present in the row
|
| 19 |
+
name, upload_date, description, parameter_count, creator, result_path, license, link = row
|
| 20 |
+
model_info[name] = {
|
| 21 |
+
"upload_date": upload_date,
|
| 22 |
+
"description": description,
|
| 23 |
+
"parameter_count": parameter_count,
|
| 24 |
+
"creator": creator,
|
| 25 |
+
"result_path": result_path,
|
| 26 |
+
"license": license,
|
| 27 |
+
"link": link
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
with open(elo_rating_pkl, "rb") as fin:
|
| 31 |
+
elo_rating_results = pickle.load(fin)
|
| 32 |
+
|
| 33 |
+
anony_elo_rating_results = elo_rating_results["anony"]
|
| 34 |
+
full_elo_rating_results = elo_rating_results["full"]
|
| 35 |
+
anony_leaderboard_data = anony_elo_rating_results["leaderboard_table_df"]
|
| 36 |
+
full_leaderboard_data = full_elo_rating_results["leaderboard_table_df"]
|
| 37 |
+
|
| 38 |
+
fields = ["key", "Model", "Arena Elo rating (anony)", "Arena Elo rating (full)", "license", "creator", "link"]
|
| 39 |
+
# set creator and license to empty for now
|
| 40 |
+
all_models = anony_leaderboard_data.index.tolist()
|
| 41 |
+
|
| 42 |
+
for model in all_models:
|
| 43 |
+
if not model in model_info:
|
| 44 |
+
model_info[model] = {}
|
| 45 |
+
model_info[model]["license"] = "N/A"
|
| 46 |
+
model_info[model]["creator"] = "N/A"
|
| 47 |
+
model_info[model]["link"] = "N/A"
|
| 48 |
+
print(f"Model {model} not found in model_info.json")
|
| 49 |
+
#continue # 没有 model_info 不显示
|
| 50 |
+
model_info[model]["Model"] = model
|
| 51 |
+
model_info[model]["key"] = model
|
| 52 |
+
|
| 53 |
+
if model in anony_leaderboard_data.index:
|
| 54 |
+
model_info[model]["Arena Elo rating (anony)"] = anony_leaderboard_data.loc[model, "rating"]
|
| 55 |
+
else:
|
| 56 |
+
model_info[model]["Arena Elo rating (anony)"] = 0
|
| 57 |
+
|
| 58 |
+
if model in full_elo_rating_results["leaderboard_table_df"].index:
|
| 59 |
+
model_info[model]["Arena Elo rating (full)"] = full_leaderboard_data.loc[model, "rating"]
|
| 60 |
+
else:
|
| 61 |
+
model_info[model]["Arena Elo rating (full)"] = 0
|
| 62 |
+
# if model in anony_leaderboard_data.index:
|
| 63 |
+
# model_info[model]["Arena Elo rating"] = anony_leaderboard_data.loc[model, "rating"]
|
| 64 |
+
# else:
|
| 65 |
+
# model_info[model]["Arena Elo rating"] = 0
|
| 66 |
+
|
| 67 |
+
final_model_info = {}
|
| 68 |
+
for model in model_info:
|
| 69 |
+
if "Model" in model_info[model]:
|
| 70 |
+
final_model_info[model] = model_info[model]
|
| 71 |
+
model_info = final_model_info
|
| 72 |
+
|
| 73 |
+
exclude_keys = ['starting_from']
|
| 74 |
+
for key in exclude_keys:
|
| 75 |
+
for model in model_info:
|
| 76 |
+
if key in model_info[model]:
|
| 77 |
+
del model_info[model][key]
|
| 78 |
+
df = pd.DataFrame(model_info).T
|
| 79 |
+
df = df[fields]
|
| 80 |
+
# sort by anony rating
|
| 81 |
+
df = df.sort_values(by=["Arena Elo rating (anony)"], ascending=False)
|
| 82 |
+
df.to_csv(output_csv, index=False)
|
| 83 |
+
print("Leaderboard data saved to", output_csv)
|
| 84 |
+
print(df)
|
| 85 |
+
|
| 86 |
+
|
| 87 |
+
if __name__ == "__main__":
|
| 88 |
+
fire.Fire(main)
|
arena_elo/elo_rating/inspect_conv_rating.py
ADDED
|
@@ -0,0 +1,234 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import argparse
|
| 2 |
+
import code
|
| 3 |
+
import datetime
|
| 4 |
+
import json
|
| 5 |
+
import os
|
| 6 |
+
from pytz import timezone
|
| 7 |
+
import time
|
| 8 |
+
|
| 9 |
+
import pandas as pd
|
| 10 |
+
from tqdm import tqdm
|
| 11 |
+
import csv
|
| 12 |
+
|
| 13 |
+
import base64
|
| 14 |
+
from icecream import ic
|
| 15 |
+
from openai import OpenAI
|
| 16 |
+
|
| 17 |
+
# Function to encode the image
|
| 18 |
+
def encode_image(image_path):
|
| 19 |
+
with open(image_path, "rb") as image_file:
|
| 20 |
+
return base64.b64encode(image_file.read()).decode('utf-8')
|
| 21 |
+
|
| 22 |
+
def get_log_files(max_num_files=None):
|
| 23 |
+
dates = []
|
| 24 |
+
for month in [2, 3]:
|
| 25 |
+
for day in range(1, 32):
|
| 26 |
+
dates.append(f"2024-{month:02d}-{day:02d}")
|
| 27 |
+
|
| 28 |
+
num_servers = 1
|
| 29 |
+
filenames = []
|
| 30 |
+
for d in dates:
|
| 31 |
+
for i in range(num_servers):
|
| 32 |
+
# name = os.path.expanduser(f"~/fastchat_logs/server{i}/{d}-conv.json")
|
| 33 |
+
name = os.path.expanduser(f"vision-arena-logs/{d}-conv.json")
|
| 34 |
+
if os.path.exists(name):
|
| 35 |
+
filenames.append(name)
|
| 36 |
+
max_num_files = max_num_files or len(filenames)
|
| 37 |
+
filenames = filenames[-max_num_files:]
|
| 38 |
+
return filenames
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
def pretty_print_conversation(messages):
|
| 42 |
+
for role, msg in messages:
|
| 43 |
+
print(f"[[{role}]]: {msg}")
|
| 44 |
+
|
| 45 |
+
|
| 46 |
+
def get_gpt4v_response(client, img_bs64=None, text_prompt="", use_vision=False):
|
| 47 |
+
if use_vision:
|
| 48 |
+
response = client.chat.completions.create(
|
| 49 |
+
model="gpt-4-vision-preview",
|
| 50 |
+
messages=[
|
| 51 |
+
{
|
| 52 |
+
"role": "user",
|
| 53 |
+
"content": [
|
| 54 |
+
{"type": "text", "text": text_prompt},
|
| 55 |
+
{
|
| 56 |
+
"type": "image_url",
|
| 57 |
+
"image_url": {
|
| 58 |
+
"url": f"data:image/jpeg;base64,{img_bs64}"
|
| 59 |
+
}
|
| 60 |
+
},
|
| 61 |
+
],
|
| 62 |
+
}
|
| 63 |
+
],
|
| 64 |
+
max_tokens=100,
|
| 65 |
+
)
|
| 66 |
+
else:
|
| 67 |
+
response = client.chat.completions.create(
|
| 68 |
+
model="gpt-4-vision-preview",
|
| 69 |
+
messages=[
|
| 70 |
+
{
|
| 71 |
+
"role": "user",
|
| 72 |
+
"content": [
|
| 73 |
+
{"type": "text", "text": text_prompt},
|
| 74 |
+
],
|
| 75 |
+
}
|
| 76 |
+
],
|
| 77 |
+
max_tokens=100,
|
| 78 |
+
)
|
| 79 |
+
return response.choices[0].message.content
|
| 80 |
+
|
| 81 |
+
task_template_map = {
|
| 82 |
+
"image_caption": "Give me the semantic alignment score between the given image and the given caption: \"{generated_sentence}\" on a scale of 0-100. Only reply the score value.",
|
| 83 |
+
"vqa": "Rate the answer correctness regarding the question within the context of the given image on a scale of 0-100. Only reply the score value.",
|
| 84 |
+
"pair_rate_old": "[Instruction]\n\"{instruction}\"\n\n\"{generated_sentence}\"\n\n[System]\nGiven the instruction and the image, please compare the correctness of responses A and B. Reply with \"leftvote\" if you find A better, \"rightvote\" if B is better, \"bothbad_vote\" if both responses are wrong, and \"tievote\" if both responses are equally satisfactory. If you are unable to make a decision, please reply with \"NA\".",
|
| 85 |
+
"pair_rate_wexplanation": "[Instruction]\n\"{instruction}\"\n\n\"{generated_sentence}\"[System]\nPlease act as an impartial judge and evaluate the quality of the responses provided by two AI assistants to the user question displayed below. You should choose the assistant that follows the user’s instructions and answers the user’s question better. Your evaluation should consider factors such as the helpfulness, relevance, accuracy, depth, creativity, and level of detail of their responses. Begin your evaluation by comparing the two responses and provide a short explanation. Avoid any positional biases and ensure that the order in which the responses were presented does not influence your decision. Do not allow the length of the responses to influence your evaluation. Do not favor certain names of the assistants. Be as objective as possible. After providing your explanation, output your final verdict by strictly following this format: \"[[A]]\" if assistant A is better, \"[[B]]\" if assistant B is better, and \"[[C]]\" for a tie.",
|
| 86 |
+
"pair_rate": "[Instruction]\n\"{instruction}\"\n\n\"{generated_sentence}\"\n\n[System]\nPlease act as an impartial judge and evaluate the quality of the responses provided by two AI assistants to the user question displayed below. You should choose the assistant that follows the user’s instructions and answers the user’s question better. Your evaluation should consider factors such as the helpfulness, relevance, accuracy, depth, creativity, and level of detail of their responses. Begin your evaluation by comparing the two responses and provide a short explanation. Avoid any positional biases and ensure that the order in which the responses were presented does not influence your decision. Do not allow the length of the responses to influence your evaluation. Do not favor certain names of the assistants. Be as objective as possible. Reply with \"leftvote\" if you find assistant A better, \"rightvote\" if assistant B is better, \"bothbad_vote\" if both responses are wrong, and \"tievote\" if both assistants provide equally satisfactory answers. If you are unable to make a decision, please reply with \"NA\"."
|
| 87 |
+
}
|
| 88 |
+
|
| 89 |
+
def inspect_convs(log_files):
|
| 90 |
+
ic(log_files)
|
| 91 |
+
data = []
|
| 92 |
+
total_vote = 0
|
| 93 |
+
correct_vote = 0
|
| 94 |
+
|
| 95 |
+
client = OpenAI()
|
| 96 |
+
with open('all_pairvote_log_wgpt_prtchatbot.csv', 'w', newline='') as csvfile:
|
| 97 |
+
# fieldnames = ['tstamp', 'type', 'model_1', 'model_2', 'template_name_1', 'template_name_2', 'system_message_1', 'system_message_2', 'role_1', 'role_2', 'instruction_1', 'instruction_2', 'message_1', 'message_2', 'offset_1', 'offset_2', 'conv_id_1', 'conv_id_2', 'model_name_1', 'model_name_2', 'ip']
|
| 98 |
+
fieldnames = ['tstamp', 'type', 'models', 'states', 'ip', 'gpt_vote']
|
| 99 |
+
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
|
| 100 |
+
|
| 101 |
+
# Write the header
|
| 102 |
+
writer.writeheader()
|
| 103 |
+
|
| 104 |
+
for filename in tqdm(log_files, desc="read files"):
|
| 105 |
+
for retry in range(5):
|
| 106 |
+
try:
|
| 107 |
+
lines = open(filename).readlines()
|
| 108 |
+
break
|
| 109 |
+
except FileNotFoundError:
|
| 110 |
+
time.sleep(2)
|
| 111 |
+
|
| 112 |
+
for l in lines:
|
| 113 |
+
row = json.loads(l)
|
| 114 |
+
|
| 115 |
+
if "states" not in row:
|
| 116 |
+
continue
|
| 117 |
+
if row["type"] not in ["leftvote", "rightvote", "bothbad_vote", "tievote"]:
|
| 118 |
+
continue
|
| 119 |
+
|
| 120 |
+
model_names = row["states"][0]["model_name"], row["states"][1]["model_name"]
|
| 121 |
+
|
| 122 |
+
|
| 123 |
+
# Iterate through each state and write the relevant information
|
| 124 |
+
if not len(row["states"][0]['messages']): continue
|
| 125 |
+
# ic(row["states"][0]['messages'][1][1])
|
| 126 |
+
|
| 127 |
+
if row["states"][0]['messages'][1][1] is None or row["states"][1]['messages'][1][1] is None or "NETWORK ERROR" in row["states"][0]['messages'][1][1] or "NETWORK ERROR" in row["states"][1]['messages'][1][1]: continue
|
| 128 |
+
total_vote += 1
|
| 129 |
+
# row = {
|
| 130 |
+
# 'tstamp': row['tstamp'],
|
| 131 |
+
# 'type': row['type'],
|
| 132 |
+
# 'model_1': row['models'][0],
|
| 133 |
+
# 'model_2': row['models'][1],
|
| 134 |
+
# 'template_name_1': row["states"][0]['template_name'],
|
| 135 |
+
# 'system_message_1': row["states"][0]['system_message'],
|
| 136 |
+
# 'template_name_2': row["states"][1]['template_name'],
|
| 137 |
+
# 'system_message_2': row["states"][1]['system_message'],
|
| 138 |
+
# 'role_1': row["states"][0]['roles'],
|
| 139 |
+
# 'role_2': row["states"][1]['roles'],
|
| 140 |
+
# 'instruction_1': row["states"][0]['messages'][0][1],
|
| 141 |
+
# 'instruction_2': row["states"][1]['messages'][0][1],
|
| 142 |
+
# 'message_1': row["states"][0]['messages'][1][1],
|
| 143 |
+
# 'message_2': row["states"][1]['messages'][1][1],
|
| 144 |
+
# 'offset_1': row["states"][0]['offset'],
|
| 145 |
+
# 'offset_2': row["states"][1]['offset'],
|
| 146 |
+
# 'conv_id_1': row["states"][0]['conv_id'],
|
| 147 |
+
# 'conv_id_2': row["states"][1]['conv_id'],
|
| 148 |
+
# 'model_name_1': row["states"][0]['model_name'],
|
| 149 |
+
# 'model_name_2': row["states"][1]['model_name'],
|
| 150 |
+
# 'ip': row['ip']
|
| 151 |
+
# }
|
| 152 |
+
# writer.writerow(row)
|
| 153 |
+
# Convert complex objects to JSON strings
|
| 154 |
+
# TODO: check two image are the same
|
| 155 |
+
conv_id = row["states"][0]['conv_id']
|
| 156 |
+
image_path = os.path.join("/local/home/yujielu/project/Arena-Elo/vision-arena-logs", os.path.basename(filename)[:-5]+"input_images", f"input_image_{conv_id}.png")
|
| 157 |
+
if not os.path.exists(image_path):
|
| 158 |
+
response = "NA"
|
| 159 |
+
ic(image_path)
|
| 160 |
+
else:
|
| 161 |
+
base64_image = encode_image(image_path)
|
| 162 |
+
left_response = row["states"][0]['messages'][1][1]
|
| 163 |
+
right_response = row["states"][1]['messages'][1][1]
|
| 164 |
+
sep = "-" * 20
|
| 165 |
+
instruction = row["states"][0]['messages'][0][1]
|
| 166 |
+
generated_sentence = f"[The Start of Assistant A’s Answer]\n{left_response}\n[The End of Assistant A’s Answer]\n\n[The Start of Assistant B’s Answer]\n{right_response}\n[The End of Assistant B’s Answer]"
|
| 167 |
+
text_prompt = task_template_map["pair_rate"].format(instruction=instruction, generated_sentence=generated_sentence)
|
| 168 |
+
# ic(text_prompt)
|
| 169 |
+
try:
|
| 170 |
+
response = get_gpt4v_response(client, img_bs64=base64_image, text_prompt=text_prompt, use_vision=True)
|
| 171 |
+
except:
|
| 172 |
+
ic(">>> skip")
|
| 173 |
+
response = "NA"
|
| 174 |
+
|
| 175 |
+
# response = get_gpt4v_response(client, img_bs64=base64_image, text_prompt=text_prompt, use_vision=True)
|
| 176 |
+
ic(row['type'], response)
|
| 177 |
+
if response.strip() not in ["leftvote", "rightvote", "bothbad_vote", "tievote"]:
|
| 178 |
+
response = "NA"
|
| 179 |
+
# ic(generated_sentence)
|
| 180 |
+
|
| 181 |
+
# if row['type'] == "leftvote":
|
| 182 |
+
# row['type'] = "A"
|
| 183 |
+
# elif row['type'] == "rightvote":
|
| 184 |
+
# row['type'] = "B"
|
| 185 |
+
# elif row['type'] in ["bothbad_vote", "tievote"]:
|
| 186 |
+
# row['type'] = "C"
|
| 187 |
+
if row['type'] == response.strip():
|
| 188 |
+
correct_vote += 1
|
| 189 |
+
row['models'] = json.dumps(row['models'])
|
| 190 |
+
row['states'] = json.dumps(row['states'], ensure_ascii=False)
|
| 191 |
+
row['gpt_vote'] = response
|
| 192 |
+
|
| 193 |
+
# Write the modified row to the CSV file
|
| 194 |
+
writer.writerow(row)
|
| 195 |
+
# if row["type"] == "leftvote":
|
| 196 |
+
# winner, loser = model_names[0], model_names[1]
|
| 197 |
+
# winner_conv, loser_conv = row["states"][0], row["states"][1]
|
| 198 |
+
# elif row["type"] == "rightvote":
|
| 199 |
+
# loser, winner = model_names[0], model_names[1]
|
| 200 |
+
# loser_conv, winner_conv = row["states"][0], row["states"][1]
|
| 201 |
+
|
| 202 |
+
# if loser == "llava-v1.5-13b" and winner == "llava-v1.5-13b":
|
| 203 |
+
# print("=" * 20)
|
| 204 |
+
# print(f"Winner: {winner}")
|
| 205 |
+
# pretty_print_conversation(winner_conv["messages"])
|
| 206 |
+
# print(f"Loser: {loser}")
|
| 207 |
+
# pretty_print_conversation(loser_conv["messages"])
|
| 208 |
+
# print("=" * 20)
|
| 209 |
+
# input()
|
| 210 |
+
# if row['type'] == 'bothbad_vote':
|
| 211 |
+
# from icecream import ic
|
| 212 |
+
# ic(model_names)
|
| 213 |
+
# if row["type"] == "bothbad_vote" and "gpt-4-vision-preview" in model_names:
|
| 214 |
+
# print("=" * 20)
|
| 215 |
+
# print(f"Model A: {model_names[0]}")
|
| 216 |
+
# pretty_print_conversation(row["states"][0]["messages"])
|
| 217 |
+
# print(f"Model B: {model_names[1]}")
|
| 218 |
+
# pretty_print_conversation(row["states"][1]["messages"])
|
| 219 |
+
# print("=" * 20)
|
| 220 |
+
# input()
|
| 221 |
+
# if correct_vote >= 300: break
|
| 222 |
+
ic(total_vote, correct_vote)
|
| 223 |
+
|
| 224 |
+
|
| 225 |
+
if __name__ == "__main__":
|
| 226 |
+
parser = argparse.ArgumentParser()
|
| 227 |
+
parser.add_argument("--max-num-files", type=int)
|
| 228 |
+
args = parser.parse_args()
|
| 229 |
+
|
| 230 |
+
log_files = get_log_files(args.max_num_files)
|
| 231 |
+
|
| 232 |
+
|
| 233 |
+
|
| 234 |
+
inspect_convs(log_files)
|
arena_elo/elo_rating/inspect_cost.py
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import fire
|
| 2 |
+
import time
|
| 3 |
+
import json
|
| 4 |
+
from collections import defaultdict
|
| 5 |
+
from .basic_stats import get_log_files, NUM_SERVERS, LOG_ROOT_DIR
|
| 6 |
+
from .utils import detect_language, get_time_stamp_from_date, get_input_image_path, load_image_from_path
|
| 7 |
+
from tqdm import tqdm
|
| 8 |
+
VOTES = ["tievote", "leftvote", "rightvote", "bothbad_vote", "chat"]
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
def remove_html(raw):
|
| 12 |
+
if raw.startswith("<h3>"):
|
| 13 |
+
return raw[raw.find(": ") + 2 : -len("</h3>\n")]
|
| 14 |
+
if raw.startswith("### Model A: ") or raw.startswith("### Model B: "):
|
| 15 |
+
return raw[13:]
|
| 16 |
+
return raw
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
def read_file(filename):
|
| 20 |
+
data = []
|
| 21 |
+
for retry in range(5):
|
| 22 |
+
try:
|
| 23 |
+
# lines = open(filename).readlines()
|
| 24 |
+
for l in open(filename):
|
| 25 |
+
row = json.loads(l)
|
| 26 |
+
if row["type"] in VOTES:
|
| 27 |
+
data.append(row)
|
| 28 |
+
break
|
| 29 |
+
except FileNotFoundError:
|
| 30 |
+
time.sleep(2)
|
| 31 |
+
return data
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
def read_file_parallel(log_files, num_threads=16):
|
| 35 |
+
data_all = []
|
| 36 |
+
from multiprocessing import Pool
|
| 37 |
+
|
| 38 |
+
with Pool(num_threads) as p:
|
| 39 |
+
ret_all = list(tqdm(p.imap(read_file, log_files), total=len(log_files)))
|
| 40 |
+
for ret in ret_all:
|
| 41 |
+
data_all.extend(ret)
|
| 42 |
+
return data_all
|
| 43 |
+
|
| 44 |
+
def num_tokens(s:str):
|
| 45 |
+
if s is None:
|
| 46 |
+
return 0
|
| 47 |
+
return len(s) / 4
|
| 48 |
+
|
| 49 |
+
def main(
|
| 50 |
+
):
|
| 51 |
+
log_files = get_log_files()
|
| 52 |
+
data = read_file_parallel(log_files)
|
| 53 |
+
|
| 54 |
+
all_model_counts = defaultdict(int)
|
| 55 |
+
all_model_input_tokens_counts = defaultdict(list)
|
| 56 |
+
all_model_output_tokens_counts = defaultdict(list)
|
| 57 |
+
all_model_image_sizes = defaultdict(list)
|
| 58 |
+
chat_battle_counts = defaultdict(int)
|
| 59 |
+
for row in tqdm(data, desc="counting"):
|
| 60 |
+
if row['type'] == "chat":
|
| 61 |
+
chat_battle_counts["chat"] += 1
|
| 62 |
+
all_model_counts[row['model']] += 1
|
| 63 |
+
tstamp = row["tstamp"]
|
| 64 |
+
conv_id = row["state"]["conv_id"]
|
| 65 |
+
|
| 66 |
+
image = load_image_from_path(get_input_image_path(tstamp, conv_id))
|
| 67 |
+
if image is None:
|
| 68 |
+
image_size = None
|
| 69 |
+
else:
|
| 70 |
+
image_size = load_image_from_path(get_input_image_path(tstamp, conv_id)).size
|
| 71 |
+
all_model_image_sizes[row['model']].append(image_size)
|
| 72 |
+
try:
|
| 73 |
+
for message in row["state"]["messages"][row["state"]["offset"] :: 2]:
|
| 74 |
+
all_model_input_tokens_counts[row['model']].append(num_tokens(message[1]))
|
| 75 |
+
for message in row["state"]["messages"][row["state"]["offset"] + 1 :: 2]:
|
| 76 |
+
all_model_output_tokens_counts[row['model']].append(num_tokens(message[1]))
|
| 77 |
+
except Exception as e:
|
| 78 |
+
print(row)
|
| 79 |
+
raise e
|
| 80 |
+
|
| 81 |
+
else:
|
| 82 |
+
chat_battle_counts[row['type']] += 1
|
| 83 |
+
if row["models"][0] is None or row["models"][1] is None:
|
| 84 |
+
continue
|
| 85 |
+
|
| 86 |
+
# Resolve model names
|
| 87 |
+
models_public = [remove_html(row["models"][0]), remove_html(row["models"][1])]
|
| 88 |
+
if "model_name" in row["states"][0]:
|
| 89 |
+
models_hidden = [
|
| 90 |
+
row["states"][0]["model_name"],
|
| 91 |
+
row["states"][1]["model_name"],
|
| 92 |
+
]
|
| 93 |
+
if models_hidden[0] is None:
|
| 94 |
+
models_hidden = models_public
|
| 95 |
+
else:
|
| 96 |
+
models_hidden = models_public
|
| 97 |
+
|
| 98 |
+
if (models_public[0] == "" and models_public[1] != "") or (
|
| 99 |
+
models_public[1] == "" and models_public[0] != ""
|
| 100 |
+
):
|
| 101 |
+
continue
|
| 102 |
+
|
| 103 |
+
if models_public[0] == "" or models_public[0] == "Model A":
|
| 104 |
+
anony = True
|
| 105 |
+
models = models_hidden
|
| 106 |
+
else:
|
| 107 |
+
anony = False
|
| 108 |
+
models = models_public
|
| 109 |
+
if not models_public == models_hidden:
|
| 110 |
+
continue
|
| 111 |
+
|
| 112 |
+
all_model_counts[models[0]] += 1
|
| 113 |
+
all_model_counts[models[1]] += 1
|
| 114 |
+
tstamp = row["tstamp"]
|
| 115 |
+
conv_id1 = row["states"][0]["conv_id"]
|
| 116 |
+
conv_id2 = row["states"][1]["conv_id"]
|
| 117 |
+
|
| 118 |
+
image1 = load_image_from_path(get_input_image_path(tstamp, conv_id1))
|
| 119 |
+
image2 = load_image_from_path(get_input_image_path(tstamp, conv_id2))
|
| 120 |
+
all_model_image_sizes[models[0]].append(None if image1 is None else image1.size)
|
| 121 |
+
all_model_image_sizes[models[1]].append(None if image2 is None else image2.size)
|
| 122 |
+
|
| 123 |
+
for message in row["states"][0]["messages"][row["states"][0]["offset"] :: 2]:
|
| 124 |
+
all_model_input_tokens_counts[models[0]].append(num_tokens(message[1]))
|
| 125 |
+
for message in row["states"][0]["messages"][row["states"][0]["offset"] + 1 :: 2]:
|
| 126 |
+
all_model_output_tokens_counts[models[0]].append(num_tokens(message[1]))
|
| 127 |
+
for message in row["states"][1]["messages"][row["states"][1]["offset"] :: 2]:
|
| 128 |
+
all_model_input_tokens_counts[models[1]].append(num_tokens(message[1]))
|
| 129 |
+
for message in row["states"][1]["messages"][row["states"][1]["offset"] + 1 :: 2]:
|
| 130 |
+
all_model_output_tokens_counts[models[1]].append(num_tokens(message[1]))
|
| 131 |
+
|
| 132 |
+
print("### Chat battle counts (requests)")
|
| 133 |
+
print(json.dumps(chat_battle_counts, indent=4))
|
| 134 |
+
|
| 135 |
+
print("### Model counts (requests)")
|
| 136 |
+
print(json.dumps(all_model_counts, indent=4))
|
| 137 |
+
|
| 138 |
+
print("### Model Avg input tokens counts (tokens)")
|
| 139 |
+
average_input_tokens_counts = {}
|
| 140 |
+
for model, counts in all_model_input_tokens_counts.items():
|
| 141 |
+
average_input_tokens_counts[model] = sum(counts) / len(counts)
|
| 142 |
+
print(json.dumps(average_input_tokens_counts, indent=4))
|
| 143 |
+
|
| 144 |
+
print("### Model AVg output tokens counts (tokens)")
|
| 145 |
+
average_output_tokens_counts = {}
|
| 146 |
+
for model, counts in all_model_output_tokens_counts.items():
|
| 147 |
+
average_output_tokens_counts[model] = sum(counts) / len(counts)
|
| 148 |
+
print(json.dumps(average_output_tokens_counts, indent=4))
|
| 149 |
+
|
| 150 |
+
print("### Model Avg image sizes (height, width)")
|
| 151 |
+
average_image_sizes = {}
|
| 152 |
+
for model, sizes in all_model_image_sizes.items():
|
| 153 |
+
avg_height = sum([size[0] for size in sizes if size is not None]) / len(sizes)
|
| 154 |
+
avg_width = sum([size[1] for size in sizes if size is not None]) / len(sizes)
|
| 155 |
+
average_image_sizes[model] = (avg_height, avg_width)
|
| 156 |
+
print(json.dumps(average_image_sizes, indent=4))
|
| 157 |
+
|
| 158 |
+
print("### GPT-4V estimated cost (USD)")
|
| 159 |
+
gpt_4v_name = "gpt-4-vision-preview"
|
| 160 |
+
gpt_4v_cost = {}
|
| 161 |
+
gpt_4v_cost['input'] = sum(all_model_input_tokens_counts[gpt_4v_name]) / 1000 * 0.01
|
| 162 |
+
gpt_4v_cost['output'] = sum(all_model_output_tokens_counts[gpt_4v_name]) / 1000 * 0.03
|
| 163 |
+
|
| 164 |
+
all_image_cost = 0
|
| 165 |
+
for size in all_model_image_sizes[gpt_4v_name]:
|
| 166 |
+
if size is None:
|
| 167 |
+
continue
|
| 168 |
+
all_image_tokens = (size[0] // 512 + 1) * (size[1] // 512 + 1) * 170 + 85
|
| 169 |
+
all_image_cost += all_image_tokens / 1000 * 0.01
|
| 170 |
+
gpt_4v_cost['image'] = all_image_cost
|
| 171 |
+
print(json.dumps(gpt_4v_cost, indent=4))
|
| 172 |
+
|
| 173 |
+
|
| 174 |
+
|
| 175 |
+
|
| 176 |
+
if __name__ == "__main__":
|
| 177 |
+
fire.Fire(main)
|
arena_elo/elo_rating/inspect_elo_rating_pkl.py
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pickle
|
| 2 |
+
import plotly.graph_objects as go
|
| 3 |
+
|
| 4 |
+
def output_figure(data, figure_name="battle_count_heatmap", label="annoy"):
|
| 5 |
+
fig = data[label][figure_name]
|
| 6 |
+
fig.update_layout(
|
| 7 |
+
height=700,
|
| 8 |
+
width=700,
|
| 9 |
+
title={'text': f'{figure_name}', 'x': 0.5, 'y': 0.07},
|
| 10 |
+
xaxis_title="Model B",
|
| 11 |
+
yaxis_title="Model A",
|
| 12 |
+
# coloraxis_colorscale=[[0.0, '#0d0887'], [1.0, '#f0f921']],
|
| 13 |
+
margin={'t': 60}
|
| 14 |
+
)
|
| 15 |
+
fig.write_image(f"{figure_name}.png")
|
| 16 |
+
|
| 17 |
+
with open("./results/latest/elo_results.pkl",'rb') as f:
|
| 18 |
+
data = pickle.load(f)
|
| 19 |
+
print()
|
| 20 |
+
df = data["anony"]["leaderboard_table_df"]
|
| 21 |
+
# sort by rating
|
| 22 |
+
print(data["anony"].keys())
|
| 23 |
+
|
| 24 |
+
for figure_name in [ 'win_fraction_heatmap', 'battle_count_heatmap',]:
|
| 25 |
+
output_figure(data, figure_name, "anony")
|
| 26 |
+
|
| 27 |
+
df = df.sort_values(by=["rating"], ascending=False)
|
| 28 |
+
print(df)
|
| 29 |
+
df = data["full"]["leaderboard_table_df"]
|
| 30 |
+
# sort by rating
|
| 31 |
+
df = df.sort_values(by=["rating"], ascending=False)
|
| 32 |
+
print(df)
|
| 33 |
+
print('done')
|
arena_elo/elo_rating/model_registry.py
ADDED
|
@@ -0,0 +1,578 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Additional information of the models."""
|
| 2 |
+
from collections import namedtuple, OrderedDict
|
| 3 |
+
from typing import List
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
ModelInfo = namedtuple("ModelInfo", ["simple_name", "link", "description"])
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
model_info = OrderedDict()
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
def register_model_info(
|
| 13 |
+
full_names: List[str], simple_name: str, link: str, description: str
|
| 14 |
+
):
|
| 15 |
+
info = ModelInfo(simple_name, link, description)
|
| 16 |
+
|
| 17 |
+
for full_name in full_names:
|
| 18 |
+
model_info[full_name] = info
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
def get_model_info(name: str) -> ModelInfo:
|
| 22 |
+
if name in model_info:
|
| 23 |
+
return model_info[name]
|
| 24 |
+
else:
|
| 25 |
+
# To fix this, please use `register_model_info` to register your model
|
| 26 |
+
return ModelInfo(
|
| 27 |
+
name, "", "Register the description at arena.model/model_registry.py"
|
| 28 |
+
)
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
register_model_info(
|
| 32 |
+
[
|
| 33 |
+
"IEITYuan/Yuan2-2B-Janus-hf",
|
| 34 |
+
"IEITYuan/Yuan2-2B-hf",
|
| 35 |
+
"IEITYuan/Yuan2-51B-hf",
|
| 36 |
+
"IEITYuan/Yuan2-102B-hf",
|
| 37 |
+
],
|
| 38 |
+
"IEIT-Yuan2",
|
| 39 |
+
"https://github.com/IEIT-Yuan/Yuan-2.0",
|
| 40 |
+
"Yuan2.0 is a new generation Fundamental Large Language Model developed by IEIT System.",
|
| 41 |
+
)
|
| 42 |
+
|
| 43 |
+
register_model_info(
|
| 44 |
+
["mixtral-8x7b-instruct-v0.1", "mistral-7b-instruct"],
|
| 45 |
+
"Mixtral of experts",
|
| 46 |
+
"https://mistral.ai/news/mixtral-of-experts/",
|
| 47 |
+
"A Mixture-of-Experts model by Mistral AI",
|
| 48 |
+
)
|
| 49 |
+
|
| 50 |
+
register_model_info(
|
| 51 |
+
["gemini-pro"],
|
| 52 |
+
"Gemini",
|
| 53 |
+
"https://blog.google/technology/ai/google-gemini-pro-imagen-duet-ai-update/",
|
| 54 |
+
"Gemini by Google",
|
| 55 |
+
)
|
| 56 |
+
|
| 57 |
+
register_model_info(
|
| 58 |
+
["gemini-pro-vision"],
|
| 59 |
+
"Gemini",
|
| 60 |
+
"https://blog.google/technology/ai/google-gemini-pro-imagen-duet-ai-update/",
|
| 61 |
+
"Gemini by Google",
|
| 62 |
+
)
|
| 63 |
+
|
| 64 |
+
register_model_info(
|
| 65 |
+
["solar-10.7b-instruct-v1.0"],
|
| 66 |
+
"SOLAR-10.7B-Instruct",
|
| 67 |
+
"https://huggingface.co/upstage/SOLAR-10.7B-Instruct-v1.0",
|
| 68 |
+
"A model trained using depth up-scaling by Upstage AI",
|
| 69 |
+
)
|
| 70 |
+
|
| 71 |
+
register_model_info(
|
| 72 |
+
["gpt-4-turbo"],
|
| 73 |
+
"GPT-4-Turbo",
|
| 74 |
+
"https://platform.openai.com/docs/models/gpt-4-and-gpt-4-turbo",
|
| 75 |
+
"GPT-4-Turbo by OpenAI",
|
| 76 |
+
)
|
| 77 |
+
|
| 78 |
+
register_model_info(
|
| 79 |
+
["gpt-4-vision-preview"],
|
| 80 |
+
"gpt-4-vision-preview",
|
| 81 |
+
"https://platform.openai.com/docs/models/gpt-4-and-gpt-4-turbo",
|
| 82 |
+
"GPT-4(V) by OpenAI",
|
| 83 |
+
)
|
| 84 |
+
|
| 85 |
+
register_model_info(
|
| 86 |
+
["gpt-3.5-turbo", "gpt-3.5-turbo-0314", "gpt-3.5-turbo-0613", "gpt-3.5-turbo-1106"],
|
| 87 |
+
"GPT-3.5",
|
| 88 |
+
"https://platform.openai.com/docs/models/gpt-3-5",
|
| 89 |
+
"GPT-3.5-Turbo by OpenAI",
|
| 90 |
+
)
|
| 91 |
+
|
| 92 |
+
register_model_info(
|
| 93 |
+
["gpt-4", "gpt-4-0314", "gpt-4-0613"],
|
| 94 |
+
"GPT-4",
|
| 95 |
+
"https://openai.com/research/gpt-4",
|
| 96 |
+
"GPT-4 by OpenAI",
|
| 97 |
+
)
|
| 98 |
+
|
| 99 |
+
register_model_info(
|
| 100 |
+
["claude-2.1", "claude-2.0"],
|
| 101 |
+
"Claude",
|
| 102 |
+
"https://www.anthropic.com/index/claude-2",
|
| 103 |
+
"Claude 2 by Anthropic",
|
| 104 |
+
)
|
| 105 |
+
|
| 106 |
+
register_model_info(
|
| 107 |
+
["claude-1"],
|
| 108 |
+
"Claude",
|
| 109 |
+
"https://www.anthropic.com/index/introducing-claude",
|
| 110 |
+
"Claude 1 by Anthropic",
|
| 111 |
+
)
|
| 112 |
+
|
| 113 |
+
register_model_info(
|
| 114 |
+
["claude-instant-1", "claude-instant-1.2"],
|
| 115 |
+
"Claude Instant",
|
| 116 |
+
"https://www.anthropic.com/index/introducing-claude",
|
| 117 |
+
"Claude Instant by Anthropic",
|
| 118 |
+
)
|
| 119 |
+
|
| 120 |
+
register_model_info(
|
| 121 |
+
["pplx-70b-online", "pplx-7b-online"],
|
| 122 |
+
"pplx-online-llms",
|
| 123 |
+
"https://blog.perplexity.ai/blog/introducing-pplx-online-llms",
|
| 124 |
+
"Online LLM API by Perplexity AI",
|
| 125 |
+
)
|
| 126 |
+
|
| 127 |
+
register_model_info(
|
| 128 |
+
["openhermes-2.5-mistral-7b"],
|
| 129 |
+
"OpenHermes-2.5-Mistral-7B",
|
| 130 |
+
"https://huggingface.co/teknium/OpenHermes-2.5-Mistral-7B",
|
| 131 |
+
"a mistral-based model fine-tuned on 1M GPT-4 outputs",
|
| 132 |
+
)
|
| 133 |
+
|
| 134 |
+
register_model_info(
|
| 135 |
+
["starling-lm-7b-alpha"],
|
| 136 |
+
"Starling-LM-7B-alpha",
|
| 137 |
+
"https://huggingface.co/berkeley-nest/Starling-LM-7B-alpha",
|
| 138 |
+
"an open model trained using RLAIF by Berkeley",
|
| 139 |
+
)
|
| 140 |
+
|
| 141 |
+
register_model_info(
|
| 142 |
+
["tulu-2-dpo-70b"],
|
| 143 |
+
"Tulu 2",
|
| 144 |
+
"https://huggingface.co/allenai/tulu-2-dpo-70b",
|
| 145 |
+
"an instruction and RLHF model by UW/AllenAI",
|
| 146 |
+
)
|
| 147 |
+
|
| 148 |
+
register_model_info(
|
| 149 |
+
["yi-34b-chat", "yi-6b-chat"],
|
| 150 |
+
"Yi-Chat",
|
| 151 |
+
"https://huggingface.co/01-ai/Yi-34B-Chat",
|
| 152 |
+
"A large language model by 01 AI",
|
| 153 |
+
)
|
| 154 |
+
|
| 155 |
+
register_model_info(
|
| 156 |
+
["llama-2-70b-chat", "llama-2-34b-chat", "llama-2-13b-chat", "llama-2-7b-chat"],
|
| 157 |
+
"Llama 2",
|
| 158 |
+
"https://ai.meta.com/llama/",
|
| 159 |
+
"open foundation and fine-tuned chat models by Meta",
|
| 160 |
+
)
|
| 161 |
+
|
| 162 |
+
register_model_info(
|
| 163 |
+
[
|
| 164 |
+
"vicuna-33b",
|
| 165 |
+
"vicuna-33b-v1.3",
|
| 166 |
+
"vicuna-13b",
|
| 167 |
+
"vicuna-13b-v1.3",
|
| 168 |
+
"vicuna-7b",
|
| 169 |
+
"vicuna-7b-v1.3",
|
| 170 |
+
],
|
| 171 |
+
"Vicuna",
|
| 172 |
+
"https://lmsys.org/blog/2023-03-30-vicuna/",
|
| 173 |
+
"a chat assistant fine-tuned on user-shared conversations by LMSYS",
|
| 174 |
+
)
|
| 175 |
+
|
| 176 |
+
register_model_info(
|
| 177 |
+
["chatglm3-6b", "chatglm2-6b", "chatglm-6b"],
|
| 178 |
+
"ChatGLM",
|
| 179 |
+
"https://chatglm.cn/blog",
|
| 180 |
+
"an open bilingual dialogue language model by Tsinghua University",
|
| 181 |
+
)
|
| 182 |
+
|
| 183 |
+
register_model_info(
|
| 184 |
+
["openchat-3.5"],
|
| 185 |
+
"OpenChat 3.5",
|
| 186 |
+
"https://github.com/imoneoi/openchat",
|
| 187 |
+
"an open model fine-tuned on Mistral-7B using C-RLFT",
|
| 188 |
+
)
|
| 189 |
+
|
| 190 |
+
register_model_info(
|
| 191 |
+
["tenyxchat-7b-v1"],
|
| 192 |
+
"TenyxChat-7B",
|
| 193 |
+
"https://huggingface.co/tenyx/TenyxChat-7B-v1",
|
| 194 |
+
"an open model DPO trained on top of OpenChat-3.5 using Tenyx fine-tuning",
|
| 195 |
+
)
|
| 196 |
+
|
| 197 |
+
register_model_info(
|
| 198 |
+
["zephyr-7b-beta", "zephyr-7b-alpha"],
|
| 199 |
+
"Zephyr",
|
| 200 |
+
"https://huggingface.co/HuggingFaceH4/zephyr-7b-alpha",
|
| 201 |
+
"a chatbot fine-tuned from Mistral by Hugging Face",
|
| 202 |
+
)
|
| 203 |
+
|
| 204 |
+
register_model_info(
|
| 205 |
+
["notus-7b-v1"],
|
| 206 |
+
"Notus",
|
| 207 |
+
"https://huggingface.co/argilla/notus-7b-v1",
|
| 208 |
+
"a chatbot fine-tuned from Zephyr SFT by Argilla",
|
| 209 |
+
)
|
| 210 |
+
|
| 211 |
+
register_model_info(
|
| 212 |
+
["catppt"],
|
| 213 |
+
"CatPPT",
|
| 214 |
+
"https://huggingface.co/rishiraj/CatPPT",
|
| 215 |
+
"a chatbot fine-tuned from a SLERP merged model by Rishiraj Acharya",
|
| 216 |
+
)
|
| 217 |
+
|
| 218 |
+
register_model_info(
|
| 219 |
+
["TinyLlama"],
|
| 220 |
+
"TinyLlama",
|
| 221 |
+
"https://huggingface.co/TinyLlama/TinyLlama-1.1B-Chat-v1.0",
|
| 222 |
+
"The TinyLlama project is an open endeavor to pretrain a 1.1B Llama model on 3 trillion tokens.",
|
| 223 |
+
)
|
| 224 |
+
|
| 225 |
+
register_model_info(
|
| 226 |
+
["qwen-14b-chat"],
|
| 227 |
+
"Qwen",
|
| 228 |
+
"https://huggingface.co/Qwen/Qwen-14B-Chat",
|
| 229 |
+
"a large language model by Alibaba Cloud",
|
| 230 |
+
)
|
| 231 |
+
|
| 232 |
+
register_model_info(
|
| 233 |
+
["codellama-34b-instruct", "codellama-13b-instruct", "codellama-7b-instruct"],
|
| 234 |
+
"Code Llama",
|
| 235 |
+
"https://ai.meta.com/blog/code-llama-large-language-model-coding/",
|
| 236 |
+
"open foundation models for code by Meta",
|
| 237 |
+
)
|
| 238 |
+
|
| 239 |
+
register_model_info(
|
| 240 |
+
["wizardlm-70b", "wizardlm-30b", "wizardlm-13b"],
|
| 241 |
+
"WizardLM",
|
| 242 |
+
"https://github.com/nlpxucan/WizardLM",
|
| 243 |
+
"an instruction-following LLM using evol-instruct by Microsoft",
|
| 244 |
+
)
|
| 245 |
+
|
| 246 |
+
register_model_info(
|
| 247 |
+
["wizardcoder-15b-v1.0"],
|
| 248 |
+
"WizardLM",
|
| 249 |
+
"https://github.com/nlpxucan/WizardLM/tree/main/WizardCoder",
|
| 250 |
+
"Empowering Code Large Language Models with Evol-Instruct",
|
| 251 |
+
)
|
| 252 |
+
|
| 253 |
+
register_model_info(
|
| 254 |
+
["mpt-7b-chat", "mpt-30b-chat"],
|
| 255 |
+
"MPT-Chat",
|
| 256 |
+
"https://www.mosaicml.com/blog/mpt-30b",
|
| 257 |
+
"a chatbot fine-tuned from MPT by MosaicML",
|
| 258 |
+
)
|
| 259 |
+
|
| 260 |
+
register_model_info(
|
| 261 |
+
["guanaco-33b", "guanaco-65b"],
|
| 262 |
+
"Guanaco",
|
| 263 |
+
"https://github.com/artidoro/qlora",
|
| 264 |
+
"a model fine-tuned with QLoRA by UW",
|
| 265 |
+
)
|
| 266 |
+
|
| 267 |
+
register_model_info(
|
| 268 |
+
["gpt4all-13b-snoozy"],
|
| 269 |
+
"GPT4All-Snoozy",
|
| 270 |
+
"https://github.com/nomic-ai/gpt4all",
|
| 271 |
+
"a finetuned LLaMA model on assistant style data by Nomic AI",
|
| 272 |
+
)
|
| 273 |
+
|
| 274 |
+
register_model_info(
|
| 275 |
+
["koala-13b"],
|
| 276 |
+
"Koala",
|
| 277 |
+
"https://bair.berkeley.edu/blog/2023/04/03/koala",
|
| 278 |
+
"a dialogue model for academic research by BAIR",
|
| 279 |
+
)
|
| 280 |
+
|
| 281 |
+
register_model_info(
|
| 282 |
+
["RWKV-4-Raven-14B"],
|
| 283 |
+
"RWKV-4-Raven",
|
| 284 |
+
"https://huggingface.co/BlinkDL/rwkv-4-raven",
|
| 285 |
+
"an RNN with transformer-level LLM performance",
|
| 286 |
+
)
|
| 287 |
+
|
| 288 |
+
register_model_info(
|
| 289 |
+
["alpaca-13b"],
|
| 290 |
+
"Alpaca",
|
| 291 |
+
"https://crfm.stanford.edu/2023/03/13/alpaca.html",
|
| 292 |
+
"a model fine-tuned from LLaMA on instruction-following demonstrations by Stanford",
|
| 293 |
+
)
|
| 294 |
+
|
| 295 |
+
register_model_info(
|
| 296 |
+
["oasst-pythia-12b"],
|
| 297 |
+
"OpenAssistant (oasst)",
|
| 298 |
+
"https://open-assistant.io",
|
| 299 |
+
"an Open Assistant for everyone by LAION",
|
| 300 |
+
)
|
| 301 |
+
|
| 302 |
+
register_model_info(
|
| 303 |
+
["oasst-sft-7-llama-30b"],
|
| 304 |
+
"OpenAssistant (oasst)",
|
| 305 |
+
"https://open-assistant.io",
|
| 306 |
+
"an Open Assistant for everyone by LAION",
|
| 307 |
+
)
|
| 308 |
+
|
| 309 |
+
register_model_info(
|
| 310 |
+
["palm-2"],
|
| 311 |
+
"PaLM 2 Chat",
|
| 312 |
+
"https://cloud.google.com/vertex-ai/docs/release-notes#May_10_2023",
|
| 313 |
+
"PaLM 2 for Chat (chat-bison@001) by Google",
|
| 314 |
+
)
|
| 315 |
+
|
| 316 |
+
register_model_info(
|
| 317 |
+
["llama-7b", "llama-13b"],
|
| 318 |
+
"LLaMA",
|
| 319 |
+
"https://arxiv.org/abs/2302.13971",
|
| 320 |
+
"open and efficient foundation language models by Meta",
|
| 321 |
+
)
|
| 322 |
+
|
| 323 |
+
register_model_info(
|
| 324 |
+
["open-llama-7b-v2-open-instruct", "open-llama-7b-open-instruct"],
|
| 325 |
+
"Open LLaMa (Open Instruct)",
|
| 326 |
+
"https://medium.com/vmware-data-ml-blog/starter-llm-for-the-enterprise-instruction-tuning-openllama-7b-d05fc3bbaccc",
|
| 327 |
+
"Open LLaMa fine-tuned on instruction-following data by VMware",
|
| 328 |
+
)
|
| 329 |
+
|
| 330 |
+
register_model_info(
|
| 331 |
+
["dolly-v2-12b"],
|
| 332 |
+
"Dolly",
|
| 333 |
+
"https://www.databricks.com/blog/2023/04/12/dolly-first-open-commercially-viable-instruction-tuned-llm",
|
| 334 |
+
"an instruction-tuned open large language model by Databricks",
|
| 335 |
+
)
|
| 336 |
+
|
| 337 |
+
register_model_info(
|
| 338 |
+
["stablelm-tuned-alpha-7b"],
|
| 339 |
+
"StableLM",
|
| 340 |
+
"https://github.com/stability-AI/stableLM",
|
| 341 |
+
"Stability AI language models",
|
| 342 |
+
)
|
| 343 |
+
|
| 344 |
+
register_model_info(
|
| 345 |
+
["codet5p-6b"],
|
| 346 |
+
"CodeT5p-6b",
|
| 347 |
+
"https://huggingface.co/Salesforce/codet5p-6b",
|
| 348 |
+
"Code completion model released by Salesforce",
|
| 349 |
+
)
|
| 350 |
+
|
| 351 |
+
register_model_info(
|
| 352 |
+
["fastchat-t5-3b", "fastchat-t5-3b-v1.0"],
|
| 353 |
+
"FastChat-T5",
|
| 354 |
+
"https://huggingface.co/lmsys/fastchat-t5-3b-v1.0",
|
| 355 |
+
"a chat assistant fine-tuned from FLAN-T5 by LMSYS",
|
| 356 |
+
)
|
| 357 |
+
|
| 358 |
+
register_model_info(
|
| 359 |
+
["phoenix-inst-chat-7b"],
|
| 360 |
+
"Phoenix-7B",
|
| 361 |
+
"https://huggingface.co/FreedomIntelligence/phoenix-inst-chat-7b",
|
| 362 |
+
"a multilingual chat assistant fine-tuned from Bloomz to democratize ChatGPT across languages by CUHK(SZ)",
|
| 363 |
+
)
|
| 364 |
+
|
| 365 |
+
register_model_info(
|
| 366 |
+
["realm-7b-v1"],
|
| 367 |
+
"ReaLM",
|
| 368 |
+
"https://github.com/FreedomIntelligence/ReaLM",
|
| 369 |
+
"A chatbot fine-tuned from LLaMA2 with data generated via iterative calls to UserGPT and ChatGPT by CUHK(SZ) and SRIBD.",
|
| 370 |
+
)
|
| 371 |
+
|
| 372 |
+
register_model_info(
|
| 373 |
+
["billa-7b-sft"],
|
| 374 |
+
"BiLLa-7B-SFT",
|
| 375 |
+
"https://huggingface.co/Neutralzz/BiLLa-7B-SFT",
|
| 376 |
+
"an instruction-tuned bilingual LLaMA with enhanced reasoning ability by an independent researcher",
|
| 377 |
+
)
|
| 378 |
+
|
| 379 |
+
register_model_info(
|
| 380 |
+
["h2ogpt-gm-oasst1-en-2048-open-llama-7b-preview-300bt-v2"],
|
| 381 |
+
"h2oGPT-GM-7b",
|
| 382 |
+
"https://huggingface.co/h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-7b-preview-300bt-v2",
|
| 383 |
+
"an instruction-tuned OpenLLaMA with enhanced conversational ability by H2O.ai",
|
| 384 |
+
)
|
| 385 |
+
|
| 386 |
+
register_model_info(
|
| 387 |
+
["baize-v2-7b", "baize-v2-13b"],
|
| 388 |
+
"Baize v2",
|
| 389 |
+
"https://github.com/project-baize/baize-chatbot#v2",
|
| 390 |
+
"A chatbot fine-tuned from LLaMA with ChatGPT self-chat data and Self-Disillation with Feedback (SDF) by UCSD and SYSU.",
|
| 391 |
+
)
|
| 392 |
+
|
| 393 |
+
register_model_info(
|
| 394 |
+
[
|
| 395 |
+
"airoboros-l2-7b-2.1",
|
| 396 |
+
"airoboros-l2-13b-2.1",
|
| 397 |
+
"airoboros-c34b-2.1",
|
| 398 |
+
"airoboros-l2-70b-2.1",
|
| 399 |
+
],
|
| 400 |
+
"airoboros",
|
| 401 |
+
"https://huggingface.co/jondurbin/airoboros-l2-70b-2.1",
|
| 402 |
+
"an instruction-tuned LlaMa model tuned with 100% synthetic instruction-response pairs from GPT4",
|
| 403 |
+
)
|
| 404 |
+
|
| 405 |
+
register_model_info(
|
| 406 |
+
[
|
| 407 |
+
"spicyboros-7b-2.2",
|
| 408 |
+
"spicyboros-13b-2.2",
|
| 409 |
+
"spicyboros-70b-2.2",
|
| 410 |
+
],
|
| 411 |
+
"spicyboros",
|
| 412 |
+
"https://huggingface.co/jondurbin/spicyboros-70b-2.2",
|
| 413 |
+
"de-aligned versions of the airoboros models",
|
| 414 |
+
)
|
| 415 |
+
|
| 416 |
+
register_model_info(
|
| 417 |
+
["Robin-7b-v2", "Robin-13b-v2", "Robin-33b-v2"],
|
| 418 |
+
"Robin-v2",
|
| 419 |
+
"https://huggingface.co/OptimalScale/robin-7b-v2-delta",
|
| 420 |
+
"A chatbot fine-tuned from LLaMA-7b, achieving competitive performance on chitchat, commonsense reasoning and instruction-following tasks, by OptimalScale, HKUST.",
|
| 421 |
+
)
|
| 422 |
+
|
| 423 |
+
register_model_info(
|
| 424 |
+
["manticore-13b-chat"],
|
| 425 |
+
"Manticore 13B Chat",
|
| 426 |
+
"https://huggingface.co/openaccess-ai-collective/manticore-13b-chat-pyg",
|
| 427 |
+
"A chatbot fine-tuned from LlaMa across several CoT and chat datasets.",
|
| 428 |
+
)
|
| 429 |
+
|
| 430 |
+
register_model_info(
|
| 431 |
+
["redpajama-incite-7b-chat"],
|
| 432 |
+
"RedPajama-INCITE-7B-Chat",
|
| 433 |
+
"https://huggingface.co/togethercomputer/RedPajama-INCITE-7B-Chat",
|
| 434 |
+
"A chatbot fine-tuned from RedPajama-INCITE-7B-Base by Together",
|
| 435 |
+
)
|
| 436 |
+
|
| 437 |
+
register_model_info(
|
| 438 |
+
[
|
| 439 |
+
"falcon-7b",
|
| 440 |
+
"falcon-7b-instruct",
|
| 441 |
+
"falcon-40b",
|
| 442 |
+
"falcon-40b-instruct",
|
| 443 |
+
"falcon-180b",
|
| 444 |
+
"falcon-180b-chat",
|
| 445 |
+
],
|
| 446 |
+
"Falcon",
|
| 447 |
+
"https://huggingface.co/tiiuae/falcon-180B",
|
| 448 |
+
"TII's flagship series of large language models",
|
| 449 |
+
)
|
| 450 |
+
|
| 451 |
+
register_model_info(
|
| 452 |
+
["tigerbot-7b-sft"],
|
| 453 |
+
"Tigerbot",
|
| 454 |
+
"https://huggingface.co/TigerResearch/tigerbot-7b-sft",
|
| 455 |
+
"TigerBot is a large-scale language model (LLM) with multiple languages and tasks.",
|
| 456 |
+
)
|
| 457 |
+
|
| 458 |
+
register_model_info(
|
| 459 |
+
["internlm-chat-7b", "internlm-chat-7b-8k"],
|
| 460 |
+
"InternLM",
|
| 461 |
+
"https://huggingface.co/internlm/internlm-chat-7b",
|
| 462 |
+
"InternLM is a multi-language large-scale language model (LLM), developed by SHLAB.",
|
| 463 |
+
)
|
| 464 |
+
|
| 465 |
+
register_model_info(
|
| 466 |
+
["Qwen-7B-Chat"],
|
| 467 |
+
"Qwen",
|
| 468 |
+
"https://huggingface.co/Qwen/Qwen-7B-Chat",
|
| 469 |
+
"Qwen is a multi-language large-scale language model (LLM), developed by Damo Academy.",
|
| 470 |
+
)
|
| 471 |
+
|
| 472 |
+
register_model_info(
|
| 473 |
+
["Llama2-Chinese-13b-Chat", "LLama2-Chinese-13B"],
|
| 474 |
+
"Llama2-Chinese",
|
| 475 |
+
"https://huggingface.co/FlagAlpha/Llama2-Chinese-13b-Chat",
|
| 476 |
+
"Llama2-Chinese is a multi-language large-scale language model (LLM), developed by FlagAlpha.",
|
| 477 |
+
)
|
| 478 |
+
|
| 479 |
+
register_model_info(
|
| 480 |
+
["Chinese-Alpaca-2-7B", "Chinese-Alpaca-2-13B"],
|
| 481 |
+
"Chinese-Alpaca",
|
| 482 |
+
"https://huggingface.co/hfl/chinese-alpaca-2-13b",
|
| 483 |
+
"New extended Chinese vocabulary beyond Llama-2, open-sourcing the Chinese LLaMA-2 and Alpaca-2 LLMs.",
|
| 484 |
+
)
|
| 485 |
+
|
| 486 |
+
register_model_info(
|
| 487 |
+
["Vigogne-2-7B-Instruct", "Vigogne-2-13B-Instruct"],
|
| 488 |
+
"Vigogne-Instruct",
|
| 489 |
+
"https://huggingface.co/bofenghuang/vigogne-2-7b-instruct",
|
| 490 |
+
"Vigogne-Instruct is a French large language model (LLM) optimized for instruction-following, developed by Bofeng Huang",
|
| 491 |
+
)
|
| 492 |
+
|
| 493 |
+
register_model_info(
|
| 494 |
+
["Vigogne-2-7B-Chat", "Vigogne-2-13B-Chat"],
|
| 495 |
+
"Vigogne-Chat",
|
| 496 |
+
"https://huggingface.co/bofenghuang/vigogne-2-7b-chat",
|
| 497 |
+
"Vigogne-Chat is a French large language model (LLM) optimized for instruction-following and multi-turn dialogues, developed by Bofeng Huang",
|
| 498 |
+
)
|
| 499 |
+
|
| 500 |
+
register_model_info(
|
| 501 |
+
["stable-vicuna-13B-HF"],
|
| 502 |
+
"stable-vicuna",
|
| 503 |
+
"https://huggingface.co/TheBloke/stable-vicuna-13B-HF",
|
| 504 |
+
"StableVicuna is a Vicuna model fine-tuned using RLHF via PPO on various conversational and instructional datasets.",
|
| 505 |
+
)
|
| 506 |
+
|
| 507 |
+
register_model_info(
|
| 508 |
+
["deluxe-chat-v1", "deluxe-chat-v1.1", "deluxe-chat-v1.2"],
|
| 509 |
+
"DeluxeChat",
|
| 510 |
+
"",
|
| 511 |
+
"Deluxe Chat",
|
| 512 |
+
)
|
| 513 |
+
|
| 514 |
+
register_model_info(
|
| 515 |
+
[
|
| 516 |
+
"Xwin-LM-7B-V0.1",
|
| 517 |
+
"Xwin-LM-13B-V0.1",
|
| 518 |
+
"Xwin-LM-70B-V0.1",
|
| 519 |
+
"Xwin-LM-7B-V0.2",
|
| 520 |
+
"Xwin-LM-13B-V0.2",
|
| 521 |
+
],
|
| 522 |
+
"Xwin-LM",
|
| 523 |
+
"https://github.com/Xwin-LM/Xwin-LM",
|
| 524 |
+
"Chat models developed by Xwin-LM team",
|
| 525 |
+
)
|
| 526 |
+
|
| 527 |
+
register_model_info(
|
| 528 |
+
["lemur-70b-chat"],
|
| 529 |
+
"Lemur-Chat",
|
| 530 |
+
"https://huggingface.co/OpenLemur/lemur-70b-chat-v1",
|
| 531 |
+
"an openly accessible language model optimized for both natural language and coding capabilities ",
|
| 532 |
+
)
|
| 533 |
+
|
| 534 |
+
register_model_info(
|
| 535 |
+
["Mistral-7B-OpenOrca"],
|
| 536 |
+
"Open-Orca",
|
| 537 |
+
"https://huggingface.co/Open-Orca/Mistral-7B-OpenOrca",
|
| 538 |
+
"A fine-tune of [Mistral 7B](https://huggingface.co/mistralai/Mistral-7B-v0.1) using [OpenOrca dataset](https://huggingface.co/datasets/Open-Orca/OpenOrca)",
|
| 539 |
+
)
|
| 540 |
+
|
| 541 |
+
register_model_info(
|
| 542 |
+
["dolphin-2.2.1-mistral-7b"],
|
| 543 |
+
"dolphin-mistral",
|
| 544 |
+
"https://huggingface.co/ehartford/dolphin-2.2.1-mistral-7b",
|
| 545 |
+
"An uncensored fine-tuned Mistral 7B",
|
| 546 |
+
)
|
| 547 |
+
|
| 548 |
+
register_model_info(
|
| 549 |
+
[
|
| 550 |
+
"AquilaChat-7B",
|
| 551 |
+
"AquilaChat2-7B",
|
| 552 |
+
"AquilaChat2-34B",
|
| 553 |
+
],
|
| 554 |
+
"Aquila-Chat",
|
| 555 |
+
"https://huggingface.co/BAAI/AquilaChat2-34B",
|
| 556 |
+
"Chat models developed by BAAI team",
|
| 557 |
+
)
|
| 558 |
+
|
| 559 |
+
register_model_info(
|
| 560 |
+
["xDAN-L1-Chat-RL-v1"],
|
| 561 |
+
"xDAN-L1-Chat",
|
| 562 |
+
"https://huggingface.co/xDAN-AI/xDAN-L1-Chat-RL-v1",
|
| 563 |
+
"A large language chat model created by xDAN-AI.",
|
| 564 |
+
)
|
| 565 |
+
|
| 566 |
+
register_model_info(
|
| 567 |
+
["MetaMath-70B-V1.0", "MetaMath-7B-V1.0"],
|
| 568 |
+
"MetaMath",
|
| 569 |
+
"https://huggingface.co/meta-math",
|
| 570 |
+
"MetaMath is a finetune of Llama2 on [MetaMathQA](https://huggingface.co/datasets/meta-math/MetaMathQA) that specializes in mathematical reasoning.",
|
| 571 |
+
)
|
| 572 |
+
|
| 573 |
+
register_model_info(
|
| 574 |
+
["Yuan2-2B-hf", "Yuan2-51B-hf", "Yuan2-102B-hf"],
|
| 575 |
+
"IEIYuan",
|
| 576 |
+
"https://huggingface.co/IEITYuan",
|
| 577 |
+
"Yuan2 is a Basemodel developed by IEI.",
|
| 578 |
+
)
|
arena_elo/elo_rating/upload_battle_data.py
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import fire
|
| 2 |
+
import json
|
| 3 |
+
import os
|
| 4 |
+
import datasets
|
| 5 |
+
import datetime
|
| 6 |
+
from pathlib import Path
|
| 7 |
+
from datetime import datetime
|
| 8 |
+
from PIL import Image
|
| 9 |
+
|
| 10 |
+
datasets.config.DEFAULT_MAX_BATCH_SIZE = 500
|
| 11 |
+
def create_hf_dataset(data_file: str, split="test"):
|
| 12 |
+
hf_dataset = datasets.Dataset.from_list(
|
| 13 |
+
data_file,
|
| 14 |
+
features=datasets.Features(
|
| 15 |
+
{
|
| 16 |
+
"question_id": datasets.Value("string"),
|
| 17 |
+
"model": datasets.Value("string"),
|
| 18 |
+
"conversation": [
|
| 19 |
+
{
|
| 20 |
+
"role": datasets.Value("string"),
|
| 21 |
+
"content": datasets.Value("string"),
|
| 22 |
+
}
|
| 23 |
+
],
|
| 24 |
+
"language": datasets.Value("string"),
|
| 25 |
+
"image": datasets.Image(),
|
| 26 |
+
"turn": datasets.Value("int32"),
|
| 27 |
+
}
|
| 28 |
+
),
|
| 29 |
+
split=split,
|
| 30 |
+
)
|
| 31 |
+
return hf_dataset
|
| 32 |
+
|
| 33 |
+
def create_hf_battle_dataset(data_file: str, split="test"):
|
| 34 |
+
hf_dataset = datasets.Dataset.from_list(
|
| 35 |
+
data_file,
|
| 36 |
+
features=datasets.Features(
|
| 37 |
+
{
|
| 38 |
+
"question_id": datasets.Value("string"),
|
| 39 |
+
"model_a": datasets.Value("string"),
|
| 40 |
+
"model_b": datasets.Value("string"),
|
| 41 |
+
"conversation_a": [
|
| 42 |
+
{
|
| 43 |
+
"role": datasets.Value("string"),
|
| 44 |
+
"content": datasets.Value("string"),
|
| 45 |
+
}
|
| 46 |
+
],
|
| 47 |
+
"conversation_b": [
|
| 48 |
+
{
|
| 49 |
+
"role": datasets.Value("string"),
|
| 50 |
+
"content": datasets.Value("string"),
|
| 51 |
+
}
|
| 52 |
+
],
|
| 53 |
+
"language": datasets.Value("string"),
|
| 54 |
+
"image": datasets.Image(),
|
| 55 |
+
"turn": datasets.Value("int32"),
|
| 56 |
+
"anony": datasets.Value("bool"),
|
| 57 |
+
}
|
| 58 |
+
),
|
| 59 |
+
split=split,
|
| 60 |
+
)
|
| 61 |
+
return hf_dataset
|
| 62 |
+
|
| 63 |
+
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
def load_image(path:str):
|
| 67 |
+
try:
|
| 68 |
+
return Image.open(path)
|
| 69 |
+
except Exception as e:
|
| 70 |
+
print(f"Error loading image {path}: {e}")
|
| 71 |
+
return None
|
| 72 |
+
|
| 73 |
+
def get_date_from_time_stamp(unix_timestamp: int):
|
| 74 |
+
# Create a datetime object from the Unix timestamp
|
| 75 |
+
dt = datetime.fromtimestamp(unix_timestamp)
|
| 76 |
+
|
| 77 |
+
# Convert the datetime object to a string with the desired format
|
| 78 |
+
date_str = dt.strftime("%Y-%m-%d")
|
| 79 |
+
return date_str
|
| 80 |
+
|
| 81 |
+
def load_battle_image(battle, log_dir):
|
| 82 |
+
image_path = Path(log_dir) / f"{get_date_from_time_stamp(battle['tstamp'])}-convinput_images" / f"input_image_{battle['question_id']}.png"
|
| 83 |
+
return load_image(image_path)
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
def main(
|
| 87 |
+
data_file: str = "./results/latest/clean_battle_conv.json",
|
| 88 |
+
repo_id: str = "DongfuTingle/wildvision-bench",
|
| 89 |
+
log_dir: str = os.getenv("LOGDIR", "./vision-arena-logs/"),
|
| 90 |
+
mode="battle",
|
| 91 |
+
token = os.environ.get("HUGGINGFACE_TOKEN", None)
|
| 92 |
+
):
|
| 93 |
+
with open(data_file, "r") as f:
|
| 94 |
+
data = json.load(f)
|
| 95 |
+
|
| 96 |
+
|
| 97 |
+
|
| 98 |
+
has_image_stats = {
|
| 99 |
+
"has_image": 0,
|
| 100 |
+
"no_image": 0,
|
| 101 |
+
}
|
| 102 |
+
if mode == "keep_bad_only":
|
| 103 |
+
# anony only
|
| 104 |
+
data = [d for d in data if d["anony"]]
|
| 105 |
+
|
| 106 |
+
new_data = []
|
| 107 |
+
for battle in data:
|
| 108 |
+
image = load_battle_image(battle, log_dir)
|
| 109 |
+
if image is None:
|
| 110 |
+
has_image_stats["no_image"] += 1
|
| 111 |
+
# we don't keep the data without image
|
| 112 |
+
continue
|
| 113 |
+
has_image_stats["has_image"] += 1
|
| 114 |
+
|
| 115 |
+
if battle["winner"] in ["model_a", "model_b"]:
|
| 116 |
+
if battle["winner"] == "model_a":
|
| 117 |
+
worse_model = "model_b"
|
| 118 |
+
worse_conv = "conversation_b"
|
| 119 |
+
if battle["winner"] == "model_b":
|
| 120 |
+
worse_model = "model_a"
|
| 121 |
+
worse_conv = "conversation_a"
|
| 122 |
+
|
| 123 |
+
new_data.append({
|
| 124 |
+
"question_id": battle["question_id"],
|
| 125 |
+
"model": battle[worse_model],
|
| 126 |
+
"conversation": battle[worse_conv],
|
| 127 |
+
"language": battle["language"],
|
| 128 |
+
"image": image,
|
| 129 |
+
"turn": battle["turn"],
|
| 130 |
+
})
|
| 131 |
+
elif battle["winner"] == "tie (bothbad)":
|
| 132 |
+
|
| 133 |
+
new_data.append({
|
| 134 |
+
"question_id": battle["question_id"],
|
| 135 |
+
"model": battle["model_a"],
|
| 136 |
+
"conversation": battle["conversation_a"],
|
| 137 |
+
"language": battle["language"],
|
| 138 |
+
"image": image,
|
| 139 |
+
"turn": battle["turn"],
|
| 140 |
+
})
|
| 141 |
+
|
| 142 |
+
new_data.append({
|
| 143 |
+
"question_id": battle["question_id"],
|
| 144 |
+
"model": battle["model_b"],
|
| 145 |
+
"conversation": battle["conversation_b"],
|
| 146 |
+
"language": battle["language"],
|
| 147 |
+
"image": image,
|
| 148 |
+
"turn": battle["turn"],
|
| 149 |
+
})
|
| 150 |
+
|
| 151 |
+
split = "test"
|
| 152 |
+
hf_dataset = create_hf_dataset(new_data, "test")
|
| 153 |
+
|
| 154 |
+
elif mode == "battle":
|
| 155 |
+
new_data = []
|
| 156 |
+
for battle in data:
|
| 157 |
+
image = load_battle_image(battle, log_dir)
|
| 158 |
+
if image is None:
|
| 159 |
+
has_image_stats["no_image"] += 1
|
| 160 |
+
continue
|
| 161 |
+
has_image_stats["has_image"] += 1
|
| 162 |
+
new_data.append({
|
| 163 |
+
"question_id": battle["question_id"],
|
| 164 |
+
"model_a": battle["model_a"],
|
| 165 |
+
"model_b": battle["model_b"],
|
| 166 |
+
"conversation_a": battle["conversation_a"],
|
| 167 |
+
"conversation_b": battle["conversation_b"],
|
| 168 |
+
"language": battle["language"],
|
| 169 |
+
"image": image,
|
| 170 |
+
"turn": battle["turn"],
|
| 171 |
+
"anony": battle["anony"],
|
| 172 |
+
})
|
| 173 |
+
split = "test"
|
| 174 |
+
hf_dataset = create_hf_battle_dataset(new_data, "test")
|
| 175 |
+
else:
|
| 176 |
+
raise ValueError(f"Invalid mode: {mode}")
|
| 177 |
+
|
| 178 |
+
print(f"Stats: {has_image_stats}")
|
| 179 |
+
print(hf_dataset)
|
| 180 |
+
print(f"Uploading to part {repo_id}:{split}...")
|
| 181 |
+
hf_dataset.push_to_hub(
|
| 182 |
+
repo_id=repo_id,
|
| 183 |
+
config_name=mode,
|
| 184 |
+
split=split,
|
| 185 |
+
token=token,
|
| 186 |
+
commit_message=f"Add vision-arena {split} dataset",
|
| 187 |
+
)
|
| 188 |
+
|
| 189 |
+
print("Done!")
|
| 190 |
+
|
| 191 |
+
|
| 192 |
+
if __name__ == "__main__":
|
| 193 |
+
fire.Fire(main)
|
arena_elo/elo_rating/utils.py
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from datetime import datetime
|
| 2 |
+
import pytz
|
| 3 |
+
import PIL
|
| 4 |
+
import os
|
| 5 |
+
|
| 6 |
+
def detect_language(text: str) -> str:
|
| 7 |
+
"""Detect the langauge of a string."""
|
| 8 |
+
import polyglot # pip3 install polyglot pyicu pycld2
|
| 9 |
+
from polyglot.detect import Detector
|
| 10 |
+
from polyglot.detect.base import logger as polyglot_logger
|
| 11 |
+
import pycld2
|
| 12 |
+
|
| 13 |
+
polyglot_logger.setLevel("ERROR")
|
| 14 |
+
|
| 15 |
+
try:
|
| 16 |
+
lang_code = Detector(text).language.name
|
| 17 |
+
except (pycld2.error, polyglot.detect.base.UnknownLanguage):
|
| 18 |
+
lang_code = "unknown"
|
| 19 |
+
return lang_code
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
def get_time_stamp_from_date(date_str:str):
|
| 23 |
+
"""
|
| 24 |
+
Convert a date string to a Unix timestamp
|
| 25 |
+
Args:
|
| 26 |
+
date_str (str): The input date string in the format 'YYYY-MM-DD-HH:MM-TZ', e.g. '2024-02-10-14:00-PT'
|
| 27 |
+
"""
|
| 28 |
+
|
| 29 |
+
# Convert the date string into a format that Python's datetime can understand
|
| 30 |
+
# and specify the correct timezone for PT, which is 'US/Pacific'
|
| 31 |
+
date_format = "%Y-%m-%d-%H:%M-%Z"
|
| 32 |
+
|
| 33 |
+
# Parse the date string into a datetime object
|
| 34 |
+
# Note: PT is not directly recognized by pytz, so we manually map it to 'US/Pacific'
|
| 35 |
+
timezone_map = {
|
| 36 |
+
"PT": "US/Pacific",
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
# Extract the timezone abbreviation
|
| 40 |
+
tz_abbr = date_str.split("-")[-1]
|
| 41 |
+
# Map the abbreviation to a pytz timezone
|
| 42 |
+
tz_info = pytz.timezone(timezone_map[tz_abbr])
|
| 43 |
+
|
| 44 |
+
# Remove the timezone abbreviation for parsing
|
| 45 |
+
date_str_parsed = date_str.rsplit("-", 1)[0]
|
| 46 |
+
|
| 47 |
+
# Create a datetime object with the corresponding timezone
|
| 48 |
+
dt = datetime.strptime(date_str_parsed, "%Y-%m-%d-%H:%M").replace(tzinfo=tz_info)
|
| 49 |
+
|
| 50 |
+
# Convert the datetime object to a Unix timestamp
|
| 51 |
+
unix_timestamp = dt.timestamp()
|
| 52 |
+
return unix_timestamp
|
| 53 |
+
|
| 54 |
+
def get_date_from_time_stamp(unix_timestamp: int):
|
| 55 |
+
# Create a datetime object from the Unix timestamp
|
| 56 |
+
dt = datetime.fromtimestamp(unix_timestamp)
|
| 57 |
+
|
| 58 |
+
# Convert the datetime object to a string with the desired format
|
| 59 |
+
date_str = dt.strftime("%Y-%m-%d %H:%M:%S %Z")
|
| 60 |
+
return date_str
|
| 61 |
+
|
| 62 |
+
|
| 63 |
+
def get_input_image_path(tstamp, conv_id):
|
| 64 |
+
# from tstamp to date e.g. 2024-02-10
|
| 65 |
+
date_str = datetime.fromtimestamp(tstamp, tz=pytz.timezone("US/Pacific")).strftime("%Y-%m-%d")
|
| 66 |
+
LOGDIR = os.getenv("LOGDIR")
|
| 67 |
+
return f"{LOGDIR}/{date_str}-convinput_images/input_image_{conv_id}.png"
|
| 68 |
+
|
| 69 |
+
def load_image_from_path(image_path):
|
| 70 |
+
# Load the image from the specified
|
| 71 |
+
# path using the Python Imaging Library (PIL)
|
| 72 |
+
try:
|
| 73 |
+
image = PIL.Image.open(image_path)
|
| 74 |
+
return image
|
| 75 |
+
except FileNotFoundError:
|
| 76 |
+
print(f"Image not found at path: {image_path}")
|
| 77 |
+
return None
|
| 78 |
+
except PIL.UnidentifiedImageError:
|
| 79 |
+
print(f"Unidentified image format at path: {image_path}")
|
| 80 |
+
return None
|
| 81 |
+
|
| 82 |
+
|
| 83 |
+
|
arena_elo/evaluator/convert_to_evaluator_data.py
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import argparse
|
| 2 |
+
import json
|
| 3 |
+
import os
|
| 4 |
+
import time
|
| 5 |
+
from pytz import timezone
|
| 6 |
+
from tqdm import tqdm
|
| 7 |
+
import base64
|
| 8 |
+
from icecream import ic
|
| 9 |
+
from PIL import Image
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
# Function to encode the image
|
| 13 |
+
def encode_image(image_path):
|
| 14 |
+
with open(image_path, "rb") as image_file:
|
| 15 |
+
return base64.b64encode(image_file.read()).decode('utf-8')
|
| 16 |
+
|
| 17 |
+
def get_log_files(max_num_files=None):
|
| 18 |
+
dates = []
|
| 19 |
+
for month in [2, 3]:
|
| 20 |
+
for day in range(1, 32):
|
| 21 |
+
dates.append(f"2024-{month:02d}-{day:02d}")
|
| 22 |
+
|
| 23 |
+
num_servers = 1
|
| 24 |
+
filenames = []
|
| 25 |
+
for d in dates:
|
| 26 |
+
for i in range(num_servers):
|
| 27 |
+
# name = os.path.expanduser(f"~/fastchat_logs/server{i}/{d}-conv.json")
|
| 28 |
+
name = os.path.expanduser(f"vision-arena-logs/{d}-conv.json")
|
| 29 |
+
if os.path.exists(name):
|
| 30 |
+
filenames.append(name)
|
| 31 |
+
max_num_files = max_num_files or len(filenames)
|
| 32 |
+
filenames = filenames[-max_num_files:]
|
| 33 |
+
return filenames
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
def pretty_print_conversation(messages):
|
| 37 |
+
for role, msg in messages:
|
| 38 |
+
print(f"[[{role}]]: {msg}")
|
| 39 |
+
|
| 40 |
+
task_template_map = {
|
| 41 |
+
"image_caption": "Give me the semantic alignment score between the given image and the given caption: \"{generated_sentence}\" on a scale of 0-100. Only reply the score value.",
|
| 42 |
+
"vqa": "Rate the answer correctness regarding the question within the context of the given image on a scale of 0-100. Only reply the score value.",
|
| 43 |
+
"pair_rate_old": "[Instruction]\n\"{instruction}\"\n\n\"{generated_sentence}\"\n\n[System]\nGiven the instruction and the image, please compare the correctness of responses A and B. Reply with \"leftvote\" if you find A better, \"rightvote\" if B is better, \"bothbad_vote\" if both responses are wrong, and \"tievote\" if both responses are equally satisfactory. If you are unable to make a decision, please reply with \"NA\".",
|
| 44 |
+
"pair_rate_wexplanation": "<image>[Instruction]\n\"{instruction}\"\n\n\"{generated_sentence}\"[System]\nPlease act as an impartial judge and evaluate the quality of the responses provided by two AI assistants to the user question displayed below. You should choose the assistant that follows the user’s instructions and answers the user’s question better. Your evaluation should consider factors such as the helpfulness, relevance, accuracy, depth, creativity, and level of detail of their responses. Begin your evaluation by comparing the two responses and provide a short explanation. Avoid any positional biases and ensure that the order in which the responses were presented does not influence your decision. Do not allow the length of the responses to influence your evaluation. Do not favor certain names of the assistants. Be as objective as possible. After providing your explanation, output your final verdict by strictly following this format: \"[[A]]\" if assistant A is better, \"[[B]]\" if assistant B is better, and \"[[C]]\" for a tie.",
|
| 45 |
+
"pair_rate": "<image>[Instruction]\n\"{instruction}\"\n\n\"{generated_sentence}\"\n\n[System]\nPlease act as an impartial judge and evaluate the quality of the responses provided by two AI assistants to the user question displayed below. You should choose the assistant that follows the user’s instructions and answers the user’s question better. Your evaluation should consider factors such as the helpfulness, relevance, accuracy, depth, creativity, and level of detail of their responses. Begin your evaluation by comparing the two responses and provide a short explanation. Avoid any positional biases and ensure that the order in which the responses were presented does not influence your decision. Do not allow the length of the responses to influence your evaluation. Do not favor certain names of the assistants. Be as objective as possible. Reply with \"leftvote\" if you find assistant A better, \"rightvote\" if assistant B is better, \"bothbad_vote\" if both responses are wrong, and \"tievote\" if both assistants provide equally satisfactory answers. If you are unable to make a decision, please reply with \"NA\"."
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
def inspect_convs(log_files):
|
| 49 |
+
json_data = []
|
| 50 |
+
|
| 51 |
+
ic(log_files)
|
| 52 |
+
total_vote = 0
|
| 53 |
+
|
| 54 |
+
for filename in tqdm(log_files, desc="read files"):
|
| 55 |
+
for retry in range(5):
|
| 56 |
+
try:
|
| 57 |
+
lines = open(filename).readlines()
|
| 58 |
+
break
|
| 59 |
+
except FileNotFoundError:
|
| 60 |
+
time.sleep(2)
|
| 61 |
+
|
| 62 |
+
for l in lines:
|
| 63 |
+
row = json.loads(l)
|
| 64 |
+
|
| 65 |
+
if "states" not in row:
|
| 66 |
+
continue
|
| 67 |
+
if row["type"] not in ["leftvote", "rightvote", "bothbad_vote", "tievote"]:
|
| 68 |
+
continue
|
| 69 |
+
|
| 70 |
+
model_names = row["states"][0]["model_name"], row["states"][1]["model_name"]
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
# Iterate through each state and write the relevant information
|
| 74 |
+
if not len(row["states"][0]['messages']): continue
|
| 75 |
+
# ic(row["states"][0]['messages'][1][1])
|
| 76 |
+
|
| 77 |
+
if row["states"][0]['messages'][1][1] is None or row["states"][1]['messages'][1][1] is None or "NETWORK ERROR" in row["states"][0]['messages'][1][1] or "NETWORK ERROR" in row["states"][1]['messages'][1][1]: continue
|
| 78 |
+
total_vote += 1
|
| 79 |
+
|
| 80 |
+
conv_id = row["states"][0]['conv_id']
|
| 81 |
+
image_path = os.path.join("/local/home/yujielu/project/Arena-Elo/vision-arena-logs", os.path.basename(filename)[:-5]+"input_images", f"input_image_{conv_id}.png")
|
| 82 |
+
if not os.path.exists(image_path) :
|
| 83 |
+
continue
|
| 84 |
+
try:
|
| 85 |
+
image = Image.open(image_path).convert("RGB")
|
| 86 |
+
except:
|
| 87 |
+
continue
|
| 88 |
+
|
| 89 |
+
left_response = row["states"][0]['messages'][1][1]
|
| 90 |
+
right_response = row["states"][1]['messages'][1][1]
|
| 91 |
+
instruction = row["states"][0]['messages'][0][1]
|
| 92 |
+
generated_sentence = f"[The Start of Assistant A’s Answer]\n{left_response}\n[The End of Assistant A’s Answer]\n\n[The Start of Assistant B’s Answer]\n{right_response}\n[The End of Assistant B’s Answer]"
|
| 93 |
+
text_prompt = task_template_map["pair_rate"].format(instruction=instruction, generated_sentence=generated_sentence)
|
| 94 |
+
|
| 95 |
+
user_input = text_prompt
|
| 96 |
+
# Create the conversation structure
|
| 97 |
+
conversation = [
|
| 98 |
+
{
|
| 99 |
+
"from": "human",
|
| 100 |
+
"value": user_input
|
| 101 |
+
},
|
| 102 |
+
{
|
| 103 |
+
"from": "gpt",
|
| 104 |
+
"value": row["type"]
|
| 105 |
+
}
|
| 106 |
+
]
|
| 107 |
+
|
| 108 |
+
# Create the JSON object for each row
|
| 109 |
+
json_obj = {
|
| 110 |
+
"id": conv_id,
|
| 111 |
+
"image": image_path,
|
| 112 |
+
"conversations": conversation
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
# Append the JSON object to the list
|
| 116 |
+
json_data.append(json_obj)
|
| 117 |
+
|
| 118 |
+
# Write the JSON data to a file
|
| 119 |
+
with open('output_evaluator_data.json', 'w') as json_file:
|
| 120 |
+
json.dump(json_data, json_file, indent=2)
|
| 121 |
+
|
| 122 |
+
if __name__ == "__main__":
|
| 123 |
+
parser = argparse.ArgumentParser()
|
| 124 |
+
parser.add_argument("--max-num-files", type=int)
|
| 125 |
+
args = parser.parse_args()
|
| 126 |
+
|
| 127 |
+
log_files = get_log_files(args.max_num_files)
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
|
| 131 |
+
inspect_convs(log_files)
|
| 132 |
+
|
| 133 |
+
|
| 134 |
+
|
arena_elo/evaluator/rating_analysis.ipynb
ADDED
|
@@ -0,0 +1,321 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "code",
|
| 5 |
+
"execution_count": 43,
|
| 6 |
+
"metadata": {},
|
| 7 |
+
"outputs": [
|
| 8 |
+
{
|
| 9 |
+
"name": "stdout",
|
| 10 |
+
"output_type": "stream",
|
| 11 |
+
"text": [
|
| 12 |
+
"1338\n",
|
| 13 |
+
"1044\n"
|
| 14 |
+
]
|
| 15 |
+
}
|
| 16 |
+
],
|
| 17 |
+
"source": [
|
| 18 |
+
"\n",
|
| 19 |
+
"import pandas as pd\n",
|
| 20 |
+
"import json\n",
|
| 21 |
+
"\n",
|
| 22 |
+
"# Replace 'your_file_name.csv' with the path to your CSV file\n",
|
| 23 |
+
"file_name = 'all_pairvote_log_wgpt.csv'\n",
|
| 24 |
+
"\n",
|
| 25 |
+
"# Load the CSV file into a DataFrame\n",
|
| 26 |
+
"df = pd.read_csv(file_name)\n",
|
| 27 |
+
"\n",
|
| 28 |
+
"# Define a function to parse JSON data\n",
|
| 29 |
+
"def parse_json(data):\n",
|
| 30 |
+
" try:\n",
|
| 31 |
+
" # Parse the JSON data\n",
|
| 32 |
+
" return json.loads(data)\n",
|
| 33 |
+
" except ValueError as e:\n",
|
| 34 |
+
" # Return None or an empty dictionary if the data cannot be parsed\n",
|
| 35 |
+
" return None\n",
|
| 36 |
+
"\n",
|
| 37 |
+
"# Apply the parse_json function to the 'models' and 'states' columns\n",
|
| 38 |
+
"df['models'] = df['models'].apply(parse_json)\n",
|
| 39 |
+
"df['states'] = df['states'].apply(parse_json)\n",
|
| 40 |
+
"# row[\"states\"][0]['messages'][0][1]\n",
|
| 41 |
+
"\n",
|
| 42 |
+
"# Now df contains the parsed JSON data in the 'models' and 'states' columns\n",
|
| 43 |
+
"# print(df.head())\n",
|
| 44 |
+
"print(len(df))\n",
|
| 45 |
+
"# filter_vote_df = df[df[\"gpt_vote\"].isin([\"leftvote\", \"rightvote\"])]#, \"tievote\", \"bothbad_vote\"\n",
|
| 46 |
+
"# \\#1\n",
|
| 47 |
+
"filter_vote_df = df[df[\"gpt_vote\"].isin([\"leftvote\", \"rightvote\", \"tievote\", \"bothbad_vote\"])]\n",
|
| 48 |
+
"# \\#2\n",
|
| 49 |
+
"# filter_vote_df = df\n",
|
| 50 |
+
"filter_vote_df.loc[~filter_vote_df[\"gpt_vote\"].isin([\"leftvote\", \"rightvote\"]), \"gpt_vote\"] = \"tie\"\n",
|
| 51 |
+
"filter_vote_df.loc[~filter_vote_df[\"type\"].isin([\"leftvote\", \"rightvote\"]), \"type\"] = \"tie\"\n",
|
| 52 |
+
"# \\#3\n",
|
| 53 |
+
"#[df[\"gpt_vote\"].isin([\"leftvote\", \"rightvote\"]) & df[\"type\"].isin([\"leftvote\", \"rightvote\"])]\n",
|
| 54 |
+
"filtered_df = filter_vote_df[filter_vote_df[\"states\"].apply(lambda x: len(x[0]['messages'][0][1]) > 10)]\n",
|
| 55 |
+
"print(len(filtered_df))\n"
|
| 56 |
+
]
|
| 57 |
+
},
|
| 58 |
+
{
|
| 59 |
+
"cell_type": "code",
|
| 60 |
+
"execution_count": 44,
|
| 61 |
+
"metadata": {},
|
| 62 |
+
"outputs": [
|
| 63 |
+
{
|
| 64 |
+
"name": "stdout",
|
| 65 |
+
"output_type": "stream",
|
| 66 |
+
"text": [
|
| 67 |
+
"Confusion Matrix:\n",
|
| 68 |
+
"[[300 61 34]\n",
|
| 69 |
+
" [102 269 27]\n",
|
| 70 |
+
" [ 99 111 41]]\n",
|
| 71 |
+
"\n",
|
| 72 |
+
"Accuracy: 0.5842911877394636\n"
|
| 73 |
+
]
|
| 74 |
+
}
|
| 75 |
+
],
|
| 76 |
+
"source": [
|
| 77 |
+
"import warnings\n",
|
| 78 |
+
"warnings.filterwarnings('ignore')\n",
|
| 79 |
+
"\n",
|
| 80 |
+
"from sklearn.metrics import confusion_matrix, accuracy_score\n",
|
| 81 |
+
"import pandas as pd\n",
|
| 82 |
+
"\n",
|
| 83 |
+
"# Assuming df is your DataFrame\n",
|
| 84 |
+
"\n",
|
| 85 |
+
"# True labels\n",
|
| 86 |
+
"y_true = filtered_df[\"type\"]\n",
|
| 87 |
+
"\n",
|
| 88 |
+
"# Predictions\n",
|
| 89 |
+
"y_pred = filtered_df[\"gpt_vote\"]\n",
|
| 90 |
+
"\n",
|
| 91 |
+
"# Compute the confusion matrix\n",
|
| 92 |
+
"# conf_matrix = confusion_matrix(y_true, y_pred, labels=[\"leftvote\", \"rightvote\", \"tievote\", \"bothbad_vote\"])\n",
|
| 93 |
+
"conf_matrix = confusion_matrix(y_true, y_pred, labels=[\"leftvote\", \"rightvote\", \"tie\"])\n",
|
| 94 |
+
"\n",
|
| 95 |
+
"# Compute the accuracy\n",
|
| 96 |
+
"accuracy = accuracy_score(y_true, y_pred)\n",
|
| 97 |
+
"\n",
|
| 98 |
+
"print(\"Confusion Matrix:\")\n",
|
| 99 |
+
"print(conf_matrix)\n",
|
| 100 |
+
"\n",
|
| 101 |
+
"print(\"\\nAccuracy:\", accuracy)\n"
|
| 102 |
+
]
|
| 103 |
+
},
|
| 104 |
+
{
|
| 105 |
+
"cell_type": "code",
|
| 106 |
+
"execution_count": 45,
|
| 107 |
+
"metadata": {},
|
| 108 |
+
"outputs": [
|
| 109 |
+
{
|
| 110 |
+
"data": {
|
| 111 |
+
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0YAAAJwCAYAAACtcHEcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB0yUlEQVR4nO3deZyN5f/H8feZfcaYMZaxMwyGkTWJURSKKFshS/YtREQoe4oKaVFpsaRBZUlRUrLLUtYsk2VkaYSxjGEYZq7fH37O12ksc8aMM+N+PR+P83jMXPd9X+dzxrnHec913ddtM8YYAQAAAICFubm6AAAAAABwNYIRAAAAAMsjGAEAAACwPIIRAAAAAMsjGAEAAACwPIIRAAAAAMsjGAEAAACwPIIRAAAAAMsjGAEAAACwPIIRAAAWsWTJElWsWFE+Pj6y2Ww6c+ZMuvY/ffp02Ww2HTx4MF37zcpsNptGjhzp6jIApALBCECafPjhh7LZbHrwwQddXcodu/Zh7vfff7/h9kceeUT33XffXa7q3hQdHa3evXurVKlS8vPzk5+fn8LDw9WrVy9t377dYd+RI0fKZrPZH9f2HTp0qOLi4iTJYfutHitWrLhtbZcvX1Z4eLhsNpvGjx9vb+/Tp49sNpv27dt302NfffVV2Wy2FK/hRlasWKFmzZopX7588vLyUnBwsJ566inNnz//tsfeidjYWLVo0UK+vr6aPHmyZs6cqWzZsmXoc95NISEhstlsqlu37g23f/rpp/b3w83O9VtZt26dRo4cme5hEkDm4eHqAgBkTZGRkQoJCdHGjRu1b98+lShRwtUlIZNbtGiRWrZsKQ8PD7Vp00YVKlSQm5ub9uzZo/nz5+ujjz5SdHS0ihYt6nDcRx99JH9/f8XHx2vp0qV6/fXX9euvv2rt2rWaOXOmw75ffPGFfv755xTtZcqUuW1977//vg4dOpSivU2bNnr//fc1a9YsDR8+/IbHzp49W+XKlVP58uVv+RwjRozQ6NGjVbJkSXXv3l1FixZVbGysfvjhBz399NOKjIxU69atb1trWmzatEnnzp3Ta6+9dtPwcKeee+45Pfvss/L29s6Q/m/Hx8dHy5cv17Fjx5QvXz6HbZGRkfLx8dHFixfT1Pe6des0atQodejQQTly5Ej1cQkJCfLw4OMWkCUYAHDSgQMHjCQzf/58kydPHjNy5MhUHXf58mVz6dKlDK7OedOmTTOSzKZNm264vVatWqZs2bJ3uap7y759+0y2bNlMmTJlzD///JNi++XLl827775rDh06ZG8bMWKEkWROnDjhsG+zZs2MJLNu3boU/fTq1cuk5b+2f//91wQGBprRo0cbSebtt9922F6iRAlTunTpGx67bt06I8mMGzfuls/xzTffGEnmmWeeMYmJiSm2L1myxHz//fdO155aM2bMuOX7PKsrWrSoqVOnjgkICDCTJk1y2Hb48GHj5uZmnn766TT/DN5++20jyURHR99236SkJJOQkOD0cwBwLabSAXBaZGSkgoKC1LBhQz3zzDOKjIxMsc/BgwftU5ImTZqk0NBQeXt7a9euXZKkPXv26JlnnlHOnDnl4+OjKlWq6LvvvnPo49oUt7Vr16p///7KkyePsmXLpqZNm+rEiRMO+y5cuFANGzZUgQIF5O3trdDQUL322mtKSkpK99d/7bVNnz49xbb/Xk9wbTrYX3/9pbZt2yowMFB58uTRsGHDZIzR4cOH1bhxYwUEBChfvnyaMGGCQ3+JiYkaPny47r//fgUGBipbtmx6+OGHtXz58hvWNH78eH3yySf2n/cDDzygTZs23fL1/P7777LZbJoxY0aKbT/99JNsNpsWLVokSTp37pxefPFFhYSEyNvbW8HBwXrssce0efPmWz7HW2+9pfPnz2vatGnKnz9/iu0eHh7q06ePChcufMt+JKl27dqSrk7LSy+DBw9WWFiY2rZte8Ptbdq00Z49e274OmfNmiWbzaZWrVrd8jmGDRumnDlzaurUqfL09EyxvV69enryySft3x8/flydO3dW3rx55ePjowoVKqT4N0rtv/sjjzyi9u3bS5IeeOAB2Ww2dejQQdLVKWjXvr7eI488okceecSh7f3331fZsmXl5+enoKAgValSRbNmzbJvv9k1Rh9++KHKli0rb29vFShQQL169UoxJe3alNVdu3bp0UcflZ+fnwoWLKi33nrrZj/SFHx8fNSsWTOHmqSrI3pBQUGqV69eimO2b9+uDh06qHjx4vLx8VG+fPnUqVMnxcbG2vcZOXKkBg4cKEkqVqyYfUretddps9nUu3dvRUZG2l/nkiVL7Nuu/U5ISEhQ6dKlVbp0aSUkJNj7P3XqlPLnz6+IiIgM+Z0FIHUY2wXgtMjISDVr1kxeXl5q1aqVPvroI23atEkPPPBAin2nTZumixcvqlu3bvL29lbOnDm1c+dO1ahRQwULFtTgwYOVLVs2ff3112rSpInmzZunpk2bOvTxwgsvKCgoSCNGjNDBgwc1adIk9e7dW1999ZV9n+nTp8vf31/9+/eXv7+/fv31Vw0fPlxxcXF6++23U/W6zp49q5MnT6Zov3z5spM/oZRatmypMmXKaNy4cVq8eLHGjBmjnDlzasqUKapdu7befPNNRUZGasCAAXrggQdUs2ZNSVJcXJw+++wztWrVSl27dtW5c+f0+eefq169etq4caMqVqzo8DyzZs3SuXPn1L17d9lsNr311ltq1qyZDhw4cMMP45JUpUoVFS9eXF9//bX9w/M1X331lcMHyh49emju3Lnq3bu3wsPDFRsbqzVr1mj37t2qXLnyTV//okWLVKJEiXS5Jm3//v2SpFy5ct1xX5K0ceNGzZgxQ2vWrJHNZrvhPm3atNGoUaM0a9Ysh9eZlJSkr7/+Wg8//LCKFCly0+fYu3ev9uzZo06dOil79uy3rSkhIUGPPPKI9u3bp969e6tYsWL65ptv1KFDB505c0Z9+/Z12P92/+6vvvqqwsLC9Mknn2j06NEqVqyYQkNDU/kTuurTTz9Vnz599Mwzz6hv3766ePGitm/frg0bNtxy+t/IkSM1atQo1a1bV88//7yioqLsvzPWrl3r8L48ffq06tevr2bNmqlFixaaO3euBg0apHLlyumJJ55IVZ2tW7fW448/rv3799tf46xZs/TMM8/c8Bz4+eefdeDAAXXs2FH58uXTzp079cknn2jnzp1av369bDabmjVrpr/++kuzZ8/WO++8o9y5c0uS8uTJY+/n119/1ddff63evXsrd+7cCgkJSfFcvr6+mjFjhmrUqKFXX31VEydOlCT16tVLZ8+e1fTp0+Xu7p6q1wkgA7h6yApA1vL7778bSebnn382xhiTnJxsChUqZPr27euwX3R0tJFkAgICzPHjxx221alTx5QrV85cvHjR3pacnGwiIiJMyZIl7W3XprjVrVvXJCcn29v79etn3N3dzZkzZ+xtFy5cSFFr9+7djZ+fn8Pz3Mi157nV4/qpdNde27Rp01L0JcmMGDHC/v216WDdunWzt125csUUKlTI2Gw2h+lXp0+fNr6+vqZ9+/YO+/53+uHp06dN3rx5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f3zLDwjFixeXdHVaUHrdS2XFihWKjY3V/Pnz7YsWSOm7atn1rv01/r+rav33r9/pYe7cuSpevLjmz5/v8AH22uhaemrZsqVGjRqlefPmKW/evIqLi9Ozzz6bYr/8+fOrZ8+e6tmzp44fP67KlSvr9ddfv+XF8Q0bNtRnn32mjRs3qmrVqule+620a9dODz30kP37a+/PQ4cO6fTp0ypbtmyKY9544w298cYb2rJli8MCF23atNGSJUv0448/atasWQoICNBTTz112xpKlSqlsLAwLVy4UO++++4NpxVer2jRotq+fbuSk5MdRo2uTQv9772e7kRQUNANb1r6999/28/Xa7Jly6aWLVuqZcuWSkxMVLNmzfT6669ryJAh8vHxueHrkKSoqCiHvhITExUdHZ1h91OSpFatWmnMmDEqU6ZMikVKrjl9+rSWLVumUaNGOdyjau/evSn2Tc8Rne3bt2v06NHq2LGjtm7dqi5dumjHjh0KDAxMt+cA4Dym0gFIlYSEBM2fP19PPvmknnnmmRSP3r1769y5cymW3P6v4OBgPfLII5oyZYpiYmJSbP/vMtypce2vzNf/VTkxMVEffvih032lRkBAgHLnzu1wrYmkDHm+G722DRs26Lfffkv35ypTpozKlSunr776Sl999ZXy58/vEDSTkpJSTC0KDg5WgQIFdOnSpVv2/fLLL8vPz0+dOnXSv//+m2K7syMCzihevLjD1MgaNWpIkvr06aMFCxY4PKZMmSJJ6tChgxYsWJDir/hNmjSRn5+fPvzwQ/34449q1qzZDQPBjYwaNUqxsbHq0qWLrly5kmL70qVL7cuiN2jQQMeOHXOY2njlyhW9//778vf3V61atdL0s7iR0NBQrV+/XomJifa2RYsW6fDhww77Xb98tXR1Olh4eLiMMTddubFu3bry8vLSe++95/Bv/Pnnn+vs2bNq2LBhur2O/+rSpYtGjBiRYgn8693o/JKkSZMmpdg3W7ZsklL+QcRZly9fVocOHVSgQAG9++67mj59uv7991/169fvjvoFcOcYMQKQKt99953OnTunRo0a3XB7tWrVlCdPHkVGRjpcrH8jkydP1kMPPaRy5cqpa9euKl68uP7991/99ttvOnLkiLZt2+ZUbREREQoKClL79u3Vp08f2Ww2zZw5M0M/bHfp0kXjxo1Tly5dVKVKFa1atUp//fVXuj/Pk08+qfnz56tp06Zq2LChoqOj9fHHHys8PPyG1+zcqZYtW2r48OHy8fFR586dHUYrzp07p0KFCumZZ55RhQoV5O/vr19++UWbNm265YdPSSpZsqRmzZqlVq1aKSwsTG3atFGFChVkjFF0dLRmzZolNzc3FSpUKN1f081Urlw5xRLj16bUlS1bVk2aNElxjL+/v5o0aWK/zig10+iuadmypXbs2KHXX39dW7ZsUatWrVS0aFHFxsZqyZIlWrZsmb3fbt26acqUKerQoYP++OMPhYSEaO7cuVq7dq0mTZqU6kUcUqNLly6aO3eu6tevrxYtWmj//v368ssvUyzn/fjjjytfvnyqUaOG8ubNq927d+uDDz5Qw4YNb1pPnjx5NGTIEI0aNUr169dXo0aNFBUVpQ8//FAPPPDATe8blR6KFi3qcE+xGwkICFDNmjX11ltv6fLlyypYsKCWLl16w9Hma9e1vfrqq3r22Wfl6empp556yh6YUmvMmDHaunWrli1bpuzZs6t8+fIaPny4hg4dqmeeeUYNGjRwqj8A6YdgBCBVIiMj5ePjo8cee+yG293c3NSwYUNFRkam+Mvyf4WHh+v333/XqFGjNH36dMXGxio4OFiVKlVymM6SWrly5dKiRYv00ksvaejQoQoKClLbtm1Vp06dm17HdKeGDx+uEydOaO7cufr666/1xBNP6Mcff1RwcHC6Pk+HDh107NgxTZkyRT/99JPCw8P15Zdf6ptvvtGKFSvS9bmkqx/ehw4dqgsXLqQIuH5+furZs6eWLl2q+fPnKzk5WSVKlNCHH36o559//rZ9N27cWDt27NCECRO0dOlSTZ06VTabTUWLFlXDhg3Vo0cPVahQId1fU3pr06aNZs2apfz58zssTJEaY8aMUe3atfXee+/po48+0qlTpxQUFKRq1app4cKF9j88+Pr6asWKFRo8eLBmzJihuLg4hYWFadq0aTe8GeudqFevniZMmKCJEyfqxRdfVJUqVezn0/W6d++uyMhITZw4UfHx8SpUqJD69OmjoUOH3rL/kSNHKk+ePPrggw/Ur18/5cyZU926ddMbb7xx03tr3U2zZs3SCy+8oMmTJ8sYo8cff1w//vijChQo4LDfAw88oNdee00ff/yxlixZouTkZEVHRzsVjDZv3qw33nhDvXv3tq/sKV29wfDC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6Q4AAAAAXMrpYDRv3jzVq1dPvr6+2rx5sy5duiRJOnv2rN544410LxAAAAAAMprTwWjMmDH6+OOP9emnn8rT09PeXqNGDW3evDldiwMAAACAu8HpYBQVFaWaNWumaA8MDNSZM2fSVMTMmTNVo0YNFShQQH///bckadKkSVq4cGGa+gMAAAAAZzgdjPLly6d9+/alaF+zZo2KFy/udAEfffSR+vfvrwYNGujMmTP25b5z5MihSZMmOd0fAAAAADjL6WDUtWtX9e3bVxs2bJDNZtM///yjyMhIDRgwQM8//7zTBbz//vv69NNP9eqrr8rd3d3eXqVKFe3YscPp/gAAAADAWU7fx2jw4MFKTk5WnTp1dOHCBdWsWVPe3t4aMGCAXnjhBacLiI6OVqVKlVK0e3t76/z58073BwAAAADOcioYJSUlae3aterVq5cGDhyoffv2KT4+XuHh4fL3909TAcWKFdPWrVtVtGhRh/YlS5aoTJkyaeoTAAAAAJzhVDByd3fX448/rt27dytHjhwKDw+/4wL69++vXr166eLFizLGaOPGjZo9e7bGjh2rzz777I77BwAAAIDbcXoq3X333acDBw6oWLFi6VJAly5d5Ovrq6FDh+rChQtq3bq1ChQooHfffVfPPvtsujwHAAAAANyKzRhjnDlgyZIlGjJkiF577TXdf//9ypYtm8P2gICANBdz4cIFxcfHKzg4OM19SNLFK3d0OAAAAIB7hE8qh4KcDkZubv9byM5ms9m/NsbIZrPZl9tOrdq1a2v+/PnKkSOHQ3tcXJyaNGmiX3/91an+JIIRAAAAgKtSG4ycnkq3fPlyZw+5pRUrVigxMTFF+8WLF7V69ep0fS4AAAAAuBGng1GtWrVuuu3PP/9MdT/bt2+3f71r1y4dO3bM/n1SUpKWLFmiggULOlseAAAAADjN6al0/3Xu3DnNnj1bn332mf74449UT6Vzc3OzT8W7UQm+vr56//331alTJ6drYiodAAAAACkDp9Jds2rVKn3++eeaN2+eChQooGbNmmny5MmpPj46OlrGGBUvXlwbN25Unjx57Nu8vLwUHBwsd3f3tJYHAAAAAKnmVDA6duyYpk+frs8//1xxcXFq0aKFLl26pG+//dbpexpdu6FrcnKyU8cBAAAAQHpzu/0uVz311FMKCwvT9u3bNWnSJP3zzz96//33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",
|
| 112 |
+
"text/plain": [
|
| 113 |
+
"<Figure size 1000x700 with 1 Axes>"
|
| 114 |
+
]
|
| 115 |
+
},
|
| 116 |
+
"metadata": {},
|
| 117 |
+
"output_type": "display_data"
|
| 118 |
+
}
|
| 119 |
+
],
|
| 120 |
+
"source": [
|
| 121 |
+
"import seaborn as sns\n",
|
| 122 |
+
"import matplotlib.pyplot as plt\n",
|
| 123 |
+
"from sklearn.metrics import confusion_matrix\n",
|
| 124 |
+
"import pandas as pd\n",
|
| 125 |
+
"\n",
|
| 126 |
+
"# Assuming df is your DataFrame\n",
|
| 127 |
+
"\n",
|
| 128 |
+
"# True labels and predictions\n",
|
| 129 |
+
"y_true = filtered_df[\"type\"]\n",
|
| 130 |
+
"y_pred = filtered_df[\"gpt_vote\"]\n",
|
| 131 |
+
"\n",
|
| 132 |
+
"# Compute the confusion matrix\n",
|
| 133 |
+
"conf_matrix = confusion_matrix(y_true, y_pred, labels=[\"leftvote\", \"rightvote\", \"tievote\", \"bothbad_vote\"])\n",
|
| 134 |
+
"\n",
|
| 135 |
+
"# Create a pandas DataFrame from the confusion matrix\n",
|
| 136 |
+
"conf_matrix_df = pd.DataFrame(conf_matrix, index=[\"leftvote\", \"rightvote\", \"tievote\", \"bothbad_vote\"], columns=[\"leftvote\", \"rightvote\", \"tievote\", \"bothbad_vote\"])\n",
|
| 137 |
+
"\n",
|
| 138 |
+
"# Plotting the heatmap\n",
|
| 139 |
+
"plt.figure(figsize=(10, 7))\n",
|
| 140 |
+
"sns.heatmap(conf_matrix_df, annot=True, fmt=\"d\", cmap=\"Blues\", cbar=False)\n",
|
| 141 |
+
"plt.title(\"Arena Human vs GPT-4V Confusion Matrix\")\n",
|
| 142 |
+
"plt.xlabel(\"GPT-4V Vote\")\n",
|
| 143 |
+
"plt.ylabel(\"Arena Human Vote\")\n",
|
| 144 |
+
"plt.show()\n"
|
| 145 |
+
]
|
| 146 |
+
},
|
| 147 |
+
{
|
| 148 |
+
"cell_type": "code",
|
| 149 |
+
"execution_count": 46,
|
| 150 |
+
"metadata": {},
|
| 151 |
+
"outputs": [
|
| 152 |
+
{
|
| 153 |
+
"name": "stdout",
|
| 154 |
+
"output_type": "stream",
|
| 155 |
+
"text": [
|
| 156 |
+
"Accuracy: 0.5842911877394636\n",
|
| 157 |
+
"F1 Score (Macro): 0.514392348541452\n",
|
| 158 |
+
"F1 Score (Micro): 0.5842911877394636\n",
|
| 159 |
+
"F1 Score (Weighted): 0.5536668839130223\n"
|
| 160 |
+
]
|
| 161 |
+
}
|
| 162 |
+
],
|
| 163 |
+
"source": [
|
| 164 |
+
"from sklearn.metrics import accuracy_score, f1_score\n",
|
| 165 |
+
"\n",
|
| 166 |
+
"# Assuming df is your DataFrame and it contains 'type' as true labels and 'gpt_vote' as predictions\n",
|
| 167 |
+
"y_true = filtered_df['type']\n",
|
| 168 |
+
"y_pred = filtered_df['gpt_vote']\n",
|
| 169 |
+
"\n",
|
| 170 |
+
"# Calculate accuracy\n",
|
| 171 |
+
"accuracy = accuracy_score(y_true, y_pred)\n",
|
| 172 |
+
"print(f'Accuracy: {accuracy}')\n",
|
| 173 |
+
"\n",
|
| 174 |
+
"# Calculate F1 score, here using 'macro' average to treat all classes equally\n",
|
| 175 |
+
"f1 = f1_score(y_true, y_pred, average='macro')\n",
|
| 176 |
+
"print(f'F1 Score (Macro): {f1}')\n",
|
| 177 |
+
"\n",
|
| 178 |
+
"# If you want to calculate F1 score with other averages, for example 'micro' or 'weighted', you can do:\n",
|
| 179 |
+
"f1_micro = f1_score(y_true, y_pred, average='micro')\n",
|
| 180 |
+
"print(f'F1 Score (Micro): {f1_micro}')\n",
|
| 181 |
+
"\n",
|
| 182 |
+
"f1_weighted = f1_score(y_true, y_pred, average='weighted')\n",
|
| 183 |
+
"print(f'F1 Score (Weighted): {f1_weighted}')"
|
| 184 |
+
]
|
| 185 |
+
},
|
| 186 |
+
{
|
| 187 |
+
"cell_type": "code",
|
| 188 |
+
"execution_count": null,
|
| 189 |
+
"metadata": {},
|
| 190 |
+
"outputs": [],
|
| 191 |
+
"source": []
|
| 192 |
+
},
|
| 193 |
+
{
|
| 194 |
+
"cell_type": "code",
|
| 195 |
+
"execution_count": 47,
|
| 196 |
+
"metadata": {},
|
| 197 |
+
"outputs": [
|
| 198 |
+
{
|
| 199 |
+
"name": "stdout",
|
| 200 |
+
"output_type": "stream",
|
| 201 |
+
"text": [
|
| 202 |
+
"Cohen's Kappa Score: 0.3442144615665177\n"
|
| 203 |
+
]
|
| 204 |
+
}
|
| 205 |
+
],
|
| 206 |
+
"source": [
|
| 207 |
+
"from sklearn.metrics import cohen_kappa_score\n",
|
| 208 |
+
"\n",
|
| 209 |
+
"# Assuming df is your DataFrame and it contains 'type' as true labels and 'gpt_vote' as predictions\n",
|
| 210 |
+
"y_true = filtered_df['type']\n",
|
| 211 |
+
"y_pred = filtered_df['gpt_vote']\n",
|
| 212 |
+
"\n",
|
| 213 |
+
"# Calculate Cohen's Kappa score\n",
|
| 214 |
+
"kappa = cohen_kappa_score(y_true, y_pred)\n",
|
| 215 |
+
"print(f'Cohen\\'s Kappa Score: {kappa}')\n"
|
| 216 |
+
]
|
| 217 |
+
},
|
| 218 |
+
{
|
| 219 |
+
"cell_type": "code",
|
| 220 |
+
"execution_count": 48,
|
| 221 |
+
"metadata": {},
|
| 222 |
+
"outputs": [
|
| 223 |
+
{
|
| 224 |
+
"name": "stdout",
|
| 225 |
+
"output_type": "stream",
|
| 226 |
+
"text": [
|
| 227 |
+
"Accuracy Score: 0.5842911877394636\n"
|
| 228 |
+
]
|
| 229 |
+
}
|
| 230 |
+
],
|
| 231 |
+
"source": [
|
| 232 |
+
"from sklearn.metrics import accuracy_score\n",
|
| 233 |
+
"accuracy = accuracy_score(y_true, y_pred)\n",
|
| 234 |
+
"print(f'Accuracy Score: {accuracy}')\n"
|
| 235 |
+
]
|
| 236 |
+
},
|
| 237 |
+
{
|
| 238 |
+
"cell_type": "code",
|
| 239 |
+
"execution_count": 49,
|
| 240 |
+
"metadata": {},
|
| 241 |
+
"outputs": [
|
| 242 |
+
{
|
| 243 |
+
"name": "stdout",
|
| 244 |
+
"output_type": "stream",
|
| 245 |
+
"text": [
|
| 246 |
+
"Pearson Correlation Coefficient: 0.2880096104357029\n"
|
| 247 |
+
]
|
| 248 |
+
}
|
| 249 |
+
],
|
| 250 |
+
"source": [
|
| 251 |
+
"import pandas as pd\n",
|
| 252 |
+
"\n",
|
| 253 |
+
"# Assuming filtered_df is your DataFrame and it contains 'type' and 'gpt_vote' columns\n",
|
| 254 |
+
"# Convert 'type' and 'gpt_vote' to categorical codes\n",
|
| 255 |
+
"filtered_df['type_int'] = pd.factorize(filtered_df['type'])[0]\n",
|
| 256 |
+
"filtered_df['gpt_vote_int'] = pd.factorize(filtered_df['gpt_vote'])[0]\n",
|
| 257 |
+
"\n",
|
| 258 |
+
"# Now you can calculate Pearson correlation between these new integer columns\n",
|
| 259 |
+
"pearson_correlation = filtered_df['type_int'].corr(filtered_df['gpt_vote_int'])\n",
|
| 260 |
+
"print(f'Pearson Correlation Coefficient: {pearson_correlation}')\n"
|
| 261 |
+
]
|
| 262 |
+
},
|
| 263 |
+
{
|
| 264 |
+
"cell_type": "code",
|
| 265 |
+
"execution_count": null,
|
| 266 |
+
"metadata": {},
|
| 267 |
+
"outputs": [],
|
| 268 |
+
"source": []
|
| 269 |
+
},
|
| 270 |
+
{
|
| 271 |
+
"cell_type": "code",
|
| 272 |
+
"execution_count": null,
|
| 273 |
+
"metadata": {},
|
| 274 |
+
"outputs": [],
|
| 275 |
+
"source": []
|
| 276 |
+
},
|
| 277 |
+
{
|
| 278 |
+
"cell_type": "code",
|
| 279 |
+
"execution_count": null,
|
| 280 |
+
"metadata": {},
|
| 281 |
+
"outputs": [],
|
| 282 |
+
"source": []
|
| 283 |
+
},
|
| 284 |
+
{
|
| 285 |
+
"cell_type": "code",
|
| 286 |
+
"execution_count": null,
|
| 287 |
+
"metadata": {},
|
| 288 |
+
"outputs": [],
|
| 289 |
+
"source": []
|
| 290 |
+
},
|
| 291 |
+
{
|
| 292 |
+
"cell_type": "code",
|
| 293 |
+
"execution_count": null,
|
| 294 |
+
"metadata": {},
|
| 295 |
+
"outputs": [],
|
| 296 |
+
"source": []
|
| 297 |
+
}
|
| 298 |
+
],
|
| 299 |
+
"metadata": {
|
| 300 |
+
"kernelspec": {
|
| 301 |
+
"display_name": "otask",
|
| 302 |
+
"language": "python",
|
| 303 |
+
"name": "python3"
|
| 304 |
+
},
|
| 305 |
+
"language_info": {
|
| 306 |
+
"codemirror_mode": {
|
| 307 |
+
"name": "ipython",
|
| 308 |
+
"version": 3
|
| 309 |
+
},
|
| 310 |
+
"file_extension": ".py",
|
| 311 |
+
"mimetype": "text/x-python",
|
| 312 |
+
"name": "python",
|
| 313 |
+
"nbconvert_exporter": "python",
|
| 314 |
+
"pygments_lexer": "ipython3",
|
| 315 |
+
"version": "3.10.13"
|
| 316 |
+
},
|
| 317 |
+
"orig_nbformat": 4
|
| 318 |
+
},
|
| 319 |
+
"nbformat": 4,
|
| 320 |
+
"nbformat_minor": 2
|
| 321 |
+
}
|
arena_elo/get_latest_data.sh
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
# set LOGDIR to default if not set before
|
| 3 |
+
if [ -z "$LOGDIR" ]; then
|
| 4 |
+
export LOGDIR="./vision-arena-logs"
|
| 5 |
+
fi
|
| 6 |
+
mkdir -p results
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
# # for battle data
|
| 10 |
+
python -m elo_rating.clean_battle_data --model_infos_file "./model_infos.json" --mode conv_release
|
| 11 |
+
battle_cutoff_date=`cat cut_off_date.txt` && rm cut_off_date.txt && echo "Battle data last updated on $battle_cutoff_date"
|
| 12 |
+
|
| 13 |
+
mkdir -p ./results/latest
|
| 14 |
+
mkdir -p ./results/$battle_cutoff_date && mv ./clean_battle_conv_$battle_cutoff_date.json ./results/$battle_cutoff_date/clean_battle_conv.json
|
| 15 |
+
cp ./results/$battle_cutoff_date/clean_battle_conv.json ./results/latest/clean_battle_conv.json
|
| 16 |
+
|
| 17 |
+
echo "Battle data last updated on $battle_cutoff_date" >> ./results/latest/latest_updated_date.txt
|
arena_elo/pyproject.toml
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[build-system]
|
| 2 |
+
requires = ["setuptools>=61.0"]
|
| 3 |
+
build-backend = "setuptools.build_meta"
|
| 4 |
+
|
| 5 |
+
[project]
|
| 6 |
+
name = "arena_elo"
|
| 7 |
+
version = "0.2.35"
|
| 8 |
+
description = "Elo rating system for WildVision Bench Arena"
|
| 9 |
+
readme = "README.md"
|
| 10 |
+
requires-python = ">=3.9"
|
| 11 |
+
classifiers = [
|
| 12 |
+
"Programming Language :: Python :: 3",
|
| 13 |
+
"License :: OSI Approved :: Apache Software License",
|
| 14 |
+
]
|
| 15 |
+
dependencies = [
|
| 16 |
+
"numpy", "prompt_toolkit>=3.0.0", "uvicorn","polyglot", "pyicu", "pycld2", "morfessor", "scikit-learn",
|
| 17 |
+
"pytz", "tqdm", "pandas", "plotly", "fire", "Pillow"
|
| 18 |
+
]
|
| 19 |
+
|
| 20 |
+
[project.urls]
|
| 21 |
+
"Homepage" = "https://github.com/WildVision-Bench/Arena-Elo"
|
| 22 |
+
"Bug Tracker" = "https://github.com/WildVision-Bench/Arena-Elo/issues"
|
| 23 |
+
|
| 24 |
+
[tool.setuptools.packages.find]
|
| 25 |
+
exclude = ["assets*", "benchmark*", "docs", "dist*", "playground*", "scripts*", "tests*"]
|
| 26 |
+
|
| 27 |
+
[tool.wheel]
|
| 28 |
+
exclude = ["assets*", "benchmark*", "docs", "dist*", "playground*", "scripts*", "tests*"]
|
arena_elo/requirements.txt
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
-e git+https://github.com/WildVision-Bench/Arena-Elo.git@9dc2fa8543a2e9eda3d5bc01c2212fdfcdd4bfb5#egg=arena_elo
|
| 2 |
+
click==8.1.7
|
| 3 |
+
fire==0.5.0
|
| 4 |
+
h11==0.14.0
|
| 5 |
+
joblib==1.3.2
|
| 6 |
+
Morfessor==2.0.6
|
| 7 |
+
numpy==1.26.4
|
| 8 |
+
packaging==23.2
|
| 9 |
+
pandas==2.2.0
|
| 10 |
+
pillow==10.2.0
|
| 11 |
+
plotly==5.18.0
|
| 12 |
+
polyglot==16.7.4
|
| 13 |
+
prompt-toolkit==3.0.43
|
| 14 |
+
pycld2==0.41
|
| 15 |
+
PyICU==2.12
|
| 16 |
+
python-dateutil==2.8.2
|
| 17 |
+
pytz==2024.1
|
| 18 |
+
scikit-learn==1.4.0
|
| 19 |
+
scipy==1.12.0
|
| 20 |
+
six==1.16.0
|
| 21 |
+
tenacity==8.2.3
|
| 22 |
+
termcolor==2.4.0
|
| 23 |
+
threadpoolctl==3.2.0
|
| 24 |
+
tqdm==4.66.2
|
| 25 |
+
typing_extensions==4.9.0
|
| 26 |
+
tzdata==2024.1
|
| 27 |
+
uvicorn==0.27.1
|
| 28 |
+
wcwidth==0.2.13
|
arena_elo/results/20241224/clean_battle.json
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"model_a": "FLUX-1",
|
| 4 |
+
"model_b": "ChatDiT",
|
| 5 |
+
"winner": "model_b",
|
| 6 |
+
"judge": "arena_user_127.0.0.1",
|
| 7 |
+
"anony": true,
|
| 8 |
+
"tstamp": 1735030427.6669
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"model_a": "FLUX-1",
|
| 12 |
+
"model_b": "ChatDiT",
|
| 13 |
+
"winner": "model_a",
|
| 14 |
+
"judge": "arena_user_127.0.0.1",
|
| 15 |
+
"anony": true,
|
| 16 |
+
"tstamp": 1735030452.0238
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"model_a": "ChatDiT",
|
| 20 |
+
"model_b": "FLUX-1",
|
| 21 |
+
"winner": "model_a",
|
| 22 |
+
"judge": "arena_user_127.0.0.1",
|
| 23 |
+
"anony": true,
|
| 24 |
+
"tstamp": 1735030464.2602
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"model_a": "ChatDiT",
|
| 28 |
+
"model_b": "FLUX-1",
|
| 29 |
+
"winner": "model_a",
|
| 30 |
+
"judge": "arena_user_127.0.0.1",
|
| 31 |
+
"anony": true,
|
| 32 |
+
"tstamp": 1735030476.2328
|
| 33 |
+
},
|
| 34 |
+
{
|
| 35 |
+
"model_a": "FLUX-1",
|
| 36 |
+
"model_b": "ChatDiT",
|
| 37 |
+
"winner": "tie (bothbad)",
|
| 38 |
+
"judge": "arena_user_127.0.0.1",
|
| 39 |
+
"anony": true,
|
| 40 |
+
"tstamp": 1735030495.2955
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"model_a": "ChatDiT",
|
| 44 |
+
"model_b": "FLUX-1",
|
| 45 |
+
"winner": "tie (bothbad)",
|
| 46 |
+
"judge": "arena_user_127.0.0.1",
|
| 47 |
+
"anony": true,
|
| 48 |
+
"tstamp": 1735030503.418
|
| 49 |
+
},
|
| 50 |
+
{
|
| 51 |
+
"model_a": "ChatDiT",
|
| 52 |
+
"model_b": "FLUX-1",
|
| 53 |
+
"winner": "model_a",
|
| 54 |
+
"judge": "arena_user_127.0.0.1",
|
| 55 |
+
"anony": true,
|
| 56 |
+
"tstamp": 1735030511.3926
|
| 57 |
+
},
|
| 58 |
+
{
|
| 59 |
+
"model_a": "ChatDiT",
|
| 60 |
+
"model_b": "FLUX-1",
|
| 61 |
+
"winner": "tie (bothbad)",
|
| 62 |
+
"judge": "arena_user_127.0.0.1",
|
| 63 |
+
"anony": true,
|
| 64 |
+
"tstamp": 1735034259.9984
|
| 65 |
+
},
|
| 66 |
+
{
|
| 67 |
+
"model_a": "ChatDiT",
|
| 68 |
+
"model_b": "FLUX-1",
|
| 69 |
+
"winner": "model_a",
|
| 70 |
+
"judge": "arena_user_127.0.0.1",
|
| 71 |
+
"anony": true,
|
| 72 |
+
"tstamp": 1735034275.6871
|
| 73 |
+
},
|
| 74 |
+
{
|
| 75 |
+
"model_a": "ChatDiT",
|
| 76 |
+
"model_b": "FLUX-1",
|
| 77 |
+
"winner": "model_a",
|
| 78 |
+
"judge": "arena_user_127.0.0.1",
|
| 79 |
+
"anony": true,
|
| 80 |
+
"tstamp": 1735034284.7354
|
| 81 |
+
},
|
| 82 |
+
{
|
| 83 |
+
"model_a": "FLUX-1",
|
| 84 |
+
"model_b": "ChatDiT",
|
| 85 |
+
"winner": "model_a",
|
| 86 |
+
"judge": "arena_user_127.0.0.1",
|
| 87 |
+
"anony": true,
|
| 88 |
+
"tstamp": 1735034293.468
|
| 89 |
+
},
|
| 90 |
+
{
|
| 91 |
+
"model_a": "ChatDiT",
|
| 92 |
+
"model_b": "FLUX-1",
|
| 93 |
+
"winner": "model_b",
|
| 94 |
+
"judge": "arena_user_127.0.0.1",
|
| 95 |
+
"anony": true,
|
| 96 |
+
"tstamp": 1735034303.2042
|
| 97 |
+
},
|
| 98 |
+
{
|
| 99 |
+
"model_a": "ChatDiT",
|
| 100 |
+
"model_b": "FLUX-1",
|
| 101 |
+
"winner": "model_a",
|
| 102 |
+
"judge": "arena_user_127.0.0.1",
|
| 103 |
+
"anony": true,
|
| 104 |
+
"tstamp": 1735034314.1941
|
| 105 |
+
},
|
| 106 |
+
{
|
| 107 |
+
"model_a": "FLUX-1",
|
| 108 |
+
"model_b": "ChatDiT",
|
| 109 |
+
"winner": "model_a",
|
| 110 |
+
"judge": "arena_user_127.0.0.1",
|
| 111 |
+
"anony": true,
|
| 112 |
+
"tstamp": 1735034326.5092
|
| 113 |
+
},
|
| 114 |
+
{
|
| 115 |
+
"model_a": "FLUX-1",
|
| 116 |
+
"model_b": "ChatDiT",
|
| 117 |
+
"winner": "model_b",
|
| 118 |
+
"judge": "arena_user_127.0.0.1",
|
| 119 |
+
"anony": true,
|
| 120 |
+
"tstamp": 1735034331.6963
|
| 121 |
+
},
|
| 122 |
+
{
|
| 123 |
+
"model_a": "FLUX-1",
|
| 124 |
+
"model_b": "ChatDiT",
|
| 125 |
+
"winner": "tie (bothbad)",
|
| 126 |
+
"judge": "arena_user_127.0.0.1",
|
| 127 |
+
"anony": true,
|
| 128 |
+
"tstamp": 1735034336.5346
|
| 129 |
+
},
|
| 130 |
+
{
|
| 131 |
+
"model_a": "ChatDiT",
|
| 132 |
+
"model_b": "FLUX-1",
|
| 133 |
+
"winner": "model_b",
|
| 134 |
+
"judge": "arena_user_127.0.0.1",
|
| 135 |
+
"anony": true,
|
| 136 |
+
"tstamp": 1735034351.9521
|
| 137 |
+
},
|
| 138 |
+
{
|
| 139 |
+
"model_a": "FLUX-1",
|
| 140 |
+
"model_b": "ChatDiT",
|
| 141 |
+
"winner": "model_b",
|
| 142 |
+
"judge": "arena_user_127.0.0.1",
|
| 143 |
+
"anony": true,
|
| 144 |
+
"tstamp": 1735034366.1775
|
| 145 |
+
},
|
| 146 |
+
{
|
| 147 |
+
"model_a": "FLUX-1",
|
| 148 |
+
"model_b": "ChatDiT",
|
| 149 |
+
"winner": "model_a",
|
| 150 |
+
"judge": "arena_user_127.0.0.1",
|
| 151 |
+
"anony": true,
|
| 152 |
+
"tstamp": 1735034380.5877
|
| 153 |
+
},
|
| 154 |
+
{
|
| 155 |
+
"model_a": "ChatDiT",
|
| 156 |
+
"model_b": "FLUX-1",
|
| 157 |
+
"winner": "model_b",
|
| 158 |
+
"judge": "arena_user_127.0.0.1",
|
| 159 |
+
"anony": true,
|
| 160 |
+
"tstamp": 1735034384.3087
|
| 161 |
+
},
|
| 162 |
+
{
|
| 163 |
+
"model_a": "FLUX-1",
|
| 164 |
+
"model_b": "ChatDiT",
|
| 165 |
+
"winner": "model_a",
|
| 166 |
+
"judge": "arena_user_127.0.0.1",
|
| 167 |
+
"anony": true,
|
| 168 |
+
"tstamp": 1735034389.1583
|
| 169 |
+
},
|
| 170 |
+
{
|
| 171 |
+
"model_a": "FLUX-1",
|
| 172 |
+
"model_b": "ChatDiT",
|
| 173 |
+
"winner": "model_b",
|
| 174 |
+
"judge": "arena_user_127.0.0.1",
|
| 175 |
+
"anony": true,
|
| 176 |
+
"tstamp": 1735034405.9359
|
| 177 |
+
},
|
| 178 |
+
{
|
| 179 |
+
"model_a": "FLUX-1",
|
| 180 |
+
"model_b": "ChatDiT",
|
| 181 |
+
"winner": "model_b",
|
| 182 |
+
"judge": "arena_user_127.0.0.1",
|
| 183 |
+
"anony": true,
|
| 184 |
+
"tstamp": 1735034412.3533
|
| 185 |
+
},
|
| 186 |
+
{
|
| 187 |
+
"model_a": "FLUX-1",
|
| 188 |
+
"model_b": "ChatDiT",
|
| 189 |
+
"winner": "model_a",
|
| 190 |
+
"judge": "arena_user_127.0.0.1",
|
| 191 |
+
"anony": true,
|
| 192 |
+
"tstamp": 1735034419.0118
|
| 193 |
+
},
|
| 194 |
+
{
|
| 195 |
+
"model_a": "FLUX-1",
|
| 196 |
+
"model_b": "ChatDiT",
|
| 197 |
+
"winner": "model_b",
|
| 198 |
+
"judge": "arena_user_127.0.0.1",
|
| 199 |
+
"anony": true,
|
| 200 |
+
"tstamp": 1735034425.6972
|
| 201 |
+
},
|
| 202 |
+
{
|
| 203 |
+
"model_a": "FLUX-1",
|
| 204 |
+
"model_b": "ChatDiT",
|
| 205 |
+
"winner": "model_b",
|
| 206 |
+
"judge": "arena_user_127.0.0.1",
|
| 207 |
+
"anony": true,
|
| 208 |
+
"tstamp": 1735034432.5891
|
| 209 |
+
}
|
| 210 |
+
]
|
arena_elo/results/20241224/elo_results.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:73f08bd5db0423e0fec2bcc78b8d8153ff04a93d88cd4877136d08ba50ea3a84
|
| 3 |
+
size 44938
|
arena_elo/results/20241224/leaderboard.csv
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
key,Model,Arena Elo rating (anony),Arena Elo rating (full),license,creator,link
|
| 2 |
+
ChatDiT,ChatDiT,1026.7303773982676,1026.7303773982676,-,Tongyi Lab,https://github.com/ali-vilab/ChatDiT
|
| 3 |
+
FLUX-1,FLUX-1,973.2696226017323,973.2696226017323,-,Black Forest Labs,https://www.basedlabs.ai/tools/flux1
|
arena_elo/results/20241226/clean_battle.json
ADDED
|
@@ -0,0 +1,482 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"model_a": "FLUX-1",
|
| 4 |
+
"model_b": "ChatDiT",
|
| 5 |
+
"winner": "model_b",
|
| 6 |
+
"judge": "arena_user_127.0.0.1",
|
| 7 |
+
"anony": true,
|
| 8 |
+
"tstamp": 1735030427.6669
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"model_a": "FLUX-1",
|
| 12 |
+
"model_b": "ChatDiT",
|
| 13 |
+
"winner": "model_a",
|
| 14 |
+
"judge": "arena_user_127.0.0.1",
|
| 15 |
+
"anony": true,
|
| 16 |
+
"tstamp": 1735030452.0238
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"model_a": "ChatDiT",
|
| 20 |
+
"model_b": "FLUX-1",
|
| 21 |
+
"winner": "model_a",
|
| 22 |
+
"judge": "arena_user_127.0.0.1",
|
| 23 |
+
"anony": true,
|
| 24 |
+
"tstamp": 1735030464.2602
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"model_a": "ChatDiT",
|
| 28 |
+
"model_b": "FLUX-1",
|
| 29 |
+
"winner": "model_a",
|
| 30 |
+
"judge": "arena_user_127.0.0.1",
|
| 31 |
+
"anony": true,
|
| 32 |
+
"tstamp": 1735030476.2328
|
| 33 |
+
},
|
| 34 |
+
{
|
| 35 |
+
"model_a": "FLUX-1",
|
| 36 |
+
"model_b": "ChatDiT",
|
| 37 |
+
"winner": "tie (bothbad)",
|
| 38 |
+
"judge": "arena_user_127.0.0.1",
|
| 39 |
+
"anony": true,
|
| 40 |
+
"tstamp": 1735030495.2955
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"model_a": "ChatDiT",
|
| 44 |
+
"model_b": "FLUX-1",
|
| 45 |
+
"winner": "tie (bothbad)",
|
| 46 |
+
"judge": "arena_user_127.0.0.1",
|
| 47 |
+
"anony": true,
|
| 48 |
+
"tstamp": 1735030503.418
|
| 49 |
+
},
|
| 50 |
+
{
|
| 51 |
+
"model_a": "ChatDiT",
|
| 52 |
+
"model_b": "FLUX-1",
|
| 53 |
+
"winner": "model_a",
|
| 54 |
+
"judge": "arena_user_127.0.0.1",
|
| 55 |
+
"anony": true,
|
| 56 |
+
"tstamp": 1735030511.3926
|
| 57 |
+
},
|
| 58 |
+
{
|
| 59 |
+
"model_a": "ChatDiT",
|
| 60 |
+
"model_b": "FLUX-1",
|
| 61 |
+
"winner": "tie (bothbad)",
|
| 62 |
+
"judge": "arena_user_127.0.0.1",
|
| 63 |
+
"anony": true,
|
| 64 |
+
"tstamp": 1735034259.9984
|
| 65 |
+
},
|
| 66 |
+
{
|
| 67 |
+
"model_a": "ChatDiT",
|
| 68 |
+
"model_b": "FLUX-1",
|
| 69 |
+
"winner": "model_a",
|
| 70 |
+
"judge": "arena_user_127.0.0.1",
|
| 71 |
+
"anony": true,
|
| 72 |
+
"tstamp": 1735034275.6871
|
| 73 |
+
},
|
| 74 |
+
{
|
| 75 |
+
"model_a": "ChatDiT",
|
| 76 |
+
"model_b": "FLUX-1",
|
| 77 |
+
"winner": "model_a",
|
| 78 |
+
"judge": "arena_user_127.0.0.1",
|
| 79 |
+
"anony": true,
|
| 80 |
+
"tstamp": 1735034284.7354
|
| 81 |
+
},
|
| 82 |
+
{
|
| 83 |
+
"model_a": "FLUX-1",
|
| 84 |
+
"model_b": "ChatDiT",
|
| 85 |
+
"winner": "model_a",
|
| 86 |
+
"judge": "arena_user_127.0.0.1",
|
| 87 |
+
"anony": true,
|
| 88 |
+
"tstamp": 1735034293.468
|
| 89 |
+
},
|
| 90 |
+
{
|
| 91 |
+
"model_a": "ChatDiT",
|
| 92 |
+
"model_b": "FLUX-1",
|
| 93 |
+
"winner": "model_b",
|
| 94 |
+
"judge": "arena_user_127.0.0.1",
|
| 95 |
+
"anony": true,
|
| 96 |
+
"tstamp": 1735034303.2042
|
| 97 |
+
},
|
| 98 |
+
{
|
| 99 |
+
"model_a": "ChatDiT",
|
| 100 |
+
"model_b": "FLUX-1",
|
| 101 |
+
"winner": "model_a",
|
| 102 |
+
"judge": "arena_user_127.0.0.1",
|
| 103 |
+
"anony": true,
|
| 104 |
+
"tstamp": 1735034314.1941
|
| 105 |
+
},
|
| 106 |
+
{
|
| 107 |
+
"model_a": "FLUX-1",
|
| 108 |
+
"model_b": "ChatDiT",
|
| 109 |
+
"winner": "model_a",
|
| 110 |
+
"judge": "arena_user_127.0.0.1",
|
| 111 |
+
"anony": true,
|
| 112 |
+
"tstamp": 1735034326.5092
|
| 113 |
+
},
|
| 114 |
+
{
|
| 115 |
+
"model_a": "FLUX-1",
|
| 116 |
+
"model_b": "ChatDiT",
|
| 117 |
+
"winner": "model_b",
|
| 118 |
+
"judge": "arena_user_127.0.0.1",
|
| 119 |
+
"anony": true,
|
| 120 |
+
"tstamp": 1735034331.6963
|
| 121 |
+
},
|
| 122 |
+
{
|
| 123 |
+
"model_a": "FLUX-1",
|
| 124 |
+
"model_b": "ChatDiT",
|
| 125 |
+
"winner": "tie (bothbad)",
|
| 126 |
+
"judge": "arena_user_127.0.0.1",
|
| 127 |
+
"anony": true,
|
| 128 |
+
"tstamp": 1735034336.5346
|
| 129 |
+
},
|
| 130 |
+
{
|
| 131 |
+
"model_a": "ChatDiT",
|
| 132 |
+
"model_b": "FLUX-1",
|
| 133 |
+
"winner": "model_b",
|
| 134 |
+
"judge": "arena_user_127.0.0.1",
|
| 135 |
+
"anony": true,
|
| 136 |
+
"tstamp": 1735034351.9521
|
| 137 |
+
},
|
| 138 |
+
{
|
| 139 |
+
"model_a": "FLUX-1",
|
| 140 |
+
"model_b": "ChatDiT",
|
| 141 |
+
"winner": "model_b",
|
| 142 |
+
"judge": "arena_user_127.0.0.1",
|
| 143 |
+
"anony": true,
|
| 144 |
+
"tstamp": 1735034366.1775
|
| 145 |
+
},
|
| 146 |
+
{
|
| 147 |
+
"model_a": "FLUX-1",
|
| 148 |
+
"model_b": "ChatDiT",
|
| 149 |
+
"winner": "model_a",
|
| 150 |
+
"judge": "arena_user_127.0.0.1",
|
| 151 |
+
"anony": true,
|
| 152 |
+
"tstamp": 1735034380.5877
|
| 153 |
+
},
|
| 154 |
+
{
|
| 155 |
+
"model_a": "ChatDiT",
|
| 156 |
+
"model_b": "FLUX-1",
|
| 157 |
+
"winner": "model_b",
|
| 158 |
+
"judge": "arena_user_127.0.0.1",
|
| 159 |
+
"anony": true,
|
| 160 |
+
"tstamp": 1735034384.3087
|
| 161 |
+
},
|
| 162 |
+
{
|
| 163 |
+
"model_a": "FLUX-1",
|
| 164 |
+
"model_b": "ChatDiT",
|
| 165 |
+
"winner": "model_a",
|
| 166 |
+
"judge": "arena_user_127.0.0.1",
|
| 167 |
+
"anony": true,
|
| 168 |
+
"tstamp": 1735034389.1583
|
| 169 |
+
},
|
| 170 |
+
{
|
| 171 |
+
"model_a": "FLUX-1",
|
| 172 |
+
"model_b": "ChatDiT",
|
| 173 |
+
"winner": "model_b",
|
| 174 |
+
"judge": "arena_user_127.0.0.1",
|
| 175 |
+
"anony": true,
|
| 176 |
+
"tstamp": 1735034405.9359
|
| 177 |
+
},
|
| 178 |
+
{
|
| 179 |
+
"model_a": "FLUX-1",
|
| 180 |
+
"model_b": "ChatDiT",
|
| 181 |
+
"winner": "model_b",
|
| 182 |
+
"judge": "arena_user_127.0.0.1",
|
| 183 |
+
"anony": true,
|
| 184 |
+
"tstamp": 1735034412.3533
|
| 185 |
+
},
|
| 186 |
+
{
|
| 187 |
+
"model_a": "FLUX-1",
|
| 188 |
+
"model_b": "ChatDiT",
|
| 189 |
+
"winner": "model_a",
|
| 190 |
+
"judge": "arena_user_127.0.0.1",
|
| 191 |
+
"anony": true,
|
| 192 |
+
"tstamp": 1735034419.0118
|
| 193 |
+
},
|
| 194 |
+
{
|
| 195 |
+
"model_a": "FLUX-1",
|
| 196 |
+
"model_b": "ChatDiT",
|
| 197 |
+
"winner": "model_b",
|
| 198 |
+
"judge": "arena_user_127.0.0.1",
|
| 199 |
+
"anony": true,
|
| 200 |
+
"tstamp": 1735034425.6972
|
| 201 |
+
},
|
| 202 |
+
{
|
| 203 |
+
"model_a": "FLUX-1",
|
| 204 |
+
"model_b": "ChatDiT",
|
| 205 |
+
"winner": "model_b",
|
| 206 |
+
"judge": "arena_user_127.0.0.1",
|
| 207 |
+
"anony": true,
|
| 208 |
+
"tstamp": 1735034432.5891
|
| 209 |
+
},
|
| 210 |
+
{
|
| 211 |
+
"model_a": "ChatDiT",
|
| 212 |
+
"model_b": "FLUX-1",
|
| 213 |
+
"winner": "model_a",
|
| 214 |
+
"judge": "arena_user_127.0.0.1",
|
| 215 |
+
"anony": true,
|
| 216 |
+
"tstamp": 1735092762.0
|
| 217 |
+
},
|
| 218 |
+
{
|
| 219 |
+
"model_a": "FLUX-1",
|
| 220 |
+
"model_b": "ChatDiT",
|
| 221 |
+
"winner": "tie (bothbad)",
|
| 222 |
+
"judge": "arena_user_127.0.0.1",
|
| 223 |
+
"anony": true,
|
| 224 |
+
"tstamp": 1735092774.618
|
| 225 |
+
},
|
| 226 |
+
{
|
| 227 |
+
"model_a": "FLUX-1",
|
| 228 |
+
"model_b": "ChatDiT",
|
| 229 |
+
"winner": "model_a",
|
| 230 |
+
"judge": "arena_user_127.0.0.1",
|
| 231 |
+
"anony": true,
|
| 232 |
+
"tstamp": 1735092797.2067
|
| 233 |
+
},
|
| 234 |
+
{
|
| 235 |
+
"model_a": "FLUX-1",
|
| 236 |
+
"model_b": "ChatDiT",
|
| 237 |
+
"winner": "model_b",
|
| 238 |
+
"judge": "arena_user_127.0.0.1",
|
| 239 |
+
"anony": true,
|
| 240 |
+
"tstamp": 1735092804.6699
|
| 241 |
+
},
|
| 242 |
+
{
|
| 243 |
+
"model_a": "FLUX-1",
|
| 244 |
+
"model_b": "ChatDiT",
|
| 245 |
+
"winner": "model_a",
|
| 246 |
+
"judge": "arena_user_127.0.0.1",
|
| 247 |
+
"anony": true,
|
| 248 |
+
"tstamp": 1735092810.2635
|
| 249 |
+
},
|
| 250 |
+
{
|
| 251 |
+
"model_a": "FLUX-1",
|
| 252 |
+
"model_b": "ChatDiT",
|
| 253 |
+
"winner": "model_b",
|
| 254 |
+
"judge": "arena_user_127.0.0.1",
|
| 255 |
+
"anony": true,
|
| 256 |
+
"tstamp": 1735093113.5724
|
| 257 |
+
},
|
| 258 |
+
{
|
| 259 |
+
"model_a": "ChatDiT",
|
| 260 |
+
"model_b": "FLUX-1",
|
| 261 |
+
"winner": "tie (bothbad)",
|
| 262 |
+
"judge": "arena_user_127.0.0.1",
|
| 263 |
+
"anony": true,
|
| 264 |
+
"tstamp": 1735093133.2436
|
| 265 |
+
},
|
| 266 |
+
{
|
| 267 |
+
"model_a": "GPT-4o + Stable Diffusion 3 Medium",
|
| 268 |
+
"model_b": "GPT-4o + OmniGen",
|
| 269 |
+
"winner": "model_a",
|
| 270 |
+
"judge": "arena_user_127.0.0.1",
|
| 271 |
+
"anony": true,
|
| 272 |
+
"tstamp": 1735187628.4881
|
| 273 |
+
},
|
| 274 |
+
{
|
| 275 |
+
"model_a": "GPT-4o + Stable Diffusion 3 Medium",
|
| 276 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 277 |
+
"winner": "model_b",
|
| 278 |
+
"judge": "arena_user_127.0.0.1",
|
| 279 |
+
"anony": true,
|
| 280 |
+
"tstamp": 1735187649.4872
|
| 281 |
+
},
|
| 282 |
+
{
|
| 283 |
+
"model_a": "GPT-4o + Emu2",
|
| 284 |
+
"model_b": "ChatDiT",
|
| 285 |
+
"winner": "model_a",
|
| 286 |
+
"judge": "arena_user_127.0.0.1",
|
| 287 |
+
"anony": true,
|
| 288 |
+
"tstamp": 1735197562.2637
|
| 289 |
+
},
|
| 290 |
+
{
|
| 291 |
+
"model_a": "GPT-4o + FLUX.1 [dev]",
|
| 292 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 293 |
+
"winner": "model_a",
|
| 294 |
+
"judge": "arena_user_127.0.0.1",
|
| 295 |
+
"anony": true,
|
| 296 |
+
"tstamp": 1735197586.8438
|
| 297 |
+
},
|
| 298 |
+
{
|
| 299 |
+
"model_a": "ChatDiT",
|
| 300 |
+
"model_b": "GPT-4o + FLUX.1 [dev]",
|
| 301 |
+
"winner": "model_a",
|
| 302 |
+
"judge": "arena_user_127.0.0.1",
|
| 303 |
+
"anony": false,
|
| 304 |
+
"tstamp": 1735201758.7145
|
| 305 |
+
},
|
| 306 |
+
{
|
| 307 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 308 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 309 |
+
"winner": "model_b",
|
| 310 |
+
"judge": "arena_user_127.0.0.1",
|
| 311 |
+
"anony": false,
|
| 312 |
+
"tstamp": 1735202083.631
|
| 313 |
+
},
|
| 314 |
+
{
|
| 315 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 316 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 317 |
+
"winner": "model_a",
|
| 318 |
+
"judge": "arena_user_127.0.0.1",
|
| 319 |
+
"anony": false,
|
| 320 |
+
"tstamp": 1735202099.4377
|
| 321 |
+
},
|
| 322 |
+
{
|
| 323 |
+
"model_a": "GPT-4o + OmniGen",
|
| 324 |
+
"model_b": "ChatDiT",
|
| 325 |
+
"winner": "model_b",
|
| 326 |
+
"judge": "arena_user_127.0.0.1",
|
| 327 |
+
"anony": true,
|
| 328 |
+
"tstamp": 1735202132.8592
|
| 329 |
+
},
|
| 330 |
+
{
|
| 331 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 332 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 333 |
+
"winner": "model_b",
|
| 334 |
+
"judge": "arena_user_127.0.0.1",
|
| 335 |
+
"anony": false,
|
| 336 |
+
"tstamp": 1735202545.8694
|
| 337 |
+
},
|
| 338 |
+
{
|
| 339 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 340 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 341 |
+
"winner": "model_a",
|
| 342 |
+
"judge": "arena_user_127.0.0.1",
|
| 343 |
+
"anony": false,
|
| 344 |
+
"tstamp": 1735202565.5723
|
| 345 |
+
},
|
| 346 |
+
{
|
| 347 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 348 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 349 |
+
"winner": "tie (bothbad)",
|
| 350 |
+
"judge": "arena_user_127.0.0.1",
|
| 351 |
+
"anony": false,
|
| 352 |
+
"tstamp": 1735202573.0118
|
| 353 |
+
},
|
| 354 |
+
{
|
| 355 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 356 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 357 |
+
"winner": "tie (bothbad)",
|
| 358 |
+
"judge": "arena_user_127.0.0.1",
|
| 359 |
+
"anony": false,
|
| 360 |
+
"tstamp": 1735203523.809
|
| 361 |
+
},
|
| 362 |
+
{
|
| 363 |
+
"model_a": "GPT-4o + OmniGen",
|
| 364 |
+
"model_b": "GPT-4o + DALLE-3",
|
| 365 |
+
"winner": "model_b",
|
| 366 |
+
"judge": "arena_user_127.0.0.1",
|
| 367 |
+
"anony": true,
|
| 368 |
+
"tstamp": 1735205600.7414
|
| 369 |
+
},
|
| 370 |
+
{
|
| 371 |
+
"model_a": "ChatDiT",
|
| 372 |
+
"model_b": "GPT-4o + DALLE-3",
|
| 373 |
+
"winner": "model_a",
|
| 374 |
+
"judge": "arena_user_127.0.0.1",
|
| 375 |
+
"anony": true,
|
| 376 |
+
"tstamp": 1735207454.8251
|
| 377 |
+
},
|
| 378 |
+
{
|
| 379 |
+
"model_a": "GPT-4o + OmniGen",
|
| 380 |
+
"model_b": "GPT-4o + Stable Diffusion 3 Medium",
|
| 381 |
+
"winner": "model_b",
|
| 382 |
+
"judge": "arena_user_127.0.0.1",
|
| 383 |
+
"anony": true,
|
| 384 |
+
"tstamp": 1735207466.0131
|
| 385 |
+
},
|
| 386 |
+
{
|
| 387 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 388 |
+
"model_b": "GPT-4o + Emu2",
|
| 389 |
+
"winner": "model_b",
|
| 390 |
+
"judge": "arena_user_127.0.0.1",
|
| 391 |
+
"anony": true,
|
| 392 |
+
"tstamp": 1735215923.1589
|
| 393 |
+
},
|
| 394 |
+
{
|
| 395 |
+
"model_a": "GPT-4o + PixArt-Sigma",
|
| 396 |
+
"model_b": "GPT-4o + DALLE-3",
|
| 397 |
+
"winner": "model_a",
|
| 398 |
+
"judge": "arena_user_127.0.0.1",
|
| 399 |
+
"anony": true,
|
| 400 |
+
"tstamp": 1735215935.7597
|
| 401 |
+
},
|
| 402 |
+
{
|
| 403 |
+
"model_a": "GPT-4o + OmniGen",
|
| 404 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 405 |
+
"winner": "tie (bothbad)",
|
| 406 |
+
"judge": "arena_user_127.0.0.1",
|
| 407 |
+
"anony": true,
|
| 408 |
+
"tstamp": 1735215942.7093
|
| 409 |
+
},
|
| 410 |
+
{
|
| 411 |
+
"model_a": "GPT-4o + PixArt-Sigma",
|
| 412 |
+
"model_b": "GPT-4o + OmniGen",
|
| 413 |
+
"winner": "model_a",
|
| 414 |
+
"judge": "arena_user_127.0.0.1",
|
| 415 |
+
"anony": true,
|
| 416 |
+
"tstamp": 1735215949.7965
|
| 417 |
+
},
|
| 418 |
+
{
|
| 419 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 420 |
+
"model_b": "ChatDiT",
|
| 421 |
+
"winner": "model_b",
|
| 422 |
+
"judge": "arena_user_127.0.0.1",
|
| 423 |
+
"anony": true,
|
| 424 |
+
"tstamp": 1735215962.6898
|
| 425 |
+
},
|
| 426 |
+
{
|
| 427 |
+
"model_a": "GPT-4o + Stable Diffusion 3 Medium",
|
| 428 |
+
"model_b": "GPT-4o + DALLE-3",
|
| 429 |
+
"winner": "tie (bothbad)",
|
| 430 |
+
"judge": "arena_user_127.0.0.1",
|
| 431 |
+
"anony": true,
|
| 432 |
+
"tstamp": 1735215968.9052
|
| 433 |
+
},
|
| 434 |
+
{
|
| 435 |
+
"model_a": "GPT-4o + FLUX.1 [dev]",
|
| 436 |
+
"model_b": "GPT-4o + Stable Diffusion 3 Medium",
|
| 437 |
+
"winner": "tie (bothbad)",
|
| 438 |
+
"judge": "arena_user_127.0.0.1",
|
| 439 |
+
"anony": true,
|
| 440 |
+
"tstamp": 1735215976.5079
|
| 441 |
+
},
|
| 442 |
+
{
|
| 443 |
+
"model_a": "GPT-4o + Emu2",
|
| 444 |
+
"model_b": "GPT-4o + Stable Diffusion 3 Medium",
|
| 445 |
+
"winner": "model_b",
|
| 446 |
+
"judge": "arena_user_127.0.0.1",
|
| 447 |
+
"anony": true,
|
| 448 |
+
"tstamp": 1735215982.9709
|
| 449 |
+
},
|
| 450 |
+
{
|
| 451 |
+
"model_a": "ChatDiT",
|
| 452 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 453 |
+
"winner": "model_a",
|
| 454 |
+
"judge": "arena_user_127.0.0.1",
|
| 455 |
+
"anony": true,
|
| 456 |
+
"tstamp": 1735215993.2305
|
| 457 |
+
},
|
| 458 |
+
{
|
| 459 |
+
"model_a": "GPT-4o + Stable Diffusion 3 Medium",
|
| 460 |
+
"model_b": "GPT-4o + FLUX.1 [dev]",
|
| 461 |
+
"winner": "tie (bothbad)",
|
| 462 |
+
"judge": "arena_user_127.0.0.1",
|
| 463 |
+
"anony": true,
|
| 464 |
+
"tstamp": 1735215999.8713
|
| 465 |
+
},
|
| 466 |
+
{
|
| 467 |
+
"model_a": "GPT-4o + PixArt-Sigma",
|
| 468 |
+
"model_b": "GPT-4o + FLUX.1 [dev]",
|
| 469 |
+
"winner": "model_b",
|
| 470 |
+
"judge": "arena_user_127.0.0.1",
|
| 471 |
+
"anony": true,
|
| 472 |
+
"tstamp": 1735216012.8216
|
| 473 |
+
},
|
| 474 |
+
{
|
| 475 |
+
"model_a": "ChatDiT",
|
| 476 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 477 |
+
"winner": "model_a",
|
| 478 |
+
"judge": "arena_user_127.0.0.1",
|
| 479 |
+
"anony": true,
|
| 480 |
+
"tstamp": 1735216021.653
|
| 481 |
+
}
|
| 482 |
+
]
|
arena_elo/results/20241226/elo_results.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:03f83c57c40a52e7cc67b47144cc16b5b21417baad81c270e84728cc223da347
|
| 3 |
+
size 59910
|
arena_elo/results/20241226/leaderboard.csv
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
key,Model,Arena Elo rating (anony),Arena Elo rating (full),license,creator,link
|
| 2 |
+
GPT-4o + FLUX.1 [dev],GPT-4o + FLUX.1 [dev],1175.6821194184254,1081.7818725315192,FLUX.1 [dev] Non-Commercial License,Black Forest Labs,https://huggingface.co/black-forest-labs/FLUX.1-dev
|
| 3 |
+
ChatDiT,ChatDiT,1162.3247570727874,1220.8633537889925,MIT License,Tongyi Lab,https://github.com/ali-vilab/ChatDiT
|
| 4 |
+
GPT-4o + Emu2,GPT-4o + Emu2,1134.6891079598486,1152.7284045727401,Apache License 2.0,BAAI,https://huggingface.co/BAAI/Emu2
|
| 5 |
+
FLUX-1,FLUX-1,1107.9942010514312,1165.8807578999263,N/A,N/A,N/A
|
| 6 |
+
GPT-4o + Stable Diffusion 3 Medium,GPT-4o + Stable Diffusion 3 Medium,1066.9600535574334,1033.9863968056318,Stability AI Community License,Stability AI,https://huggingface.co/stabilityai/stable-diffusion-3-medium
|
| 7 |
+
GPT-4o + PixArt-Sigma,GPT-4o + PixArt-Sigma,933.0714315244284,886.7730412848159,CreativeML Open RAIL++-M License,Huawei Noah's Ark Lab,https://huggingface.co/PixArt-alpha/PixArt-Sigma-XL-2-1024-MS
|
| 8 |
+
GPT-4o + DALLE-3,GPT-4o + DALLE-3,804.061447868383,852.071446157934,OpenAI Terms of Use,OpenAI,https://openai.com/index/dall-e-3/
|
| 9 |
+
GPT-4o + OmniGen,GPT-4o + OmniGen,615.2168815472633,605.9147269584403,MIT License,BAAI,https://huggingface.co/spaces/Shitao/OmniGen
|
arena_elo/results/latest/clean_battle.json
ADDED
|
@@ -0,0 +1,482 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"model_a": "FLUX-1",
|
| 4 |
+
"model_b": "ChatDiT",
|
| 5 |
+
"winner": "model_b",
|
| 6 |
+
"judge": "arena_user_127.0.0.1",
|
| 7 |
+
"anony": true,
|
| 8 |
+
"tstamp": 1735030427.6669
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"model_a": "FLUX-1",
|
| 12 |
+
"model_b": "ChatDiT",
|
| 13 |
+
"winner": "model_a",
|
| 14 |
+
"judge": "arena_user_127.0.0.1",
|
| 15 |
+
"anony": true,
|
| 16 |
+
"tstamp": 1735030452.0238
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"model_a": "ChatDiT",
|
| 20 |
+
"model_b": "FLUX-1",
|
| 21 |
+
"winner": "model_a",
|
| 22 |
+
"judge": "arena_user_127.0.0.1",
|
| 23 |
+
"anony": true,
|
| 24 |
+
"tstamp": 1735030464.2602
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"model_a": "ChatDiT",
|
| 28 |
+
"model_b": "FLUX-1",
|
| 29 |
+
"winner": "model_a",
|
| 30 |
+
"judge": "arena_user_127.0.0.1",
|
| 31 |
+
"anony": true,
|
| 32 |
+
"tstamp": 1735030476.2328
|
| 33 |
+
},
|
| 34 |
+
{
|
| 35 |
+
"model_a": "FLUX-1",
|
| 36 |
+
"model_b": "ChatDiT",
|
| 37 |
+
"winner": "tie (bothbad)",
|
| 38 |
+
"judge": "arena_user_127.0.0.1",
|
| 39 |
+
"anony": true,
|
| 40 |
+
"tstamp": 1735030495.2955
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"model_a": "ChatDiT",
|
| 44 |
+
"model_b": "FLUX-1",
|
| 45 |
+
"winner": "tie (bothbad)",
|
| 46 |
+
"judge": "arena_user_127.0.0.1",
|
| 47 |
+
"anony": true,
|
| 48 |
+
"tstamp": 1735030503.418
|
| 49 |
+
},
|
| 50 |
+
{
|
| 51 |
+
"model_a": "ChatDiT",
|
| 52 |
+
"model_b": "FLUX-1",
|
| 53 |
+
"winner": "model_a",
|
| 54 |
+
"judge": "arena_user_127.0.0.1",
|
| 55 |
+
"anony": true,
|
| 56 |
+
"tstamp": 1735030511.3926
|
| 57 |
+
},
|
| 58 |
+
{
|
| 59 |
+
"model_a": "ChatDiT",
|
| 60 |
+
"model_b": "FLUX-1",
|
| 61 |
+
"winner": "tie (bothbad)",
|
| 62 |
+
"judge": "arena_user_127.0.0.1",
|
| 63 |
+
"anony": true,
|
| 64 |
+
"tstamp": 1735034259.9984
|
| 65 |
+
},
|
| 66 |
+
{
|
| 67 |
+
"model_a": "ChatDiT",
|
| 68 |
+
"model_b": "FLUX-1",
|
| 69 |
+
"winner": "model_a",
|
| 70 |
+
"judge": "arena_user_127.0.0.1",
|
| 71 |
+
"anony": true,
|
| 72 |
+
"tstamp": 1735034275.6871
|
| 73 |
+
},
|
| 74 |
+
{
|
| 75 |
+
"model_a": "ChatDiT",
|
| 76 |
+
"model_b": "FLUX-1",
|
| 77 |
+
"winner": "model_a",
|
| 78 |
+
"judge": "arena_user_127.0.0.1",
|
| 79 |
+
"anony": true,
|
| 80 |
+
"tstamp": 1735034284.7354
|
| 81 |
+
},
|
| 82 |
+
{
|
| 83 |
+
"model_a": "FLUX-1",
|
| 84 |
+
"model_b": "ChatDiT",
|
| 85 |
+
"winner": "model_a",
|
| 86 |
+
"judge": "arena_user_127.0.0.1",
|
| 87 |
+
"anony": true,
|
| 88 |
+
"tstamp": 1735034293.468
|
| 89 |
+
},
|
| 90 |
+
{
|
| 91 |
+
"model_a": "ChatDiT",
|
| 92 |
+
"model_b": "FLUX-1",
|
| 93 |
+
"winner": "model_b",
|
| 94 |
+
"judge": "arena_user_127.0.0.1",
|
| 95 |
+
"anony": true,
|
| 96 |
+
"tstamp": 1735034303.2042
|
| 97 |
+
},
|
| 98 |
+
{
|
| 99 |
+
"model_a": "ChatDiT",
|
| 100 |
+
"model_b": "FLUX-1",
|
| 101 |
+
"winner": "model_a",
|
| 102 |
+
"judge": "arena_user_127.0.0.1",
|
| 103 |
+
"anony": true,
|
| 104 |
+
"tstamp": 1735034314.1941
|
| 105 |
+
},
|
| 106 |
+
{
|
| 107 |
+
"model_a": "FLUX-1",
|
| 108 |
+
"model_b": "ChatDiT",
|
| 109 |
+
"winner": "model_a",
|
| 110 |
+
"judge": "arena_user_127.0.0.1",
|
| 111 |
+
"anony": true,
|
| 112 |
+
"tstamp": 1735034326.5092
|
| 113 |
+
},
|
| 114 |
+
{
|
| 115 |
+
"model_a": "FLUX-1",
|
| 116 |
+
"model_b": "ChatDiT",
|
| 117 |
+
"winner": "model_b",
|
| 118 |
+
"judge": "arena_user_127.0.0.1",
|
| 119 |
+
"anony": true,
|
| 120 |
+
"tstamp": 1735034331.6963
|
| 121 |
+
},
|
| 122 |
+
{
|
| 123 |
+
"model_a": "FLUX-1",
|
| 124 |
+
"model_b": "ChatDiT",
|
| 125 |
+
"winner": "tie (bothbad)",
|
| 126 |
+
"judge": "arena_user_127.0.0.1",
|
| 127 |
+
"anony": true,
|
| 128 |
+
"tstamp": 1735034336.5346
|
| 129 |
+
},
|
| 130 |
+
{
|
| 131 |
+
"model_a": "ChatDiT",
|
| 132 |
+
"model_b": "FLUX-1",
|
| 133 |
+
"winner": "model_b",
|
| 134 |
+
"judge": "arena_user_127.0.0.1",
|
| 135 |
+
"anony": true,
|
| 136 |
+
"tstamp": 1735034351.9521
|
| 137 |
+
},
|
| 138 |
+
{
|
| 139 |
+
"model_a": "FLUX-1",
|
| 140 |
+
"model_b": "ChatDiT",
|
| 141 |
+
"winner": "model_b",
|
| 142 |
+
"judge": "arena_user_127.0.0.1",
|
| 143 |
+
"anony": true,
|
| 144 |
+
"tstamp": 1735034366.1775
|
| 145 |
+
},
|
| 146 |
+
{
|
| 147 |
+
"model_a": "FLUX-1",
|
| 148 |
+
"model_b": "ChatDiT",
|
| 149 |
+
"winner": "model_a",
|
| 150 |
+
"judge": "arena_user_127.0.0.1",
|
| 151 |
+
"anony": true,
|
| 152 |
+
"tstamp": 1735034380.5877
|
| 153 |
+
},
|
| 154 |
+
{
|
| 155 |
+
"model_a": "ChatDiT",
|
| 156 |
+
"model_b": "FLUX-1",
|
| 157 |
+
"winner": "model_b",
|
| 158 |
+
"judge": "arena_user_127.0.0.1",
|
| 159 |
+
"anony": true,
|
| 160 |
+
"tstamp": 1735034384.3087
|
| 161 |
+
},
|
| 162 |
+
{
|
| 163 |
+
"model_a": "FLUX-1",
|
| 164 |
+
"model_b": "ChatDiT",
|
| 165 |
+
"winner": "model_a",
|
| 166 |
+
"judge": "arena_user_127.0.0.1",
|
| 167 |
+
"anony": true,
|
| 168 |
+
"tstamp": 1735034389.1583
|
| 169 |
+
},
|
| 170 |
+
{
|
| 171 |
+
"model_a": "FLUX-1",
|
| 172 |
+
"model_b": "ChatDiT",
|
| 173 |
+
"winner": "model_b",
|
| 174 |
+
"judge": "arena_user_127.0.0.1",
|
| 175 |
+
"anony": true,
|
| 176 |
+
"tstamp": 1735034405.9359
|
| 177 |
+
},
|
| 178 |
+
{
|
| 179 |
+
"model_a": "FLUX-1",
|
| 180 |
+
"model_b": "ChatDiT",
|
| 181 |
+
"winner": "model_b",
|
| 182 |
+
"judge": "arena_user_127.0.0.1",
|
| 183 |
+
"anony": true,
|
| 184 |
+
"tstamp": 1735034412.3533
|
| 185 |
+
},
|
| 186 |
+
{
|
| 187 |
+
"model_a": "FLUX-1",
|
| 188 |
+
"model_b": "ChatDiT",
|
| 189 |
+
"winner": "model_a",
|
| 190 |
+
"judge": "arena_user_127.0.0.1",
|
| 191 |
+
"anony": true,
|
| 192 |
+
"tstamp": 1735034419.0118
|
| 193 |
+
},
|
| 194 |
+
{
|
| 195 |
+
"model_a": "FLUX-1",
|
| 196 |
+
"model_b": "ChatDiT",
|
| 197 |
+
"winner": "model_b",
|
| 198 |
+
"judge": "arena_user_127.0.0.1",
|
| 199 |
+
"anony": true,
|
| 200 |
+
"tstamp": 1735034425.6972
|
| 201 |
+
},
|
| 202 |
+
{
|
| 203 |
+
"model_a": "FLUX-1",
|
| 204 |
+
"model_b": "ChatDiT",
|
| 205 |
+
"winner": "model_b",
|
| 206 |
+
"judge": "arena_user_127.0.0.1",
|
| 207 |
+
"anony": true,
|
| 208 |
+
"tstamp": 1735034432.5891
|
| 209 |
+
},
|
| 210 |
+
{
|
| 211 |
+
"model_a": "ChatDiT",
|
| 212 |
+
"model_b": "FLUX-1",
|
| 213 |
+
"winner": "model_a",
|
| 214 |
+
"judge": "arena_user_127.0.0.1",
|
| 215 |
+
"anony": true,
|
| 216 |
+
"tstamp": 1735092762.0
|
| 217 |
+
},
|
| 218 |
+
{
|
| 219 |
+
"model_a": "FLUX-1",
|
| 220 |
+
"model_b": "ChatDiT",
|
| 221 |
+
"winner": "tie (bothbad)",
|
| 222 |
+
"judge": "arena_user_127.0.0.1",
|
| 223 |
+
"anony": true,
|
| 224 |
+
"tstamp": 1735092774.618
|
| 225 |
+
},
|
| 226 |
+
{
|
| 227 |
+
"model_a": "FLUX-1",
|
| 228 |
+
"model_b": "ChatDiT",
|
| 229 |
+
"winner": "model_a",
|
| 230 |
+
"judge": "arena_user_127.0.0.1",
|
| 231 |
+
"anony": true,
|
| 232 |
+
"tstamp": 1735092797.2067
|
| 233 |
+
},
|
| 234 |
+
{
|
| 235 |
+
"model_a": "FLUX-1",
|
| 236 |
+
"model_b": "ChatDiT",
|
| 237 |
+
"winner": "model_b",
|
| 238 |
+
"judge": "arena_user_127.0.0.1",
|
| 239 |
+
"anony": true,
|
| 240 |
+
"tstamp": 1735092804.6699
|
| 241 |
+
},
|
| 242 |
+
{
|
| 243 |
+
"model_a": "FLUX-1",
|
| 244 |
+
"model_b": "ChatDiT",
|
| 245 |
+
"winner": "model_a",
|
| 246 |
+
"judge": "arena_user_127.0.0.1",
|
| 247 |
+
"anony": true,
|
| 248 |
+
"tstamp": 1735092810.2635
|
| 249 |
+
},
|
| 250 |
+
{
|
| 251 |
+
"model_a": "FLUX-1",
|
| 252 |
+
"model_b": "ChatDiT",
|
| 253 |
+
"winner": "model_b",
|
| 254 |
+
"judge": "arena_user_127.0.0.1",
|
| 255 |
+
"anony": true,
|
| 256 |
+
"tstamp": 1735093113.5724
|
| 257 |
+
},
|
| 258 |
+
{
|
| 259 |
+
"model_a": "ChatDiT",
|
| 260 |
+
"model_b": "FLUX-1",
|
| 261 |
+
"winner": "tie (bothbad)",
|
| 262 |
+
"judge": "arena_user_127.0.0.1",
|
| 263 |
+
"anony": true,
|
| 264 |
+
"tstamp": 1735093133.2436
|
| 265 |
+
},
|
| 266 |
+
{
|
| 267 |
+
"model_a": "GPT-4o + Stable Diffusion 3 Medium",
|
| 268 |
+
"model_b": "GPT-4o + OmniGen",
|
| 269 |
+
"winner": "model_a",
|
| 270 |
+
"judge": "arena_user_127.0.0.1",
|
| 271 |
+
"anony": true,
|
| 272 |
+
"tstamp": 1735187628.4881
|
| 273 |
+
},
|
| 274 |
+
{
|
| 275 |
+
"model_a": "GPT-4o + Stable Diffusion 3 Medium",
|
| 276 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 277 |
+
"winner": "model_b",
|
| 278 |
+
"judge": "arena_user_127.0.0.1",
|
| 279 |
+
"anony": true,
|
| 280 |
+
"tstamp": 1735187649.4872
|
| 281 |
+
},
|
| 282 |
+
{
|
| 283 |
+
"model_a": "GPT-4o + Emu2",
|
| 284 |
+
"model_b": "ChatDiT",
|
| 285 |
+
"winner": "model_a",
|
| 286 |
+
"judge": "arena_user_127.0.0.1",
|
| 287 |
+
"anony": true,
|
| 288 |
+
"tstamp": 1735197562.2637
|
| 289 |
+
},
|
| 290 |
+
{
|
| 291 |
+
"model_a": "GPT-4o + FLUX.1 [dev]",
|
| 292 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 293 |
+
"winner": "model_a",
|
| 294 |
+
"judge": "arena_user_127.0.0.1",
|
| 295 |
+
"anony": true,
|
| 296 |
+
"tstamp": 1735197586.8438
|
| 297 |
+
},
|
| 298 |
+
{
|
| 299 |
+
"model_a": "ChatDiT",
|
| 300 |
+
"model_b": "GPT-4o + FLUX.1 [dev]",
|
| 301 |
+
"winner": "model_a",
|
| 302 |
+
"judge": "arena_user_127.0.0.1",
|
| 303 |
+
"anony": false,
|
| 304 |
+
"tstamp": 1735201758.7145
|
| 305 |
+
},
|
| 306 |
+
{
|
| 307 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 308 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 309 |
+
"winner": "model_b",
|
| 310 |
+
"judge": "arena_user_127.0.0.1",
|
| 311 |
+
"anony": false,
|
| 312 |
+
"tstamp": 1735202083.631
|
| 313 |
+
},
|
| 314 |
+
{
|
| 315 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 316 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 317 |
+
"winner": "model_a",
|
| 318 |
+
"judge": "arena_user_127.0.0.1",
|
| 319 |
+
"anony": false,
|
| 320 |
+
"tstamp": 1735202099.4377
|
| 321 |
+
},
|
| 322 |
+
{
|
| 323 |
+
"model_a": "GPT-4o + OmniGen",
|
| 324 |
+
"model_b": "ChatDiT",
|
| 325 |
+
"winner": "model_b",
|
| 326 |
+
"judge": "arena_user_127.0.0.1",
|
| 327 |
+
"anony": true,
|
| 328 |
+
"tstamp": 1735202132.8592
|
| 329 |
+
},
|
| 330 |
+
{
|
| 331 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 332 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 333 |
+
"winner": "model_b",
|
| 334 |
+
"judge": "arena_user_127.0.0.1",
|
| 335 |
+
"anony": false,
|
| 336 |
+
"tstamp": 1735202545.8694
|
| 337 |
+
},
|
| 338 |
+
{
|
| 339 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 340 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 341 |
+
"winner": "model_a",
|
| 342 |
+
"judge": "arena_user_127.0.0.1",
|
| 343 |
+
"anony": false,
|
| 344 |
+
"tstamp": 1735202565.5723
|
| 345 |
+
},
|
| 346 |
+
{
|
| 347 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 348 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 349 |
+
"winner": "tie (bothbad)",
|
| 350 |
+
"judge": "arena_user_127.0.0.1",
|
| 351 |
+
"anony": false,
|
| 352 |
+
"tstamp": 1735202573.0118
|
| 353 |
+
},
|
| 354 |
+
{
|
| 355 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 356 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 357 |
+
"winner": "tie (bothbad)",
|
| 358 |
+
"judge": "arena_user_127.0.0.1",
|
| 359 |
+
"anony": false,
|
| 360 |
+
"tstamp": 1735203523.809
|
| 361 |
+
},
|
| 362 |
+
{
|
| 363 |
+
"model_a": "GPT-4o + OmniGen",
|
| 364 |
+
"model_b": "GPT-4o + DALLE-3",
|
| 365 |
+
"winner": "model_b",
|
| 366 |
+
"judge": "arena_user_127.0.0.1",
|
| 367 |
+
"anony": true,
|
| 368 |
+
"tstamp": 1735205600.7414
|
| 369 |
+
},
|
| 370 |
+
{
|
| 371 |
+
"model_a": "ChatDiT",
|
| 372 |
+
"model_b": "GPT-4o + DALLE-3",
|
| 373 |
+
"winner": "model_a",
|
| 374 |
+
"judge": "arena_user_127.0.0.1",
|
| 375 |
+
"anony": true,
|
| 376 |
+
"tstamp": 1735207454.8251
|
| 377 |
+
},
|
| 378 |
+
{
|
| 379 |
+
"model_a": "GPT-4o + OmniGen",
|
| 380 |
+
"model_b": "GPT-4o + Stable Diffusion 3 Medium",
|
| 381 |
+
"winner": "model_b",
|
| 382 |
+
"judge": "arena_user_127.0.0.1",
|
| 383 |
+
"anony": true,
|
| 384 |
+
"tstamp": 1735207466.0131
|
| 385 |
+
},
|
| 386 |
+
{
|
| 387 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 388 |
+
"model_b": "GPT-4o + Emu2",
|
| 389 |
+
"winner": "model_b",
|
| 390 |
+
"judge": "arena_user_127.0.0.1",
|
| 391 |
+
"anony": true,
|
| 392 |
+
"tstamp": 1735215923.1589
|
| 393 |
+
},
|
| 394 |
+
{
|
| 395 |
+
"model_a": "GPT-4o + PixArt-Sigma",
|
| 396 |
+
"model_b": "GPT-4o + DALLE-3",
|
| 397 |
+
"winner": "model_a",
|
| 398 |
+
"judge": "arena_user_127.0.0.1",
|
| 399 |
+
"anony": true,
|
| 400 |
+
"tstamp": 1735215935.7597
|
| 401 |
+
},
|
| 402 |
+
{
|
| 403 |
+
"model_a": "GPT-4o + OmniGen",
|
| 404 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 405 |
+
"winner": "tie (bothbad)",
|
| 406 |
+
"judge": "arena_user_127.0.0.1",
|
| 407 |
+
"anony": true,
|
| 408 |
+
"tstamp": 1735215942.7093
|
| 409 |
+
},
|
| 410 |
+
{
|
| 411 |
+
"model_a": "GPT-4o + PixArt-Sigma",
|
| 412 |
+
"model_b": "GPT-4o + OmniGen",
|
| 413 |
+
"winner": "model_a",
|
| 414 |
+
"judge": "arena_user_127.0.0.1",
|
| 415 |
+
"anony": true,
|
| 416 |
+
"tstamp": 1735215949.7965
|
| 417 |
+
},
|
| 418 |
+
{
|
| 419 |
+
"model_a": "GPT-4o + DALLE-3",
|
| 420 |
+
"model_b": "ChatDiT",
|
| 421 |
+
"winner": "model_b",
|
| 422 |
+
"judge": "arena_user_127.0.0.1",
|
| 423 |
+
"anony": true,
|
| 424 |
+
"tstamp": 1735215962.6898
|
| 425 |
+
},
|
| 426 |
+
{
|
| 427 |
+
"model_a": "GPT-4o + Stable Diffusion 3 Medium",
|
| 428 |
+
"model_b": "GPT-4o + DALLE-3",
|
| 429 |
+
"winner": "tie (bothbad)",
|
| 430 |
+
"judge": "arena_user_127.0.0.1",
|
| 431 |
+
"anony": true,
|
| 432 |
+
"tstamp": 1735215968.9052
|
| 433 |
+
},
|
| 434 |
+
{
|
| 435 |
+
"model_a": "GPT-4o + FLUX.1 [dev]",
|
| 436 |
+
"model_b": "GPT-4o + Stable Diffusion 3 Medium",
|
| 437 |
+
"winner": "tie (bothbad)",
|
| 438 |
+
"judge": "arena_user_127.0.0.1",
|
| 439 |
+
"anony": true,
|
| 440 |
+
"tstamp": 1735215976.5079
|
| 441 |
+
},
|
| 442 |
+
{
|
| 443 |
+
"model_a": "GPT-4o + Emu2",
|
| 444 |
+
"model_b": "GPT-4o + Stable Diffusion 3 Medium",
|
| 445 |
+
"winner": "model_b",
|
| 446 |
+
"judge": "arena_user_127.0.0.1",
|
| 447 |
+
"anony": true,
|
| 448 |
+
"tstamp": 1735215982.9709
|
| 449 |
+
},
|
| 450 |
+
{
|
| 451 |
+
"model_a": "ChatDiT",
|
| 452 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 453 |
+
"winner": "model_a",
|
| 454 |
+
"judge": "arena_user_127.0.0.1",
|
| 455 |
+
"anony": true,
|
| 456 |
+
"tstamp": 1735215993.2305
|
| 457 |
+
},
|
| 458 |
+
{
|
| 459 |
+
"model_a": "GPT-4o + Stable Diffusion 3 Medium",
|
| 460 |
+
"model_b": "GPT-4o + FLUX.1 [dev]",
|
| 461 |
+
"winner": "tie (bothbad)",
|
| 462 |
+
"judge": "arena_user_127.0.0.1",
|
| 463 |
+
"anony": true,
|
| 464 |
+
"tstamp": 1735215999.8713
|
| 465 |
+
},
|
| 466 |
+
{
|
| 467 |
+
"model_a": "GPT-4o + PixArt-Sigma",
|
| 468 |
+
"model_b": "GPT-4o + FLUX.1 [dev]",
|
| 469 |
+
"winner": "model_b",
|
| 470 |
+
"judge": "arena_user_127.0.0.1",
|
| 471 |
+
"anony": true,
|
| 472 |
+
"tstamp": 1735216012.8216
|
| 473 |
+
},
|
| 474 |
+
{
|
| 475 |
+
"model_a": "ChatDiT",
|
| 476 |
+
"model_b": "GPT-4o + PixArt-Sigma",
|
| 477 |
+
"winner": "model_a",
|
| 478 |
+
"judge": "arena_user_127.0.0.1",
|
| 479 |
+
"anony": true,
|
| 480 |
+
"tstamp": 1735216021.653
|
| 481 |
+
}
|
| 482 |
+
]
|
arena_elo/results/latest/elo_results.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:03f83c57c40a52e7cc67b47144cc16b5b21417baad81c270e84728cc223da347
|
| 3 |
+
size 59910
|
arena_elo/results/latest/leaderboard.csv
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
key,Model,Arena Elo rating (anony),Arena Elo rating (full),license,creator,link
|
| 2 |
+
GPT-4o + FLUX.1 [dev],GPT-4o + FLUX.1 [dev],1175.6821194184254,1081.7818725315192,FLUX.1 [dev] Non-Commercial License,Black Forest Labs,https://huggingface.co/black-forest-labs/FLUX.1-dev
|
| 3 |
+
ChatDiT,ChatDiT,1162.3247570727874,1220.8633537889925,MIT License,Tongyi Lab,https://github.com/ali-vilab/ChatDiT
|
| 4 |
+
GPT-4o + Emu2,GPT-4o + Emu2,1134.6891079598486,1152.7284045727401,Apache License 2.0,BAAI,https://huggingface.co/BAAI/Emu2
|
| 5 |
+
FLUX-1,FLUX-1,1107.9942010514312,1165.8807578999263,N/A,N/A,N/A
|
| 6 |
+
GPT-4o + Stable Diffusion 3 Medium,GPT-4o + Stable Diffusion 3 Medium,1066.9600535574334,1033.9863968056318,Stability AI Community License,Stability AI,https://huggingface.co/stabilityai/stable-diffusion-3-medium
|
| 7 |
+
GPT-4o + PixArt-Sigma,GPT-4o + PixArt-Sigma,933.0714315244284,886.7730412848159,CreativeML Open RAIL++-M License,Huawei Noah's Ark Lab,https://huggingface.co/PixArt-alpha/PixArt-Sigma-XL-2-1024-MS
|
| 8 |
+
GPT-4o + DALLE-3,GPT-4o + DALLE-3,804.061447868383,852.071446157934,OpenAI Terms of Use,OpenAI,https://openai.com/index/dall-e-3/
|
| 9 |
+
GPT-4o + OmniGen,GPT-4o + OmniGen,615.2168815472633,605.9147269584403,MIT License,BAAI,https://huggingface.co/spaces/Shitao/OmniGen
|
arena_elo/simple_test.py
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pickle
|
| 2 |
+
with open("./results/latest/elo_results.pkl",'rb') as f:
|
| 3 |
+
data = pickle.load(f)
|
| 4 |
+
print()
|
| 5 |
+
df = data["anony"]["leaderboard_table_df"]
|
| 6 |
+
# sort by rating
|
| 7 |
+
df = df.sort_values(by=["rating"], ascending=False)
|
| 8 |
+
print(df)
|
| 9 |
+
|
| 10 |
+
print()
|
| 11 |
+
|
| 12 |
+
df = data["full"]["leaderboard_table_df"]
|
| 13 |
+
# sort by rating
|
| 14 |
+
df = df.sort_values(by=["rating"], ascending=False)
|
| 15 |
+
print(df)
|
| 16 |
+
print('done')
|
arena_elo/update_elo_rating.sh
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# set LOGDIR to default if not set before
|
| 2 |
+
if [ -z "$LOGDIR" ]; then
|
| 3 |
+
echo "LOGDIR is not set. Using default '../logs/vote_log'"
|
| 4 |
+
export LOGDIR="../logs/vote_log"
|
| 5 |
+
fi
|
| 6 |
+
|
| 7 |
+
mkdir -p results
|
| 8 |
+
|
| 9 |
+
# for battle data
|
| 10 |
+
python -m elo_rating.clean_battle_data
|
| 11 |
+
battle_cutoff_date=`cat cut_off_date.txt` && rm cut_off_date.txt && echo "Battle data last updated on $battle_cutoff_date"
|
| 12 |
+
|
| 13 |
+
mkdir -p ./results/$battle_cutoff_date
|
| 14 |
+
|
| 15 |
+
cp clean_battle_$battle_cutoff_date.json ./results/latest/clean_battle.json
|
| 16 |
+
mv clean_battle_$battle_cutoff_date.json ./results/$battle_cutoff_date/clean_battle.json
|
| 17 |
+
|
| 18 |
+
python -m elo_rating.elo_analysis --clean-battle-file ./results/$battle_cutoff_date/clean_battle.json
|
| 19 |
+
mv ./elo_results_$battle_cutoff_date.pkl ./results/$battle_cutoff_date/elo_results.pkl
|
| 20 |
+
|
| 21 |
+
# generate the leaderboard
|
| 22 |
+
|
| 23 |
+
python -m elo_rating.generate_leaderboard \
|
| 24 |
+
--model_info_file "../model/model_registry.csv" \
|
| 25 |
+
--elo_rating_pkl "./results/$battle_cutoff_date/elo_results.pkl" \
|
| 26 |
+
--output_csv "./results/$battle_cutoff_date/leaderboard.csv"
|
| 27 |
+
|
| 28 |
+
mkdir -p ./results/latest
|
| 29 |
+
cp ./results/$battle_cutoff_date/leaderboard.csv ./results/latest/leaderboard.csv
|
| 30 |
+
cp ./results/$battle_cutoff_date/elo_results.pkl ./results/latest/elo_results.pkl
|
arena_elo/win_fraction_heatmap.png
ADDED
|
logs/vote_log/2024-12-24-conv.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{"tstamp": 1735030427.6669, "type": "rightvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 2 |
+
{"tstamp": 1735030452.0238, "type": "leftvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 3 |
+
{"tstamp": 1735030464.2602, "type": "leftvote", "models": ["ChatDiT", "FLUX-1"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 4 |
+
{"tstamp": 1735030476.2328, "type": "leftvote", "models": ["ChatDiT", "FLUX-1"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 5 |
+
{"tstamp": 1735030495.2955, "type": "bothbad_vote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 6 |
+
{"tstamp": 1735030503.418, "type": "bothbad_vote", "models": ["ChatDiT", "FLUX-1"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 7 |
+
{"tstamp": 1735030511.3926, "type": "leftvote", "models": ["ChatDiT", "FLUX-1"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 8 |
+
{"tstamp": 1735034259.9984, "type": "bothbad_vote", "models": ["ChatDiT", "FLUX-1"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 9 |
+
{"tstamp": 1735034275.6871, "type": "leftvote", "models": ["ChatDiT", "FLUX-1"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 10 |
+
{"tstamp": 1735034284.7354, "type": "leftvote", "models": ["ChatDiT", "FLUX-1"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 11 |
+
{"tstamp": 1735034293.468, "type": "leftvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 12 |
+
{"tstamp": 1735034303.2042, "type": "rightvote", "models": ["ChatDiT", "FLUX-1"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 13 |
+
{"tstamp": 1735034314.1941, "type": "leftvote", "models": ["ChatDiT", "FLUX-1"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 14 |
+
{"tstamp": 1735034326.5092, "type": "leftvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 15 |
+
{"tstamp": 1735034331.6963, "type": "rightvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 16 |
+
{"tstamp": 1735034336.5346, "type": "bothbad_vote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 17 |
+
{"tstamp": 1735034351.9521, "type": "rightvote", "models": ["ChatDiT", "FLUX-1"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 18 |
+
{"tstamp": 1735034366.1775, "type": "rightvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 19 |
+
{"tstamp": 1735034380.5877, "type": "leftvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 20 |
+
{"tstamp": 1735034384.3087, "type": "rightvote", "models": ["ChatDiT", "FLUX-1"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 21 |
+
{"tstamp": 1735034389.1583, "type": "leftvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 22 |
+
{"tstamp": 1735034405.9359, "type": "rightvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 23 |
+
{"tstamp": 1735034412.3533, "type": "rightvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 24 |
+
{"tstamp": 1735034419.0118, "type": "leftvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 25 |
+
{"tstamp": 1735034425.6972, "type": "rightvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 26 |
+
{"tstamp": 1735034432.5891, "type": "rightvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
logs/vote_log/2024-12-25-conv.json
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{"tstamp": 1735092762.0, "type": "leftvote", "models": ["ChatDiT", "FLUX-1"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 2 |
+
{"tstamp": 1735092774.618, "type": "bothbad_vote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 3 |
+
{"tstamp": 1735092797.2067, "type": "leftvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 4 |
+
{"tstamp": 1735092804.6699, "type": "rightvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 5 |
+
{"tstamp": 1735092810.2635, "type": "leftvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 6 |
+
{"tstamp": 1735093113.5724, "type": "rightvote", "models": ["FLUX-1", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 7 |
+
{"tstamp": 1735093133.2436, "type": "bothbad_vote", "models": ["ChatDiT", "FLUX-1"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
logs/vote_log/2024-12-26-conv.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{"tstamp": 1735187628.4881, "type": "leftvote", "models": ["GPT-4o + Stable Diffusion 3 Medium", "GPT-4o + OmniGen"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 2 |
+
{"tstamp": 1735187649.4872, "type": "rightvote", "models": ["GPT-4o + Stable Diffusion 3 Medium", "GPT-4o + PixArt-Sigma"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 3 |
+
{"tstamp": 1735197562.2637, "type": "leftvote", "models": ["GPT-4o + Emu2", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 4 |
+
{"tstamp": 1735197586.8438, "type": "leftvote", "models": ["GPT-4o + FLUX.1 [dev]", "GPT-4o + PixArt-Sigma"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 5 |
+
{"tstamp": 1735201758.7145, "type": "leftvote", "models": ["ChatDiT", "GPT-4o + FLUX.1 [dev]"], "states": [{}, {}], "anony": false, "ip": "127.0.0.1"}
|
| 6 |
+
{"tstamp": 1735202083.631, "type": "rightvote", "models": ["GPT-4o + DALLE-3", "GPT-4o + PixArt-Sigma"], "states": [{}, {}], "anony": false, "ip": "127.0.0.1"}
|
| 7 |
+
{"tstamp": 1735202099.4377, "type": "leftvote", "models": ["GPT-4o + DALLE-3", "GPT-4o + PixArt-Sigma"], "states": [{}, {}], "anony": false, "ip": "127.0.0.1"}
|
| 8 |
+
{"tstamp": 1735202132.8592, "type": "rightvote", "models": ["GPT-4o + OmniGen", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 9 |
+
{"tstamp": 1735202545.8694, "type": "rightvote", "models": ["GPT-4o + DALLE-3", "GPT-4o + PixArt-Sigma"], "states": [{}, {}], "anony": false, "ip": "127.0.0.1"}
|
| 10 |
+
{"tstamp": 1735202565.5723, "type": "leftvote", "models": ["GPT-4o + DALLE-3", "GPT-4o + PixArt-Sigma"], "states": [{}, {}], "anony": false, "ip": "127.0.0.1"}
|
| 11 |
+
{"tstamp": 1735202573.0118, "type": "bothbad_vote", "models": ["GPT-4o + DALLE-3", "GPT-4o + PixArt-Sigma"], "states": [{}, {}], "anony": false, "ip": "127.0.0.1"}
|
| 12 |
+
{"tstamp": 1735203523.809, "type": "bothbad_vote", "models": ["GPT-4o + DALLE-3", "GPT-4o + PixArt-Sigma"], "states": [{}, {}], "anony": false, "ip": "127.0.0.1"}
|
| 13 |
+
{"tstamp": 1735205600.7414, "type": "rightvote", "models": ["GPT-4o + OmniGen", "GPT-4o + DALLE-3"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 14 |
+
{"tstamp": 1735207454.8251, "type": "leftvote", "models": ["ChatDiT", "GPT-4o + DALLE-3"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 15 |
+
{"tstamp": 1735207466.0131, "type": "rightvote", "models": ["GPT-4o + OmniGen", "GPT-4o + Stable Diffusion 3 Medium"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 16 |
+
{"tstamp": 1735215923.1589, "type": "rightvote", "models": ["GPT-4o + DALLE-3", "GPT-4o + Emu2"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 17 |
+
{"tstamp": 1735215935.7597, "type": "leftvote", "models": ["GPT-4o + PixArt-Sigma", "GPT-4o + DALLE-3"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 18 |
+
{"tstamp": 1735215942.7093, "type": "bothbad_vote", "models": ["GPT-4o + OmniGen", "GPT-4o + PixArt-Sigma"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 19 |
+
{"tstamp": 1735215949.7965, "type": "leftvote", "models": ["GPT-4o + PixArt-Sigma", "GPT-4o + OmniGen"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 20 |
+
{"tstamp": 1735215962.6898, "type": "rightvote", "models": ["GPT-4o + DALLE-3", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 21 |
+
{"tstamp": 1735215968.9052, "type": "bothbad_vote", "models": ["GPT-4o + Stable Diffusion 3 Medium", "GPT-4o + DALLE-3"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 22 |
+
{"tstamp": 1735215976.5079, "type": "bothbad_vote", "models": ["GPT-4o + FLUX.1 [dev]", "GPT-4o + Stable Diffusion 3 Medium"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 23 |
+
{"tstamp": 1735215982.9709, "type": "rightvote", "models": ["GPT-4o + Emu2", "GPT-4o + Stable Diffusion 3 Medium"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 24 |
+
{"tstamp": 1735215993.2305, "type": "leftvote", "models": ["ChatDiT", "GPT-4o + PixArt-Sigma"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 25 |
+
{"tstamp": 1735215999.8713, "type": "bothbad_vote", "models": ["GPT-4o + Stable Diffusion 3 Medium", "GPT-4o + FLUX.1 [dev]"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 26 |
+
{"tstamp": 1735216012.8216, "type": "rightvote", "models": ["GPT-4o + PixArt-Sigma", "GPT-4o + FLUX.1 [dev]"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 27 |
+
{"tstamp": 1735216021.653, "type": "leftvote", "models": ["ChatDiT", "GPT-4o + PixArt-Sigma"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
logs/vote_log/2024-12-27-conv.json
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{"tstamp": 1735286354.5764, "type": "rightvote", "models": ["GPT-4o + PixArt-Sigma", "GPT-4o + OmniGen"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 2 |
+
{"tstamp": 1735286365.2329, "type": "bothbad_vote", "models": ["GPT-4o + Stable Diffusion 3 Medium", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 3 |
+
{"tstamp": 1735286374.6751, "type": "leftvote", "models": ["GPT-4o + Emu2", "ChatDiT"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
| 4 |
+
{"tstamp": 1735286382.1211, "type": "leftvote", "models": ["GPT-4o + FLUX.1 [dev]", "GPT-4o + Emu2"], "states": [{}, {}], "anony": true, "ip": "127.0.0.1"}
|
logs/vote_log/gr_web_image_generation_multi.log
ADDED
|
@@ -0,0 +1,450 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
2024-12-26 11:49:30 | INFO | stdout | An error occurred while loading the CSV file: 'utf-8' codec can't decode byte 0xa1 in position 1240: invalid start byte
|
| 2 |
+
2024-12-26 11:49:31 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 3 |
+
2024-12-26 11:49:31 | INFO | stdout |
|
| 4 |
+
2024-12-26 11:49:31 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 5 |
+
2024-12-26 11:49:38 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 6 |
+
2024-12-26 11:49:38 | INFO | stdout | Rerunning server... use `close()` to stop if you need to change `launch()` parameters.
|
| 7 |
+
2024-12-26 11:49:38 | INFO | stdout | ----
|
| 8 |
+
2024-12-26 11:49:38 | ERROR | stderr | Traceback (most recent call last):
|
| 9 |
+
2024-12-26 11:49:38 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 65, in <module>
|
| 10 |
+
2024-12-26 11:49:38 | ERROR | stderr | demo.launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 11 |
+
2024-12-26 11:49:38 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2619, in launch
|
| 12 |
+
2024-12-26 11:49:38 | ERROR | stderr | raise ValueError(
|
| 13 |
+
2024-12-26 11:49:38 | ERROR | stderr | ValueError: When localhost is not accessible, a shareable link must be created. Please set share=True or check your proxy settings to allow access to localhost.
|
| 14 |
+
2024-12-26 11:49:42 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 15 |
+
2024-12-26 11:49:42 | ERROR | stderr | Traceback (most recent call last):
|
| 16 |
+
2024-12-26 11:49:42 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 17 |
+
2024-12-26 11:49:42 | ERROR | stderr | lock.acquire()
|
| 18 |
+
2024-12-26 11:49:42 | ERROR | stderr | KeyboardInterrupt:
|
| 19 |
+
2024-12-26 12:07:12 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 20 |
+
2024-12-26 12:07:12 | INFO | stdout |
|
| 21 |
+
2024-12-26 12:07:12 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 22 |
+
2024-12-26 12:33:48 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 23 |
+
2024-12-26 12:34:09 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 24 |
+
2024-12-26 12:43:31 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 25 |
+
2024-12-26 12:43:31 | INFO | stdout | Rerunning server... use `close()` to stop if you need to change `launch()` parameters.
|
| 26 |
+
2024-12-26 12:43:31 | INFO | stdout | ----
|
| 27 |
+
2024-12-26 12:43:31 | ERROR | stderr | Traceback (most recent call last):
|
| 28 |
+
2024-12-26 12:43:31 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 65, in <module>
|
| 29 |
+
2024-12-26 12:43:31 | ERROR | stderr | demo.launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 30 |
+
2024-12-26 12:43:31 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2619, in launch
|
| 31 |
+
2024-12-26 12:43:31 | ERROR | stderr | raise ValueError(
|
| 32 |
+
2024-12-26 12:43:31 | ERROR | stderr | ValueError: When localhost is not accessible, a shareable link must be created. Please set share=True or check your proxy settings to allow access to localhost.
|
| 33 |
+
2024-12-26 14:01:35 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 34 |
+
2024-12-26 14:01:36 | INFO | stdout |
|
| 35 |
+
2024-12-26 14:01:36 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 36 |
+
2024-12-26 14:05:04 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 37 |
+
2024-12-26 14:05:04 | ERROR | stderr | Traceback (most recent call last):
|
| 38 |
+
2024-12-26 14:05:04 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 39 |
+
2024-12-26 14:05:04 | ERROR | stderr | time.sleep(0.1)
|
| 40 |
+
2024-12-26 14:05:04 | ERROR | stderr | KeyboardInterrupt
|
| 41 |
+
2024-12-26 14:05:04 | ERROR | stderr |
|
| 42 |
+
2024-12-26 14:05:04 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 43 |
+
2024-12-26 14:05:04 | ERROR | stderr |
|
| 44 |
+
2024-12-26 14:05:04 | ERROR | stderr | Traceback (most recent call last):
|
| 45 |
+
2024-12-26 14:05:04 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 64, in <module>
|
| 46 |
+
2024-12-26 14:05:04 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 47 |
+
2024-12-26 14:05:04 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 48 |
+
2024-12-26 14:05:04 | ERROR | stderr | self.block_thread()
|
| 49 |
+
2024-12-26 14:05:04 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 50 |
+
2024-12-26 14:05:04 | ERROR | stderr | self.server.close()
|
| 51 |
+
2024-12-26 14:05:04 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 52 |
+
2024-12-26 14:05:04 | ERROR | stderr | self.thread.join(timeout=5)
|
| 53 |
+
2024-12-26 14:05:04 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 54 |
+
2024-12-26 14:05:04 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 55 |
+
2024-12-26 14:05:04 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 56 |
+
2024-12-26 14:05:04 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 57 |
+
2024-12-26 14:05:04 | ERROR | stderr | KeyboardInterrupt
|
| 58 |
+
2024-12-26 14:17:14 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 59 |
+
2024-12-26 14:17:14 | INFO | stdout |
|
| 60 |
+
2024-12-26 14:17:14 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 61 |
+
2024-12-26 14:21:13 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 62 |
+
2024-12-26 14:21:13 | ERROR | stderr | Traceback (most recent call last):
|
| 63 |
+
2024-12-26 14:21:13 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 64 |
+
2024-12-26 14:21:13 | ERROR | stderr | time.sleep(0.1)
|
| 65 |
+
2024-12-26 14:21:13 | ERROR | stderr | KeyboardInterrupt
|
| 66 |
+
2024-12-26 14:21:13 | ERROR | stderr |
|
| 67 |
+
2024-12-26 14:21:13 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 68 |
+
2024-12-26 14:21:13 | ERROR | stderr |
|
| 69 |
+
2024-12-26 14:21:13 | ERROR | stderr | Traceback (most recent call last):
|
| 70 |
+
2024-12-26 14:21:13 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 64, in <module>
|
| 71 |
+
2024-12-26 14:21:13 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 72 |
+
2024-12-26 14:21:13 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 73 |
+
2024-12-26 14:21:13 | ERROR | stderr | self.block_thread()
|
| 74 |
+
2024-12-26 14:21:13 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 75 |
+
2024-12-26 14:21:13 | ERROR | stderr | self.server.close()
|
| 76 |
+
2024-12-26 14:21:13 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 77 |
+
2024-12-26 14:21:13 | ERROR | stderr | self.thread.join(timeout=5)
|
| 78 |
+
2024-12-26 14:21:13 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 79 |
+
2024-12-26 14:21:13 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 80 |
+
2024-12-26 14:21:13 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 81 |
+
2024-12-26 14:21:13 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 82 |
+
2024-12-26 14:21:13 | ERROR | stderr | KeyboardInterrupt
|
| 83 |
+
2024-12-26 15:14:17 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 84 |
+
2024-12-26 15:14:17 | INFO | stdout |
|
| 85 |
+
2024-12-26 15:14:17 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 86 |
+
2024-12-26 15:19:22 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 87 |
+
2024-12-26 15:19:46 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 88 |
+
2024-12-26 15:20:35 | ERROR | stderr | Traceback (most recent call last):
|
| 89 |
+
2024-12-26 15:20:35 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/queueing.py", line 625, in process_events
|
| 90 |
+
2024-12-26 15:20:35 | ERROR | stderr | response = await route_utils.call_process_api(
|
| 91 |
+
2024-12-26 15:20:35 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/route_utils.py", line 322, in call_process_api
|
| 92 |
+
2024-12-26 15:20:35 | ERROR | stderr | output = await app.get_blocks().process_api(
|
| 93 |
+
2024-12-26 15:20:35 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2047, in process_api
|
| 94 |
+
2024-12-26 15:20:35 | ERROR | stderr | result = await self.call_function(
|
| 95 |
+
2024-12-26 15:20:35 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 1594, in call_function
|
| 96 |
+
2024-12-26 15:20:35 | ERROR | stderr | prediction = await anyio.to_thread.run_sync( # type: ignore
|
| 97 |
+
2024-12-26 15:20:35 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/anyio/to_thread.py", line 56, in run_sync
|
| 98 |
+
2024-12-26 15:20:35 | ERROR | stderr | return await get_async_backend().run_sync_in_worker_thread(
|
| 99 |
+
2024-12-26 15:20:35 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 2505, in run_sync_in_worker_thread
|
| 100 |
+
2024-12-26 15:20:35 | ERROR | stderr | return await future
|
| 101 |
+
2024-12-26 15:20:35 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 1005, in run
|
| 102 |
+
2024-12-26 15:20:35 | ERROR | stderr | result = context.run(func, *args)
|
| 103 |
+
2024-12-26 15:20:35 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/utils.py", line 869, in wrapper
|
| 104 |
+
2024-12-26 15:20:35 | ERROR | stderr | response = f(*args, **kwargs)
|
| 105 |
+
2024-12-26 15:20:35 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/serve/utils.py", line 164, in refresh_side_by_side
|
| 106 |
+
2024-12-26 15:20:35 | ERROR | stderr | state0, state1, prompt, input_images, output_images_A, output_images_B = models.get_result_of_random_case(model_name_A, model_name_B)
|
| 107 |
+
2024-12-26 15:20:35 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/model/model_manager.py", line 215, in get_result_of_random_case
|
| 108 |
+
2024-12-26 15:20:35 | ERROR | stderr | output_images_A = model_A.get_result(case_name)
|
| 109 |
+
2024-12-26 15:20:35 | ERROR | stderr | AttributeError: 'NoneType' object has no attribute 'get_result'
|
| 110 |
+
2024-12-26 16:22:06 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 111 |
+
2024-12-26 16:22:07 | ERROR | stderr | Traceback (most recent call last):
|
| 112 |
+
2024-12-26 16:22:07 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 113 |
+
2024-12-26 16:22:07 | ERROR | stderr | time.sleep(0.1)
|
| 114 |
+
2024-12-26 16:22:07 | ERROR | stderr | KeyboardInterrupt
|
| 115 |
+
2024-12-26 16:22:07 | ERROR | stderr |
|
| 116 |
+
2024-12-26 16:22:07 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 117 |
+
2024-12-26 16:22:07 | ERROR | stderr |
|
| 118 |
+
2024-12-26 16:22:07 | ERROR | stderr | Traceback (most recent call last):
|
| 119 |
+
2024-12-26 16:22:07 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 64, in <module>
|
| 120 |
+
2024-12-26 16:22:07 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 121 |
+
2024-12-26 16:22:07 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 122 |
+
2024-12-26 16:22:07 | ERROR | stderr | self.block_thread()
|
| 123 |
+
2024-12-26 16:22:07 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 124 |
+
2024-12-26 16:22:07 | ERROR | stderr | self.server.close()
|
| 125 |
+
2024-12-26 16:22:07 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 126 |
+
2024-12-26 16:22:07 | ERROR | stderr | self.thread.join(timeout=5)
|
| 127 |
+
2024-12-26 16:22:07 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 128 |
+
2024-12-26 16:22:07 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 129 |
+
2024-12-26 16:22:07 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 130 |
+
2024-12-26 16:22:07 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 131 |
+
2024-12-26 16:22:07 | ERROR | stderr | KeyboardInterrupt
|
| 132 |
+
2024-12-26 16:28:41 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 133 |
+
2024-12-26 16:28:41 | INFO | stdout |
|
| 134 |
+
2024-12-26 16:28:41 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 135 |
+
2024-12-26 16:29:18 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 136 |
+
2024-12-26 16:33:49 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 137 |
+
2024-12-26 16:33:49 | ERROR | stderr | Traceback (most recent call last):
|
| 138 |
+
2024-12-26 16:33:49 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 139 |
+
2024-12-26 16:33:49 | ERROR | stderr | time.sleep(0.1)
|
| 140 |
+
2024-12-26 16:33:49 | ERROR | stderr | KeyboardInterrupt
|
| 141 |
+
2024-12-26 16:33:49 | ERROR | stderr |
|
| 142 |
+
2024-12-26 16:33:49 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 143 |
+
2024-12-26 16:33:49 | ERROR | stderr |
|
| 144 |
+
2024-12-26 16:33:49 | ERROR | stderr | Traceback (most recent call last):
|
| 145 |
+
2024-12-26 16:33:49 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 64, in <module>
|
| 146 |
+
2024-12-26 16:33:49 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 147 |
+
2024-12-26 16:33:49 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 148 |
+
2024-12-26 16:33:49 | ERROR | stderr | self.block_thread()
|
| 149 |
+
2024-12-26 16:33:49 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 150 |
+
2024-12-26 16:33:49 | ERROR | stderr | self.server.close()
|
| 151 |
+
2024-12-26 16:33:49 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 152 |
+
2024-12-26 16:33:49 | ERROR | stderr | self.thread.join(timeout=5)
|
| 153 |
+
2024-12-26 16:33:49 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 154 |
+
2024-12-26 16:33:49 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 155 |
+
2024-12-26 16:33:49 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 156 |
+
2024-12-26 16:33:49 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 157 |
+
2024-12-26 16:33:49 | ERROR | stderr | KeyboardInterrupt
|
| 158 |
+
2024-12-26 16:34:06 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 159 |
+
2024-12-26 16:34:06 | INFO | stdout |
|
| 160 |
+
2024-12-26 16:34:06 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 161 |
+
2024-12-26 16:34:43 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 162 |
+
2024-12-26 16:34:59 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 163 |
+
2024-12-26 16:35:32 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 164 |
+
2024-12-26 16:42:25 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 165 |
+
2024-12-26 16:42:45 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 166 |
+
2024-12-26 16:42:53 | INFO | gradio_web_server_image_generation_multi | bothbad_vote (named). ip: 127.0.0.1
|
| 167 |
+
2024-12-26 16:58:43 | INFO | gradio_web_server_image_generation_multi | bothbad_vote (named). ip: 127.0.0.1
|
| 168 |
+
2024-12-26 17:33:20 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 169 |
+
2024-12-26 18:04:14 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 170 |
+
2024-12-26 18:04:26 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 171 |
+
2024-12-26 19:58:21 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 172 |
+
2024-12-26 19:58:21 | ERROR | stderr | Traceback (most recent call last):
|
| 173 |
+
2024-12-26 19:58:21 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 174 |
+
2024-12-26 19:58:21 | ERROR | stderr | time.sleep(0.1)
|
| 175 |
+
2024-12-26 19:58:21 | ERROR | stderr | KeyboardInterrupt
|
| 176 |
+
2024-12-26 19:58:21 | ERROR | stderr |
|
| 177 |
+
2024-12-26 19:58:21 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 178 |
+
2024-12-26 19:58:21 | ERROR | stderr |
|
| 179 |
+
2024-12-26 19:58:21 | ERROR | stderr | Traceback (most recent call last):
|
| 180 |
+
2024-12-26 19:58:21 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 64, in <module>
|
| 181 |
+
2024-12-26 19:58:21 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 182 |
+
2024-12-26 19:58:21 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 183 |
+
2024-12-26 19:58:21 | ERROR | stderr | self.block_thread()
|
| 184 |
+
2024-12-26 19:58:21 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 185 |
+
2024-12-26 19:58:21 | ERROR | stderr | self.server.close()
|
| 186 |
+
2024-12-26 19:58:21 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 187 |
+
2024-12-26 19:58:21 | ERROR | stderr | self.thread.join(timeout=5)
|
| 188 |
+
2024-12-26 19:58:21 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 189 |
+
2024-12-26 19:58:21 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 190 |
+
2024-12-26 19:58:21 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 191 |
+
2024-12-26 19:58:21 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 192 |
+
2024-12-26 19:58:21 | ERROR | stderr | KeyboardInterrupt
|
| 193 |
+
2024-12-26 20:07:22 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 194 |
+
2024-12-26 20:07:22 | INFO | stdout |
|
| 195 |
+
2024-12-26 20:07:22 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 196 |
+
2024-12-26 20:09:29 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 197 |
+
2024-12-26 20:09:29 | ERROR | stderr | Traceback (most recent call last):
|
| 198 |
+
2024-12-26 20:09:29 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 199 |
+
2024-12-26 20:09:29 | ERROR | stderr | time.sleep(0.1)
|
| 200 |
+
2024-12-26 20:09:29 | ERROR | stderr | KeyboardInterrupt
|
| 201 |
+
2024-12-26 20:09:29 | ERROR | stderr |
|
| 202 |
+
2024-12-26 20:09:29 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 203 |
+
2024-12-26 20:09:29 | ERROR | stderr |
|
| 204 |
+
2024-12-26 20:09:29 | ERROR | stderr | Traceback (most recent call last):
|
| 205 |
+
2024-12-26 20:09:29 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 64, in <module>
|
| 206 |
+
2024-12-26 20:09:29 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 207 |
+
2024-12-26 20:09:29 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 208 |
+
2024-12-26 20:09:29 | ERROR | stderr | self.block_thread()
|
| 209 |
+
2024-12-26 20:09:29 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 210 |
+
2024-12-26 20:09:29 | ERROR | stderr | self.server.close()
|
| 211 |
+
2024-12-26 20:09:29 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 212 |
+
2024-12-26 20:09:29 | ERROR | stderr | self.thread.join(timeout=5)
|
| 213 |
+
2024-12-26 20:09:29 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 214 |
+
2024-12-26 20:09:29 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 215 |
+
2024-12-26 20:09:29 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 216 |
+
2024-12-26 20:09:29 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 217 |
+
2024-12-26 20:09:29 | ERROR | stderr | KeyboardInterrupt
|
| 218 |
+
2024-12-26 20:09:29 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 219 |
+
2024-12-26 20:09:29 | ERROR | stderr | Traceback (most recent call last):
|
| 220 |
+
2024-12-26 20:09:29 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 221 |
+
2024-12-26 20:09:29 | ERROR | stderr | lock.acquire()
|
| 222 |
+
2024-12-26 20:09:29 | ERROR | stderr | KeyboardInterrupt:
|
| 223 |
+
2024-12-26 20:09:34 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 224 |
+
2024-12-26 20:09:34 | INFO | stdout |
|
| 225 |
+
2024-12-26 20:09:34 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 226 |
+
2024-12-26 20:10:51 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 227 |
+
2024-12-26 20:10:51 | ERROR | stderr | Traceback (most recent call last):
|
| 228 |
+
2024-12-26 20:10:51 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 229 |
+
2024-12-26 20:10:51 | ERROR | stderr | time.sleep(0.1)
|
| 230 |
+
2024-12-26 20:10:51 | ERROR | stderr | KeyboardInterrupt
|
| 231 |
+
2024-12-26 20:10:51 | ERROR | stderr |
|
| 232 |
+
2024-12-26 20:10:51 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 233 |
+
2024-12-26 20:10:51 | ERROR | stderr |
|
| 234 |
+
2024-12-26 20:10:51 | ERROR | stderr | Traceback (most recent call last):
|
| 235 |
+
2024-12-26 20:10:51 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 64, in <module>
|
| 236 |
+
2024-12-26 20:10:51 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 237 |
+
2024-12-26 20:10:51 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 238 |
+
2024-12-26 20:10:51 | ERROR | stderr | self.block_thread()
|
| 239 |
+
2024-12-26 20:10:51 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 240 |
+
2024-12-26 20:10:51 | ERROR | stderr | self.server.close()
|
| 241 |
+
2024-12-26 20:10:51 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 242 |
+
2024-12-26 20:10:51 | ERROR | stderr | self.thread.join(timeout=5)
|
| 243 |
+
2024-12-26 20:10:51 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 244 |
+
2024-12-26 20:10:51 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 245 |
+
2024-12-26 20:10:51 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 246 |
+
2024-12-26 20:10:51 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 247 |
+
2024-12-26 20:10:51 | ERROR | stderr | KeyboardInterrupt
|
| 248 |
+
2024-12-26 20:10:51 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 249 |
+
2024-12-26 20:10:51 | ERROR | stderr | Traceback (most recent call last):
|
| 250 |
+
2024-12-26 20:10:51 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 251 |
+
2024-12-26 20:10:51 | ERROR | stderr | lock.acquire()
|
| 252 |
+
2024-12-26 20:10:51 | ERROR | stderr | KeyboardInterrupt:
|
| 253 |
+
2024-12-26 20:11:17 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 254 |
+
2024-12-26 20:11:17 | INFO | stdout |
|
| 255 |
+
2024-12-26 20:11:17 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 256 |
+
2024-12-26 20:11:33 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 257 |
+
2024-12-26 20:11:33 | ERROR | stderr | Traceback (most recent call last):
|
| 258 |
+
2024-12-26 20:11:33 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 259 |
+
2024-12-26 20:11:33 | ERROR | stderr | time.sleep(0.1)
|
| 260 |
+
2024-12-26 20:11:33 | ERROR | stderr | KeyboardInterrupt
|
| 261 |
+
2024-12-26 20:11:33 | ERROR | stderr |
|
| 262 |
+
2024-12-26 20:11:33 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 263 |
+
2024-12-26 20:11:33 | ERROR | stderr |
|
| 264 |
+
2024-12-26 20:11:33 | ERROR | stderr | Traceback (most recent call last):
|
| 265 |
+
2024-12-26 20:11:33 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 64, in <module>
|
| 266 |
+
2024-12-26 20:11:33 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 267 |
+
2024-12-26 20:11:33 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 268 |
+
2024-12-26 20:11:33 | ERROR | stderr | self.block_thread()
|
| 269 |
+
2024-12-26 20:11:33 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 270 |
+
2024-12-26 20:11:33 | ERROR | stderr | self.server.close()
|
| 271 |
+
2024-12-26 20:11:33 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 272 |
+
2024-12-26 20:11:33 | ERROR | stderr | self.thread.join(timeout=5)
|
| 273 |
+
2024-12-26 20:11:33 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 274 |
+
2024-12-26 20:11:33 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 275 |
+
2024-12-26 20:11:33 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 276 |
+
2024-12-26 20:11:33 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 277 |
+
2024-12-26 20:11:33 | ERROR | stderr | KeyboardInterrupt
|
| 278 |
+
2024-12-26 20:11:33 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 279 |
+
2024-12-26 20:11:33 | ERROR | stderr | Traceback (most recent call last):
|
| 280 |
+
2024-12-26 20:11:33 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 281 |
+
2024-12-26 20:11:33 | ERROR | stderr | lock.acquire()
|
| 282 |
+
2024-12-26 20:11:33 | ERROR | stderr | KeyboardInterrupt:
|
| 283 |
+
2024-12-26 20:13:30 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 284 |
+
2024-12-26 20:13:30 | INFO | stdout |
|
| 285 |
+
2024-12-26 20:13:30 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 286 |
+
2024-12-26 20:18:33 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 287 |
+
2024-12-26 20:18:33 | ERROR | stderr | Traceback (most recent call last):
|
| 288 |
+
2024-12-26 20:18:33 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 289 |
+
2024-12-26 20:18:33 | ERROR | stderr | time.sleep(0.1)
|
| 290 |
+
2024-12-26 20:18:33 | ERROR | stderr | KeyboardInterrupt
|
| 291 |
+
2024-12-26 20:18:33 | ERROR | stderr |
|
| 292 |
+
2024-12-26 20:18:33 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 293 |
+
2024-12-26 20:18:33 | ERROR | stderr |
|
| 294 |
+
2024-12-26 20:18:33 | ERROR | stderr | Traceback (most recent call last):
|
| 295 |
+
2024-12-26 20:18:33 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 64, in <module>
|
| 296 |
+
2024-12-26 20:18:33 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 297 |
+
2024-12-26 20:18:33 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 298 |
+
2024-12-26 20:18:33 | ERROR | stderr | self.block_thread()
|
| 299 |
+
2024-12-26 20:18:33 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 300 |
+
2024-12-26 20:18:33 | ERROR | stderr | self.server.close()
|
| 301 |
+
2024-12-26 20:18:33 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 302 |
+
2024-12-26 20:18:33 | ERROR | stderr | self.thread.join(timeout=5)
|
| 303 |
+
2024-12-26 20:18:33 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 304 |
+
2024-12-26 20:18:33 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 305 |
+
2024-12-26 20:18:33 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 306 |
+
2024-12-26 20:18:33 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 307 |
+
2024-12-26 20:18:33 | ERROR | stderr | KeyboardInterrupt
|
| 308 |
+
2024-12-26 20:18:40 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 309 |
+
2024-12-26 20:18:40 | INFO | stdout |
|
| 310 |
+
2024-12-26 20:18:40 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 311 |
+
2024-12-26 20:23:29 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 312 |
+
2024-12-26 20:23:29 | ERROR | stderr | Traceback (most recent call last):
|
| 313 |
+
2024-12-26 20:23:29 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 314 |
+
2024-12-26 20:23:29 | ERROR | stderr | time.sleep(0.1)
|
| 315 |
+
2024-12-26 20:23:29 | ERROR | stderr | KeyboardInterrupt
|
| 316 |
+
2024-12-26 20:23:29 | ERROR | stderr |
|
| 317 |
+
2024-12-26 20:23:29 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 318 |
+
2024-12-26 20:23:29 | ERROR | stderr |
|
| 319 |
+
2024-12-26 20:23:29 | ERROR | stderr | Traceback (most recent call last):
|
| 320 |
+
2024-12-26 20:23:29 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 64, in <module>
|
| 321 |
+
2024-12-26 20:23:29 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 322 |
+
2024-12-26 20:23:29 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 323 |
+
2024-12-26 20:23:29 | ERROR | stderr | self.block_thread()
|
| 324 |
+
2024-12-26 20:23:29 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 325 |
+
2024-12-26 20:23:29 | ERROR | stderr | self.server.close()
|
| 326 |
+
2024-12-26 20:23:29 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 327 |
+
2024-12-26 20:23:29 | ERROR | stderr | self.thread.join(timeout=5)
|
| 328 |
+
2024-12-26 20:23:29 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 329 |
+
2024-12-26 20:23:29 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 330 |
+
2024-12-26 20:23:29 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 331 |
+
2024-12-26 20:23:29 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 332 |
+
2024-12-26 20:23:29 | ERROR | stderr | KeyboardInterrupt
|
| 333 |
+
2024-12-26 20:23:33 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 334 |
+
2024-12-26 20:23:34 | INFO | stdout |
|
| 335 |
+
2024-12-26 20:23:34 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 336 |
+
2024-12-26 20:24:01 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 337 |
+
2024-12-26 20:24:01 | ERROR | stderr | Traceback (most recent call last):
|
| 338 |
+
2024-12-26 20:24:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 339 |
+
2024-12-26 20:24:01 | ERROR | stderr | time.sleep(0.1)
|
| 340 |
+
2024-12-26 20:24:01 | ERROR | stderr | KeyboardInterrupt
|
| 341 |
+
2024-12-26 20:24:01 | ERROR | stderr |
|
| 342 |
+
2024-12-26 20:24:01 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 343 |
+
2024-12-26 20:24:01 | ERROR | stderr |
|
| 344 |
+
2024-12-26 20:24:01 | ERROR | stderr | Traceback (most recent call last):
|
| 345 |
+
2024-12-26 20:24:01 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 64, in <module>
|
| 346 |
+
2024-12-26 20:24:01 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 347 |
+
2024-12-26 20:24:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 348 |
+
2024-12-26 20:24:01 | ERROR | stderr | self.block_thread()
|
| 349 |
+
2024-12-26 20:24:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 350 |
+
2024-12-26 20:24:01 | ERROR | stderr | self.server.close()
|
| 351 |
+
2024-12-26 20:24:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 352 |
+
2024-12-26 20:24:01 | ERROR | stderr | self.thread.join(timeout=5)
|
| 353 |
+
2024-12-26 20:24:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 354 |
+
2024-12-26 20:24:01 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 355 |
+
2024-12-26 20:24:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 356 |
+
2024-12-26 20:24:01 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 357 |
+
2024-12-26 20:24:01 | ERROR | stderr | KeyboardInterrupt
|
| 358 |
+
2024-12-26 20:24:01 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 359 |
+
2024-12-26 20:24:01 | ERROR | stderr | Traceback (most recent call last):
|
| 360 |
+
2024-12-26 20:24:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 361 |
+
2024-12-26 20:24:01 | ERROR | stderr | lock.acquire()
|
| 362 |
+
2024-12-26 20:24:01 | ERROR | stderr | KeyboardInterrupt:
|
| 363 |
+
2024-12-26 20:25:01 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 364 |
+
2024-12-26 20:25:01 | INFO | stdout |
|
| 365 |
+
2024-12-26 20:25:01 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 366 |
+
2024-12-26 20:25:23 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 367 |
+
2024-12-26 20:25:35 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 368 |
+
2024-12-26 20:25:42 | INFO | gradio_web_server_image_generation_multi | bothbad_vote (named). ip: 127.0.0.1
|
| 369 |
+
2024-12-26 20:25:49 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 370 |
+
2024-12-26 20:26:02 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 371 |
+
2024-12-26 20:26:08 | INFO | gradio_web_server_image_generation_multi | bothbad_vote (named). ip: 127.0.0.1
|
| 372 |
+
2024-12-26 20:26:16 | INFO | gradio_web_server_image_generation_multi | bothbad_vote (named). ip: 127.0.0.1
|
| 373 |
+
2024-12-26 20:26:22 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 374 |
+
2024-12-26 20:26:33 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 375 |
+
2024-12-26 20:26:39 | INFO | gradio_web_server_image_generation_multi | bothbad_vote (named). ip: 127.0.0.1
|
| 376 |
+
2024-12-26 20:26:52 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 377 |
+
2024-12-26 20:27:01 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 378 |
+
2024-12-26 20:27:19 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 379 |
+
2024-12-26 20:27:19 | ERROR | stderr | Traceback (most recent call last):
|
| 380 |
+
2024-12-26 20:27:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 381 |
+
2024-12-26 20:27:19 | ERROR | stderr | time.sleep(0.1)
|
| 382 |
+
2024-12-26 20:27:19 | ERROR | stderr | KeyboardInterrupt
|
| 383 |
+
2024-12-26 20:27:19 | ERROR | stderr |
|
| 384 |
+
2024-12-26 20:27:19 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 385 |
+
2024-12-26 20:27:19 | ERROR | stderr |
|
| 386 |
+
2024-12-26 20:27:19 | ERROR | stderr | Traceback (most recent call last):
|
| 387 |
+
2024-12-26 20:27:19 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 64, in <module>
|
| 388 |
+
2024-12-26 20:27:19 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 389 |
+
2024-12-26 20:27:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 390 |
+
2024-12-26 20:27:19 | ERROR | stderr | self.block_thread()
|
| 391 |
+
2024-12-26 20:27:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 392 |
+
2024-12-26 20:27:19 | ERROR | stderr | self.server.close()
|
| 393 |
+
2024-12-26 20:27:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 394 |
+
2024-12-26 20:27:19 | ERROR | stderr | self.thread.join(timeout=5)
|
| 395 |
+
2024-12-26 20:27:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 396 |
+
2024-12-26 20:27:19 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 397 |
+
2024-12-26 20:27:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 398 |
+
2024-12-26 20:27:19 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 399 |
+
2024-12-26 20:27:19 | ERROR | stderr | KeyboardInterrupt
|
| 400 |
+
2024-12-26 20:27:20 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 401 |
+
2024-12-26 20:27:20 | ERROR | stderr | Traceback (most recent call last):
|
| 402 |
+
2024-12-26 20:27:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 403 |
+
2024-12-26 20:27:20 | ERROR | stderr | lock.acquire()
|
| 404 |
+
2024-12-26 20:27:20 | ERROR | stderr | KeyboardInterrupt:
|
| 405 |
+
2024-12-26 20:27:58 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 406 |
+
2024-12-26 20:27:58 | INFO | stdout |
|
| 407 |
+
2024-12-26 20:27:58 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 408 |
+
2024-12-26 20:28:20 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 409 |
+
2024-12-26 20:28:20 | ERROR | stderr | Traceback (most recent call last):
|
| 410 |
+
2024-12-26 20:28:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 411 |
+
2024-12-26 20:28:20 | ERROR | stderr | time.sleep(0.1)
|
| 412 |
+
2024-12-26 20:28:20 | ERROR | stderr | KeyboardInterrupt
|
| 413 |
+
2024-12-26 20:28:20 | ERROR | stderr |
|
| 414 |
+
2024-12-26 20:28:20 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 415 |
+
2024-12-26 20:28:20 | ERROR | stderr |
|
| 416 |
+
2024-12-26 20:28:20 | ERROR | stderr | Traceback (most recent call last):
|
| 417 |
+
2024-12-26 20:28:20 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 64, in <module>
|
| 418 |
+
2024-12-26 20:28:20 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 419 |
+
2024-12-26 20:28:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 420 |
+
2024-12-26 20:28:20 | ERROR | stderr | self.block_thread()
|
| 421 |
+
2024-12-26 20:28:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 422 |
+
2024-12-26 20:28:20 | ERROR | stderr | self.server.close()
|
| 423 |
+
2024-12-26 20:28:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 424 |
+
2024-12-26 20:28:20 | ERROR | stderr | self.thread.join(timeout=5)
|
| 425 |
+
2024-12-26 20:28:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 426 |
+
2024-12-26 20:28:20 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 427 |
+
2024-12-26 20:28:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 428 |
+
2024-12-26 20:28:20 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 429 |
+
2024-12-26 20:28:20 | ERROR | stderr | KeyboardInterrupt
|
| 430 |
+
2024-12-26 20:28:20 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 431 |
+
2024-12-26 20:28:20 | ERROR | stderr | Traceback (most recent call last):
|
| 432 |
+
2024-12-26 20:28:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 433 |
+
2024-12-26 20:28:20 | ERROR | stderr | lock.acquire()
|
| 434 |
+
2024-12-26 20:28:20 | ERROR | stderr | KeyboardInterrupt:
|
| 435 |
+
2024-12-27 15:58:24 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 436 |
+
2024-12-27 15:58:24 | INFO | stdout |
|
| 437 |
+
2024-12-27 15:58:24 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 438 |
+
2024-12-27 15:59:14 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 439 |
+
2024-12-27 15:59:25 | INFO | gradio_web_server_image_generation_multi | bothbad_vote (named). ip: 127.0.0.1
|
| 440 |
+
2024-12-27 15:59:34 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 441 |
+
2024-12-27 15:59:42 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 442 |
+
2024-12-27 16:00:57 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 443 |
+
2024-12-27 16:00:57 | INFO | stdout | Rerunning server... use `close()` to stop if you need to change `launch()` parameters.
|
| 444 |
+
2024-12-27 16:00:57 | INFO | stdout | ----
|
| 445 |
+
2024-12-27 16:00:57 | ERROR | stderr | Traceback (most recent call last):
|
| 446 |
+
2024-12-27 16:00:57 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/huggingface/IDEA-Bench-Arena/app.py", line 65, in <module>
|
| 447 |
+
2024-12-27 16:00:57 | ERROR | stderr | demo.launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 448 |
+
2024-12-27 16:00:57 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2619, in launch
|
| 449 |
+
2024-12-27 16:00:57 | ERROR | stderr | raise ValueError(
|
| 450 |
+
2024-12-27 16:00:57 | ERROR | stderr | ValueError: When localhost is not accessible, a shareable link must be created. Please set share=True or check your proxy settings to allow access to localhost.
|
logs/vote_log/gr_web_image_generation_multi.log.2024-12-25
ADDED
|
@@ -0,0 +1,797 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
2024-12-24 14:01:42 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 2 |
+
2024-12-24 14:01:42 | INFO | stdout |
|
| 3 |
+
2024-12-24 14:01:42 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 4 |
+
2024-12-24 14:02:18 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 5 |
+
2024-12-24 14:02:18 | ERROR | stderr | Traceback (most recent call last):
|
| 6 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/queueing.py", line 625, in process_events
|
| 7 |
+
2024-12-24 14:02:18 | ERROR | stderr | response = await route_utils.call_process_api(
|
| 8 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/route_utils.py", line 322, in call_process_api
|
| 9 |
+
2024-12-24 14:02:18 | ERROR | stderr | output = await app.get_blocks().process_api(
|
| 10 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2047, in process_api
|
| 11 |
+
2024-12-24 14:02:18 | ERROR | stderr | result = await self.call_function(
|
| 12 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 1594, in call_function
|
| 13 |
+
2024-12-24 14:02:18 | ERROR | stderr | prediction = await anyio.to_thread.run_sync( # type: ignore
|
| 14 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/anyio/to_thread.py", line 56, in run_sync
|
| 15 |
+
2024-12-24 14:02:18 | ERROR | stderr | return await get_async_backend().run_sync_in_worker_thread(
|
| 16 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 2505, in run_sync_in_worker_thread
|
| 17 |
+
2024-12-24 14:02:18 | ERROR | stderr | return await future
|
| 18 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 1005, in run
|
| 19 |
+
2024-12-24 14:02:18 | ERROR | stderr | result = context.run(func, *args)
|
| 20 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/utils.py", line 869, in wrapper
|
| 21 |
+
2024-12-24 14:02:18 | ERROR | stderr | response = f(*args, **kwargs)
|
| 22 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/serve/vote_utils.py", line 53, in rightvote_last_response_igm
|
| 23 |
+
2024-12-24 14:02:18 | ERROR | stderr | vote_last_response_igm(
|
| 24 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/serve/vote_utils.py", line 32, in vote_last_response_igm
|
| 25 |
+
2024-12-24 14:02:18 | ERROR | stderr | append_json_item_on_log_server(data, get_conv_log_filename())
|
| 26 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/serve/utils.py", line 171, in append_json_item_on_log_server
|
| 27 |
+
2024-12-24 14:02:18 | ERROR | stderr | response = requests.post(url, data={'json_str': json_item, 'file_name': log_file})
|
| 28 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/requests/api.py", line 115, in post
|
| 29 |
+
2024-12-24 14:02:18 | ERROR | stderr | return request("post", url, data=data, json=json, **kwargs)
|
| 30 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/requests/api.py", line 59, in request
|
| 31 |
+
2024-12-24 14:02:18 | ERROR | stderr | return session.request(method=method, url=url, **kwargs)
|
| 32 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/requests/sessions.py", line 575, in request
|
| 33 |
+
2024-12-24 14:02:18 | ERROR | stderr | prep = self.prepare_request(req)
|
| 34 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/requests/sessions.py", line 484, in prepare_request
|
| 35 |
+
2024-12-24 14:02:18 | ERROR | stderr | p.prepare(
|
| 36 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/requests/models.py", line 367, in prepare
|
| 37 |
+
2024-12-24 14:02:18 | ERROR | stderr | self.prepare_url(url, params)
|
| 38 |
+
2024-12-24 14:02:18 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/requests/models.py", line 438, in prepare_url
|
| 39 |
+
2024-12-24 14:02:18 | ERROR | stderr | raise MissingSchema(
|
| 40 |
+
2024-12-24 14:02:18 | ERROR | stderr | requests.exceptions.MissingSchema: Invalid URL '/logs/append_json': No scheme supplied. Perhaps you meant https:///logs/append_json?
|
| 41 |
+
2024-12-24 14:06:36 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 42 |
+
2024-12-24 14:06:36 | ERROR | stderr | Traceback (most recent call last):
|
| 43 |
+
2024-12-24 14:06:36 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 44 |
+
2024-12-24 14:06:36 | ERROR | stderr | time.sleep(0.1)
|
| 45 |
+
2024-12-24 14:06:36 | ERROR | stderr | KeyboardInterrupt
|
| 46 |
+
2024-12-24 14:06:36 | ERROR | stderr |
|
| 47 |
+
2024-12-24 14:06:36 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 48 |
+
2024-12-24 14:06:36 | ERROR | stderr |
|
| 49 |
+
2024-12-24 14:06:36 | ERROR | stderr | Traceback (most recent call last):
|
| 50 |
+
2024-12-24 14:06:36 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 51 |
+
2024-12-24 14:06:36 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 52 |
+
2024-12-24 14:06:36 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 53 |
+
2024-12-24 14:06:36 | ERROR | stderr | self.block_thread()
|
| 54 |
+
2024-12-24 14:06:36 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 55 |
+
2024-12-24 14:06:36 | ERROR | stderr | self.server.close()
|
| 56 |
+
2024-12-24 14:06:36 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 57 |
+
2024-12-24 14:06:36 | ERROR | stderr | self.thread.join(timeout=5)
|
| 58 |
+
2024-12-24 14:06:36 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 59 |
+
2024-12-24 14:06:36 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 60 |
+
2024-12-24 14:06:36 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 61 |
+
2024-12-24 14:06:36 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 62 |
+
2024-12-24 14:06:36 | ERROR | stderr | KeyboardInterrupt
|
| 63 |
+
2024-12-24 14:06:41 | ERROR | stderr | Traceback (most recent call last):
|
| 64 |
+
2024-12-24 14:06:41 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 77, in <module>
|
| 65 |
+
2024-12-24 14:06:41 | ERROR | stderr | demo = build_combine_demo(models, elo_results_file, leaderboard_table_file)
|
| 66 |
+
2024-12-24 14:06:41 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 27, in build_combine_demo
|
| 67 |
+
2024-12-24 14:06:41 | ERROR | stderr | build_side_by_side_ui_named(models)
|
| 68 |
+
2024-12-24 14:06:41 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/serve/gradio_web.py", line 226, in build_side_by_side_ui_named
|
| 69 |
+
2024-12-24 14:06:41 | ERROR | stderr | leftvote_btn = gr.Button(
|
| 70 |
+
2024-12-24 14:06:41 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/component_meta.py", line 179, in wrapper
|
| 71 |
+
2024-12-24 14:06:41 | ERROR | stderr | return fn(self, **kwargs)
|
| 72 |
+
2024-12-24 14:06:41 | ERROR | stderr | TypeError: Button.__init__() got an unexpected keyword argument 'style'
|
| 73 |
+
2024-12-24 14:13:32 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 74 |
+
2024-12-24 14:13:32 | INFO | stdout |
|
| 75 |
+
2024-12-24 14:13:32 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 76 |
+
2024-12-24 14:14:04 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 77 |
+
2024-12-24 14:14:04 | ERROR | stderr | Traceback (most recent call last):
|
| 78 |
+
2024-12-24 14:14:04 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 79 |
+
2024-12-24 14:14:04 | ERROR | stderr | time.sleep(0.1)
|
| 80 |
+
2024-12-24 14:14:04 | ERROR | stderr | KeyboardInterrupt
|
| 81 |
+
2024-12-24 14:14:04 | ERROR | stderr |
|
| 82 |
+
2024-12-24 14:14:04 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 83 |
+
2024-12-24 14:14:04 | ERROR | stderr |
|
| 84 |
+
2024-12-24 14:14:04 | ERROR | stderr | Traceback (most recent call last):
|
| 85 |
+
2024-12-24 14:14:04 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 86 |
+
2024-12-24 14:14:04 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 87 |
+
2024-12-24 14:14:04 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 88 |
+
2024-12-24 14:14:04 | ERROR | stderr | self.block_thread()
|
| 89 |
+
2024-12-24 14:14:04 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 90 |
+
2024-12-24 14:14:04 | ERROR | stderr | self.server.close()
|
| 91 |
+
2024-12-24 14:14:04 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 92 |
+
2024-12-24 14:14:04 | ERROR | stderr | self.thread.join(timeout=5)
|
| 93 |
+
2024-12-24 14:14:04 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 94 |
+
2024-12-24 14:14:04 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 95 |
+
2024-12-24 14:14:04 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 96 |
+
2024-12-24 14:14:04 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 97 |
+
2024-12-24 14:14:04 | ERROR | stderr | KeyboardInterrupt
|
| 98 |
+
2024-12-24 14:14:04 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 99 |
+
2024-12-24 14:14:04 | ERROR | stderr | Traceback (most recent call last):
|
| 100 |
+
2024-12-24 14:14:04 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 101 |
+
2024-12-24 14:14:04 | ERROR | stderr | lock.acquire()
|
| 102 |
+
2024-12-24 14:14:04 | ERROR | stderr | KeyboardInterrupt:
|
| 103 |
+
2024-12-24 14:14:09 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 104 |
+
2024-12-24 14:14:09 | INFO | stdout |
|
| 105 |
+
2024-12-24 14:14:09 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 106 |
+
2024-12-24 14:16:39 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 107 |
+
2024-12-24 14:16:39 | ERROR | stderr | Traceback (most recent call last):
|
| 108 |
+
2024-12-24 14:16:39 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 109 |
+
2024-12-24 14:16:39 | ERROR | stderr | time.sleep(0.1)
|
| 110 |
+
2024-12-24 14:16:39 | ERROR | stderr | KeyboardInterrupt
|
| 111 |
+
2024-12-24 14:16:39 | ERROR | stderr |
|
| 112 |
+
2024-12-24 14:16:39 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 113 |
+
2024-12-24 14:16:39 | ERROR | stderr |
|
| 114 |
+
2024-12-24 14:16:39 | ERROR | stderr | Traceback (most recent call last):
|
| 115 |
+
2024-12-24 14:16:39 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 116 |
+
2024-12-24 14:16:39 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 117 |
+
2024-12-24 14:16:39 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 118 |
+
2024-12-24 14:16:39 | ERROR | stderr | self.block_thread()
|
| 119 |
+
2024-12-24 14:16:39 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 120 |
+
2024-12-24 14:16:39 | ERROR | stderr | self.server.close()
|
| 121 |
+
2024-12-24 14:16:39 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 122 |
+
2024-12-24 14:16:39 | ERROR | stderr | self.thread.join(timeout=5)
|
| 123 |
+
2024-12-24 14:16:39 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 124 |
+
2024-12-24 14:16:39 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 125 |
+
2024-12-24 14:16:39 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 126 |
+
2024-12-24 14:16:39 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 127 |
+
2024-12-24 14:16:39 | ERROR | stderr | KeyboardInterrupt
|
| 128 |
+
2024-12-24 14:16:44 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 129 |
+
2024-12-24 14:16:44 | INFO | stdout |
|
| 130 |
+
2024-12-24 14:16:44 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 131 |
+
2024-12-24 14:17:37 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 132 |
+
2024-12-24 14:17:38 | ERROR | stderr | Traceback (most recent call last):
|
| 133 |
+
2024-12-24 14:17:38 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 134 |
+
2024-12-24 14:17:38 | ERROR | stderr | time.sleep(0.1)
|
| 135 |
+
2024-12-24 14:17:38 | ERROR | stderr | KeyboardInterrupt
|
| 136 |
+
2024-12-24 14:17:38 | ERROR | stderr |
|
| 137 |
+
2024-12-24 14:17:38 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 138 |
+
2024-12-24 14:17:38 | ERROR | stderr |
|
| 139 |
+
2024-12-24 14:17:38 | ERROR | stderr | Traceback (most recent call last):
|
| 140 |
+
2024-12-24 14:17:38 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 141 |
+
2024-12-24 14:17:38 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 142 |
+
2024-12-24 14:17:38 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 143 |
+
2024-12-24 14:17:38 | ERROR | stderr | self.block_thread()
|
| 144 |
+
2024-12-24 14:17:38 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 145 |
+
2024-12-24 14:17:38 | ERROR | stderr | self.server.close()
|
| 146 |
+
2024-12-24 14:17:38 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 147 |
+
2024-12-24 14:17:38 | ERROR | stderr | self.thread.join(timeout=5)
|
| 148 |
+
2024-12-24 14:17:38 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 149 |
+
2024-12-24 14:17:38 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 150 |
+
2024-12-24 14:17:38 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 151 |
+
2024-12-24 14:17:38 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 152 |
+
2024-12-24 14:17:38 | ERROR | stderr | KeyboardInterrupt
|
| 153 |
+
2024-12-24 14:17:39 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 154 |
+
2024-12-24 14:17:39 | ERROR | stderr | Traceback (most recent call last):
|
| 155 |
+
2024-12-24 14:17:39 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 156 |
+
2024-12-24 14:17:39 | ERROR | stderr | lock.acquire()
|
| 157 |
+
2024-12-24 14:17:39 | ERROR | stderr | KeyboardInterrupt:
|
| 158 |
+
2024-12-24 14:17:44 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 159 |
+
2024-12-24 14:17:44 | INFO | stdout |
|
| 160 |
+
2024-12-24 14:17:44 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 161 |
+
2024-12-24 14:17:54 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 162 |
+
2024-12-24 14:17:54 | ERROR | stderr | Traceback (most recent call last):
|
| 163 |
+
2024-12-24 14:17:54 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 164 |
+
2024-12-24 14:17:54 | ERROR | stderr | time.sleep(0.1)
|
| 165 |
+
2024-12-24 14:17:54 | ERROR | stderr | KeyboardInterrupt
|
| 166 |
+
2024-12-24 14:17:54 | ERROR | stderr |
|
| 167 |
+
2024-12-24 14:17:54 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 168 |
+
2024-12-24 14:17:54 | ERROR | stderr |
|
| 169 |
+
2024-12-24 14:17:54 | ERROR | stderr | Traceback (most recent call last):
|
| 170 |
+
2024-12-24 14:17:54 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 171 |
+
2024-12-24 14:17:54 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 172 |
+
2024-12-24 14:17:54 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 173 |
+
2024-12-24 14:17:54 | ERROR | stderr | self.block_thread()
|
| 174 |
+
2024-12-24 14:17:54 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 175 |
+
2024-12-24 14:17:54 | ERROR | stderr | self.server.close()
|
| 176 |
+
2024-12-24 14:17:54 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 177 |
+
2024-12-24 14:17:54 | ERROR | stderr | self.thread.join(timeout=5)
|
| 178 |
+
2024-12-24 14:17:54 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 179 |
+
2024-12-24 14:17:54 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 180 |
+
2024-12-24 14:17:54 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 181 |
+
2024-12-24 14:17:54 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 182 |
+
2024-12-24 14:17:54 | ERROR | stderr | KeyboardInterrupt
|
| 183 |
+
2024-12-24 14:17:54 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 184 |
+
2024-12-24 14:17:54 | ERROR | stderr | Traceback (most recent call last):
|
| 185 |
+
2024-12-24 14:17:54 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 186 |
+
2024-12-24 14:17:54 | ERROR | stderr | lock.acquire()
|
| 187 |
+
2024-12-24 14:17:54 | ERROR | stderr | KeyboardInterrupt:
|
| 188 |
+
2024-12-24 14:18:02 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 189 |
+
2024-12-24 14:18:02 | INFO | stdout |
|
| 190 |
+
2024-12-24 14:18:02 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 191 |
+
2024-12-24 14:19:08 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 192 |
+
2024-12-24 14:19:09 | ERROR | stderr | Traceback (most recent call last):
|
| 193 |
+
2024-12-24 14:19:09 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 194 |
+
2024-12-24 14:19:09 | ERROR | stderr | time.sleep(0.1)
|
| 195 |
+
2024-12-24 14:19:09 | ERROR | stderr | KeyboardInterrupt
|
| 196 |
+
2024-12-24 14:19:09 | ERROR | stderr |
|
| 197 |
+
2024-12-24 14:19:09 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 198 |
+
2024-12-24 14:19:09 | ERROR | stderr |
|
| 199 |
+
2024-12-24 14:19:09 | ERROR | stderr | Traceback (most recent call last):
|
| 200 |
+
2024-12-24 14:19:09 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 201 |
+
2024-12-24 14:19:09 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 202 |
+
2024-12-24 14:19:09 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 203 |
+
2024-12-24 14:19:09 | ERROR | stderr | self.block_thread()
|
| 204 |
+
2024-12-24 14:19:09 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 205 |
+
2024-12-24 14:19:09 | ERROR | stderr | self.server.close()
|
| 206 |
+
2024-12-24 14:19:09 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 207 |
+
2024-12-24 14:19:09 | ERROR | stderr | self.thread.join(timeout=5)
|
| 208 |
+
2024-12-24 14:19:09 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 209 |
+
2024-12-24 14:19:09 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 210 |
+
2024-12-24 14:19:09 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 211 |
+
2024-12-24 14:19:09 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 212 |
+
2024-12-24 14:19:09 | ERROR | stderr | KeyboardInterrupt
|
| 213 |
+
2024-12-24 14:19:09 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 214 |
+
2024-12-24 14:19:09 | ERROR | stderr | Traceback (most recent call last):
|
| 215 |
+
2024-12-24 14:19:09 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 216 |
+
2024-12-24 14:19:09 | ERROR | stderr | lock.acquire()
|
| 217 |
+
2024-12-24 14:19:09 | ERROR | stderr | KeyboardInterrupt:
|
| 218 |
+
2024-12-24 14:19:14 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 219 |
+
2024-12-24 14:19:14 | INFO | stdout |
|
| 220 |
+
2024-12-24 14:19:14 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 221 |
+
2024-12-24 14:19:25 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 222 |
+
2024-12-24 14:19:25 | ERROR | stderr | Traceback (most recent call last):
|
| 223 |
+
2024-12-24 14:19:25 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 224 |
+
2024-12-24 14:19:25 | ERROR | stderr | time.sleep(0.1)
|
| 225 |
+
2024-12-24 14:19:25 | ERROR | stderr | KeyboardInterrupt
|
| 226 |
+
2024-12-24 14:19:25 | ERROR | stderr |
|
| 227 |
+
2024-12-24 14:19:25 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 228 |
+
2024-12-24 14:19:25 | ERROR | stderr |
|
| 229 |
+
2024-12-24 14:19:25 | ERROR | stderr | Traceback (most recent call last):
|
| 230 |
+
2024-12-24 14:19:25 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 231 |
+
2024-12-24 14:19:25 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 232 |
+
2024-12-24 14:19:25 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 233 |
+
2024-12-24 14:19:25 | ERROR | stderr | self.block_thread()
|
| 234 |
+
2024-12-24 14:19:25 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 235 |
+
2024-12-24 14:19:25 | ERROR | stderr | self.server.close()
|
| 236 |
+
2024-12-24 14:19:25 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 237 |
+
2024-12-24 14:19:25 | ERROR | stderr | self.thread.join(timeout=5)
|
| 238 |
+
2024-12-24 14:19:25 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 239 |
+
2024-12-24 14:19:25 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 240 |
+
2024-12-24 14:19:25 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 241 |
+
2024-12-24 14:19:25 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 242 |
+
2024-12-24 14:19:25 | ERROR | stderr | KeyboardInterrupt
|
| 243 |
+
2024-12-24 14:19:26 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 244 |
+
2024-12-24 14:19:26 | ERROR | stderr | Traceback (most recent call last):
|
| 245 |
+
2024-12-24 14:19:26 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 246 |
+
2024-12-24 14:19:26 | ERROR | stderr | lock.acquire()
|
| 247 |
+
2024-12-24 14:19:26 | ERROR | stderr | KeyboardInterrupt:
|
| 248 |
+
2024-12-24 14:19:30 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 249 |
+
2024-12-24 14:19:30 | INFO | stdout |
|
| 250 |
+
2024-12-24 14:19:30 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 251 |
+
2024-12-24 14:19:53 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 252 |
+
2024-12-24 14:19:54 | ERROR | stderr | Traceback (most recent call last):
|
| 253 |
+
2024-12-24 14:19:54 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 254 |
+
2024-12-24 14:19:54 | ERROR | stderr | time.sleep(0.1)
|
| 255 |
+
2024-12-24 14:19:54 | ERROR | stderr | KeyboardInterrupt
|
| 256 |
+
2024-12-24 14:19:54 | ERROR | stderr |
|
| 257 |
+
2024-12-24 14:19:54 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 258 |
+
2024-12-24 14:19:54 | ERROR | stderr |
|
| 259 |
+
2024-12-24 14:19:54 | ERROR | stderr | Traceback (most recent call last):
|
| 260 |
+
2024-12-24 14:19:54 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 261 |
+
2024-12-24 14:19:54 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 262 |
+
2024-12-24 14:19:54 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 263 |
+
2024-12-24 14:19:54 | ERROR | stderr | self.block_thread()
|
| 264 |
+
2024-12-24 14:19:54 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 265 |
+
2024-12-24 14:19:54 | ERROR | stderr | self.server.close()
|
| 266 |
+
2024-12-24 14:19:54 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 267 |
+
2024-12-24 14:19:54 | ERROR | stderr | self.thread.join(timeout=5)
|
| 268 |
+
2024-12-24 14:19:54 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 269 |
+
2024-12-24 14:19:54 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 270 |
+
2024-12-24 14:19:54 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 271 |
+
2024-12-24 14:19:54 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 272 |
+
2024-12-24 14:19:54 | ERROR | stderr | KeyboardInterrupt
|
| 273 |
+
2024-12-24 14:19:54 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 274 |
+
2024-12-24 14:19:54 | ERROR | stderr | Traceback (most recent call last):
|
| 275 |
+
2024-12-24 14:19:54 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 276 |
+
2024-12-24 14:19:54 | ERROR | stderr | lock.acquire()
|
| 277 |
+
2024-12-24 14:19:54 | ERROR | stderr | KeyboardInterrupt:
|
| 278 |
+
2024-12-24 14:20:25 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 279 |
+
2024-12-24 14:20:25 | INFO | stdout |
|
| 280 |
+
2024-12-24 14:20:25 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 281 |
+
2024-12-24 14:25:19 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 282 |
+
2024-12-24 14:25:19 | ERROR | stderr | Traceback (most recent call last):
|
| 283 |
+
2024-12-24 14:25:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 284 |
+
2024-12-24 14:25:19 | ERROR | stderr | time.sleep(0.1)
|
| 285 |
+
2024-12-24 14:25:19 | ERROR | stderr | KeyboardInterrupt
|
| 286 |
+
2024-12-24 14:25:19 | ERROR | stderr |
|
| 287 |
+
2024-12-24 14:25:19 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 288 |
+
2024-12-24 14:25:19 | ERROR | stderr |
|
| 289 |
+
2024-12-24 14:25:19 | ERROR | stderr | Traceback (most recent call last):
|
| 290 |
+
2024-12-24 14:25:19 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 291 |
+
2024-12-24 14:25:19 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 292 |
+
2024-12-24 14:25:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 293 |
+
2024-12-24 14:25:19 | ERROR | stderr | self.block_thread()
|
| 294 |
+
2024-12-24 14:25:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 295 |
+
2024-12-24 14:25:19 | ERROR | stderr | self.server.close()
|
| 296 |
+
2024-12-24 14:25:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 297 |
+
2024-12-24 14:25:19 | ERROR | stderr | self.thread.join(timeout=5)
|
| 298 |
+
2024-12-24 14:25:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 299 |
+
2024-12-24 14:25:19 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 300 |
+
2024-12-24 14:25:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 301 |
+
2024-12-24 14:25:19 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 302 |
+
2024-12-24 14:25:19 | ERROR | stderr | KeyboardInterrupt
|
| 303 |
+
2024-12-24 14:28:13 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 304 |
+
2024-12-24 14:28:14 | INFO | stdout |
|
| 305 |
+
2024-12-24 14:28:14 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 306 |
+
2024-12-24 14:33:40 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 307 |
+
2024-12-24 14:33:40 | ERROR | stderr | Traceback (most recent call last):
|
| 308 |
+
2024-12-24 14:33:40 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 309 |
+
2024-12-24 14:33:40 | ERROR | stderr | time.sleep(0.1)
|
| 310 |
+
2024-12-24 14:33:40 | ERROR | stderr | KeyboardInterrupt
|
| 311 |
+
2024-12-24 14:33:40 | ERROR | stderr |
|
| 312 |
+
2024-12-24 14:33:40 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 313 |
+
2024-12-24 14:33:40 | ERROR | stderr |
|
| 314 |
+
2024-12-24 14:33:40 | ERROR | stderr | Traceback (most recent call last):
|
| 315 |
+
2024-12-24 14:33:40 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 316 |
+
2024-12-24 14:33:40 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 317 |
+
2024-12-24 14:33:40 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 318 |
+
2024-12-24 14:33:40 | ERROR | stderr | self.block_thread()
|
| 319 |
+
2024-12-24 14:33:40 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 320 |
+
2024-12-24 14:33:40 | ERROR | stderr | self.server.close()
|
| 321 |
+
2024-12-24 14:33:40 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 322 |
+
2024-12-24 14:33:40 | ERROR | stderr | self.thread.join(timeout=5)
|
| 323 |
+
2024-12-24 14:33:40 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 324 |
+
2024-12-24 14:33:40 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 325 |
+
2024-12-24 14:33:40 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 326 |
+
2024-12-24 14:33:40 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 327 |
+
2024-12-24 14:33:40 | ERROR | stderr | KeyboardInterrupt
|
| 328 |
+
2024-12-24 14:33:45 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 329 |
+
2024-12-24 14:33:45 | INFO | stdout |
|
| 330 |
+
2024-12-24 14:33:45 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 331 |
+
2024-12-24 14:34:55 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 332 |
+
2024-12-24 14:34:56 | ERROR | stderr | Traceback (most recent call last):
|
| 333 |
+
2024-12-24 14:34:56 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 334 |
+
2024-12-24 14:34:56 | ERROR | stderr | time.sleep(0.1)
|
| 335 |
+
2024-12-24 14:34:56 | ERROR | stderr | KeyboardInterrupt
|
| 336 |
+
2024-12-24 14:34:56 | ERROR | stderr |
|
| 337 |
+
2024-12-24 14:34:56 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 338 |
+
2024-12-24 14:34:56 | ERROR | stderr |
|
| 339 |
+
2024-12-24 14:34:56 | ERROR | stderr | Traceback (most recent call last):
|
| 340 |
+
2024-12-24 14:34:56 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 341 |
+
2024-12-24 14:34:56 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 342 |
+
2024-12-24 14:34:56 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 343 |
+
2024-12-24 14:34:56 | ERROR | stderr | self.block_thread()
|
| 344 |
+
2024-12-24 14:34:56 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 345 |
+
2024-12-24 14:34:56 | ERROR | stderr | self.server.close()
|
| 346 |
+
2024-12-24 14:34:56 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 347 |
+
2024-12-24 14:34:56 | ERROR | stderr | self.thread.join(timeout=5)
|
| 348 |
+
2024-12-24 14:34:56 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 349 |
+
2024-12-24 14:34:56 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 350 |
+
2024-12-24 14:34:56 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 351 |
+
2024-12-24 14:34:56 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 352 |
+
2024-12-24 14:34:56 | ERROR | stderr | KeyboardInterrupt
|
| 353 |
+
2024-12-24 14:34:56 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 354 |
+
2024-12-24 14:34:56 | ERROR | stderr | Traceback (most recent call last):
|
| 355 |
+
2024-12-24 14:34:56 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 356 |
+
2024-12-24 14:34:56 | ERROR | stderr | lock.acquire()
|
| 357 |
+
2024-12-24 14:34:56 | ERROR | stderr | KeyboardInterrupt:
|
| 358 |
+
2024-12-24 14:35:01 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 359 |
+
2024-12-24 14:35:01 | INFO | stdout |
|
| 360 |
+
2024-12-24 14:35:01 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 361 |
+
2024-12-24 14:35:20 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 362 |
+
2024-12-24 14:35:20 | ERROR | stderr | Traceback (most recent call last):
|
| 363 |
+
2024-12-24 14:35:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 364 |
+
2024-12-24 14:35:20 | ERROR | stderr | time.sleep(0.1)
|
| 365 |
+
2024-12-24 14:35:20 | ERROR | stderr | KeyboardInterrupt
|
| 366 |
+
2024-12-24 14:35:20 | ERROR | stderr |
|
| 367 |
+
2024-12-24 14:35:20 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 368 |
+
2024-12-24 14:35:20 | ERROR | stderr |
|
| 369 |
+
2024-12-24 14:35:20 | ERROR | stderr | Traceback (most recent call last):
|
| 370 |
+
2024-12-24 14:35:20 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 371 |
+
2024-12-24 14:35:20 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 372 |
+
2024-12-24 14:35:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 373 |
+
2024-12-24 14:35:20 | ERROR | stderr | self.block_thread()
|
| 374 |
+
2024-12-24 14:35:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 375 |
+
2024-12-24 14:35:20 | ERROR | stderr | self.server.close()
|
| 376 |
+
2024-12-24 14:35:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 377 |
+
2024-12-24 14:35:20 | ERROR | stderr | self.thread.join(timeout=5)
|
| 378 |
+
2024-12-24 14:35:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 379 |
+
2024-12-24 14:35:20 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 380 |
+
2024-12-24 14:35:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 381 |
+
2024-12-24 14:35:20 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 382 |
+
2024-12-24 14:35:20 | ERROR | stderr | KeyboardInterrupt
|
| 383 |
+
2024-12-24 14:35:20 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 384 |
+
2024-12-24 14:35:20 | ERROR | stderr | Traceback (most recent call last):
|
| 385 |
+
2024-12-24 14:35:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 386 |
+
2024-12-24 14:35:20 | ERROR | stderr | lock.acquire()
|
| 387 |
+
2024-12-24 14:35:20 | ERROR | stderr | KeyboardInterrupt:
|
| 388 |
+
2024-12-24 14:35:26 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 389 |
+
2024-12-24 14:35:26 | INFO | stdout |
|
| 390 |
+
2024-12-24 14:35:26 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 391 |
+
2024-12-24 14:35:34 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 392 |
+
2024-12-24 14:35:34 | ERROR | stderr | Traceback (most recent call last):
|
| 393 |
+
2024-12-24 14:35:34 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 394 |
+
2024-12-24 14:35:34 | ERROR | stderr | time.sleep(0.1)
|
| 395 |
+
2024-12-24 14:35:34 | ERROR | stderr | KeyboardInterrupt
|
| 396 |
+
2024-12-24 14:35:34 | ERROR | stderr |
|
| 397 |
+
2024-12-24 14:35:34 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 398 |
+
2024-12-24 14:35:34 | ERROR | stderr |
|
| 399 |
+
2024-12-24 14:35:34 | ERROR | stderr | Traceback (most recent call last):
|
| 400 |
+
2024-12-24 14:35:34 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 401 |
+
2024-12-24 14:35:34 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 402 |
+
2024-12-24 14:35:34 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 403 |
+
2024-12-24 14:35:34 | ERROR | stderr | self.block_thread()
|
| 404 |
+
2024-12-24 14:35:34 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 405 |
+
2024-12-24 14:35:34 | ERROR | stderr | self.server.close()
|
| 406 |
+
2024-12-24 14:35:34 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 407 |
+
2024-12-24 14:35:34 | ERROR | stderr | self.thread.join(timeout=5)
|
| 408 |
+
2024-12-24 14:35:34 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 409 |
+
2024-12-24 14:35:34 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 410 |
+
2024-12-24 14:35:34 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 411 |
+
2024-12-24 14:35:34 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 412 |
+
2024-12-24 14:35:34 | ERROR | stderr | KeyboardInterrupt
|
| 413 |
+
2024-12-24 14:35:34 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 414 |
+
2024-12-24 14:35:34 | ERROR | stderr | Traceback (most recent call last):
|
| 415 |
+
2024-12-24 14:35:34 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 416 |
+
2024-12-24 14:35:34 | ERROR | stderr | lock.acquire()
|
| 417 |
+
2024-12-24 14:35:34 | ERROR | stderr | KeyboardInterrupt:
|
| 418 |
+
2024-12-24 14:35:39 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 419 |
+
2024-12-24 14:35:39 | INFO | stdout |
|
| 420 |
+
2024-12-24 14:35:39 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 421 |
+
2024-12-24 14:36:28 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 422 |
+
2024-12-24 14:36:28 | ERROR | stderr | Traceback (most recent call last):
|
| 423 |
+
2024-12-24 14:36:28 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 424 |
+
2024-12-24 14:36:28 | ERROR | stderr | time.sleep(0.1)
|
| 425 |
+
2024-12-24 14:36:28 | ERROR | stderr | KeyboardInterrupt
|
| 426 |
+
2024-12-24 14:36:28 | ERROR | stderr |
|
| 427 |
+
2024-12-24 14:36:28 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 428 |
+
2024-12-24 14:36:28 | ERROR | stderr |
|
| 429 |
+
2024-12-24 14:36:28 | ERROR | stderr | Traceback (most recent call last):
|
| 430 |
+
2024-12-24 14:36:28 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 431 |
+
2024-12-24 14:36:28 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 432 |
+
2024-12-24 14:36:28 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 433 |
+
2024-12-24 14:36:28 | ERROR | stderr | self.block_thread()
|
| 434 |
+
2024-12-24 14:36:28 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 435 |
+
2024-12-24 14:36:28 | ERROR | stderr | self.server.close()
|
| 436 |
+
2024-12-24 14:36:28 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 437 |
+
2024-12-24 14:36:28 | ERROR | stderr | self.thread.join(timeout=5)
|
| 438 |
+
2024-12-24 14:36:28 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 439 |
+
2024-12-24 14:36:28 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 440 |
+
2024-12-24 14:36:28 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 441 |
+
2024-12-24 14:36:28 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 442 |
+
2024-12-24 14:36:28 | ERROR | stderr | KeyboardInterrupt
|
| 443 |
+
2024-12-24 14:36:29 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 444 |
+
2024-12-24 14:36:29 | ERROR | stderr | Traceback (most recent call last):
|
| 445 |
+
2024-12-24 14:36:29 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 446 |
+
2024-12-24 14:36:29 | ERROR | stderr | lock.acquire()
|
| 447 |
+
2024-12-24 14:36:29 | ERROR | stderr | KeyboardInterrupt:
|
| 448 |
+
2024-12-24 14:36:33 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 449 |
+
2024-12-24 14:36:33 | INFO | stdout |
|
| 450 |
+
2024-12-24 14:36:33 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 451 |
+
2024-12-24 14:36:41 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 452 |
+
2024-12-24 14:36:41 | ERROR | stderr | Traceback (most recent call last):
|
| 453 |
+
2024-12-24 14:36:41 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 454 |
+
2024-12-24 14:36:41 | ERROR | stderr | time.sleep(0.1)
|
| 455 |
+
2024-12-24 14:36:41 | ERROR | stderr | KeyboardInterrupt
|
| 456 |
+
2024-12-24 14:36:41 | ERROR | stderr |
|
| 457 |
+
2024-12-24 14:36:41 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 458 |
+
2024-12-24 14:36:41 | ERROR | stderr |
|
| 459 |
+
2024-12-24 14:36:41 | ERROR | stderr | Traceback (most recent call last):
|
| 460 |
+
2024-12-24 14:36:41 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 461 |
+
2024-12-24 14:36:41 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 462 |
+
2024-12-24 14:36:41 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 463 |
+
2024-12-24 14:36:41 | ERROR | stderr | self.block_thread()
|
| 464 |
+
2024-12-24 14:36:41 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 465 |
+
2024-12-24 14:36:41 | ERROR | stderr | self.server.close()
|
| 466 |
+
2024-12-24 14:36:41 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 467 |
+
2024-12-24 14:36:41 | ERROR | stderr | self.thread.join(timeout=5)
|
| 468 |
+
2024-12-24 14:36:41 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 469 |
+
2024-12-24 14:36:41 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 470 |
+
2024-12-24 14:36:41 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 471 |
+
2024-12-24 14:36:41 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 472 |
+
2024-12-24 14:36:41 | ERROR | stderr | KeyboardInterrupt
|
| 473 |
+
2024-12-24 14:36:41 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 474 |
+
2024-12-24 14:36:41 | ERROR | stderr | Traceback (most recent call last):
|
| 475 |
+
2024-12-24 14:36:41 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 476 |
+
2024-12-24 14:36:41 | ERROR | stderr | lock.acquire()
|
| 477 |
+
2024-12-24 14:36:41 | ERROR | stderr | KeyboardInterrupt:
|
| 478 |
+
2024-12-24 14:37:47 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 479 |
+
2024-12-24 14:37:47 | INFO | stdout |
|
| 480 |
+
2024-12-24 14:37:47 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 481 |
+
2024-12-24 14:40:00 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 482 |
+
2024-12-24 14:40:00 | ERROR | stderr | Traceback (most recent call last):
|
| 483 |
+
2024-12-24 14:40:00 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 484 |
+
2024-12-24 14:40:00 | ERROR | stderr | time.sleep(0.1)
|
| 485 |
+
2024-12-24 14:40:00 | ERROR | stderr | KeyboardInterrupt
|
| 486 |
+
2024-12-24 14:40:00 | ERROR | stderr |
|
| 487 |
+
2024-12-24 14:40:00 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 488 |
+
2024-12-24 14:40:00 | ERROR | stderr |
|
| 489 |
+
2024-12-24 14:40:00 | ERROR | stderr | Traceback (most recent call last):
|
| 490 |
+
2024-12-24 14:40:00 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 491 |
+
2024-12-24 14:40:00 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 492 |
+
2024-12-24 14:40:00 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 493 |
+
2024-12-24 14:40:00 | ERROR | stderr | self.block_thread()
|
| 494 |
+
2024-12-24 14:40:00 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 495 |
+
2024-12-24 14:40:00 | ERROR | stderr | self.server.close()
|
| 496 |
+
2024-12-24 14:40:00 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 497 |
+
2024-12-24 14:40:00 | ERROR | stderr | self.thread.join(timeout=5)
|
| 498 |
+
2024-12-24 14:40:00 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 499 |
+
2024-12-24 14:40:00 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 500 |
+
2024-12-24 14:40:00 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 501 |
+
2024-12-24 14:40:00 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 502 |
+
2024-12-24 14:40:00 | ERROR | stderr | KeyboardInterrupt
|
| 503 |
+
2024-12-24 14:40:00 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 504 |
+
2024-12-24 14:40:00 | ERROR | stderr | Traceback (most recent call last):
|
| 505 |
+
2024-12-24 14:40:00 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 506 |
+
2024-12-24 14:40:00 | ERROR | stderr | lock.acquire()
|
| 507 |
+
2024-12-24 14:40:00 | ERROR | stderr | KeyboardInterrupt:
|
| 508 |
+
2024-12-24 14:40:05 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 509 |
+
2024-12-24 14:40:05 | INFO | stdout |
|
| 510 |
+
2024-12-24 14:40:05 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 511 |
+
2024-12-24 14:40:16 | INFO | gradio_web_server_image_generation_multi | bothbad_vote (named). ip: 127.0.0.1
|
| 512 |
+
2024-12-24 14:40:16 | ERROR | stderr | Traceback (most recent call last):
|
| 513 |
+
2024-12-24 14:40:16 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/queueing.py", line 625, in process_events
|
| 514 |
+
2024-12-24 14:40:16 | ERROR | stderr | response = await route_utils.call_process_api(
|
| 515 |
+
2024-12-24 14:40:16 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/route_utils.py", line 322, in call_process_api
|
| 516 |
+
2024-12-24 14:40:16 | ERROR | stderr | output = await app.get_blocks().process_api(
|
| 517 |
+
2024-12-24 14:40:16 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2047, in process_api
|
| 518 |
+
2024-12-24 14:40:16 | ERROR | stderr | result = await self.call_function(
|
| 519 |
+
2024-12-24 14:40:16 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 1594, in call_function
|
| 520 |
+
2024-12-24 14:40:16 | ERROR | stderr | prediction = await anyio.to_thread.run_sync( # type: ignore
|
| 521 |
+
2024-12-24 14:40:16 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/anyio/to_thread.py", line 56, in run_sync
|
| 522 |
+
2024-12-24 14:40:16 | ERROR | stderr | return await get_async_backend().run_sync_in_worker_thread(
|
| 523 |
+
2024-12-24 14:40:16 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 2505, in run_sync_in_worker_thread
|
| 524 |
+
2024-12-24 14:40:16 | ERROR | stderr | return await future
|
| 525 |
+
2024-12-24 14:40:16 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 1005, in run
|
| 526 |
+
2024-12-24 14:40:16 | ERROR | stderr | result = context.run(func, *args)
|
| 527 |
+
2024-12-24 14:40:16 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/utils.py", line 869, in wrapper
|
| 528 |
+
2024-12-24 14:40:16 | ERROR | stderr | response = f(*args, **kwargs)
|
| 529 |
+
2024-12-24 14:40:16 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/serve/vote_utils.py", line 65, in bothbad_vote_last_response_igm
|
| 530 |
+
2024-12-24 14:40:16 | ERROR | stderr | vote_last_response_igm(
|
| 531 |
+
2024-12-24 14:40:16 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/serve/vote_utils.py", line 27, in vote_last_response_igm
|
| 532 |
+
2024-12-24 14:40:16 | ERROR | stderr | "models": [x.name for x in states],
|
| 533 |
+
2024-12-24 14:40:16 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/serve/vote_utils.py", line 27, in <listcomp>
|
| 534 |
+
2024-12-24 14:40:16 | ERROR | stderr | "models": [x.name for x in states],
|
| 535 |
+
2024-12-24 14:40:16 | ERROR | stderr | AttributeError: 'NoneType' object has no attribute 'name'
|
| 536 |
+
2024-12-24 14:42:01 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 537 |
+
2024-12-24 14:42:01 | ERROR | stderr | Traceback (most recent call last):
|
| 538 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/queueing.py", line 625, in process_events
|
| 539 |
+
2024-12-24 14:42:01 | ERROR | stderr | response = await route_utils.call_process_api(
|
| 540 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/route_utils.py", line 322, in call_process_api
|
| 541 |
+
2024-12-24 14:42:01 | ERROR | stderr | output = await app.get_blocks().process_api(
|
| 542 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2047, in process_api
|
| 543 |
+
2024-12-24 14:42:01 | ERROR | stderr | result = await self.call_function(
|
| 544 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 1594, in call_function
|
| 545 |
+
2024-12-24 14:42:01 | ERROR | stderr | prediction = await anyio.to_thread.run_sync( # type: ignore
|
| 546 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/anyio/to_thread.py", line 56, in run_sync
|
| 547 |
+
2024-12-24 14:42:01 | ERROR | stderr | return await get_async_backend().run_sync_in_worker_thread(
|
| 548 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 2505, in run_sync_in_worker_thread
|
| 549 |
+
2024-12-24 14:42:01 | ERROR | stderr | return await future
|
| 550 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 1005, in run
|
| 551 |
+
2024-12-24 14:42:01 | ERROR | stderr | result = context.run(func, *args)
|
| 552 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/utils.py", line 869, in wrapper
|
| 553 |
+
2024-12-24 14:42:01 | ERROR | stderr | response = f(*args, **kwargs)
|
| 554 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/serve/vote_utils.py", line 41, in leftvote_last_response_igm
|
| 555 |
+
2024-12-24 14:42:01 | ERROR | stderr | vote_last_response_igm(
|
| 556 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/serve/vote_utils.py", line 32, in vote_last_response_igm
|
| 557 |
+
2024-12-24 14:42:01 | ERROR | stderr | append_json_item_on_log_server(data, get_conv_log_filename())
|
| 558 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/serve/utils.py", line 206, in append_json_item_on_log_server
|
| 559 |
+
2024-12-24 14:42:01 | ERROR | stderr | response = requests.post(url, data={'json_str': json_item, 'file_name': log_file})
|
| 560 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/requests/api.py", line 115, in post
|
| 561 |
+
2024-12-24 14:42:01 | ERROR | stderr | return request("post", url, data=data, json=json, **kwargs)
|
| 562 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/requests/api.py", line 59, in request
|
| 563 |
+
2024-12-24 14:42:01 | ERROR | stderr | return session.request(method=method, url=url, **kwargs)
|
| 564 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/requests/sessions.py", line 575, in request
|
| 565 |
+
2024-12-24 14:42:01 | ERROR | stderr | prep = self.prepare_request(req)
|
| 566 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/requests/sessions.py", line 484, in prepare_request
|
| 567 |
+
2024-12-24 14:42:01 | ERROR | stderr | p.prepare(
|
| 568 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/requests/models.py", line 367, in prepare
|
| 569 |
+
2024-12-24 14:42:01 | ERROR | stderr | self.prepare_url(url, params)
|
| 570 |
+
2024-12-24 14:42:01 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/requests/models.py", line 438, in prepare_url
|
| 571 |
+
2024-12-24 14:42:01 | ERROR | stderr | raise MissingSchema(
|
| 572 |
+
2024-12-24 14:42:01 | ERROR | stderr | requests.exceptions.MissingSchema: Invalid URL '/logs/append_json': No scheme supplied. Perhaps you meant https:///logs/append_json?
|
| 573 |
+
2024-12-24 15:03:08 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 574 |
+
2024-12-24 15:03:08 | ERROR | stderr | Traceback (most recent call last):
|
| 575 |
+
2024-12-24 15:03:08 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 576 |
+
2024-12-24 15:03:08 | ERROR | stderr | time.sleep(0.1)
|
| 577 |
+
2024-12-24 15:03:08 | ERROR | stderr | KeyboardInterrupt
|
| 578 |
+
2024-12-24 15:03:08 | ERROR | stderr |
|
| 579 |
+
2024-12-24 15:03:08 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 580 |
+
2024-12-24 15:03:08 | ERROR | stderr |
|
| 581 |
+
2024-12-24 15:03:08 | ERROR | stderr | Traceback (most recent call last):
|
| 582 |
+
2024-12-24 15:03:08 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 583 |
+
2024-12-24 15:03:08 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 584 |
+
2024-12-24 15:03:08 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 585 |
+
2024-12-24 15:03:08 | ERROR | stderr | self.block_thread()
|
| 586 |
+
2024-12-24 15:03:08 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 587 |
+
2024-12-24 15:03:08 | ERROR | stderr | self.server.close()
|
| 588 |
+
2024-12-24 15:03:08 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 589 |
+
2024-12-24 15:03:08 | ERROR | stderr | self.thread.join(timeout=5)
|
| 590 |
+
2024-12-24 15:03:08 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 591 |
+
2024-12-24 15:03:08 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 592 |
+
2024-12-24 15:03:08 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 593 |
+
2024-12-24 15:03:08 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 594 |
+
2024-12-24 15:03:08 | ERROR | stderr | KeyboardInterrupt
|
| 595 |
+
2024-12-24 15:03:13 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 596 |
+
2024-12-24 15:03:13 | INFO | stdout |
|
| 597 |
+
2024-12-24 15:03:13 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 598 |
+
2024-12-24 15:04:38 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 599 |
+
2024-12-24 15:05:17 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 600 |
+
2024-12-24 15:05:17 | ERROR | stderr | Traceback (most recent call last):
|
| 601 |
+
2024-12-24 15:05:17 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 602 |
+
2024-12-24 15:05:17 | ERROR | stderr | time.sleep(0.1)
|
| 603 |
+
2024-12-24 15:05:17 | ERROR | stderr | KeyboardInterrupt
|
| 604 |
+
2024-12-24 15:05:17 | ERROR | stderr |
|
| 605 |
+
2024-12-24 15:05:17 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 606 |
+
2024-12-24 15:05:17 | ERROR | stderr |
|
| 607 |
+
2024-12-24 15:05:17 | ERROR | stderr | Traceback (most recent call last):
|
| 608 |
+
2024-12-24 15:05:17 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 609 |
+
2024-12-24 15:05:17 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 610 |
+
2024-12-24 15:05:17 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 611 |
+
2024-12-24 15:05:17 | ERROR | stderr | self.block_thread()
|
| 612 |
+
2024-12-24 15:05:17 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 613 |
+
2024-12-24 15:05:17 | ERROR | stderr | self.server.close()
|
| 614 |
+
2024-12-24 15:05:17 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 615 |
+
2024-12-24 15:05:17 | ERROR | stderr | self.thread.join(timeout=5)
|
| 616 |
+
2024-12-24 15:05:17 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 617 |
+
2024-12-24 15:05:17 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 618 |
+
2024-12-24 15:05:17 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 619 |
+
2024-12-24 15:05:17 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 620 |
+
2024-12-24 15:05:17 | ERROR | stderr | KeyboardInterrupt
|
| 621 |
+
2024-12-24 15:05:17 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 622 |
+
2024-12-24 15:05:17 | ERROR | stderr | Traceback (most recent call last):
|
| 623 |
+
2024-12-24 15:05:17 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 624 |
+
2024-12-24 15:05:17 | ERROR | stderr | lock.acquire()
|
| 625 |
+
2024-12-24 15:05:17 | ERROR | stderr | KeyboardInterrupt:
|
| 626 |
+
2024-12-24 15:07:04 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 627 |
+
2024-12-24 15:07:04 | INFO | stdout |
|
| 628 |
+
2024-12-24 15:07:04 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 629 |
+
2024-12-24 15:07:09 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 630 |
+
2024-12-24 15:08:19 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 631 |
+
2024-12-24 15:08:19 | ERROR | stderr | Traceback (most recent call last):
|
| 632 |
+
2024-12-24 15:08:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 633 |
+
2024-12-24 15:08:19 | ERROR | stderr | time.sleep(0.1)
|
| 634 |
+
2024-12-24 15:08:19 | ERROR | stderr | KeyboardInterrupt
|
| 635 |
+
2024-12-24 15:08:19 | ERROR | stderr |
|
| 636 |
+
2024-12-24 15:08:19 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 637 |
+
2024-12-24 15:08:19 | ERROR | stderr |
|
| 638 |
+
2024-12-24 15:08:19 | ERROR | stderr | Traceback (most recent call last):
|
| 639 |
+
2024-12-24 15:08:19 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 640 |
+
2024-12-24 15:08:19 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 641 |
+
2024-12-24 15:08:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 642 |
+
2024-12-24 15:08:19 | ERROR | stderr | self.block_thread()
|
| 643 |
+
2024-12-24 15:08:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 644 |
+
2024-12-24 15:08:19 | ERROR | stderr | self.server.close()
|
| 645 |
+
2024-12-24 15:08:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 646 |
+
2024-12-24 15:08:19 | ERROR | stderr | self.thread.join(timeout=5)
|
| 647 |
+
2024-12-24 15:08:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 648 |
+
2024-12-24 15:08:19 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 649 |
+
2024-12-24 15:08:19 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 650 |
+
2024-12-24 15:08:19 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 651 |
+
2024-12-24 15:08:19 | ERROR | stderr | KeyboardInterrupt
|
| 652 |
+
2024-12-24 15:08:20 | ERROR | stderr | Exception ignored in: <module 'threading' from '/opt/anaconda3/envs/tiger/lib/python3.10/threading.py'>
|
| 653 |
+
2024-12-24 15:08:20 | ERROR | stderr | Traceback (most recent call last):
|
| 654 |
+
2024-12-24 15:08:20 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1567, in _shutdown
|
| 655 |
+
2024-12-24 15:08:20 | ERROR | stderr | lock.acquire()
|
| 656 |
+
2024-12-24 15:08:20 | ERROR | stderr | KeyboardInterrupt:
|
| 657 |
+
2024-12-24 15:12:22 | INFO | stdout | {'t2i_generation': PosixPath('arena_elo/results/latest/elo_results_t2i_generation.pkl'), 'video_generation': PosixPath('arena_elo/results/latest/elo_results_video_generation.pkl'), 'image_editing': PosixPath('arena_elo/results/latest/elo_results_image_editing.pkl')}
|
| 658 |
+
2024-12-24 15:12:22 | INFO | stdout | {'t2i_generation': PosixPath('arena_elo/results/latest/t2i_generation_leaderboard.csv'), 'video_generation': PosixPath('arena_elo/results/latest/video_generation_leaderboard.csv'), 'image_editing': PosixPath('arena_elo/results/latest/image_editing_leaderboard.csv')}
|
| 659 |
+
2024-12-24 15:15:46 | ERROR | stderr | Traceback (most recent call last):
|
| 660 |
+
2024-12-24 15:15:46 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 79, in <module>
|
| 661 |
+
2024-12-24 15:15:46 | ERROR | stderr | input()
|
| 662 |
+
2024-12-24 15:15:46 | ERROR | stderr | KeyboardInterrupt
|
| 663 |
+
2024-12-24 15:26:57 | INFO | stdout | arena_elo/results/latest/t2i_generation_leaderboard.csv
|
| 664 |
+
2024-12-24 15:26:57 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 665 |
+
2024-12-24 15:26:57 | INFO | stdout |
|
| 666 |
+
2024-12-24 15:26:57 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 667 |
+
2024-12-24 15:56:17 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 668 |
+
2024-12-24 15:56:17 | ERROR | stderr | Traceback (most recent call last):
|
| 669 |
+
2024-12-24 15:56:17 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 670 |
+
2024-12-24 15:56:17 | ERROR | stderr | time.sleep(0.1)
|
| 671 |
+
2024-12-24 15:56:17 | ERROR | stderr | KeyboardInterrupt
|
| 672 |
+
2024-12-24 15:56:17 | ERROR | stderr |
|
| 673 |
+
2024-12-24 15:56:17 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 674 |
+
2024-12-24 15:56:17 | ERROR | stderr |
|
| 675 |
+
2024-12-24 15:56:17 | ERROR | stderr | Traceback (most recent call last):
|
| 676 |
+
2024-12-24 15:56:17 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 677 |
+
2024-12-24 15:56:17 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 678 |
+
2024-12-24 15:56:17 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 679 |
+
2024-12-24 15:56:17 | ERROR | stderr | self.block_thread()
|
| 680 |
+
2024-12-24 15:56:17 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 681 |
+
2024-12-24 15:56:17 | ERROR | stderr | self.server.close()
|
| 682 |
+
2024-12-24 15:56:17 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 683 |
+
2024-12-24 15:56:17 | ERROR | stderr | self.thread.join(timeout=5)
|
| 684 |
+
2024-12-24 15:56:17 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 685 |
+
2024-12-24 15:56:17 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 686 |
+
2024-12-24 15:56:17 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 687 |
+
2024-12-24 15:56:17 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 688 |
+
2024-12-24 15:56:17 | ERROR | stderr | KeyboardInterrupt
|
| 689 |
+
2024-12-24 16:52:26 | INFO | stdout | arena_elo/results/latest/t2i_generation_leaderboard.csv
|
| 690 |
+
2024-12-24 16:52:27 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 691 |
+
2024-12-24 16:52:27 | INFO | stdout |
|
| 692 |
+
2024-12-24 16:52:27 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 693 |
+
2024-12-24 16:53:47 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 694 |
+
2024-12-24 16:54:12 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 695 |
+
2024-12-24 16:54:24 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 696 |
+
2024-12-24 16:54:36 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 697 |
+
2024-12-24 16:54:55 | INFO | gradio_web_server_image_generation_multi | bothbad_vote (named). ip: 127.0.0.1
|
| 698 |
+
2024-12-24 16:55:03 | INFO | gradio_web_server_image_generation_multi | bothbad_vote (named). ip: 127.0.0.1
|
| 699 |
+
2024-12-24 16:55:11 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 700 |
+
2024-12-24 16:55:45 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 701 |
+
2024-12-24 16:55:46 | ERROR | stderr | Traceback (most recent call last):
|
| 702 |
+
2024-12-24 16:55:46 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 703 |
+
2024-12-24 16:55:46 | ERROR | stderr | time.sleep(0.1)
|
| 704 |
+
2024-12-24 16:55:46 | ERROR | stderr | KeyboardInterrupt
|
| 705 |
+
2024-12-24 16:55:46 | ERROR | stderr |
|
| 706 |
+
2024-12-24 16:55:46 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 707 |
+
2024-12-24 16:55:46 | ERROR | stderr |
|
| 708 |
+
2024-12-24 16:55:46 | ERROR | stderr | Traceback (most recent call last):
|
| 709 |
+
2024-12-24 16:55:46 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 710 |
+
2024-12-24 16:55:46 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 711 |
+
2024-12-24 16:55:46 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 712 |
+
2024-12-24 16:55:46 | ERROR | stderr | self.block_thread()
|
| 713 |
+
2024-12-24 16:55:46 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 714 |
+
2024-12-24 16:55:46 | ERROR | stderr | self.server.close()
|
| 715 |
+
2024-12-24 16:55:46 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 716 |
+
2024-12-24 16:55:46 | ERROR | stderr | self.thread.join(timeout=5)
|
| 717 |
+
2024-12-24 16:55:46 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 718 |
+
2024-12-24 16:55:46 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 719 |
+
2024-12-24 16:55:46 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 720 |
+
2024-12-24 16:55:46 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 721 |
+
2024-12-24 16:55:46 | ERROR | stderr | KeyboardInterrupt
|
| 722 |
+
2024-12-24 17:57:24 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 723 |
+
2024-12-24 17:57:24 | INFO | stdout |
|
| 724 |
+
2024-12-24 17:57:24 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 725 |
+
2024-12-24 17:57:39 | INFO | gradio_web_server_image_generation_multi | bothbad_vote (named). ip: 127.0.0.1
|
| 726 |
+
2024-12-24 17:57:55 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 727 |
+
2024-12-24 17:58:04 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 728 |
+
2024-12-24 17:58:13 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 729 |
+
2024-12-24 17:58:23 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 730 |
+
2024-12-24 17:58:34 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 731 |
+
2024-12-24 17:58:46 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 732 |
+
2024-12-24 17:58:51 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 733 |
+
2024-12-24 17:58:56 | INFO | gradio_web_server_image_generation_multi | bothbad_vote (named). ip: 127.0.0.1
|
| 734 |
+
2024-12-24 17:59:11 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 735 |
+
2024-12-24 17:59:26 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 736 |
+
2024-12-24 17:59:40 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 737 |
+
2024-12-24 17:59:44 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 738 |
+
2024-12-24 17:59:49 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 739 |
+
2024-12-24 18:00:05 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 740 |
+
2024-12-24 18:00:12 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 741 |
+
2024-12-24 18:00:19 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 742 |
+
2024-12-24 18:00:25 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 743 |
+
2024-12-24 18:00:32 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 744 |
+
2024-12-24 18:00:46 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 745 |
+
2024-12-24 18:00:47 | ERROR | stderr | Traceback (most recent call last):
|
| 746 |
+
2024-12-24 18:00:47 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 747 |
+
2024-12-24 18:00:47 | ERROR | stderr | time.sleep(0.1)
|
| 748 |
+
2024-12-24 18:00:47 | ERROR | stderr | KeyboardInterrupt
|
| 749 |
+
2024-12-24 18:00:47 | ERROR | stderr |
|
| 750 |
+
2024-12-24 18:00:47 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 751 |
+
2024-12-24 18:00:47 | ERROR | stderr |
|
| 752 |
+
2024-12-24 18:00:47 | ERROR | stderr | Traceback (most recent call last):
|
| 753 |
+
2024-12-24 18:00:47 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 78, in <module>
|
| 754 |
+
2024-12-24 18:00:47 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 755 |
+
2024-12-24 18:00:47 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 756 |
+
2024-12-24 18:00:47 | ERROR | stderr | self.block_thread()
|
| 757 |
+
2024-12-24 18:00:47 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 758 |
+
2024-12-24 18:00:47 | ERROR | stderr | self.server.close()
|
| 759 |
+
2024-12-24 18:00:47 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 760 |
+
2024-12-24 18:00:47 | ERROR | stderr | self.thread.join(timeout=5)
|
| 761 |
+
2024-12-24 18:00:47 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 762 |
+
2024-12-24 18:00:47 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 763 |
+
2024-12-24 18:00:47 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 764 |
+
2024-12-24 18:00:47 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 765 |
+
2024-12-24 18:00:47 | ERROR | stderr | KeyboardInterrupt
|
| 766 |
+
2024-12-25 10:12:09 | INFO | stdout | * Running on local URL: http://127.0.0.1:7860
|
| 767 |
+
2024-12-25 10:12:09 | INFO | stdout |
|
| 768 |
+
2024-12-25 10:12:09 | INFO | stdout | To create a public link, set `share=True` in `launch()`.
|
| 769 |
+
2024-12-25 10:12:41 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 770 |
+
2024-12-25 10:12:54 | INFO | gradio_web_server_image_generation_multi | bothbad_vote (named). ip: 127.0.0.1
|
| 771 |
+
2024-12-25 10:13:17 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 772 |
+
2024-12-25 10:13:24 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 773 |
+
2024-12-25 10:13:30 | INFO | gradio_web_server_image_generation_multi | leftvote (named). ip: 127.0.0.1
|
| 774 |
+
2024-12-25 10:18:33 | INFO | gradio_web_server_image_generation_multi | rightvote (named). ip: 127.0.0.1
|
| 775 |
+
2024-12-25 10:18:53 | INFO | gradio_web_server_image_generation_multi | bothbad_vote (named). ip: 127.0.0.1
|
| 776 |
+
2024-12-25 10:25:51 | INFO | stdout | Keyboard interruption in main thread... closing server.
|
| 777 |
+
2024-12-25 10:25:52 | ERROR | stderr | Traceback (most recent call last):
|
| 778 |
+
2024-12-25 10:25:52 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2869, in block_thread
|
| 779 |
+
2024-12-25 10:25:52 | ERROR | stderr | time.sleep(0.1)
|
| 780 |
+
2024-12-25 10:25:52 | ERROR | stderr | KeyboardInterrupt
|
| 781 |
+
2024-12-25 10:25:52 | ERROR | stderr |
|
| 782 |
+
2024-12-25 10:25:52 | ERROR | stderr | During handling of the above exception, another exception occurred:
|
| 783 |
+
2024-12-25 10:25:52 | ERROR | stderr |
|
| 784 |
+
2024-12-25 10:25:52 | ERROR | stderr | Traceback (most recent call last):
|
| 785 |
+
2024-12-25 10:25:52 | ERROR | stderr | File "/Users/jasi/Documents/ali-vilab/modelscope/IDEA-Bench-Arena/app.py", line 64, in <module>
|
| 786 |
+
2024-12-25 10:25:52 | ERROR | stderr | demo.queue(max_size=20).launch(server_port=server_port, root_path=ROOT_PATH, show_error=True)
|
| 787 |
+
2024-12-25 10:25:52 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2774, in launch
|
| 788 |
+
2024-12-25 10:25:52 | ERROR | stderr | self.block_thread()
|
| 789 |
+
2024-12-25 10:25:52 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/blocks.py", line 2873, in block_thread
|
| 790 |
+
2024-12-25 10:25:52 | ERROR | stderr | self.server.close()
|
| 791 |
+
2024-12-25 10:25:52 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/site-packages/gradio/http_server.py", line 69, in close
|
| 792 |
+
2024-12-25 10:25:52 | ERROR | stderr | self.thread.join(timeout=5)
|
| 793 |
+
2024-12-25 10:25:52 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1100, in join
|
| 794 |
+
2024-12-25 10:25:52 | ERROR | stderr | self._wait_for_tstate_lock(timeout=max(timeout, 0))
|
| 795 |
+
2024-12-25 10:25:52 | ERROR | stderr | File "/opt/anaconda3/envs/tiger/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lock
|
| 796 |
+
2024-12-25 10:25:52 | ERROR | stderr | if lock.acquire(block, timeout):
|
| 797 |
+
2024-12-25 10:25:52 | ERROR | stderr | KeyboardInterrupt
|