"""
데이터셋 다운로드 탭 UI 컴포넌트
💾 데이터셋 다운로드 탭의 UI와 로직을 관리합니다.
"""
import gradio as gr
import pandas as pd
def create_dataset_tab():
"""데이터셋 다운로드 탭 UI 생성"""
# 데이터셋 미리보기 로드 (초기화 시 한 번만)
try:
dev_preview_data = pd.read_csv("data/public/ko-freshqa_2025_dev.csv").head(5)
test_preview_data = pd.read_csv("data/public/ko-freshqa_2025_test.csv").head(5)
except Exception as e:
print(f"⚠️ 데이터셋 미리보기 로드 실패: {e}")
dev_preview_data = pd.DataFrame()
test_preview_data = pd.DataFrame()
gr.Markdown("""
### Ko-FreshQA Dataset
- 이 데이터셋 및 리더보드는 [FreshQA](https://github.com/freshllms/freshqa)에서 영감을 받아 만들어졌습니다.
- fact type(fast changing, slow changing, never changing), 전제의 유효성, 10개의 도메인에 따라 나뉘는 질문들을 통해 한국어 지식과 관련된 LLM의 최신성을 판단할 수 있습니다.
- 검증 및 평가에 필요한 데이터셋은 주기적으로 업데이트할 예정입니다.
### Ko-FreshQA 데이터셋은 아래와 같은 특징을 가지고 있습니다.
- **fact type**
- 시간의 흐름에 따른 답변의 변동 가능성에 따라 질문은 아래의 세 가지로 분류됩니다.
- **fast changing** : 답변이 보통 1년 또는 그 이내에 변하는 질문
- **slow changing** : 답변이 몇 년에 걸쳐 변하는 질문
- **never changing** : 역사적 사건, 진실과 같이 답변이 거의 변하지 않는 질문
- **전제 유효성**
- **false premise (T/F)** : 질문에 포함된 전제 자체가 잘못되어 있으면 True, 전제에 문제가 없으면 False
- **one/multi hop**
- 답변을 생성하기 위해 필요한 추론의 개수에 따라 질문을 one hop, multi hop으로 분류합니다.
- **도메인**
- 모든 질문과 대답은 다음 도메인 중 하나로 분류됩니다.
- 정치, 스포츠, 연예, 날씨, 세계, 경제, 사회, IT/과학, 생활/문화, UNK
- **나머지 메타 정보**
- **effective year** : 질문의 답변이 마지막으로 변경된 연도
- **next review** : 예상되는 다음 검토 날짜
- **source** : 질문/답변에 대한 정보를 찾을 수 있는 출처
""")
with gr.Column(elem_classes=["leaderboard-group"]):
with gr.Row():
with gr.Column():
gr.Markdown("### 🧪 DEV 데이터셋 (개발/검증용)")
gr.Markdown("""
**Dev set**: 550쌍
- 모델 개발 및 검증을 위해 사용할 수 있습니다.
- 정답을 비롯하여 모든 메타데이터가 제공됩니다.
""")
# DEV 데이터셋 다운로드 버튼
dev_download_btn = gr.DownloadButton(
"💾 DEV 데이터셋 다운로드",
value="data/public/ko-freshqa_2025_dev.csv",
variant="primary",
size="lg"
)
# DEV 데이터셋 미리보기
dev_preview = gr.DataFrame(
value=lambda: pd.read_csv("data/public/ko-freshqa_2025_dev.csv").head(5),
interactive=False,
label=""
)
with gr.Column():
gr.Markdown("### 🎯 TEST 데이터셋 (최종 평가용)")
gr.Markdown("""
**Test set**: 3,000개
- 리더보드 제출을 위한 평가용 데이터셋입니다.
- model_response를 채워서 제출해주세요.
""")
# TEST 데이터셋 다운로드 버튼
test_download_btn = gr.DownloadButton(
"💾 TEST 데이터셋 다운로드",
value="data/public/ko-freshqa_2025_test.csv",
variant="primary",
size="lg"
)
# TEST 데이터셋 미리보기
test_preview = gr.DataFrame(
value=lambda: pd.read_csv("data/public/ko-freshqa_2025_test.csv").head(5),
interactive=False,
label=""
)
# 다운로드 안내 메시지
gr.Markdown("""
### 💡 다운로드 안내
- 위의 다운로드 버튼을 클릭하면 브라우저에서 자동으로 파일 다운로드가 시작됩니다.
- **DEV 데이터셋**은 모델 개발 및 검증용으로 사용하세요.
- **TEST 데이터셋**은 최종 평가 및 리더보드 제출용으로 사용하세요.
- 다운로드된 파일은 **CSV 형식**, **UTF-8 인코딩**으로 저장됩니다.
""")
# License & References
gr.Markdown("""
### 📚 License & References
- 본 데이터셋은 **CC-BY-ND-NC 4.0 (저작자표시 · 변경 금지 · 비영리)** 라이선스로 제공됩니다.
- 이 리더보드는 IITP의 **“생성형 언어모델의 지속가능성과 시간의 흐름에 따른 최신성 반영을 위한 학습 및 활용 기술 개발”** 사업의 지원을 받아 제작되었습니다.
- 이 시스템은 FreshLLMs 프로젝트의 **FreshQA 데이터셋과 평가 방법론**을 기반으로 구축되었습니다.
- 원본 FreshQA는 링크를 참고해 주세요. 👉 https://github.com/freshllms/freshqa
- 데이터셋 및 리더보드에 관하여 문의사항이 있을 경우, taehwan.oh@upstage.ai로 연락해주세요.
""")