RIMAN KOREA, 자연어 상품 검색으로 매출 상승 견인

by DD
2일 전
조회수 8

기존 상품명 기반 키워드 매칭 검색의 한계점으로 사용자 검색 실패율이 높아 매출 하락 문제 발생

Amazon Bedrock Knowledge Bases를 활용하여 원료명, 제형 등 자연어 기반 검색 시스템 구축 결정

AWS EBA 프로그램 통해 5인 팀이 5주 만에 MVP 완성, 검색 정확도 95% 달성

RAG 아키텍처, No Chunking, 하이브리드 검색, 병렬 처리 등 핵심 기술적 의사결정 공유

RAG 아키텍처 설계: No Chunking 전략의 선택

RIMAN KOREA는 상품 데이터의 특성을 고려하여 No Chunking 전략을 채택하였습니다. 일반적인 RAG 시나리오와 달리, 화장품 상품 데이터는 하나의 상품 정보가 여러 청크로 분리될 경우 맥락 손실(Context Loss)이 발생하여 검색 정확도가 저하되는 문제가 있었습니다. 예를 들어, '병풀 크림' 검색 시 성분 정보와 제품명이 분리되면 관련 상품 매칭에 실패할 수 있습니다. 상품 단위의 원자성(Atomicity) 유지를 위해 No Chunking을 선택하였으나, 이는 Amazon Titan Embeddings V2의 최대 입력 토큰 수(8,192 토큰) 제약으로 인해 상품별 텍스트 문서 크기를 관리해야 하는 과제를 안겨주었습니다. 따라서 데이터 전처리 단계에서 검색 불필요한 텍스트를 제거하는 정제 작업이 중요해졌습니다.

하이브리드 검색과 메타데이터 필터링을 통한 정확도 향상

초기 RAG 구현 시 순차 처리 구조의 응답 속도(Response Time) 문제(약 10초 소요)답변 정확도 편차를 해결하기 위해 하이브리드 검색과 메타데이터 필터링을 도입하였습니다. Vector Embedding 기반의 Semantic Search원본 텍스트 기반의 Lexical Search를 결합한 하이브리드 검색은 키워드 질문에 대한 일관성을 높였습니다. 그러나 Amazon Bedrock Knowledge Bases의 Retrieve() API는 가중치 조정이 불가능하고 복잡한 쿼리 처리에 제약이 있었습니다. 이를 보완하기 위해 브랜드, 가격대 등 메타데이터 필터링을 추가하여 검색 범위를 효과적으로 축소하고, 응답 속도와 정확도를 동시에 개선하는 성과를 거두었습니다.

병렬 처리 구조와 SSE 적용으로 응답 시간 최적화

기존 RetrieveAndGenerate() API의 순차 처리 방식은 응답 시간 지연의 주요 원인이었습니다. 이를 해결하기 위해 검색(Retrieve)과 응답 생성(Response Generation)을 병렬 처리하는 구조로 변경하였습니다. AWS Step Functions의 제약 사항을 극복하고자, 두 작업을 독립된 AWS Lambda 함수로 분리하여 동시에 호출하는 방식을 채택했습니다. 이 구조는 서버리스(Serverless) 인프라 비용 절감 효과와 함께, 검색 결과 준비 즉시 사용자에게 상품 카드를 전달하고 LLM 응답은 Server-Sent Events(SSE)를 통해 점진적으로 표시하는 스트리밍 UX(Streaming UX)를 구현했습니다. 결과적으로 목표했던 평균 응답 시간 2.5초 이내를 안정적으로 달성하였습니다.

멀티모달 OCR과 프롬프트 엔지니어링을 통한 데이터 품질 확보

상품 상세 페이지의 이미지 텍스트 추출을 위해 Claude Sonnet 3.5 v2의 멀티모달(Multimodal) 기능을 활용했습니다. 복잡한 디자인과 텍스트 배치가 많은 화장품 상세 페이지의 특성상, 일반 OCR로는 어려웠던 의미 단위 텍스트 그룹핑 및 추출이 가능했습니다. 또한, 화장품 도메인 특화 용어(성분명, 한약재명 등) 인식을 위한 정교한 시스템 프롬프트 엔지니어링과 도메인별 사전 기반 후처리 교정 단계를 적용하여 OCR 정확도를 극대화했습니다. 긴 이미지의 경우 자동 분할 및 겹침 영역(Overlap) 처리 로직을 구현하여 컨텍스트 손실을 최소화했습니다.

데이터 파이프라인 자동화 및 검증 프로세스 구축

상품 데이터의 수시 업데이트에 대응하기 위해 AWS Step Functions 기반의 서버리스 데이터 파이프라인을 구축했습니다. 전체 동기화(Full Sync)증분 동기화(Incremental Sync) 모드를 지원하여 신규/수정 상품 반영 속도를 높였습니다. 파이프라인 완료 후에는 자동화된 검증 Lambda가 테스트 쿼리를 동적으로 생성하여 검색 가능한지 확인하고, 결과를 S3에 저장하며 Slack으로 알림을 전송합니다. 실패 시 상세 정보 제공으로 빠른 원인 파악을 지원하며, 이는 지속적인 검색 품질 개선을 위한 피드백 루프(Feedback Loop)의 기반이 됩니다.

RIMAN KOREA의 Amazon Bedrock Knowledge Bases를 활용한 자연어 기반 상품 검색 시스템 구축기