사상 리더

더 똑똑한 쿼리 라우팅을 위한 AI SQL 어시스턴트: 품질을 희생하지 않고 비용을 절감하는 방법

mm
Unite.AI를 Google의 선호 소스에 추가

당신의 SQL 어시스턴트가 복잡한 쿼리를 처리하는 로켓처럼 생각해 보세요. 그런데 어느 날, 당신은 간단한 목록을 가져오는 데 로켓 연료를 사용하고 있다는 것을 깨닫습니다.

それは興奮することですが、燃料代が来ると突然 현실을 직면하게 됩니다. 간단한 업무에는 로켓이 필요하지 않다는 것을 깨닫게 됩니다. 동일한 상황이 SQL 요청에 적용됩니다. 기본 조회부터 멀티 스키마 분석까지 모든 SQL 요청을 동일한 강력한 AI 모델로 라우팅하면 비용이 많이 들 수 있습니다.

AI SQL 어시스턴트를 구축하는 과정은 일반적으로 동일합니다. 처음에는 생산성이 향상됩니다. 쿼리가 더 빠르게 처리되고, 보일러플레이트 코드가 줄어들고, 개발자가 루틴 SQL 쿼리를 작성하는 시간이 줄어듭니다. 그러나 팀이 더 많이 사용하고 쿼리 수가 증가하면 인프라 비용이 증가합니다.

문제는 건물 자체에 있습니다. 실행 계획, 스키마, 복잡한 쿼리 논리를 처리할 수 있는 프런티어 AI 모델을 실행하는 비용이 많이 듭니다. 이러한 비용은 어려운 작업에는 합리적이지만, 간단한 SELECT 문 및 CRUD 작업에는 낭비입니다.

하지만 해결책은 모델을 낮추는 것이 아닙니다. 쿼리를 올바른 위치로 라우팅하는 것입니다. 스마트 쿼리 라우팅은 각 요청을 복잡도에 따라 분류하고 적절한 모델 티어로 라우팅합니다. 이러한 방법은 SQL 워크로드에서 40-70%의 추론 비용을 절감할 수 있습니다.

이 기사에서는 이러한 아키텍처가 어떻게 작동하는지에 대해 설명합니다. SQL 복잡도 티어를 정의하고, 분류 및 라우팅 파이프라인을 구축하며, 시스템이 실행 중인 경우 실제 비용-품질 트레이드오프를 측정하는 방법에 대해 다룹니다. 이러한 패턴은 dbForge AI 어시스턴트에서 스키마 인식 AI 기능을 개발하면서 배운 교훈을 반영합니다.

모든 SQL 작업에 하나의 모델이 적합하지 않은 이유

모든 SQL 쿼리는 복잡성 측면에서 동일하지 않습니다. 기본 키로 사용자를 가져오는 쿼리와 여러 스키마에 걸친 세션 펀넬을 재구성하는 쿼리는 모두 SQL이지만, 생성하기 위해 필요한推論은 매우 다릅니다.

시스템이它们를 동일하게 처리하면 예상할 수 있는 결과가 나타납니다. 계산 리소스가 낭비됩니다. 대부분의 엔터프라이즈 워크로드에서 대부분의 쿼리는 루틴입니다. 간단한 조회, 단일 테이블 읽기, 기본 삽입, 구문 수정 등 복잡한 것은 없습니다. 이러한 모든 쿼리를 프런티어 모델로 라우팅하는 것은 화물 엘리베이터를 사용하여 노트북을 운반하는 것과 같습니다.

쿼리를 복잡도 티어로 나누는 한 가지 방법은 다음과 같습니다.

티어 설명 예시 필요한 모델
Tier 1 – 루틴 간단한, 잘 정의된 작업 간단한 SELECT, 조회, 기본 CRUD, 구문 수정 빠르고 저렴한 모델
Tier 2 – 중간 다단계推論이 필요한 작업 다중 테이블 조인, 서브쿼리, 집계, 최적화 힌트 중간 모델
Tier 3 – 복잡한 깊은 스키마 인식과 推論 크로스 데이터베이스 쿼리, 윈도우 함수, 실행 계획 튜닝, 스키마 인식 리팩토링 프런티어 모델

티어 간의 비용 격차는 크습니다. Tier 1 쿼리는 경량 모델에서 약 $0.001의 비용이 들 수 있습니다. 동일한 쿼리를 프런티어 모델로 라우팅하면 약 $0.03의 비용이 됩니다. 일일 10,000개의 쿼리에서는 $10 대 $300의 일일 비용으로 30배의 차이가 납니다. 라우팅 결정만으로도 이러한 차이가 발생합니다.

스키마 인식도 여기서 중요합니다. Tier 3 쿼리는 더 많은 컴퓨팅 리소스가 필요합니다. 테이블 관계, 외래 키, 인덱스, 데이터베이스 특정 구문 등과 같은 컨텍스트가 필요합니다. 이러한 컨텍스트는 추론 중에 주입되어야 합니다.

간단한 Tier 1 쿼리를 동일한 무거운 경로로 실행하는 것은 토큰을 낭비하고, 대기 시간을 추가하며, 결과를 개선하지 않습니다.

모델 선택을 위한 실용적인 아키텍처

라우팅 시스템은 일반적으로 4단계로 구성됩니다. 분류, 라우팅, 실행, 검증입니다. 각 단계는 다른 작업을 수행하며, 각 단계는 다른 방식으로 실패할 수 있습니다. 전체 파이프라인을 함께 구축하기 전에 각 단계를 개별적으로 생각하는 것이 도움이 됩니다.

분류는 가장 중요한 단계입니다. 분류기는 원시 SQL 쿼리 또는 자연어 프롬프트를 받고 복잡도 티어를 할당합니다. 분류기를 구축하는 세 가지 일반적인 방법이 있습니다.

규칙 기반 분류는 정규식 패턴과 추상 구문 트리 파싱을 사용하여 구조적 신호를 감지합니다. 예를 들어, 테이블 수, 중첩 깊이, 윈도우 함수, 서브쿼리 또는 집계 연산자와 같은 신호를 감지합니다. 이러한 접근 방식은 빠르고 예측 가능하며 거의 keine 오버헤드가 있습니다. 명확한 경우에 잘 작동합니다. 간단한 SELECT 문과 기본 DML은 모델을 사용하지 않고 일반적으로 식별할 수 있습니다.

경량 분류 모델은 SQL 복잡도를 추정하기 위해 교육된 작은 언어 모델을 사용합니다. 추가 단계가 있지만, 이는 전체 파이프라인에서 가장 높은 ROI 결정을 추가하는 것입니다. 분류기 호출의 비용은 약 $0.0001로, $0.03의 프런티어 모델 호출을 피하는 데 충분한 가치가 있습니다.

많은 설정에서 이러한 경량 모델은 또한 로컬에서 실행할 수 있으므로 간단한 사용자 쿼리에는 비용이 사실상 제거됩니다. 또한 SQL이 생성되기 전에 자연어 프롬프트를 분류할 수 있으므로 쿼리가 아직 존재하지 않는 어시스턴트 워크플로우에서 유용합니다.

하이브리드 분류는 두 가지 접근 방식을 결합합니다. 규칙 기반 논리는 명확한 경우를 처리하며, 분류기는 모호한 중간 쿼리를 처리합니다. 즉, 중간 정도의 쿼리이지만 올바르게 생성하기 위해 스키마 인식 推論이 필요할 수 있는 쿼리입니다.

라우팅은 분류 후에 발생합니다. 그러나 티어만이 라우팅을 결정하는 요소는 아닙니다. 쿼리를 어디로 보낼지 영향을 미치는 몇 가지 다른 요소가 있습니다. 이러한 요소에는 다음이 포함됩니다.

  1. 스키마 컨텍스트 요구 사항. 일부 쿼리는 모델이 외래 키 관계, 인덱스 또는 기타 구조적 세부 정보를 이해해야 합니다. 이러한 쿼리는 더 많은 컨텍스트를 携帯하며 일반적으로 더 높은 능력의 모델로 라우팅되어야 합니다.
  2. 대기 시간 허용 범위. 사용자와 상호 작용하는 기능(예: 자동 완성 또는 인라인 제안)은 엄격한 대기 시간 예산이 있습니다. 백그라운드 작업은 일반적으로 그렇지 않습니다. 이러한 경우 더 느리지만 더 능력 있는 모델을 사용할 수 있습니다.
  3. 신뢰도 임계값. 분류기가 티어에 대해 확신이 서지 않는 경우, 라우팅을 위로 하는 것이 일반적으로 더 안전한 옵션입니다. 다운그레이드가 잘못되면 나쁜 쿼리가 생성되어 재시도할 수 있으며, 이는 처음부터 더 강력한 모델을 사용하는 것보다 더 비용이 많이 들 수 있습니다.

검증 계층은 코드가 실행된 후에 실행됩니다. 검증의 작업은 라우팅 오류를 사용자에게 전달하기 전에 捕获하는 것입니다. 실행 후, 구문이 올바른지, 결과가 합리적인지(쿼리가 올바른 행 형태를 반환했는지), 스키마가 일관적인지 확인하는 확인이 수행됩니다. 결과가 검증에 실패하면 시스템은 수준을 높이고 쿼리를 다시 실행합니다.

Devart에서 dbForge AI 어시스턴트의 라우팅 정확도를 얻는 가장 중요한 것은 분류 결정에 스키마 인식 컨텍스트를 구축하는 것이었습니다. 스키마 컨텍스트 없이, 불분명한 테이블 이름을 사용하거나 암시적 관계에 의존하는 쿼리는 항상 잘못 분류되어 더 저렴한 모델로 라우팅되었습니다. 이러한 모델은 처리할 수 없었습니다. 해결책은 분류기에 쿼리 구조뿐만 아니라 일부 스키마 메타데이터를 제공하는 것이었습니다.

실제에서 중요한 것: 비용-품질 트레이드오프

라우팅의 비즈니스 케이스는 품질이 유지되는 경우에만 유효합니다. 품질이 저하되거나 재시도가 증가하거나 개발자 신뢰도가 떨어지는 비용 절감은 절감이 아닙니다. 비용을 인프라 비용에서 엔지니어링 시간으로 전환하는 것입니다. 라우팅 시스템이 실제로 작동하는지 여부를 결정하는 세 가지 메트릭이 있습니다.

티어별 쿼리 비용은 기준을 설정합니다. 실제 비용을 티어별로 개별적으로 추적합니다. 평균 비용을 혼합하여 추적하지 마십시오. 혼합하면 라우팅이 작동하는지 여부를 흐리게 합니다. 50%의 쿼리를 잘못된 티어로 라우팅하는 시스템은 여전히 평균 비용이 낮아 보일 수 있지만 결과가 나빠지며 조용히 더 나쁨을 생산합니다.

품질 점수는 정확성, 완전성 및 SQL 최선의 관행을 확인합니다. 에스컬레이션 비율은 가장 직접적인 신호입니다. 분류기가 잘못 분류하는 빈도를 나타내며, 분류기가 더 나아지기 위해 어디에 집중해야 하는지 보여줍니다. 잘 튜닝된 시스템은 에스컬레이션을 5% 미만으로 유지해야 합니다. 분류기가 구조적 신호를 잘못 읽거나 필요한 스키마 컨텍스트가 없는 경우, 분류기를 다시 교육해야 합니다.

대기 시간 영향은 응답이 한 티어에서 다른 티어로 이동하는 데 걸리는 시간을 확인합니다. 분류에 필요한 추가 시간을 포함합니다. 사용자는 라우팅 계층을 통해 진행하는 상호 작용에서 50-100 밀리초의 지연만을 인식해야 합니다. 분류 자체가 문제가 되면, 규칙을 사용하여 명확한 경우를 처리하고 분류기를 사용하여 불분명한 경우를 처리하는 하이브리드 접근 방식으로 이를 해결할 수 있습니다.

실제로, 잘 튜닝된 라우팅 시스템은 추론 비용을 40-60% 절감할 수 있으며, 에스컬레이션을 5% 미만으로 유지하며, 복잡한 쿼리에서 출력 품질을 높게 유지할 수 있습니다. 70% 이상 절감하려면 일반적으로 Tier 1 작업을 더 작은 모델로 수행해야 합니다. 이것은 작동할 수 있지만, 더 복잡해질 수 있으며, 모든 팀이 다루고 싶어하는 것은 아닙니다.

“에스컬레이션 세금”도 고려해야 합니다. 라우팅이 더 저렴한 모델에 대해 너무苛刻하면 시스템이 더 많은 작업을 수행해야 할 수 있습니다. 분류기 호출, 초기 모델 호출, 실패한 검증, 라우팅, 두 번째 모델 호출과 같은 작업입니다. 이러한 경우, 처음부터 프런티어 모델로 쿼리를 보내는 것보다 더 비용이 많이 들 수 있습니다.

단순히 호출당 비용만 고려하면 이러한 효과를 놓칠 수 있습니다. 에스컬레이션 비율을 추적하여 이를 확인해야 합니다.

엔지니어링 팀을 위한 전략적 요약

스마트 라우팅은 성숙한 AI SQL 배포에 좋을 뿐만 아니라, 장기적인 배포에도 필수입니다. 이를 생략하는 팀은 해결할 수 없는 예산 문제와 교환하여 아키텍처 문제를 거래합니다. 패턴은 존재합니다. 따라서 남은 것은 어떤 패턴을 먼저 따를지 결정하는 것입니다.

분류기에서 시작하세요. 라우팅 계층이 작동하도록 결정합니다. 잘 튜닝된 하이브리드 분류기는 대부분의 비용 절감을 제공하며 복잡성을 추가하지 않습니다.

분류 결정에 도움이 되도록 피드의 스키마 컨텍스트를 사용합니다. 여러 테이블 간의 관계 또는 스키마 특정 推論을 포함하는 SQL 워크로드의 경우, 쿼리 구조만으로는 충분하지 않습니다. 분류 시 일부 스키마 메타데이터를 제공하면 티어 정확도를 크게 향상시킬 수 있습니다.

에스컬레이션 비율을 주요 품질 신호로 사용합니다. 이는 분류 오류를 다른 메트릭보다 빠르게 감지하며, 분류기가 개선해야 할 정확한 위치를 보여줍니다.

분류기 전에 검증 계층을 계획합니다. 실패가 무엇인지 및 에스컬레이션이 무엇인지 확인하면 라우팅 논리가 깨끗해지고 시스템이 에지 ケース를 더 잘 처리할 수 있습니다.

라우팅 계층의 가치는 오픈 소스 모델이 개선되고 로컬 추론 비용이 감소함에 따라 감소하지 않습니다. 더 저렴한 Tier 1 모델은 티어 간의 비용 차이를 크게 만듭니다. 이는 올바른 분류가 더 중요해집니다. 오늘 구축하는 라우팅 아키텍처는 임시 해결책이 아닌 오래 동안 유용할 것입니다.

비크토르 호를렌코는 데바트의 AI 혁신 책임자로, 데바트의 데이터베이스 관리 및 연결 도구 모음 전체에서 AI 주도 자동화, 제품 최적화 및 고객 경험을 위한 이니셔티브를 주도합니다.