검색
검색
공개 노트 검색
회원가입로그인

Anthropic 의 Contextual Retrieval - 문맥을 인식하는 검색

Anthropic의 "Contextual Retrieval" 방법은 RAG(Retrieval-Augmented Generation)의 검색 단계를 개선하여 문맥을 유지하면서 관련 정보를 추출하는 기술입니다. 이 방법은 검색 실패율을 49% 줄이고, 랭킹 재정렬과 결합 시 67%까지 감소시킬 수 있으며, Claude 모델을 통해 각 조각에 대한 문맥을 자동 생성하여 검색 정확성을 높입니다. 이러한 기술은 Prompt Caching 기능을 활용해 비용을 절감하고, 다양한 전략들을 결합하여 최적의 성능을 얻을 수 있도록 설계되었습니다.

https://www.anthropic.com/news/contextual-retrieval

요약

특정 상황에서 유용한 AI 모델을 만들려면 RAG를 통해 배경 지식 접근이 필요함.

RAG(Retrieval-Augmented Generation)은 관련 정보를 지식 베이스에서 추출해 모델의 응답을 개선하는 방법.

전통적인 RAG는 정보를 인코딩할 때 문맥을 제거해 잘못된 정보를 가져오는 경우가 많음.

"Contextual Retrieval" 방법은 RAG의 검색 단계를 개선하며, Contextual Embeddings와 Contextual BM25 기술 사용.

* 이 방법의 실제 구현 코드는 anthropic-cookbook/skills/contextual-embeddings at main · anthropics/anthropic-cookbook 에서 확인 가능함.

Anthropic 의 Contextual Retrieval - 문맥을 인식하는 검색 image 1

이 방법은 검색 실패율을 49% 줄이며, 랭킹 재정렬과 결합했을 때 67%까지 감소시킴.

가장 단순한 방법으로는 지식 베이스가 20만 토큰 이하일 경우(500 페이지 정도), 내용을 다 포함한 긴 프롬프트를 사용할 수도 있음.

Contextual Retrieval은 작은 텍스트 조각들로 나누고 의미를 인코딩한 후, 검색 시 유사성을 바탕으로 조각을 찾는 방식.

BM25는 정확한 단어 매칭을 통해 의미 매칭이 불충분한 경우를 보완함. (Best Matching 25)

두 방법을 결합해 검색 정확도를 높일 수 있음.

Anthropic 의 Contextual Retrieval - 문맥을 인식하는 검색 image 2

이미지 설명 : 기존의 임베딩에 더해 TF-IDF index를 생성하여 BM25를 사용할 수 있게 한다.

문맥 삽입 기법.

문맥 삽입 기법으로 조각에 대한 설명을 추가하여 검색 정확성을 높임.

original_chunk = "The company's revenue grew by 3% over the previous quarter."

contextualized_chunk = "This chunk is from an SEC filing on ACME corp's performance in Q2 2023; the previous quarter's revenue was $314 million. The company's revenue grew by 3% over the previous quarter."

다음과 같이 조각과 이에 대한 문맥으로 이루어져 있음.

Claude 모델을 통해 각 조각에 대한 문맥을 자동 생성하고 삽입할 수 있음.

<document> {{WHOLE_DOCUMENT}} </document>

Here is the chunk we want to situate within the whole document

<chunk> {{CHUNK_CONTENT}} </chunk>

Please give a short succinct context to situate this chunk within the overall document for the purposes of improving search retrieval of the chunk. Answer only with the succinct context and nothing else.

Prompt Caching 기능을 활용해 비용 절감 가능. 전체 문서를 캐싱 한 후 조각을 생성할 때 이를 참조하면 비용을 줄일 수 있음.

실험 결과, Contextual Embeddings와 Contextual BM25를 활용한 방법이 우수한 성능을 보임.

Anthropic 의 Contextual Retrieval - 문맥을 인식하는 검색 image 3

재정렬 기법을 추가로 사용하여 더 나은 성능 및 비용 절감 가능.

다양한 전략들을 결합하여 최적의 성능을 얻을 수 있음.

  • Gemini 와 Voyage 의 임베딩 모델이 괜찮았음.

  • 컨텍스트에 입력하는 청크의 개수는 20개가 괜찮았음.

생각

앤쓰로픽의 에이전틱 코딩이나 프롬프트 캐싱은 정말 좋은 것 같다. 여기에 문맥을 인식하는 리트리벌을 도입해서 계속 새로운 인사이트를 더하고 있다. Contextual Retrieval 은 완전히 새로운 개념은 아니다. 하지만 청크에 대한 컨텍스트까지 AI를 통해 하는 방식은 새로운 것 같다. BM25 도 효과가 있다는 것을 보여줬다. 임베딩은 정확한 키워드 매칭이 부족한데 이를 보완하는 방식이다. reranking도 효과가 있다고 한다. 그런데 실제 빠르게 응답해야 하는 서비스에서는 latency 가 길어지기 때문에 생각이 필요한 것 같다. AI가 정확한 정보를 필요할 때 가져와서 사용할 수 있다고 생각하면 도대체 얼마나 좋아질까 하는 생각이 든다.

공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기
조회수 : 135
heart
T
페이지 기반 대답
AI Chat