Table of Contents

DeepLearning/NLP

RAG 기법

꼬꼬마코더 2024. 10. 19. 23:23
728x90
  1. 문서 선택 품질 향상:
    • 다양한 Retrieval 전략 사용: 현재 사용하는 hybrid retrieval 외에, 다른 검색 기법을 추가하거나 앙상블 방식으로 결합해 더 다양한 문서를 검색하는 방법을 시도해보세요. 예를 들어, sparse (BM25)와 dense (embedding-based) retrieval 결과를 더 효율적으로 결합하는 방법을 최적화할 수 있습니다.
    • Fine-tuning of Retrieval Model: 이미 Roberta를 사용하고 계신다면, fine-tuning을 좀 더 고도화하거나, 다른 모델(예: ColBERT)을 사용해보는 것도 좋은 방법입니다.
  2. Re-ranking 성능 향상:
    • 다른 Re-ranker 모델 사용: 현재 사용 중인 reranker 모델 대신 BERT 기반의 re-ranker 또는 최신 모델을 사용해보세요. 다양한 pre-trained 모델을 사용해 가장 성능이 좋은 모델을 찾아보는 것도 좋은 방법입니다.
    • 문서의 세부 필터링: 지금은 content 기반으로 상위 3개를 고르고 있습니다. 추가로 각 문서의 신뢰도나 문서 품질을 평가해 필터링하거나, 특정 특징(feature)을 추출하여 추가적인 점수를 부여할 수 있습니다.
  3. LLM 기반의 추가 검증:
    • LLM 기반 평가: LLM을 사용해 top 문서의 내용을 실제 쿼리와 얼마나 관련성이 있는지 재검증하는 방법을 사용할 수 있습니다. 이미 한 차례 적용하신 것처럼 LLM의 도움을 받아 추가 필터링을 통해 관련성이 높은 문서만 선택하는 방법도 좋습니다.
  4. Query Reformulation:
    • 질문 재작성: 질의(Query)를 더 구체적이고 명확하게 만들어주는 Query Reformulation을 적용해보세요. 동일한 의미의 질의를 다르게 표현함으로써 더 좋은 검색 결과를 얻을 수 있습니다.
  5. 시퀀스 태깅이나 시퀀스 분류 모델 사용:
    • 문서의 중요한 부분을 태깅하거나, 문서의 일부가 특정 질문에 대한 답변인지 분류하는 방법을 사용하여, 더 정밀하게 관련성을 평가할 수 있습니다.
  6. 다중 앙상블(Multi-ensemble) 접근:
    • Retrieval 단계에서 다양한 모델을 사용하여 앙상블하는 것도 좋지만, 결과를 생성할 때 여러 생성 모델의 결과를 앙상블하여 최종 결과를 산출하는 것도 좋은 방법입니다. 예를 들어, 서로 다른 모델로부터 생성된 요약문을 결합하거나 투표 기반으로 선택할 수 있습니다.
  7. 데이터 증강 및 질의 다양화:
    • 질문 데이터 증강: Simplified Self-Instruct나 paraphrasing을 통해 질문 데이터를 다양화하면 모델이 다양한 방식으로 질의에 대응할 수 있도록 도와줍니다. 더 나아가 이는 더 높은 점수를 얻는 데 기여할 수 있습니다.
  8. Threshold Tuning:
    • Positive 및 Negative Pair 생성 시의 유사도 임계값을 조정해 보세요. 유사도 임계값이 너무 높거나 낮으면 학습 효과가 떨어질 수 있습니다. 이를 미세 조정하면서 최적의 임계값을 찾는 것이 중요합니다.

이 중 어떤 접근 방법이 사용자 상황에 가장 적합한지 시도해 보시고, 필요하다면 더 구체적으로 도와드릴 수 있습니다.