[中文主页] | [문서] | [API] | [DJ-Sora] | [멋진 목록]
Data-JUICER는 데이터를 고품질, 맛있고 LLM에 대해 소화하기 쉬운 원 스톱 멀티 모달 데이터 처리 시스템입니다.
우리는 관리 된 Jupyterlab과 함께 놀이터를 제공합니다. 브라우저에서 바로 데이터 주사를 사용해보십시오! 데이터 주자가 연구 나 개발에 유용하다고 생각되면 친절하게 우리의 작업을 인용하십시오.
AI (Alibaba Cloud)의 AI 플랫폼 (PAI)은 데이터 처리 제품에 우리의 작업과 통합 데이터 주행 인을 인용했습니다. PAI는 데이터 세트 관리, 컴퓨팅 전원 관리, 모델 도구 체인, 모델 개발, 모델 교육, 모델 배포 및 AI 자산 관리를 제공하는 AI 기본 대형 모델 및 AIGC 엔지니어링 플랫폼입니다. 데이터 처리에 대한 문서는 다음을 참조하십시오 : 대형 모델의 PAI-Data 처리.
Data-Juicer가 적극적으로 업데이트되고 유지되고 있습니다. 더 많은 기능, 데이터 레시피 및 데이터 세트를 주기적으로 향상시키고 추가합니다. (Multimodal) LLM의 연구 및 응용 프로그램과 함께 데이터 모델 공동 개발을 촉진하는 데있어서 (문제, PRS, Slack Channel, Dingding Group, ...)를 통해 우리와 함께합니다!
시스템 및 재사용 가능 : 80 개 이상의 코어 OPS, 20+ 재사용 가능한 구성 레시피 및 20 개 이상의 기능이 풍부한 전용 툴킷으로 구성된 사용자에게 권한을 부여합니다. 특정 멀티 모달 LLM 데이터 세트 및 처리 파이프 라인과 독립적으로 작동하도록 설계되었습니다.
Data-In-Loop & Sandbox : 원 스톱 데이터 모델 협업 개발을 지원하고 샌드 박스 실험실을 통한 빠른 반복을 가능하게하며 데이터 및 모델, 시각화 및 다차원 자동 평가를 기반으로 피드백 루프와 같은 기능을 제공하여 데이터 및 모델을 더 잘 이해하고 개선 할 수 있습니다.
생산 환경으로 : 효율적이고 병렬 데이터 처리 파이프 라인 (Aliyun-pai ray slurm cuda op fusion)을 제공합니다.
포괄적 인 데이터 처리 레시피 : 사전 훈련, 미세 조정, EN, ZH 및 더 많은 시나리오를위한 수십 개의 사전 구축 된 데이터 처리 레시피를 제공합니다. 참조 LLAMA 및 LLAVA 모델에서 검증되었습니다.
Flexible & Extensible : 대부분의 유형의 데이터 형식 (예 : JSONL, Parquet, CSV, ...)을 수용하고 OPS의 유연한 조합을 허용합니다. 사용자 정의 가능한 데이터 처리를 위해 자신의 OP를 자유롭게 구현하십시오.
사용자 친화적 인 경험 : 간단한 문서, 쉬운 시작 안내서 및 데모 구성 및 기존 구성에서 OPS를 추가/제거하여 직관적 인 구성을 갖춘 단순성을 위해 설계되었습니다.
data_juicer 버전을 설치하십시오. cd < path_to_data_juicer >
pip install -v -e . cd < path_to_data_juicer >
pip install -v -e . # install a minimal dependencies, which support the basic functions
pip install -v -e .[tools] # install a subset of tools dependencies종속성 옵션은 다음과 같습니다.
| 꼬리표 | 설명 |
|---|---|
. 또는 .[mini] | 기본 데이터 주체의 최소 종속성을 설치하십시오. |
.[all] | 샌드 박스를 제외한 모든 종속성을 설치하십시오. |
.[sci] | 모든 OPS에 대한 모든 종속성을 설치하십시오. |
.[dist] | 분산 데이터 처리에 대한 종속성을 설치하십시오. (실험) |
.[dev] | 기고자로 패키지를 개발하기위한 종속성을 설치하십시오. |
.[tools] | 품질 분류기와 같은 전용 도구의 종속성을 설치하십시오. |
.[sandbox] | 샌드 박스의 모든 종속성을 설치하십시오. |
pip 사용하여 최신 릴리스 data_juicer 설치하십시오. pip install py-data-juicerdata_juicer 의 기본 API와 두 가지 기본 도구 (데이터 처리 및 분석) 만 사용할 수 있습니다. 사용자 정의 가능하고 완전한 기능을 원한다면 소스에서 data_juicer 설치하는 것이 좋습니다.data_juicer 의 최신 기능을 따르려면 소스에서 설치하는 것이 좋습니다.DockerHub에서 미리 작성된 이미지를 가져 오십시오.
docker pull datajuicer/data-juicer: < version_tag > 또는 다음 명령을 실행하여 제공된 DockerFile을 포함한 최신 data-juicer 포함하여 Docker 이미지를 작성하십시오.
docker build -t datajuicer/data-juicer: < version_tag > . <version_tag> 의 형식은 v0.2.0 과 같습니다. 이는 릴리스 버전 태그와 동일합니다.
import data_juicer as dj
print ( dj . __version__ )비디오 관련 운영자를 사용하기 전에 FFMPEG를 $ PATH ENVIRNING 변수를 통해 설치하고 액세스 할 수 있어야합니다.
패키지 관리자를 사용하여 FFMPEG (예 : Sudo Apt 설치 FFMPEG 설치 FFMPEG 설치, OS X에 FFMPEG 설치) 공식 FFMPEG 링크를 방문 할 수 있습니다.
터미널에서 FFMPEG 명령을 실행하여 환경 경로가 올바르게 설정되어 있는지 확인하십시오.
? 인덱스로 돌아갑니다
process_data.py 도구 또는 dj-process 명령 줄 도구를 구성하여 데이터 세트를 처리하기위한 인수로 구성하십시오. # only for installation from source
python tools/process_data.py --config configs/demo/process.yaml
# use command line tool
dj-process --config configs/demo/process.yaml 참고 : 컴퓨터에 로컬로 저장되지 않은 타사 모델 또는 리소스가 포함 된 일부 운영자의 경우 해당 리소스를 먼저 디렉토리로 다운로드해야하기 때문에 첫 번째 실행에는 속도가 느릴 수 있습니다. 기본 다운로드 캐시 디렉토리는 ~/.cache/data_juicer 입니다. 쉘 환경 변수 인 DATA_JUICER_CACHE_HOME 다른 디렉토리로 설정하여 캐시 위치를 변경하면 DATA_JUICER_MODELS_CACHE 또는 DATA_JUICER_ASSETS_CACHE 동일한 방식으로 변경할 수도 있습니다.
참고 : 타사 모델과 함께 연산자를 사용하는 경우 구성 파일에서 해당 mem_required 선언해야합니다 ( config_all.yaml 파일의 설정을 참조 할 수 있음). 런타임 동안 Data-JUICER는 메모리 가용성 및 운영자 모델의 메모리 요구 사항을 기반으로 프로세스 수를 제어하여 더 나은 데이터 처리 효율성을 달성합니다. CUDA 환경에서 실행할 때, 운영자를 위해 MEM_Required가 올바르게 선언되지 않으면 CUDA가 메모리 문제로 이어질 수 있습니다.
# cache home
export DATA_JUICER_CACHE_HOME= " /path/to/another/directory "
# cache models
export DATA_JUICER_MODELS_CACHE= " /path/to/another/directory/models "
# cache assets
export DATA_JUICER_ASSETS_CACHE= " /path/to/another/directory/assets " 사용자가 다음과 같이 선택할 수있는 다양한 간단한 인터페이스를 제공합니다.
#... init op & dataset ...
# Chain call style, support single operator or operator list
dataset = dataset . process ( op )
dataset = dataset . process ([ op1 , op2 ])
# Functional programming style for quick integration or script prototype iteration
dataset = op ( dataset )
dataset = op . run ( dataset )우리는 이제 RAY를 기반으로 다중기 분산 데이터 처리를 구현했습니다. 해당 데모는 다음 명령을 사용하여 실행할 수 있습니다.
# Run text data processing
python tools/process_data.py --config ./demos/process_on_ray/configs/demo.yaml
# Run video data processing
python tools/process_data.py --config ./demos/process_video_on_ray/configs/demo.yamlray , 예를 들어 ray_video_deduplicator 및 ray_document_deduplicator 와 접두사로 표시됩니다. 해당 연산자는 또한 Redis 인스턴스에 의존합니다. 따라서 Ray 클러스터를 시작하는 것 외에도 Redis 인스턴스를 미리 설정하고 구성에 Redis 인스턴스의 host 및 port 제공해야합니다.또한 사용자는 Ray를 사용하지 않고 Slurm을 사용하여 클러스터에서 실행하도록 데이터 세트를 분할 할 수 있습니다. 이 경우 RAY가없는 기본 데이터 주사를 사용하십시오. Aliyun PAI-DLC는 Ray Framework, Slurm 프레임 워크 등을 지원합니다. 사용자는 DLC 클러스터에서 Ray 작업 및 Slurm 작업을 직접 생성 할 수 있습니다.
analyze_data.py 도구 또는 dj-analyze 명령 줄 도구를 실행하십시오. # only for installation from source
python tools/analyze_data.py --config configs/demo/analyzer.yaml
# use command line tool
dj-analyze --config configs/demo/analyzer.yamlapp.py 도구를 실행하여 브라우저에서 데이터 세트를 시각화하십시오.streamlit run app.pyconfig_all.yaml 에서 수정하십시오. 사용하지 않는 OPS를 제거 하고 OPS의 일부 인수를 개선하면됩니다.config_all.yaml , OP 문서 및 개발자를위한 고급 빌드 업 가이드를 참조 할 수 있습니다.python xxx.py --config configs/demo/process.yaml --language_id_score_filter.lang=en기본 구성 형식 및 정의는 다음과 같습니다.
DJ Sandbox Laboratory (DJ-Sandbox)는 사용자에게 데이터 레시피를 지속적으로 생성하기위한 모범 사례를 제공합니다. 오버 헤드, 이식성 및 지침이 적습니다.
샌드 박스는 기본적으로 다음 명령을 사용하여 실행되며 자세한 내용과 세부 사항은 샌드 박스 문서를 참조하십시오.
python tools/sandbox_starter.py --config configs/demo/sandbox/sandbox.yamltools/preprocess 의 일반적인 전처리 도구를 제공합니다.data-juicer 의 Docker 이미지를 빌드하거나 당기면이 Docker 이미지를 사용하여 위에서 언급 한 명령 또는 도구를 실행할 수 있습니다. # run the data processing directly
docker run --rm # remove container after the processing
--privileged
--shm-size 256g
--network host
--gpus all
--name dj # name of the container
-v < host_data_path > : < image_data_path > # mount data or config directory into the container
-v ~ /.cache/:/root/.cache/ # mount the cache directory into the container to reuse caches and models (recommended)
datajuicer/data-juicer: < version_tag > # image to run
dj-process --config /path/to/config.yaml # similar data processing commands # start the container
docker run -dit # run the container in the background
--privileged
--shm-size 256g
--network host
--gpus all
--rm
--name dj
-v < host_data_path > : < image_data_path >
-v ~ /.cache/:/root/.cache/
datajuicer/data-juicer:latest /bin/bash
# enter into this container and then you can use data-juicer in editable mode
docker exec -it < container_id > bash? 인덱스로 돌아갑니다
Data-Juicer는 Apache License 2.0에 따라 릴리스됩니다.
우리는 빠르게 발전하는 분야에 있으며 새로운 기능, 버그 수정 및 더 나은 문서에 대한 기여를 크게 환영합니다. 개발자를위한 방법 가이드를 참조하십시오.
궁금한 점이 있으면 토론 그룹에 가입하십시오.
Data-Juicer는 Alibaba Cloud의 Tongyi의 산업용 LLM, 예 : Dianjin for Dianjin 및 Assistant를위한 Zhiwen 및 ALIBABA Cloud의 AI (PAI) 플랫폼을 포함한 다양한 LLM 제품 및 연구 이니셔티브에서 사용됩니다. 우리는 협업을위한 더 많은 경험, 제안 및 토론을 기대합니다!
Data-Juicer 감사하며 Huggingface-Datasets, Bloom, Redpajama, Pile, Alpaca-Cot, Megatron-LM, DeepSpeed, Arrow, Ray, Beam, LM-Harness, Helm과 같은 여러 커뮤니티 프로젝트를 나타냅니다.
우리의 연구가 귀하의 연구 또는 개발에 유용하다는 것을 알게되면 다음 논문을 친절하게 인용하십시오.
@inproceedings{chen2024datajuicer,
title={Data-Juicer: A One-Stop Data Processing System for Large Language Models},
author={Daoyuan Chen and Yilun Huang and Zhijian Ma and Hesen Chen and Xuchen Pan and Ce Ge and Dawei Gao and Yuexiang Xie and Zhaoyang Liu and Jinyang Gao and Yaliang Li and Bolin Ding and Jingren Zhou},
booktitle={International Conference on Management of Data},
year={2024}
}
Data-Juicer Sandbox : 멀티 모달 데이터 모델 공동 개발을위한 포괄적 인 제품군
데이터와 멀티 모달 대형 언어 모델 간의 시너지 효과 : 공동 개발 관점의 설문 조사
IMGDIFF : 비전 대형 언어 모델에 대한 대비 데이터 합성
효율적인 데이터 믹싱 : 언어 모델 사전 조정을위한 이변 량 스케일링 법칙
? 인덱스로 돌아갑니다