huggingface/datatrove
Freeing data processing from scripting madness by providing a set of platform-agnostic customizable pipeline processing blocks.
해결하는 문제
DataTrove는 대규모 언어 모델(LLM)의 학습 데이터를 준비하는 데 특화되어, 텍스트 데이터의 처리, 필터링 및 중복 제거를 대규모로 처리하도록 설계되었습니다. 낮은 메모리 사용량을 유지하고 분산 실행을 지원하는 플랫폼 불가지론적(platform-agnostic) 프레임워크를 제공하여 방대한 워크로드를 관리하는 문제를 해결합니다.
작동 방식
이 라이브러리는 데이터가 일련의 Document 객체(텍스트, ID 및 메타데이터 포함)로 처리되는 파이프라인 기반 아키텍처를 사용합니다. 사용자는 리더, 추출기, 필터 및 라이터와 같은 처리 블록의 목록으로 pipeline을 정의하며, 이는 executor에 의해 실행됩니다.
실행은 전체 워크로드를 tasks(데이터 샤드)로 나누고 이를 workers(컴퓨팅 리소스)에 할당하여 병렬화됩니다. 이 프레임워크는 다양한 환경을 위해 여러 실행기를 지원합니다:
- LocalPipelineExecutor: 단일 머신 멀티프로세싱용
- SlurmPipelineExecutor: 작업 배열을 사용하는 Slurm 클러스터용
- RayPipelineExecutor: Ray 클러스터용
- JobsPipelineExecutor: Hugging Face Jobs용
대상 사용자
AI 모델 학습을 위해 매우 대규모의 텍스트 데이터셋을 견고하게 처리하고 정제해야 하는 연구자 및 엔지니어를 대상으로 합니다.
주요 특징
- 플랫폼 불가지론적: 동일한 파이프라인을 수정 없이 로컬 또는 클러스터에서 실행할 수 있습니다.
- 결함 허용(Fault Tolerance): 마커 파일을 통해 완료된 작업을 추적하여, 장애 발생 후 중단된 지점부터 작업을 재개할 수 있습니다.
- Fsspec 통합: 로컬, 원격 및 클라우드 파일 시스템(예: S3, Hugging Face Hub)을 지원합니다.
- 사전 구축된 블록: 텍스트 추출, 토큰화, minhash 중복 제거 및 합성 데이터 생성을 위한 즉시 사용 가능한 도구가 포함되어 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트