Spaces:
Running
A newer version of the Gradio SDK is available:
6.1.0
title: Ko-FreshQA Leaderboard
emoji: ๐
colorFrom: blue
colorTo: green
sdk: gradio
app_file: app.py
pinned: false
license: apache-2.0
hf_oauth: true
Ko-FreshQA Leaderboard
ํ๊ตญ์ด FreshQA ๊ธฐ๋ฐ ์๋ ํ๊ฐ/๋ฆฌ๋๋ณด๋ ์์คํ
์
๋๋ค. ์ฐธ๊ฐ์๊ฐ ์
๋ก๋ํ CSV์ model_response๋ฅผ ๊ธฐ์ค ๋ฐ์ดํฐ์ ๋งค์นญํ๊ณ , Upstage Solar ๋ชจ๋ธ๋ก Relaxed/Strict ํ๊ฐ๋ฅผ ์ํํ ๋ค ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌ๋๋ณด๋์ ๋ฐ์ํฉ๋๋ค. Gradio UI๋ก ์คํ๋ฉ๋๋ค.
ํต์ฌ ๊ธฐ๋ฅ
- ๋ฐ์ดํฐ์ ๋ฐฐํฌ: DEV/TEST CSV ๋ค์ด๋ก๋ ํญ ์ ๊ณต
- ์ ์ถ ๋ฐ ์๋ ํ๊ฐ: ์ ๋ก๋๋ CSV๋ฅผ ๋ณํฉ โ ํ๊ฐ โ ์งํ ์ง๊ณ โ ๋ฆฌ๋๋ณด๋ ๋ฐ์
- ์์ธ ์งํ: fact type, ์ ์ ์ ํจ์ฑ(vp/fp), hop(one/multi), ์ฐ๋(old/new), ๋๋ฉ์ธ๋ณ ์ ํ๋
- ์ ์ถ ์ ํ(์ต์ ): ์ฌ์ฉ์๋ณ ํ๋ฃจ 3ํ ์ ํ ๊ธฐ๋ฅ (Hugging Face ์ ์ฅ์ ๊ธฐ๋ฐ)
๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ
app.py: Gradio ์ฑ ์ด๊ธฐํ ๋ฐ ํญ ๊ตฌ์ฑconfig.py: ํ๊ฒฝ๋ณ์ ๋ก๋ ๋ฐ ํ์ ์ค์ ๊ฒ์ฆfreshqa/fresheval.py: ๋จ์ผ ์ํ ํ๊ฐ ๋ก์งfresheval_parallel.py: ๋ฐ์ดํฐํ๋ ์ ๋ณ๋ ฌ ํ๊ฐ ๋ํผfreshqa_acc.py: ํ๊ฐ ๊ฒฐ๊ณผ ์ง๊ณ(์ ํ๋ ๊ณ์ฐ ๋ฐ ๋๋ฉ์ธ๋ณ ํต๊ณ)merge_csv_with_model_response.py: ๊ธฐ์ค ๋ฐ์ดํฐ์ ์ฌ์ฉ์ CSV ๋ณํฉ
src/submission_handler.py: ์ ์ถ๋ถํฐ ๋ฆฌ๋๋ณด๋ ๋ฐ์๊น์ง ์ ์ฒด ์ค์ผ์คํธ๋ ์ด์ submission_tracker.py: ์ ์ถ ์ด๋ ฅ ์ถ์ (HF repo ๊ธฐ๋ฐ, ์ต์ )leaderboard_manager.py: ๋ฆฌ๋๋ณด๋ CSV ๋ก๋/์ ์ฅ/ํ์์ฉ ์ ๋ฆฌquick_csv_loader.py,hf_private_csv_loader.py: HF Private repo์์ CSV ๋ก๋ ์ ํธapi_key_rotator.py,utils.py: ์ ํธ๋ฆฌํฐ
ui/leaderboard_tab.py,submission_tab.py,dataset_tab.py,styles.css
data/leaderboard_results.csv: ๋ฆฌ๋๋ณด๋ ๋์ ๋ฐ์ดํฐ
์๊ตฌ ์ฌํญ
- Python 3.10
- Upstage API ํค(๋จ์ผ ๋๋ ๋ค์ค)
- Hugging Face ํ ํฐ(HF Private repo ์ ๊ทผ์ฉ)
- Hugging Face Dataset repo
- ๊ธฐ์ค ๋ฐ์ดํฐ:
FRESHQA_DATA_REPO_ID/FRESHQA_DATA_FILENAME - (์ต์
) ์ ์ถ ์ถ์ ์ ์ฅ์:
SUBMISSION_TRACKER_REPO_ID - (์ต์
) ๋ฆฌ๋๋ณด๋๋ฅผ Hugging Face dataset์ ๋ฐฑ์
ํ๋ ค๋ฉด
UPLOAD_LEADERBOARD_TO_HF=true์ค์
- ๊ธฐ์ค ๋ฐ์ดํฐ:
์ค์น:
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
๋๋ Conda:
conda env create -f environment.yml
conda activate freshqa-leaderboard
ํ๊ฒฝ ๋ณ์(.env)
env.example๋ฅผ .env๋ก ๋ณต์ฌ ํ ๊ฐ ์ฑ์ฐ๊ธฐ:
cp env.example .env
ํ์/์ฃผ์ ๋ณ์
- HF_TOKEN
- FRESHQA_DATA_REPO_ID
- FRESHQA_DATA_FILENAME (๊ธฐ๋ณธ๊ฐ: ko-freshqa_2025_total.csv)
- UPSTAGE_API_KEY ๋๋ UPSTAGE_API_KEYS(์ฝค๋ง ๊ตฌ๋ถ)
- ENABLE_SUBMISSION_LIMIT (๊ธฐ๋ณธ: true)
- SUBMISSION_TRACKER_REPO_ID (์ ์ถ ์ ํ ์ฌ์ฉ ์ ํ์)
- UPLOAD_LEADERBOARD_TO_HF
- true: ๋ฆฌ๋๋ณด๋๋ฅผ HF Private Dataset์๋ ๋ฐฑ์ (๊ถ์ฅ: ์ด์ ํ๊ฒฝ)
- false: ๋ก์ปฌ CSV์๋ง ์ ์ฅ(๊ถ์ฅ: ๋ก์ปฌ ๊ฐ๋ฐ)
๊ฒ์ฆ: ์ฑ ์์ ์ Config.validate_required_configs()๊ฐ ๋๋ฝ๋ ํ์ ์ค์ ์ ๊ฒ์ฌํฉ๋๋ค.
์คํ
๋ก์ปฌ:
python app.py
๊ธฐ๋ณธ ํฌํธ: 7860
Hugging Face Spaces:
- ํ๊ฒฝ๋ณ์
SPACE_ID๊ฐ ์กด์ฌํ๋ฉด Spaces ๋ชจ๋๋ก ๋์ํฉ๋๋ค.
Docker(์ต์ ):
Dockerfile,docker-compose.yml์ ๊ณต (ํ์ ์ ์ค์ ์ ๋ง๊ฒ ์์ )
์ฌ์ฉ ๋ฐฉ๋ฒ(Gradio UI)
- ๋ฐ์ดํฐ์ ํญ
- DEV/TEST CSV ๋ค์ด๋ก๋
- ์ ์ถ ๋ฐ ํ๊ฐ ํญ
- ์
๋ก๋: TEST CSV์
model_response๊ฐ ์ฑ์์ง ํ์ผ - ์ ๋ ฅ: ์ ์ถ์ ์ด๋ฆ, ์ฌ์ฉ ๋ชจ๋ธ, ์ค๋ช
- ํ๊ฐ: Upstage Solar ๋ชจ๋ธ๋ก Relaxed/Strict ๋์ ์ํ
- ์ถ๋ ฅ: ์ ์ฒด/์ธ๋ถ ์งํ๊ฐ ๊ณ์ฐ๋์ด ๋ฆฌ๋๋ณด๋์ ๋ฐ์
- ๋ฆฌ๋๋ณด๋ ํญ
- ์ ์ถ ๊ฒฐ๊ณผ๊ฐ
data/leaderboard_results.csv์ ๋์ - (์ต์
)
UPLOAD_LEADERBOARD_TO_HF=true์ธ ๊ฒฝ์ฐ Hugging Face Dataset์๋leaderboard_results.csv๋ก ์๋ ์ ๋ก๋๋ฉ๋๋ค.
- (์ต์
)
- ๊ฒ์/์๋ก๊ณ ์นจ ๊ฐ๋ฅ
๋์ ํ๋ฆ(๋ด๋ถ)
- ์ ์ถ ์ ์:
src/submission_handler.py::process_submission - ์ฌ์ฉ์ CSV ๋ก๋ โ ๊ธฐ์ค ๋ฐ์ดํฐ์ ๋ณํฉ:
freshqa/merge_csv_with_model_response.py::merge_dataframe_with_model_response_df
- ํ๊ฐ:
freshqa/fresheval_parallel.py::evaluate_dataframeโfreshqa/fresheval.py::FreshEval
- ์ ํ๋ ์ง๊ณ:
freshqa/freshqa_acc.py::calculate_accuracy,process_freshqa_dataframe
- ์ ์ฅ:
- ๋ฆฌ๋๋ณด๋:
src/leaderboard_manager.py::append_to_leaderboard_data- (์ต์
) ๋ฆฌ๋๋ณด๋ HF ์ ์ฅ์ ๋ฐฑ์
:
UPLOAD_LEADERBOARD_TO_HF=true์ผ ๋๋ง
- (์ต์
) ๋ฆฌ๋๋ณด๋ HF ์ ์ฅ์ ๋ฐฑ์
:
- (์ต์
) ์ ์ถ ์ด๋ ฅ:
src/submission_tracker.py(ENABLE_SUBMISSION_LIMIT=true ์ผ ๋๋ง)
- ๋ฆฌ๋๋ณด๋:
์ฃผ์: ENABLE_SUBMISSION_LIMIT=false์ธ ๊ฒฝ์ฐ, ์ ์ถ ์ด๋ ฅ ์ถ์ ์ฉ Hugging Face ์ ์ฅ์ ์ ๊ทผ์ ์๋ํ์ง ์๋๋ก ์ฝ๋๊ฐ ๋ฐ์๋์ด ์์ต๋๋ค.
์ ์ถ ์ ํ(์ต์ )
- ์ค์ :
ENABLE_SUBMISSION_LIMIT=true(๊ธฐ๋ณธ) - ์ ์ฅ์:
SUBMISSION_TRACKER_REPO_ID์user_submissions.json๊ด๋ฆฌ - ๋ก์ง:
- ํ ์ฌ์ฉ์ ํ๋ฃจ 3ํ ์ฑ๊ณต ์ ์ถ๊น์ง ์นด์ดํธ
- ํ๊ตญ ์๊ฐ ๊ธฐ์ค 00:00์ ์ผ์ ๋จ์๋ก ์นด์ดํธ
- ๋นํ์ฑํ ์(HF ์ ์ฅ์ ์ ๊ทผ ์์):
SubmissionHandler๊ฐ ์ถ์ ๊ธฐ๋ฅผ ์์ฑํ์ง ์์
ํธ๋ฌ๋ธ์ํ
- ์์ ์ โํ์ ์ค์ ๋๋ฝโ ์ค๋ฅ
.env์์UPSTAGE_API_KEY(or KEYS),HF_TOKEN,FRESHQA_DATA_REPO_IDํ์ธ
- ์ ์ถ ์ ํ ๋นํ์ฑํ์ธ๋ฐ HF 404 ๊ฒฝ๊ณ ๊ฐ ๋ณด์
- ํ ๋ฒ์ ์
ENABLE_SUBMISSION_LIMIT=false์ผ ๋ ์ ์ถ ์ถ์ ๊ธฐ๋ฅผ ์ด๊ธฐํํ์ง ์๋๋ก ์์ ๋จ
- ํ ๋ฒ์ ์
- HF 404 (์ ์ถ ์ ํ ํ์ฑํ)
SUBMISSION_TRACKER_REPO_ID์ ์ฅ์์user_submissions.json์ด ์์ผ๋ฉด ์ต์ด ์ ๊ทผ ์ 404๊ฐ ๋ ์ ์์ต๋๋ค. ํ์ผ์ ๋น JSON{}์ผ๋ก ์์ฑํด ๋์ธ์.
๋ผ์ด์ ์ค/์ถ์ฒ
- ๋ณธ ๋ฆฌ๋๋ณด๋๋ FreshQA์์ ์๊ฐ์ ๋ฐ์ ์ ์๋์์ต๋๋ค.
๋ฌธ์ ์ฌํญ์ ์ด์๋ก ๋ฑ๋กํด ์ฃผ์ธ์.