Graph Quality v3→v4 + QA Pipeline Spec

Graph_VLM — Weekly Progress

260406-260412 · long-horizon VQA via spatio-temporal graph

SLURM0
Noise−47%
Object Nodes39
Action Nodes10
QA Cats5+3

Research Goal

Egocentric 비디오에서 시공간 그래프를 자동 구축하여 long-term memory 기반 VQA를 수행하는 시스템. 긴 비디오(수십 분~수 시간)에서 Object / Action / Time / Space 4축으로 쿼리 가능한 구조화된 지식 그래프를 만들어, "10분 전에 칼을 어디에 뒀지?" 같은 long-horizon 질문에 답변. 최종적으로 VLA의 long-term memory 모듈로 확장 가능. 논문 목표.

이번 주 핵심 진전

1. v3 → v4 그래프 품질 대폭 개선 (P0 프롬프트 개선만으로 −47%)

Why: v3 결과에서 노이즈 노드(person 계열 13개, generic ID, water/wall, 셀러리 11개 중복 등)가 누적되어 그래프가 ~74개 object 노드로 부풀려 있었음. VQA에는 정확히 ~25개 고유 물체만 필요한데도 ~3배의 잡음.

How: P0 항목(코드 변경 없이 PHASE1 프롬프트 수정만으로 처리 가능한 것)들을 모아 한 번에 적용:

Result:

지표v3 (이전)v4 (개선)Δ
Object 노드7439−47%
Person 계열135−62%
Generic ID (object_N)30완전 제거
Noise (water/wall/shoes)41−75%
Celery 계열112−82%
Action 노드1410−29%
Washing 과분할6개1개해결
Spatial edges248192−23%

Takeaway: 프롬프트 개선만으로 ~47% 노이즈 감소. VLM이 100% 규칙을 따르진 않아서 person/hands/water가 일부 잔존 — 후처리 정규화가 여전히 필요하지만, 비용 0의 P0 작업으로 가장 큰 개선 회수.

2. QA 생성 파이프라인 설계 (claude/0409_qa_pipeline_plan.md)

Why: 그래프 자체는 평가 도구이지 QA 생성 도구가 아니다(자기 채점이 되므로 벤치마크로 무의미). 그래프 외부에서 순수 VLM + 사람 검증으로 VQA 데이터셋을 만드는 파이프라인을 설계해야 했다.

How: 5단계 파이프라인 정의:

  1. 영상을 ~60초 구간으로 분할 (10분 영상 → 10 구간)
  2. 구간별 Event Description 생성 (VLM, 2~3초 간격 프레임 샘플링)
  3. 카테고리 × 난이도 매트릭스로 QA 생성 (EM1~5, T1~3, L1~L4)
  4. 인접 2~3 구간 합쳐서 cross-segment 장거리 QA
  5. VLM 자동 검증 + 사람 최종 검증

비용 추산: 10분 영상 ~$0.12, 1시간 영상 ~$0.72.

Result: 파일 구조 정리 (scripts/generate_qa.py, src/qa_generator.py, src/qa_validator.py, data/qa/) + 카테고리별 프롬프트 템플릿 작성. 코드 구현은 다음 사이클.

3. VQA 카테고리 + 난이도 매트릭스 정의 (research)

Why: Ego4D NLQ, NExT-QA, EgoSchema, STAR, EgoPlan 등 기존 벤치마크 조사 결과, "장시간 메모리 기반 일상 질문"에 직접 대응하는 벤치마크가 부족. 우리 시스템의 차별점인 valid_from/valid_until spatial edge는 특히 STATE TRACKING(EM2)에서 우위를 보임. 메인 태스크와 카테고리를 명확히 정의해야 QA 생성 단계에서 표적이 잡힘.

How: claude/0409_vqa_tasks.md에 정리:

Result: 카테고리 매트릭스가 QA 생성 프롬프트의 직접 입력으로 사용 가능한 형태로 완성. 기존 벤치마크 8개 비교 표 작성.

4. VQA Feedback 사이클 — 부자연스러운 질문 유형 식별

Why: 04-10에 v4 그래프로 첫 QA 생성을 시도했더니 결과물이 "00:00:30 무렵 냉장고 문 상태는?" / "세그먼트 시작 시 카메라 시야를 처음 가린 물건은?" 같은 부자연스러운 질문이 다수 나옴. 사람이 실제로 묻지 않는 형태.

How: claude/0410_vqa_feedback.md에 3가지 문제 식별:

  1. 타임스탬프가 질문에 포함됨 → 타임스탬프는 답변에만 있어야 함
  2. "세그먼트" 같은 시스템 내부 개념이 질문에 노출됨
  3. 이벤트 기반이 아닌 시간 기반 질문 → 사람은 "냉장고 열었을 때 뭐 꺼냈어?"처럼 이벤트로 물어봄

QA 생성 프롬프트 수정 방향 정리 — "Do NOT include timestamps in questions", "Do NOT reference 'segment'/'frame'", "Questions should sound like someone recalling".

Result: 다음 사이클의 QA 재생성에 적용할 명확한 corrective rule 세트. 예외 (EM3 Temporal Memory)도 명시.

Strengths & Weaknesses

Strengths

Weaknesses

Takeaway & Next Steps

의미: 이번 주는 "그래프 → QA → 평가" 파이프라인 중 그래프 단계의 quality와 QA 단계의 spec을 동시에 묶은 주. 두 단계가 정합되지 않으면 평가 자체가 의미 없으므로 동시에 다듬는 것이 정답이었다.