이 글은 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% 초반임.
- 이걸 할거라면 모델의 성능이 중요하곘고, 이 작업이 실패할 것에 대한 고려가 중요함.
'Generative AI' 카테고리의 다른 글
AI Agents in LangGraph (0) | 2024.06.18 |
---|---|
Advanced RAG Series: Retrieval (0) | 2024.06.18 |
Advanced RAG Series: Query Translation (0) | 2024.06.12 |
Functions, Tools and Agents with LangChain (0) | 2024.06.12 |
What We’ve Learned From A Year of Building with LLMs (0) | 2024.06.11 |