주요 컨텐츠로 이동
플랫폼

FILE 타입 소개: 멀티모달 데이터를 위한 네이티브 컬럼 타입

FILE 타입을 사용하면 문서, 이미지, 비디오 및 기타 비정형 데이터를 레이크하우스에 네이티브하게 통합하고 AI에 바로 활용할 수 있습니다.

작성자: Michael Armbrust, 부락 야부즈, Dejan Krakovic , John Spencer

  1. FILE은 문서, 이미지, 오디오, 비디오와 같은 비정형 데이터를 테이블에 네이티브하게 저장하는 새로운 컬럼 타입으로, 현재 베타 버전으로 제공됩니다.
  2. FILE을 사용하면 표준 테이블에 적용하는 것과 동일한 세분화된 액세스 제어 및 보안 정책을 원시 파일에 적용할 수 있는 통합 거버넌스가 가능해집니다.
  3. 전체 에코시스템이 이를 활용하고 데이터 이식성을 유지할 수 있도록 Parquet, Delta Lake, Iceberg 및 Spark에 직접 지원을 구축하기 위해 커뮤니티와 협력하고 있습니다.

귀하의 데이터 자산에는 정형 테이블, 메트릭, 트랜잭션 로그보다 훨씬 더 많은 것들이 포함되어 있습니다. 계약서, 제품 이미지, 통화 녹음, 동영상 등이 이에 해당합니다. 이제 AI는 이러한 비정형 데이터를 쿼리하고 분석할 수 있는 데이터로 변환할 수 있지만, 이는 다른 모든 데이터와 함께 거버넌스가 적용되고 관리될 때만 가능합니다.

오늘 저희는 FILE 유형의 베타 버전을 발표합니다. 이는 비정형 데이터를 테이블 내의 네이티브하고 거버넌스가 적용된 컬럼으로 저장하는 새로운 컬럼 유형입니다. FILE을 사용하면 비정형 데이터를 별도의 시스템에 보관하는 대신, 정형 데이터와 함께 바로 쿼리하고 안전하게 보호하며 관리할 수 있어 AI에 즉시 활용할 수 있습니다. FILE의 장점은 다음과 같습니다.

  • 통합된 거버넌스. 일반 테이블에 적용하는 것과 동일한 세분화된 액세스 제어 및 보안 정책을 원시 파일에 그대로 적용할 수 있습니다.
  • 자동화된 규정 준수. FILE이 포함된 행을 삭제하면 오브젝트 스토리지에서도 해당 파일의 바이너리가 함께 삭제되므로, GDPR의 '잊힐 권리'를 손쉽게 준수할 수 있습니다.
  • SQL 및 Python 지원. 일반 컬럼과 마찬가지로 비정형 파일에서 표준 SQL 및 Python UDF를 직접 실행하고, 구체화된 뷰(materialized view)를 빌드하여 AI 함수를 점진적으로 실행할 수 있습니다.
  • 설계부터 반영된 고성능. FILE 컬럼은 무거운 파일 바이너리 대신 가벼운 포인터만 저장하며, 쿼리에서 명시적으로 필요로 할 때만 실제 파일 콘텐츠를 처리합니다.

FILE은 오픈 소스 생태계에서 추진하고 있는 혁신입니다. 저희는 전체 에코시스템이 이를 활용할 수 있도록 Parquet, Delta Lake, Apache Iceberg, Apache Spark에 직접 지원 기능을 구축하기 위해 커뮤니티와 협력하고 있습니다. 이를 통해 멀티모달 데이터를 개방적이고 이식 가능한 상태로 유지하므로, 특정 벤더나 모델 제공업체에 종속되지 않습니다.

FILE 유형으로 할 수 있는 작업

오늘날 데이터 팀은 비즈니스 임팩트를 창출하기 위해 멀티모달 데이터를 기반으로 애플리케이션을 구축하고자 합니다.

  • 계약서, 정책, 연구 자료를 활용한 기업용 문서 어시스턴트 - 서류 작업을 대화형 지식 베이스로 전환합니다.
  • 제품 이미지를 활용한 시각적 검사 - 모든 제품을 일일이 눈으로 확인하는 대신 대규모로 결함을 찾아냅니다.
  • 오디오 녹음을 활용한 통화 분석 - 이미 보유하고 있는 대화 기록에서 고객이 전환하거나 이탈하는 원인을 파악합니다.
  • 이벤트에 대한 동영상 이해 - 몇 시간 분량의 영상을 검색 및 쿼리할 수 있도록 만듭니다.
  • 단순한 텍스트가 아닌 실제 증거를 인용하고 이에 따라 작동해야 하는 에이전트를 위한 멀티모달 검색.

FILE은 탐색적 분석부터 모델 학습, 실시간 에이전트 데이터 서빙에 이르기까지 멀티모달 데이터의 전체 라이프사이클에서 발생하는 마찰을 줄여줍니다. 이를 보여드리기 위해 한 가지 예를 살펴보겠습니다. 읽으시면서 귀하의 자체 사용 사례를 대입해 보셔도 좋습니다.

자율주행 기업 CEO의 날카로운 질문으로 예를 시작해 보겠습니다.

이유 없는 정차 횟수를 줄일 수 있을까요? 자율주행 차량이 아무런 이유 없이 멈추면 승객들은 우리 서비스에 대한 신뢰를 잃게 됩니다.

이를 해결하는 데 필요한 데이터는 각 자율주행 차량에서 캡처한 비정형 블랙박스 동영상입니다. CEO의 요청을 해결할 수 있도록 FILE이 이 데이터를 AI에 즉시 사용할 수 있게 만드는 방법은 다음과 같습니다.

  1. 먼저 FILE 컬럼을 생성하는 것부터 시작합니다. 블랙박스 동영상이 저장된 스토리지 볼륨에서 데이터를 읽어오는 FILE 컬럼이 포함된 테이블을 생성합니다.

image4.png

그림 1: 동영상을 저장하는 FILE 컬럼을 보여주는 개념도

  1. 오브젝트 스토리지의 각 클립을 행에 매핑하여 FILE 유형의 footage 컬럼을 추가합니다.
  2. 이제 테이블은 정형 메타데이터 옆에 해당 FILE 컬럼을 유지합니다.
  3. 블랙박스 클립 중 하나는 차량이 명확한 이유 없이 멈추는 모습을 보여주며, 이는 우리가 발견하고 조사해야 할 사례입니다.

아래는 FILE 컬럼이 있는 테이블을 생성하는 예시 구문입니다. FILE을 사용하는 파일 처리 파이프라인의 전체 과정을 직접 실행해 보려면 예제 노트북이 포함된 관련 문서를 참조하세요.

  1. 블랙박스 동영상을 효율적으로 처리합니다. 컬럼 유형이 FILE이므로 다른 컬럼과 마찬가지로 작업할 수 있습니다. 기본 제공 AI 함수나 자체 Python UDF를 활용해 보세요. 여기서는 UDF가 각 클립에서 프레임을 샘플링하여 새로운 이미지 FILE 컬럼에 넣고, 객체 감지(object-detection) 모델이 기존 메타데이터에 컬럼을 하나 더 추가하여 차량 앞에 실제로 정차가 필요한 위험 요소가 있는지 여부를 표시합니다.

image2.png

그림 2: 처리된 동영상 FILE을 보여주는 다이어그램

  1. 샘플링된 프레임은 마찬가지로 FILE 유형인 새로운 frame 컬럼에 저장됩니다.
  2. 해당 FILE 컬럼에서 함수를 직접 실행하여 각 프레임에 대한 hazard 값을 가져옵니다.
  3. 정차된 클립은 hazard = none 와 함께 반환되며, 이것이 바로 우리가 찾고자 하는 인사이트입니다.

FILE을 사용할 때의 이점은 쿼리 성능 저하 없이 수 기가바이트의 동영상을 쉽게 다룰 수 있다는 것입니다. FILE 컬럼은 가벼운 참조만 유지하므로, 엔진은 실제 바이트가 필요한 단계에서만 이를 가져옵니다. 테이블에 원시 바이너리를 인코딩하는 방식과 비교해 보세요. 후자의 경우 모든 작업에서 대용량 바이너리가 엔진 메모리를 거치게 되어 성능이 저하됩니다.

  1. CEO의 질문에 답합니다. 이제 에이전트가 전체 멀티모달 데이터 자산을 추론할 수 있습니다. 추출된 정보를 정형 주행 데이터와 조인하여 차량 앞에 위험 요소가 없는데도 갑자기 정차한 모든 동영상을 찾아냅니다.

image3.png

그림 3: 멀티모달 테이블 쿼리를 보여주는 다이어그램

  1. 하나의 쿼리가 추출된 hazard 컬럼을 정형 주행 데이터와 조인하여, 전방 도로가 비어 있음에도 차량이 완전히 정차한 동영상을 필터링합니다.
  2. 여기서부터 머신 러닝 팀은 자율주행 시스템을 개선하기 위한 학습 세트를 쉽게 큐레이션할 수 있습니다.

이제 에이전트는 질문에 빠르고 정확하게 답할 수 있습니다. 실측 자료(ground truth)인 원본 동영상 프레임, 임베딩, 감지된 위험 요소와 같은 추출된 인사이트, 주행 메타데이터(속도, 타임스탬프 등)가 모두 한 행에 나란히 존재하기 때문입니다.

고객들이 테이블에 파일 경로가 포함된 URL 문자열을 저장하여 이와 같은 사용 사례를 해결하려는 경우를 자주 봅니다. 하지만 이러한 문자열은 광범위한 폴더 수준 권한을 가진 완전히 다른 시스템에 의해 제어됩니다. 결국 하나의 데이터 세트에 대해 두 개의 권한 모델을 유지해야 하는 번거로움이 생기며, 경로를 보호하는 행 필터는 그 경로 끝에 있는 동영상을 보호하는 데 아무런 도움이 되지 않습니다.

저희는 FILE을 Unity Catalog에 통합하여 이러한 거버넌스 문제를 해결했습니다. Unity Catalog에서는 FILE 역시 행 및 컬럼 수준의 액세스 제어와 속성 기반 액세스 제어(ABAC)를 통해 보호되므로, 권한이 있는 사용자만 데이터에 액세스할 수 있습니다.

오늘날 팀들이 직면하는 또 다른 문제는 비정형 데이터의 라이프사이클을 조율하는 것입니다. 누군가 오브젝트 스토리지에서 동영상을 삭제하면, 테이블은 스토리지 라이프사이클 정책을 알지 못하고 서로에 대해 아무것도 모르기 때문에 결국 아무것도 가리키지 않는 참조만 남게 됩니다.

FILE을 사용하면 비디오의 수명 주기가 데이터 세트의 행과 함께 이동합니다. 행을 삭제하면 데이터와 그 참조가 동기화된 상태로 유지되어 분리된 파일이나 규정 준수 격차가 발생하지 않습니다. 이제 팀은 잊힐 권리 요청(예: GDPR)이나 데이터의 모든 복사본을 찾기 위한 수동 작업에 대한 걱정 없이 신속하게 움직일 수 있습니다.

FILE은 이미 사용 중인 도구와 통합됩니다

이제 FILE을 통해 비정형 데이터도 정형 데이터에 이미 사용 중인 것과 동일한 개방형 기반, 거버넌스 모델 및 AI 스택의 이점을 누릴 수 있습니다.

  • 손쉽게 수집하거나 제자리에서 참조하세요. 클릭 몇 번으로 작동하는 Lakeflow 커넥터를 사용하여 SharePoint 및 Google Drive와 같은 소스에 직접 연결하세요. 또는 데이터가 이미 클라우드 스토리지나 온프레미스에 있는 경우, FILE 열이 데이터가 있는 바로 그 위치에서 참조할 수 있으므로 데이터를 이동할 필요가 없습니다.
  • Spark Declarative Pipelines로 멀티모달 파이프라인을 구축하세요. 비정형 데이터를 점진적으로 처리하는 것이 그 어느 때보다 중요합니다. 문서를 재처리할 때마다 비용이 많이 드는 모델 API 호출이 발생할 수 있기 때문입니다. 그리고 기존의 데이터 파이프라인과 마찬가지로, 파일 하나가 실패했다고 해서 엔지니어가 새벽 3시에 일어나는 일은 없어야 합니다. FILE과 SDP를 사용하면 원하는 멀티모달 테이블을 선언하기만 하면 DAG가 알아서 해결해 줍니다. 수집은 점진적으로 이루어지므로 새 문서만 처리됩니다. 재시도 및 복구 기능이 내장되어 있어 일시적인 실패로 인해 처음부터 다시 시작할 필요가 없습니다.
  • 동급 최고의 AI 함수를 포함하여 어떤 모델이든 사용하여 비정형 데이터를 처리하세요. FILE 열에서 직접 AI_PARSE_DOCUMENT, AI_QUERY 및 자체 UDF를 실행하여 원시 문서, 이미지, 비디오를 에이전트와 분석가가 이미 쿼리하고 있는 정형 열로 변환하세요.
    또한 Databricks는 처음부터 멀티 클라우드 환경을 고려하여 구축되었기 때문에, FILE은 클라우드 제공업체 전반에 자연스럽게 통합되는 동시에 팀에 하나의 통합된 레이크하우스를 제공합니다.

FILE 유형 시작하기

FILE 유형은 현재 Beta 버전으로 제공되며, 여러분의 피드백을 기다리고 있습니다. 오늘 바로 시도해 볼 수 있는 전체 기능 목록과 단계별 안내는 Beta 문서읽어보세요.

이는 FILE 유형의 시작에 불과하며, AI 프로젝트를 가속화할 흥미로운 기능 로드맵이 곧 출시될 예정입니다. 여기에는 다음이 포함됩니다.

  • 추가 비용 없이 더 빠르게 실험하세요. 데이터 세트를 학습시키고 반복하는 작업이 수 테라바이트의 비정형 데이터를 복제하는 것을 의미해서는 안 됩니다. FILE을 사용하면 기본 바이너리를 복사하지 않고도 데이터를 버전 관리하고 복제할 수 있으며, 여러 테이블에서 동시에 동일한 바이트를 참조할 수 있습니다. 예를 들어, 머신러닝 에이전트는 실제 데이터에서 격리된 샌드박스를 실행할 수 있으며, 계보(lineage)를 통해 모든 회귀를 이를 유발한 정확한 자산으로 추적할 수 있습니다.
  • 데이터 세트를 PyTorch로 직접 스트리밍하세요. FILE 데이터에 대해 SQL 쿼리를 실행하고 결과를 기본 PyTorch Datasets에 즉시 로드하여, 추가적인 데이터 준비 없이 GPU 준비가 완료된 텐서를 학습 루프에 직접 전달할 수 있습니다.
  • 테이블 재작성 없는 피처 엔지니어링. 원본 비정형 데이터의 대용량 바이너리를 포함하여 전체 테이블을 다시 작성하지 않고도 추출된 텍스트, 임베딩 또는 분류와 같은 파생 열을 추가하거나 백필할 수 있습니다.
  • 분석과 서빙 모두를 위한 단 하나의 비정형 데이터 사본. 테이블 자체에 벡터, 전체 텍스트 및 포인트 조회 인덱스를 사용하여 테이블에서 직접 검색하고 검색(retrieve)할 수 있으므로, 검색 레이어와 단일 진실 공급원(source of truth)이 동일한 레이크하우스가 됩니다.

Databricks에서 AI 워크로드를 최적화하는 방법에 대해 자세히 알아보려면 Databricks 계정 팀에 문의하세요.

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

최신 게시물을 이메일로 받아보세요

블로그를 구독하고 최신 게시물을 이메일로 받아보세요.