20분
"OEE"를 검색했는데 안 나온다
Day 2: Hybrid Search
"OEE"를 검색했는데 안 나온다
RAG 심화 > Day 2: Hybrid Search
학습 목표
의미 검색(Semantic Search)만으로는 부족한 이유를 이해한다 BM25 키워드 검색의 강점과 한계를 파악한다 Hybrid Search가 두 방식을 결합하는 원리를 설명할 수 있다
화요일 오전, 현장에서 전화가 왔다
"RAG 시스템에 'OEE 계산 방법' 물어봤더니 엉뚱한 답이 나와."
확인해보니 이런 상황이다:
질문: "OEE 계산 방법 알려줘"
[Semantic Search 결과]
1. "설비 효율성을 측정하는 다양한 방법론이 있습니다..." (유사도: 0.87)
2. "생산성 지표 관리의 중요성..." (유사도: 0.85)
3. "종합 설비 효율 개선 사례 연구..." (유사도: 0.84)
[실제 원하는 문서]
"OEE = 가동률 × 성능률 × 품질률" -> 이 문서는 6번째에 있다!
왜 이런 일이 발생할까?
의미 검색의 치명적 약점
임베딩 모델은 의미적 유사성을 잘 잡는다. 하지만 정확한 키워드 매칭에는 약하다.
쿼리: "OEE 계산"
임베딩이 이해하는 것: "설비 효율 관련 계산"
임베딩이 놓치는 것: "OEE"라는 정확한 약어
쿼리: "E-4521 에러"
임베딩이 이해하는 것: "에러/오류 관련"
임베딩이 놓치는 것: "E-4521"이라는 정확한 코드
쿼리: "ISO 9001:2015 요구사항"
임베딩이 이해하는 것: "품질 표준 관련 요구사항"
임베딩이 놓치는 것: "9001:2015"라는 정확한 규격 번호
제조 현장은 코드, 규격, 약어 투성이다. 의미 검색만으로는 절대 부족하다.
키워드 검색(BM25)의 강점과 한계
반대로 BM25 키워드 검색을 써보면:
쿼리: "OEE 계산"
BM25 결과: "OEE" 단어가 포함된 문서를 정확히 찾음! ✅
쿼리: "주축 과열 해결 방법"
BM25 결과: "주축", "과열" 단어가 포함된 문서만 찾음
놓치는 것: "스핀들 오버히트 트러블슈팅" 문서 ❌
-> "주축=스핀들", "과열=오버히트"를 모름
BM25는 정확한 단어는 잘 찾지만, 동의어와 문맥을 모른다.
Hybrid Search: 둘을 합친다
| 쿼리 유형 | BM25 | Semantic | Hybrid |
|---|---|---|---|
| "OEE 계산" | O (정확 매칭) | △ (의미만) | O |
| "설비 효율성 측정" | △ (단어 부분 매칭) | O (의미 이해) | O |
| "E-4521 에러" | O (코드 매칭) | X (일반화) | O |
| "장비 고장 원인 분석" | X (동의어 부재) | O | O |
| "스핀들 오버히트" | O (직접 매칭) | O | O |
| "주축 과열" | X (동의어) | O | O |
| "ISO 14001" | O | X | O |
| "환경 관리 체계" | X | O | O |
Hybrid = 키워드 검색의 정확성 + 의미 검색의 이해력
이번 Day에서 배울 것
오늘이 끝나면:
- BM25 알고리즘의 수학적 원리를 이해한다
- Score Fusion과 RRF 두 가지 결합 방법을 구현할 수 있다
- Query Expansion과 HyDE로 검색을 더 확장할 수 있다
- 제조 도메인에 최적화된 Hybrid Search를 만든다
시작하자.
AI로 학습하기 — 꿀팁
🧪OEE 키워드 검색 실패 원인 분석AI 학습 팁
OEE, MTBF 같은 제조 약어나 고유 설비명을 의미 기반 벡터 검색만으로 찾지 못하는 이유를 BM25 키워드 검색 보완의 필요성으로 연결해 이해해 보세요.
제조 RAG 시스템에서 'OEE 계산 방법'을 질문했을 때 벡터 의미 검색(Semantic Search)이 실패하는 이유를 설명해줘. 특히 (1) OEE, MTBF, MTTR처럼 제조 약어는 임베딩 공간에서 어떻게 표현되는지, (2) '가동률', '설비 효율'처럼 의미적으로 가까운 일반 단어와 OEE 약어가 벡터 거리상 실제로 가까운지 먼지, (3) 이런 경우 BM25 키워드 검색이 왜 더 잘 작동하는지 직관적으로 설명해줘.
이 팁이 도움이 됐나요?