يعد مستودع "Llama-Recipes" رفيقًا لنماذج Meta Llama. نحن ندعم أحدث إصدار ، Llama 3.2 Vision و Llama 3.2 Text ، في هذا المستودع. يحتوي هذا المستودع على مثال على البرامج النصية وأجهزة الكمبيوتر المحمولة للبدء في النماذج في مجموعة متنوعة من حالات الاستخدام ، بما في ذلك التأكيد على التكيف مع المجال وبناء تطبيقات LLM مع LLAMA وغيرها من الأدوات في النظام البيئي LLM. تستخدم الأمثلة هنا Llama محليًا ، في السحابة ، والرسم.
نصيحة
ابدأ مع Llama 3.2 مع هذه الوصفات الجديدة:
ملحوظة
يتبع Llama 3.2 نفس القالب المذهل مثل Llama 3.1 ، مع رمز خاص جديد <|image|> يمثل صورة الإدخال للنماذج متعددة الوسائط.
يمكن العثور على مزيد من التفاصيل حول القوالب المطالبة بمنطق الصور ، ومكتب الأدوات ومترجم الشفرة على موقع الوثائق.
recipes/src/ستجلب لك هذه التعليمات نسخة من المشروع وتشغيلها على جهازك المحلي لأغراض التطوير والاختبار. راجع نشر ملاحظات حول كيفية نشر المشروع على نظام مباشر.
إذا كنت ترغب في استخدام Lightlies Pytorch بدلاً من الإصدار المستقر ، فانتقل إلى هذا الدليل لاسترداد المعلمة --extra-index-url URL لأوامر pip install على النظام الأساسي الخاص بك.
يوفر Llama-Recipes توزيع PIP لسهولة التثبيت والاستخدام في مشاريع أخرى. بدلاً من ذلك ، يمكن تثبيته من المصدر.
ملحوظة
تأكد من استخدام إصدار CUDA الصحيح (من nvidia-smi ) عند تثبيت عجلات Pytorch. نحن هنا نستخدم 11.8 كـ cu118 . تعمل وحدات معالجة الرسومات H100 بشكل أفضل مع CUDA> 12.0
pip install llama-recipes
يوفر Llama-Recipes تثبيت الحزم الاختيارية. هناك ثلاث مجموعات تبعية اختيارية. لتشغيل اختبارات الوحدة ، يمكننا تثبيت التبعيات المطلوبة بـ:
pip install llama-recipes[tests]
للحصول على مثال VLLM ، نحتاج إلى متطلبات إضافية يمكن تثبيتها بـ:
pip install llama-recipes[vllm]
لاستخدام مدقق السلامة المواضيع الحساسة مع:
pip install llama-recipes[auditnlg]
بعض الوصفات تتطلب وجود langchain. لتثبيت الحزم اتبع وصف الوصفة أو التثبيت مع:
pip install llama-recipes[langchain]
يمكن أيضًا دمج التبعيات الاختيارية مع [Option1 ، Option2].
للتثبيت من المصدر على سبيل المثال للتطوير ، استخدم هذه الأوامر. نحن نستخدم Hatchling كواجهة خلفية للبناء والتي تتطلب PIP محدثة بالإضافة إلى حزمة setuptools.
git clone [email protected]:meta-llama/llama-recipes.git
cd llama-recipes
pip install -U pip setuptools
pip install -e .
للتنمية والمساهمة في عمليات إعادة الالتقاءات llama ، يرجى تثبيت جميع التبعيات الاختيارية:
git clone [email protected]:meta-llama/llama-recipes.git
cd llama-recipes
pip install -U pip setuptools
pip install -e .[tests,auditnlg,vllm]
يمكنك العثور على نماذج Llama على Hugging Face Hub هنا ، حيث يتم تحويل النماذج التي تحتوي على hf في الاسم إلى نقاط تفتيش الوجه المعانقة بحيث لا توجد حاجة إلى مزيد من التحويل . خطوة التحويل أدناه هي فقط للأوزان النموذجية الأصلية من META التي يتم استضافتها على Huging Face Model Hub أيضًا.
إذا كان لديك نقاط التفتيش النموذجية التي تم تنزيلها من موقع META ، فيمكنك تحويله إلى تنسيق وجه المعانقة مع:
# # Install Hugging Face Transformers from source
pip freeze | grep transformers # # verify it is version 4.45.0 or higher
git clone [email protected]:huggingface/transformers.git
cd transformers
pip install protobuf
python src/transformers/models/llama/convert_llama_weights_to_hf.py
--input_dir /path/to/downloaded/llama/weights --model_size 3B --output_dir /output/path يتم تنظيم معظم الكود الذي يتناول استخدام Llama عبر مجلدين رئيسيين: recipes/ و src/ .
recipes/يحتوي على أمثلة منظمة في المجلدات حسب الموضوع:
| المجلد الفرعي | وصف |
|---|---|
| Quickstart | "Hello World" لاستخدام Llama ، ابدأ هنا إذا كنت جديدًا في استخدام Llama. |
| use_cases | البرامج النصية التي توضح التطبيقات الشائعة لـ Meta llama3 |
| 3p_integrations | المجلد المملوك للشريك الذي يعرض التطبيقات الشائعة لـ Meta llama3 |
| مسؤول | البرامج النصية لاستخدام Purplellama لحماية مخرجات النموذج |
| تجريبي | تطبيقات meta llama لتقنيات LLM التجريبية |
src/يحتوي على وحدات تدعم وصفات المثال:
| المجلد الفرعي | وصف |
|---|---|
| التكوينات | يحتوي على ملفات التكوين لطرق PEFT ، FSDP ، مجموعات البيانات ، أوزان وتجربة التجربة. |
| مجموعات البيانات | يحتوي على البرامج النصية الفردية لكل مجموعة بيانات لتنزيل ومعالجة. ملحوظة |
| الاستنتاج | يتضمن وحدات للاستدلال على النماذج التي تم ضبطها. |
| model_checkpointing | يحتوي على معالجات نقاط التفتيش FSDP. |
| السياسات | يحتوي على البرامج النصية FSDP لتوفير سياسات مختلفة ، مثل الدقة المختلطة ، وسياسة التفاف المحولات وتفعيل التنشيط مع أي مُحسّن دقيق (يستخدم لتشغيل FSDP مع وضع BF16 النقي). |
| utils | ملفات الأداة المساعدة لـ: - train_utils.py يوفر حلقة التدريب/الإيفاء والمزيد من شركات القطار.- dataset_utils.py للحصول على مجموعات بيانات معالجة مسبقًا.- config_utils.py لتجاوز التكوينات المستلمة من CLI.- fsdp_utils.py يوفر سياسة التغليف FSDP لطرق PEFT.- memory_utils.py Context Manager لتتبع إحصائيات الذاكرة المختلفة في حلقة القطار. |
تدعم الوصفات والوحدات النمطية في هذا المستودع الميزات التالية:
| ميزة | |
|---|---|
| دعم HF للاستدلال | ✅ |
| دعم HF للاشاحة | ✅ |
| PEFT | ✅ |
| التهيئة المؤجلة (meta init) | ✅ |
| وضع وحدة المعالجة المركزية منخفضة ل GPU متعددة | ✅ |
| دقة مختلطة | ✅ |
| حجم العقدة المفردة | ✅ |
| فلاش الاهتمام | ✅ |
| تنشيط checkpointing FSDP | ✅ |
| البيانات المختلطة المتوازية (HSDP) | ✅ |
| تعبئة مجموعات البيانات وحشوها | ✅ |
| محسن BF16 (BF16 النقي) | ✅ |
| التنميط وتتبع MFU | ✅ |
| تراكم التدرج | ✅ |
| تفريغ وحدة المعالجة المركزية | ✅ |
| تحويل نقطة تفتيش FSDP إلى HF للاستدلال | ✅ |
| W & B التجربة تعقب | ✅ |
يرجى قراءة المساهمة.
راجع ملف الترخيص الخاص بـ Meta Llama 3.2 هنا وسياسة الاستخدام المقبولة هنا
راجع ملف الترخيص الخاص بـ Meta Llama 3.1 هنا وسياسة الاستخدام المقبولة هنا
راجع ملف الترخيص لـ Meta Llama 3 هنا وسياسة الاستخدام المقبولة هنا
راجع ملف الترخيص لـ Meta Llama 2 هنا وسياسة الاستخدام المقبولة هنا