Skip to content
kbanniePublic

About

ConFuse: Context-Aware Fusion of LLMs and GBDTs for Sleep Prediction from Lifelog Data

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ConFuse: Context-Aware Fusion of LLMs and GBDTs for Sleep Prediction from Lifelog Data

ICTC 2026에 채택된 ConFuse 논문의 재현 코드입니다. GBDT와 Qwen 예측을 사례별 신뢰도 점수로 결합합니다.

ConFuse 개요

실행 환경

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로 수행합니다.

About

ConFuse: Context-Aware Fusion of LLMs and GBDTs for Sleep Prediction from Lifelog Data

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages