[AI-Ready Data] Croissant 알아보기

JeongYun Lee·2026년 7월 12일

AI

목록 보기
23/23
post-thumbnail

참고자료

Croissant 메타데이터 포맷은 머신러닝을 위한 데이터셋을 (1) discoverable (2) portable (3) interoperable (4) reproducible 하도록 표준화된 형태로 표현하는 목적을 갖는다. DCAT, schema.org, FAIR 원칙 등 기존의 메타데이터 표준들은 ML이라는 특수한 요구를 완전히 충족하지 못한다는 문제의식에 기반한다.
discoverable은 데이터셋에 Croissant 메타데이터가 부착되면 데이터셋 검색엔진이 이를 파싱할 수 있어, 해당 데이터셋이 어느 저장소에 발행되었든 사용자가 이를 탐색, 발견할 수 있음을 의미한다. Croissant은 schema.org를 기반으로 하므로 웹 페이지에 임베드된 메타데이터가 검색엔진에 색인되며, Google Dataset Search와 같은 서비스는 Croissant 데이터셋만을 필터링해 제공한다.
portable과 reproducible은 Croissant이 ML 도구가 데이터셋을 로드하기에 충분한 정보를 제공함으로써, 데이터가 저장된 위치와 무관하게 소수의 코드만으로 여러 프레임워크(PyTorch, TensorFlow, JAX 등)에 데이터셋을 로드할 수 있게 함을 의미한다(portability). 포맷이 표준화되어 있으므로 Croissant을 준수하는 모든 도구는 데이터를 동일하게 해석하며, 이러한 해석의 일관성은 재현성(reproducibility)의 토대가 된다. 여기에 더해 Croissant은 버전 속성(Semantic Versioning 기반)과 파일 단위 sha256 체크섬을 결합해, 다운로드된 파일이 기술문서에 선언된 파일과 일치하는지 견고하게 검증할 수 있도록 하며, 이를 통해 데이터셋의 재현 가능한 문서화를 뒷받침한다.

✅ Croissant's Four Layers

Croissant은 4개의 레이어로 구성된다.

1. Dataset Metadata Layer

  • 데이터셋의 메타 정보를 기록하는 계층
  • schema.org를 기반으로 하며, 어떤 속성이 필수/권장/선택인지 제약을 부과함
  • snapshot/버전 관리: version(Semantic Versioning)과 sha256 체크섬을 결합해, 특정 시점의 데이터를 재현 가능하게 고정

2. Resource Layer

  • 데이터셋을 구성하는 실제 파일(원천 데이터)을 기술하는 계층
  • schema.org의 distribution 속성만으로는 복잡한 레이아웃(예: CSV + 이미지 압축파일 + 라벨 파일)을 담기 어려워, 두 개의 원시 클래스(primitive classes)를 도입함
    - FileObject: 개별 파일 하나(예: metadata.csv, images.tar). contentUrl·encodingFormat·sha256을 가지며, containedIn으로 아카이브 내 포함 관계를 표현
    - FileSet: 동질적 파일 집합(예: 압축파일 속 이미지 수만 장). glob 패턴 필터(includes로 포함, excludes로 제외)로 지정

AIRD Pack을 구성하면서 Pack 안의 데이터들의 구성 방식에 대해서 고민했는데, 이 부분을 참고할 수 있을 것 같다.

3. Structure Layer

  • 파일 내부 콘텐츠가 어떻게 조직되어 있는지를 RecordSet으로 기술하는 계층(FileObject/FileSet은 'CSV 파일이 있다'까지만 말할 뿐, 그 CSV의 행과 열이 무엇인지는 RecordSet으로 기술)
  • 정형(CSV·JSON)·비정형(텍스트·오디오·비디오)을 'record(레코드) = 여러 field(필드)의 묶음'라는 단일 추상으로 통일 → 포맷 이질성을 한 계층에서 추상화
    - 테이블 → 한 행이 한 record, 각 열이 한 field
    - 이미지 폴더 → 이미지 한 장이 한 record, 픽셀 내용이 하나의 field
  • 추출·변환: extract(CSV의 column, JSON의 jsonPath, 파일의 filename/content 등)와 transform(정규식, 구분자 분할 등)으로 원본을 가공
  • Field 중첩(subField): 논리적으로 묶이는 값을 계층화(예: coordinates 아래 latitude·longitude)
  • RecordSet 중첩: 한 레코드에 하위 구조가 여럿일 때(예: 이미지 한 장에 여러 바운딩박스 주석)
  • 이종 데이터 조인: references(외래키)로 다른 RecordSet 참조, 정형·비정형을 가로질러 결합(예: 압축파일 속 이미지 + CSV 메타데이터)

4. Semantic Layer

  • 구조에 ML 맥락의 의미(시맨틱 타입)를 부여하는 계층
  • 주요 표현: splits(train/test/validation), labels(cr:Label), categorical(sc:Enumeration), bounding box(cr:BoundingBox), segmentation mask 등
  • splits 지정 시, 도구가 필요한 split의 파일만 선택적으로 다운로드하도록 추론 가능
  • 암묵적 매핑: 필드 ID의 접미사가 클래스 속성명과 일치하면 자동 연결(예: coordinates/latitude ↔ sc:latitude). 불일치 시 equivalentProperty로 명시적 매핑

✅ Croissant v1.1

2026년 초(스펙 기준 2026년 1월)에 공개된 version 1.1은 기존의 machine-readable이라는 조건에, AI가 데이터셋을 온전히 해석하고 재사용할 수 있도록 하는 machine-actionable을 강조한다는 특징이 있다.
이러한 machine-actionable 지향은 Croissant-RAI 확장의 문제의식과 맞닿아 있다. Croissant-RAI는 Datasheets for Datasets, Data Cards 등 기존의 책임 AI(RAI) 데이터 문서화 방식을 계승하여, 데이터 생애주기·라벨링·공정성 평가·규제 준수 같은 RAI 정보를 기계가독 형태로 발행하고 발견, 재사용할 수 있게 하는 확장이다. v1.1에서 강화된 출처(provenance)와 사용 조건(governance) 표현은 이러한 책임 AI 요구를 표준 어휘로 구현하는 핵심 축을 이룬다.

첫째, AI 시스템에서 Croissant을 적용한 데이터에 접근할 때, PROV-O 기반으로 연쇄적 보관 이력(chain-of-custody), 즉 데이터의 기원과 계보 등을 파악하고 품질·규정 준수 검증을 확인할 수 있게 된다.
둘째, 외부 어휘 혹은 식별자를 여러 수준에서 연결할 수 있는 유연한 프레임워크를 통해 어휘 상호운용성(Vocabulary Interoperability)을 갖춘다. 예를 들어 데이터셋 수준에서는 Wikidata나 온톨로지 ID를 참조해 콘텐츠 전체를 분류하여 저장소 간 교차 발견이 가능해지고, 필드 수준에서는 컬럼이 통제어휘 용어를 가리켜 그 의미를 명확히 하거나 출처를 인용하며, 데이터 수준에서는 필드 값에 시맨틱 클래스를 부여한다.
셋째, v1.1은 데이터 거버넌스를 지원하는 데에도 강점이 있다. 데이터의 사용 권한이나 제약 등을 표준 어휘로 인코딩하여 기계가 자동으로 발견할 수 있게 하는데, 동의(consent) 범주는 DUO(Data Use Ontology)로 'General Research Use', 'Non-Commercial Use'와 같이 태깅하고, 더 세밀한 사용 규칙은 W3C ODRL(Open Digital Rights Language)로 표현된다.

이를 통해 Croissant 1.1은 데이터셋을 단순히 사람이 읽고 기계가 파싱하는 대상을 넘어, 출처·의미·사용 조건을 스스로 담은 자기서술적(self-describing) 단위로 만든다. 자율 에이전트가 데이터를 발견·해석·사용하는 전 과정에서 그 계보와 프라이버시, 사용 권한을 온전히 존중하도록 보장한다는 점에서, 에이전트 시대(agentic era)에 부합하는 ML 데이터셋 표준으로 자리한다.

✅ Croissant and MCP

MCP는 LLM이 도구 호출, 리소스 탐색, 프롬프트 요청을 통해 서드파티 서비스를 사용하는 표준 메커니즘으로, 이를 활용하면 LLM은 API를 통해 입출력 형식과 윤리적 가드레일이 있는 데이터에 효과적으로 접근할 수 있다. 이미 Google Dataset Search, Hugging Face, Kaggle, Harvard Dataverse, OpenML 등 여러 플랫폼이 Croissant를 채택했으므로, MCP 서버와 Croissant을 결합하면 보다 확장된 접근이 가능해진다.

이러한 결합의 대표 사례가 Eclair이다. Eclair는 LLM이 Croissant의 도움을 받아 데이터셋을 발견, 다운로드, 활용하여 사실 기반 데이터로 질문에 답하도록 돕는 에이전트 도구 모음이다. 로컬 혹은 원격으로 실행 가능한 MCP 서버와 IDE(VSCode의 Copilot 등), AI 도구(Claude Code, Gemini CLI 등)용 클라이언트, Python API, CLI를 함께 제공한다고 한다. Eclair 외에도 Harvard Dataverse, Kaggle의 MCP 구현, 메타데이터를 대화형으로 생성하고 검증하는 Jetty, MCP와 Croissant 파일을 결합한 MLCBakery 등이 등장했다. 이처럼 Croissant를 지원하는 서비스들을 통해 서로 다른 플랫폼 간에 메타데이터를 연결하면, 특정 데이터셋의 계보(lineage)와 출처(provenance)를 명확히 명시하고 활용할 수 있다는 장점이 있다.

profile
궁금한 건 많지만, 천천히 알아가는 중입니다

0개의 댓글