[4주차]
RAG 시스템이 프로덕션 환경에서 잘 안된다면?
→ 컨텍스트를 잘 가져오는지, 안의 정보가 명확한지 파악해야 한다.
컨텍스트를 잘 가져오기 위해서는,
- Context Retriever
(1) semantic search
( + ) 키워드가 꼭 일치하지 않더라도 의미론적으로 유사한 검색 결과를 반환
( - ) 검색 결과가 임베딩 품질에 의존도가 높음
( - ) 단순 가까운 문장을 반환하므로 실제 답변과 관련 없을 수도 있음
(2) lexical search
( + ) 특정 도메인 용어를 검색하기에 용이
( + ) 정확도
( - ) 오타 및 동의어에 취약
→ 두 가지의 장점을 살린 hybrid search
: 산술 평균 기법을 사용하여 두 검색 결과의 점수를 가중 평균하여 값을 가져가는 방식을 취한다.
그렇다면, 각각의 semantic 과 lexical의 검색 성능을 올리면 자연스럽게 두 가지의 융합 방식 또한 성능이 좋아질 것이다.
lexical search의 성능을 높이기 위해 ?
→ opensearch 의 옵션으로 정교화 (token filter, decompound, custom word etc.)
semantic search 성능을 높이기 위해 ?
→ 질문의 다양성이 필요 (query rewriting) , 가상 답변 생성 후 이를 이용하여 검색하기 (HyDE : Hypothetical Document Embeddings),
문서의 크기를 작게 쪼개어 검색하기 (ParentDocumentRetriever)
그렇다면 이제, 컨텍스트의 내용은 잘 가져왔으니 안의 정보가 명확한지 파악해야 한다.
리턴된 문서들에 대해 쿼리와의 관련성을 다시 한번 측정하여 컨텍스트에 들어갈 문서의 순서를 바꿔 활용해 보면 된다.
ex. ReRanker, Two-stage Retrieval System (ReRanker + Retrieval)
'Lecture Review > AWS' 카테고리의 다른 글
[AWS DNA 6기] GenAI 5,6주차 및 회고 (1) | 2024.07.05 |
---|---|
[AWS DNA 6기] GenAI 3주차 (0) | 2024.07.04 |
[AWS DNA 6기] GenAI 1,2주차 (0) | 2024.06.13 |