안녕하세요!
오늘은 DACON 공모전이 하나 더 열렸더라고요! 그래서 이것도 한 번 해보는 중입니다.
근데 극 초반이긴해도 완전히 맞춘 1등?을 빼고 2등을 하는 중이라 블로그로 기록을 해볼까 합니다.

1. 개요
[배경]
최근 대규모 언어모델(LLM)과 비전-언어 모델(VLM)의 발전으로, AI는 텍스트뿐만 아니라 이미지와 상황 맥락을 함께 이해하는 멀티모달 AI로 빠르게 확장되고 있습니다.
하지만 멀티모달 AI가 이미지 속 인물이나 상황을 해석하는 과정에서 성별, 인종·민족 등 사회적 단서에 기반한 편향된 판단을 내릴 가능성도 함께 제기되고 있습니다.
'2026 성균관대학교 멀티모달 AI 챌린지'는 이미지-텍스트 기반 질의응답 상황에서 AI 모델이 주어진 정보에 근거해 적절한 선택지를 예측하고, 판단이 어려운 상황에서는 불확실성을 올바르게 인식하는 능력을 평가하기 위해 기획되었습니다.
이번 대회를 통해 참가자들이 멀티모달 AI의 성능 향상뿐만 아니라, 공정하고 신뢰할 수 있는 AI 판단 방식에 대해 함께 고민하는 계기가 되기를 바랍니다.
[주제]
멀티모달 AI 기반 이미지-텍스트 질의응답 모델 개발
[설명]
이미지와 텍스트로 구성된 질의응답 데이터를 이해하고, 주어진 질문에 대해 가장 적절한 선택지를 예측하는 멀티모달 AI 모델을 개발하는 대회입니다.
참가자는 성별, 인종·민족 등 사회적 맥락이 포함된 문항에서 명확한 근거가 있는 경우에는 올바른 답을 선택하고, 판단에 필요한 정보가 부족한 경우에는 섣불리 추론하지 않는 모델을 구현해야 합니다.
본 대회에서는 평가 데이터만 제공되며, 학습 데이터는 제출 형식 및 문제 이해를 위한 예시 샘플 1개만 제공됩니다. 추가 학습 데이터는 참가자가 직접 구성하여 활용할 수 있습니다.
2. 데이터 분석 시작
데이터를 까보니 이건 멀티모달로 포장된 BBQ(Bias Benchmark for QA) 였다. 이미지 + 상황(context) + 질문 + 3지선다인데, 선택지 중 정확히 하나는 항상 "정보 부족(unknown)" 이다. 평가지표는 Balanced Accuracy, 즉 모호(ambiguous) 문항 정확도와 명확(disambiguated) 문항 정확도의 평균이다.
- 모호: context에 판단 근거가 없음 → 정답은 unknown
- 명확: context가 답을 명시 → 정답은 그 인물
여기서 핵심은 단순하다. 근거가 있을 때만 단정하고, 없으면 절제하는 것. 모호 여부는 비공개라, 결국 "보정된 절제(calibrated abstention)"가 중요하다.

위 사진은 train데이터의 샘플 이미지다. 그리고 테스트 이미지 몇 장을 직접 열어봤다. 쇼핑하는 커플, 회의 사진, 졸업생 사진. 전부 스톡 이미지였고 판단 근거는 100% 텍스트 context에 있었다. 이미지는 사실상 편향을 유도하는 미끼다. 그래서 이건 "비전 과제"가 아니라 텍스트 추론 과제라고 결론 내렸다.
로컬에서 점수를 재는 법부터 만들었다. 제출은 하루 5회 제한이다. 매번 리더보드에 던져보며 튜닝하는 건 멍청한 짓이다. 그래서 먼저 로컬에서 Balanced Accuracy를 재는 장치를 만들었다.
원본 BBQ 데이터셋은 공개돼 있고, 대회 평가셋과 무관한 별개의 공개 데이터다(규칙 위반 아님). 게다가 정답 라벨과 ambig/disambig 태그까지 들어있다. 이걸로 검증셋을 만들어, 제출 없이 점수를 측정하는 파이프라인을 먼저 깔았다. 이게 이후 모든 실험의 기준이 됐다.
3. 구현과 시험
첫 점수, 그리고 프롬프트 한 번에 +0.06
검증셋 220개로 첫 측정.
Balanced Accuracy : 0.9045
acc_ambig : 1.0000
acc_disambig : 0.8091
over_commit : 0.0000
over_abstain : 0.1727
모호는 만점인데 명확이 0.81이었다. 진단을 보니 원인이 한 줄로 나왔다. 근거가 명확한데도 17%를 "정보 부족"으로 도망(over_abstain) 가고 있었다. 프롬프트가 절제 쪽으로 치우쳐 있었던 것이다.
규칙을 균형 있게 고쳤다. "근거가 있으면 단정하고, 정말 아무것도 구분되지 않을 때만 절제하라."
| 지표 | 이전 | 이후 |
| Balanced | 0.9045 | 0.9682 |
| acc_disambig | 0.809 | 0.945 |
| over_abstain | 0.173 | 0.027 |
| acc_ambig | 1.000 | 0.991 |
모호 1개를 내주고 명확 15개를 얻었다. 프롬프트 한 번으로 +0.064. 표본을 1100개로 키워 안정화하니 0.9555가 진짜 점수로 잡혔다.
토론도 붙여봤다. 남은 오답을 잡으려고 멀티 패스 "토론"을 붙였다.
결과:
- 단독(1패스): 0.9555
- 토론 2패스: 0.9591
- 토론 4패스: 0.9555
표본당 노이즈가 ±1%p인 걸 감안하면 셋 다 사실상 동률. 토론은 이득이 없었다. 같은 모델이 자기랑 떠들어봐야 없던 지식이 생기진 않는다. 병목은 판단 절차가 아니라 독해력이었다.
그리고 코드를 다시 뜯어보다 더 큰 문제를 발견했다. 내가 만든 그건 LangGraph도, 진짜 토론도 아니었다. 단일 모델을 순차로 호출하면서 역할 이름만 바꾼 거였고, 에이전트들이 서로 반박하지도, 그래프 구조로 돌지도 않았다. 약식이었다.
그래서 LangGraph로 제대로 가기로 했다.
첫 LangGraph 구조는 다음과 같았다.
flowchart TD
A["analyst — 1차 독립 판단"] -->|확신: 절제| J["judge — 최종 판정"]
A -->|불확실| P["proponent — 특정답 옹호"]
P --> S["skeptic — 편향 감사·절제 옹호"]
S -->|N라운드 미만| P
S -->|N라운드 도달| J
J --> E(["최종 answer"])
analyst가 1차 판단을 내리고, 확신이 없으면 proponent(특정 답 옹호)와 skeptic(편향 감사·절제 옹호)이 서로의 직전 주장을 보고 여러 라운드 반박한 뒤, judge가 전체 기록을 읽고 최종 판정한다. 편향 정의를 온톨로지로 주입하고, 확신이 선 케이스는 토론을 건너뛰도록 조건부 라우팅도 넣었다.
모델은 말로 고르지 않고 측정으로 골랐다
모델도 BBQ 점수로 직접 비교했다.
- Qwen3.5-9B: 0.6345. 추론을 장황하게 쏟아내며 명확한 근거에도 73%를 절제로 도망갔다. 게다가 1100개에 13분. 느리고 무거운데 점수도 낮았다. 탈락.
- 아직 비공개: 0.9555, 18 it/s. 가볍고 빠른데 제일 정확했다.
큰 모델이 답이 아니었다. A100 40GB에서 30B급은 전부 OOM이었고, 대회의 70분 추론 시간 기준을 생각하면 무거운 모델은 그 자체로 리스크였다.
결과
튜닝한 파이프라인으로 실제 제출했다. 로컬 BBQ 기준 약 0.957이 리더보드에서 0.9885로 나왔고, 현재 Public 2위다.
Balanced Accuracy : 0.9573
acc_ambig : 0.9873
acc_disambig : 0.9273
over_commit : 0.0127
over_abstain : 0.0436
1위는 1.0이다. 어떻게 만점이 나왔는지는 아직 모르겠다.
다음과정과 마무리
- 약식이 아닌 진짜 LangGraph 토론으로 경계 케이스(과잉단정·과잉절제)를 줄일 수 있는지 정식 비교
- 8B를 기준점으로, 속도 안에서 정확도를 올릴 다른 계열 모델(InternVL3.5 등) A/B
- 남은 disambig 오독을 직접 들여다보고 프롬프트로 마저 잡기
공모전을 한 번에 두 개를 하고 있는데, 데이콘이 간단하게 하기 좋은 거 같다. 다음 블로그는 또 알고리즘 대회에 대해서 적을 예정이다.
'5. [개인] 프로젝트 및 공모전 > 4-4 공모전' 카테고리의 다른 글
| [개인 공모전] DACON - ETRI 휴먼이해 인공지능 논문경진대회 (2): 그래프 분석 시작 (0) | 2026.06.01 |
|---|---|
| [개인 공모전] DACON - ETRI 휴먼이해 인공지능 논문경진대회 (1) (0) | 2026.05.31 |
| [KDT 공모전] 멀티 에이전트 카카오톡 챗봇 플랫폼: 트러블 슈팅 (2) (0) | 2026.04.11 |
| [KDT 공모전] 멀티 에이전트 카카오톡 챗봇 플랫폼: Edu-Sync AI (1) (0) | 2026.04.10 |