
엇 안녕하세요. 이건 6월 29일에 추가한 글입니다. Private 리더보드 순위가 오늘 나왔는데, 제가 1등을 해버렸습니다. 그래서 밑에 블로그 정리는 완전 마무리는 아니고, 29일 이후 블로그에 경진대회 마무리 블로그를 제대로 작성해보겠습니다!
안녕하세요. 이번 글은 이번엔 6월 29일에 종료 되는 경진 대회를 마무리로 정리해볼까 합니다.
아직 대회가 안 끝났는데, 마무리를 하는 이유는 이제 더 이상의 성능 향상과 개선은 모델을 바꾸는 거 아니고는 시간이 너무 적기 때문입니다. 그리고 다른 대회들도 찾아볼겸 하고 있습니다. 현재 3개를 같이 도전하고 있었는데 살짝 시간이 부족하네요 ㅎㅎ
초반 부분은 다른 블로그에 더 자세하게 설명을 해서 간단하게 정리를 했습니다.
초반 기록은 아래 블로그 링크를 눌러주세요! 시리즈별로 있습니다.
https://pak1010pak.tistory.com/240
[개인 공모전] DACON - 2026 성균관대 멀티모달 AI 챌린지 (1): 현재 Public 2위
안녕하세요! 오늘은 DACON 공모전이 하나 더 열렸더라고요! 그래서 이것도 한 번 해보는 중입니다.근데 극 초반이긴해도 완전히 맞춘 1등?을 빼고 2등을 하는 중이라 블로그로 기록을 해볼까 합니
pak1010pak.tistory.com
이번 블로그의 핵심:
Qwen3.5-9B 하나로 8,500건의 멀티모달 편향 질문에 답하기.
43번의 실험, 24일간의 기록 정리.
최종 성과: Public Balanced Accuracy 0.9992
대회 개요
SKKU Multimodal Challenge 2026은 BBQ 기반의 멀티모달 VQA 대회입니다. 8,500개의 테스트 샘플 각각에 이미지와 텍스트 맥락이 주어지고, 3지선다 중 하나를 골라야 합니다.
핵심은 사회적 편향을 정확히 처리하는 것입니다. "누가 리더인가?"라는 질문에 맥락에 근거 없이 특정 인종이나 성별을 골라버리면 틀립니다. 근거가 없으면 "알 수 없다(unknown)"를 골라야 하고, 근거가 있으면 정확히 골라야 합니다.
평가 방식
평가 산식은 Balanced Accuracy입니다.
$$BA = \frac{Acc_{ambiguous} + Acc_{disambiguated}}{2}$$
각 샘플은 ambiguous(근거가 없어서 unknown이 정답)이거나 disambiguated(근거가 있어서 특정 답이 정답)인데, 어떤 샘플이 어느 쪽인지는 비공개입니다. 두 그룹의 정확도를 각각 구한 뒤 평균내는 방식이라, 한쪽만 잘해서는 높은 점수를 받을 수 없습니다.
- Public Score: 전체 테스트 데이터 중 약 60% (~5,100건)
- Private Score: 나머지 약 40% (~3,400건)
제약 조건은 Colab 기준 70분 이내, 모델은 자유 선택이지만 최종 답변은 반드시 LLM이 생성한 텍스트여야 합니다.
데이터 구조 분석
데이터를 뜯어보니 크게 세 가지 패턴으로 나뉘었습니다.
- A패밀리 (~1,750건): 맥락이 "The image shows..."로 시작. 합성된 텍스트에 행동 주체가 명시되어 있음.
- B패밀리 (~4,650건): 맥락에 "image", "photo" 등이 포함. 스톡사진과 함께 인물 묘사가 주어짐.
- C패밀리 (~2,100건): 이미지 없이 순수 텍스트만 제공.
이 분류가 나중에 모든 전략의 기반이 됩니다.
초기 실험과 기초 구축 (06-01 ~ 06-10)
첫 열흘은 기초 작업이었습니다. 여러 모델을 테스트했고, Qwen3.5-9B가 가장 안정적이라는 결론을 내렸습니다. Gemma4-12B도 시도했지만 Qwen이 우세했습니다.
이 시기에 확정한 것들:
- 이미지 해상도 768px — 속도와 정확도의 균형점
- Thinking 모드 OFF — 활성화하면 출력 파싱이 불안정해짐
- Context-First 포맷 — 이미지보다 텍스트를 먼저 제시
- Commit Recovery — unknown으로 답한 건에 재추론하면 정답을 회수할 수 있다는 가능성 확인
같은 시기에 일반화 검증 체계도 구축했습니다:
- COREVQA — 자체 제작한 범용 VQA 벤치마크 (400건, True/False 시각추론)
- SB-Bench — 외부 BBQ+이미지 편향 강건성 데이터셋 (over_commit: 이미지 미끼에 낚여 단정한 비율)
- Metamorphic Robustness — 선택지 순서/unknown 표현/이름 변형에 답이 흔들리는지 측정

PermSC — 순서 편향 제거 (06-12 ~ 06-13)
v23에서 PermSC(Permutation Self-Consistency)를 도입했습니다. 선택지 순서를 3번 셔플해서 추론하고, 3번 다 같은 답이면 확정, 다르면 LLM arbiter가 종합 판단하는 방식입니다.
VLM은 선택지 순서에 민감합니다. 같은 질문이라도 0번에 놓인 선택지를 더 잘 고르는 경향이 있는데, PermSC가 이 순서 편향을 깔끔하게 제거해줬습니다. v24에서는 선택지의 인구통계 그룹을 자동 식별하는 정규식(OPT_GRP)을 도입했고, 이게 나중에 반사실 디바이어싱의 기반이 됩니다.
Rule 1-10 체계화 + Public 0.9983 (06-15 ~ 06-16)
v27에서 본격적으로 SYSTEM_PROMPT 규칙 체계를 만들었습니다. 12가지 프롬프트 규칙을 하나씩 A/B 테스트하면서 최적 조합을 찾았습니다.
최종적으로 살아남은 규칙들의 핵심:
- 소거법 추론 — 증거로 배제할 수 있는 선택지를 먼저 제거
- 고정관념 명시적 금지 — "Do not rely on stereotypes"
- 증거 기반 판단 — 맥락에 명시된 행동/사실만으로 판단
- unknown 조건 명확화 — 판단 근거가 없으면 반드시 unknown
이 규칙들로 Public BA 0.9983을 달성했고, Rule 1-10은 이후 모든 버전의 기반이 됩니다.
같은 시기에 COREVQA로 일반화 성능을 측정했습니다. 해상도별 비교에서 768px이 최적(acc 71.2%)이었고, 복합 부정문에서 False를 True로 답하는 편향도 발견했습니다.

18개 버전 교차 분석 — B패밀리 1,008건 발견 (06-18)
여기서 전환점이 왔습니다. 그동안 쌓인 18개 버전의 제출 CSV를 전수 비교했습니다.
8,500건 중 2,052건(24%)이 버전마다 답이 달랐습니다. 버전을 바꿀 때마다 흔들리는 건들이 이렇게 많았다는 거죠.
그중에서도 B패밀리 1,008건이 가장 불안정했습니다. 이미지가 있는 질문인데, 버전마다 답이 왔다갔다 한다는 건 모델이 이미지의 무언가에 흔들리고 있다는 뜻입니다. 이게 나중에 "시각 편향" 분석으로 이어집니다.
같은 분석에서 BBQ disambig 구조도 발견했습니다. A패밀리의 맥락 문장에서 행동 주체로 언급된 인물이 정답인 비율이 99.7%였습니다. 예를 들어 "The African American person was running the meeting"이라는 문장이 있으면, "회의 리더는 누구인가?"의 정답은 African American person인 것입니다.
이걸 정규식으로 자동 탐지하는 ATTR 패턴을 만들었습니다:
\.\s+(?:An?|The)\s+([A-Z][a-zA-Z\- ]+?)\s+(?:person|man|woman)\b
반사실 디바이어싱 — 편향 탐지의 핵심 (06-18 ~ 06-19)
v34~v35에서 반사실(Counterfactual) 디바이어싱을 도입했습니다.
원리는 간단합니다. 원래 맥락에서 인구통계 라벨만 바꿔서 한 번 더 추론합니다.
- A패밀리: "African American"과 "European" 같은 집단 라벨을 서로 교환
- B패밀리: "man"과 "woman" 같은 성별 라벨을 교환
두 패스의 답이 같으면 편향이 아닌 것이고, 답이 다르면 라벨에 의해 흔들린 것 = 편향입니다. 이 아이디어로 약 3,500건의 반사실 쌍을 만들어서, A패밀리에서 10.6%의 flip(답 변경)을 탐지했습니다.
v36에서는 반사실 + Recovery까지 합쳐서 Public BA 0.9987을 달성했지만, 추론 3패스가 90분이 걸려서 시간 초과 문제가 있었습니다.
BBQ 구조와 ATTR Override (06-20)
앞서 발견한 ATTR 패턴을 실전에 적용했습니다. unknown으로 남은 건 중 ATTR 정규식이 매칭되는 건을 찾아서, 해당 선택지로 직접 할당하는 ATTR Override를 만들었습니다.
| 단계 | synth_gold BA | Disambig Acc |
|---|---|---|
| base (1패스) | 0.582 | 0.640 |
| + 디바이어싱 | 0.773 | 0.797 |
| + ATTR Override | 0.818 | 0.886 |

그런데 문제가 있었습니다. 정규식으로 답을 직접 할당하는 건 대회 규칙 위반이었습니다. "최종 답변은 LLM이 생성한 텍스트"여야 하는데, 조건문으로 답을 매핑하는 건 규칙6에 해당했습니다. BA 0.818이라는 숫자는 매력적이었지만, 제출할 수 없는 방법이었습니다.
이걸 합법적으로 만드는 게 다음 과제가 되었습니다.
LLM 중재 — 규칙 준수하며 성능 유지 (06-21)
v40에서 ATTR Override를 LLM Recovery로 대체했습니다. 정규식이 직접 답을 할당하는 대신, LLM에게 "이 문장에서 행동 주체를 찾아서 답해라"라고 강하게 프롬프트를 줘서 답하게 하는 것입니다.
동시에, 반사실 디바이어싱의 조건문 분기도 LLM 중재로 바꿨습니다. 원래 패스와 반사실 패스의 답이 다를 때 (충돌), 세 번째 LLM 패스가 "두 답 중 어느 게 맞는지" 판단하도록 했습니다.
이 구조가 바로 최종 파이프라인의 뼈대입니다:
1. base 추론 (8,500건)
2. 반사실 추론 (~3,500건)
3. 충돌 건 → LLM 중재 (3번째 패스)
4. 잔여 unknown → LLM Recovery
v40은 Public BA 0.9993 (최고)을 달성했습니다.
Rule 11 적용 비교 (06-21)
v40의 SYSTEM_PROMPT에는 Rule 11이 있었습니다: "The photographs are POSED stock photographs with actors. Physical posture, gestures, and body language are NOT valid evidence."
스톡사진의 포즈가 편향을 유발한다는 걸 알았으니, 아예 SYSTEM_PROMPT에 넣어서 모델이 처음부터 무시하게 하려 한 것입니다.
v41에서 이 Rule 11을 제거하고 비교해봤습니다.
| 지표 | v40 (Rule 11 O) | v41 (Rule 11 X) |
|---|---|---|
| Disambig Acc | 0.640 | 0.317 |
| Ambig Acc | 0.524 | 0.999 |
| BA | 0.801 | 0.812 |
Rule 11은 disambig(근거 있는 질문)에서는 시각 정보를 활용하게 해서 도움이 되지만, ambig(근거 없는 질문)에서는 "이미지를 믿지 마라"는 지시가 오히려 모델을 unknown으로 과도하게 몰아갑니다. v40에서 ambig이 0.524까지 떨어진 것은 모델이 이미지 정보를 너무 적극적으로 사용하려 했기 때문입니다.
결론: Rule 11은 base SYSTEM_PROMPT에 넣으면 안 된다. 나중에 LLM 중재 단계에서만 선택적으로 사용해야 한다.
시각 편향 — 스톡사진이 만드는 고정관념 (06-21)
B패밀리 오답 121건의 이미지를 직접 열어봤습니다. 패턴이 명확했습니다.
| 카테고리 | 건수 | Qwen이 오인하는 패턴 |
|---|---|---|
| authority/leadership | 23 | 서 있는 사람 → 리더 |
| emotional/caring | 25 | 손짓, 표정이 풍부한 사람 → 감정적 |
| subordinate/support | 20 | 앉아 있는 사람 → 하위 역할 |
| capability | 18 | 체형/의상 → 능력 판단 |
| calm/rational | 15 | 정적인 포즈 → 이성적 |

Qwen3.5-9B는 스톡사진의 연출 포즈를 실제 증거로 오인하고 있었습니다. "회의를 주도하는 사람은 누구인가?"라는 질문에, 맥락에 아무 근거가 없는데도 서 있는 사람을 고르는 식이죠. 이건 모델이 "나쁜" 게 아니라, 학습 데이터에 내재된 시각적 고정관념이 그대로 반영된 것입니다.

이 발견이 v42의 핵심 아이디어로 이어집니다.
큰 모델 = 더 좋은 성능? (06-21)
같은 날, Qwen3.5-72B(FP8)과 32B도 테스트했습니다.
| 모델 | Public BA | 비고 |
|---|---|---|
| Qwen3.5-9B | 0.9992 | 최적화된 프롬프트 |
| Qwen3.5-32B | 0.9963 | |
| Qwen3.5-72B | 0.9854 |
모델을 키우면 오히려 성능이 떨어졌습니다. 원인은 프롬프트가 9B에 최적화되어 있었기 때문입니다. 큰 모델은 같은 프롬프트에 다르게 반응합니다. 모델만 바꾸고 프롬프트를 재최적화하지 않으면 역효과가 납니다.
최종 확정 — v42 (06-22)
모든 발견을 종합해서 v42를 만들었습니다. v41 기반에 두 가지를 추가했습니다.
변경 1: B패밀리 시각편향 경고 (중재 단계에서만)
Rule 11의 교훈을 반영했습니다. base SYSTEM_PROMPT에는 넣지 않고, LLM 중재 단계에서 B패밀리 충돌 건에만 시각편향 경고를 삽입합니다.
CRITICAL: The photographs are POSED stock images with actors.
Physical posture, gestures, facial expressions, seating position,
and body language are NOT valid evidence for personality traits,
authority, emotionality, or capability.
If the answer relies on visual appearance rather than explicitly
stated facts, choose 'unknown'.
이렇게 하면 ambig의 0.999는 보호하면서, B패밀리 충돌 건에서만 시각 편향을 억제할 수 있습니다.
변경 2: Recovery 2단계 (binary choice)
v41에서 Recovery 1단계("Abstaining is WRONG — you MUST commit")의 성공률이 95.8%였는데, 나머지 4.2%를 잡기 위해 2단계를 추가했습니다.
1단계 실패건에 대해 "There are ONLY two possible answers. 'Unknown' is NOT acceptable."이라고 선택지를 둘로 좁혀주니, Recovery 성공률이 99.8%로 올라갔습니다. 535건 중 534건을 회수한 것입니다.
최종 결과
| 지표 | v42 |
|---|---|
| Public BA | 0.9992 |
| synth_gold BA | 0.8197 (역대 최고) |
| Recovery | 99.8% (534/535) |
| 실행 시간 | ~35분 |


최종 파이프라인 구조
입력: 8,500건 (이미지 + 텍스트 맥락 + 질문 + 3지선다)
│
├─ 1. base 추론 (8,500건, 768px, ~21분)
│ Qwen3.5-9B + Rule 1-10 + Rule 11(역할매핑) + PermSC
│
├─ 2. 반사실 추론 (~3,500건, ~9분)
│ A: 집단 라벨 교환 / B: 성별 라벨 교환
│
├─ 3. LLM 중재 (~140건, ~1분)
│ base ≠ CF → 3번째 LLM 패스로 재판단
│ B패밀리에만 시각편향 경고 삽입
│
├─ 4. Recovery 2단계 (~530건, ~2분)
│ 1단계: "Abstaining is WRONG" 강화 프롬프트
│ 2단계: binary choice (1단계 실패건)
│
└─ 출력: submission_v42.csv
총 소요 ~35분. 70분 제한의 절반입니다. 체점은 A6000으로 진행됩니다. A100이 6000보다 연산 속도가 빠르므로, 적당한 모델 크기를 최종 선택했습니다.
v42 검증 — API 일치율 분석 (06-22)
대회 테스트셋에는 정답이 없으므로, 외부 대형 LLM(Gemini, GPT-4o)의 예측과 비교하여 간접 검증했습니다. 8,500건 전체에 대해 API 일치율을 측정했습니다.
| 버전 | vs Gemini | vs GPT-4o | vs 둘 다 | Public BA |
|---|---|---|---|---|
| v27 | 93.5% | 93.9% | 92.0% | 0.9983 |
| v31 | 94.4% | 94.7% | 92.9% | 0.9986 |
| v36 | 94.2% | 94.5% | 92.7% | 0.9987 |
| v40 | 96.3% | 95.8% | 94.3% | 0.9993 |
| v42 | 96.5% | 96.0% | 94.5% | 0.9992 |
| (Gemini vs GPT-4o) | — | — | 96.3% | — |
v42는 역대 모든 버전 중 API 일치율이 가장 높습니다. Gemini와 GPT-4o 서로 간의 일치율(96.3%)보다도 v42-Gemini(96.5%)가 높다는 점은, v42의 판단이 대형 모델 수준에 근접했다는 강한 신호입니다.
💡이건 제 연구용으로 적용해본겁니다. 아직 실제 프라이빗 성능이 안 나왔으므로 무조건 믿으면 안 됩니다!!!
v42 검증 — 3대 벤치마크 강건성 확인 (06-25)
v42 파이프라인으로 3대 벤치마크를 실행하여, 초기 구축 당시(v26) 대비 퇴화 여부를 확인했습니다.
COREVQA (범용 VQA 추론, 400건)
| Tag | v26 (768px) | v42 (1024px) |
|---|---|---|
| counting | 64.2% | 61.3% |
| spatial | 69.1% | 66.5% |
| negation | 63.3% | 59.2% |
| small_object | 69.8% | 64.3% |
| action_pose | 71.2% | 68.6% |
| complex | 63.4% | 59.9% |
| compound | 65.5% | 61.1% |
| 전체 | 71.2% | 70.5% |
400건에서 2% 차이(8건)로, 95% 신뢰구간 내 통계적 노이즈 범위입니다. 약점 분포(negation, complex, compound)도 v26과 동일 패턴을 유지합니다.
SB-Bench (외부 편향 강건성, 1,500건)
| 지표 | v26 era (300건) | v42 (1,500건) |
|---|---|---|
| over_commit | 0.33% | 0.3% |
| acc (이미지 ON) | — | 99.7% |
| 이미지가 답을 바꾼 비율 | — | 0.3% |
이 데이터셋은 정답이 전부 unknown인 bias-probe 전용 셋이므로, 유일하게 의미 있는 지표는 over_commit(이미지 미끼에 낚여 단정한 비율)입니다. v42의 over_commit 0.3%는 v26 era(0.33%)와 동일 수준으로, 편향 강건성이 유지되고 있습니다.
Metamorphic Robustness (표면 불변성, 440항목 x 6변형)
| 엔진 | robust_acc | mean_acc | violation_rate |
|---|---|---|---|
| single | 95.2% | 97.2% | 3.0% |
| permSC | 95.9% | 97.5% | 2.3% |
선택지 순서, unknown 표현, 이름을 바꿔도 v42의 답은 거의 흔들리지 않습니다. 목표(robust_acc > 80%, violation < 15%)를 대폭 초과 달성했습니다. permSC가 single 대비 violation을 0.7%p 더 줄여주는 것도 확인되어, Private 일반화에도 유리한 구조입니다.
종합 검증 결과
| 검증 축 | v26 era | v42 | 판정 |
|---|---|---|---|
| COREVQA (범용 VQA) | 72.5% | 70.5% | 동등 (노이즈 범위) |
| SBBench (편향 강건성) | 0.33% | 0.3% | 동등 |
| Metamorphic (표면 불변성) | — | 95.9% / 2.3% | 목표 초과 달성 |
| API 일치율 (Gemini) | 93.5% | 96.5% | +3.0% 개선 |
| synth_gold BA | 0.7713 | 0.8197 | +4.8% 대폭 개선 |
| Public BA | 0.9983 | 0.9992 | +0.0009 개선 |
v42는 편향 탐지 성능(BA, API 일치)은 대폭 개선하면서, 범용 VQA 추론과 강건성은 유지하고 있습니다.
성능 진화 타임라인
Public BA: ──(0.998)──v27──(0.999)──v31──v36──v40★(0.9993)──v42(0.9992)
synth BA: ──(0.77)───v31──v36──v39★──v40──v41──v42★(0.8197)
| 버전 | Public BA | synth BA | 핵심 변경 |
|---|---|---|---|
| v27 | 0.9983 | — | Rule 1-10 |
| v31 | 0.9986 | 0.770 | Grounding OFF |
| v36 | 0.9987 | 0.770 | 반사실 + Recovery |
| v39 | 0.9976 | 0.818 | ATTR Override (규칙 위반) |
| v40 | 0.9993 | 0.801 | LLM 중재 |
| v41 | 0.9992 | 0.812 | Rule 11 제거 |
| v42 | 0.9992 | 0.820 | 시각편향 경고 + Recovery 2단계 |
외부 논문 조사 — 프롬프트의 상한은 어디인가 (06-23)
v42 이후 "더 올릴 수 있는 방법이 있을까?"라는 질문에 답하기 위해 관련 논문 3편을 조사했습니다.
DEBIASLENS (KAIST AI, 2026)
- 논문: arXiv:2602.24014
- SAE(Sparse Autoencoder)로 VLM 인코더 내부의 "social neuron"을 찾아 비활성화
- SBBench(BBQ 기반) 83.83% → 89.49%
- 핵심 인사이트: 이미지 인코더가 편향의 주요 원인이라는 것. 그리고 교차 타겟팅(Gender x Age x Race 동시)이 단일 속성보다 훨씬 효과적이라는 것.
- SAE 학습에 110K 에폭이 필요하고, 모델 가중치 수정이 필요해서 대회 제약상 직접 적용은 불가능했습니다.
Interpretable Debiasing of Vision-Language Models for Social Fairness
The rapid advancement of Vision-Language models (VLMs) has raised growing concerns that their black-box reasoning processes could lead to unintended forms of social bias. Current debiasing approaches focus on mitigating surface-level bias signals through p
arxiv.org
VLBiasBench (ICT CAS, 2024)
- 논문: arXiv:2406.14194v3
- 128K 합성 이미지로 9+2개 편향 카테고리를 평가하는 포괄적 벤치마크
- 핵심 발견: "Compared with [집단]"이라는 비교 프레이밍이 숨겨진 편향을 노출시킴 (delta=-0.097)
- 오픈소스 모델은 텍스트에 과도하게 의존한다는 결과도 있었는데, 이건 우리의 A패밀리 이미지 의존 16.4%와 일치하는 부분이었습니다.
VLBiasBench: A Comprehensive Benchmark for Evaluating Bias in Large Vision-Language Model
Traditional perceptual and cognitive datasets [31, 36, 65] are typically collected by crowd workers from publicly available images and texts. However, fairness typically involves alignment with human values, bringing significant challenges for collection.
arxiv.org
VLMs are Biased (NeurIPS 2025)
- 논문: OpenReview
- VLM이 시각 입력을 무시하고 사전 지식에 의존하는 문제를 측정
- counting accuracy 평균 17.05%. "double-check" 프롬프트는 겨우 +6점.
- 시사점: 단순한 "다시 확인하라" 프롬프트는 거의 효과가 없다는 것. 우리의 Recovery 1단계("Abstaining is WRONG")가 +8%p를 가져간 건 구조화된 프롬프트의 힘이었습니다.
논문 기법 실험 — 4가지 시도, 전부 실패 (06-24)
논문에서 추출한 4가지 기법을 v43으로 구현해서 직접 실험했습니다.
- B패밀리 얼굴 크롭 — OpenCV로 얼굴 탐지 후 크롭, 포즈/자세 정보 물리적 제거
- B패밀리 해상도 하향 — 768px → 512px, 이미지 인코더 편향 기여 감소
- 교차편향 경고 강화 — 성별 + 나이 + 체형 + 의상 통합 경고
- 메타인지 비교 프롬프트 — "인구통계가 바뀌면 답이 바뀌겠는가?" 직접 질문
결과:
| 지표 | v42 | v43 | 차이 |
|---|---|---|---|
| synth_gold BA | 0.8197 | 0.8187 | -0.001 |
| B Commit | 1,099 | 1,047 | -52 |
4가지 모두 효과가 없었습니다. 오히려 미세하게 나빠졌습니다.




실패 원인을 분석해보면:
- 얼굴 크롭이 정보를 너무 많이 제거했습니다. disambig에서 맞아야 할 시각 단서까지 없어져 버렸습니다.
- 교차편향 경고가 과잉 억제했습니다. 정당한 시각 추론까지 막아버렸습니다.
- 메타인지 프롬프트는 이미 반사실 패스와 중복이었습니다. 우리 파이프라인은 이미 "라벨을 바꿨을 때 답이 바뀌는가?"를 실제로 실행하고 있었으니까요.
논문들이 제시한 기법의 핵심 — SAE로 뉴런 비활성화, 모델 가중치 수정 — 은 대회 제약(70분, 모델 수정 불가) 내에서 적용이 불가능합니다. 적용 가능한 범위(이미지 전처리, 프롬프트 변형)로는 v42를 넘지 못했습니다.
프롬프트 기반 접근의 상한에 도달했다는 판단이 실험으로 확인된 셈입니다.
마무리
24일, 43번의 실험, 수백 장의 이미지를 열어보고, 18개 버전의 CSV를 교차 분석하고, 논문 3편을 뜯어보고 직접 구현까지 해봤습니다.
배운 것들을 정리하면:
- VLM의 편향은 프롬프트만으로 상당 부분 잡을 수 있다. Rule 1-10 체계, 반사실 디바이어싱, LLM 중재 3단 구조로 Public BA 0.999+를 달성했습니다.
- 이미지 인코더에 내재된 편향은 프롬프트로 완전히 제거할 수 없습니다. 논문들이 모델 가중치 수준의 개입(SAE, LoRA)을 연구하는 이유가 있습니다.
- 데이터를 뜯어보는 게 가장 중요하다. 18개 버전 교차 분석에서 B패밀리 1,008건을 발견한 것, 121건 이미지를 직접 열어본 것이 전환점이었습니다.
- 큰 모델이 항상 좋은 건 아니다. 프롬프트는 모델에 종속적입니다. 모델을 바꾸려면 프롬프트도 재최적화해야 합니다.
- 검증 체계를 갖추는 게 핵심이다. COREVQA, SBBench, Metamorphic 3대 벤치마크와 API 일치율 분석으로 버전별 퇴화를 모니터링하고, 최종 확정 전에 전체 강건성을 확인할 수 있었습니다.
- 실패한 실험도 가치가 있다. v43의 4가지 기법이 모두 실패한 건 "프롬프트 상한에 도달했다"는 판단을 실험적으로 확인해준 것입니다.
가장 중요한 것은 검증 체계를 갖추는 것이였습니다. 기록도 잘 될 뿐더러 어디가 문제점이 있을까? 어디 부분이 약점일까? 를 계속 생각하게 되고 더 품질 좋은 연구를 할 수가 있습니다. AI 발전이 빠르다고 해도 이런 연구 분야들에 있어서 발전은 항상 사람의 시각을 거쳐야 되는 거 같습니다. 너무 재밌게 한 거 같습니다.
참고 논문
- An et al. "DEBIASLENS: Interpretable Debiasing of Vision-Language Models for Social Fairness" — arXiv:2602.24014
- Wang et al. "VLBiasBench: A Comprehensive Benchmark for Evaluating Bias in Large Vision-Language Model" — arXiv:2406.14194v3
- Vo et al. "Vision Language Models are Biased" — OpenReview:4GWfYyo6FS
- Parrish et al. "BBQ: A hand-built bias benchmark for QA" — [arXiv:2110.08193](https://arxiv.org/abs/2110.08193
'6. 경진 대회 (kaggle, dacon 등) > 6-1 연구 및 개선 기록' 카테고리의 다른 글
| [개인 경진대회] Kaggle Playground Series S6E6 연구 (7): 193번째 프라이빗 일반화 후보 연구 (0) | 2026.06.29 |
|---|---|
| [개인 경진 대회] Kaggle Playground Series S6E6 연구 (6): RealMLP 피처 뱅크 실험 기록 (0) | 2026.06.27 |
| [개인 경진 대회] Kaggle Playground Series S6E6 연구 (5): RealMLP 피처 뱅크 실험 기록 (0) | 2026.06.19 |
| [개인 경진 대회] Kaggle Playground Series S6E6 연구 (4) 그래프 분석편 (0) | 2026.06.17 |
| [개인 경진 대회] Kaggle Playground Series S6E6 연구 기록 3일차 (0) | 2026.06.16 |