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

TorchTitan - منصة تدريب LLM الأصلية PyTorch

TorchTitan - منصة تدريب LLM الأصلية PyTorch

TorchTitan هي منصة مفتوحة المصدر أصلية PyTorch لتدريب نماذج المولد (LLM) على نطاق واسع. إنها تطبيق مرجعي نظيف لأحدث تقنيات التدريب الموزعة في PyTorch، والذي يكون التوازي رباعي الأبعاد — بيانات وموتر وخط أنابيب وتوازي السياق — بطريقة معيارية، على قمة FSDP2 و torch.compile والفحص الموزع، مع التوسع المرن. إنها نقطة البداية المفضلة للفرق التي تريد تدريب نماذج باستخدام توسع PyTorch الأصلي بدلاً من مكدس تابع لطرف ثالث.

التدريب الموزع كثيف الاستهلاك للموارد. تحقق من الصحة من الإعدادات على نموذج صغير/مقياس قبل الالتزام بتشغيل متعدد العقد الكبير.

التثبيت

الطريقةالأمر
من المصدرgit clone https://github.com/pytorch/torchtitan && cd torchtitan && pip install -e .
المتطلباتPyTorch حديث (غالباً ما يوصى به)، وحدات GPU CUDA
مجموعات البياناتيستخدم مجموعات بيانات HF / المرموزات
التحقققم بتشغيل إعدادات تصحيح على 1 GPU

أبعاد التوازي (4D)

البعدالانقسامات
التوازي البيانات (FSDP2)الدفعة، معاملات التجزئة/محسِّن/الأنوية
توازي الموترالطبقات الفردية عبر وحدات GPU
توازي خط الأنابيبالنموذج إلى مراحل عبر وحدات GPU
توازي السياقتسلسلات طويلة عبر وحدات GPU

هذه تتكون: على سبيل المثال dp × tp × pp × cp يرسم نموذج على شبكة GPU كبيرة.

التكوين

يتم قيادة TorchTitan بواسطة ملفات تكوين TOML بالإضافة إلى تجاوزات سطر الأوامر.

# قم بتشغيل التدريب مع إعداد (متعدد GPU عبر torchrun)
CONFIG_FILE=./train_configs/llama3_8b.toml ./run_train.sh
قسم التكوينالتحكم
[model]الهندسة المعمارية والحجم والنكهة
[training]حجم الدفعة والخطوات وطول المتسلسلة ومعدل التعلم
[parallelism]data_parallel_shard_degree، tensor_parallel_degree، pipeline_parallel_degree، context_parallel_degree
[optimizer]المحسِّن + المعاملات الفائقة
[checkpoint]تكرار/مسارات الفحص الموزعة
[activation_checkpoint]سياسة إعادة الحساب

الميزات الرئيسية

الميزةالفائدة
FSDP2توازي البيانات المرن الحديث
torch.compileتجميع الرسم البياني للسرعة
الفحص الموزع غير المتزامناحفظ/استئنف الأشواط الضخمة بكفاءة
Float8 / دقة منخفضةتدريب أسرع على الأجهزة المدعومة
التوسع المرنالتكيف مع توفر GPU المتغير
تهيئة الجهاز الوصفيبناء نماذج ضخمة بدون OOM عند التهيئة

إطلاق متعدد العقد

# torchrun عبر العقد (مفاهيمي)
torchrun --nnodes=4 --nproc_per_node=8 \
  --rdzv_backend=c10d --rdzv_endpoint=$MASTER:29500 \
  -m torchtitan.train --job.config_file llama3_70b.toml
تجاوزمثال
درجات التوازي--parallelism.tensor_parallel_degree 8
الخطوات--training.steps 10000
طول المتسلسلة--training.seq_len 8192
ترجمة--training.compile

المراقبة والفحوصات

الجانبالطريقة
التسجيلدمج TensorBoard / W&B
الميتريكاالخسارة والرموز/الثانية وMFU (استخدام FLOPs النموذج)
الفحوصاتفحص نقطة موزعة (DCP) حفظ/تحميل
استئنافوجه الإعداد في خطوة فحص

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

الجانبTorchTitanMegatron-LMNanotron
الأصلفريق PyTorchNVIDIAHugging Face
النمطPyTorch-native، قابل للتكوينغني بالميزات، ناضجبسيط 3D
التوازي4D (dp/tp/pp/cp)3D+ (واسع)3D
الأفضل لـتوسع مرجعي PyTorch أصليتوسع MoE/كثيف أقصىتدريب 3D صغير وقابل للاختراق

الموارد