머신러닝 프로젝트가 끝난 뒤, 코드 파일의 내용이 잘 기억나지 않아 정리에 어려움을 겪진 않으셨나요?
이 프로그램은 Pytorch 기반 머신러닝 코드 파일을 자동 분석하여 모델 구조, 훈련 설정, 파라미터 통계, 결과 시각화 등을 시각적으로 제공하는 도구입니다. 다양한 실험 코드를 보다 쉽게 비교하고, 모델 구조를 빠르게 이해할 수 있도록 돕기 위해 개발되었습니다.
참고 이 프로그램은 로컬 실행을 전제로 설계되었습니다. 별도의 배포 URL이 없으므로, 아래 안내에 따라 직접 실행해서 이용할 수 있습니다.
이 프로그램은 FastAPI(백엔드) + Streamlit(프론트엔드) 기반으로 동작합니다. 아래 순서 그대로 수행하면 로컬 환경에서 사용할 수 있습니다.
git clone https://github.com/goatyeon03/ML_Code_Insight.git
cd ML_Code_InsightPython 3.11 이상을 요구합니다. 가상환경 생성 이후 실행해주세요.
python3.11 -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows*일부 기능은 Google AI Studio Gemini API를 사용합니다.
해당 기능을 사용하려면 아래 사이트에서 무료 API Key를 발급받아 환경 변수로 설정해야 합니다.
API Key 발급:
https://aistudio.google.com/app/apikey
환경 변수 설정:
macOS / Linux:
export GOOGLE_API_KEY="발급받은_API_키"Windows PowerShell:
setx GOOGLE_API_KEY "발급받은_API_키"cd backend
pip install -r requirements.txt
uvicorn main:app --reloadFastAPI 문서 접속:
http://127.0.0.1:8000/docs
cd frontend
pip install -r requirements.txt
streamlit run app.pyStreamlit UI:
http://localhost:8501
Pytorch Experiment Dashboard는 다음과 같은 분석 기능을 제공합니다:
- 🔍 Code Parsing: 학습 코드(.py)에서 모델 구조, 학습 설정, 파라미터 정보를 자동 추출
- 🎨 Model Visualization: 파싱된 모델을 graphviz 기반 구조도로 시각화
- 📊 Training Summary: optimizer, epoch, batch_size 등 주요 설정을 자동 인식
- ➗ Parameter Counting: AST 기반 파싱 + sandbox worker를 통한 파라미터 계산
- 📈 Result Visualization: JSON 학습 로그를 자동 시각화 (loss / classification / regression 구분)
- 🗂️ Project-based Comparison: 실험 파일들을 프로젝트 단위로 정리하고 비교
사용자는 다음 흐름에 따라 대시보드를 이용할 수 있습니다.
- 로그인 또는 회원가입을 통해 계정을 생성합니다.
- 사이드바에서 기존 프로젝트를 선택하거나 새로운 프로젝트를 생성합니다.
- 새 프로젝트 생성 시, 즉시 해당 프로젝트 페이지로 이동합니다.
- 프로젝트가 선택된 상태에서
.py학습 코드를 업로드합니다. - 업로드된 파일은 자동으로 분석되며, 상단의 파일 선택 메뉴에서 분석 대상을 지정할 수 있습니다.
- 동일 파일 재업로드 시 다음 중 하나를 선택합니다:
- 덮어쓰기
- 내용이 다르면 새 버전(v1, v2…)으로 저장
- 업로드 취소
업로드가 완료되면 다음 분석 패널이 표시됩니다:
- Training Information: 모델 구조(그래프 포함), 파라미터 수, 학습 설정
- Result Visualization: JSON 로그 기반 학습 그래프
- Final Performance: 파일별 test 성능 요약 표
각 패널은 업로드된 파일 목록과 연동되며, 여러 파일 간 비교가 가능합니다.
- 코드 파일과 동일한 접두사(prefix)를 가진 JSON 로그 파일을 업로드합니다.
- loss / classification / regression 항목을 자동 구분해 시각화합니다.
- 그래프에 마우스를 올리면 시점별 세부 수치를 확인할 수 있습니다.
- 파일 삭제: 사이드바에서 삭제 가능하며, 매칭된 JSON 파일도 함께 삭제됩니다.
- 프로젝트 삭제: 해당 프로젝트의 모든 파일이 삭제됩니다.
- 계정 삭제: 사용자 데이터 전체 삭제가 가능합니다.
아래는 이 프로젝트가 제공하는 기능을 기술적으로 정리한 목록입니다.
| 프로젝트 선택 | 새 프로젝트 생성 |
|---|---|
![]() |
![]() |
- 프로젝트 생성/선택/삭제
- AST 기반 model_parser 적용
- 필요 시 LLM(Gemini) 보조 활용
- Graphviz 기반 모델 구조 노드 시각화
- 구조/파라미터/요약 정보 캐싱
- 동일 파일 재로드 시 즉시 불러오기
- 마우스 오버(hover) 시 세부 수치 표시
- 다양한 실험 결과를 직관적으로 비교 가능
| 업로드 파일 없을 때 | 도움말 |
|---|---|
![]() |
![]() |
- 프로젝트에 파일이 없을 때 샘플 학습 코드/결과 파일 제공
- 화면 하단 ? 아이콘에서 사이트 이용 방법 간단 안내
Pytorch_Experiment_Dashboard/
│
├── backend/
│ ├── api.py # FastAPI 엔트리포인트
│ ├── requirements.txt # 백엔드 패키지 목록
│ │
│ ├── llm/ # LLM 기반 보조 분석 모듈
│ │ ├── gemini.py # Gemini API 래퍼
│ │ ├── model_name_extractor.py
│ │ ├── param_estimator.py
│ │ └── refine_summary.py
│ │
│ ├── parsers/ # AST 기반 코드 분석기
│ │ ├── code_parser.py # 학습 설정 / 하이퍼파라미터 파서
│ │ ├── model_parser.py # 모델 구조 파서
│ │ ├── module_collector.py # 모델 구성 요소 수집기
│ │ ├── param_counter.py # AST 기반 파라미터 계산기
│ │ └── param_worker.py # 샌드박스에서 안전 실행하는 워커
│ │
│ ├── routes/ # FastAPI 라우트(엔드포인트) 모음
│ │ └── ... # 예: upload, delete, query 등
│ │
│ ├── uploads/ # 업로드된 파일 저장
│ └── __init__.py
│
├── frontend/
│ ├── app.py # Streamlit 메인 앱
│ ├── requirements.txt # 프론트엔드 패키지 목록
│ │
│ ├── modules/
│ │ ├── diff_utils.py # 코드 diff 분석
│ │ ├── manage_account.py
│ │ ├── manage_files.py # 파일 관리 기능
│ │ ├── model_blocks.py # 모델 구조 블록 시각화
│ │ └── project_dashboard.py # 프로젝트 메인 대시보드
│ │
│ ├── utils/
│ │ ├── auth.py # 인증 관련 유틸
│ │ ├── db.py # SQLite 데이터베이스 접근
│ │ ├── file_ops.py # 파일 처리 유틸
│ │ └── match_utils.py # 파일 매칭 로직
│ │
│ └── __init__.py
│
└── README.md
- 다중 코드 파일 고려
- 파라미터 수 계산 기능 강화
- 결과 파일 자동 매치 기능 강화
- 배포
본 프로젝트는 MIT 라이선스 하에 공개되었습니다.
자세한 내용은 저장소에 포함된 LICENSE 파일에서 확인할 수 있습니다.
Yang Soyeon (양소연)
- GitHub: https://github.com/goatyeon03
- E-mail: uaua1595@seoultech.ac.kr












