핵심 요약
- 레딧에서 칼 브랜드와 강재명을 추출하던 개발자가 눈덩이처럼 불어나는 제미나이 API 호출 비용을 절감하기 위해 오픈소스 소형 모델(GLiNER) 파인튜닝을 시도했습니다.
- 제미나이에게 9달러(약 4,290개 댓글)만 지불해 데이터 라벨을 뽑아낸 뒤 이를 교사 삼아 자체 모델을 훈련시켰습니다.
- 5번의 연속된 삽질과 디버깅 끝에 24분 만의 GPU 학습으로 F1 스코어 0.83을 달성하며 제미나이를 성공적으로 대체했습니다.
요약 고급 셰프용 칼에 빠진 한 개발자가 레딧(Reddit) 커뮤니티에서 사람들이 언급하는 브랜드, 모델명, 칼 강재(스틸 종류)를 자동으로 수집하기 위해 진행한 소형 AI 모델 파인튜닝 후기입니다.
처음에는 레딧 댓글마다 제미나이(Gemini 3.1 Pro) API를 호출해 개체명 인식(NER)을 처리했습니다. 성능은 뛰어났지만 수집되는 댓글 수가 늘어날수록 API 호출 비용이 감당하기 힘들 정도로 불어나는 문제가 있었습니다. 이에 개발자는 오픈소스 소형 모델인 GLiNER(459M)를 대체재로 검토했습니다. 하지만 사전학습된 GLiNER를 그대로 적용(제로샷)했을 때는 성능 지표(F1 스코어)가 약 0.65에 불과해 제미나이와의 격차가 컸습니다.
결국 개발자는 제미나이를 '일회성 교사'로 활용해 약 4,290개의 레딧 댓글에 자동으로 라벨을 달게 만들었습니다. 이때 라벨링에 든 비용은 단돈 9달러(약 1만 2천 원)였습니다. 프롬프트 작성 시 모델이 글자 위치 오프셋을 잘 맞추지 못한다는 점을 파악하고 단순 문자열과 라벨만 반환하도록 한 뒤 코드로 위치를 보정하는 등 정교한 전처리를 거쳤습니다.
학습 과정에서는 온갖 설정 오류와 버그로 인해 초기 5번의 시도가 완전히 실패하기도 했습니다. 특히 레딧 이모지 버그를 패치하면서 attention mask와 유사하게 생긴 words_mask 텐서를 잘못 채워 넣는 바람에 손실(loss)이 전혀 줄어들지 않고 삽질을 거듭해야 했습니다.
결국 문제를 해결한 끝에 Tesla T4 GPU에서 단 24분(GPU 비용 약 2.5달러) 만에 파인튜닝을 완료했고, 225개 검증 데이터셋에서 제미나이의 라벨링과 비교해 0.83의 높은 F1 스코어를 기록했습니다. 개발자는 단 9달러의 라벨링 비용과 며칠간의 디버깅 삽질을 거쳐, 앞으로 추가 비용 없이 로컬 환경에서 제미나이를 완벽히 대체할 수 있는 자체 모델을 구축해 냈습니다.
Sponsored · 광고