[中文主页] | [Docs] | [API] | [DJ-SORA] | [Daftar Luar Biasa]
Data-Juicer adalah sistem pemrosesan data multimodal satu atap untuk membuat data berkualitas lebih tinggi, lebih juicier, dan lebih mudah dicerna untuk LLM.
Kami menyediakan taman bermain dengan Jupyterlab yang dikelola. Cobalah data-Juicer langsung di browser Anda! Jika Anda menemukan data-juicer berguna untuk penelitian atau pengembangan Anda, silakan kutip pekerjaan kami.
Platform untuk AI dari Alibaba Cloud (PAI) telah mengutip pekerjaan kami dan mengintegrasikan data-juicer ke dalam produk pemrosesan data. PAI adalah AI Model Besar Asli dan Platform Teknik AIGC yang menyediakan manajemen dataset, manajemen daya komputasi, rantai alat model, pengembangan model, pelatihan model, penyebaran model, dan manajemen aset AI. Untuk dokumentasi tentang pemrosesan data, silakan merujuk ke: Pemrosesan PAI-Data untuk model besar.
Data-Juicer sedang diperbarui dan dipelihara secara aktif. Kami secara berkala akan meningkatkan dan menambahkan lebih banyak fitur, resep data, dan set data. Kami menyambut Anda untuk bergabung dengan kami (melalui masalah, PRS, Slack Channel, Dingding Group, ...), dalam mempromosikan pengembangan bersama model data bersama dengan penelitian dan aplikasi LLMS (multimodal)!
Sistematik & dapat digunakan kembali : Memberdayakan Pengguna dengan pustaka sistematis 80+ ops inti, 20+ resep konfigurasi yang dapat digunakan kembali, dan 20+ toolkit khusus yang kaya fitur, yang dirancang untuk berfungsi secara independen dari set data LLM multimodal spesifik dan pipa pemrosesan.
Data-in-the-loop & Sandbox : Mendukung pengembangan kolaboratif model data satu atap, memungkinkan iterasi cepat melalui laboratorium Sandbox, dan menyediakan fitur seperti loop umpan balik berdasarkan data dan model, visualisasi, dan evaluasi otomatis multidimensi, sehingga Anda dapat lebih memahami dan meningkatkan data dan model Anda.
Menuju Lingkungan Produksi : Menyediakan saluran pipa pemrosesan data yang efisien dan paralel (Aliyun-Pai ray Slurm cuda op fusion) yang membutuhkan lebih sedikit memori dan penggunaan CPU, dioptimalkan dengan tolerasi gangguan otomatis.
Resep Pemrosesan Data Komprehensif : Menawarkan puluhan resep pemrosesan data yang telah dibangun untuk pra-pelatihan, penyesuaian, EN, ZH, dan lebih banyak skenario. Divalidasi pada model referensi llama dan llava.
Fleksibel & Luas : Mengakomodasi sebagian besar jenis format data (misalnya, JSONL, Parket, CSV, ...) dan memungkinkan kombinasi OP yang fleksibel. Jangan ragu untuk mengimplementasikan OP Anda sendiri untuk pemrosesan data yang dapat disesuaikan.
Pengalaman ramah pengguna : Dirancang untuk kesederhanaan, dengan dokumentasi yang komprehensif, panduan mulai yang mudah dan konfigurasi demo, dan konfigurasi intuitif dengan OP penambahan/penghapusan sederhana dari konfigurasi yang ada.
data_juicer terbaru dalam mode yang dapat diedit: 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 dependenciesOpsi ketergantungan tercantum di bawah ini:
| Menandai | Keterangan |
|---|---|
. atau .[mini] | Instal dependensi minimal untuk data-juicer dasar. |
.[all] | Pasang semua dependensi kecuali Sandbox. |
.[sci] | Instal semua dependensi untuk semua operasi. |
.[dist] | Instal dependensi untuk pemrosesan data terdistribusi. (Eksperimental) |
.[dev] | Instal dependensi untuk mengembangkan paket sebagai kontributor. |
.[tools] | Instal dependensi untuk alat khusus, seperti pengklasifikasi kualitas. |
.[sandbox] | Pasang semua dependensi untuk kotak pasir. |
data_juicer yang dirilis terbaru menggunakan pip : pip install py-data-juicerdata_juicer dan dua alat dasar (pemrosesan data dan analisis) yang tersedia dengan cara ini. Jika Anda ingin fungsi yang dapat disesuaikan dan lengkap, kami sarankan Anda menginstal data_juicer dari sumber.data_juicer , kami sarankan Anda menginstal dari sumber.Tarik gambar pra-built kami dari Dockerhub:
docker pull datajuicer/data-juicer: < version_tag > Atau jalankan perintah berikut untuk membangun gambar Docker termasuk data-juicer terbaru dengan DockerFile yang disediakan:
docker build -t datajuicer/data-juicer: < version_tag > . Format <version_tag> seperti v0.2.0 , yang sama dengan tag versi rilis.
import data_juicer as dj
print ( dj . __version__ )Sebelum menggunakan operator terkait video, FFMPEG harus diinstal dan dapat diakses melalui variabel lingkungan $ Path.
Anda dapat menginstal FFMPEG menggunakan Manajer Paket (misalnya Sudo APT Instal FFMPEG di Debian/Ubuntu, Brew Instal FFMPEG di OS X) atau kunjungi tautan FFMPEG resmi.
Periksa apakah jalur lingkungan Anda diatur dengan benar dengan menjalankan perintah FFMPEG dari terminal.
? kembali ke indeks
process_data.py atau alat baris perintah dj-process dengan konfigurasi Anda sebagai argumen untuk memproses dataset Anda. # 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 Catatan: Untuk beberapa operator yang melibatkan model atau sumber daya pihak ketiga yang tidak disimpan secara lokal di komputer Anda, mungkin lambat untuk berjalan pertama karena OP ini perlu mengunduh sumber daya yang sesuai ke dalam direktori terlebih dahulu. Direktori cache unduhan default adalah ~/.cache/data_juicer . Ubah lokasi cache dengan mengatur variabel lingkungan shell, DATA_JUICER_CACHE_HOME ke direktori lain, dan Anda juga dapat mengubah DATA_JUICER_MODELS_CACHE atau DATA_JUICER_ASSETS_CACHE dengan cara yang sama:
Catatan: Saat menggunakan operator dengan model pihak ketiga, perlu untuk mendeklarasikan mem_required yang sesuai dalam file konfigurasi (Anda dapat merujuk ke pengaturan dalam file config_all.yaml ). Selama runtime, data-juicer akan mengontrol jumlah proses berdasarkan ketersediaan memori dan persyaratan memori model operator untuk mencapai efisiensi pemrosesan data yang lebih baik. Saat berjalan dengan lingkungan CUDA, jika mem_required untuk operator tidak dideklarasikan dengan benar, itu berpotensi mengarah pada masalah CUDA di luar memori.
# 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 " Kami menyediakan berbagai antarmuka sederhana untuk dipilih pengguna sebagai berikut.
#... 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 )Kami sekarang telah menerapkan pemrosesan data terdistribusi multi-mesin berdasarkan Ray. Demo yang sesuai dapat dijalankan menggunakan perintah berikut:
# 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 , misalnya ray_video_deduplicator dan ray_document_deduplicator . Operator -operator itu juga mengandalkan instance Redis. Jadi selain memulai ray cluster, Anda juga perlu mengatur instance Redis Anda terlebih dahulu dan menyediakan host dan port instance Redis Anda dalam konfigurasi.Pengguna juga dapat memilih untuk tidak menggunakan Ray dan sebagai gantinya membagi dataset untuk dijalankan pada cluster dengan Slurm. Dalam hal ini, silakan gunakan data-juicer default tanpa Ray. Aliyun Pai-DLC mendukung kerangka kerja Ray, Slurm Framework, dll. Pengguna dapat secara langsung membuat pekerjaan Ray dan pekerjaan Slurm di kluster DLC.
analyze_data.py atau alat baris perintah dj-analyze dengan konfigurasi Anda sebagai argumen untuk menganalisis dataset Anda. # 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 untuk memvisualisasikan dataset Anda di browser Anda.streamlit run app.pyconfig_all.yaml yang mencakup semua ops dan argumen default. Anda hanya perlu menghapus OPS yang tidak akan Anda gunakan dan memperbaiki beberapa argumen OP.config_all.yaml kami, dokumen OP, dan panduan build-up lanjutan untuk pengembang.python xxx.py --config configs/demo/process.yaml --language_id_score_filter.lang=enFormat dan definisi konfigurasi dasar ditunjukkan di bawah ini.
Data Sandbox Laboratory (DJ-Sandbox) memberi pengguna praktik terbaik untuk terus memproduksi resep data. Ini fitur overhead rendah, portabilitas, dan bimbingan.
Kotak pasir dijalankan menggunakan perintah berikut secara default, dan untuk informasi dan detail lebih lanjut, silakan merujuk ke dokumentasi Sandbox.
python tools/sandbox_starter.py --config configs/demo/sandbox/sandbox.yamltools/preprocess untuk Anda preprocess data ini.data-juicer , Anda dapat menjalankan perintah atau alat yang disebutkan di atas menggunakan gambar Docker ini. # 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? kembali ke indeks
Data-Juicer dirilis di bawah Lisensi Apache 2.0.
Kami berada di bidang yang berkembang pesat dan sangat disambut kontribusi fitur baru, perbaikan bug, dan dokumentasi yang lebih baik. Silakan merujuk ke panduan cara untuk pengembang.
Jika Anda memiliki pertanyaan, silakan bergabung dengan grup diskusi kami.
Data-Juicer digunakan di berbagai produk LLM dan inisiatif penelitian, termasuk LLM industri dari Alibaba Cloud's Tongyi, seperti Dianjin untuk analisis keuangan, dan Zhiwen untuk Membaca Asisten, serta platform Alibaba Cloud untuk AI (Pai). Kami menantikan lebih banyak pengalaman, saran, dan diskusi Anda untuk kolaborasi!
Data-Juicer Terima kasih dan mengacu pada beberapa proyek komunitas, seperti dataset pelukan, mekar, redpajama, tumpukan, alpaca-cot, megatron-lm, deepspeed, panah, ray, balok, lm-harness, helm, ....
Jika Anda menemukan pekerjaan kami berguna untuk penelitian atau pengembangan Anda, silakan kutip makalah berikut.
@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: Suite komprehensif untuk pengembangan bersama model data multimodal
Sinergi antara data dan model bahasa multi-modal: survei dari perspektif pembangunan bersama
Imgdiff: Sintesis Data Kontras untuk Visi Model Bahasa Besar
Pencampuran Data Efisien: Undang -undang penskalaan bivariat untuk pretraining model bahasa
? kembali ke indeks