تخطَّ إلى المحتوى

Nanotron - إطار عمل تدريب LLM ثلاثي الأبعاد المبسط

Nanotron - إطار عمل تدريب LLM ثلاثي الأبعاد المبسط

Nanotron (من Hugging Face) هو إطار عمل بسيط لتدريب نماذج اللغة الكبيرة بتوازي ثلاثي الأبعاد — بيانات وموتر وأنابيب متوازية — مطبقة بـ Python مقروء بقصد. الهدف منه أن يكون صغيراً وقابل للاختراق بما يكفي لفهمه بالفعل، مع الاستمرار في توزيع التدريب عبر وحدات GPU العديدة. إنه خيار قوي عندما تريد تعلم أو تخصيص ميكانيكا التدريب الموزعة دون تعقيد أكبر أطر العمل.

التدريب المسبق يتطلب موارد حسابية كبيرة؛ ابدأ صغيراً. تحقق من الصحة من إعداد على نموذج صغير وزوج من وحدات GPU قبل التوسع.

التثبيت

الطريقةالأمر
من المصدرgit clone https://github.com/huggingface/nanotron && cd nanotron && pip install -e .
الانتباه الفلاشpip install flash-attn (موصى به)
المتطلباتPyTorch + وحدات GPU CUDA
التحقققم بتشغيل مثال إعداد على 1-2 GPU

توازي ثلاثي الأبعاد

البعدالانقساماتمفتاح التكوين
التوازي البيانات (DP)الدفعة عبر النسخ المتماثلةdp
توازي الموتر (TP)الطبقات عبر وحدات GPUtp
توازي خط الأنابيب (PP)النموذج إلى مراحلpp

يجب أن يساوي المنتج dp × tp × pp عدد وحدات GPU الإجمالي.

التكوين (YAML)

يتم تحديد تدريب Nanotron بواسطة ملف تكوين YAML يصف النموذج والبيانات والتوازي والمحسِّن.

parallelism:
  dp: 2
  tp: 2
  pp: 2
  pp_engine: 1f1b        # جدول خط الأنابيب

model:
  model_config:
    hidden_size: 2048
    num_hidden_layers: 24
    num_attention_heads: 16

optimizer:
  learning_rate_scheduler:
    learning_rate: 3.0e-4
  optimizer_factory:
    adam_beta1: 0.9
    adam_beta2: 0.95

tokens:
  sequence_length: 2048
  micro_batch_size: 4
  batch_accumulation_per_replica: 8

إطلاق التدريب

# عقدة واحدة وحدات GPU متعددة
torchrun --nproc_per_node=8 run_train.py --config-file config.yaml

# إنشاء إعداد بدء تشغيل
python examples/config_tiny_llama.py
المفتاحالمعنى
run_train.pyنقطة دخول التدريب الرئيسية
--config-fileتكوين التدريب YAML
pp_engineجدول خط الأنابيب (على سبيل المثال 1F1B، AFAB)
micro_batch_sizeدفعة صغيرة لكل خطوة
batch_accumulation_per_replicaتراكم التدرج

البيانات

الخيارملاحظة
مجموعات البيانات المرموزة مسبقاًأشر الإعداد إلى بيانات معاملة
مجموعات بيانات HFالبث/الأحمال عبر Hugging Face
Nanosetصيغة مجموعة البيانات الفعالة Nanotron
المرموزتعيين عبر إعداد المرموز

الفحوصات والاستئناف

الجانبالطريقة
حفظ التكرارcheckpoints.checkpoint_interval
حفظ المسارcheckpoints.checkpoints_path
استئناف--config-file + أشر إلى فحص محفوظ
متعدد الأجزاءالفحوصات هي توازي يقظة

المراقبة

الميتريكاالمعنى
الخسارة / lm_lossخسارة التدريب
الرموز/الثانيةالإنتاجية
معايرة التدرجحجم التدرج (الاستقرار)
التسجيلدمج W&B / TensorBoard

Nanotron مقابل أطر عمل التدريب الأخرى

الجانبNanotronTorchTitanMegatron-LM
الفلسفةبسيط، قابل للاختراقمرجع PyTorch-nativeغني بالميزات، توسع أقصى
التوازي3D (dp/tp/pp)4D (إضافة السياق)3D+ واسع
القراءةعالية (تعلم من ذلك)عاليةأقل (مقاعد البدلاء كبيرة)
الأفضل لـفهم/تخصيص 3Dتوسع مرجعي PyTorch الأصليتدريب توسع الحدود

الموارد