[AI] Anthropic의 Contextual Retrieval 요약 & 정리steemCreated with Sketch.

in #kr-dev2 months ago (edited)

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

AI 모델이 특정 맥락에서 유용하려면 배경 지식에 대한 접근이 필요합니다. 이를 위해 개발자들은 주로 RAG(Retrieval-Augmented Generation)를 사용하여 지식 기반에서 관련 정보를 검색하고 사용자 프롬프트에 추가합니다. 그러나 전통적인 RAG 방식은 정보를 인코딩할 때 문맥을 제거하여 관련 정보를 제대로 검색하지 못하는 문제가 있습니다.

Contextual Retrieval이란?

Contextual Retrieval은 이러한 문제를 해결하기 위한 방법으로, 두 가지 기술을 사용합니다:

  1. Contextual Embeddings: 각 텍스트 조각(chunk)에 문맥 정보를 추가하여 임베딩합니다.
  2. Contextual BM25: BM25 검색 기법에 문맥 정보를 반영합니다.

이를 통해 검색 실패율을 49%까지 감소시킬 수 있으며, 리랭킹(reranking)을 함께 사용하면 최대 67%까지 감소시킬 수 있습니다.

구현 방법

  1. 프롬프트 개선: Claude와 같은 언어 모델을 사용하여 각 텍스트 조각에 대한 간결한 문맥 설명을 생성합니다.
  2. 문맥 추가 임베딩: 생성된 문맥을 각 텍스트 조각 앞에 추가한 후 임베딩합니다.
  3. Contextual BM25 적용: 문맥이 추가된 텍스트로 BM25 인덱스를 구축합니다.
  4. 리랭킹 사용: 검색된 상위 텍스트 조각들을 리랭킹 모델로 평가하여 가장 관련성이 높은 것들을 선택합니다.

성능 향상 결과

  • Contextual Embeddings만으로도 검색 실패율이 35% 감소했습니다.
  • Contextual Embeddings와 Contextual BM25를 함께 사용하면 검색 실패율이 49% 감소했습니다.
  • 여기에 재랭킹을 추가하면 최대 67%까지 검색 실패율이 감소했습니다.

고려사항

  • 청크 분할: 텍스트를 어떻게 분할하느냐에 따라 성능이 달라질 수 있습니다.
  • 임베딩 모델 선택: 일부 모델은 Contextual Retrieval의 이점이 더 크게 나타납니다.
  • 맞춤형 문맥 프롬프트: 도메인에 특화된 프롬프트를 사용하면 더 나은 결과를 얻을 수 있습니다.
  • 청크 수 결정: 모델에 입력하는 텍스트 조각의 수는 성능에 영향을 미칩니다.

결론

Contextual Retrieval은 전통적인 RAG의 한계를 극복하여 대규모 지식 기반에서도 높은 정확도의 정보를 효율적으로 검색할 수 있게 해줍니다. 이는 AI 모델의 응답 성능을 직접적으로 향상시킵니다.

같이 보면 좋은 글

Posted using Obsidian Steemit plugin

Sort:  

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Upvoted! Thank you for supporting witness @jswit.

저도 요즘 책도 보고 여러가지 인공지능과 LLM RAG에 관심을 가지고 있는데 늘 좋은글 감사합니다.

저도 llm 과 rag에 관심 많아서 계속 학습 하고 있습니다. 이쪽은 기술 변화 속도가 워낙 빨라서 따라가기가 조금 힘든 분야네요 ㅎㅎ

Coin Marketplace

STEEM 0.20
TRX 0.20
JST 0.034
BTC 90526.91
ETH 3112.25
USDT 1.00
SBD 2.96