7장. 자체 임베딩과 벡터DB, 검색 품질
정리
- 임베딩은 글을 뜻이 담긴 숫자 줄로 바꾼 것입니다. 질문과 문서의 임베딩을 코사인 유사도로 견주면 낱말이 달라도 뜻으로 찾습니다. e5 모델은
query:,passage:를 붙여 씁니다. - 임베딩 모델은 언어, 크기, 차원, 라이선스로 고르고, 결국 우리 문서와 질문으로 재서 정합니다.
- 벡터DB 는 임베딩을 저장하고 빠르게 찾게 해 줍니다. FAISS 는 벡터만, Chroma 는 원문과 메타데이터까지 함께 담습니다. 작은 문서는 모두 견주는 Flat 이면 충분합니다.
- 조각은 주제 하나가 한 조각에 들게 나눕니다. 너무 작으면 뜻이 끊기고, 너무 크면 임베딩이 흐려집니다.
- 검색 품질은 정답 표를 만들어 hit@1, hit@k, MRR 로 잽니다. 틀린 질문을 하나하나 읽어 무엇을 고칠지 정합니다.
- 하이브리드 검색은 키워드와 의미 점수를 섞고, 재정렬은 후보를 크로스 인코더로 다시 줄 세웁니다. 늘 나아지지는 않으니 섞기 전후를 잽니다.
- RAG 에 붙일 LLM 은 같은 검색 결과와 프롬프트로 정답, 출처, 모를 때의 답, 시간, 라이선스를 표로 견주어 고릅니다.