데이터베이스 안에서 자연어 프롬프트로 대규모 문서 분류와 판정을 수행하는 AI-SQL 기능이 주목받습니다. 하지만 행마다 모델을 호출하는 구조 특성상 수십만 번에서 수백만 번의 추론이 발생해 비용과 성능 면에서 큰 부담이 됩니다. Quail은 이런 한계를 극복하기 위해 쿼리 실행 계획과 모델 추론을 동시에 제어하는 방식을 택했습니다.

쿼리 계획이 추론을 제어하는 구조

범용 추론 서버에 요청을 개별적으로 보내면 CPU의 요청 관리와 반복 계산이 병목이 됩니다. Quail은 SQL 실행 계획과 모델 추론을 함께 최적화해 불필요한 메모리 읽기를 줄입니다. 조인 과정에서 기준이 되는 문서를 앵커로 삼아 여러 비교 대상과의 판정에 재사용하며, 필요한 캐시만 남기고 지우는 KV 되감기 방식을 씁니다. GPU가 현재 배치를 처리하는 동안 CPU가 다음 배치를 준비하도록 파이프라인을 구성해 대기 시간을 낮춥니다.

주요 기능과 성능 평가

Quail은 Arrow 테이블이나 데이터셋을 등록한 뒤 SQL이나 pandas와 유사한 Python 인터페이스로 질의합니다. Snowflake의 AI_FILTER와 BigQuery의 AI.IF 표기를 지원하며 현재 AI 필터, 조인, 열 선택, LIMIT 구문을 다룹니다. H100 한 대와 Qwen3 4B FP8 환경을 기준으로 한 자체 평가에서 29개 쿼리 중 27개가 vLLM보다 빨랐습니다. 속도 향상의 기하평균은 1.84배를 기록했으며, 의료 보고서 비교 같은 특정 쿼리에서는 성능이 크게 개선됩니다.

도입 시 고려 사항

데이터베이스 규모에서 대량의 AI 판정을 실행해야 하는 개발자나 분석가에게 유용한 도구입니다. 다만 모든 쿼리에서 항상 빠른 것은 아니며 워크로드 성격에 따라 기존 추론 엔진이 유리할 수도 있습니다. 구조적 제약과 실행 방식을 고려해 도입을 검토합니다.

요약

  • Quail은 SQL 실행 계획과 LLM 추론을 함께 최적화해 대규모 AI-SQL 쿼리 속도를 높입니다.
  • KV 캐시 재사용과 조인 전용 어텐션 계산으로 반복적인 메모리 읽기 낭비를 줄입니다.
  • 표준 AI-SQL 문법을 지원하며 데이터베이스 규모의 비정형 데이터 처리에 적합합니다.