[中文主页] | [مستندات] | [API] | [DJ-Sora] | [قائمة رهيبة]
Data-juicer هو نظام معالجة البيانات متعدد الوسائط من جانب البيانات لجعل البيانات أعلى جودة وعصير وأكثر هضمًا لـ LLMs.
نحن نوفر ملعبًا مع jupyterlab المدارة. جرب Data-Juicer على الفور في متصفحك! إذا وجدت البيانات المفيدة لبحثك أو تطويرها ، فيرجى الاستشهاد بعملنا.
استشهدت منصة AI من Alibaba Cloud (PAI) عملنا ودمج البيانات المتكاملة في منتجات معالجة البيانات الخاصة بها. PAI هو نموذج كبير منظمة AI وأجهزة AIGC الهندسية التي توفر إدارة مجموعات البيانات ، وإدارة الطاقة الحاسوبية ، وسلسلة أدوات النماذج ، وتطوير النماذج ، والتدريب النموذجي ، ونشر النماذج ، وإدارة أصول الذكاء الاصطناعي. للحصول على وثائق حول معالجة البيانات ، يرجى الرجوع إلى: معالجة PAI-DATA للنماذج الكبيرة.
يتم تحديث وصيانة البيانات بنشاط. سنقوم بشكل دوري بتحسين وإضافة المزيد من الميزات وصفات البيانات ومجموعات البيانات. نرحب بكم للانضمام إلينا (عبر القضايا ، PRS ، Slack Channel ، Dingding Group ، ...) ، في الترويج لتطوير نموذج البيانات إلى جانب البحث وتطبيقات LLMS (متعددة الوسائط)!
منهجية وقابلة لإعادة الاستخدام : تمكين المستخدمين بمكتبة منهجية تضم 80+ OPS Core و 20+ وصفات للتكوينات القابلة لإعادة الاستخدام ، و 20+ مجموعة أدوات مخصصة غنية بالميزات ، مصممة لتعمل بشكل مستقل عن مجموعات بيانات LLM متعددة الوسائط ومجموعة أنابيب المعالجة.
Data-in-the-lop و Sandbox : دعم تطوير نموذج بيانات واحد من طراز البيانات ، وتمكين التكرار السريع من خلال مختبر صندوق الرمل ، وتوفير ميزات مثل حلقات التغذية المرتدة بناءً على البيانات والنموذج والتصور والتقييم التلقائي متعدد الأبعاد ، بحيث يمكنك فهم البيانات والموديلات الخاصة بك بشكل أفضل.
نحو بيئة الإنتاج : توفير خطوط أنابيب فعالة ومتوازية للبيانات (Aliyun-Pai Ray slurm cuda op) تتطلب استخدام ذاكرة أقل واستخدام وحدة المعالجة المركزية ، مع محسّنة التوحيد التلقائي.
وصفات شاملة لمعالجة البيانات : تقديم عشرات من وصفات معالجة البيانات المدمجة مسبقًا للتدريب المسبق ، والضبط ، و EN ، و ZH ، والمزيد من السيناريوهات. التحقق من صحة على نماذج LLAMA و LLAVA المرجعية.
مرنة وقابلة للتمديد : استيعاب معظم أنواع تنسيقات البيانات (على سبيل المثال ، JSONL ، Parquet ، CSV ، ...) والسماح مجموعات مرنة من العمليات. لا تتردد في تنفيذ 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] | تثبيت جميع التبعيات باستثناء صندوق الرمل. |
.[sci] | تثبيت جميع التبعيات لجميع العمليات. |
.[dist] | تثبيت التبعيات لمعالجة البيانات الموزعة. (تجريبي) |
.[dev] | تثبيت التبعيات لتطوير الحزمة كمساهمين. |
.[tools] | تثبيت التبعيات للأدوات المخصصة ، مثل مصنفات الجودة. |
.[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 ويمكن الوصول إليه عبر متغير بيئة المسار $.
يمكنك تثبيت FFMPEG باستخدام مديري الحزم (على سبيل المثال Sudo APT تثبيت FFMPEG على Debian/Ubuntu ، Brew Install 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 ملاحظة: بالنسبة لبعض المشغلين الذين يتضمنون نماذج أو موارد تابعة لجهات خارجية لا يتم تخزينها محليًا على جهاز الكمبيوتر الخاص بك ، فقد يكون ذلك بطيئًا بالنسبة للتشغيل الأول لأن هذه العمليات تحتاج إلى تنزيل الموارد المقابلة في دليل أولاً. دليل ذاكرة التخزين المؤقت للتنزيل الافتراضي هو ~/.cache/data_juicer . قم بتغيير موقع ذاكرة التخزين المؤقت عن طريق تعيين متغير بيئة shell ، DATA_JUICER_CACHE_HOME إلى دليل آخر ، ويمكنك أيضًا تغيير DATA_JUICER_MODELS_CACHE أو DATA_JUICER_ASSETS_CACHE بنفس الطريقة:
ملاحظة: عند استخدام المشغلين مع نماذج تابعة لجهات خارجية ، من الضروري إعلان mem_required المقابل في ملف التكوين (يمكنك الرجوع إلى الإعدادات في ملف config_all.yaml ). أثناء وقت التشغيل ، ستتحكم البيانات في عدد العمليات بناءً على توفر الذاكرة ومتطلبات الذاكرة لنماذج المشغل لتحقيق أفضل كفاءة معالجة البيانات. عند التشغيل مع بيئة 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 Cluster ، تحتاج أيضًا إلى إعداد مثيل Redis مقدمًا وتوفير host port لمثيل Redis الخاص بك بالتكوين.يمكن للمستخدمين أيضًا اختيار عدم استخدام Ray وبدلاً من ذلك تقسيم مجموعة البيانات لتشغيل مجموعة مع Slurm. في هذه الحالة ، يرجى استخدام Data-Juicer الافتراضي بدون Ray. يدعم Aliyun Pai-DLC إطار Ray ، وإطار SLURM ، وما إلى ذلك. يمكن للمستخدمين إنشاء وظائف Ray بشكل مباشر وتوظيف وظائف على مجموعة 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 لتصور مجموعة البيانات الخاصة بك في متصفحك.streamlit run app.pyconfig_all.yaml الذي يتضمن جميع عمليات العمليات والوسائط الافتراضية. تحتاج فقط إلى إزالة العمليات التي لن تستخدمها وتحسين بعض وسيطات OPS.config_all.yaml ، مستندات المرجع ، ودليل التراكم المتقدم للمطورين.python xxx.py --config configs/demo/process.yaml --language_id_score_filter.lang=enيظهر تنسيق التكوين الأساسي والتعريف أدناه.
يوفر مختبر صندوق الرمل (DJ-Sandbox) للمستخدمين أفضل الممارسات لإنتاج وصفات البيانات باستمرار. إنه يتميز بانخفاض حجم النفقات العامة ، قابلية النقل ، والتوجيه.
يتم تشغيل صندوق الرمل باستخدام الأوامر التالية افتراضيًا ، ولمزيد من المعلومات والتفاصيل ، يرجى الرجوع إلى وثائق صندوق الرمل.
python tools/sandbox_starter.py --config configs/demo/sandbox/sandbox.yamltools/preprocess بالنسبة لك للمعالجة المسبقة لهذه البيانات.data-juicer ، فيمكنك تشغيل الأوامر أو الأدوات المذكورة أعلاه باستخدام صورة 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 عبر مختلف منتجات LLM ومبادرات البحث ، بما في ذلك LLMs الصناعية من Tongyi من Alibaba Cloud ، مثل Dianjin للتحليل المالي ، و Zhiwen لمساعد القراءة ، وكذلك منصة Alibaba Cloud لـ AI (PAI). نتطلع إلى المزيد من تجربتك والاقتراحات والمناقشات الخاصة بك!
شكر Data-juicer ويشير إلى العديد من المشاريع المجتمعية ، مثل مقاوم Huggingface و Bloom و Redpajama و Pile و Alpaca-Cot و Megatron-LM و Deep-Speds و 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}
}
Sandbox-juicer Data: جناح شامل لتطوير طراز البيانات متعدد الوسائط
التآزر بين البيانات ونماذج اللغة الكبيرة متعددة الوسائط: دراسة استقصائية من منظور التطوير المشترك
IMGDIFF: تخليق بيانات متناقضة لنماذج اللغة الكبيرة
جعل خلط البيانات فعالًا: قانون التحجيم ثنائي المتغير لنموذج اللغة قبل
؟ العودة إلى الفهرس