# torchtitan

[torchtitan](https://github.com/pytorch/torchtitan) هو إطار تدريب موزّع من PyTorch مخصص لنماذج اللغة الكبيرة. يدعم التوازي الكامل لتقسيم البيانات (FSDP)، وتوازي المصفوفات، وتوازي خط الأنابيب، وتوازي السياق (توازي رباعي الأبعاد). كما أن torchtitan متوافق بالكامل مع [torch.compile](../perf_torch_compile)، مما يتيح دمج الأنوية وتحسينات الرسوم البيانية التي تقلل بشكل كبير من عبء الذاكرة وتسرع عملية التدريب.

> [!NOTE]
> حالياً، يتم دعم النماذج الكثيفة فقط.

استخدم نموذجًا من Transformers مباشرةً في بنية التدريب الموزّع الخاصة بـ torchtitan.

```py
import torch
from torchtitan.config.job_config import JobConfig
from torchtitan.experiments.transformers_modeling_backend.job_config import (
    HFTransformers,
)
from torchtitan.experiments.transformers_modeling_backend.model.args import (
    TitanDenseModelArgs,
    HFTransformerModelArgs,
)
from torchtitan.experiments.transformers_modeling_backend.model.model import (
    HFTransformerModel,
)

job_config = JobConfig()

job_config.hf_transformers = HFTransformers(model="Qwen/Qwen2.5-7B")

titan_args = TitanDenseModelArgs()
model_args = HFTransformerModelArgs(titan_dense_args=titan_args).update_from_config(
    job_config
)

model = HFTransformerModel(model_args)
```

## تكامل Transformers

1. تحمّل [AutoConfig.from_pretrained()](/docs/transformers/main/ar/model_doc/auto#transformers.AutoConfig.from_pretrained) إعدادات نموذج معيّن. وتُنسخ قيم الإعدادات إلى حُجج بأسلوب torchtitan داخل `HFTransformerModelArgs`.
2. يفحص غلاف `HFTransformerModel` في torchtitan حقل `architecture` في ملف الإعداد، ثم يُنشئ ويحمّل فئة النموذج المقابلة، مثل [LlamaForCausalLM](/docs/transformers/main/ar/model_doc/llama2#transformers.LlamaForCausalLM).
3. يستخدم مسار `forward` مكوّنات Transformers الأصلية مع الاعتماد على طرق التوازي والتحسين في torchtitan. يعامل torchtitan نموذج Transformers كنموذج torchtitan دون الحاجة إلى إعادة كتابة أي شيء.

## الموارد

- مستودع [torchtitan](https://github.com/pytorch/torchtitan)

