Introducing Contextual Retrieval | Snippod
Snippod
요즘들어 AI 모델이 문맥 에 대한 이해를 바탕으로 대답하기 위해 배경 지식을 가져오는 RAG (Retrieval-Augmented Generation) 기법이 상당히 주목받고 있죠. 이는 AI 검색 서비스를 구축한다면 특히 중요하구요.
Claude 역시 당연히 RAG 를 연구하고 도입, 지원을 고민하고 있을 텐데요. RAG 활용을 위해 검색 단계에서 기존 지식들을 어떻게 임베딩하고 처리하는게 좋은지 연구한 내용 중 일부를 공유해주었습니다.
RAG 과정에서 중요한 부분은 기존 지식 문서들을 어떻게 가져올 것인가, 그리고 이를 위해 기존 문서들을 어떻게 사전에 처리해두는게 좋은지가 매우 중요합니다.
일반적인 RAG 과정에서 문서들은 사전에 vector 로 압축되면서 정보가 소실되는 데요. 예를 들어 프롬프트에 '오류 코드 TS-999' 에 대한 문의를 하면 'TS-999' 와 같은 단어를 기반으로 정보를 가져오는 것은 임베딩과정에서 소실되어 잘 찾아오지 못하는 문제가 있어요. 이 문제를 개선하기 위해 앤트로픽은 BM25 를 활용한 "Contextual Retrieval" 을 제안했어요.
참고로 BM25는 전통적인 검색 기술 중에는 TF-IDF 계열 중 대표적인 유사도 검색 알고리즘입니다. 지금도 문서를 검색할 때 랭킹에서 매우 중요하게 사용되는 알고리즘 입니다.
앤트로픽이 제안한 문맥벽 검색:
기존에 문서를 청크 단위로 자를때, context 를 잃지 않도록 하는 여러 기법이 존재하지만 사실 잘 작동하지 않았습니다. 앤트로픽은 여기서 이 청크 생성 과정 자체를 claude 로 생성해서 효율을 높혔어요. (이거 모든 문서 데이터 모든 청크별로 이렇게 처리할려면 임베딩 하는 비용만도 엄청날 것 같은데... 싶었는데? 바로 이를 위해 claude prompt caching 기능 홍보가 언급됨. 😅)
결론은 이렇게 기존 청크를 한번 더 claude 로 업데이트 하고 나서 임베딩한 Contextual embedding 결과와 BM25 결과 (Contextual BM25) 를 합쳐서 문서를 가져온 후 리랭킹 을 거쳐서 최종적으로 프롬프트에 합치면 가장 성능이 좋다는 것. 👍
https://www.snippod.com/snip/lbmjgrf5u8tx
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 9월 24일 오전 7:34
가장 훌륭한 경비절감 방법은 ‘몰입’이다. 가장 훌륭한 생산성 향상 방법도 ‘몰입’이다. 이는 많은 경영학자들이 연구를 통해 증명한 사실이다.
... 더 보기Q) 팀원들과의 협업에서 어떤 부분을 가장 신경 쓰셨나요? (우디)
... 더 보기애
... 더 보기