생성 데이터 인텔리전스

데이터에 대한 대화식 액세스로 정보 에지 생성

시간

데이터 분석을 위한 대화형 AI

그림 1: Text2SQL 흐름의 표현

세상이 더욱 글로벌화되고 역동적으로 변해감에 따라 비즈니스는 정보에 입각한 객관적이고 시기적절한 결정을 내리기 위해 점점 더 데이터에 의존하고 있습니다. 그러나 현재 조직 데이터의 잠재력을 최대한 활용하는 것은 종종 소수의 데이터 과학자 및 분석가의 특권입니다. 대부분의 직원은 기존 데이터 과학 툴킷(SQL, Python, R 등)을 마스터하지 않습니다. 원하는 데이터에 액세스하기 위해 분석가 또는 BI 팀이 비즈니스 질문의 산문을 데이터 언어로 "번역"하는 추가 계층을 거칩니다. 이 과정에서 마찰과 비효율의 가능성이 높습니다. 예를 들어 데이터가 지연되거나 질문이 이미 쓸모없게 된 경우에도 제공될 수 있습니다. 요구 사항이 분석 쿼리로 정확하게 변환되지 않으면 정보가 손실될 수 있습니다. 게다가 고품질 통찰력을 생성하려면 루프의 모든 추가 단계에서 권장되지 않는 반복적인 접근 방식이 필요합니다. 다른 한편으로, 이러한 임시 상호 작용은 데이터 과학자의 다음 "고백"에 설명된 대로 비용이 많이 드는 데이터 인재에게 혼란을 일으키고 보다 전략적인 데이터 작업에서 주의를 분산시킵니다.

내가 Square에 있을 때 팀 규모가 작았을 때 무서운 "대기 분석" 로테이션이 있었습니다. 그것은 매주 엄격하게 순환되었고, 만약 당신의 차례가 된다면 당신은 그 주에 거의 "실제" 작업을 하지 않을 것이고 대부분의 시간을 다양한 제품 및 운영 팀의 임시 질문을 처리하는 데 할애할 것이라는 것을 알았을 것입니다. 회사 (SQL 원숭이, 우리는 그것을 불렀습니다). 분석 팀의 관리자 역할에 대한 치열한 경쟁이 있었고 이것이 전적으로 관리자가 이 순환에서 면제된 결과라고 생각합니다. 어떤 지위 상도 대기 근무를 하지 않는 당근과 경쟁할 수 없습니다.[1]

실제로 데이터 직원과 여러 차례의 상호 작용을 거치지 않고 데이터와 직접 대화하는 것이 멋지지 않습니까? 이 비전은 인간이 가장 직관적이고 보편적인 커뮤니케이션 채널인 언어를 사용하여 데이터와 상호 작용할 수 있도록 하는 대화형 인터페이스에 의해 수용됩니다. 질문을 구문 분석한 후 알고리즘은 SQL과 같은 선택한 쿼리 언어의 구조화된 논리 형식으로 질문을 인코딩합니다. 따라서 비기술 사용자는 BI 팀을 통해 우회하지 않고도 데이터와 채팅하고 특정 관련성 있고 시기 적절한 정보를 신속하게 얻을 수 있습니다. 이 기사에서는 Text2SQL의 다양한 구현 측면을 고려하고 현재 최고의 성능을 달성하는 LLM(Large Language Models)을 사용하는 최신 접근 방식에 중점을 둘 것입니다(cf. [2]; 대체 접근 방식에 대한 설문 조사). LLM 이외의 독자는 [3]을 참조하십시오. 이 기사는 AI 기능을 계획하고 구축할 때 고려해야 할 주요 요소의 다음과 같은 "정신적 모델"에 따라 구성되어 있습니다.

데이터 분석을 위한 대화형 AI
그림 2: AI 기능의 정신 모델

끝을 염두에 두고 시작하여 데이터 또는 분석 제품에 Text2SQL 기능을 구축해야 하는 이유인 가치를 요약해 보겠습니다. 세 가지 주요 이점은 다음과 같습니다.

  • 비즈니스 사용자 직접적이고 적시에 조직 데이터에 액세스할 수 있습니다.
  • 이것은 완화 데이터 과학자 및 분석가 비즈니스 사용자의 임시 요청 부담에서 벗어나 고급 데이터 문제에 집중할 수 있습니다.
  • 이를 통해 사업 보다 유동적이고 전략적인 방식으로 데이터를 활용하여 최종적으로 의사 결정을 위한 견고한 기반으로 전환합니다.

이제 Text2SQL을 고려할 수 있는 제품 시나리오는 무엇입니까? 세 가지 주요 설정은 다음과 같습니다.

  • 당신은 제공하고 있습니다 확장 가능한 데이터/BI 제품 더 많은 사용자가 비기술적인 방식으로 데이터에 액세스할 수 있도록 하여 사용량과 사용자 기반을 모두 늘리기를 원합니다. 예를 들어 ServiceNow는 통합 데이터 쿼리를 더 큰 대화형 오퍼링으로 통합및 아틀란 (Atlan) 최근에 발표된 자연어 데이터 탐색.
  • 회사에서 데이터 액세스를 민주화하기 위해 데이터/AI 공간에서 무언가를 구축하려고 합니다. 이 경우 잠재적으로 다음을 고려할 수 있습니다. 핵심에 Text2SQL이 있는 MVP. 다음과 같은 공급자 AI2SQL 및 Text2sql.ai 이미 이 공간에 진입하고 있습니다.
  • 작업 중입니다. 맞춤형 BI 시스템 개별 회사에서 사용을 극대화하고 민주화하고자 합니다.

다음 섹션에서 볼 수 있듯이 Text2SQL에는 간단한 사전 설정이 필요합니다. ROI를 추정하려면 지원되는 결정의 특성과 사용 가능한 데이터를 고려하십시오. Text2SQL은 데이터가 빠르게 변화하고 투자, 마케팅, 제조 및 에너지 산업과 같은 의사 결정에 적극적이고 자주 사용되는 동적 환경에서 절대적인 승리가 될 수 있습니다. 이러한 환경에서 지식 관리를 위한 기존의 도구는 너무 정적이고 데이터 및 정보에 보다 유창하게 액세스하는 방법은 기업이 경쟁 우위를 확보하는 데 도움이 됩니다. 데이터 측면에서 Text2SQL은 다음과 같은 데이터베이스에 가장 큰 가치를 제공합니다.

  • 크고 성장하는, Text2SQL은 점점 더 많은 데이터가 활용됨에 따라 시간이 지남에 따라 그 가치를 펼칠 수 있습니다.
  • 고품질, Text2SQL 알고리즘이 데이터의 과도한 노이즈(불일치, 빈 값 등)를 처리할 필요가 없도록 합니다. 일반적으로 애플리케이션에서 자동으로 생성되는 데이터는 사람이 만들고 유지 관리하는 데이터보다 품질과 일관성이 더 높습니다.
  • 의미상 성숙 원시 데이터와 달리 사람이 정신 모델에 존재하는 중심 개념, 관계 및 메트릭을 기반으로 데이터를 쿼리할 수 있습니다. 원시 데이터를 개념적 구조로 일치시키는 추가 변환 단계를 통해 의미론적 성숙도를 달성할 수 있습니다("데이터베이스 정보로 프롬프트 강화" 섹션 참조).

다음에서는 Text2SQL 기능의 관련 비기능적 요구 사항뿐만 아니라 데이터, 알고리즘, 사용자 경험에 대해 자세히 살펴보겠습니다. 이 문서는 제품 관리자, UX 디자이너, Text2SQL 여정을 시작하는 데이터 과학자 및 엔지니어를 위해 작성되었습니다. 이러한 사람들에게 시작 가이드를 제공할 뿐만 아니라 제품, 기술 및 비즈니스 간의 인터페이스(관련 장단점 포함)에 대한 토론을 위한 공통 지식 기반도 제공합니다. 구현이 이미 고급인 경우 끝에 있는 참조에서 탐색할 수 있는 다양한 심층 정보를 제공합니다.

이 심층 교육 콘텐츠가 유용하다면 AI 연구 메일 링리스트 구독 새로운 자료를 공개 할 때 경고를받습니다. 

1. 데이터

모든 기계 학습 노력은 데이터에서 시작하므로 교육 및 예측 중에 사용되는 입력 및 대상 데이터의 구조를 명확히 하는 것부터 시작할 것입니다. 기사 전체에서 그림 2의 Text1SQL 흐름을 실행 중인 표현으로 사용하고 현재 고려 중인 구성 요소와 관계를 노란색으로 강조 표시합니다.

데이터 분석을 위한 대화형 AI
그림 3: 이 Text2SQL 표현에서 데이터 관련 요소 및 관계는 노란색으로 표시됩니다.

1.1 데이터의 형식 및 구조

일반적으로 원시 Text2SQL 입력-출력 쌍은 자연어 질문과 해당 SQL 쿼리로 구성됩니다. 예를 들면 다음과 같습니다.

문제"각 사용자의 이름과 팔로워 수를 나열하십시오.”

SQL 쿼리:

user_profiles에서 이름, 팔로어 선택

학습 데이터 공간에서 질문과 SQL 쿼리 간의 매핑은 다대다입니다.

  • SQL 쿼리는 자연어로 된 다양한 질문에 매핑될 수 있습니다. 예를 들어 위의 쿼리 의미 체계는 다음과 같이 표현할 수 있습니다.사용자당 팔로어의 이름과 수를 보여주세요.","각 사용자에 대해 몇 명의 팔로워가 있습니까?"등.
  • SQL 구문은 매우 다양하며 거의 모든 질문을 여러 방식으로 SQL로 표현할 수 있습니다. 가장 간단한 예는 WHERE 절의 다른 순서입니다. 보다 진보된 입장에서 SQL 쿼리 최적화를 수행한 모든 사람은 많은 경로가 동일한 결과로 이어지고 의미적으로 동일한 쿼리가 완전히 다른 구문을 가질 수 있음을 알 것입니다.

Text2SQL에 대한 훈련 데이터의 수동 수집은 특히 지루합니다. 애노테이터 측의 SQL 숙달이 필요할 뿐만 아니라 감정 분석 및 텍스트 분류와 같은 보다 일반적인 언어 작업보다 예제당 더 많은 시간이 필요합니다. 충분한 양의 훈련 예시를 보장하기 위해 데이터 증대를 사용할 수 있습니다. 예를 들어 LLM을 사용하여 동일한 질문에 대한 의역을 생성할 수 있습니다. [3]은 Text2SQL 데이터 증대 기술에 대한 보다 완전한 조사를 제공합니다.

1.2 데이터베이스 정보로 프롬프트 강화

Text2SQL은 구조화되지 않은 데이터와 구조화된 데이터 사이의 인터페이스에 있는 알고리즘입니다. 최적의 성능을 위해서는 훈련 및 예측 중에 두 가지 유형의 데이터가 모두 있어야 합니다. 특히, 알고리즘은 쿼리된 데이터베이스에 대해 알고 있어야 하며 데이터베이스에 대해 실행될 수 있는 방식으로 쿼리를 공식화할 수 있어야 합니다. 이 지식은 다음을 포함할 수 있습니다.

  • 데이터베이스의 열 및 테이블
  • 테이블 간의 관계(외래 키)
  • 데이터베이스 콘텐츠

데이터베이스 지식을 통합하기 위한 두 가지 옵션이 있습니다. 한편으로는 교육 데이터를 특정 데이터베이스용으로 작성된 예제로 제한할 수 있습니다. 이 경우 스키마는 SQL 쿼리 및 질문에 대한 매핑에서 직접 학습됩니다. 이 단일 데이터베이스 설정을 통해 개별 데이터베이스 및/또는 회사에 대한 알고리즘을 최적화할 수 있습니다. 그러나 모든 단일 고객 또는 데이터베이스에 대해 모델을 미세 조정해야 하기 때문에 확장성에 대한 야망을 없애줍니다. 또는 다중 데이터베이스 설정에서 데이터베이스 스키마를 입력의 일부로 제공하여 알고리즘이 보이지 않는 새로운 데이터베이스 스키마로 "일반화"할 수 있습니다. 다양한 데이터베이스에서 Text2SQL을 사용하려는 경우 이 접근 방식을 반드시 사용해야 하지만 상당한 즉각적인 엔지니어링 노력이 필요하다는 점을 명심하십시오. 합리적인 비즈니스 데이터베이스의 경우 프롬프트에 전체 정보를 포함하는 것은 매우 비효율적이며 프롬프트 길이 제한으로 인해 거의 불가능합니다. 따라서 프롬프트 공식화를 담당하는 기능은 주어진 질문에 가장 "유용한" 데이터베이스 정보의 하위 집합을 선택하고 잠재적으로 보이지 않는 데이터베이스에 대해 이 작업을 수행할 수 있을 만큼 충분히 똑똑해야 합니다.

마지막으로 데이터베이스 구조는 중요한 역할을 합니다. 데이터베이스를 충분히 제어할 수 있는 시나리오에서는 모델이 직관적인 구조에서 학습하도록 하여 모델의 수명을 더 쉽게 만들 수 있습니다. 일반적으로 데이터베이스가 비즈니스 사용자가 비즈니스에 대해 말하는 방식을 더 많이 반영할수록 모델이 데이터베이스에서 더 빠르고 더 빠르게 학습할 수 있습니다. 따라서 정규화되거나 달리 분산된 데이터를 넓은 테이블이나 데이터 저장소로 조합하고 명시적이고 명확한 방식으로 테이블과 열에 이름을 지정하는 등의 추가 변환을 데이터에 적용하는 것을 고려하십시오. 사전에 인코딩할 수 있는 모든 비즈니스 지식은 모델에 대한 확률론적 학습의 부담을 줄이고 더 나은 결과를 얻을 수 있도록 도와줍니다.

2. 연산

데이터 분석을 위한 대화형 AI
그림 4: 이 Text2SQL 표현에서 알고리즘 관련 요소 및 관계는 노란색으로 표시됩니다.

Text2SQL은 시맨틱 파싱 - 논리적 표현에 대한 텍스트의 매핑. 따라서 알고리즘은 자연어뿐만 아니라 대상 표현(우리의 경우 SQL)도 "학습"해야 합니다. 특히 다음과 같은 지식을 습득해야 합니다.

  • SQL 구문 및 의미 체계
  • 데이터베이스 구조
  • 자연어 이해 (NLU)
  • 자연어와 SQL 쿼리 간의 매핑(구문, 어휘 및 의미)

2.1 입력의 언어 가변성 해결

입력에서 Text2SQL의 주요 문제는 언어의 유연성에 있습니다. 데이터의 형식 및 구조 섹션에 설명된 대로 동일한 질문을 다양한 방식으로 바꿔 말할 수 있습니다. 또한 실생활 대화 맥락에서 맞춤법 및 문법 오류, 불완전하고 모호한 입력, 다국어 입력 등과 같은 많은 문제를 처리해야 합니다.

데이터 분석을 위한 대화형 AI
그림 5: Text2SQL 알고리즘은 질문의 다양한 변형을 처리해야 합니다.

GPT 모델, T5, CodeX와 같은 LLM은 이 문제를 해결하는 데 점점 더 가까워지고 있습니다. 방대한 양의 다양한 텍스트에서 배우면서 수많은 언어 패턴과 불규칙성을 다루는 방법을 배웁니다. 결국 그들은 다른 표면 형태를 가지고 있음에도 불구하고 의미적으로 유사한 질문에 대해 일반화할 수 있게 됩니다. LLM은 기본적으로(제로 샷) 또는 미세 조정 후에 적용할 수 있습니다. 전자는 편리하지만 정확도가 떨어집니다. 후자는 더 많은 기술과 작업이 필요하지만 정확도를 크게 높일 수 있습니다.

정확도 측면에서 가장 성능이 좋은 모델은 CodeX 모델을 포함한 GPT 제품군의 최신 모델입니다. 2023년 4월, GPT-5는 이전의 최첨단 기술보다 85.3% 이상의 극적인 정확도 증가를 가져왔고 4%의 정확도를 달성했습니다(оn 메트릭 "값을 사용한 실행").[2] 오픈 소스 진영에서 Text5SQL 퍼즐을 풀기 위한 초기 시도는 NLU 작업에 뛰어난 BERT와 같은 자동 인코딩 모델에 집중되었습니다.[6, 7, 5] T5 모델과 같은 자기회귀 모델에서. T2는 다중 작업 학습을 사용하여 사전 훈련을 받았으므로 다음을 포함한 새로운 언어 작업에 쉽게 적응합니다. 시맨틱 파싱의 다양한 변형. 그러나 자동 회귀 모델은 시맨틱 구문 분석 작업과 관련하여 본질적인 결함이 있습니다. 즉, 제한되지 않은 출력 공간이 있고 출력을 제한하는 의미 가드레일이 없기 때문에 동작에서 놀라울 정도로 창의적일 수 있습니다. 이는 자유 형식 콘텐츠를 생성하는 데는 놀라운 일이지만, 제한적이고 잘 구성된 대상 출력을 기대하는 TextXNUMXSQL과 같은 작업에는 골칫거리입니다.

2.2 쿼리 검증 및 개선

LLM 출력을 제한하기 위해 쿼리를 검증하고 개선하기 위한 추가 메커니즘을 도입할 수 있습니다. 이는 PICARD 시스템에서 제안된 추가 검증 단계로 구현될 수 있습니다.[8] PICARD는 부분 SQL 쿼리가 완료 후 유효한 SQL 쿼리로 이어질 수 있는지 여부를 확인할 수 있는 SQL 구문 분석기를 사용합니다. LLM의 각 생성 단계에서 쿼리를 무효화하는 토큰은 거부되고 가능성이 가장 높은 유효한 토큰이 유지됩니다. 결정적이므로 이 접근 방식은 구문 분석기가 올바른 SQL 규칙을 준수하는 한 100% SQL 유효성을 보장합니다. 또한 생성에서 쿼리 유효성 검사를 분리하므로 두 구성 요소를 서로 독립적으로 유지 관리하고 LLM을 업그레이드 및 수정할 수 있습니다.

또 다른 접근 방식은 구조 및 SQL 지식을 LLM에 직접 통합하는 것입니다. 예를 들어 Graphix[9]는 구조화된 SQL 지식을 T5 모델에 주입하기 위해 그래프 인식 계층을 사용합니다. 이 접근 방식의 확률적 특성으로 인해 시스템이 올바른 쿼리로 편향되지만 성공을 보장하지는 않습니다.

마지막으로 LLM은 자체적으로 쿼리를 확인하고 개선할 수 있는 다단계 에이전트로 사용할 수 있습니다.[10] 일련의 생각 프롬프트에서 여러 단계를 사용하여 에이전트는 자체 쿼리의 정확성을 반영하고 결함을 개선하도록 작업을 수행할 수 있습니다. 검증된 쿼리를 여전히 실행할 수 없는 경우 개선을 위한 추가 피드백으로 SQL 예외 역추적을 에이전트에 전달할 수 있습니다.

백엔드에서 발생하는 이러한 자동화된 방법 외에도 쿼리 확인 프로세스 중에 사용자를 참여시킬 수도 있습니다. 이에 대해서는 사용자 경험 섹션에서 자세히 설명하겠습니다.

2.3 평가

Text2SQL 알고리즘을 평가하려면 테스트(검증) 데이터 세트를 생성하고 알고리즘을 실행하고 결과에 관련 평가 지표를 적용해야 합니다. 교육, 개발 및 검증 데이터로 분할된 순진한 데이터 세트는 질문-쿼리 쌍을 기반으로 하며 최적이 아닌 결과로 이어집니다. 유효성 검사 쿼리는 교육 중에 모델에 공개될 수 있으며 일반화 기술에 대해 지나치게 낙관적인 시각으로 이어질 수 있습니다. ㅏ 쿼리 기반 분할, 훈련 및 검증 중에 쿼리가 표시되지 않는 방식으로 데이터 세트가 분할되어 더 정확한 결과를 제공합니다.

평가 메트릭 측면에서 Text2SQL에서 우리가 관심을 갖는 것은 골드 표준과 완전히 동일한 쿼리를 생성하는 것이 아닙니다. 이것 "정확한 문자열 일치" 방법은 너무 엄격하고 다른 SQL 쿼리가 동일한 반환된 데이터 세트로 이어질 수 있기 때문에 많은 거짓 음성을 생성합니다. 대신, 우리는 높은 성취를 원합니다. 의미론적 정확성 예측 및 "골드 스탠다드" 쿼리가 항상 동일한 데이터 세트를 반환하는지 여부를 평가합니다. 이 목표에 근접한 세 가지 평가 메트릭이 있습니다.

  • 정확한 일치 정확도: 생성된 SQL 쿼리와 대상 SQL 쿼리가 구성 요소로 분할되고 결과 집합이 동일성을 위해 비교됩니다.[11] 여기서 단점은 SQL 쿼리의 순서 변형만 설명하고 의미상 동일한 쿼리 간의 더 뚜렷한 구문 차이는 고려하지 않는다는 것입니다.
  • 실행 정확도: 생성된 SQL 쿼리와 대상 SQL 쿼리의 결과 데이터 세트는 ID를 비교합니다. 운이 좋으면 의미 체계가 다른 쿼리도 특정 데이터베이스 인스턴스에서 이 테스트를 통과할 수 있습니다. 예를 들어 모든 사용자의 나이가 30세 이상인 데이터베이스를 가정하면 다음 두 쿼리는 의미 체계는 다르지만 동일한 결과를 반환합니다.
    사용자로부터 * 선택
    연령 > 30인 사용자에서 * 선택
  • 테스트 스위트 정확도: 테스트 스위트 정확도는 실행 정확도의 더 발전되고 덜 허용적인 버전입니다. 각 쿼리에 대해 쿼리의 변수, 조건 및 값과 관련하여 매우 차별화된 데이터베이스 세트("테스트 스위트")가 생성됩니다. 그런 다음 각 데이터베이스에서 실행 정확도를 테스트합니다. 테스트 세트 생성을 엔지니어링하는 데 추가 노력이 필요하지만 이 메트릭은 또한 평가에서 오탐의 위험을 크게 줄입니다..[12]

3. 사용자 경험

데이터 분석을 위한 대화형 AI
그림 6: 이 Text2SQL 표현에서 UX 관련 요소 및 관계는 노란색으로 표시됩니다.

Text2SQL의 최신 기술은 프로덕션 시스템에 완벽하게 완벽하게 통합되는 것을 허용하지 않습니다. 대신 사용자의 기대와 행동을 능동적으로 관리해야 합니다. AI 시스템.

3.1 장애 관리

Text2SQL은 서로 다른 방식으로 포착해야 하는 두 가지 모드에서 실패할 수 있습니다.

  • SQL 오류: 생성된 쿼리가 유효하지 않음 — SQL이 유효하지 않거나 어휘적 또는 의미적 결함으로 인해 특정 데이터베이스에 대해 실행할 수 없습니다. 이 경우 사용자에게 결과를 반환할 수 없습니다.
  • 의미 오류: 생성된 쿼리가 유효하지만 질문의 의미를 반영하지 않아 잘못된 데이터 세트가 반환됩니다.

두 번째 모드는 "조용한 실패"(사용자가 감지하지 못하는 오류)의 위험이 높기 때문에 특히 까다롭습니다. 프로토타입 사용자는 쿼리 및/또는 결과 데이터의 정확성을 확인할 시간이나 기술이 없습니다. 데이터가 현실 세계에서 의사 결정에 사용될 때 이러한 종류의 실패는 엄청난 결과를 초래할 수 있습니다. 이를 방지하려면 사용자를 교육하고 설정하는 것이 중요합니다. 비즈니스 수준의 가드레일 더 큰 영향을 미치는 결정에 대한 추가 데이터 확인과 같이 잠재적 영향을 제한합니다. 다른 한편으로 사용자 인터페이스를 사용하여 인간과 기계의 상호 작용을 관리하고 사용자가 문제가 있는 요청을 감지하고 개선하도록 도울 수 있습니다.

3.2 인간-기계 상호작용

사용자는 다양한 수준의 강도로 AI 시스템에 참여할 수 있습니다. 요청당 상호 작용이 많을수록 더 나은 결과를 얻을 수 있지만 사용자 경험의 유동성도 느려집니다. 잘못된 쿼리 및 결과의 잠재적인 부정적인 영향 외에도 사용자가 보다 정확한 결과를 얻고 장기적으로 제품을 개선하는 데 도움이 되도록 앞뒤로 피드백을 제공하려는 동기를 고려하십시오.

가장 쉽고 덜 참여하는 방법은 신뢰 점수로 작업하는 것입니다. 생성된 토큰의 확률 평균으로서 순진한 신뢰도 계산은 지나치게 단순하지만 구두 피드백과 같은 고급 방법을 사용할 수 있습니다. [13] 신뢰도는 인터페이스에 표시될 수 있으며 위험할 정도로 낮은 경우 명시적인 경고로 강조 표시될 수 있습니다. 이러한 방식으로 "실제 세계"에서 적절한 후속 조치(거부, 수락 또는 데이터 추가 확인)의 책임은 사용자의 어깨에 있습니다. 이것은 벤더로서 안전한 방법이지만 이 작업을 사용자에게 이전하면 제품의 가치도 감소할 수 있습니다.

두 번째 가능성은 신뢰도가 낮거나 모호하거나 의심스러운 쿼리의 경우 사용자를 설명 대화에 참여시키는 것입니다. 예를 들어 시스템은 입력에 맞춤법 또는 문법 수정을 제안하고 특정 단어 또는 문법 구조를 명확하게 하도록 요청할 수 있습니다. 또한 사용자가 쿼리에서 수정을 사전에 요청할 수 있습니다.[14]

사용자: 이 스프린트에서 John의 작업을 보여주세요.

조수: John이 만든 작업 또는 작업 중인 작업을 보고 싶습니까?

사용자: John이 만든 작업

조수: 알겠습니다. 작업 ID는 다음과 같습니다.

데이터 분석을 위한 대화형 AI

사용자: 감사합니다. 작업에 대한 자세한 정보도 보고 싶습니다. 긴급도별로 정렬하십시오.

조수: 물론입니다. 짧은 설명, 양수인 및 기한과 함께 작업이 기한별로 정렬되어 있습니다.

데이터 분석을 위한 대화형 AI

마지막으로, 사용자가 쿼리를 쉽게 이해할 수 있도록 시스템은 쿼리의 명시적인 텍스트 재구성을 제공하고 사용자에게 이를 확인하거나 수정하도록 요청할 수 있습니다.[15]

4. 비기능적 요구사항

이 섹션에서는 Text2SQL에 대한 특정 비기능적 요구 사항과 이들 간의 장단점에 대해 설명합니다. 작업에 가장 중요해 보이는 XNUMX가지 요구 사항인 정확성, 확장성, 속도, 설명 가능성, 개인 정보 보호 및 시간 경과에 따른 적응성에 중점을 둘 것입니다.

4.1 정확도

Text2SQL의 경우 정확도에 대한 요구 사항이 높습니다. 첫째, Text2SQL은 일반적으로 예측이 하나씩 이루어지는 대화 설정에 적용됩니다. 따라서 일반적으로 일괄 예측의 오류 균형을 맞추는 데 도움이 되는 "대수의 법칙"은 도움이 되지 않습니다. 둘째, 구문 및 어휘 유효성은 "어려운" 조건입니다. 모델은 잠재적으로 복잡한 구문 및 의미 체계를 포함하는 올바른 형식의 SQL 쿼리를 생성해야 합니다. 그렇지 않으면 데이터베이스에 대해 요청을 실행할 수 없습니다. 그리고 이것이 잘 진행되고 쿼리가 실행될 수 있다면 여전히 의미론적 오류를 포함할 수 있고 잘못 반환된 데이터 세트로 이어질 수 있습니다(섹션 3.1 오류 관리 참조).

4.2 확장 성

주요 확장성 고려 사항은 하나 또는 여러 데이터베이스에 Text2SQL을 적용할지 여부와 후자의 경우 데이터베이스 집합이 알려져 있고 닫혀 있는지 여부입니다. 그렇다면 교육 중에 이러한 데이터베이스에 대한 정보를 포함할 수 있으므로 더 쉽게 시간을 보낼 수 있습니다. 그러나 확장 가능한 제품 시나리오(독립 실행형 Text2SQL 애플리케이션이든 기존 데이터 제품에 대한 통합이든)에서는 알고리즘이 새로운 데이터베이스 스키마에 즉석에서 대처해야 합니다. 이 시나리오는 또한 데이터베이스 구조를 학습을 위해 보다 직관적으로 만들기 위해 변환할 수 있는 기회를 제공하지 않습니다(링크!). 이 모든 것은 정확성과의 상당한 절충안으로 이어지며, 이는 새 데이터베이스의 임시 쿼리를 제공하는 현재 Text2SQL 공급자가 아직 상당한 시장 침투를 달성하지 못한 이유를 설명할 수도 있습니다.

4.3 속도

Text2SQL 요청은 일반적으로 대화에서 온라인으로 처리되므로 속도 측면은 사용자 만족에 중요합니다. 긍정적인 측면에서 사용자는 종종 데이터 요청이 특정 시간이 걸리고 필요한 인내심을 보여줄 수 있다는 사실을 알고 있습니다. 그러나 이러한 선의는 사용자가 무의식적으로 인간과 같은 대화 속도를 기대하는 채팅 설정으로 인해 손상될 수 있습니다. 모델 크기 축소와 같은 무차별 대입 최적화 방법은 정확도에 허용할 수 없는 영향을 미칠 수 있으므로 이러한 기대치를 충족하려면 추론 최적화를 고려하십시오.

4.4 설명 가능성과 투명성

이상적인 경우 사용자는 텍스트에서 쿼리가 어떻게 생성되었는지 추적하고 질문의 특정 단어 또는 표현과 SQL 쿼리 등의 매핑을 볼 수 있습니다. 이를 통해 시스템과 상호 작용할 때 쿼리를 확인하고 조정할 수 있습니다. . 게다가 시스템은 질의에 대한 명시적인 텍스트 재구성을 제공하고 사용자에게 이를 확인하거나 수정하도록 요청할 수 있습니다.

4.5 개인 정보 보호 정책

Text2SQL 함수는 쿼리 실행에서 격리될 수 있으므로 반환된 데이터베이스 정보를 보이지 않게 유지할 수 있습니다. 그러나 중요한 질문은 프롬프트에 데이터베이스에 대한 정보가 얼마나 많이 포함되어 있는지입니다. 세 가지 옵션(프라이버시 수준을 낮춤으로써)은 다음과 같습니다.

  • 정보 없음
  • 데이터베이스 스키마
  • 데이터베이스 콘텐츠

프라이버시는 정확성과 상충합니다. 프롬프트에 유용한 정보를 포함하는 데 덜 제약을 받을수록 더 나은 결과를 얻을 수 있습니다.

4.6 시간 경과에 따른 적응성

내구성 있는 방식으로 Text2SQL을 사용하려면 데이터 드리프트, 즉 모델이 적용되는 데이터 분포 변화에 적응해야 합니다. 예를 들어 초기 미세 조정에 사용된 데이터가 BI 시스템을 사용하기 시작할 때 사용자의 단순 쿼리 동작을 반영한다고 가정해 보겠습니다. 시간이 지남에 따라 사용자의 정보 요구 사항은 더욱 정교해지고 더 복잡한 쿼리가 필요하므로 순진한 모델을 압도합니다. 게다가, 회사 변화의 목표나 전략은 데이터베이스의 다른 영역으로 정보 요구를 표류하고 지시할 수도 있습니다. 마지막으로 Text2SQL 관련 문제는 데이터베이스 드리프트입니다. 회사 데이터베이스가 확장됨에 따라 보이지 않는 새로운 열과 테이블이 프롬프트에 표시됩니다. 다중 데이터베이스 애플리케이션용으로 설계된 Text2SQL 알고리즘은 이 문제를 잘 처리할 수 있지만 단일 데이터베이스 모델의 정확도에 상당한 영향을 미칠 수 있습니다. 이러한 모든 문제는 현재 사용자의 실제 행동을 반영하는 미세 조정 데이터 세트로 가장 잘 해결됩니다. 따라서 사용자 질문 및 결과는 물론 사용에서 수집할 수 있는 관련 피드백을 기록하는 것이 중요합니다. 또한 예를 들어 임베딩 또는 주제 모델링을 사용하는 시맨틱 클러스터링 알고리즘을 적용하여 사용자 행동의 근본적인 장기적 변화를 감지하고 이를 미세 조정 데이터 세트를 완성하기 위한 추가 정보 소스로 사용할 수 있습니다.

결론

기사의 핵심을 요약하자면 다음과 같습니다.

  • Text2SQL을 사용하면 비즈니스에서 직관적이고 민주적인 데이터 액세스를 구현할 수 있으므로 사용 가능한 데이터의 가치를 극대화할 수 있습니다.
  • Text2SQL 데이터는 입력의 질문과 출력의 SQL 쿼리로 구성됩니다. 질문과 SQL 쿼리 간의 매핑은 다대다입니다.
  • 프롬프트의 일부로 데이터베이스에 대한 정보를 제공하는 것이 중요합니다. 또한 알고리즘이 더 쉽게 학습하고 이해할 수 있도록 데이터베이스 구조를 최적화할 수 있습니다.
  • 입력에서 가장 큰 문제는 자연어 질문의 언어적 가변성이며 다양한 텍스트 스타일에 대해 사전 훈련된 LLM을 사용하여 접근할 수 있습니다.
  • Text2SQL의 출력은 유효한 SQL 쿼리여야 합니다. 이 제약 조건은 SQL 지식을 알고리즘에 "주입"하여 통합할 수 있습니다. 또는 반복적인 접근 방식을 사용하여 쿼리를 여러 단계로 확인하고 개선할 수 있습니다.
  • 의사 결정을 위해 잘못된 데이터를 반환하는 "조용한 오류"의 잠재적으로 큰 영향으로 인해 오류 관리는 사용자 인터페이스의 주요 관심사입니다.
  • "증강" 방식으로 사용자는 SQL 쿼리의 반복 유효성 검사 및 개선에 적극적으로 참여할 수 있습니다. 이렇게 하면 애플리케이션의 유동성이 줄어들지만 실패율도 감소하고 사용자가 보다 유연한 방식으로 데이터를 탐색할 수 있으며 추가 학습을 위한 귀중한 신호를 생성할 수 있습니다.
  • 고려해야 할 주요 비기능적 요구 사항은 시간 경과에 따른 정확성, 확장성, 속도, 설명 가능성, 개인 정보 보호 및 적응성입니다. 주요 트레이드 오프는 한편으로는 정확성과 다른 한편으로는 확장성, 속도 및 프라이버시 사이에 구성됩니다.

참고자료

[1] 켄 반 하렌. 2023. SQL 분석가를 26개의 재귀 GPT 프롬프트로 교체

[2] Nitarshan Rajkumar 외. 2022. 대규모 언어 모델의 Text-to-SQL 기능 평가

[3] Naihao Deng 외. 2023. Text-to-SQL의 최근 발전: 우리가 가진 것과 기대하는 것에 대한 조사

[4] Mohammadreza Pourreza 외. 2023. DIN-SQL: 자가 수정을 통한 Text-to-SQL의 분해된 상황 내 학습

[5] 빅터 종 외. 2021. Zero-shot Executable Semantic Parsing을 위한 접지 적응

[6] Xi Victoria Lin 외. 2020. 도메인 간 Text-to-SQL 시맨틱 구문 분석을 위한 텍스트 및 테이블 형식 데이터 브리징

[7] Tong Guo 외. 2019. Content Enhanced BERT 기반 Text-to-SQL 생성

[8] Torsten Scholak 외. 2021. PICARD: 언어 모델에서 제한된 자동 회귀 디코딩을 위한 증분 구문 분석

[9] 리 진양 외. 2023. Graphix-T5: Text-to-SQL 구문 분석을 위해 사전 훈련된 변환기와 그래프 인식 레이어 혼합

[10] 랭체인. 2023. LLM 및 SQL

[11] Tao Yu 외. 2018. Spider: 복잡하고 도메인 간 시맨틱 구문 분석 및 Text-to-SQL 작업을 위한 대규모 인간 레이블 데이터 세트

[12] Ruiqi Zhong 외. 2020. 정제된 테스트 스위트를 사용한 Text-to-SQL의 의미론적 평가

[13] Katherine Tian 외. 2023. 보정 요청: 사람의 피드백으로 미세 조정된 언어 모델에서 보정된 신뢰도 점수를 도출하기 위한 전략

[14] Braden Hancock 외. 2019. 배포 후 대화에서 배우기: Feed Yourself, Chatbot!

[15] Ahmed Elgohary 외. 2020. 파서와 대화하기: 자연어 피드백을 사용한 대화형 Text-to-SQL

[16] 잔나 리펜코바. 2022. 얘기해! 회사 데이터와 Text2SQL 대화, New York Natural Language Processing 모임에서 이야기합니다.

모든 이미지는 작성자의 것입니다.

이 기사는 원래에 게시되었습니다. 데이터 과학을 향해 저자의 허락을 받아 TOPBOTS에 다시 게시했습니다.

이 기사를 즐기십니까? 더 많은 AI 연구 업데이트에 가입하십시오.

이와 같은 더 많은 요약 기사를 발표하면 알려 드리겠습니다.

spot_img

최신 인텔리전스

spot_img