지난 글에서는 BI(Business Intelligence)의 한계와 이를 보완하는 TAG(Table-Augmented Generation)의 개념에 대해 설명했습니다. TAG가 데이터 분석 과정을 체계적으로 관리하는 통합 시스템이라면, 그 첫 단계인 자연어 질의 처리에서 주요 역할을 하는 기술이 바로 SQLFormer입니다. 이 기술은 자연어 질문을 데이터베이스가 이해하는 SQL 쿼리로 변환하는 Text-to-SQL 모델의 한 종류인데요, 기존의 Text-to-SQL 모델들이 가진 한계를 개선하여, 보다 안정적인 성능을 목표로 설계되었습니다.
기존 Text-to-SQL 방식의 한계
초기 Text-to-SQL 모델들은 주로 사용자의 질문과 데이터베이스 스키마(구조)의 키워드를 직접 연결하는 방식에 의존했습니다. 이러한 접근 방식은 단순한 질의에는 효과적이었지만, 다음과 같은 문제점을 드러냈습니다.
- 복합 질의 처리의 어려움: "지난달 대비 매출이 가장 많이 늘어난 제품은?"과 같이 여러 조건을 포함하거나, 논리적 추론이 필요한 질문에는 적절한 SQL 쿼리를 생성하지 못하는 경우가 많았습니다.
- 스키마 의존성: 데이터베이스의 구조(테이블, 컬럼)가 변경될 경우 모델의 성능이 급격히 저하되거나, 특정 스키마에 과도하게 의존하는 경향을 보였습니다.
SQLFormer의 주요 기술적 특징
SQLFormer는 이러한 한계를 극복하기 위해 적용한 몇 가지 새로운 접근법을 알아볼까요?
- 그래프 기반 질의 처리: 사용자의 자연어 질문을 단순히 텍스트 시퀀스가 아닌, 문법적 관계를 반영하는 그래프(Graph) 형태로 변환합니다. 동시에 데이터베이스 스키마 역시 테이블과 컬럼 간의 연결 관계를 포함한 그래프로 표현합니다. 이러한 접근법을 통해 질문과 데이터 스키마의 연관성을 보다 구조적으로 이해합니다.
- 학습 가능한 임베딩: 이미지 인식 분야에서 사용되는 임베딩(embedding) 개념을 도입하여, 데이터베이스의 각 테이블과 컬럼에 고유한 벡터를 할당합니다. 이 벡터는 모델 학습 과정에서 질문의 내용과 가장 관련성이 높은 데이터 요소를 효율적으로 찾아내는 데 기여해요.
- 디코더의 스키마 인식: SQL 쿼리를 생성하는 디코더(Decoder)가 데이터베이스 스키마 정보를 실시간으로 참고하여, 문법적으로 올바르고 실행 가능한 SQL을 생성하도록 돕습니다. 이는 기존 모델의 쿼리 오류율을 줄이는 데 기여합니다.
SQLFormer의 정확성과 안정성
SQLFormer는 복잡한 질문에 대한 쿼리 생성 정확도를 개선하고, 다양한 데이터베이스 스키마에 더 잘 적응할 수 있습니다. 특히, 단순한 키워드 매칭을 넘어 질문의 구조적 의미와 데이터베이스의 관계를 함께 고려하는 방식은 기존 모델 대비 진보된 접근법이죠. 저희 나두AI에서도 SQLFormer 처럼 테이블간 관계의 시맨틱한 관계 정보를 기술적으로 고도화 하기 위해 여러 시도를 해보고 있습니다 😊
참고 문헌: https://www.aimodels.fyi/papers/arxiv/sqlformer-deep-auto-regressive-query-graph-generation