# Nanotron

[Nanotron](https://github.com/huggingface/nanotron) هو إطار عمل للتدريب الموزّع يدعم توازي المصفوفات وتوازي الأنماط وتوازي البيانات (توازي ثلاثي الأبعاد). وقد صُمم لأعباء التدريب واسعة النطاق عبر مئات وحدات معالجة الرسوميات.

قم بتحويل أي نموذج من نماذج Transformers إلى نموذج Nanotron محسّن للتدريب المسبق باستخدام سكربت [convert_hf_to_nanotron.py](https://github.com/huggingface/nanotron/blob/main/examples/llama/convert_hf_to_nanotron.py).

```bash
torchrun --nproc_per_node=1 examples/llama/convert_hf_to_nanotron.py \
    --checkpoint_path=meta-llama/Llama-2-7b-hf \
    --save_path=./llama-7b-nanotron
```

## تكامل Transformers

1. حمّل نموذجًا مدعومًا من Transformers، مثل `Llama`، باستخدام دالة [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained). تقرأ هذه الدالة ملف `config.json` من مجلد نقطة التفتيش وتُنشئ كائن [LlamaConfig](/docs/transformers/main/ar/model_doc/llama2#transformers.LlamaConfig).
2. يُحوّل Nanotron [LlamaConfig](/docs/transformers/main/ar/model_doc/llama2#transformers.LlamaConfig) إلى صيغة الإعداد الخاصة به وينشئ نموذج Nanotron.
3. تحويل أوزان Transformers إلى Nanotron. يوجّه خرائط الأوزان كيفية ربط أسماء معاملات Nanotron بأسماء معاملات Transformers. ويشمل ذلك التعامل مع التحويلات مثل دمج إسقاطات QKV وإسقاطات gate/up.

يعتمد Nanotron أيضاً على [AutoTokenizer](/docs/transformers/main/ar/model_doc/auto#transformers.AutoTokenizer) لتحويل النص إلى معرّفات الرموز أثناء المعالجة المسبقة والتوليد.

## الموارد

- مستودع [Nanotron](https://github.com/huggingface/nanotron)
- يصف [Ultrascale Playbook](https://huggingface.co/spaces/nanotron/ultrascale-playbook) كيفية توسيع نطاق التدريب بكفاءة باستخدام Nanotron

