Skip to content

Commit 5b86850

Browse files
committed
chore: Notion 동기화 2026-06-30 04:00
1 parent 0fc94ce commit 5b86850

2 files changed

Lines changed: 93 additions & 22 deletions

File tree

docs/poc/.notion-sync.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@
5050
},
5151
"38ee15b4-0359-8159-b41e-db27a13cd89e": {
5252
"file": "docs/poc/vision-bench/3편-추론-파라미터-조합-qwen3-omni-6초-클립-분석-최적-구성-확정.md",
53-
"last_edited": "2026-06-29T17:44:00.000Z",
54-
"content_hash": "06aea5a9e46c1c235bd42e03cf0e4382e961788d14aa8ad5bcb73b15611838a7",
53+
"last_edited": "2026-06-29T18:57:00.000Z",
54+
"content_hash": "30e7ab0eb251b86d4c2b3d3b86b11c9b8f6896ee3c78ab67b575d0ad5611c401",
5555
"order": 4,
5656
"parent_id": "vision-bench"
5757
}

docs/poc/vision-bench/3편-추론-파라미터-조합-qwen3-omni-6초-클립-분석-최적-구성-확정.md

Lines changed: 91 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,25 @@ SceneMaker 의 6초 클립 분석은 시청각 정보를 `{summary, ocr, actions
2020
| frequency penalty | 0\~0.5 구간 (완주·반복 개선, 단 sounds 감소) |
2121
| repetition penalty | 제외 (이종문자 유발) |
2222

23-
OFAT 는 한 축만 본다. 그러나 실제 운영값은 **여러 축을 동시에** 적용한다. 본 편은 2편이 좁힌 후보들을 **조합** 해, 단독 효과가 겹칠 때의 거동을 확인하고 **최적 샘플링 구성**확정한다. 확정한 구성은 이후 미세조정으로 다듬는다.
23+
OFAT 는 한 축만 본다. 그러나 실제 운영값은 **여러 축을 동시에** 적용한다. 본 편은 2편이 좁힌 후보들을 **조합** 해, 단독 효과가 겹칠 때의 거동을 확인하고 최적 구성을 확정한다.
2424

25-
조합 평가는 2편과 동일하게 **출력만으로 판정 가능한 축** 으로 한다. 완주율·degeneration(이종문자·미완·반복)·커버리지·추론 비용. 내용 정확성(환각·완전성)은 자동 채점 대상이 아니며 본 편 범위 밖이다.
25+
단, **프롬프트와 샘플링을 동시에 바꾸면 효과가 교란** 된다. 그래서 한 번에 하나씩, **두 단계로 분리** 한다.
26+
27+
1. **샘플링 조합** : 2편과 **같은 프롬프트** 를 고정하고 샘플링 파라미터만 조합해 최선 샘플링을 찾는다.
28+
2. **프롬프트 조합** : 1단계 최선 샘플링 위에 프롬프트를 손봐 최종 구성을 확정한다.
29+
30+
조합 평가는 2편과 동일하게 **출력만으로 판정 가능한 축** 으로 한다. 완주율·degeneration(이종문자·미완·반복)·커버리지·추론 비용.
2631

2732
## 2. 실험 설계
2833

29-
### 2.1. 고정 · 변동
34+
### 2.1. 두 단계 구성
3035

31-
- **고정** : temperature 0.7 · top_p 1.0 · repetition penalty off · max_tokens 512 · `media_io_kwargs.video.fps` 0.5 · 오디오 on · 동일 70클립(7장르 × 10) · 동일 프롬프트 · 4필드 strict 스키마
32-
- **변동(조합 축)** : frequency penalty {0, 0.3, 0.5} × top_k {-1, 10}
36+
| **단계** | **고정** | **변동** | **목적** |
37+
| --- | --- | --- | --- |
38+
| 1단계(샘플링 조합) | 2편 프롬프트 · temp 0.7 · top_p 1.0 · rep off · fps 0.5 | frequency penalty {0, 0.3, 0.5} × top_k {-1, 10} | 최선 샘플링 도출 |
39+
| **2단계(** 프롬프트 조합) | 1단계 최적 샘플링 | 프롬프트 (구조·개수 한도 등) | 최종 구성 확정 |
40+
41+
공통 고정: max_tokens 512 · 오디오 on · 동일 70클립(7장르 × 10) · 4필드 strict 스키마.
3342

3443
### 2.2. 출력 스키마 (4필드)
3544

@@ -42,36 +51,98 @@ OFAT 는 한 축만 본다. 그러나 실제 운영값은 **여러 축을 동시
4251
| `actions` (array) | 행동·움직임·장면 전환 |
4352
| `sounds` (array) | 대사를 제외한 배경음·효과음 |
4453

45-
### 2.3. 조합 셀 (2 × 3)
54+
### 2.3. 측정 지표
55+
56+
2편과 동일한 출력 기반 지표로 평가한다.
57+
58+
| **지표** | **정의** |
59+
| --- | --- |
60+
| `ok` / `fail` | 스키마 통과 / 실패 레코드 수 (완주율) |
61+
| `infer_ms` | 클립당 추론 시간 (비용·20분 예산) |
62+
| `penalty` | (`repeat` + `finish_length` + `foreign` + `replacement` ) ÷ 4 |
63+
| `field` | (`summary` + `ocr` + `actions` + `sounds` ) ÷ 4 |
64+
65+
## 3. 샘플링 조합
66+
67+
### 3.0. 테스트 데이터 및 실행
4668

47-
2편·2.5편이 객관적으로 정한 값만 교차한다. frequency penalty 3수준 × top_k 2수준 = 6 셀.
69+
표본·프롬프트·준비 절차 모두 **2편과 동일** 하다. 7장르 × 카테고리당 10클립 = 고정 70클립(`make_sample.py` 가 원본 mp4 를 재인코딩 없이 symlink 로만 `data/sample70/` 에 모은다), 프롬프트는 2편 것을 그대로 쓴다. 6 조합 모두 같은 입력을 본다.
70+
71+
실행은 `experiments/03_param_combo/` 에서 `bash sweep.sh 3` (6 조합 C1\~C6 × 3회차 누적 → N=3) 후 `python analyze.py` (회차평균 표 집계) 한 줄로 돌린다. `sweep_out/` 다음 회차는 자동 누적.
72+
73+
### 3.1. 조합
74+
75+
2편이 객관적으로 좁힌 값만 교차한다 (frequency 0\~0.5 구간, top_k -1/10). frequency penalty 3수준 × top_k 2수준 = 6 조합.
4876

4977
| | **top_k -1** | **top_k 10** |
5078
| --- | --- | --- |
5179
| **freq 0** | C1 (2편 baseline) | C4 |
5280
| **freq 0.3** | C2 | C5 |
5381
| **freq 0.5** | C3 | C6 |
5482

55-
### 2.4. 측정 지표
83+
### 3.2. 결과
5684

57-
2편과 동일한 출력 기반 지표로 평가한다.
85+
6 조합 회차 평균(N=3 · 각 조합 70클립). 2편과 같은 프롬프트·표본에서 **freq 가 완주 레버** 임을 재현. freq 0→0.3 에서 완주 90.5→99.5%, finish_length 9.5→0.5%. **1단계 최선 = C2 (freq 0.3 · top_k -1)** .
5886

59-
| **지표** | **정의** |
60-
| --- | --- |
61-
| `ok` / `fail` | 스키마 통과 / 실패 레코드 수 (완주율) |
62-
| `infer_ms` | 클립당 추론 시간 (비용·20분 예산) |
63-
| `penalty` | (`repeat``finish_length``foreign``replacement` ) ÷ 4 — degeneration 종합 |
64-
| `field` | (`summary``ocr``actions``sounds` ) ÷ 4 — 정보 커버리지 |
87+
| **조합** | **freq** | **top_k** | **완주(ok)** | infer_ms | **penalty** | **field** |
88+
| --- | --- | --- | --- | --- | --- | --- |
89+
| C1 | 0 | -1 | 90.5% | 2719 | 6.2% | **95.6%** |
90+
| **C2 (최선)** | **0.3** | **-1** | **99.5%** | 2080 | 3.2% | 93.7% |
91+
| C3 | 0.5 | -1 | 99.0% | 1936 | **2.6%** | 90.6% |
92+
| C4 | 0 | 10 | 89.5% | 2695 | 8.0% | 94.9% |
93+
| C5 | 0.3 | 10 | 100% | 2022 | 2.7% | 93.3% |
94+
| C6 | 0.5 | 10 | 100% | 1966 | 2.9% | 91.8% |
95+
96+
<details>
97+
<summary>📊 회차별 히스토리 (N=3 · 조합별 1·2·3회)</summary>
98+
99+
| **회차** | **조합** | ok/fail | infer_ms | repeat | finish_len | foreign | penalty | field |
100+
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
101+
| 1 | C1 (f0·k-1) | 65/5 | 2743 | 20.0% | 7.1% | 1.4% | 7.1% | 94.6% |
102+
| 2 | C1 (f0·k-1) | 64/6 | 2528 | 12.9% | 8.6% | 0.0% | 5.4% | 94.9% |
103+
| 3 | C1 (f0·k-1) | 61/9 | 2887 | 11.4% | 12.9% | 0.0% | 6.1% | 97.1% |
104+
| 1 | C2 (f0.3·k-1) | 69/1 | 2110 | 14.3% | 1.4% | 1.4% | 4.3% | 93.1% |
105+
| 2 | C2 (f0.3·k-1) | 70/0 | 2110 | 8.6% | 0.0% | 1.4% | 2.5% | 94.7% |
106+
| 3 | C2 (f0.3·k-1) | 70/0 | 2021 | 11.4% | 0.0% | 0.0% | 2.9% | 93.2% |
107+
| 1 | C3 (f0.5·k-1) | 69/1 | 1986 | 5.7% | 1.4% | 0.0% | 1.8% | 91.0% |
108+
| 2 | C3 (f0.5·k-1) | 70/0 | 1889 | 11.4% | 0.0% | 0.0% | 2.9% | 90.0% |
109+
| 3 | C3 (f0.5·k-1) | 69/1 | 1932 | 11.4% | 1.4% | 0.0% | 3.2% | 91.0% |
110+
| 1 | C4 (f0·k10) | 61/9 | 2721 | 18.6% | 12.9% | 0.0% | 7.9% | 94.2% |
111+
| 2 | C4 (f0·k10) | 66/4 | 2539 | 15.7% | 5.7% | 0.0% | 5.3% | 95.5% |
112+
| 3 | C4 (f0·k10) | 61/9 | 2825 | 27.1% | 12.9% | 2.9% | 10.7% | 95.1% |
113+
| 1 | C5 (f0.3·k10) | 70/0 | 2053 | 12.9% | 0.0% | 1.4% | 3.6% | 93.2% |
114+
| 2 | C5 (f0.3·k10) | 70/0 | 2075 | 7.1% | 0.0% | 0.0% | 1.8% | 93.2% |
115+
| 3 | C5 (f0.3·k10) | 70/0 | 1938 | 11.4% | 0.0% | 0.0% | 2.9% | 93.6% |
116+
| 1 | C6 (f0.5·k10) | 70/0 | 1929 | 8.6% | 0.0% | 0.0% | 2.1% | 91.0% |
117+
| 2 | C6 (f0.5·k10) | 70/0 | 1959 | 12.9% | 0.0% | 0.0% | 3.2% | 93.2% |
118+
| 3 | C6 (f0.5·k10) | 70/0 | 2009 | 11.4% | 0.0% | 1.4% | 3.2% | 91.1% |
119+
120+
121+
</details>
122+
123+
### 3.3. 분석
124+
125+
#### 1. frequency 가 완주 레버
126+
127+
freq 0→0.3 에서 완주 90.5→99.5%, finish_length 9.5→0.5%, penalty 6.2→3.2% (매 회차 재현). 2편의 단일축 결론이 같은 프롬프트·표본에서 그대로 확인됐다. top_k 10 단독(C4)은 완주를 못 살린다(89.5%). 완주는 freq 의 몫이다.
128+
129+
#### 2. top_k 는 무승부
130+
131+
freq≥0.3 에서 top_k -1 vs 10 차이(C2 vs C5)는 완주 99.5 vs 100%(1클립)·penalty 뒤섞임·커버리지 동일로 전부 회차 jitter 범위다. 기본값 **-1 유지** .
132+
133+
#### 3. 커버리지 — 유일하게 일관된 trade, 판정 불가
134+
135+
freq 를 올리면 커버리지가 단조 감소한다(95.6→93.7→90.6%, 매 회차 재현). 이 감소가 **잉여 제거(좋음)인지 정보 삭제(나쁨)인지는 정답지 없이 가릴 수 없다.**
65136

66-
## 3. 결과
137+
#### 1단계 최선 샘플링
67138

68-
> ⏳ 테스트(C1\~C6 · 회차 누적) 후 작성 — 조합별 완주·degen·비용·커버리지
139+
완주·penalty 가 포화된 freq≥0.3 구간에서 조합을 가르는 건 커버리지뿐이고, freq 0.3 이 0.5 보다 일관되게 우세하다(top_k 는 무승부). 1단계 최선은 **temp 0.7 · frequency 0.3 · top_p 1.0 · top_k -1 · rep off** 이며, 이 위에서 2단계(프롬프트 조합)를 진행한다.
69140

70-
## 4. 분석
141+
## 4. 2단계 — 프롬프트 조합
71142

72-
> 테스트 후 작성 — frequency × top_k 상호작용 · 최적 셀 · 최적 샘플링 구성 도출
143+
> 1단계 최선 샘플링 확정 후 진행(가장 나중) — 프롬프트 변경의 완주·degen·커버리지 효과 측정
73144
74145
## 5. 결론
75146

76-
> 테스트 후 작성 — 최적 샘플링 구성 확정 · 미세조정 방향 · 운영(vision-cognition) 핸드오프
147+
> 두 단계 종합 후 작성 — 최종 샘플링·프롬프트 구성 확정 · 미세조정 방향 · 운영(vision-cognition) 핸드오프
77148

0 commit comments

Comments
 (0)