تشغيل Llama 2 وغيرها من LLMs مفتوحة المصدر على استدلال وحدة المعالجة المركزية محليًا لمستند Q&A
دليل شرح بوضوح لتشغيل تطبيقات LLM المفتوحة المصدر الكمي على وحدات المعالجة المركزية باستخدام LLAMA 2 و C Transformers و GGML و Langchain
دليل خطوة بخطوة على نحو TOOTHDATASCIENCE :
سياق
- قام مقدمو خدمات اللغة الكبيرة الطرف الثالثة (LLM) مثل GPT4 من Openai ، بإلغاء استخدام LLM عبر مكالمات API البسيطة.
- ومع ذلك ، هناك حالات تتطلب فيها الفرق نشر النماذج ذاتية الإدارة أو الخاصة لأسباب مثل خصوصية البيانات وقواعد الإقامة.
- لقد فتح انتشار LLMs مفتوح المصدر مجموعة واسعة من الخيارات بالنسبة لنا ، وبالتالي تقليل اعتمادنا على مقدمي الخدمات الطرف الثالث.
- عندما نستضيف LLMS مفتوحة المصدر محليًا أو في السحابة ، تصبح سعة الحساب المخصصة مشكلة رئيسية. على الرغم من أن مثيلات GPU قد تبدو الخيار الواضح ، إلا أن التكاليف يمكن أن ترتفع بسهولة إلى أبعد من الميزانية.
- في هذا المشروع ، سوف نكتشف كيفية تشغيل إصدارات كمية من LLMs مفتوحة المصدر على استدلال وحدة المعالجة المركزية المحلية لاستنتاج المستند والأجوبة (Q&A).

Quickstart
- تأكد من أنك قمت بتنزيل ملف GGML الثنائي من https://huggingface.co/thebloke/llama-2-7b-chat-ggml ووضعه في
models/ المجلد - لبدء تحليل استعلامات المستخدم في التطبيق ، قم بتشغيل المحطة من دليل المشروع وتشغيل الأمر التالي:
poetry run python main.py "<user query>" - على سبيل المثال ،
poetry run python main.py "What is the minimum guarantee payable by Adidas?" - ملاحظة: حذف
poetry run مسبقًا إذا كنت لا تستخدم الشعر

أدوات
- Langchain : إطار لتطوير التطبيقات التي تعمل بنماذج اللغة
- محولات C : روابط Python لنماذج المحولات التي تم تنفيذها في C/C ++ باستخدام مكتبة GGML
- FAISS : مكتبة مفتوحة المصدر للبحث الفعال في التشابه وتجميع المتجهات الكثيفة.
- محولات الجملة (جميع minilm-L6-V2) : نموذج محول مفتوح المصدر مسبقًا لتضمين النص على مساحة متجه كثيفة 384 أبعاد لمهام مثل التجميع أو البحث الدلالي.
- LLAMA-2-7B-Chat : نموذج LAMA 2 الذي تم ضبطه مفتوح المصدر مصمم لحوار الدردشة. يستفيد من مجموعات بيانات التعليمات المتاحة للجمهور وأكثر من مليون تعليق إنساني.
- الشعر : أداة لإدارة التبعية وتغليف بيثون
الملفات والمحتوى
-
/assets : الصور ذات الصلة بالمشروع -
/config : ملفات التكوين لتطبيق LLM -
/data : مجموعة البيانات المستخدمة لهذا المشروع (أي ، Manchester United FC 2022 التقرير السنوي - وثيقة PDF 177 صفحة) -
/models : ملف ثنائي لنموذج LLM الكمي GGML (IE ، LLAMA-2-7B-Chat) -
/src : رموز Python للمكونات الرئيسية لتطبيق LLM ، وهي llm.py و utils.py و prompts.py -
/vectorstore : متجر Vactor Faiss للوثائق -
db_build.py : برنامج Python Script to Engesting Tet وإنشاء متجر Vactor Vector -
main.py : البرنامج النصي الرئيسي Python لإطلاق التطبيق ولجرير استعلام المستخدم عبر سطر الأوامر -
pyproject.toml : ملف toml لتحديد إصدارات التبعيات المستخدمة (الشعر) -
requirements.txt : قائمة التبعيات بيثون (والنسخة)
مراجع
- https://github.com/marella/ctransformers
- https://huggingface.co/TheBloke
- https://huggingface.co/thebloke/llama-2-7b-chat-ggml
- https://python.langchain.com/en/latest/integrations/ctransformers.html
- https://python.langchain.com/en/latest/modules/models/llms/integrations/ctransformers.html
- https://python.langchain.com/docs/ecosystem/integrations/ctransformers
- https://ggml.ai
- https://github.com/rustformers/llm/blob/main/crates/ggml/readme.md
- https://www.mdpi.com/2189676