انتقل إلى المحتوى الرئيسي

Unsloth صقل خط الأنابيب

تتميز نماذج IBM Granite 4 خارج الصندوق بأنها عامة ذكية للغاية. لجعلهم من نخبة مشغلي الأمن السيبراني، تستخدم AuroraSOC خط أنابيب ضبط دقيق متقدم مدعوم من Unsloth.

تشرح هذه الوثيقة فلسفتنا في الضبط الدقيق، وكيفية إعداد مجموعات البيانات، وكيفية إنشاء النماذج.

قوة Unsloth وLoRA

يتطلب تدريب نماذج اللغات الكبيرة عادةً مجموعات ضخمة من وحدات معالجة الرسومات وأسابيع من وقت الحوسبة. نحن نتجاوز هذا من خلال استخدام LoRA (التكيف منخفض الرتبة) ومكتبة Unsloth.

LoRA لا يغير المعرفة الأساسية للنموذج (مليارات المعلمات المدربة مسبقًا). وبدلاً من ذلك، تقوم بإدخال مصفوفات ثانوية صغيرة في الشبكة. أثناء التدريب، يتم تحديث هذه المصفوفات الصغيرة فقط.

تشبيه: تخيل أن نموذج الجرانيت الأساسي هو جراح أعصاب لامع يتمتع بمعرفة موسوعية بالطب. LoRA عبارة عن كتيب صغير عن "العمل في منطقة حرب". الكتيب لا يعلم الطب الجراح. فهو يعلمهم كيفية تطبيق معرفتهم الحالية في سيناريو محدد للغاية ومرتفع الضغط.

Unsloth هي مكتبة تحسين مخصصة تعيد كتابة العمليات الرياضية الأساسية لعملية التدريب في Triton (لغة GPU منخفضة المستوى). ومن خلال القيام بذلك، فإنه يوفر سرعات تدريب أسرع مرتين ويستخدم ذاكرة VRAM أقل بنسبة 70% مقارنة بخطوط أنابيب Hugging Face القياسية.

ويتيح لك ذلك تدريب وكيل متخصص في AuroraSOC على وحدة معالجة رسومات مستهلكة واحدة في غضون ساعات.

نظرة عامة على خطوط الأنابيب

يتم تنفيذ خط الأنابيب على ثلاث مراحل:

  1. تحضير مجموعة البيانات (prepare_datasets.py)
  2. ضبط LoRA (finetune_granite.py)
  3. تصدير النموذج (finetune_granite.py / serve_model.py)

يتم تعريف تكوين المسار بأكمله في ملف واحد: training/configs/granite_soc_finetune.yaml.

1. إعداد مجموعة البيانات

يتعلم وكلاؤنا من البيانات الأمنية الواقعية. training/scripts/prepare_datasets.py مسؤول عن بناء قاعدة المعرفة هذه.

يقوم بتنزيل البيانات وتطبيعها وحقنها من:

  • ** إطار عمل MITRE ATT&CK: ** تعليم رسم خرائط TTP (التكتيكات والتقنيات والإجراءات).
  • ** قواعد سيجما: ** سجل التدريس واكتشاف السلوك.
  • ** الفريق الأحمر الذري: ** تعليم الاستجابة للحوادث بناءً على محاكاة الخصم.
  • ** NVD/CVE: ** تقييم نقاط الضعف في التدريس وتسجيل نقاط CVSS.
  • السيناريوهات الاصطناعية: بالنسبة للنطاقات التي تفتقر إلى مجموعات البيانات العامة (على سبيل المثال، Web Security وCloud Security)، يقوم البرنامج النصي برمجيًا بإنشاء تنبيهات WAF وCloudTrail الاصطناعية عالية الجودة.

تشغيل بناء مجموعة البيانات

مفهوم حاسم: الوسيطة --output-dir هي عقد مسار صارم. سيبحث برنامج الضبط الدقيق عن soc_train.jsonl بدقة في الدليل الذي تحدده هنا.

python training/scripts/prepare_datasets.py --output-dir training/data

سيقوم البرنامج النصي بتقسيم البيانات إلى مجموعة تدريب ومجموعة تقييم، وتنسيقها في تنسيق خطوط JSON للمحادثة المطابق لقالب دردشة Granite.

2. ضبط لورا

يحرك البرنامج النصي training/scripts/finetune_granite.py عملية التعلم الفعلية.

يقرأ التكوين granite_soc_finetune.yaml، ويحمل النموذج الأساسي unsloth/granite-4.0-h-tiny، ويبدأ في تطبيق مجموعة البيانات.

مطالبة النظام والإخفاء

تتضمن بيانات التدريب لدينا موجه النظام، وتنبيه المستخدم، واستجابة المساعد. ومع ذلك، فإننا نحسب الخسارة فقط (عقوبة كونك "مخطئًا") في استجابة المساعد.

نحن نفعل ذلك لأننا لا نريد أن يتعلم النموذج كيفية إنشاء الموجه نفسه؛ نريده فقط أن يتعلم كيفية إنتاج الاستجابة التحليلية الصحيحة عند إعطائه تلك المطالبة.

التخصص لكل وكيل

يحدد التكوين agent_profiles (على سبيل المثال، security_analyst، threat_hunter). يقوم البرنامج النصي بتصفية بيانات التدريب لكل مجال محدد ويقوم بإنشاء محول LoRA فريد.

يعتبر وكيل Orchestrator حالة خاصة: نظرًا لأنه يتطلب قدرة تفكير فائقة لتنسيق الأسطول، فإن التكوين يتجاوز نموذجه الأساسي ديناميكيًا، ويحدد unsloth/granite-4.0-h-small (حجم نموذج أكبر) ورتبة LoRA متزايدة (r=128).

التدريب على الجري

python training/scripts/finetune_granite.py \
--config training/configs/granite_soc_finetune.yaml \
--data-dir training/data

3. تصدير النموذج

بمجرد انتهاء التدريب، يصبح محول LoRA عديم الفائدة في حد ذاته، ويجب دمجه مع النموذج الأساسي ليتم تقديمه.

يتعامل البرنامج النصي finetune_granite.py مع هذا تلقائيًا عبر الوظيفة export_model، ويخرج التنسيقات بناءً على الواجهة الخلفية للخدمة المستهدفة:

  1. دمج FP16 (granite_soc_merged_16bit): يؤدي هذا إلى دمج LoRA والنموذج الأساسي في تنسيق PyTorch float16 القياسي. هذا مطلوب لخدمة إنتاج vLLM.
  2. GGUF (granite_soc_gguf): يؤدي هذا إلى تكميم (ضغط) النموذج المدمج بشكل كبير بحيث يمكن التعامل معه بواسطة Ollama.

يمكنك بعد ذلك استخدام البرنامج النصي للتغليف لإنهاء النشر في Ollama:

# Push the GGUF to Ollama with the correct Modelfile
python training/scripts/serve_model.py ollama \
--gguf training/checkpoints/granite_soc_gguf/unsloth.Q8_0.gguf \
--name granite-soc:latest

النموذج الخاص بك هو الآن محلل SOC مستقل، وجاهز للعمل.