3일간 AI Challenge 2를 진행한 후의 회고
AI Challenge! 가 뭐냐면.
싸피에서 진행한 AI 챌린지 중 두 번째로, VQA 모델을 만들고 캐글에서 순위를 겨루는 AI 실전이다. 첫 번째 챌린지는 개인으로 하루 동안 진행되었고, 이번 두번째 챌린지는 넷 혹은 다섯이서 팀을 이뤄 함께 참여했다. 총 3일간 진행되었는데 휴일 기간에도 제출을 할 수 있어 사실상 아직 진행 중이다.
나는 알고리즘 스터디원들과 함께 넷이서 참여했다. 짧은 기간이었지만, 이번 챌린지는 이전에 혼자 모델을 학습시켰을 때와는 꽤 다른 경험으로 남았다.
첫 번째 참여했을 때는 성능을 높이기 위해 에폭이나 학습량을 바꾸고, 모델을 교체한 뒤 점수가 어떻게 달라지는지 확인하는 데 집중했다. 물론 그런 실험도 필요하지만, 당시에는 왜 점수가 달라졌는지 설명하거나 다음 실험의 방향을 정하는 일이 막막했다. 하지만 이번에는 달랐다. 팀원이 "파이프 라인"을 제안한 것이다. 모델 학습에 전략이 있다니.
이렇게 저렇게해서 요렇게 저렇게 하면 어떨까요. 이거랑 저거 써서... 아님 요거나 그거? 이래요래 해서 안되면 이러쿵 저러쿵......

네?
솔직히 9할 정도는 못 알아들었지만 지난 챌린지와 무언가 다르게 흘러가고 있다는 것은 알 수 있었다.
우리 팀의 모델은 Qwen2.5-VL-3B-Instruct에 데이터 200개를 학습한 베이스라인에서 출발했다. 첫 정확도는 0.69였다.
우리의 전략은 이랬다. 모델에 이미지를 그대로 넣으면 필요한 정보를 놓칠 수 있으니 질문에 관련된 영역을 바운딩하고, 그 부분을 크롭해 모델에 전달하는 것이다. 처음에는 크롭한 이미지에서 OCR로 글자를 뽑고 선택지와 비교하려 했지만, OCR 모델을 찾는 과정에서 Qwen 자체의 문자 인식 성능이 좋다는 사실을 알게 됐다. 굳이 별도의 OCR 단계를 둘 필요가 없다는 결론이 나와 크롭 이미지를 Qwen이 직접 읽고 답하도록 방향을 바꿨다.
설계가 곧바로 원하는 대로 동작한 것은 아니었다. 모델이 반환한 바운딩 박스 좌표는 정규화된 값이라 실제 이미지에서 엉뚱한 위치를 가리켰다. 좌표를 픽셀 기준으로 보정해야 했다. 원본 이미지는 대부분 720픽셀 이상인데 추론 입력은 384픽셀이라 작은 글자가 뭉개지는 문제도 있었다. 해상도를 높이자 정답률도 함께 올라갔다.
이후에도 크고 작은 문제들이 있었는데 이 과정이 의외로 재미있었다. 계획한 파이프라인이 한 번에 완성되지는 않았지만 문제가 생길 때마다 결과를 확인하고 자료를 찾아보면서 설계를 조금씩 완성해 나갔다. 이론으로만 배울 때는 잘 느끼지 못했던 실전의 감각이 이런 것이 아닐까 싶었다.
Qwen3-VL-2B-Instruct로 train 데이터 중 무작위 500개를 추려 모든 문항에 크롭을 적용했을 때 정확도는 0.84였다.
처음에는 크롭을 적용하면 당연히 더 잘 읽을 거라고 생각했다. 결과는 그렇게 단순하지 않았다. 못 맞히던 문제를 맞히게 해주기도 했지만, 원래 맞힐 수 있던 문제를 틀리게 만들기도 했다.
[안내문, 절차, 긴 문장] 유형은 0.775에서 0.875로 올랐고, [고유명사, 상호, 장소명] 유형도 0.904에서 0.923으로 상승했다. 작은 글자나 특정 영역의 정보가 중요한 문제에서는 크롭이 실제로 도움이 된다는 걸 확인한 것이다. 반면 [제외, 부정 비교] 유형은 0.720에서 0.600으로 떨어졌다. 이미지를 잘라내는 과정에서 문제를 푸는 데 필요한 전체 맥락까지 사라졌기 때문이다.
공식 문서를 찾아보면서 Qwen이 여러 이미지를 함께 입력받을 수 있다는 점을 확인했다. 이후 크롭 이미지만 넣던 방식에서 원본 이미지와 크롭 이미지를 함께 넣는 방식으로 바꿨다. 원본으로 전체 맥락을 유지하고, 크롭으로 세부 정보를 보완하려는 선택이었다.
모델에 전체 데이터의 절반을 학습했을 때 정확도는 0.866, 전체 데이터를 학습했을 때는 0.888이었다. 여기에 원본과 크롭 이미지를 함께 사용하는 전략을 적용하자 0.941까지 올랐다. 우리가 세운 가설이 실제 점수로 이어진 순간이라 정말 기뻤다. 학습량, 이미지 해상도, 입력 방식이 모두 의미가 있을 수 있다는 것을 결과로 확인했다.
그리고 드디어 모델을 변경해보기로 했다. 좋다는 소문이 파다한 Qwen3.5-9B. 기대가 너무 커서 점수가 낮게 나올 거라는 생각도 안했다. 사실 첫 추론에선 최대 생성 토큰 수 설정이 잘못돼 모든 답을 A로 내놓는 사건이 있었다. 0.2점 대의 대단한 점수도 기록으로 남았다. 이후 설정을 바로잡고 전체 데이터 파인튜닝과 크롭을 적용한 실험에서는 0.960이 나왔다. 기대했던 모델이 기대한 만큼의 점수를 냈을 때 느낀 기쁨은 생각보다 컸다.
반대의 순간도 있었다.
위의 실험에 +프롬프팅 을 한 모델이 동시에 추론을 하고 있었다. 0.96을 본 우리는 불을 발견한 원시인 마냥 이 불에 구워질 고기를 기대하고 있었다. 하지만 파인튜닝 없이 프롬프트를 적용한 결과는 0.945였고, 파인튜닝과 프롬프트를 함께 적용한 결과도 0.959였다... 둘 다 파인튜닝과 크롭만 사용한 0.960을 넘지 못했다. 좋아 보이는 기술을 하나 더 얹는다고 성능이 반드시 좋아지지는 않았다. 기대를 많이 한 탓인지 약간 슬프기까지 했다.

마지막에는 새로운 분류를 시도했다. 처음의 규칙 기반 분류는 질문에 특정 단어가 있는지를 보는 방식이라 범용성이 부족했다. 오답을 살펴봤을 때에도 기타 분류가 많았다. 그래서 먼저 LLM이 train 데이터의 문제 유형을 분류하게 하고, 텍스트와 숫자를 함께 이해해야 하는 어려운 문제만 Qwen3.8-27B로 보내는 분기 전략을 시도했다.
다만 Colab 자원이 거의 끝나가던 시점이라 충분히 검증하지 못한 채 급하게 추론을 진행해야만 했다. 결과는 0.959였다. 아쉬움은 남았지만, 큰 모델을 쓰는 것만으로 문제가 해결되지는 않는다는 사실을 다시 확인했다. 이 마지막 도전에 새로운 전략을 사용한 만큼 또 다시 좋은 점수를 기대했는데... 아쉬움은 남지만 전략이 유효한지 검증한 건 아니니 아직 다음이 있다.
3일 동안 점수 하나에 이렇게 기뻐하고 실망할 줄은 몰랐다. 점수가 오를 것이라고 확신했던 실험이 잘되면 신이 났고, 좋은 기술을 더했는데 오히려 내려가면 허탈했다. 그래도 그 감정까지 포함해서 재미있었다. 결과를 기다리는 시간이 길어질 수록 더 기대하게 되었고, 회의를 하며 오가는 아이디어를 듣고만 있어도 지식이 쌓이는 것만 같았다. 실제로 이 팀전에 내 기여도는 크지 않지만, 진행 중 가장 많은 것을 얻어간 사람은 나일지도.
이번 챌린지를 거치며 AI 모델에 대한 이해도가 확실히 높아졌다고 느낀다. 모델 구조나 파인튜닝을 이론으로 배운 것과는 달랐다. 이미지 해상도와 입력 구성, 프롬프트, 모델 설정이 서로 영향을 주고, 좋아 보이는 조건끼리도 충돌할 수 있다는 사실을 직접 겪었다. 완벽한 정답이 없는 문제에서 근거를 모아 다음 풀이를 정하는 경험이었다. 마지막에 다른 팀의 발표를 보면서도 많이 배웠다. 같은 데이터와 같은 목표를 두고도 접근 방법은 정말 다양했다. 우리가 떠올리지 못한 기발한 전략이 있었고, 실제로 점수를 높인 방법은 직접 다시 실험해 보고 싶었다.
혼자였다면 어쩌면 아예 시도조차 하지 못했을 거다. 팀원들과 함께였기 때문에 끊임없이 새로운 것을 들을 수 있었다. 서당개가 3년만에 풍월을 읊는데는 이유가 있다. 듣는 건 정말 큰 도움이 된다. 한 편으론 아쉬움도 남는다. 시작할 때 실험 계획과 역할을 조금 더 구체적으로 나눴더라면 시간 자원의 낭비 없이 더 많은 가설을 검증해 볼 수 있었을 것이다. 또 추석 연휴에 시간을 더 쓸 수 있었더라면 좋았을 것 같다. 아직 탐색할 수 있는 덜 밝혀진 맵이 눈 앞에 한참은 더 있는 느낌이다.
사실 최종 성적이 아주 높은 편은 아니었다. 그래도 0.69에서 시작해 처음 0.96 라는 점수를 확인했을 때는 정말 기뻤다. 반에서 박수를 치며 좋아했다. 반 꼴찌로 시작한 우리 모델이 (슬슬 자식으로 여겨졌다) 아주 크게 성장한 것만 같았다. 숫자 자체보다 우리가 세운 가설과 검증이 실제 개선으로 이어졌다는 사실이 좋았다. 물론 숫자도 좋았다.
나는 경험의 가치를 높게 두는 편이다. 새로운 경험일수록 점수를 높게 준다. 이번 3일은 완전히 새로운 스킬을 새로 해금한 즐거운 시간이었다. 연휴 기간 아직 캐글 대회가 열려 있기 때문에 우리팀의 열정이 넘치는 팀원들은 조금 더 시도를 해볼 성싶다. 정말 응원함!!