콘텐츠로 이동

ADR-005: peak_analysis / distilTS 패키지 분리

Date: 2026-04-14 Status: Proposed 상세 구현 계획: docs/superpowers/plans/2026-04-14-package-separation.md


배경

src/DistilTS-ICASSP2026은 외부 참조용으로 클론된 별도 Git 리포지토리인데, 실제 프로젝트 코드(src/peak_analysis)는 이미 독립적으로 재구현되어 있어 직접적인 import 의존은 tests/integration_distilts.py 하나뿐이다. 한편 peak_analysis 내부에 데이터/메트릭/ESS와 KD 코드가 혼재되어 있어 역할 경계가 불명확하다.

결정

  1. src/DistilTS-ICASSP2026 삭제 — 프로젝트 구동에 불필요
  2. KD 코드를 src/distilTS/로 분리peak_analysis는 데이터/메트릭/ESS 전용으로 유지
  3. 의존 방향: distilTSpeak_analysis (단방향)

분리 대상

distilTS/로 이동하는 파일

원본 경로 이동 경로
peak_analysis/losses/kd_losses.py distilTS/losses/kd_losses.py
peak_analysis/losses/aligners.py distilTS/losses/aligners.py
peak_analysis/models/students/* distilTS/models/students/
peak_analysis/models/teachers/* distilTS/models/teachers/
peak_analysis/models/graph_wavenet.py distilTS/models/graph_wavenet.py
peak_analysis/models/factory.py distilTS/models/factory.py
peak_analysis/ec_pair_dataset.py distilTS/datasets/ec_pair_dataset.py
peak_analysis/gwn_dataset.py distilTS/datasets/gwn_dataset.py
peak_analysis/trainer.py distilTS/trainers/kd_trainer.py
peak_analysis/ec_pair_trainer.py distilTS/trainers/ec_pair_trainer.py

peak_analysis/에 잔류

config.py, data_loader.py, community.py, metrics.py, stats_utils.py, optimization.py, simulation/

최종 구조

src/
├── peak_analysis/          ← 데이터 / 메트릭 / ESS
│   ├── config.py
│   ├── data_loader.py
│   ├── community.py
│   ├── metrics.py
│   ├── stats_utils.py
│   ├── optimization.py
│   └── simulation/
└── distilTS/               ← Knowledge Distillation
    ├── datasets/           (ec_pair_dataset, gwn_dataset)
    ├── losses/             (kd_losses, aligners)
    ├── models/             (factory, graph_wavenet, students/, teachers/)
    └── trainers/           (kd_trainer, ec_pair_trainer)

Import 변경 규칙

Before After
from peak_analysis.losses.kd_losses import ... from distilTS.losses.kd_losses import ...
from peak_analysis.models.students import ... from distilTS.models.students import ...
from peak_analysis.ec_pair_dataset import ... from distilTS.datasets.ec_pair_dataset import ...
from peak_analysis.trainer import ... from distilTS.trainers.kd_trainer import ...
from peak_analysis.ec_pair_trainer import ... from distilTS.trainers.ec_pair_trainer import ...
from peak_analysis.gwn_dataset import ... from distilTS.datasets.gwn_dataset import ...
from peak_analysis.config import ... 변경 없음 (공유)
from peak_analysis.metrics import ... 변경 없음 (공유)

삭제 대상

  • src/DistilTS-ICASSP2026/ (전체)
  • tests/integration_distilts.py (유일한 ICASSP2026 의존 테스트)
  • peak_analysis/losses/, peak_analysis/models/ (이동 후 원본 삭제)

검증

  • peak_analysis 단독 import 성공
  • distilTS 단독 import 성공
  • uv run python -m pytest tests/ -v 전체 PASS