고급 RAG 기술이 무조건 더 나은 것은 아닙니다. 특정 상황에서만 더 나을 뿐입니다.

고급 RAG 기술은 공짜 업그레이드가 아닙니다. 트레이드오프(tradeoffs)가 존재하는 도구입니다.

Anthropic 문서를 사용하여 RAG 파이프라인에서 다섯 가지 검색(retrieval) 방법을 테스트했습니다. 어떤 방법이 그 복잡성을 감수할 만큼 실제로 가치가 있는지 확인하고 싶었습니다.

테스트 결과는 다음과 같습니다:

• Dense Retrieval: 베이스라인입니다. 잘 작동하지만 정확한 용어를 놓칠 때가 있습니다. • Hybrid Search: Dense 검색과 키워드 검색을 함께 사용합니다. Dense 검색이 놓치는 정확한 용어를 찾아냅니다. 하지만 결과의 가중치를 올바르게 설정하지 않으면 신호(signal)가 사라집니다. • Reranking: Cross-encoder를 사용하여 후보군에 점수를 매깁니다. 올바른 청크(chunk)가 결과 하단에 너무 깊이 묻혀 있을 때 도움이 됩니다. • HyDE: 가상의 답변(hypothetical answer)을 사용하여 데이터를 찾습니다. 이는 위험합니다. 일상적인 질의에는 도움이 되지만, 직접적인 질의에서는 모든 것을 망쳐버립니다. 한 테스트에서는 재현율(Recall)이 0.80에서 0.17로 떨어졌습니다. • Contextual Retrieval: 청크에 요약본을 추가합니다. 짧은 청크에는 도움이 되지만 LLM 비용이 더 많이 발생합니다.

가장 큰 교훈은 HyDE에 관한 것입니다. HyDE는 "한 번 설정하면 끝나는(set and forget)" 도구가 아닙니다. 사용자의 질의와 문서가 서로 다른 언어(맥락)로 말하고 있을 때만 사용해야 합니다. 언제 사용할지 결정할 라우터(router)가 필요합니다.

측정에 대해서도 교훈을 얻었습니다.

평가를 위해 Ragas를 사용해 보았지만, 너무 느렸습니다. 실패한 호출을 재시도하는 데 몇 시간씩 걸렸습니다. 그래서 직접 비동기 하네스(async harness)를 구축하기로 했습니다. 그 결과, 11시간 걸릴 평가가 221초 만에 끝났습니다.

AI 도구를 블랙박스로 취급하지 마세요. 도구가 느리거나 실패한다면 그 이면의 수학적 원리를 살펴보세요. 필요하다면 직접 솔루션을 만드세요.

단순히 새로운 기능을 추가하는 것이 업무의 전부가 아닙니다. 어떤 기능이 시스템에 들어갈 자격이 있는지 측정하는 것이 진짜 업무입니다.

상황별 사용 요약:

  • Hybrid: 질의가 정확한 파라미터에 의존할 때 사용하세요.
  • HyDE: 질의가 모호하게 표현되었을 때 사용하세요.
  • Reranking: 검색 결과가 광범위하지만 부정확할 때 사용하세요.
  • Contextual: 청크에 문맥이 부족할 때 사용하세요.

"최첨단(state of the art)"을 쫓는 것을 멈추고, 여러분의 결과를 측정하기 시작하세요.

Source: https://dev.to/yogesh23012001/advanced-rag-techniques-arent-better-theyre-better-sometimes-4m2o

Optional learning community: https://t.me/GyaanSetuAi