Xarray-SQL을 통한 SQL에서 신경망 구현

Xarray-SQL을 통한 SQL에서 신경망 구현

관계 연산으로서의 신경망

Xarray-SQL은 신경망과 텐서 연산을 SQL 데이터베이스 내에서 직접 구현할 수 있음을 보여줍니다. N차원(Nd) 배열을 관계형 테이블로 취급하고—직교 차원을 기본 키에 매핑함으로써—복잡한 선형 대수 및 미적분 연산을 표준 SQL 쿼리로 표현할 수 있습니다. 이 접근 방식은 데이터베이스 옵티마이저가 텐서 프로그램을 추론하도록 하여, 관계 대수를 머신러닝 워크로드의 중간 표현(IR)으로 효과적으로 활용합니다.

Nd 배열을 표 형식 모델에 매핑하기

Xarray-SQL의 핵심 전제는 모든 Nd 배열을 2D 표 형식으로 매핑할 수 있다는 것입니다. 이 모델에서는 배열의 차원을 테이블의 기본 키로 취급하고, 값은 데이터로 저장됩니다. 이러한 매핑을 통해 to_dataset()을 사용하여 배열 기반 사고와 표 형식 저장 사이를 왕복할 수 있습니다.

이 관계형 접근 방식은 지리공간 및 기후 과학에서 흔히 사용되는 많은 연산이 "사실상 관계형"임을 드러냅니다. 예를 들어, 이 분야의 핵심 연산인 재그리딩은 수학적으로 희소 행렬-벡터 곱과 동등하며, 이는 JOIN, GROUP BY, SUM(val * val)의 조합을 사용해 SQL로 표현할 수 있습니다.

SQL에서 자동 미분 및 미적분 구현

단순 선형 대수를 넘어선 기능을 제공하기 위해 Xarray-SQL은 DataFusion 방문자 패턴 위에 자동 미분(autograd)을 구현했으며, JAX의 구현에서 영감을 받았습니다.

Xarray-SQL이 사용하는 단순화된 배열 모델에서는 시스템이 야코비안의 대각선에 대한 부분 미분에 집중합니다. 이는 grad(), jvp(Jacobian-vector product), vjp(vector-Jacobian product)를 행 단위 연산으로 축소시켜, 데이터베이스 환경 내에서 계산 가능하도록 합니다.

관계형 머신러닝의 필요성

SQL에서 신경망을 구현하는 것이 기술적 호기심에 불과해 보일 수 있지만, 분산 시스템 설계에 큰 잠재력을 제공합니다. 주요 장점은 관계형 데이터베이스의 근본 원칙인 논리 계층과 물리 계층의 분리입니다.

신경망을 일련의 관계로 정의하면 데이터 흐름의 전역 논리 계획을 만들 수 있습니다. 이 분리는 데이터베이스 엔진이 네트워크의 논리 정의와는 독립적으로 물리 실행 계획을 최적화할 수 있게 하여, 대규모 GPU 클러스터(예: 1000+ GPU) 전반에 작업을 보다 효율적으로 분산시킬 수 있게 합니다.

커뮤니티 인사이트와 이론적 유사점

프로젝트와 관련된 기술 토론에서는 텐서 라이브러리와 관계형 언어 사이의 수학적 수렴이 강조됩니다:

"수학적으로, einsum과 데이터베이스 조인은 같은 것이며, 단지 다른 세미링(실수는 einsum, 불리언은 데이터베이스) 위에서 동작한다."

다른 관찰자들은 관계 대수를 IR로 사용하면 데이터베이스 옵티마이저가 텐서 프로그램의 복잡성을 처리할 수 있어, 계산을 데이터가 존재하는 곳에 가깝게 옮길 수 있다고 언급했습니다.

요약: Xarray-SQL은 Nd 배열을 관계형 테이블로 취급하고 텐서 프로그램의 중간 표현으로 관계 대수를 활용함으로써, 신경망 및 복잡한 물리 계산을 SQL에서 직접 구현할 수 있음을 보여줍니다.

제목: Xarray-SQL을 통한 SQL에서 신경망 구현

Sources