ML & DL/논문리뷰

From Natural Language to SQL: Review ofLLM-based Text-to-SQL Systems

공부하는 무니 2025. 6. 8. 20:37
반응형

원문: https://arxiv.org/pdf/2410.01066

 

ABSTRACT

이 논문은 대형 언어 모델(LLM)을 사용해서 사용자가 일상적으로 쓰는 자연어 질문(예: "올해 가장 많이 팔린 상품은?")을 SQL이라는 데이터베이스 언어로 정확히 변환하는 기술에 대한 것입니다.

특히, 이 논문에서는 RAG(Retrieval Augmented Generation) 기술을 함께 사용했을 때 변환 성능이 더 좋아진다는 점을 강조합니다. 이 RAG 기술은 외부에서 필요한 정보를 찾아서 모델이 더 정확한 SQL을 만들 수 있게 도와주는 방식입니다.

또한 논문에서는

  • 이 분야가 어떻게 발전해왔는지 초기 규칙기반 모델에서 최근 LLM과 RAG를 결합한 최신 모델까지 정리합니다.
  • 각종 평가방법과 성능 측정을 위한 기준들(벤치마크와 평가 지표)을 소개합니다.
  • 특히 Graph RAG 가 어떻게 SQL 변환을 더 잘 수행할 수 있도록 도와주는지도 설명합니다. Graph RAG는 데이터베이스의 구조나 관련 정보를 그래프 형태로 저장해서 모델이 필요한 정보를 더 잘 찾을 수 있게 해주는 기술입니다.
  • 끝으로 앞으로의 발전을 위해 해결해야 하는 주요 도전 과제들도 다룹니다. 예를 들면 처리 속도를 높이는 방법, 모델의 안정성을 개선하는 방법, 사용자의 개인정보 보호 문제 등을 소개합니다.

한 마디로 이 논문은 "자연어 질문을 더 정확하게 SQL로 변환하는 데 있어서 최신 LLM과 RAG 기술이 어떻게 발전해왔는지 정리하고, 앞으로의 도전 과제들을 제시하는" 내용을 다루고 있습니다.

 

I. INTRODUCTION

A. Overview of the Text-to-SQ task

  • 회사나 기관에서는 데이터를 저장하고 관리하는 데 데이터베이스를 자주 사용합니다.
  • 하지만 이 데이터를 보기 위해서는 전문적인 언어인 SQL을 써야 하는데, 이는 일반 사용자들이 사용하기에는 어렵습니다.
  • 그래서 Text-to-SQL 기술이 생겨났습니다. 이 기술은 사용자가 일상적으로 사용하는 자연어 질문을 자동으로 SQL 질의문으로 바꾸어 줍니다.
  • 예를 들어, 사용자가 “대학교에서 2마일 이내에 있는 전력 공급 주유소는 어디인가요?”라고 물으면, 시스템이 이를 이해하여 정확한 SQL 문을 자동으로 만들어 줍니다.

하지만 이러한 기술은 쉬운 것이 아닙니다. 그 이유는 다음과 같은 어려움이 존재하기 때문입니다.

  • 자연어는 모호하거나 복잡한 표현이 많아서 명확히 이해하기 어렵습니다.
  • 데이터베이스마다 구조(스키마)가 매우 다르기 때문에 이를 정확히 이해하고 자연어 질문과 매칭시키는 것이 어렵습니다.
  • 매우 복잡한 SQL 연산이 필요한 경우, 모델이 이를 정확히 생성하기 어렵습니다.
  • 한 분야에서 잘 동작하던 모델이 다른 분야에서는 제대로 작동하지 않을 수 있습니다.

이러한 문제들을 해결하는 것이 앞으로 자연어-SQL 변환 기술이 발전하는 데 있어서 중요한 과제입니다.

B. Introducing Retrieval Augmented Generation as a Solution

기존의 자연어를 SQL로 변환하는 기술(Text-to-SQL)은 여전히 몇 가지 어려운 문제점들이 있습니다. 특히, 데이터베이스의 구조(스키마)를 정확히 이해하거나 복잡한 질문을 다루는 것, 또는 다양한 분야에서 똑같이 잘 작동하는 것 등에 어려움이 존재합니다.

이를 해결하기 위해 최근에는 검색 보강 생성(RAG)기술이 인기를 얻고 있습니다. RAG 기술은 두 가지 주요 기능을 결합한 것입니다.

  • 정보 검색 기능: 질문에 관련된 데이터베이스의 구조, 미리 작성된 예시 질의문(SQL 템플릿), 또는 필요한 전문지식을 외부에서 검색하여 가져오는 기능입니다.
  • 텍스트 생성 기능: 위에서 가져온 정보를 기반으로 SQL 질의문을 만들거나, 바로 답을 만들어 주는 기능입니다.

쉽게 말해서, RAG 기술은 기존의 방식처럼 대형 언어 모델(LLM)이 가지고 있는 일반 지식을 사용하여 추측하는 대신, 질문과 관련된 정확한 정보를 바깥에서 찾아 가져온 뒤 이를 이용해 정확한 SQL 또는 답변을 만드는 방식입니다.

RAG는 두 가지 장점이 있습니다.

  1. 정확한 SQL을 만드는 데 도움: 복잡하거나 모호한 질문에도 관련된 정보를 찾아서 더 정확한 SQL을 만들 수 있도록 도와줍니다.
  2. SQL 생략 가능: 때로는 SQL을 만드는 대신, 데이터를 바로 찾아서 답을 줄 수도 있습니다.

이 두 가지 장점을 함께 가진 RAG는 기존 Text-to-SQL 시스템의 한계를 잘 극복하는 기술로 주목받고 있습니다. 즉, 데이터베이스 구조를 더 잘 이해하게 해주고, 모호한 표현을 명확히 하며, 다양한 분야에서도 잘 작동하도록 도와줍니다.

C. Contributions of this Survey

이 논문은 자연어를 데이터베이스에서 쓰는 SQL로 자동 변환하는 기술에 대해서 종합적으로 설명하며, 이 기술의 한계를 극복하기 위한 해결책으로 검색 보강 생성(RAG) 기술을 소개합니다.

논문의 주요한 기여점은 다음과 같습니다.

  • 자연어를 SQL로 변환하는 기술(Text-to-SQL)에 대한 전반적인 설명과, 이 기술이 어떤 문제점을 가지고 있는지, 어떤 평가 기준이 있는지 등을 소개합니다.
  • 현재 사용되고 있는 기술들이 가진 한계점, 예를 들어 데이터베이스 구조를 정확히 이해하기 어려운 점, 자연어의 모호한 표현을 이해하기 어려운 점, 다양한 분야에서 동일하게 잘 작동하지 않는 점, 복잡한 질문을 처리하기 어려운 점 등을 명확히 지적합니다.
  • 이러한 문제들을 해결하기 위해 RAG라는 기술이 어떤 도움을 줄 수 있는지, 특히 실시간으로 필요한 정보를 가져와 더 정확한 SQL 문을 만들거나 바로 답을 찾아줄 수 있다는 점을 설명합니다.
  • Text-to-SQL 기술을 명확히 구분할 수 있도록 분류법을 제안하고, 이 중 RAG 기술이 어디에 속하는지 잘 정리하여 보여줍니다.
  • 최근 뛰어난 성능을 보이는 Graph RAG 기술이 등장하여 기존 방식보다 정확도를 높일 수 있게 된 이유와 배경에 대해 설명합니다.

결론적으로, 이 논문은 Text-to-SQL 기술이 가진 한계점과 이를 개선하기 위한 최신 기술인 RAG와 Graph RAG를 알기 쉽게 정리하여 소개하고 있습니다.

II. EVOLUTION OF TEXT-TO-SQL SYSTEMS IN THE LITERATURE

A. Evolutionary Progression

자연어를 SQL로 변환하는 기술은 다음과 같은 발전 과정을 거쳤습니다.

  1. 규칙 기반 모델: 수작업으로 만든 규칙을 써서 SQL을 만들었으나 복잡한 질문과 다양한 데이터베이스에서 잘 작동하지 못했습니다.
  2. 딥러닝 모델: 자동으로 데이터를 학습해 SQL을 더 잘 만들게 되었지만, 여전히 복잡한 질문은 어려웠습니다.
  3. 사전 학습 모델(PLM): 방대한 데이터를 미리 학습하여 다양한 분야에 쉽게 적용할 수 있었지만, 복잡한 구조를 다루려면 추가 학습이 필요했습니다.
  4. 대형 언어 모델(LLM): 방대한 양의 데이터를 학습해 사람과 비슷하게 질의를 처리할 수 있으며, 추가 학습 없이도 좋은 성능을 보입니다.
  5. RAG 시스템: 외부에서 관련 정보를 가져와 성능을 높였습니다.
  6. Graph RAG: 데이터베이스 구조를 그래프로 만들어 더 정확한 SQL을 생성할 수 있도록 발전했습니다.

• 규칙 기반(Rule-based) 접근법

초기의 Text-to-SQL 시스템은 사람이 만든 문법 규칙과 휴리스틱(heuristics; 경험 기반 규칙)을 사용하여 자연어 질의를 SQL 명령어로 변환했습니다. 그러나 이 방식은 복잡한 질의나 다양한 데이터베이스 스키마(schema)를 처리하는 데 한계가 있었습니다 [9]. 고정된 규칙을 사용했기 때문에 예상치 못한 표현이나 복잡한 문장 구조를 다루는 데 어려움이 많았습니다. 또한, 새로운 분야나 데이터베이스에 적용하려면 많은 수동 작업이 필요했습니다. 예를 들어, LUNAR [10]나 NaLIX [11] 같은 초기 시스템은 많은 수작업이 필요했기 때문에 유연성과 확장성이 부족했습니다. 딥러닝은 이러한 한계를 극복하기 시작했습니다 [12].

• 딥러닝(Deep Learning) 접근법

딥러닝을 도입하면서 Text-to-SQL 시스템이 크게 발전했습니다. 예를 들어, Seq-2-SQL이나 SQLNet [13] 같은 모델은 LSTM과 트랜스포머(transformer) 같은 구조를 사용하여 자연어를 SQL로 직접 변환했습니다. 이 모델들은 데이터로부터 복잡한 패턴과 관계를 자동으로 학습할 수 있어서, 이전의 규칙 기반 시스템보다 더 정확하고 효율적으로 질의문을 생성할 수 있게 되었습니다 [13,15,16].

또한, BERT [17]나 TaBERT [18]와 같은 트랜스포머 기반의 모델은 데이터베이스의 구조(schema)와 사용자의 질문을 더욱 잘 이해하게 만들었습니다. 하지만 여전히 복잡한 중첩 질의(nested queries), 여러 도메인으로의 일반화 문제와 같은 어려움은 남아있었습니다 [19,18].

• 사전 학습된 언어 모델(PLMs)

사전 학습된 언어 모델(PLMs)은 특정 작업을 위해 처음부터 끝까지 학습하는 방식에서, 미리 대량의 데이터로부터 학습하고 나중에 세부 작업에 맞게 조금 더 학습시키는(미세 조정; fine-tuning) 방식으로 접근법을 바꾸었습니다. BERT [17], GPT [20]와 같은 모델이 대표적입니다. 이 모델들은 대규모의 데이터를 통해 자연어를 깊게 이해하는 능력을 갖추었고, 그 이해력을 다양한 작업에 쉽게 적용할 수 있게 되었습니다 [21,22].

특히 TaBERT, BERT-SQL [23]과 같은 PLM은 데이터베이스 스키마와 사용자의 질의를 하나의 표현으로 통합하여 시스템의 정확성을 높였습니다. 그러나 여전히 도메인 특화된 미세조정이 필요하거나 복잡한 데이터베이스 스키마를 추가적인 장치(schema linking) 없이 완벽히 이해하는 데는 한계가 있었습니다 [24].

• 대형 언어 모델(LLMs)

GPT-4 [25], Codex [26], LLaMa [27]와 같은 최근의 대형 언어 모델(LLM)은 이전의 모든 모델보다 더 혁신적입니다. 이러한 모델은 엄청난 양의 데이터로 학습하여 인간과 비슷한 수준의 자연어를 이해하고 생성하는 능력을 갖추었습니다 [28].

LLM은 복잡한 자연어 질의와 데이터베이스의 구조 사이의 관계를 더욱 잘 파악할 수 있습니다. 특히 별도의 추가 학습 없이도(zero-shot, few-shot) 질의문을 효과적으로 생성할 수 있게 되었으며, Codex [28] 같은 모델은 최소한의 프롬프트로도 높은 성능을 보입니다. 하지만 여전히 모호한 질의 처리, SQL 최적화와 같은 과제는 남아 있습니다 [28].

그림 2에서 볼 수 있듯이, LLM 기반의 Text-to-SQL 시스템 구조는 다음과 같은 주요 단계로 나눌 수 있습니다: 자연어 이해, 스키마 이해, SQL 생성, SQL 실행. 각 단계는 사용자의 질의가 정확히 SQL로 변환되어 데이터베이스에서 올바른 결과를 얻을 수 있도록 정교한 기술을 사용합니다.

• Text-to-SQL의 RAG 시스템

최근에는 검색 보강 생성(RAG) 기술이 통합되어 Text-to-SQL 시스템이 더욱 발전했습니다. RAG는 정보 검색과 대규모 생성 모델을 결합하여 스키마 이해, 복잡한 질의 처리, 다양한 분야에의 일반화 문제와 같은 기존의 어려움을 해결합니다.

  • 동적 지식 검색: RAG 시스템은 관련된 스키마 정보, 테이블 관계, 예시 질의 등을 실시간으로 검색하여 SQL 생성 과정에 반영합니다 [30,7].
  • 향상된 스키마 연결: 기존 모델과 달리 RAG 시스템은 복잡한 스키마에 실시간으로 적응하며, 질의와 데이터베이스 스키마를 더 정확하게 연결하여 모호성으로 인한 오류를 줄입니다 [31,32].
  • 다양한 도메인에서의 일반화: RAG는 도메인 특화된 정보를 검색하여 다양한 분야에서 별도의 추가 학습 없이 잘 작동할 수 있어, zero-shot 또는 few-shot 상황에서도 강력한 성능을 보입니다 [31].

• Graph RAG 시스템

최근에는 Graph RAG라는 기술이 등장하여 Text-to-SQL의 유망한 해결책으로 자리 잡았습니다. Graph RAG는 기존의 텍스트 기반 검색 방식과 달리, 데이터로부터 지식 그래프(knowledge graph)를 생성하여 데이터베이스의 스키마를 계층적으로 조직화하고 이를 명확히 요약합니다. 이렇게 구성된 구조적 관계를 통해 스키마 이해를 높이고, 검색 정확도를 향상시키며, 더 정밀한 SQL 질의문을 생성할 수 있도록 합니다. 따라서 복잡한 데이터베이스 질의를 처리할 때 특히 강력한 성능을 보입니다.

B. LLM-based Text-to-SQL Architecture and RAG-Integrated Systems

자연어를 SQL로 변환하는 기존의 시스템 구조는 다음 단계로 이루어져 있습니다.

  1. 자연어 이해: 전통적인 LLM 기반 Text-to-SQL 시스템은 사용자가 입력한 자연어 질문으로부터 시작합니다.
    대형 언어 모델(LLM)은 사용자의 질문을 먼저 처리하여 사용자가 원하는 바를 이해하고, 질문 속의 핵심 요소들(개체, 조건, 관계 등)을 찾아냅니다.
  2. 스키마 연결: 자연어 질문이 분석된 후, 시스템은 스키마 연결 단계로 넘어갑니다. 여기에서 LLM은 분석된 질문의 구성 요소를 데이터베이스의 해당 테이블, 컬럼, 관계와 연결합니다.
    예를 들어, 사용자의 질문에서 “주유소”는 GasStations라는 테이블과 연결되고, “전력(power)”이라는 표현은 PowerAvailable과 같은 컬럼과 연결됩니다. 이 단계는 시스템이 질문을 정확히 해석할 수 있도록 도와줍니다.
  3. SQL 생성: 질문이 분석되고 스키마와 연결되면, LLM은 확인된 의미 관계를 바탕으로 SQL 질의문을 생성합니다.
    이 단계에서 모델은 SQL 문법과 데이터베이스 로직을 이해하여 사용자의 의도를 반영한 정확한 SQL 질의문을 만듭니다. 생성된 SQL 질의문은 정확도와 성능을 위해 검증 및 최적화됩니다.
  4. SQL 실행과 출력: 최종적으로 생성된 SQL 질의문은 SQLite나 MySQL 같은 실제 데이터베이스에서 실행됩니다. 이를 통해 원하는 정보를 추출하고, 그 결과를 사용자에게 반환합니다.
    시스템에 따라 질의문의 결과를 그대로 제공하거나, 사용자가 이해하기 쉬운 자연어 형태로 변환하여 제공하기도 합니다.
    그림 2는 사용자의 입력으로부터 최종 SQL 질의문까지의 과정을 보여줍니다. 각 단계 덕분에 Text-to-SQL 시스템이 일반 사용자들도 쉽게 사용할 수 있도록 발전했습니다.

RAG 통합 시스템의 향상된 기능

RAG(Retrieval-Augmented Generation, 검색 보강 생성)은 기존의 Text-to-SQL 시스템 구조에 동적 정보 검색 기능을 통합하여 스키마의 복잡성, 모호한 질문 처리, 다양한 도메인 간의 일반화 문제와 같은 어려움들을 해결합니다.

 

• 1. 향상된 자연어 이해

RAG 시스템은 동적으로 외부에서 관련 지식을 검색합니다.

  • 사용자의 질문을 바탕으로 스키마 정보, 예시 질의, 문서화된 정보를 벡터 데이터베이스에서 가져옵니다.
  • 질문이 모호할 경우, 특정 도메인의 예시나 스키마 설명 같은 추가적인 정보를 검색해 질문을 더 명확하게 이해할 수 있도록 돕습니다.

• 2. 맥락 기반의 정확한 스키마 연결

RAG 시스템은 데이터베이스의 테이블, 컬럼, 관계, 외래 키 등 자세한 스키마 정보를 동적으로 검색합니다. 이를 통해 질문의 각 구성 요소와 데이터베이스 스키마를 더 정확히 연결할 수 있게 합니다.

 

• 3. 고급 SQL 생성

검색한 스키마 정보, 예시 질의, 추가적인 메타데이터 등을 LLM에게 제공하여, 더욱 정확하고 의미적으로 올바른 SQL 질의문을 생성할 수 있도록 합니다.

 

• 4. 반복적인 SQL 실행과 오류 피드백

RAG 시스템은 SQL 실행 과정에서 발생하는 오류를 해결하기 위해 피드백 루프를 포함합니다.

  • SQL 실행 과정에서 오류가 발생하면, 이를 감지하고 오류 해결에 필요한 추가적인 정보를 벡터 데이터베이스에서 가져옵니다.
  • 이후 SQL 질의문을 다시 생성하여 오류가 해결될 때까지 재실행합니다.

III. BENCHMARKS AND EVALUATION METHODS

A. Types of Datasets used in Benchmarks

Text-to-SQL 연구는 다양한 벤치마크 데이터셋 덕분에 빠르게 발전하고 있으며, 각각의 데이터셋은 모델 개발 과정에서 독특한 도전 과제들을 제공합니다. 이러한 데이터셋은 특징에 따라 크게 네 가지 유형으로 나눌 수 있습니다: 크로스 도메인(cross-domain), 지식 보강형(knowledge-augmented), 맥락 의존형(context-dependent), 그리고 강건성(robustness) 데이터셋입니다. 표2에서는 가장 잘 알려진 데이터셋을 이러한 기준에 따라 분류하였습니다.

• 1. 크로스 도메인 데이터셋 (Cross-domain Datasets)

WikiSQL [35], Spider [36], KaggleDBA [44]와 같은 데이터셋들은 서로 다른 다양한 분야의 데이터베이스에서 일반화 능력을 평가하는 데 초점을 맞추고 있습니다. 즉, 모델이 학습 때 보지 못했던 새로운 데이터베이스에서도 정확한 SQL 질의문을 생성할 수 있는지를 테스트합니다 [36].

RAG 통합 Text-to-SQL 시스템은 데이터베이스마다 크게 다른 스키마(schema)에 대해서도 성능이 뛰어나며, 검색 모듈이 서로 다른 도메인으로부터 실시간으로 스키마 정보나 예시 질의를 가져오기 때문에 보다 우수한 일반화 성능을 보입니다.

 

• 2. 지식 보강형 데이터셋 (Knowledge-Augmented Datasets)

SQUALL [45]과 BIRD [17] 같은 데이터셋은 외부의 지식을 활용하여 SQL 생성의 의미적 정확성을 높입니다. 이러한 데이터셋은 데이터베이스 스키마에 추가적인 맥락(context)을 덧붙여 모델의 이해를 더욱 정교하게 만들어 정확한 SQL 질의문을 생성하게 합니다 [17].
Spider-DK [5] 데이터셋은 Spider 데이터셋에 특정 도메인 지식을 추가하여 더욱 까다로운 질의를 다룰 수 있도록 합니다. RAG 시스템은 외부 문서나 비구조적 데이터를 검색하여 이러한 추가 지식이 필요한 질문을 효과적으로 처리할 수 있습니다.

 

• 3. 맥락 의존형 데이터셋 (Context-Dependent Datasets)

CoSQL [4], SParC [38]와 같은 데이터셋은 데이터베이스 질의가 대화 형식으로 진행되며 이전 질문의 맥락이 현재 질문에 영향을 미치는 경우를 다룹니다. 이러한 데이터셋은 모델이 여러 차례 진행되는 대화에서 맥락을 유지하도록 요구하며, 복잡한 대화 기반의 질의를 처리하는 능력을 평가합니다 [38].

 

• 4. 강건성 데이터셋 (Robustness Datasets)

ADVETA [46]와 같은 데이터셋은 데이터베이스의 구조나 테이블이 갑자기 바뀌는 상황을 만들어서 모델의 강건성(robustness)을 테스트합니다. 이 방식은 예상치 못한 스키마나 테이블 구조 변경에도 잘 대응할 수 있는지, 실제 상황에서도 안정적으로 작동하는지를 평가하는 데 목적이 있습니다 [46]. RAG 시스템에서는 검색 모듈이 명확한 스키마 설명이나 매핑 정보를 가져와서 이러한 모호성이나 변경 사항에 대응할 수 있도록 돕습니다.

 

• 5. 의미 분석 중심 데이터셋 (Semantic Parsing-Oriented Datasets)

이러한 데이터셋은 모델이 자연어를 SQL로 정확하게 변환할 수 있는 의미 분석 능력(semantic parsing)을 평가하도록 설계되었습니다. 자연어 질의를 정확하게 SQL 명령으로 바꾸는지 그 정확도를 중점적으로 테스트합니다 [41].

 

• 6. 다국어 또는 교차 언어 데이터셋 (Multi-Lingual or Cross-Lingual Datasets)

이 데이터셋은 모델이 영어 이외의 여러 언어로 작성된 질문을 정확히 SQL로 변환할 수 있는지를 평가합니다. RAG 시스템의 검색 모듈은 입력된 언어에 맞는 스키마 매핑 정보나 예시 질의를 가져와서 다국어 성능을 향상시킵니다 [37].

 

• 7. 대화형 또는 상호작용형 데이터셋 (Conversational or Interactive Datasets)

이 데이터셋은 대화 형식의 질의를 위한 것으로, 이전 질문에서 나온 맥락이 다음 질문에 반드시 반영되어야 합니다 [4]. CoSQL은 Spider 데이터셋을 대화형 Text-to-SQL 작업에 맞게 확장한 데이터셋이며, SParC [38]는 여러 단계의 질문들이 서로 연관된 형태의 대화형 SQL 질의 데이터셋입니다. RAG 시스템은 이전 대화의 맥락을 동적으로 검색하여 대화의 연속성을 유지합니다.

 

정리

Text-to-SQL 기술을 연구하고 발전시키기 위해 다양한 데이터셋이 사용됩니다. 이 데이터셋은 주로 다음과 같이 분류됩니다.

  1. 크로스 도메인 데이터셋: 서로 다른 분야의 다양한 데이터베이스에서도 잘 작동하는지 평가합니다.
    • 예시: WikiSQL, Spider
  2. 지식 보강형 데이터셋: 외부의 추가 지식을 활용하여 더 정확한 SQL을 생성하는 능력을 평가합니다.
    • 예시: SQUALL, BIRD, Spider-DK
  3. 맥락 의존형 데이터셋: 대화의 맥락을 유지하면서 정확한 SQL을 생성하는 능력을 평가합니다.
    • 예시: CoSQL, SParC
  4. 강건성 데이터셋: 데이터베이스의 구조가 갑자기 변경되었을 때도 잘 대응할 수 있는지를 평가합니다.
    • 예시: ADVETA
  5. 의미 분석 중심 데이터셋: 자연어를 SQL로 정확히 변환하는 능력을 평가합니다.
  6. 다국어 또는 교차 언어 데이터셋: 다양한 언어로 질문이 들어왔을 때도 잘 작동하는지를 평가합니다.
  7. 대화형 또는 상호작용형 데이터셋: 여러 차례 대화를 통해 SQL을 생성할 때 맥락을 잘 유지하는지 평가합니다.
    • 예시: CoSQL, SParC

이 데이터셋들을 통해 Text-to-SQL 시스템이 다양한 상황에서도 강력한 성능을 보이도록 계속 발전하고 있습니다. 특히 RAG 기술은 이러한 데이터셋의 도전 과제들을 해결하는 데 큰 도움을 줍니다.

 

B. Evaluation Metrics Used in Benchmarks

Text-to-SQL 시스템의 성능을 평가하는 벤치마크에서는 SQL 질의문의 정확성과 효율성을 모두 측정하는 평가 지표를 사용합니다. 이러한 지표는 모델이 단순히 정확한 SQL 질의문을 생성하는 것뿐만 아니라, 실제 데이터베이스 환경에서도 효율적으로 작동하는지를 확인합니다.

평가 지표는 크게 두 가지 범주로 나눌 수 있으며, 그림 5는 이러한 평가 지표를 보여줍니다. 두 가지 범주는 내용 일치 기반(Content Matching-based) 평가 지표와 실행 기반(Execution-based) 평가 지표입니다.

1) 내용 일치 기반 평가 지표 (Content Matching-based Metrics)

내용 일치 기반 평가 지표는 모델이 생성한 SQL 질의문이 미리 정해진 참조 질의문(정답 질의문)과 얼마나 유사한 구조를 가지는지 평가합니다. 이 평가는 모델이 정확한 SQL 문법과 구조를 따르고 있는지 확인하는 데 사용됩니다.

 

• 1. 컴포넌트 매칭(Component Matching, CM)

이 지표는 SQL 질의문의 각 구성요소(예: SELECT, FROM, WHERE 등)를 개별적으로 평가합니다. 구성요소의 순서가 정답 질의문과 다르더라도, 필수 구성요소들이 정확히 존재하고 있다면 정답으로 간주됩니다. 이는 질의문의 구조에 유연성을 제공하면서도 핵심 구성요소의 정확성을 보장합니다 [36].

 

• 2. 정확 일치(Exact Matching, EM)

정확 일치는 더욱 엄격한 평가 방식으로, 생성된 SQL 질의문이 정답 질의문과 모든 면에서 정확히 동일해야 합니다. 구성요소의 순서, 구조까지 완전히 일치해야 하며, 조금이라도 다르면 감점 처리됩니다. 단점은 기능적으로는 정답과 같은 결과를 반환하지만 구조가 조금이라도 다른 질의문에 대해서는 점수가 낮아질 수 있다는 것입니다 [36].

2) 실행 기반 평가 지표 (Execution-based Metrics)

실행 기반 평가 지표는 생성된 SQL 질의문이 실제 데이터베이스에서 실행될 때의 성능을 평가합니다. 이 지표들은 질의문이 정확한 구조를 따르는지뿐만 아니라, 실제 상황에서 올바른 결과를 반환하고 효율적으로 작동하는지를 확인합니다.

 

• 1. 실행 정확도(Execution Accuracy, EX)

이 지표는 생성된 SQL 질의문이 실제 데이터베이스에서 실행되었을 때, 정답 질의문과 정확히 동일한 결과를 반환하는지를 확인합니다. 즉, 질의문의 구조보다는 최종 결과의 정확성에 초점을 맞춥니다 [36].

 

• 2. 유효 효율성 점수(Valid Efficiency Score, VES)

이 지표는 생성된 SQL 질의문이 정답 질의문에 비해 얼마나 효율적인지를 평가합니다. 결과가 정확하더라도 불필요한 복잡성(예를 들어, 중복된 서브쿼리, 불필요한 조인 등)이 있으면 평가 점수가 낮아집니다. 즉, 정확한 결과를 내더라도 비효율적인 질의문을 생성하면 이를 감점하는 방식입니다 [4].

C. Methods

LLM 기반 Text-to-SQL 시스템은 크게 두 가지 방식으로 나눌 수 있습니다. 인-컨텍스트 러닝(In-context Learning)과 파인튜닝(Fine-tuning) 방식입니다. 각 방식은 자연어 질문에서 SQL 쿼리를 생성하기 위해 모델을 훈련시키는 방법에서 차이를 보입니다. 두 방식 모두 미리 학습된 모델의 지식을 활용하지만, 프롬프트를 이용하거나, 특정 작업에 맞는 데이터로 추가 학습하여 성능을 높입니다.

1) 인-컨텍스트 러닝(In-context Learning)

인-컨텍스트 러닝은 모델의 내부 파라미터를 변경하지 않고 주어진 프롬프트(context)를 기반으로 SQL 쿼리를 생성합니다. 즉, 잘 설계된 프롬프트가 모델이 정확한 SQL 쿼리를 생성하는데 결정적 역할을 합니다. 

 

즉, 모델의 성능은 얼마나 좋은 프롬프트를 제공하느냐에 따라 달라집니다. 다음은 주요 인-컨텍스트 러닝 방법입니다.

• Zero-shot 및 Few-shot 러닝:

  • Zero-shot: 사전에 관련된 예시 없이 모델의 기존 지식만으로 SQL 쿼리를 생성합니다. (예: ChatGPT를 이용한 C3의 zero-shot 방식 [2])
  • Few-shot: 소수의 예시(질문-답변 쌍)를 제시하여 모델이 이를 바탕으로 새로운 SQL 쿼리를 생성합니다. (예: FinSQL [43])

• 질의 분해(Decomposition): 복잡한 질의를 여러 개의 간단한 하위 질의로 나누어 처리하여, 중첩된(nested) SQL 질의를 효과적으로 다룹니다 [77].

• 프롬프트 최적화(Prompt Optimization): 프롬프트의 구조를 개선하여 모델이 정확한 SQL 쿼리를 생성하도록 돕습니다. ACT-SQL과 같은 방법이 이에 해당됩니다 [66].

• 추론 강화(Reasoning Enhancement): Chain of Thought(CoT)나 Tree of Thoughts(ToT)와 같이 단계적 추론 과정을 프롬프트로 제공해, 복잡한 질의를 처리할 수 있게 돕습니다 [75,76].

반복적 실행 및 개선(Execution Refinement): 생성된 SQL을 실제 실행한 뒤 오류를 기반으로 SQL을 반복적으로 개선합니다. 이를 통해 최적화된 SQL을 얻을 수 있습니다 [73].

2) 파인튜닝(Fine-tuning)

파인튜닝은 미리 학습된 모델의 파라미터를 특정 작업에 맞는 데이터셋으로 추가 학습하여 개선하는 방법입니다. 인-컨텍스트 러닝과 달리, 모델의 내부 파라미터를 직접 변경하여 작업 특화된 능력을 키웁니다.

주요 파인튜닝 기법은 다음과 같습니다.

사전학습 모델 활용(Pre-trained Methods): GPT, LLaMA, T5 등 대형 언어모델을 SQL 생성에 맞춰 파인튜닝하여 다양한 도메인과 스키마에서 성능을 높입니다. 예: SQL-GEN, RESDSQL [78,83]

• 파인튜닝 분해(Fine-Tuning Decomposition): 복잡한 SQL 생성 작업을 스키마 연결(schema linking), SQL 생성 등 작은 하위 작업으로 나눠 각각 최적화된 학습을 수행합니다 [80].

• 데이터 증강(Data Augmented Methods): 학습 데이터의 품질을 높여 모델의 성능을 개선합니다. 데이터가 좋으면 구조적 개선 없이도 성능이 크게 향상됩니다. (예: Symbol-LLM [81,82])

• 아키텍처 강화(Enhanced Architecture): 생성 모델의 효율성을 높이기 위해 모델의 구조를 개선하여 SQL 생성 속도를 높입니다. 예를 들어, CLLMs는 효율성을 개선한 구조를 통해 질의 생성 속도를 향상시킵니다 [79].

3) RAG 기반 Text-to-SQL 시스템

RAG 기반 Text-to-SQL 시스템은 동적 정보 검색을 추가한 생성 모델로, 다음 다섯 가지로 분류할 수 있습니다.

• 동적 검색(Dynamic Retrieval): 스키마 정보, 메타데이터 등을 동적으로 검색하여 정확한 SQL을 생성합니다. (단, 실시간 처리 시 계산 부담이 큽니다.)

• 지식 강화 검색(Knowledge-Enhanced Retrieval): 도메인 지식을 추가로 검색하여 스키마 정보 부족으로 발생할 수 있는 문제를 해결합니다. (단, 도메인 지식의 품질에 의존적입니다.)

• 스키마 증강 프롬프팅(Schema-Augmented Prompting):검색된 스키마 정보를 이용해 더 정확한 프롬프트를 생성하여 복잡한 SQL을 처리합니다. (단, 프롬프트가 너무 길어지면 비효율적입니다.)

• 맥락 인식 검색(Context-Aware Retrieval): 여러 단계의 대화에서 맥락을 유지하도록 이전 질의의 정보를 검색합니다. (단, 긴 대화의 경우 처리 비용이 증가합니다.)

• 강건성 강화(Robustness Enhancement): 스키마가 모호하거나 적대적인 조건에서도 대체 정보를 검색해 SQL 생성의 오류를 최소화합니다. (단, 무관한 정보가 검색될 경우 오히려 성능 저하 가능성 존재)

4) RAG 시스템의 장점

RAG 시스템은 기존 방식과 달리 다음과 같은 장점을 제공합니다.

  • 동적 맥락화: 정적인 파인튜닝 모델과 달리, 실시간으로 정보를 검색하여 새로운 도메인에 쉽게 적응합니다.
  • 뛰어난 일반화 성능: zero-shot, few-shot 상황에서도 뛰어난 성능을 보입니다.
  • 다양한 도메인 지원: 도메인별 지식을 실시간으로 가져와 특화된 작업을 더 잘 수행합니다.
  • 반복적 개선: 실행 피드백 루프를 통해 지속적으로 SQL 질의문을 개선할 수 있습니다.

5) RAG 시스템의 단점

RAG 시스템에도 다음과 같은 한계점이 있습니다.

  • 계산 비용 증가: 정보 검색 과정 때문에 처리 속도가 느려질 수 있습니다.
  • 검색 품질에 의존: 검색된 정보의 질이 나쁘면 성능이 떨어집니다.
  • 확장성 문제: 데이터베이스가 크거나 복잡할 경우 검색 과정이 병목 현상을 일으킬 수 있습니다.

IV. GRAPH RAG IN TEXT-TO-SQL SYSTEMS, A PROMISING SOLUTION

Graph RAG는 그래프 기반 지식 표현 방식을 검색 보강 생성(RAG) 기술과 결합한 고급 프레임워크입니다 [33]. 일반적인 RAG 시스템은 개별적인 텍스트 데이터를 검색하는 반면, Graph RAG는 원본 문서에서 얻은 정보를 구조화된 지식 그래프(knowledge graph)로 구성합니다. 이 그래프는 문서 내의 다양한 개체(entities), 그 개체들 간의 관계(relationships), 그리고 문맥적으로 연관된 응답(responses)을 체계적으로 조직합니다 [84].

A. Novelty of Using Graph RAG

Graph RAG는 다음과 같은 새로운 아이디어를 도입한 방법입니다.

  1. 그래프 기반 구조 사용:
    기존 RAG와 달리, 정보를 그래프라는 형태로 조직하고 연결하여 복잡한 정보도 쉽게 관리합니다.
  2. 모듈화 기법 적용:
    큰 그래프를 작은 단위(하위 그래프)로 나눠서 데이터를 쉽게 요약하거나 병렬로 빠르게 처리합니다.
  3. 트리플 그래프 기법 활용:
    데이터의 개체, 속성, 관계를 믿을 수 있는 출처와 표준화된 용어에 연결하여 더욱 신뢰할 수 있는 결과를 제공합니다.
  4. 탑다운과 바텀업 방식 결합한 검색 전략:
    넓은 맥락과 세부 정보를 모두 놓치지 않고 효율적으로 검색하여 더욱 정확한 SQL 질의문을 만듭니다.

이러한 혁신을 통해 Graph RAG는 기존 시스템보다 정확성과 신뢰성을 크게 높이며, 앞으로의 RAG 기술의 새로운 표준으로 자리 잡고 있습니다.

B. Why is RAG a Promising Solution for Current LLM-Based Text-to-SQL Limitations?

Graph RAG는 현재의 대형 언어 모델(LLM) 기반 Text-to-SQL 시스템이 겪고 있는 다양한 문제점을 효과적으로 해결하는 방법으로 주목받고 있습니다 [33].

 

그래프 기반의 정확한 스키마 이해

Graph RAG의 가장 큰 강점 중 하나는 그래프 기반 관계를 통해 데이터베이스의 스키마(schema)를 더욱 정확히 이해하고 모델링하는 능력입니다 [87].

기존 방식은 일반적으로 단순한 스키마 설명(즉, 테이블 이름, 컬럼, 기본 속성 등을 평면적으로 나열한 형태)에 의존했습니다. 반면, Graph RAG는 테이블, 컬럼, 그리고 개체(entities) 간의 복잡한 관계를 그래프로 표현하여, 더욱 정교하고 효율적으로 스키마를 연결(schema linking)할 수 있게 합니다 [84]. 이러한 능력은 특히 복잡한 데이터베이스나 여러 도메인을 다루는 상황에서 매우 중요합니다.

 

모호한 질의 처리 능력 향상

또한 Graph RAG의 구조화된 그래프 연결과 고급 검색 메커니즘은 질의에 포함된 모호성을 효과적으로 해소합니다. 예를 들어, 동의어의 차이, 불완전한 스키마 설명 같은 문제들도 정확히 해결할 수 있습니다 [88].

 

높은 도메인 일반화 능력

Graph RAG의 모듈화된 설계 덕분에, 다양한 도메인에서의 일반화(generalization)가 가능하며, 그래프 구조 생성 과정을 특정 도메인의 요구사항에 맞게 유연하게 조정할 수 있습니다 [86].

 

복잡한 질의 처리 능력 강화

뿐만 아니라, 그래프의 여러 하위 커뮤니티(그래프 내의 작은 그룹) 간의 정보를 종합적으로 활용하여 복잡하고 다차원적인 질의도 효과적으로 처리할 수 있습니다.

 

효율적인 정보 검색

또한, 미리 구성된(pre-indexed) 그래프 구조를 이용하기 때문에 정보 검색 과정에서 발생하는 계산 부담을 줄이면서도 높은 정확성을 유지할 수 있습니다.

 

V. CONCLUSION

Graph RAG 시스템은 자연어로부터 SQL 질의문을 생성하는 검색 보강 생성(RAG) 분야에 새로운 패러다임을 제시하고 있습니다. 기존의 일반적인 RAG 방식과 달리, Graph RAG는 데이터를 그래프 기반 구조로 구성하여 지식과 스키마 정보를 서로 연결된 형태로 통합합니다. 이를 통해 데이터베이스의 구조를 정확히 이해하고, 여러 단계를 거쳐 추론할 수 있으며, 질의에 포함된 모호성도 효과적으로 해소할 수 있게 합니다.

이러한 구조적인 접근 방식 덕분에 Graph RAG는 현재의 많은 대형 언어 모델(LLM) 기반의 Text-to-SQL 시스템들이 겪고 있는 한계점들을 크게 완화시킵니다. 특히 복잡한 질의 처리, 스키마의 모호성 문제, 다양한 도메인에서의 일반화 문제를 효과적으로 해결합니다.

Graph RAG 시스템은 모듈화(modularity), 커뮤니티 탐지(community detection), 그래프 탐색(graph traversal) 같은 고급 기법을 활용하여 시스템의 확장성과 효율성을 크게 개선하였습니다. 또한, 동적 정보 검색, 스키마 증강(schema augmentation), 강력한 추론(robust reasoning)과 같은 강점을 결합하여 SQL 질의문의 정확성을 향상시키고 다양한 도메인과 데이터셋에서도 뛰어난 적응성을 보입니다.

이처럼 Graph RAG는 도메인 특화된 지식과 복잡한 질의 생성을 결합한 혁신적 접근법으로서 Text-to-SQL 분야에서 가장 앞선 기술을 이끌 가능성이 높습니다.

 

추가 연구 및 개발 방향

Graph RAG가 뛰어난 잠재력을 보이고 있지만, 다음과 같은 분야에서 더 깊은 연구와 발전이 필요합니다.

 

1. 동적 스키마 적응(Dynamic Schema Adaptation):

데이터베이스의 스키마(schema)가 실시간으로 변화할 때 그래프 구조도 즉시 업데이트할 수 있는 방법을 연구해야 합니다. 이는 기업 데이터 레이크(data lakes)나 멀티 테넌트 시스템(multi-tenant systems)처럼 스키마가 자주 바뀌는 환경에서 매우 중요합니다.

 

2. 대화형 에이전트와 통합(Integration with Conversational Agents):

비전문 사용자들도 자연어로 쉽게 데이터베이스와 상호작용할 수 있도록 대화형 AI와의 통합이 필요합니다. 이 통합을 통해 사용자는 후속 질문이나 대화의 맥락에 따라 시스템과 더욱 자연스럽고 직관적으로 소통할 수 있습니다.

 

3. 그래프 구축 최적화(Optimization of Graph Construction):

현재의 그래프 생성 방법은 많은 컴퓨팅 자원을 필요로 합니다. 대규모 데이터베이스를 위해 더 효율적이고 가벼운 그래프 분할 알고리즘, 모듈성 탐지, 요약 기법 등을 개발하면 Graph RAG 시스템의 확장성이 개선되어 현실적인 응용에서 더욱 실용적으로 활용할 수 있을 것입니다.

 

4. 다국어 지원(Cross-lingual support):

다양한 언어로 이루어진 질문에 대해서도 Graph RAG 시스템이 효과적으로 작동할 수 있도록 해야 합니다. 그래프에 언어별 지식과 번역 메커니즘을 추가하여 전 세계적으로 널리 활용될 수 있도록 만들어야 합니다.

 

5. 실시간 데이터 처리(Real-time data handling):

데이터의 신선도와 정확성 문제를 해결하기 위해, 실시간으로 그래프를 업데이트하고 강력한 검색 기능을 결합하는 방법이 필요합니다. 이는 금융 보고서나 라이브 분석과 같은 실시간 정보가 중요한 분야에서 필수적입니다.

 

6. 설명 가능성 개선(Improved Explainability):

향후 Graph RAG 시스템은 SQL 질의문이 생성되는 과정을 사용자에게 명확히 설명할 수 있도록 해야 합니다. 그래프 탐색 과정과 추론 단계를 시각적으로 보여줌으로써 사용자의 신뢰와 투명성을 높일 수 있습니다.

 

VI. LIMITATION OF THE STATE OF THE ART

지금까지 소개한 많은 발전에도 불구하고, 여전히 몇 가지 도전 과제들이 존재합니다. 주요한 한계점들은 다음과 같습니다.

A. 확장성과 계산 효율성(Scalability and Computational Efficiency)

현재의 LLM 기반 Text-to-SQL 시스템이 큰 규모이거나 복잡한 데이터베이스를 다룰 때 계산 효율성을 유지하는 것은 여전히 큰 도전 과제입니다. 긴 SQL 쿼리를 처리하거나 데이터셋의 크기가 커질수록 처리 비용과 쿼리 생성에 필요한 계산량이 증가합니다. 앞으로의 해결책은 모델 최적화, 효율적인 검색 및 저장 메커니즘, 특화된 인덱싱 기술 등을 통해 쿼리 생성 과정을 더욱 빠르고 효율적으로 만드는 방향으로 발전해야 합니다.

B. 스키마 변화에 대한 동적 적응(Dynamic Adaptation to Schema Changes)

대부분의 현재 시스템들은 데이터베이스 스키마(schema)가 변경될 때마다 전체 모델을 다시 학습(retraining)해야 하는 비효율적인 방식을 취하고 있습니다. 현실에서는 데이터베이스가 자주 변화하고 데이터가 추가되는 경우가 많으므로, 점진적 학습(incremental learning)이나 유연한 구조와 같은 기술이 부족하면 시간이 지남에 따라 질의의 정확성이 떨어질 수 있습니다. 특히 변화가 잦은 환경에서는 더욱 심각한 문제가 될 수 있습니다.

C. 맥락의 정확성과 모호성 해결(Contextual Accuracy and Disambiguity)

많은 LLM 기반 Text-to-SQL 시스템은 명확한 맥락(context)이 주어지지 않은 복잡하거나 모호한 질의를 처리하는 데 어려움을 겪고 있습니다. 정확한 맥락 이해를 개선하려면 LLM이 지식 그래프(Knowledge Graphs)의 구조화된 정보를 어떻게 활용하는지 연구가 더 필요합니다. 사용자의 질의와 데이터베이스 스키마 사이의 의미적 연결(semantic link)을 더 명확히 하고, 보다 발전된 의미 분석(semantic parsing) 및 모호성 해결(disambiguation) 기술이 필요합니다.

D. RAG 방식과 파인튜닝 방식 간의 균형(Balancing RAG and Fine-Tuning)

특정 도메인에 맞춘 파인튜닝(fine-tuning)은 성능을 크게 향상시키지만, RAG(Retrieval-Augmented Generation)는 보다 동적으로 맥락을 제공하면서도 추가적인 재학습의 부담을 줄여줍니다. 이 두 방식 간의 균형을 찾는 것이 중요하며, 향후 시스템은 두 접근법의 장점을 모두 활용하여 훈련 시간을 최소화하면서도 맥락에 맞는 정확한 질의를 생성하는 방향으로 발전할 것입니다.

E. 윤리, 데이터 프라이버시, 설명 가능성(Ethics, Data Privacy, and Interpretability)

LLM을 헬스케어, 금융, 교육과 같은 중요한 분야에 적용할 경우, 데이터 프라이버시와 모델의 설명 가능성에 대한 윤리적 우려가 생길 수 있습니다. 이러한 시스템은 반드시 투명하고 신뢰할 수 있어야 하며, 사용자 개인정보를 존중해야 합니다. 앞으로는 명확한 설명 가능성 프로토콜, 안전한 데이터 처리 방식, 그리고 투명한 AI 프로세스를 마련하여 LLM 기반 Text-to-SQL 시스템에 대한 신뢰를 높일 필요가 있습니다.

F. 사람의 피드백을 활용한 상호작용(Human-in-the-Loop and Interactive Querying)

사람의 피드백을 시스템과 통합하는 것도 중요한 연구 방향입니다. 사용자가 생성된 질의를 직접 수정하고 개선할 수 있도록 하는 "Human-in-the-loop(사람이 개입하는)" 메커니즘은 모델의 정확성과 투명성을 높일 수 있습니다. 상호작용(interactivity)의 개선은 사용자의 신뢰를 구축할 뿐만 아니라, 질의 생성 과정에서 효과적인 학습과 오류 교정의 기회를 제공할 수 있습니다.

반응형