ggml-org/llama.cppView GitHub Homepage for Latest Official Releases
llama.cpp هو محرك استنتاج نموذج LLaMA مكتوب بلغة C/C++ خالصة، ومصمم لتحقيق أداء عالٍ واستهلاك منخفض للموارد.
MITC++llama.cppggml-org 84.2k Last Updated: August 07, 2025
llama.cpp
عنوان المشروع: https://github.com/ggml-org/llama.cpp
مقدمة
llama.cpp
هو محرك استدلال لنماذج LLaMA (Large Language Model Meta AI) يهدف إلى أن يكون مكتوبًا بالكامل بلغة C/C++. يهدف إلى تحقيق أداء عالٍ، واستهلاك منخفض للموارد، وسهولة النشر على مختلف منصات الأجهزة، بما في ذلك وحدات المعالجة المركزية (CPU) ووحدات معالجة الرسوميات (GPU).
أهداف المشروع وخصائصه
- تنفيذ نقي بلغة C/C++: يتجنب الاعتماد على وقت تشغيل Python، مما يقلل من تعقيد النشر ويحسن الأداء.
- أداء عالٍ: من خلال تحسين الخوارزميات وهياكل البيانات، يتم الاستفادة الكاملة من موارد الأجهزة لتحقيق استدلال سريع.
- استهلاك منخفض للموارد: تم التحسين للأجهزة ذات الذاكرة المحدودة وموارد الحوسبة، مما يتيح تشغيلها على الأجهزة المحمولة والأنظمة المدمجة وغيرها.
- عبر الأنظمة الأساسية: يدعم العديد من أنظمة التشغيل وهياكل الأجهزة، بما في ذلك x86 و ARM و macOS و Linux و Windows وما إلى ذلك.
- سهولة الاستخدام: يوفر واجهات برمجة تطبيقات (APIs) بسيطة وأمثلة للتعليمات البرمجية، مما يسهل على المطورين دمجها في مشاريعهم الخاصة.
- مجتمع نشط: يتمتع بقاعدة مستخدمين كبيرة ومجتمع مطورين نشط، يعمل باستمرار على تحسين المشروع وإكماله.
- يدعم طرق التكميم المتعددة: يدعم طرق التكميم المتعددة مثل 4 بت و 5 بت و 8 بت، مما يقلل بشكل أكبر من حجم النموذج واستهلاك الذاكرة، مع الحفاظ على أداء النموذج قدر الإمكان.
- يدعم Metal API (macOS): يستفيد بشكل كامل من إطار عمل Metal لأجهزة Apple لتحقيق تسريع GPU.
- يدعم CUDA (Nvidia): يستخدم إطار عمل CUDA لتحقيق التسريع على وحدات معالجة الرسوميات Nvidia.
- يدعم OpenCL: يستخدم إطار عمل OpenCL لتحقيق التسريع على وحدات معالجة الرسوميات AMD.
- تحديث مستمر: يتم صيانة المشروع بنشاط، مع إضافة ميزات جديدة وتحسين الأداء باستمرار.
الوظائف الرئيسية
- تحميل النموذج: يدعم تحميل ملفات أوزان نموذج LLaMA.
- المعالجة المسبقة للنص: يوفر وظائف المعالجة المسبقة مثل تجزئة النص والترميز.
- الاستدلال: ينفذ عملية استدلال نموذج LLaMA، ويولد النص.
- التكميم: يدعم تكميم النموذج لتقليل حجم النموذج واستهلاك الذاكرة.
- API: يوفر واجهة برمجة تطبيقات C/C++ لتسهيل دمج المطورين في مشاريعهم الخاصة.
- أمثلة: يوفر أمثلة للتعليمات البرمجية توضح كيفية استخدام
llama.cpp
للاستدلال. - أداة سطر الأوامر: يوفر أداة سطر الأوامر لتسهيل الاختبار والتصحيح للمستخدمين.
سيناريوهات الاستخدام
- النشر المحلي: نشر نموذج LLaMA على جهاز كمبيوتر محلي أو خادم لتحقيق الاستدلال دون اتصال بالإنترنت.
- الأجهزة المحمولة: تشغيل نموذج LLaMA على الأجهزة المحمولة لتحقيق المساعدين الأذكياء وتوليد النصوص وغيرها من الوظائف.
- الأنظمة المدمجة: تشغيل نموذج LLaMA في الأنظمة المدمجة لتحقيق المنازل الذكية والروبوتات الذكية وغيرها من الوظائف.
- البحث: يستخدم للبحث في أداء نموذج LLaMA وطرق التحسين وما إلى ذلك.
المزايا
- الأداء: تنفيذ نقي بلغة C/C++، أداء أفضل من تنفيذ Python.
- استهلاك الموارد: تم التحسين للأجهزة ذات الموارد المنخفضة، واستهلاك الذاكرة صغير.
- سهولة النشر: لا يتطلب وقت تشغيل Python، النشر بسيط.
- المرونة: يدعم العديد من منصات الأجهزة وأنظمة التشغيل.
- دعم المجتمع: يوفر المجتمع النشط الدعم الفني والمساعدة.
العيوب
- صعوبة التطوير: صعوبة تطوير C/C++ أعلى نسبيًا.
- النظام البيئي: بالمقارنة مع النظام البيئي Python، فإن النظام البيئي C/C++ أصغر نسبيًا.
- تنسيق النموذج: يجب تحويل نموذج LLaMA إلى تنسيق مدعوم بواسطة
llama.cpp
.
كيف تبدأ
- استنساخ المستودع:
git clone https://github.com/ggml-org/llama.cpp
- تثبيت التبعيات: بناءً على نظام التشغيل ومنصة الأجهزة الخاصة بك، قم بتثبيت التبعيات الضرورية.
- التحويل البرمجي: استخدم الأمر
make
لتحويل المشروع برمجياً. - تنزيل النموذج: قم بتنزيل ملفات أوزان نموذج LLaMA وقم بتحويلها إلى تنسيق مدعوم بواسطة
llama.cpp
. - تشغيل مثال: قم بتشغيل مثال التعليمات البرمجية لتجربة عملية استدلال نموذج LLaMA.
ملخص
llama.cpp
هو مشروع واعد للغاية، فهو يوفر إمكانية نشر نموذج LLaMA على مختلف منصات الأجهزة. إذا كنت بحاجة إلى تشغيل نموذج LLaMA محليًا أو على جهاز محدود الموارد، فإن llama.cpp
هو خيار جيد.