Articlelangchain.com·2026년 8월 26일·0

Applying OpenAI's RAG Strategies

Quick Summary

OpenAI의 고객 대상 RAG 실험을 바탕으로 질의 변환, 라우팅, 질의 구성, 인덱스 구축, 후처리 전략을 설명하며 애플리케이션별 평가의 중요성을 강조한다.

Applying OpenAI's RAG Strategies 관련 대표 이미지

🖼️ 인포그래픽

Applying OpenAI's RAG Strategies 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

Applying OpenAI's RAG Strategies의 핵심 내용을 4단계로 요약한 인포그래픽
Applying OpenAI's RAG Strategies 핵심 내용을 4단계로 압축한 4컷 인포그래픽

💡 한 줄 요약

OpenAI의 고객 대상 RAG 실험을 바탕으로 질의 변환, 라우팅, 질의 구성, 인덱스 구축, 후처리 전략을 설명하며 애플리케이션별 평가의 중요성을 강조한다.

📌 핵심 요약

  • OpenAI 실험의 기본 검색 방식은 코사인 유사도를 사용한 벡터 검색이며, 원문은 문제마다 적합한 검색 기법과 평가 지표가 다르다고 설명한다.
  • 질의 확장은 여러 관점의 질의로 검색한 문서를 중복 없이 합치고, HyDE는 가상 문서를 생성해 임베딩한 뒤 검색에 활용한다.
  • OpenAI 사례에서는 두 개의 벡터 저장소와 하나의 SQL 데이터베이스 사이에 질문을 라우팅하고, 관계형 데이터 조회를 위해 유효한 SQL을 생성해야 했다.
  • 문서 청크 크기 조정은 성능을 뚜렷하게 개선했지만, 임베딩 미세 조정은 해당 실험에서 상당한 개선을 보이지 않았다.
  • 검색 후에는 재순위화와 문서 분류에 따른 프롬프트 선택을 적용했으며, 원문은 효과가 적은 접근에 노력을 낭비하지 않도록 평가하고 LangSmith를 활용할 수 있다고 설명한다.

🧩 주요 포인트

  1. 질의 확장·HyDE는 검색 입력을 바꾸고 재순위화·문서 분류는 검색 결과를 처리하므로, RAG 개선을 단계별로 나누어 살펴볼 수 있다.
  2. 두 개의 벡터 저장소와 하나의 SQL 데이터베이스를 함께 사용한 사례는 적합한 소스 선택과 소스에 맞는 질의 생성이 모두 필요함을 보여준다.
  3. 청크 크기 조정과 임베딩 미세 조정의 성과 차이는 기법의 복잡성보다 애플리케이션별 평가 결과를 기준으로 개선 우선순위를 정해야 함을 시사한다.

🧠 상세 정리

1. 실험의 맥락과 기본 검색 방식

이 글은 OpenAI가 데모 행사에서 공개한 고객 대상 RAG 실험을 바탕으로, 각 방법이 검색과 생성 과정의 어디에 해당하고 어떻게 구현할 수 있는지 설명한다. 평가 지표는 애플리케이션에 따라 달라지며, 서로 다른 문제에 하나의 검색 기법을 일괄 적용할 수 없다는 점을 출발점으로 삼는다. 기본 방식은 질문과 문서를 고차원 벡터로 표현한 뒤 거리를 기준으로 유사한 문서를 찾는 검색이며, 소개된 실험에서는 코사인 유사도를 사용했다. LangChain은 60개가 넘는 벡터 저장소 연동을 제공하고 그중 다수는 거리 함수를 설정할 수 있어, 기본 검색 방식부터 선택과 비교의 대상이 된다.

2. 질의 변환으로 검색 입력 개선

질문 표현이 조금 달라지거나 임베딩이 데이터의 의미를 충분히 포착하지 못하면 검색 결과가 달라질 수 있어, 질의 변환은 사용자 입력을 수정하는 데 초점을 둔다. OpenAI가 보고한 질의 확장은 LangChain의 다중 질의 검색기로 구현할 수 있으며, 언어 모델이 여러 관점의 질문을 생성하고 각 검색 결과의 중복을 제거해 합친다. 또 다른 방법인 HyDE는 질문에 대응하는 가상 문서를 생성하고 이를 임베딩해 검색하는 방식으로, 질문 자체보다 가상 문서가 원하는 원문과 더 유사할 수 있다는 생각에 기반한다. 원문은 추가 검토 대상으로 상위 개념이나 원리를 묻는 질문을 답변 합성에 활용하는 한 단계 물러서기 프롬프팅과, 검색 개선을 위해 질문을 다시 쓰는 재작성·검색·읽기 접근도 소개한다.

3. 데이터 소스 라우팅과 질의 구성

여러 데이터 저장소를 함께 조회하는 환경에서는 질문을 적절한 소스로 보내는 라우팅이 중요하며, OpenAI 사례에는 두 개의 벡터 저장소와 하나의 SQL 데이터베이스가 등장한다. LangChain은 언어 모델을 이용해 사용자 입력을 미리 정의한 하위 체인으로 분기할 수 있으며, 각 체인이 서로 다른 저장소를 다루도록 구성할 수 있다. 소스를 선택한 뒤에는 그 소스가 처리할 수 있는 질의를 만들어야 하므로, 관계형 데이터베이스에서 필요한 정보를 가져오려면 사용자 입력으로부터 유효한 SQL을 생성해야 한다. 원문은 이를 위한 자연어 기반 SQL 생성 지원과 함께, 벡터 저장소의 메타데이터 필터 생성, 그래프 데이터베이스용 Cypher 생성, Pgvector를 사용하는 Postgres의 반정형 데이터에 SQL과 의미 검색을 결합하는 방법도 검토 대상으로 제시한다.

4. 인덱스 구축과 실험 결과의 차이

OpenAI는 문서를 임베딩할 때 청크 크기를 바꾸는 실험만으로도 성능이 뚜렷하게 개선됐다고 보고했으며, 원문은 이를 인덱스 구축의 핵심 단계로 설명한다. 청크 크기를 직접 비교할 수 있도록 공개된 Streamlit 앱도 소개해, 해당 설정을 실제 애플리케이션에서 시험할 수 있는 구현 경로를 제공한다. 반면 임베딩 미세 조정은 OpenAI의 해당 실험에서 상당한 성능 향상을 보이지 않았지만, 원문은 다른 사례에서는 긍정적인 결과도 보고됐다고 덧붙인다. 따라서 미세 조정이 언제나 효과가 없다고 일반화하지 않으면서도, OpenAI가 이를 손쉽게 성과를 얻을 우선 과제로 권하지 않았다는 점과 관련 가이드 및 HuggingFace 튜토리얼의 존재를 함께 전달한다.

5. 검색 결과의 후처리와 프롬프트 선택

후처리는 검색이 끝난 뒤 문서를 언어 모델에 전달하기 전에 수행하며, 여러 소스에서 모은 문서의 다양성이나 최신성을 반영하는 데 활용할 수 있다. OpenAI가 보고한 재순위화와 관련해 원문은 Cohere ReRank 연동을 소개하며, 많은 문서를 검색했을 때 중복을 줄이는 문서 압축에도 사용할 수 있다고 설명한다. 관련 접근인 RAG-fusion은 다중 질의 방식과 유사한 검색기의 결과를 상호 순위 융합으로 재정렬한다. 또 다른 실험에서는 각 문서를 내용에 따라 분류한 뒤 분류 결과별로 다른 프롬프트를 선택했으며, LangChain의 텍스트 태깅과 논리적 라우팅을 결합해 구현할 수 있다. 추가 검토 대상으로는 관련성과 다양성의 균형을 맞추는 최대 한계 관련성 검색과, 여러 소스의 문서를 통합할 때 활용할 수 있는 임베딩 문서 군집화 및 표본 추출이 제시된다.

6. 애플리케이션별 평가와 개선 우선순위

결론은 소개된 방법을 직접 재현하되, RAG 구성에 따라 애플리케이션 성능이 크게 달라질 수 있으므로 여러 접근을 실제로 시험해야 한다는 것이다. OpenAI의 실험은 시도할 수 있는 기법을 보여주는 동시에, 어떤 방법은 기대만큼 이익을 주지 않을 수 있다는 점도 드러낸다. 따라서 평가는 개선 효과가 거의 없거나 전혀 없는 접근에 시간과 노력을 낭비하지 않도록 하는 핵심 수단으로 제시된다. 원문은 RAG 평가를 지원하는 LangSmith와 여러 고급 RAG 체인을 평가하는 예제를 소개하며, 특정 기법을 보편적인 정답으로 제시하기보다 각 애플리케이션에서 얻은 결과를 토대로 선택해야 한다는 논지로 마무리한다.

🧾 핵심 주장 / 시사점

  • RAG 개선은 검색기 선택에만 한정되지 않으며, 입력 변환부터 소스 선택과 검색 결과 처리까지 여러 단계에서 이루어진다.
  • 복수의 저장소를 사용하는 경우에는 질문을 어디로 보낼지와 어떤 형식으로 조회할지를 함께 다뤄야 한다.
  • 청크 크기 조정의 개선 효과와 임베딩 미세 조정의 제한적인 성과는 구현 복잡성만으로 효과를 판단할 수 없음을 보여준다.

✅ 액션 아이템

  • 질의 확장·HyDE와 재순위화·문서 분류를 RAG의 적용 단계별로 비교 검토.
  • 두 개의 벡터 저장소와 하나의 SQL 데이터베이스 사례를 바탕으로 소스 라우팅과 유효한 SQL 생성의 역할 구분.
  • 청크 크기 조정과 임베딩 미세 조정의 효과를 애플리케이션별로 평가하고, LangSmith 활용 가능성 검토.

❓ 열린 질문

  • 대상 애플리케이션에서 질의 확장과 HyDE의 효과를 어떤 평가 지표로 비교할 것인가?
  • 두 개의 벡터 저장소와 하나의 SQL 데이터베이스 사이에서 질문을 라우팅하는 기준은 무엇인가?
  • 대상 애플리케이션에서도 청크 크기 조정이 임베딩 미세 조정보다 큰 성능 개선을 보이는가?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.