جعل تقييم وضبط نماذج LLaMA مع التكيف منخفض الرتبة (LoRA) أمرًا سهلاً.
تحديث :
في فرع
dev
، توجد واجهة مستخدم جديدة للدردشة وتكوين جديد للوضع التجريبي كطريقة بسيطة وسهلة لعرض النماذج الجديدة.ومع ذلك، فإن الإصدار الجديد لا يحتوي على ميزة الضبط الدقيق حتى الآن وهو غير متوافق مع الإصدارات السابقة لأنه يستخدم طريقة جديدة لتحديد كيفية تحميل النماذج، وكذلك تنسيقًا جديدًا لقوالب المطالبة (من LangChain).
ولمزيد من الفائدة انظر: رقم ٢٨.
LLM.Tuner.Chat.UI.in.Demo.Mode.mp4
شاهد عرضًا توضيحيًا عن Hugging Face * يقدم عرضًا توضيحيًا لواجهة المستخدم فقط. لمحاولة التدريب أو إنشاء النص، قم بتشغيل Colab.
1-انقر فوق وتشغيل في Google Colab مع وقت تشغيل GPU قياسي.
تحميل وتخزين البيانات في Google Drive.
قم بتقييم نماذج LLaMA LoRA المختلفة المخزنة في مجلدك أو من Hugging Face.
قم بالتبديل بين النماذج الأساسية مثل decapoda-research/llama-7b-hf
أو nomic-ai/gpt4all-j
أو databricks/dolly-v2-7b
أو EleutherAI/gpt-j-6b
أو EleutherAI/pythia-6.9b
.
قم بضبط نماذج LLaMA باستخدام قوالب مطالبة مختلفة وتنسيق مجموعة بيانات التدريب.
قم بتحميل مجموعات بيانات JSON وJSONL من المجلد الخاص بك، أو حتى الصق نصًا عاديًا مباشرةً في واجهة المستخدم.
يدعم تنسيق "المطالبة" - "الإكمال" لمهام بذور Stanford Alpaca وalpaca_data وOpenAI.
استخدم القوالب السريعة للحفاظ على مجموعة البيانات الخاصة بك جافة.
هناك طرق مختلفة لتشغيل هذا التطبيق:
التشغيل على Google Colab : إن أبسط طريقة للبدء، كل ما تحتاجه هو حساب Google. يعد وقت تشغيل GPU القياسي (المجاني) كافيًا لتشغيل التوليد والتدريب بحجم دفعة صغيرة يبلغ 8. ومع ذلك، فإن إنشاء النص والتدريب أبطأ بكثير من الخدمات السحابية الأخرى، وقد ينهي Colab التنفيذ في حالة عدم النشاط أثناء تشغيل المهام الطويلة.
التشغيل على خدمة سحابية عبر SkyPilot : إذا كان لديك حساب خدمة سحابية (Lambda Labs أو GCP أو AWS أو Azure)، فيمكنك استخدام SkyPilot لتشغيل التطبيق على خدمة سحابية. يمكن تركيب دلو سحابي للحفاظ على بياناتك.
التشغيل محليًا : يعتمد على الأجهزة المتوفرة لديك.
شاهد الفيديو للحصول على تعليمات خطوة بخطوة.
افتح دفتر ملاحظات Colab هذا وحدد Runtime > Run All ( ⌘/Ctrl+F9
).
سيُطلب منك السماح بالوصول إلى Google Drive، حيث سيتم استخدام Google Drive لتخزين بياناتك. راجع قسم "التكوين"/"Google Drive" للحصول على الإعدادات والمزيد من المعلومات.
بعد حوالي 5 دقائق من التشغيل، ستشاهد عنوان URL العام في مخرجات قسم "Launch"/"Start Gradio UI" (مثل Running on public URL: https://xxxx.gradio.live
). افتح عنوان URL في متصفحك لاستخدام التطبيق.
بعد اتباع دليل تثبيت SkyPilot، قم بإنشاء .yaml
لتحديد مهمة لتشغيل التطبيق:
# llm-tuner.yamlresources: المسرعات: A10:1 # 1x NVIDIA A10 GPU، حوالي 0.6 دولار أمريكي في الساعة على Lambda Cloud. قم بتشغيل `sky show-gpus` لأنواع GPU المدعومة، و`sky show-gpus [GPU_NAME]` للحصول على معلومات تفصيلية عن نوع GPU. السحابة: لامدا # اختياري؛ إذا تم استبعاده، فسيقوم SkyPilot تلقائيًا باختيار أرخص cloud.file_mounts: # قم بتثبيت وحدة تخزين سحابية مثبتة سيتم استخدامها كدليل بيانات. # (لتخزين نماذج تدريب مجموعات البيانات) # راجع https://skypilot.readthedocs.io/en/latest/reference/storage.html للحصول على التفاصيل. /data:name: llm-tuner-data # تأكد من أن هذا الاسم فريد أو أنك تمتلك هذه المجموعة. إذا لم يكن موجودًا، فسيحاول SkyPilot إنشاء مجموعة بهذا الاسم. المتجر: s3 # يمكن أن يكون أحد الوضعين [s3, gcs]: MOUNT# استنساخ الريبو LLaMA-LoRA Tuner وتثبيت تبعياته.الإعداد: | conda create -q python=3.8 -n llm-tuner -y condaactivate llm-tuner # استنساخ LLaMA-LoRA Tuner repo وتثبيت تبعياته [ ! -d llm_tuner ] && git clone https://github.com/zetavg/LLaMA-LoRA-Tuner.git llm_tuner echo "تثبيت التبعيات..." pip install -r llm_tuner/requirements.lock.txt # اختياري: تثبيت wandb ل تمكين التسجيل في Weights & Biases pip install wandb # اختياري: تصحيح وحدات البت ووحدات البايت لخطأ الحل البديل "libbitsandbytes_cpu.so: رمز غير محدد: cget_col_row_stats" BITSANDBYTES_LOCATION="$(pip show bitsandbytes | grep 'Location' | awk '{print $2}')/bitsandbytes" [ -f "$BITSANDBYTES_LOCATION/libbitsandbytes_cpu.so" ] && [ ! -f "$BITSANDBYTES_LOCATION/libbitsandbytes_cpu.so.bak" ] && [ -f "$BITSANDBYTES_LOCATION/libbitsandbytes_cuda121.so" ] && echo "جارٍ تصحيح وحدات البت ساندبايت لدعم وحدة معالجة الرسومات..." && mv "$BITSANDBYTES_LOCATION/libbitsandbytes_cpu.so" "$BITSANDBYTES_LOCATION/libbitsandbytes_cpu.so.bak" && cp "$BITSANDBYTES_LOCATION/libbitsandbytes_cuda121.so" "$BITSANDBYTES_LOCATION/libbitsandbytes_cpu.so" conda install -q cudatoolkit -y echo "تم تثبيت التبعيات." # اختياري: قم بتثبيت Cloudflare Tunnel وإعداده لعرض التطبيق على الإنترنت باستخدام اسم مجال مخصص [ -f /data/secrets/cloudflared_tunnel_token.txt ] && echo "Installing Cloudflare" && cur -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && sudo dpkg -i cloudflared.deb && sudo cloudflared إلغاء تثبيت الخدمة || : && sudo cloudflared Service install "$(cat /data/secrets/cloudflared_tunnel_token.txt | tr -d 'n')" # اختياري: نماذج التنزيل المسبق echo "النماذج الأساسية التي يتم تنزيلها مسبقًا حتى لا تضطر إلى الانتظار لفترة طويلة بمجرد أن يصبح التطبيق جاهزًا..." python llm_tuner/download_base_model.py --base_model_names='decapoda-research/llama-7b-hf,nomic-ai/gpt4all-j'# ابدأ التطبيق. `hf_access_token` و`wandb_api_key` و`wandb_project` اختيارية. كوندا تنشيط llm-tuner python llm_tuner/app.py --data_dir='/data' --hf_access_token="$([ -f /data/secrets/hf_access_token.txt ] && cat /data/secrets/hf_access_token.txt | tr -d 'n')" --wandb_api_key="$([ -f /data/secrets/wandb_api_key.txt ] && cat /data/secrets/wandb_api_key.txt | tr -d 'n')" --wandb_project='llm-tuner' --timezone='Atlantic/Reykjavik' --base_model= 'decapoda-research/llama-7b-hf' --base_model_choices='decapoda-research/llama-7b-hf,nomic-ai/gpt4all-j,databricks/dolly-v2-7b' --share
ثم قم بتشغيل مجموعة لتشغيل المهمة:
sky launch -c llm-tuner llm-tuner.yaml
-c ...
هي علامة اختيارية لتحديد اسم المجموعة. إذا لم يتم تحديده، فسيقوم SkyPilot تلقائيًا بإنشاء واحد.
سترى عنوان URL العام للتطبيق في الجهاز. افتح عنوان URL في متصفحك لاستخدام التطبيق.
لاحظ أن الخروج من sky launch
لن يؤدي إلا إلى الخروج من تدفق السجل ولن يوقف المهمة. يمكنك استخدام sky queue --skip-finished
لمعرفة حالة المهام قيد التشغيل أو المعلقة، وتتصل sky logs <cluster_name> <job_id>
مرة أخرى بتدفق السجل، sky cancel <cluster_name> <job_id>
لإيقاف المهمة.
عند الانتهاء، قم بتشغيل sky stop <cluster_name>
لإيقاف المجموعة. لإنهاء مجموعة بدلاً من ذلك، قم بتشغيل sky down <cluster_name>
.
تذكر إيقاف المجموعة أو إيقاف تشغيلها عند الانتهاء لتجنب تكبد رسوم غير متوقعة. قم بتشغيل sky cost-report
لمعرفة تكلفة مجموعاتك.
لتسجيل الدخول إلى الجهاز السحابي، قم بتشغيل ssh <cluster_name>
، مثل ssh llm-tuner
.
إذا كان لديك sshfs
مثبتًا على جهازك المحلي، فيمكنك تحميل نظام الملفات الخاص بالجهاز السحابي على جهاز الكمبيوتر المحلي الخاص بك عن طريق تشغيل أمر مثل ما يلي:
mkdir -p /tmp/llm_tuner_server && umount /tmp/llm_tuner_server || : && sshfs llm-tuner:/ /tmp/llm_tuner_server
conda create -y python=3.8 -n llm-tuner كوندا تفعيل llm-tuner
تثبيت النقطة -r المتطلبات.lock.txt python app.py --data_dir='./data' --base_model='decapoda-research/llama-7b-hf' --timezone='Atlantic/Reykjavik' --share
سترى عناوين URL المحلية والعامة للتطبيق في الجهاز. افتح عنوان URL في متصفحك لاستخدام التطبيق.
لمزيد من الخيارات، راجع python app.py --help
.
لاختبار واجهة المستخدم دون تحميل نموذج اللغة، استخدم علامة --ui_dev_mode
:
python app.py --data_dir='./data' --base_model='decapoda-research/llama-7b-hf' --share --ui_dev_mode
لاستخدام Gradio Auto-Reloading، يلزم وجود ملف
config.yaml
نظرًا لأن وسائط سطر الأوامر غير مدعومة. يوجد ملف نموذجي للبدء به:cp config.yaml.sample config.yaml
. ثم قم فقط بتشغيلgradio app.py
.
شاهد الفيديو على اليوتيوب.
https://github.com/tloen/alpaca-lora
https://github.com/lxe/simple-llama-finetuner
...
سيتم تحديده لاحقًا