공공데이터로 RAG 뚝딱거려보기
RAG Playground (9부작)
- 1 공공데이터로 RAG 뚝딱거려보기 (현재 글)
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
AI Agent를 공부하면서 점점 더 느끼는 게 있어요. 결국 핵심은 AI에게 얼마나 좋은 컨텍스트를 줄 수 있느냐인 것 같더라고요. 사용자의 모든 정보를 무작정 다 때려넣을 수는 없으니까, 상황에 맞는 정보를 적재적소에 꺼내서 넣어주는 게 얼마나 중요한지 AI Agent 개발하면서 체감하고 있어요 🙂↕️
그래서 RAG는 앞으로도 계속 중요한 기술이 될 것 같고, 이참에 제대로 연습해보고 싶었어요.
업무 중에 AI Agent 솔루션을 개발하다 보면 프로젝트 맥락에 묶이다 보니 정작 하고 싶은 실험을 마음껏 해보기가 쉽지 않아서, 개인 학습 프로젝트를 하나 시작하기로 했습니다.
주제는 공공데이터포털 데이터로 RAG 에이전트 뚝딱거려보기 입니다!
기술 스택은 심플하게 — ChromaDB에 임베딩하고 벡터 서치로 컨텍스트를 만들어주는 구조로 시작할 거예요. LLM은 OpenAI나 Gemini 같은 대형 모델보다는 파라미터가 작은 오픈소스 LLM을 활용해볼 생각이에요. 너무 똑똑한 모델을 쓰면 RAG 효과가 잘 안 보이거든요 😅
왜 공공데이터포털인가?
직접 크롤링하자니 법적으로 애매한 것들이 많고, 유료 API는 학습용으로 쓰기엔 부담스럽고. 그러다 문득 생각난 게 공공데이터포털이었어요
대학교 때 프로젝트할 때나 SSAFY 할 때도 공공데이터포털에 생각보다 괜찮은 데이터가 많다는 걸 알게 됐는데, 수료 이후로는 쓸 일이 없어서 잊고 있다가 문득 떠오르더라고요
일단 공공데이터포털을 정리해보자면,
- 무료로 사용할 수 있고
- 공식 API라 법적 걱정이 없고
- 데이터 종류가 다양하고 (날씨, 교통, 의료, 부동산, 문화…)
실제로 의미 있는 데이터들이 많아서 RAG를 붙였을 때 재미있는 결과가 나올 것 같아요 👀
무엇보다, 실제 서비스에서도 공공데이터를 활용하는 경우가 꽤 많잖아요? 그냥 연습용 더미 데이터보다 훨씬 실전적인 경험이 될 것 같아요 👊
뭘 해보고 싶은가?
일단 지금 머릿속에 있는 것들을 나열해보면:
RAG 기법 실험
- 기본적인 Naive RAG부터 시작해서
- Hybrid Search (키워드 + 시맨틱)
- Re-ranking, Query Rewriting
- Agentic RAG (검색 전략을 에이전트가 스스로 결정)
공공데이터 활용 아이디어
- 날씨 데이터 기반 Q&A 에이전트?
- 지역별 의료기관 검색 에이전트?
- 부동산 실거래가 분석 에이전트?
…뭐가 재밌을지 해보면서 정해나갈 예정 🤔
기술 스택 탐구
- LangChain / LlamaIndex 비교
- 벡터 DB (ChromaDB, Qdrant, Pinecone 등) 비교 -> 일단 ChromaDB 사용할 예정.
- 다양한 임베딩 모델 비교
이것저것 많이 적었는데, 사실 다 할 수 있을지는 모르겠어요 😅 일단 천천히 해보면서 추가해나갈 예정이에요.
이 시리즈에서 기록할 것들
이 프로젝트를 진행하면서 블로그에 남기고 싶은 건 “잘 정리된 튜토리얼” 이 아닙니다.
그보다는:
- 왜 이 방법을 선택했는지
- 해보니까 어떤 문제가 생겼는지
- 삽질한 내용과 그 해결 과정
- 기대와 달랐던 것들, 예상보다 좋았던 것들
이런 날것의 기록을 남기고 싶어요. 저도 그렇고, 비슷한 걸 해보려는 분들한테 “아 이런 것도 있구나” 하는 참고가 되면 좋겠습니다 🫡
다음 포스트에선 적절한 공공데이터를 찾아 ChromaDB에 임베딩하고, 간단한 벡터 서치부터 진행해보겠습니다 😎