ICTC 2026에 채택된 ConFuse 논문의 재현 코드입니다. GBDT와 Qwen 예측을 사례별 신뢰도 점수로 결합합니다.
Ubuntu 22.04.4 LTS, Python 3.11.11, CUDA 12.4, NVIDIA RTX 4090 24GB에서 확인했습니다.
코드는 모두 .py, 코드와 주석은 UTF-8입니다. 라이브러리 버전은 requirements.txt에 고정했습니다.
주요 버전은 PyTorch 2.6.0+cu124, Transformers 4.57.6, PEFT 0.19.1, LightGBM 4.7.0, XGBoost 3.2.0, CatBoost 1.2.10입니다.
다운로드한 ConFuse 폴더에서 다음 명령을 실행합니다.
python3.11 setup_env.py
source .venv/bin/activate아래 경로는 모두 저장소 폴더를 기준으로 합니다. 학습 경로 설정은 reproduction.json에 있습니다.
- 코드·데이터·ML 가중치: 이 GitHub 저장소에 포함되어 있습니다.
- LLM LoRA 어댑터: Google Drive에서 다운로드합니다.
- Qwen 기반 모델: 사용자가 Qwen/Qwen2.5-7B-Instruct에서 직접 다운로드합니다.
Google Drive에서 받은 lora_adapter_fold0, lora_adapter_fold1, lora_adapter_fold2 폴더를
**LLM/outputs/**에 배치합니다.
Qwen 기반 모델은 다음 명령으로 받습니다.
hf download Qwen/Qwen2.5-7B-Instruct --local-dir LLM/models/Qwen2.5-7B-Instruct| 입력 | 실행 시 위치 |
|---|---|
| 원본 센서 데이터 | data/ch2025_data_items/ |
| 학습·검증 CSV | data/ch2026_{train,val}_split.csv |
| 테스트 CSV | data/ch2026_submission.csv |
| LLM 컨텍스트·타깃 정의 | LLM/data/ |
| 학습·검증 신뢰도 점수 | Fusion/data/semantic_scores.csv |
| ML 가중치와 기준 예측 | ML/outputs/ |
| Qwen LoRA 가중치 | LLM/outputs/lora_adapter_fold{0,1,2}/ |
| 분할 정보·보정 계수 | ML/reference/, LLM/reference/ |
준비된 컨텍스트와 신뢰도 점수를 사용하므로 OpenAI API 키가 필요하지 않습니다.
실행 전에 release_artifacts.sha256으로 배포 파일의 일치 여부를 검사합니다.
테스트 CSV는 250행이며 각 행에 LLM 컨텍스트와 사례별 신뢰도 점수가 들어 있습니다. 학습 CSV와 원본 센서 데이터도 함께 필요합니다. 테스트 정답 열은 비어 있습니다.
python scripts/run_pretrained.py --input-csv data/ch2026_submission.csv --dry-run
python scripts/run_pretrained.py --input-csv data/ch2026_submission.csv --output-dir outputs/test_run검증과 동일하게 ML 추론 → Qwen 추론 → 보정 → Fusion을 수행하며, 다음 세 파일을 저장합니다.
outputs/test_run/ml_predictions.csv: ML 예측outputs/test_run/llm_predictions.csv: 보정된 LLM 예측outputs/test_run/submission.csv: 제출용 Fusion 최종 예측
리더보드 평가는 submission.csv를 대회 평가 시스템에 제출해 확인합니다.
참고: 주최 측의 답변에 따라 리더보드 마감 이후에도 논문 제출을 위한 추가 실험과 모델 개선을 진행했습니다. 이에 본 코드는 해당 개선사항을 반영한 버전으로 최종 리더보드 제출본과 결과에 일부 차이가 있을 수 있는 점 참고 부탁드립니다.
배포 가중치로 검증셋을 추론하고 Average Log-Loss를 출력합니다.
python scripts/run_pretrained.py --evaluate --output-dir outputs/validation_run전체 학습부터 재현하려면 다음을 실행합니다. 결과와 학습 기록은 outputs/reproduction/에 저장됩니다.
python scripts/reproduce.py --dry-run
python scripts/reproduce.py중단한 학습은 python scripts/reproduce.py --resume으로 이어서 실행합니다.
기존 예측 CSV의 평가는 python scripts/evaluate_average_logloss.py outputs/validation_run/submission.csv로 수행합니다.
