고처리량 AI-SQL 엔진 구축하기

22 hours ago 4

Quail은 SQL 안에서 AI로 문서를 분류하거나 문서 간 관계를 판별하는 엔진으로, 데이터 전체에 걸친 수십만~수백만 번의 모델 호출을 빠르게 처리함 호출을 하나씩 추론 서버에 보내는 대신 쿼리 실행 계획과 모델 추론을 함께 최적화해, 같은 문서를 반복해서 읽고 계산하는 낭비를 줄임 후속 필터와 조인에 필요한 KV 캐시를 재사용하고, CPU의 작업 준비와 GPU 실행을 겹쳐 GPU가 대기하는 시간을 줄임 H100 한 대와 Qwen3 4B FP8을 사용한 자체 평가에서 29개 쿼리 중 27개가 vLLM보다 빨랐으며, 속도 향상의 기하평균은 1.84배였음. 긴 의료 보고서를 반복 비교하는 쿼리에서는 14.04배를 기록함 영화 리뷰 10만 건에서 두 조건에 맞는 리뷰를 추리는 작업을 모델 시작까지 약 5분 35초, GPU 비용 약 0.37달러에 수행함 SQL 안에서 수백만 번의 AI 판정 실행하기 AI-SQL은 자연어 프롬프트로 정의한 AI 함수를 SQL에서 호출하는 방식임 영화 리뷰에서 “결말을 다루는가”를 판정해 필터링하거나, 의료 보고서가 특정 이상 반응을 설명하는지 판단해 두 테이블을 연결할 수 있음 Snowflake Cortex AISQL, BigQuery, Databricks, MotherDuck 등이 지원함 필터는 행마다, 단순한 조인은 후보 행 쌍마다 모델을 호출하므로 SQL 쿼리 하나가 수십만~수백만 번의 추론 요청을 만들 수 있음 기존 시스템은 불필요한 호출을 제거하거나 저렴한 모델을 사용해 비용을 낮추지만, 최적화 이후에도 대량의 호출이 남음 관련 요청을 범용 추론 엔진에 개별적으로 보내면 CPU의 요청 관리와 반복 계산이 병목이 됨 CPU가 요청을 준비하고 추적하는 동안 GPU가 대기함 나중에 다시 사용할 문서의 KV 캐시를 버리면 같은 내용을 재계산해야 함 Quail의 핵심: 쿼리 계획이 추론을 제어하기 Quail은 SQL 실행 계획과 모델 추론을 함께 최적화하는 엔진임 어떤 필터와 조인을 먼저 실행할지뿐 아니라, 어떤 문서의 KV 캐시를 언제까지 보존할지도 결정함 개별 요청만 보는 추론 서버와 달리 쿼리 전체에서 이어지는 작업과 재사용 관계를 활용함 필터의 예상 통과 비율과 계산 비용으로 실행 순서를 정하고, 조인에서는 캐시 재사용에 유리한 문서를 프롬프트 앞에 배치함 앞에 놓는 문서를 앵커(anchor) 로 삼아 여러 비교 대상과의 판정에 재사용함 필터를 통과한 문서 배치는 전체 단계가...

Read Entire Article