OpenZL: 구조 인식이 가능한 오픈소스 압축 프레임워크

9 hours ago 1

  • Meta에서 OpenZL을 공개하여, 구조화된 데이터에 대한 손실 없는 압축을 제공함
  • OpenZL은 다양한 파일 형식별 변환 과정을 활용해 최적의 압축률과 빠른 속도를 동시에 달성함
  • 압축기에 데이터 구조 정보를 명시적으로 전달하고, 오프라인 트레이너가 맞춤형 압축 설정을 자동 생성함
  • 단일 OpenZL 디코더가 모든 OpenZL 파일을 복원할 수 있어, 운영 및 관리 효율성이 높아짐
  • 데이터 구조가 없는 순수 텍스트 파일 등에서는 zstd 기반 백업 모드를 통해 최소한의 성능을 보장함

OpenZL 소개 및 비교 우위

Meta의 OpenZL은 구조화된 데이터를 위해 설계된 오픈소스 압축 프레임워크로, 전문 압축기와 유사한 성능을 제공함. 데이터의 구조를 기반으로 다양한 변환(Transforms)을 적용하며, 모든 파일 포맷에 대해 별도의 변환조합을 사용해도 하나의 범용 디코더만으로 복원 가능함.

Zstandard 이후 압축 기술의 한계와 도전

Zstandard 도입은 데이터센터에서 속도와 압축률을 동시에 충족하며 큰 도약을 이뤘으나, 알고리듬의 일반화로 인한 점진적 개선 한계가 존재함. 구조화된 데이터에선 일반 압축법보다 형태에 맞춘 맞춤식 압축이 비율과 속도 모두에서 유리함. 하지만, 각 파일 포맷마다 전용 압축/복원기를 구축·운영하는 부담이 큼. OpenZL은 개별 맞춤 압축기의 성능과 단일 바이너리 운용의 간편성을 동시에 추구함.

데이터 구조 활용 및 작동 방식

  • 전통 압축기는 일반화된 접근 또는 동작 도중 가능한 방식을 추측해 사용함
  • OpenZL은 사용자가 프리셋 또는 얇은 포맷 설명으로 데이터 구조를 입력해 명확히 지정함
  • 오프라인 트레이너가 입력 데이터를 분석하여 효율적 압축 설정(Plan) 을 자동 생성하며, 인코딩 할 때 구체적인 디코드 레시피(Resolved Graph) 로 변환하고 프레임에 저장함
  • 모든 OpenZL 파일은 범용 디코더로 별도 정보 없이 복원 가능함

OpenZL의 압축 예시

  • Silesia Compression Corpus의 sao 파일 등 명확한 구조를 가진 데이터를 대상으로 예시를 제공함
  • 필드별로 데이터를 분리, 데이터 유형에 따라 적합한 변환(예: delta, tokenize, transpose 등)을 적용함
  • OpenZL은 압축률, 속도 모두 기존 압축기(zstd, xz 등)보다 우수한 결과를 보임
    • 예시: zstd-3보다 압축률 57% 향상, 압축 속도/복원 속도도 뛰어남

자동 압축기 생성 및 트레이닝 프로세스

  • Simple Data Description Language(SDDL) 로 데이터 형태(행, 열, enum, nested 등)를 서술
  • SDDL, 코드 기반 파서, 프리셋을 입력으로 트레이너가 다양한 변환 구성과 파라미터 조합을 탐색하여 최적의 Plan을 출력함
  • 인코딩 시 Plan이 실 데이터에 맞게 Resolved Graph로 구체화됨
  • 각 압축 프레임에 Resolved Graph가 담겨, 디코더는 이 정보만으로 복원함

데이터 변화 대응: 재트레이닝 및 런타임 적응

  • Managed Compression을 활용, 데이터 구조 및 내용의 변화에 맞춰 압축 Plan을 지속 갱신 가능함
  • 주요 사용 사례별 데이터를 모니터링, 샘플링, 재트레이닝하여 새로운 Plan 적용, 기존 디코더가 변화 없이 과거/신규 데이터 모두 복원 가능함
  • 런타임에서 컨트롤 포인트를 통해 데이터 통계에 따라 Plan의 분기를 선택해, 속도와 적응력 모두 보장함

범용 디코더의 장점

  • 단일 디코더로 운영하면 보안 및 신뢰성 검사, 전체 성능 개선, 운영 일관성이 높아짐
  • 다양한 압축 Plan 도입 및 연속적 트레이닝으로 생산 중 시스템 개선이 가능함
  • 도메인 특화 압축을 제공하면서도 생태계 단순화 실현함

OpenZL의 실제 성능 측정

  • 파일 포맷을 이해·분석할 때 압축률, 속도 모두 기존 압축기를 능가함
  • 포맷을 해석하지 못할 경우 zstd로 자동 전환해 최소 성능 보장함
  • 압축률/압축 속도/복원 속도 3축에서 다양한 조합을 선택할 수 있으며, 전통 압축기의 “레벨” 조절과는 다른 유연성 제공함
  • 다양한 데이터셋(SAO, ERA5, Binance, TLC, PPMF 등)에서 탁월한 결과 입증함

OpenZL 적용 대상 및 시작하기

  • 벡터, 테이블, 트리형 데이터 등 구조가 명확한 데이터에 적합함
  • 시계열, ML 텐서, 데이터베이스 테이블 등에서 특히 강점 발휘함
  • 구조가 없는 텍스트(예: enwik, dickens 등)에는 zstd 동작
  • 공식 OpenZL 사이트GitHub 저장소에서 예시, 문서 참고 가능

향후 발전 방향 및 커뮤니티 참여

  • 시계열·그리드 데이터 지원 강화, 코덱 성능 개선, SDDL의 유연성 증대 목표
  • 자동화된 Plan 탐색기(Compressor Explorer) 고도화 추진
  • 커뮤니티는 새로운 포맷/데이터셋 제공, 엔진 최적화, 변환기 추가, 신뢰성 테스트, 벤치마크 데이터셋 제출 등 다양한 방법으로 기여 가능함
  • GitHub 이슈 등록 및 샘플 제공 등으로 협업 창구 마련함

OpenZL은 데이터 압축 분야에 새로운 가능성을 제시하며, 오픈소스 커뮤니티의 활발한 참여를 기대함

Read Entire Article