앤트로픽에서 제안하는 RAG 기법: 문맥적 검색

요즘들어 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

Introducing Contextual Retrieval | Snippod

Snippod

Introducing Contextual Retrieval | Snippod

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 9월 24일 오전 7:34

 • 

저장 16조회 1,317

댓글 0

    함께 읽은 게시물

    데이터 분석가 600명의 이직 결심 사유는 무엇일까요?

    ... 더 보기

    - YouTube

    www.youtube.com

     - YouTube

    나는 종종 생산성을 올리기 위한 각종 개발 툴은 물론, 라이브러리나 소스 코드를 구매하기도 한다.


    소스 코드의 경우 실제로 써먹지 못하는 경우도 상당수 되긴 하지만, 그래도 구성이나 코드를 보면서 배우는게 있기 때문에 학습 비용이라고 생각하고 가끔 구매하는 편이다.


    ... 더 보기

    앞으로의 코테는 설명을 주고 코드를 짜라고 하는 것이 아니라, 코드를 주고 설명을 하라는 것이 유효할 것이다.


    내 경우는 이미 그렇게 하고 있는데, 요구사항을 주고 개발을 요청. 결과물이 요구사항대로 개발이 잘 되었다면, 다음 단계로 제출한 코드를 리뷰하며 설명을 요청한다.


    ... 더 보기

     • 

    댓글 2 • 저장 21 • 조회 3,547


    < 보여서 걷는 게 아니라, 걷다 보니 길 >

    1

    ... 더 보기