이 글은 Routing and Query Construction 보고 정리한 글입니다.


Routing and Query Construction

 

Routing Component:

  • RAG 시스템의 요소 내에서 사용자의 질문을 이해한 후, 질문을 어디로 보낼지 결정하는 컴포넌트임.
  • RAG 시스템에서는 벡터 스토어 뿐 아니라 여러 데이터베이스들도 있을거기 때문에 라우팅을 통해 적절한 데이터 소스를 선택하는 기능이 필요함.

 

두 가지 Routing 기법:

  • Logical Routing
  • Semantic Routing

 

Logical Routing 기법:

  • 사전에 정의된 데이터 소스가 있다고 했을 때, Query 와 Context 를 보고 어떤 데이터 소스로 보낼지 결정하는 기법임.

 

Semantic Routing 기법:

  • Query 를 보고 Context 를 첨가해주고, 이를 바탕으로 적절한 데이터 소스를 결정하는 기법임.
  • 문맥 정보를 추가해주기 떄문에 더 올바른, 그리고 더 정확한 데이터를 검색할 수 있도록 해주는 방법임.
  • 예를 들면 사용자가 특정 제품에 대한 리뷰를 요청하는 경우에 어떤 제품인지, 원하는 작업은 무엇인지에 대한 문맥 정보를 추가해주는 거임.

 

Query Construction 소개: 

  • 이제 Routing 을 했으니, 데이터 스토어에서 검색할 수 있도록 해야함. 그러니까 데이터베이스 조회 언어로 변경하는 작업을 해야하는거지. 대표적인 걸로 Text-to-SQL 이 있음.

 

Query Construction 기법:

  • 전체 스키마 정보를 넘겨주는 방법 (= Entire Schemae)
  • Scheme RAG 를 이용하는 방법. (RAG 를 통해서 필요한 Scheme 를 검색하는 기법임)
  • 텍스트를 SQL 로 변경해주는 작업을 Fine-tuning 을 통해 학습한 언어 모델을 사용하는 것.
  • 철자가 틀린 사용자 질문의 경우 Vector Store 에서 검색해서 올바른 철자를 찾는 방식을 적용할 수도 있네.

 

Query Construction 에 대해서는 아직까지는 SQL 문을 잘 생성해주는 능력이 부족한듯하다.

  • Scheme RAG + Fine-tuning + ICL (InContext Learning) 을 GPT 4에 해도 80% 초반임.
  • 이걸 할거라면 모델의 성능이 중요하곘고, 이 작업이 실패할 것에 대한 고려가 중요함.

+ Recent posts