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

المتطلبات الأساسية ومتطلبات النظام

قبل تدريب نماذج Granite لـ AuroraSOC، تأكد من أن بيئتك تلبي متطلبات الأجهزة والبرامج الموضحة أدناه. تختلف المتطلبات اعتمادًا على ما إذا كنت تتدرب محليًا أو في Docker أو على Google Colab.

متطلبات الأجهزة

تدريب GPU المحلي

عنصرالحد الأدنىمُستَحسَنملحوظات
وحدة معالجة الرسوماتنفيديا مع 8 جيجابايت VRAMNVIDIA مع 16+ جيجابايت VRAMيجب أن يكون قادرًا على استخدام CUDA (قدرة الحوسبة ≥ 7.0)
نماذج وحدة معالجة الرسوماتRTX 3060 (12 جيجابايت)، T4 (16 جيجابايت)RTX 4090 (24 جيجابايت)، A100 (40/80 جيجابايت)تعمل وحدات معالجة الرسومات الاستهلاكية بشكل جيد مع النماذج الصغيرة/الصغيرة
كبش16 جيجابايت32 جيجابايتتحتاج معالجة مجموعة البيانات إلى الذاكرة
القرص30 جيجا مجانا50+ غيغابايت مجانًانقاط التفتيش النموذجية + مجموعات البيانات
** وحدة المعالجة المركزية **4 النوى8+ النوىتحميل البيانات مرتبط بوحدة المعالجة المركزية

متطلبات VRAM حسب متغير الطراز

هذه هي متطلبات VRAM أثناء التدريب باستخدام تقنية التكميم 4 بت (QLoRA) وتحسينات Unsloth:

نموذجتدريب VRAM (4 بت)تدريب VRAM (8 بت)استنتاج VRAM (GGUF Q8_0)
granite-4.0-micro~4 جيجابايت~6 جيجا بايت~1.5 جيجابايت
granite-4.0-h-micro~6 جيجا بايت~8 جيجابايت~2 جيجا بايت
granite-4.0-h-tiny~8 جيجابايت~12 جيجابايت~3 جيجا بايت
granite-4.0-h-small~14 جيجابايت~20 جيجابايت~5 جيجا بايت
خيار GPU مجاني

إذا لم يكن لديك وحدة معالجة رسومات محلية، فاستخدم T4 المجاني من Google Colab (ذاكرة VRAM بسعة 16 جيجابايت). راجع دليل تدريب Colab للحصول على التفاصيل.

تدريب عامل الميناء

نفس متطلبات GPU كالتدريب المحلي، بالإضافة إلى:

  • ** عامل الميناء ** ≥ 24.0
  • مجموعة أدوات حاوية NVIDIA (nvidia-docker2 أو nvidia-container-toolkit)
  • Docker Compose ≥ 2.20

جوجل كولاب

لا حاجة للأجهزة المحلية. يوفر كولاب:

  • الطبقة المجانية: وحدة معالجة الرسومات T4 (VRAM سعة 16 جيجابايت)، وذاكرة الوصول العشوائي (RAM) سعة 12 جيجابايت، وقرص بسعة 78 جيجابايت تقريبًا
  • Colab Pro: A100 (40 جيجابايت VRAM)، 50+ جيجابايت من ذاكرة الوصول العشوائي
  • Colab Pro+: A100 (80 جيجابايت VRAM)، جلسات مستمرة

متطلبات البرمجيات

التدريب المحلي (الباري ميتال)

# Required
Python >= 3.11
CUDA >= 12.1 (with matching cuDNN)
Git

# Install via pip/uv
pip install unsloth torch transformers trl datasets pyyaml httpx

تم إدراج تبعيات Python الكاملة في pyproject.toml ضمن مجموعة [project.optional-dependencies.training]:

# Install all training dependencies
pip install -e ".[training]"
# Or using uv (faster)
uv pip install -e ".[training]"
# Or via Make
make train-install

التحقق من كودا

قبل التدريب، تحقق من إعداد CUDA الخاص بك:

# Check NVIDIA driver
nvidia-smi

# Check CUDA version
nvcc --version

# Check PyTorch sees the GPU
python -c "import torch; print(f'CUDA available: {torch.cuda.is_available()}')"
python -c "import torch; print(f'GPU: {torch.cuda.get_device_name(0)}')"
python -c "import torch; print(f'VRAM: {torch.cuda.get_device_properties(0).total_memory / 1e9:.1f} GB')"

الناتج المتوقع:

CUDA available: True
GPU: NVIDIA GeForce RTX 4090
VRAM: 24.0 GB

التحقق من الكسل

python -c "from unsloth import FastLanguageModel; print('Unsloth OK')"

إذا فشل هذا مع وجود خطأ متعلق بـ Mamba، فقم بتثبيت نواة Mamba:

pip install --no-build-isolation mamba_ssm==2.2.5 causal_conv1d==1.5.2
تجميع نواة مامبا

في المرة الأولى التي يتم فيها تثبيت نواة Mamba، يتم تجميعها من المصدر. يستغرق هذا ~10 دقائق ويتطلب مجموعة أدوات CUDA عاملة. في Colab، يحدث هذا تلقائيًا في خلية دفتر الملاحظات الأولى.

تدريب عامل الميناء

# Verify Docker + NVIDIA runtime
docker run --rm --gpus all nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi

إذا فشل ذلك، قم بتثبيت مجموعة أدوات حاوية NVIDIA:

# Ubuntu/Debian
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

أولاما (للنشر)

بعد التدريب، يتم تقديم النماذج عبر Ollama. قم بتثبيته إذا لم تقم بذلك:

# Install Ollama
curl -fsSL https://ollama.com/install.sh | sh

# Verify
ollama --version

# Pull base Granite model (for comparison/fallback)
ollama pull granite4:8b

أو استخدم البرنامج النصي للإعداد التلقائي:

./scripts/setup_local.sh

هيكل الدليل

يستخدم مسار التدريب تخطيط الدليل هذا:

training/
├── configs/
│ ├── granite_soc_finetune.yaml # Main training config
│ └── Modelfile.granite-soc # Ollama Modelfile template
├── data/
│ ├── raw/ # Downloaded source data
│ │ ├── mitre_attack/
│ │ ├── mitre_car/
│ │ ├── sigma_rules/
│ │ └── atomic_red_team/
│ ├── domain/ # Per-agent domain splits
│ │ ├── security_analysis.jsonl
│ │ ├── threat_hunting.jsonl
│ │ └── ...
│ ├── soc_train.jsonl # Combined training data
│ └── soc_eval.jsonl # Evaluation data
├── checkpoints/ # Training outputs
│ ├── granite_soc_lora/ # LoRA adapters
│ ├── granite_soc_merged_16bit/ # Merged FP16 (for vLLM)
│ └── granite_soc_gguf/ # GGUF files (for Ollama)
├── notebooks/
│ └── AuroraSOC_Granite4_Finetune.ipynb # Colab notebook
└── scripts/
├── prepare_datasets.py # Data preparation
├── finetune_granite.py # Training pipeline
├── evaluate_model.py # Model evaluation
├── serve_model.py # Model deployment
└── train_all_agents.py # Batch per-agent training

متغيرات البيئة

تستخدم البرامج النصية التدريبية بشكل أساسي training/configs/granite_soc_finetune.yaml لإعدادات النموذج والمعلمات التشعبية. تُستخدم متغيرات البيئة بشكل أساسي لبيانات الاعتماد واختيار وحدة معالجة الرسومات وتنسيق الحاوية:

عاملتقصيروصف
AGENT_NAME(لا أحد)اسم ملف تعريف الوكيل الذي تستخدمه خدمة training-agent Docker
CUDA_VISIBLE_DEVICES0ما هو تدريب (وحدات) GPU الذي يجب استخدامه (0، 1، 0,1، وما إلى ذلك)
NVIDIA_VISIBLE_DEVICESallرؤية GPU لعمليات التدريب المستندة إلى Docker
HF_TOKEN(لا أحد)رمز معانقة الوجه (مطلوب فقط لدفع المحور)
WANDB_API_KEY(لا أحد)رمز الأوزان والتحيزات لتتبع التجربة

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

الخطوات التالية

بمجرد أن تصبح بيئتك جاهزة:

  1. تحضير مجموعة البيانات — تنزيل بيانات تدريب SOC ومعالجتها
  2. تدريب وحدة معالجة الرسومات المحلية — ابدأ التدريب على أجهزتك