Text-to-SQL Empowered by Large Language Models: A Benchmark Evaluation(240704)

김지원·2024년 7월 9일

1일1논문

목록 보기
2/13
post-thumbnail

논문:https://paperswithcode.com/paper/text-to-sql-empowered-by-large-language
코드: https://github.com/beachwang/dail-sql

DAIL은 "Dual-Attentive In-Context Learning"의 약자

  • Dual-Attentive는 두 가지 주의 메커니즘을 사용하여 학습하는 방식을 의미할 수 있습니다. Text-to-SQL 작업에서는 주로 다음 두 가지에 집중.
  • 질문-기반 주의 (Question-based Attention):모델이 입력된 자연어 질문에 주의를 기울. 질문의 중요한 부분을 강조하여 SQL 쿼리를 생성할 때 참고
    예:"몇 개의 대륙이 있습니까?"라는 질문에서 "몇 개"와 "대륙"이 중요한 키워드
  • 쿼리-기반 주의 (Query-based Attention):모델이 예제 SQL 쿼리와 해당 질문 간의 매핑에 주의를 기울. SQL 쿼리의 구조적 패턴과 이를 생성한 질문 간의 관계를 학습
    예: "SELECT COUNT(*) FROM continents"와 같은 예제 쿼리가 주어진다면, 이 쿼리가 어떻게 질문과 연결되는지 학습

DAIL-SQL이란?

  • 대형 언어 모델(LLMs)을 활용하여 Text-to-SQL 작업을 수행하는 새로운 방법론
  • 이 방법론은 질문 표현, 예제 선택 및 예제 조직 전략을 통합하여 Text-to-SQL 성능을 극대화

요약: 1) 효율적이고 경제적인 LLM 기반 Text-to-SQL 솔루션을 설계하기 위해 기존의 프롬프트 엔지니어링 방법을 비교하고 평가 및 DAIL-SQL이라는 새로운 솔루션을 제안

2) 정확한 SQL 쿼리를 생성하기 위해 LLM을 프롬프트하는 방법을 다룸. 이는 질문 표현, 예제 선택 및 예제 조직을 포함

방법론:

1. 질문 표현 (Question Representation):

제로샷 시나리오에서 질문 표현을 최적화하는 방법을 연구 → 이를 위해 다양한 질문 표현 방식을 평가 (각 질문 표현 방식은 데이터베이스 스키마, 자연어 질문, 그리고 필요한 경우 추가적인 지침(예: 외래 키 정보)을 포함)'

  • 기본 프롬프트 (Basic Prompt, BSP): 단순한 질문 표현 방식으로, 테이블 스키마와 자연어 질문을 포함합니다.
  • 텍스트 표현 프롬프트 (Text Representation Prompt, TRP): 질문과 스키마를 자연어로 표현하고, 추가 지침을 포함합니다.
  • OpenAI 데모 프롬프트 (OpenAI Demonstration Prompt, ODP): 질문과 스키마를 주석으로 포함하며, "설명 없이 SQL 쿼리만 작성"과 같은 규칙을 포함합니다.
  • 코드 표현 프롬프트 (Code Representation Prompt, CRP): "CREATE TABLE" SQL 명령문을 사용하여 테이블을 정의하고, 자연어 질문을 주석으로 포함합니다.
  • Alpaca SFT 프롬프트 (ASP): Markdown 형식을 사용하여 질문과 추가 지침을 포함합니다.

2. 인컨텍스트 학습 (In-Context Learning):

인컨텍스트 학습을 통해 LLM이 제공된 예제를 기반으로 새로운 질문에 대해 SQL 쿼리를 생성. 이를 위해 예제 선택과 조직 방법을 연구
예제 선택 (Example Selection):
다양한 예제 선택 전략을 비교

  • 랜덤 선택 (Random Selection): 무작위로 예제를 선택
  • 질문 유사도 선택 (Question Similarity Selection, QTS): 질문의 유사도를 기반으로 예제를 선택
    → 미리 훈련된 언어 모델을 사용하여 질문을 임베딩하고, 유클리드 거리나 코사인 유사도를 계산하여 가장 유사한 예제를 선택
    - 마스크된 질문 유사도 선택 (Masked Question Similarity Selection, MQS): 도메인 특화 정보를 마스크한 후 질문 유사도를 계산하여 예제를 선택
    - 쿼리 유사도 선택 (Query Similarity Selection, QRS): 타겟 SQL 쿼리와 유사한 예제를 선택
    예제 쿼리를 이산 구문 벡터로 인코딩하고, 타겟 쿼리와의 유사도와 다양성을 고려하여 예제를 선택

예제 조직 (Example Organization):
선택된 예제를 어떻게 프롬프트에 조직할지 결정

  • 완전 정보 조직 (Full-Information Organization, FIO): 예제의 모든 정보를 포함
  • SQL 전용 조직 (SQL-Only Organization, SOO): SQL 쿼리만 포함하여 더 많은 예제를 포함할 수 있도록 함
  • DAIL 조직 (DAIL Organization): 질문과 SQL 쿼리를 모두 포함하되, 데이터베이스 스키마를 제거하여 토큰 효율성을 높임.

3. 지도 학습 (Supervised Fine-Tuning):

지도 학습을 통해 LLM의 성능을 향상. Text-to-SQL 작업에 대한 특정 학습 데이터를 사용하여 LLM을 미세 조정.

데이터 준비 (Data Preparation):

  • Text-to-SQL 데이터 세트를 사용하여 프롬프트-응답 쌍을 생성합
  • 예를 들어, 질문과 데이터베이스 스키마를 프롬프트로 사용하고, 원하는 SQL 쿼리를 응답으로 사용.그런 다음, 이를 기반으로 LLM을 미세 조정

결론: DAIL-SQL은 효율적이고 경제적인 Text-to-SQL 솔루션으로, Spider 리더보드에서 최고 성능을 기록

0개의 댓글