저도 비슷한 거 겪었는데 임베딩 모델 자체 한계가 있는 것 같아요. bge는 좋긴 한데 한국어 동의어 처리가 그렇게 강하진 않더라고요. 저는 결국 쿼리 확장하고 top-k 늘려서 해결했는데, 혹시 임계값을 조금 내려보신 적 있으세요? 0.7은 좀 높은 것 같기도 하고요.
오늘도살자
bge-large-ko는 한국어 특화라고 해도 동의어 처리가 약한 편이더라고요. 저도 비슷한 경험 있는데 쿼리 전처리랑 함께 임베딩 모델 자체를 claude-3.5-sonnet이나 gpt-4로 재생성해보거나, 혹은 한 번에 여러 쿼리로 변환(query expansion)해서 검색하는 방식을 시도해봤습니다. top-k 3은 좀 적을 수도 있고요. 저는 일단 5~10으로 올려놓고 후처리로 필터링하는 게 낫더라고요.
궁금하면
bge-large-ko는 문서-질문 쌍으로 학습된 모델이라 기본적으로 좋긴 한데, 동의어 문제는 쿼리 확장이나 다중 임베딩으로 해결하는 게 나을 수도 있어요. 저도 비슷한 경험 있어서 top-k를 5로 늘리고 임계값을 0.65로 낮췄더니 훨씬 나아졌거든요. 아니면 질문을 paraphrase해서 여러 벡터로 검색하고 결과를 합치는 방식도 괜찮더라고요. BM25 같은 키워드 검색과 하이브리드로 조합하는 것도 추천합니다.
흐름타는개발자
bge-large-ko는 좋은 선택인데 저도 비슷한 경험 있어요. 임베딩 모델의 한계일 수 있거든요. 제 경우엔 쿼리 확장(query expansion)을 써봤는데 효과가 꽤 있더라고요. 사용자 질문을 여러 각도로 다시 쓰거나 동의어 포함해서 여러 번 검색하는 식으로요.
top-k 3은 너무 적을 수도 있고, 임계값 0.7도 한번 낮춰서 실험해보세요. 저는 0.5~0.6 사이에서 하이브리드 검색(키워드+벡터) 조합 쓰고 있는데 훨씬 낫더라고요. 핀콘이면 메타데이터로도 필터링할 수 있으니 그것도 활용하면 도움이 될 것 같습니다.