데이터 준비 키트란 무엇인가요?

대시보드가 표시된 모니터를 펜으로 가리키는 사람의 손

작성자

Jobit Varughese

Technical Content Writer

IBM

Shalisha Witherspoon

Software Engineer

IBM Research

데이터 준비 키트란 무엇인가요?

효율적인 인공 지능 (AI) 시스템과 대규모 언어 모델 (LLM) 애플리케이션을 개발하려면 양질의 데이터 소스에서 얻은 신뢰할 수 있는 데이터 세트가 필수적입니다. 데이터 준비에는 정제, 변환, 그리고 원시 비정형 데이터 를 사용 가능한 데이터 세트로 구성하는 정교한 프로세스가 포함됩니다. 이 과정은 쉽지 않은데, 데이터 품질 문제가 숨겨져 있다가 소프트웨어 개발 후반에 드러나 디버깅에 어려움을 초래하고 전체 프로젝트 기간을 지연시킬 수 있기 때문입니다. 양질의 데이터는 책임감 있는 LLM 및 AI 애플리케이션 구축에 필수적입니다. 제대로 준비되지 않은 데이터는 편향되거나 안전하지 않은 아웃풋을 유발할 수 있습니다. 또한 개인 식별 정보(PII)가 모델 데이터에 포함될 경우 그 파급 효과를 제대로 인지하지 못하면 개인정보 침해의 위험이 있습니다. 그뿐만 아니라, 부실한 데이터 준비는 시간과 자원의 낭비로 이어질 수 있습니다. 책임감 있는 생성형 AI 개발의 기반은 효율적인 제품 구축을 위해 데이터를 제대로 준비하는 것입니다.

IBM은 개발자와 데이터 과학 전문가에게 데이터 준비의 어려움을 해소할 수 있는 툴을 제공하기 위해 오픈소스 데이터 준비 키트 (DPK)를 개발했습니다. DPK는 실무자가 AI 기반 애플리케이션 및 LLM 워크플로 를 위한 데이터 파일을 준비하는 데 적합한 툴킷입니다. 이를 위해 DPK는 Python 환경에서 여러 모듈식 '변환 툴'을 제공합니다. 사용자는 '변환 툴'을 개별 클래스로 사용하거나 데이터 파이프라인으로 결합하여 데이터 소스에서 데이터를 정제, 변환 및 구성할 수 있습니다. DPK는 확장성을 고려하여 설계되었으며 Parquet 파일과 같은 컬럼형 데이터 세트와 Ray 및 Spark와 같은 확장 가능한 런타임을 사용합니다. 이러한 기능을 통해 단일 머신 또는 대규모 클러스터에서 데이터 준비를 수행하여 데이터 처리 속도를 높일 수 있습니다. DPK는 IBM® Granite 모델용 데이터 준비에 성공적으로 사용되어 실제 사용 사례에서 그 효과를 입증했습니다.

DPK의 주요 기능 및 아키텍처

DPK는 다음과 같은 세 가지 주요 아키텍처 구성 요소로 이루어져 있습니다.

데이터 접근, 변환 및 런타임.

데이터 접근: 이 구성 요소는 다양한 스토리지 위치(예: 로컬 파일 시스템, S3 호환 스토리지)에서 데이터를 읽고 쓰는 균일한 방법을 제공합니다. 체크포인트 기능을 지원하므로 작업이 다시 시작되어야 하는 경우 완료되지 않은 파일만 처리해 시간과 자원을 절약할 수 있습니다.

변환: 이 모듈은 데이터 변환, 중복 제거, 개인 식별 정보(PII) 탐지 등 데이터에 적용될 특정 기능을 제공합니다. DPK는 사전 구축된 변환 툴로 구성된 변환 라이브러리를 보유하고 있습니다. 또한 분산 컴퓨팅 프레임워크(Ray 또는 Spark)에 익숙하지 않은 사용자도 자체적인 사용자 지정 변환 툴을 생성하고 구축할 수 있습니다. 각 변환 툴은 자체적으로 포함되고 구성 가능한 작업 단위로 작동하며, 파이프라인으로 구성 가능하고 LLM 규모의 데이터 준비를 제공합니다.

런타임: 런타임은 변환에 대한 특정 실행 환경으로, 작업을 할당하고 모니터링합니다. DPK는 순수 Python(멀티프로세싱 포함), Ray, Spark 등 다양한 런타임 환경에서 실행될 수 있습니다. 이러한 유연성을 통해 사용자는 단일 노트북부터 수천 개의 노드로 구성된 대규모 클러스터까지 데이터 준비 규모를 확장할 수 있습니다. 런타임은 워커에 작업을 할당하는 역할을 담당합니다. 또한 런타임을 통해 변환 툴은 공유 클래스나 객체 저장소와 같은 특정 기능을 사용할 수 있습니다. 전체 런타임 아키텍처는 변환 런처(진입점), 변환 오케스트레이터(워크플로를 실행하고 워커를 생성하는 구성 요소), 파일 프로세서(각 파일을 처리하는 구성 요소)로 구성됩니다. 오케스트레이터는 런타임을 사용하여 공유 구성 요소와 작업할 파일을 찾을 수 있는 데이터 접근 권한을 설정합니다. 각 파일 프로세서는 애플리케이션 프로그래밍 인터페이스(API) 호출을 사용하여 결과를 읽고 처리한 다음 메타데이터 를 다시 기록합니다.

자동화 및 확장성

DPK의 자동화 및 확장성 기능은 혁신적이며 Local, Ray, Spark와 같은 다양한 런타임을 수용할 수 있습니다.

DPK는 새로운 기능을 통해 BigCode, DataTrove, Dolma와 같은 기존 데이터 준비 프로젝트와 차별화됩니다. 주요 차별점은 사전 학습, 미세 조정, 검색 증강 생성 (RAG) 등 다양한 사용 사례와 지원 가능한 데이터 차원입니다. 단일 데이터 유형만 지원하는 다른 툴킷과 달리, DPK는 자연어 데이터와 코드 데이터를 모두 지원합니다. 또한 DPK는 확장성이 뛰어나 원하는 만큼 확장 가능한 모듈을 쉽게 추가할 수 있습니다.

자동화를 위해 DPK는 명령줄 인터페이스(CLI)와 Kubeflow Pipelines(KFP)를 활용한 노코드 옵션을 제공합니다. KFP는 확장 가능한 머신 러닝 (ML) 워크플로를 Kubernetes에 배포하는 플랫폼입니다. 이러한 기능은 사용자층을 넓히고 데이터 과학자와 AI 애플리케이션 개발자에게 더 폭넓은 적용 가능성을 허용합니다.

KFP 통합의 특징은 다음과 같습니다. 

확장성: KFP는 확장가능한 온디맨드 컴퓨팅 플랫폼인 Kubernetes를 통해 대규모 데이터 세트 와 매우 복잡한 워크플로를 확장할 수 있습니다.

모듈성: 각 워크플로는 재사용 가능한 구성 요소로 분할되어 복잡한 워크플로와 추가 디버깅을 쉽게 구현할 수 있습니다.

재현성: 각 실행의 기록이 추적되어 실험을 재현할 수 있습니다.

시각화: 파이프라인 실행을 모니터링하고 결과를 시각화하며 문제를 해결할 수 있는 인터페이스가 제공됩니다. 

DPK의 확장성은 실험 연구를 통해 입증되었습니다. 예를 들어 이 툴킷은 처리 노드의 규모가 커짐에 따라 변환 툴 실행 시간이 비례적으로 감소합니다. 또한 간단한 데이터 주석 작업부터 언어 식별과 같이 추가적인 계산 비용이 발생하는 복잡한 워크로드에 이르기까지 모든 워크로드에서 균일하게 확장됩니다.

DPK를 활용한 AI 학습용 데이터 전처리 거버넌스

AI 시스템의 기능이 향상되고 의사 결정 과정에 더 통합됨에 따라, 윤리적이고 안전하며 규정을 준수하는 AI를 위한 거버넌스 체계 구축의 필요성이 시급해지고 있습니다. 그러나 거버넌스는 모델에서 시작하는 것이 아니라 데이터에서 시작된다는 점을 강조해야 합니다.

DPK가 특히 가치 있는 이유는 AI 거버넌스의 목표에 직접적으로 기여한다는 점입니다.

안전성: DPK '변환 툴'은 HAP(증오, 학대, 욕설) 탐지를 통해 유해하거나 악성 콘텐츠를 식별하고 제거합니다.

공정성: DPK '변환 툴'은 중복 제거 및 품질이 낮거나 관련성이 없는 데이터 필터링을 통해 편향을 제거합니다. 

규정 준수: DPK '변환 툴'은 GDPR(일반 데이터 보호 규정) 및 HIPAA(건강 보험 양도 및 책임에 관한 법률(HIPAA))와 같은 개인정보 보호 관련 규정을 준수하여 PII를 추론하고 삭제합니다.

투명성: DPK '변환 툴'은 문서 해시와 품질 점수를 추가하여 추적성과 감사 가능성을 높입니다.

의료, 금융, 정부 등 신뢰가 중요한 모든 분야에서 DPK는 책임감 있는 데이터를 기반으로 AI 시스템을 구축할 수 있도록 지원합니다.

실제 사용 사례: 법률 문서 요약

시나리오: 한 정부 기관에서 법률 문서를 요약하는 데 도움이 되는 도메인별 LLM을 구축하고 있습니다. 데이터 세트에는 다양한 출처에서 스크랩한 공공 기록, 법률 서류 및 정책 문서가 포함되어 있습니다.

거버넌스 과제:

  • 일부 출처는 검증되지 않았거나 정치적으로 편향되어 있습니다.

  • 데이터 세트에 여러 언어가 포함되어 있습니다. 

  • 유해하거나 선동적인 표현이 포함될 수 있습니다.

  • 이름 및 주소와 같은 PII는 제거해야 합니다.

  • 중복 제출 및 정형화된 문구 사용이 빈번합니다.

  • 문서 품질이 천차만별입니다. 

해결책: DPK를 활용한 거버넌스 레시피를 배포함으로써 해당 기관은 데이터 세트가 다음과 같은 조건을 충족하도록 보장할 수 있습니다.

  • 윤리적 출처 확보

  • 개인정보 보호 규정 준수

  • 고품질 및 다양성 확보 

  • 책임감 있는 LLM 교육 준비

거버넌스 파이프라인 레시피

앞서 제시된 사용 사례에서 발생한 문제나 데이터 품질, 안전성 및 규정 준수 관련 위험을 완화해야 하는 시나리오를 해결하려면 거버넌스 정책을 근본적으로 준수하는 파이프라인이 필요합니다. DPK는 데이터 세트를 정제, 필터링 및 보강하기 위해 서로 연결할 수 있는 일련의 모듈식 변환 툴을 제공하여 이러한 파이프라인 구축을 지원합니다.

이 표는 AI 거버넌스의 주요 요구 사항을 충족하는 간단한 6단계 거버넌스 파이프라인을 보여줍니다. 각 단계에는 관련 위험 또는 품질 문제가 포함되어 있어 최종 데이터 세트가 윤리적으로 수집되고 개인정보 보호 규정을 준수하며 책임감 있는 AI 개발에 사용될 수 있도록 보장합니다.

AI 거버넌스 파이프라인

자체 거버넌스 파이프라인을 구축하는 방법은 다음과 같습니다.

  1. 리포지토리 복제: https://github.com/data-prep-kit/data-prep-kit

  2. 변환 툴 설치: pip install 'data-prep-toolkit-transforms[all]'

  3. KFP 또는 Python과 dpk_transform_chain을 사용하여 파이프라인을 구성합니다.

  4. CLI를 사용하여 파이프라인을 실행하거나 Ray 또는 Spark를 사용하여 데이터 플랫폼에 통합합니다.

사용 가능한 DPK 변환 툴

DPK에는 다양한 데이터 준비 요구 사항에 맞춰 분류된 사전 구축된 변환 툴이 포함되어 있습니다.

데이터 수집 변환 툴: 이러한 변환 툴은 하나 이상의 형식에서 표준화된 형식으로 데이터를 변환합니다. 예를 들어 압축된 코드 파일을 Parquet으로, HTML/PDF를 Parquet으로 변환할 수 있습니다.

범용(코드 및 언어) 변환 툴: 이러한 변환 툴은 코드 데이터와 자연어 데이터 모두에 사용할 수 있습니다. 예를 들어 정확한 중복 제거와 퍼지 중복 제거를 통해 중복 레코드를 제거하고 파일 크기를 적절하게 조정할 수 있습니다.

언어 전용 변환 툴: 이러한 변환 툴은 자연어 데이터에 적용됩니다. 여기에는 텍스트의 언어를 식별하는 언어 식별기, 개인 식별 정보를 식별하고 제거하는 PII 어노테이터(식별기) 또는 리댁터(삭제기)가 포함됩니다.

코드 전용 변환 툴: 코드만으로 구성된 데이터에 사용됩니다. 여기에는 프로그래밍 언어 주석, 코드 품질 주석, 라이선스 및 저작권 정보를 대상으로 하는 헤더 클렌저가 포함됩니다. 이 프레임워크에는 문서 청킹 및 텍스트에 대한 임베딩 벡터를 생성하는 텍스트 인코더와 같은 RAG 애플리케이션을 위한 변환 툴도 포함되어 있습니다. 이러한 변환 툴은 벡터 데이터베이스 에서 사용될 데이터를 준비하는 데 있어 핵심적인 역할을 합니다. 

DPK는 AI, 특히 LLM 애플리케이션 개발자에게 필수적인 툴킷입니다. 이 툴킷은 복잡하고 때로는 힘든 데이터 준비 과정을 간소화하는 깔끔하고 확장 가능하며 표준화된 프레임워크입니다. 개발자와 데이터 과학자를 지원하는 완벽한 모듈식 '변환 툴' 세트를 통해 원시 데이터를 정제하고 구조화하며, AI 거버넌스의 중요한 측면을 데이터 워크플로에 구축할 수 있습니다. 이를 통해 학습에 사용되는 기초 데이터의 품질과 신뢰성을 보장하고 윤리 및 개인정보 보호 전략에 대한 책임성을 확보할 수 있습니다. 궁극적으로 DPK는 개발자에게 책임감과 신뢰성을 보장하고, 강력한 데이터베이스를 기반으로 모델 혁신을 가능하게 함으로써 AI 시스템의 성능을 향상합니다.