إطار عمل مفتوح المصدر معجل بواسطة GPU لمعالجة بيانات نموذج الذكاء الاصطناعي التوليدي الفعال ؟
NeMo Curator هي مكتبة Python مصممة خصيصًا لإعداد مجموعة بيانات سريعة وقابلة للتطوير وتنظيمها لحالات استخدام الذكاء الاصطناعي التوليدي، مثل التدريب المسبق لنموذج اللغة الأساسية، والتدريب على نموذج تحويل النص إلى صورة، والتدريب المسبق على التكيف مع المجال (DAPT)، والضبط الدقيق الخاضع للإشراف (SFT). ) والضبط الدقيق بكفاءة المعلمة (PEFT). فهو يعمل على تسريع معالجة البيانات بشكل كبير من خلال الاستفادة من وحدات معالجة الرسومات مع Dask وRAPIDS، مما يؤدي إلى توفير كبير في الوقت. توفر المكتبة واجهة معيارية وقابلة للتخصيص، مما يبسط توسيع خطوط الأنابيب ويسرع تقارب النماذج من خلال إعداد الرموز المميزة عالية الجودة.
يوفر NeMo Curator مجموعة من وحدات تنظيم البيانات القابلة للتطوير لتنظيم النصوص والصور.
تتمتع جميع خطوط الأنابيب النصية لدينا بدعم رائع متعدد اللغات.
تحميل واستخراج
التطبيقات الافتراضية لمصادر Common Crawl وWikipedia وArXiv
يمكنك التخصيص بسهولة والتوسع في المصادر الأخرى
تحديد اللغة
إعادة تنسيق يونيكود
التصفية الإرشادية
تصفية المصنف
fastText
نماذج GPU-Accelerated: المجال والجودة وتصنيف الأمان
إلغاء البيانات المكررة من خلال GPU
الإلغاء الدقيق للتكرار
إلغاء البيانات المكررة بشكل غامض عبر التجزئة الحساسة للمنطقة المحلية MinHash
إلغاء البيانات المكررة الدلالية
تطهير المهام النهائية
تنقيح معلومات التعريف الشخصية (PII).
إنشاء التضمين
تصفية المصنف
التصنيف الجمالي و NSFW
إلغاء البيانات المكررة GPU
الدلالي
توفر هذه الوحدات المرونة وتسمح بإعادة الترتيب، مع استثناءات قليلة فقط. يتم توسيع جميع الوحدات تلقائيًا إلى عقد متعددة لزيادة الإنتاجية.
التوثيق
أمثلة
دروس
مشاركات المدونة
تنظيم مجموعات بيانات بقيمة تريليون رمز: تقديم برنامج NVIDIA NeMo Data Curator
قم بتوسيع نطاق مجموعات البيانات عالية الجودة وتنظيمها لتدريب LLM مع NVIDIA NeMo Curator
تنظيم مجموعات البيانات المخصصة لتدريب LLM مع NVIDIA NeMo Curator
تنظيم مجموعات البيانات المخصصة للضبط الدقيق الفعال لمعلمات LLM باستخدام NVIDIA NeMo Curator
تبسيط معالجة البيانات للتدريب المسبق على التكيف مع المجال باستخدام NVIDIA NeMo Curator
يشرح هذا القسم كيفية تثبيت NeMo Curator واستخدام مكتبة Python ووحدات Python والبرامج النصية لواجهة سطر الأوامر (CLI). ويتضمن أيضًا قائمة من البرامج التعليمية لمساعدتك على البدء فورًا. وأخيرًا، يشرح هذا القسم كيفية استخدام NeMo Framework Launcher كطريقة بديلة للتواصل مع NeMo Curator.
قبل تثبيت NeMo Curator، تأكد من استيفاء المتطلبات التالية:
بايثون 3.10
أوبونتو 22.04/20.04
وحدة معالجة الرسومات NVIDIA (اختياري)
Volta™ أو أعلى (قدرة حسابية 7.0+)
كودا 12 (أو أعلى)
يمكنك الحصول على NeMo-Curator بثلاث طرق.
بيبي
مصدر
حاوية إطار عمل NeMo
نقطة تثبيت سايثون تثبيت النقطة --extra-index-url https://pypi.nvidia.com nemo-curator[all]
استنساخ بوابة https://github.com/NVIDIA/NeMo-Curator.git نقطة تثبيت سايثون تثبيت النقطة --extra-index-url https://pypi.nvidia.com "./NeMo-Curator[all]"
يأتي الإصدار الأخير من NeMo Curator مثبتًا مسبقًا في NeMo Framework Container. إذا كنت تريد الالتزام الأخير داخل الحاوية، فيمكنك إعادة تثبيت NeMo Curator باستخدام:
نقطة إلغاء تثبيت nemo-curator rm -r /opt/NeMo-Curator استنساخ بوابة https://github.com/NVIDIA/NeMo-Curator.git /opt/NeMo-Curator تثبيت النقطة --extra-index-url https://pypi.nvidia.com "/opt/NeMo-Curator[all]"
يحتوي NeMo Curator على مجموعة من الإضافات التي يمكنك استخدامها لتثبيت الوحدات الضرورية فقط لأعباء العمل لديك. تتوفر هذه الإضافات لجميع طرق التثبيت المتوفرة.
pip install nemo-curator # تثبيت وحدات معالجة النصوص لوحدة المعالجة المركزية فقطspip install --extra-index-url https://pypi.nvidia.com nemo-curator[cuda12x] # تثبيت وحدات معالجة النصوص CPU + GPUspip install --extra-index -url https://pypi.nvidia.com nemo-curator[image] # تثبيت وحدة المعالجة المركزية + وحدة معالجة النصوص والصور GPUspip install --extra-index-url https://pypi.nvidia.com nemo-curator[all] # تثبيت كل ما سبق
يمكنك أيضًا تثبيت NeMo Curator باستخدام RAPIDS Nightly Builds. للقيام بذلك، يمكنك تعيين متغير البيئة RAPIDS_NIGHTLY=1
.
# التثبيت من pypiRAPIDS_NIGHTLY=تثبيت نقطة واحدة --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple "nemo-curator[cuda12x]"# التثبيت من المصدرRAPIDS_NIGHTLY=تثبيت نقطة واحدة - -extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple ".[cuda12x]"
عندما يتم تعيين المتغير RAPIDS_NIGHTLY
على 0 (وهو الإعداد الافتراضي)، فسوف يستخدم الإصدار الثابت من RAPIDS.
يوضح المقتطف التالي كيفية إنشاء مسار صغير لتنظيم البيانات يقوم بتنزيل مجموعة فرعية صغيرة من مجموعة بيانات Common Crawl وتنظيمها.
# Download your datasetdataset = download_common_crawl("/datasets/common_crawl/"، "2021-04"، "2021-10"، url_limit=10)# إنشاء خط الأنابيب الخاص بك = Sequential([ # Fix unicode Modify(UnicodeReformatter()), # تجاهل السجلات القصيرة ScoreFilter(WordCountFilter(min_words=80))), # تجاهل السجلات منخفضة الجودة ScoreFilter(FastTextQualityFilter(model_path="model.bin")), # تجاهل السجلات من مقاييس التقييم لمنع تسرب مجموعة الاختبار. مهمة إزالة التلوث([Winogrande(), Squad(), TriviaQA()]) ])# تنفيذ المسار على datasetcurated_dataset = curation_pipeline(dataset)
للبدء في استخدام NeMo Curator، يمكنك متابعة البرامج التعليمية المتوفرة هنا. تشمل هذه الدروس ما يلي:
tinystories
الذي يركز على تنظيم البيانات لتدريب LLMs من الصفر.
peft-curation
الذي يركز على تنظيم البيانات لحالات استخدام الضبط الدقيق (PEFT) بكفاءة معلمات LLM.
distributed_data_classification
الذي يركز على استخدام مصنفات الجودة والمجال للمساعدة في شرح البيانات.
single_node_tutorial
الذي يوضح خط أنابيب لتنظيم البيانات من طرف إلى طرف لتنظيم بيانات ويكيبيديا باللغة التايلاندية.
image-curation
التي تستكشف وحدات معالجة الصور القابلة للتطوير.
يوفر قسم NeMo Curator في دليل مستخدم NeMo Framework معلومات متعمقة حول كيفية عمل وحدات Python. يوفر دليل الأمثلة الموجود في مستودع GitHub نصوصًا برمجية تعرض هذه الوحدات.
يقدم NeMo Curator أيضًا نصوص CLI لتستخدمها. ترتبط البرامج النصية الموجودة في nemo_curator/scripts
بشكل وثيق بوحدات Python المتوفرة. ارجع إلى دليل مستخدم NeMo Framework لمزيد من المعلومات حول وحدات Python والبرامج النصية.
كطريقة بديلة للتواصل مع NeMo Curator، يمكنك استخدام NeMo Framework Launcher. يمكّنك المشغل من تكوين المعلمات والمجموعة بسهولة. يمكنه أيضًا إنشاء البرامج النصية الدفعية Slurm تلقائيًا والتي تلتف حول البرامج النصية لـ CLI المطلوبة لتشغيل خط الأنابيب الخاص بك.
بالإضافة إلى ذلك، تتوفر طرق أخرى لتشغيل NeMo Curator على Slurm. على سبيل المثال، راجع نماذج البرامج النصية الموجودة في examples/slurm
للحصول على معلومات حول كيفية تشغيل NeMo Curator على Slurm بدون NeMo Framework Launcher.
تم تصميم الوحدات داخل NeMo Curator بشكل أساسي لتنظيم مستندات عالية الجودة من لقطات Common Crawl بطريقة قابلة للتطوير. لتقييم جودة مستندات Common Crawl المنسقة، أجرينا سلسلة من تجارب الاجتثاث. في هذه التجارب، قمنا بتدريب نموذج على نمط GPT ذو معلمة 357 مليونًا باستخدام مجموعات البيانات التي تم إنشاؤها في مراحل مختلفة من خط أنابيب معالجة البيانات لدينا، والذي تم تنفيذه في NeMo Curator.
يوضح الشكل التالي أن استخدام وحدات تنظيم البيانات المختلفة التي تم تنفيذها في NeMo Curator أدى إلى تحسين أداء المهام النهائية للنموذج.
فيما يتعلق بقابلية التوسع وأداء الحوسبة، مكننا استخدام مزيج من RAPIDS وDask fuzzy deduplication من إلغاء تكرار مجموعة بيانات Red Pajama ذات 1.1 تريليون رمز في 1.8 ساعة باستخدام 64 وحدة معالجة رسوميات NVIDIA A100 Tensor Core.
بالإضافة إلى ذلك، باستخدام الوحدات المستندة إلى وحدة المعالجة المركزية، يوضح الجدول التالي الوقت المطلوب وتقليل حجم البيانات الناتج لكل خطوة معالجة، لقطة الزحف الشائعة من نوفمبر/ديسمبر 2020 باستخدام 30 عقدة لوحدة المعالجة المركزية (مع أجهزة مشابهة لـ c5.24xlarge
Amazon AWS C5 مثال).
مجموعة البيانات | تحميل واستخراج النص | تنظيف النص | تصفية الجودة | |||
---|---|---|---|---|---|---|
وقت | حجم الإخراج | وقت | حجم الإخراج | وقت | حجم الإخراج | |
الزحف المشترك 2020-50 | 36 ساعة | 2.8 تيرابايت | 1 ساعة | 2.8 تيرابايت | 0.2 ساعة | 0.52 تيرابايت |
نحن نرحب بمساهمات المجتمع! يرجى الرجوع إلى CONTRIBUTING.md لهذه العملية.