منصة الذكاء الاصطناعي التوليدية P2P
هناك الكثير من أجهزة الكمبيوتر الشخصية والمعامل المنزلية التي تحتوي على الكثير من الحوسبة التي تظل خاملة. يهدف هذا المشروع إلى إنشاء سوق للأشخاص الذين لديهم أجهزة كمبيوتر احتياطية والأشخاص الذين يحتاجون إلى أجهزة كمبيوتر. لاحظ أن هذا ليس سوقًا ماليًا - بل المقصود منه أن يكون منفعة عامة. لا أحد يستطيع أن يخمن ما إذا كان سينجح، ولكنني سأتبرع بكل ما أستطيع حسابه في هذه الأثناء بمجرد تشغيله.
إنشاء بيئة افتراضية:
$ python -m venv env
اعتمادًا على البيئة لديك، قد تحتاج إلى استبدال python
في الأمر أعلاه بـ python3
.
في التوزيعات المستندة إلى دبيان، قد تحتاج أيضًا إلى تثبيت venv أولاً، إذا لم يكن مثبتًا بالفعل:
apt install python3.12-venv
تفعيل البيئة الافتراضية:
source env/bin/activate
. e nv S cripts a ctivate
إذا لم يعمل هذا الأمر (على سبيل المثال، Activate.ps1 cannot be loaded because running scripts is disabled on this system
)، فقد يتعين عليك تشغيل الأمر التالي في جلسة PowerShell للمسؤول:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
ربما تفتقد بعض تبعيات CMAKE
على دبيان، يمكنك تشغيل ما يلي
sudo apt-get install build-essential cmake
TODO: تعليمات لأنظمة تشغيل شائعة أخرى
ثم قم بتشغيل:
pip install -r requirements.txt
إذا كنت تريد أيضًا استخدام وحدة معالجة الرسومات الخاصة بك (بدلاً من وحدة المعالجة المركزية فقط)، فاتبع هذه التعليمات الخاصة بالنظام الأساسي.
هذا هو المورد الذي استخدمته لتشغيل الأشياء أخيرًا: https://medium.com/@piyushbatra1999/installing-llama-cpp-python-with-nvidia-gpu-acceleration-on-windows-a-short-guide-0dfac475002d
تلخيص:
المتطلبات الأساسية
يجب تنفيذ الخطوات التالية في نفس البيئة الافتراضية التي قمت بإعدادها أعلاه. ستشاهد شيئًا مثل (env) في أسفل اليسار في جهازك الطرفي (قد لا يكون صحيحًا على جميع الأنظمة الأساسية في جميع المحطات الطرفية).
سيحل هذا محل llama-cpp-python الذي قمت بتثبيته عبر pip install -r requirements.txt
وسيوجهه لاستخدام cuBLAS.
إذا كنت تستخدم موجه الأوامر
set CMAKE_ARGS=-DLLAMA_CUBLAS=on
set FORCE_CMAKE=1
pip install llama-cpp-python --force-reinstall --upgrade --no-cache-dir --verbose
إذا كنت تستخدم بوويرشيل
$env:CMAKE_ARGS = "-DLLAMA_CUBLAS=on"
$env:FORCE_CMAKE=1
pip install llama-cpp-python --force-reinstall --upgrade --no-cache-dir --verbose
عند تشغيل server.py
بعد ذلك، سترى BLAS = 1
في مجموعة من الأسطر التي تبدو كالتالي:
AVX = 1 | AVX_VNNI = 0 | AVX2 = 1 | AVX512 = 0 | AVX512_VBMI = 0 | AVX512_VNNI = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | SSSE3 = 0 | VSX = 0 |
يشير هذا إلى أن server.py
يمكنه الوصول إلى موارد GPU الخاصة بك بشكل صحيح.
تتم تهيئة llama_cpp_python على النحو التالي:
llm = Llama (
model_path = model_path ,
n_gpu_layers = - 1 ,
n_ctx = 8192 ,
chat_format = "llama-3"
)
يوجه n_gpu_layers
اللاما لاستخدام أكبر قدر ممكن من موارد GPU الخاصة بك.
المهام
المهام
ستحتاج إلى طريقة للتبديل بين علامات التبويب الطرفية (مثل علامات التبويب الطرفية tmux وVS Code).
قم بتشغيل التتابع الذي يعمل على http://localhost:5000:
python relay.py
ثم، في علامة تبويب طرفية منفصلة، قم بتشغيل الخادم، الذي يعمل على http://localhost:3000:
python server.py
ملاحظة: عند التشغيل لأول مرة، أو إذا لم يكن ملف النموذج موجودًا (حاليًا فقط Llama 7B Chat GGUF بواسطة TheBloke)، سيقوم البرنامج النصي بتنزيل النموذج (حوالي 4 جيجابايت) وسيحفظه في دليل models/
في دليل المشروع الخاص بك ضمن نفس اسم الملف. سيتم تقييد ذلك من خلال تفاعل المستخدم في المستقبل لمنع تنزيل الملفات الكبيرة دون موافقة المستخدم. في النهاية، ستتصفح النماذج وتختار واحدًا من القائمة.
يعمل relay.py
كوكيل بين العميل (بما في ذلك، على سبيل المثال لا الحصر، client.py
الخاص بمستودع الريبو هذا) و server.py
، مما يؤدي إلى تشويش عنوان IP العام لبعضهما البعض، وحل أحد القيود الكبيرة لشبكات P2P (على سبيل المثال .السيول). في الإصدار المستقبلي، لن يرى relay.py
محتويات المحادثة بين الخادم والعميل بفضل التشفير الشامل. يمكن لأي شخص تفرع هذا المشروع وتشغيل التتابع الخاص بك، والذي تم توفيره من خلال عمليات حسابية مختلفة من server.py
تعمل على أجهزة استهلاكية مختلفة.
يمكنك اختبار الأشياء باستخدام عميل سطر الأوامر البسيط، client.py
:
python client.py
اكتب رسالتك عندما يُطلب منك ذلك، ثم اضغط على Enter. كل هذا يحدث الآن على أجهزتك المحلية، وذلك بفضل llama_cpp_python
، وهو رابط لـ llama.cpp.
للخروج، اضغط على Ctrl+C/Cmd+C.
وبدلاً من ذلك، يمكنك زيارة http://localhost:5000 في متصفحك.
المهام