
[한국 전통주 RAG] 5편: 후기와 데모 시연
1. 프로젝트를 마치며 처음에는 단순히 “한국 전통주 데이터를 크롤링해서 RAG에 써보자”는 가벼운 아이디어였다. 하지만 진행하면서 데이터 크롤링 → 전처리 → Kaggle 공유 → 리트리버 파이프라인 → Gradio 데모까지, 작은 End-to-End RAG 프로젝트를 완성하게 되었다. 이번 경험을 통해 단순한 기술 실험이 아니라, 한국 전통 ...
1. 프로젝트를 마치며 처음에는 단순히 “한국 전통주 데이터를 크롤링해서 RAG에 써보자”는 가벼운 아이디어였다. 하지만 진행하면서 데이터 크롤링 → 전처리 → Kaggle 공유 → 리트리버 파이프라인 → Gradio 데모까지, 작은 End-to-End RAG 프로젝트를 완성하게 되었다. 이번 경험을 통해 단순한 기술 실험이 아니라, 한국 전통 ...
한국 전통주 RAG 프로젝트 4편: 리트리버 파이프라인 구현 데이터 전처리까지 끝났으니 이제는 본격적으로 리트리버를 설계할 차례다. 이번에는 내가 리트리버를 어떻게 구현 했는지에 대해서 정리해보려고 한다. 1. 말평 대회와 다른 점 지난 AI 말평 대회에서 가장 힘들었던 점은 쿼리와 컨텍스트의 형식이 너무 달랐다는 것이다. 예를 들어, ...
한국 전통주 RAG 프로젝트 3편: 데이터 전처리와 정리 HTML을 파싱해서 구조화된 JSON을 얻었지만, 그대로는 RAG에서 쓰기엔 부족했다. HTML에서 최대한 많은 정보를 추출하기 위해 다양한 데이터를 추출하다 보니 불필요한 데이터도 많이 섞여있고 가장 중요한 텍스트에도 불필요한 기호가 포함되거나 단계가 중복되거나 단위가 정규화 되지 않았다...
한국 전통주 RAG 프로젝트 2편: 데이터 크롤링과 파싱 RAG 시스템을 만들려면 데이터 확보가 가장 먼저다. 나는 우연한 계기로 잘 정리된 데이터를 찾았으니 반은 온 셈이다. 이번 편에서는 내가 어떻게 한국술 고문헌 DB에서 데이터를 긁어왔는지, 그리고 그 데이터를 어떤 방식으로 파싱했는지 정리해보려고 한다. 1. 처음엔 막막했던 구조 ...
한국 전통주 RAG 프로젝트 1편: 프로젝트 시작 이야기 2025년 여름, AI 말평 경진대회 예선을 마치고 나니 마음에 아쉬움이 남았다. “시간이 조금만 더 있었으면 더 좋은 모델을 만들 수 있었을 것 같은데….”라는 생각을 정말 많이 한것 같다. 이번 대회부터 본선 평가는 말평 아레나라는 것을 통해서 진행하는데, 국어 관련 전문가들이 우리가 만...
13. 예선 후기 - 턱걸이지만 본선 진출! 지금까지는 우리 팀이 구현한 RAG, GRPO 기반 학습 파이프라인을 차례로 정리해왔다. 이번 글에서는 드디어 대회 예선 결과와 소감을 공유한다. 1) 예선 결과 최종 제출 성적은 아래와 같다. 팀 최종 점수: 64.12 최종 순위: 10위 결과: 예선 통과 예선 동안 고생하신...
12. GRPO 학습 결과와 제출 성적 공유 #11까지는 구현과 메모리 관리였다면, 이번 편은 실제로 GRPO 학습을 통해 얻은 결과와 대회 서버 제출 성적을 공유한다. 1) WandB 학습 곡선 아래는 학습 중 WandB에서 기록한 지표들이다. multi_reward/mean: 초반 0.35 → 0.7 부근까지 상승 후 안정화 ...
11. GRPO 학습 구현 저번에 개념과 보상 아이디어를 정리했다면, 이번 편은 실제 구현이다. 팀원분의 조언에 따라 콜백(CallBack)을 통해 저장 시점마다 자동 검증 추론 → JSON 저장 → 한 번에 스코어링 → 최고 성능 체크포인트 선택 파이프라인을 구성했다. 1) 데이터/프롬프트 파이프라인 CustomData...
AI 말평 대회 참여기 #10: 3주차(2) - GRPO 기반 강화학습과 DeepSeek 사례 지난 글에서는 듀얼 인코더가 구조적으로 한계가 있음을 확인했고, 우리 팀은 PPL 기반 candidate + 강화학습(RL)으로 gold 문맥을 선택하는 전략을 채택했다. 이번 글에서는 내가 맡은 GRPO 트레이너 파트에 대해 공부한 내용을 정리한다. ...
AI 말평 대회 참여기 #9: 3주차(1) - 커스텀 듀얼 인코더 파인튜닝과 전략 전환 지난 편(#8)에서는 Sentence-Transformers 기반의 간단한 듀얼 인코더로 Retrieval을 구현했다. 이번에는 직접 DualEncoder 모델을 정의하고 파인튜닝을 시도했지만, 예상보다 성능이 낮게 나왔다. 이 글에서는 그 이유와 앞으로의 방향성...