[中文主页] | [เอกสาร] | [API] | [DJ-Sora] | [รายการที่ยอดเยี่ยม]
Data-Juicer เป็นระบบประมวลผลข้อมูล แบบหลายรูปแบบแบบ ครบวงจรเพื่อให้ข้อมูลมีคุณภาพสูงขึ้นฉ่ำและย่อยได้มากขึ้นสำหรับ LLMS
เราให้บริการสนามเด็กเล่นกับ JupyterLab ที่ได้รับการจัดการ ลองใช้ data-juicer ทันทีในเบราว์เซอร์ของคุณ! หากคุณพบว่าข้อมูล juicer มีประโยชน์สำหรับการวิจัยหรือการพัฒนาของคุณโปรดอ้างถึงการทำงานของเรา
แพลตฟอร์มสำหรับ AI ของ Alibaba Cloud (PAI) ได้อ้างถึงงานของเราและข้อมูลแบบรวมตัวกันในผลิตภัณฑ์ประมวลผลข้อมูล PAI เป็นโมเดลขนาดใหญ่ของ AI Native และแพลตฟอร์มวิศวกรรม AIGC ที่ให้บริการการจัดการชุดข้อมูลการจัดการพลังงานคอมพิวเตอร์ห่วงโซ่เครื่องมือแบบจำลองการพัฒนาแบบจำลองการฝึกอบรมแบบจำลองการปรับใช้แบบจำลองและการจัดการสินทรัพย์ AI สำหรับเอกสารเกี่ยวกับการประมวลผลข้อมูลโปรดดูที่: การประมวลผล PAI-DATA สำหรับรุ่นขนาดใหญ่
Data-Juicer กำลังได้รับการปรับปรุงและบำรุงรักษาอย่างแข็งขัน เราจะปรับปรุงและเพิ่มคุณสมบัติเพิ่มเติมสูตรข้อมูลและชุดข้อมูลเพิ่มเติม เรายินดีต้อนรับคุณเข้าร่วมกับเรา (ผ่านปัญหา, PRS, ช่อง Slack, Dingding Group, ... ), ในการส่งเสริมการพัฒนาร่วมกับโมเดลร่วมกันพร้อมกับการวิจัยและการประยุกต์ใช้ (Multimodal) LLMS!
ระบบและนำกลับมาใช้ใหม่ได้ : เสริมพลังให้ผู้ใช้ด้วยไลบรารีที่เป็นระบบของ 80+ Core OPS, สูตรการกำหนดค่าที่นำกลับมาใช้ใหม่ได้ 20+ และชุดเครื่องมือเฉพาะที่มีคุณสมบัติครบถ้วนกว่า 20 รายการออกแบบมาเพื่อทำงานเป็นอิสระจากชุดข้อมูล LLM แบบหลายรูปแบบและท่อประมวลผล
Data-in-the-Loop & Sandbox : การสนับสนุนการพัฒนาแบบจำลองข้อมูลแบบจำลองแบบครบวงจรช่วยให้การวนซ้ำอย่างรวดเร็วผ่านห้องปฏิบัติการ Sandbox และให้คุณสมบัติเช่นลูปข้อเสนอแนะตามข้อมูลและรูปแบบการสร้างภาพและการประเมินอัตโนมัติหลายมิติเพื่อให้คุณสามารถเข้าใจและปรับปรุงข้อมูลและโมเดลของคุณได้ดีขึ้น
สู่สภาพแวดล้อมการผลิต : การจัดหาท่อประมวลผลข้อมูลที่มีประสิทธิภาพและขนาน (Aliyun-Pai Ray Slurm Cuda Op Fusion) ต้องการการใช้หน่วยความจำน้อยลงและการใช้งาน CPU ซึ่งปรับให้เหมาะสมด้วยการลดความผิดปกติอัตโนมัติ
สูตรการประมวลผลข้อมูลที่ครอบคลุม : นำเสนอสูตรการประมวลผลข้อมูลที่สร้างไว้ล่วงหน้าหลายสิบรายการสำหรับการฝึกอบรมก่อนการปรับแต่ง, EN, ZH และสถานการณ์อื่น ๆ ตรวจสอบความถูกต้องเกี่ยวกับโมเดลอ้างอิง Llama และ Llava
ยืดหยุ่นและขยายได้ : รองรับรูปแบบข้อมูลประเภทส่วนใหญ่ (เช่น JSONL, Parquet, CSV, ... ) และช่วยให้การผสมผสานที่ยืดหยุ่นของ OPS อย่าลังเลที่จะใช้ OPS ของคุณเองสำหรับการประมวลผลข้อมูลที่ปรับแต่งได้
ประสบการณ์ที่ใช้งานง่าย : ออกแบบมาเพื่อความเรียบง่ายด้วยเอกสารประกอบที่ครอบคลุมคู่มือเริ่มต้นง่าย ๆ และการกำหนดค่าการสาธิตและการกำหนดค่าที่ใช้งานง่ายด้วยการเพิ่ม/ลบ 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] | ติดตั้งการพึ่งพาทั้งหมดยกเว้น Sandbox |
.[sci] | ติดตั้งการพึ่งพาทั้งหมดสำหรับ OP ทั้งหมด |
.[dist] | ติดตั้งการพึ่งพาสำหรับการประมวลผลข้อมูลแบบกระจาย (ทดลอง) |
.[dev] | ติดตั้งการพึ่งพาสำหรับการพัฒนาแพ็คเกจในฐานะผู้มีส่วนร่วม |
.[tools] | ติดตั้งการพึ่งพาเครื่องมือเฉพาะเช่นตัวแยกประเภทที่มีคุณภาพ |
.[sandbox] | ติดตั้งการพึ่งพาทั้งหมดสำหรับ Sandbox |
data_juicer ล่าสุดที่ปล่อยออกมาโดยใช้ pip : pip install py-data-juicerdata_juicer และเครื่องมือพื้นฐานสองอย่าง (การประมวลผลข้อมูลและการวิเคราะห์) เท่านั้นที่มีให้ในลักษณะนี้ หากคุณต้องการฟังก์ชั่นที่ปรับแต่งได้และสมบูรณ์เราขอแนะนำให้คุณติดตั้ง data_juicer จากแหล่งที่มาdata_juicer เราขอแนะนำให้คุณติดตั้งจากแหล่งที่มาดึงภาพที่สร้างไว้ล่วงหน้าของเราจาก DockerHub:
docker pull datajuicer/data-juicer: < version_tag > หรือเรียกใช้คำสั่งต่อไปนี้เพื่อสร้างอิมเมจ Docker รวมถึง data-juicer พร้อม DockerFile ที่ให้ไว้:
docker build -t datajuicer/data-juicer: < version_tag > . รูปแบบของ <version_tag> เป็นเหมือน v0.2.0 ซึ่งเหมือนกับแท็กเวอร์ชันรุ่นรีลีส
import data_juicer as dj
print ( dj . __version__ )ก่อนที่จะใช้ตัวดำเนินการที่เกี่ยวข้องกับวิดีโอควรติดตั้งและเข้าถึง FFMPEG ผ่านตัวแปรสภาพแวดล้อม $ PATH
คุณสามารถติดตั้ง ffmpeg โดยใช้ผู้จัดการแพ็คเกจ (เช่น sudo apt ติดตั้ง ffmpeg บน debian/ubuntu, brew ติดตั้ง ffmpeg บน OS X) หรือเยี่ยมชมลิงค์ 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 หมายเหตุ: สำหรับผู้ให้บริการบางรายที่เกี่ยวข้องกับโมเดลหรือทรัพยากรบุคคลที่สามซึ่งไม่ได้เก็บไว้ในเครื่องคอมพิวเตอร์ของคุณอาจช้าสำหรับการทำงานครั้งแรกเนื่องจาก OPs เหล่านี้จำเป็นต้องดาวน์โหลดทรัพยากรที่สอดคล้องกันลงในไดเรกทอรีก่อน ไดเร็กทอรีแคชดาวน์โหลดเริ่มต้นคือ ~/.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 สำหรับผู้ให้บริการไม่ได้ประกาศอย่างถูกต้องอาจนำไปสู่ปัญหาหน่วยความจำ
# 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 ดังนั้นนอกเหนือจากการเริ่มต้นคลัสเตอร์เรย์คุณต้องตั้งค่าอินสแตนซ์ Redis ของคุณล่วงหน้าและจัดหา host และ port ของอินสแตนซ์ Redis ของคุณในการกำหนดค่าผู้ใช้ยังสามารถเลือกที่จะไม่ใช้ Ray และแยกชุดข้อมูลเพื่อทำงานบนคลัสเตอร์ด้วย Slurm ในกรณีนี้โปรดใช้ data-juicer เริ่มต้นโดยไม่มี Ray Aliyun Pai-DLC รองรับเฟรมเวิร์กเรย์เฟรมเวิร์ก Slurm ฯลฯ ผู้ใช้สามารถสร้างงานเรย์และงาน Slurm โดยตรงบนคลัสเตอร์ DLC
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 Tool เพื่อแสดงชุดข้อมูลของคุณในเบราว์เซอร์ของคุณstreamlit run app.pyconfig_all.yaml ซึ่งรวมถึง OPS และอาร์กิวเมนต์เริ่มต้น ทั้งหมด คุณเพียงแค่ต้อง ลบ ops ที่คุณจะไม่ใช้และปรับแต่งข้อโต้แย้งบางอย่างของ OPSconfig_all.yaml , เอกสาร OP และคู่มือการสะสมขั้นสูงสำหรับนักพัฒนาpython xxx.py --config configs/demo/process.yaml --language_id_score_filter.lang=enรูปแบบการกำหนดค่าพื้นฐานและคำจำกัดความแสดงด้านล่าง
Data Sandbox Laboratory (DJ-Sandbox) ให้ผู้ใช้ได้รับแนวปฏิบัติที่ดีที่สุดสำหรับการผลิตสูตรข้อมูลอย่างต่อเนื่อง มันมีค่าใช้จ่ายต่ำพกพาและคำแนะนำ
Sandbox ทำงานโดยใช้คำสั่งต่อไปนี้ตามค่าเริ่มต้นและสำหรับข้อมูลและรายละเอียดเพิ่มเติมโปรดดูเอกสารประกอบ Sandbox
python tools/sandbox_starter.py --config configs/demo/sandbox/sandbox.yamltools/preprocess เพื่อให้คุณประมวลผลข้อมูลเหล่านี้ล่วงหน้าdata-juicer คุณสามารถเรียกใช้คำสั่งหรือเครื่องมือที่กล่าวถึงข้างต้นโดยใช้อิมเมจนักเทียบท่านี้ # 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 ใช้ในผลิตภัณฑ์ LLM และโครงการวิจัยต่าง ๆ รวมถึง LLMs อุตสาหกรรมจาก Tongyi ของ Alibaba Cloud เช่น Dianjin สำหรับการวิเคราะห์ทางการเงินและ Zhiwen สำหรับผู้ช่วยอ่านหนังสือรวมถึงแพลตฟอร์มของ Alibaba Cloud สำหรับ AI (PAI) เราหวังว่าจะได้รับประสบการณ์คำแนะนำและการอภิปรายสำหรับการทำงานร่วมกันมากขึ้น!
Data-Juicer ขอบคุณและอ้างถึงโครงการชุมชนหลายโครงการเช่น HuggingFace-Datasets, Bloom, Redpajama, Pile, Alpaca-Cot, Megatron-LM, Deepspeed, Arrow, Ray, ลำแสง, 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: การสังเคราะห์ข้อมูลที่ตรงกันข้ามสำหรับแบบจำลองภาษาขนาดใหญ่ที่มีวิสัยทัศน์
การผสมข้อมูลทำให้มีประสิทธิภาพ: กฎหมายการปรับขนาด bivariate สำหรับรูปแบบภาษาก่อนการฝึกอบรม
- กลับไปที่ดัชนี