Home
Login

llama.cpp هو محرك استنتاج نموذج LLaMA مكتوب بلغة C/C++ خالصة، ومصمم لتحقيق أداء عالٍ واستهلاك منخفض للموارد.

MITC++ 81.7kggml-org Last Updated: 2025-06-14

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.

كيف تبدأ

  1. استنساخ المستودع: git clone https://github.com/ggml-org/llama.cpp
  2. تثبيت التبعيات: بناءً على نظام التشغيل ومنصة الأجهزة الخاصة بك، قم بتثبيت التبعيات الضرورية.
  3. التحويل البرمجي: استخدم الأمر make لتحويل المشروع برمجياً.
  4. تنزيل النموذج: قم بتنزيل ملفات أوزان نموذج LLaMA وقم بتحويلها إلى تنسيق مدعوم بواسطة llama.cpp.
  5. تشغيل مثال: قم بتشغيل مثال التعليمات البرمجية لتجربة عملية استدلال نموذج LLaMA.

ملخص

llama.cpp هو مشروع واعد للغاية، فهو يوفر إمكانية نشر نموذج LLaMA على مختلف منصات الأجهزة. إذا كنت بحاجة إلى تشغيل نموذج LLaMA محليًا أو على جهاز محدود الموارد، فإن llama.cpp هو خيار جيد.

للحصول على جميع التفاصيل، يرجى الرجوع إلى الموقع الرسمي (https://github.com/ggml-org/llama.cpp)