AI가 거짓말 대신 진짜 데이터로 답하게 만들기
ChatGPT에게 물어보면 분명 그럴듯한 답변을 내놓습니다.
하지만 문득 이런 생각이 들었습니다. 저 공원들, 정말 존재하는 걸까?
LLM의 고질적인 문제, Hallucination. 사실이 아닌 내용을 마치 사실인 것처럼 말하는 현상입니다.
날씨, 맛집, 그리고 공원 정보처럼 구체적이고 최신의 데이터가 필요한 질문에는 치명적이죠.
그래서 생각했습니다.
"LLM의 상상이 아닌, 진짜 데이터를 기반으로 답할 순 없을까?"
답은 "RAG"에 있었습니다
RAG(Retrieval-Augmented Generation)는 간단히 말하면 이렇습니다.
"AI야, 너 상상하지 말고 이 자료 보고 답해."
외부 데이터베이스에서 관련 정보를 먼저 검색하고, 그걸 근거로 답변을 생성하는 방식입니다. 이 구조라면 서울시 공원 데이터를 DB에 넣어두고, 사용자 질문에 맞는 공원을 찾아 소개할 수 있겠다는 확신이 들었습니다.
서울시에서 공개한 공원 데이터 131개를 수집했습니다. 공원 이름, 위치, 면적, 시설 정보 등 실제 데이터만을 담았습니다.
`ko-sroberta` 모델을 사용해 각 공원 정보를 벡터(숫자 배열)로 임베딩했습니다. 컴퓨터가 '의미'를 이해할 수 있게 만드는 과정이죠.
Chroma라는 벡터 데이터베이스에 임베딩된 데이터를 저장했습니다. 이제 "송파구 근처"라는 질문이 들어오면, 의미적으로 유사한 공원 정보를 빠르게 찾아낼 수 있습니다.
사용자 질문 → 벡터 검색 → 관련 데이터 추출 → LLM이 자연스러운 답변 생성.
이 전체 흐름을 LangChain을 통해 연결했습니다.
누구나 바로 사용해 볼 수 있도록 간단한 웹 인터페이스를 만들었습니다.
같은 방식으로 병원 정보, 문화시설, 복지 서비스, CS 등 공공데이터를 활용한 다양한 RAG 기반 서비스를 만들 수 있습니다. 그리고 그 답변은 LLM의 상상이 아닌, 검증된 데이터에 근거하게 됩니다.
PM으로서 제가 만들고 싶은 AI 제품은
화려하지 않아도, 사용자에게 정확하고 신뢰할 수 있는 정보를 주는 서비스입니다.
---
이번 주말은 공원 산책 어떠신가요?
Gradio로 구현한 데모를 바로 경험해 보실 수 있습니다.
"송파구에 있는 공원 알려줘" 같은 질문을 던져보세요.
데모 링크: https://lnkd.in/gJRAXTRj