사내 문서 RAG를 pgvector로 붙이고 있습니다. 임베딩은 text-embedding-3-small로 뽑고, 문서를 1000자 단위로 잘라서 넣었고, 검색은 코사인 유사도 top-5로 가져옵니다. 그런데 질문이랑 명백히 관련 있는 문단을 놔두고, 별로 상관없는 청크가 상위에 올라오는 일이 잦아요.
쿼리는 이렇게 날리고 있어요.
SELECT content, embedding <=> $1 AS dist
FROM docs
ORDER BY dist
LIMIT 5;청크 자체를 눈으로 보면 정답이 담긴 문단이 분명히 테이블에 있는데, 검색 결과에는 안 잡히거나 3~4등으로 밀려요. 임베딩 모델 문제인가 싶기도 하고, 자르는 방식 문제인가 싶기도 한데 어디부터 손대야 할지 모르겠습니다. 인덱스는 만들긴 했는데 이게 정확도에도 영향을 주나요?
댓글 0