الانتقال إلى المحتوى الرئيسي
فصول دليل التدريب جميع الوثائق

إعداد TrainingProject وسير العمل

عقد SDK 0.2.0 للتدريب الموجّه بالأهداف والتقييم والاستعادة والتصدير.

تبقى الأوامر والشفرة بالإنجليزية في جميع اللغات. استبدل العناصر النائبة المكتوبة بالأحرف الكبيرة بقيم من حسابك والمهمة المدفوعة؛ ولا تضع مفاتيح حقيقية في دفاتر ملاحظات أو سجلات مشتركة.

سير عمل TrainingProject

يقود إعداد واحد تخطيط المشروع وتدريبه وتقييمه وتصديره.
  1. المشروع النموذج والهدف وسياسة البيانات
  2. الخطة التوافق والمنهج والميزانيات
  3. التنفيذ البيانات والتدريب ونقاط التحقق
  4. التحسين تقييم محدود للموضوعات وحالات التراجع
  5. التصدير ملف ناتج متحقق منه وتقرير قابل لإعادة الإنتاج

المشروع: النموذج والهدف وسياسة البيانات. الخطة: التوافق والمنهج والميزانيات. التنفيذ: البيانات والتدريب ونقاط التحقق. التحسين: تقييم محدود للموضوعات وحالات التراجع. التصدير: ملف ناتج متحقق منه وتقرير قابل لإعادة الإنتاج

مشروع واحد وإعداد قابل لإعادة الإنتاج

يربط إعداد المشروع نموذجًا محليًا للمتعلّم ومرجع معلّم مدفوعًا وهدفًا وسياسة بيانات وبيئة تشغيل ومنهجًا ومعيار تقييم. يحسم الوضع التلقائي القيم الافتراضية المتوافقة، ويتيح الوضع المتقدم الضوابط المدعومة. تصف خطة التشغيل التجريبي توافق النموذج والموضوعات وتدفقات البيانات والميزانيات والبصمات والملفات المتوقعة قبل بدء التدريب.

  • تستخدم واجهة مشروع Python وأداة fpai-training المحرك نفسه.
  • تُتحقق المسارات الخاصة بالنموذج والبيانات والمقيّم والإعداد ضمن جذر المشروع.
  • ثبّت إصدارات المقيّمين المخصصين واحتفظ بملفات بيان التشغيل.
مثال · json
{
  "schema_version": "1.0",
  "mode": "automatic",
  "objective": "Classify support messages as billing, account_access or technical_issue.",
  "model": {"path": "./models/student", "adapter": "transformers-causal-lm", "revision": null},
  "teacher": {"provider": "openai", "reference_model_id": 123},
  "data": {
    "sources": ["./data/train.jsonl"], "teacher_sharing": "none",
    "validation_path": "./data/validation.jsonl", "test_path": "./data/test.jsonl",
    "deduplicate": true, "seed": 42
  },
  "runtime": {"target": "customer_datacenter", "devices": "auto"},
  "training": {"method": "auto"},
  "curriculum": {"topics": ["intent", "ambiguous_requests", "class_balance"], "max_improvement_cycles": 3, "stop_on_regression": true},
  "budgets": {"max_training_minutes": 120, "max_teacher_requests": 1000, "max_storage_gib": 20},
  "checkpoints": {"keep_last": 3},
  "evaluation": {"rubric": "./rubric.json", "baseline_required": true},
  "output": {"directory": "./runs/german-001", "format": "safetensors"}
}
مثال · json
{
  "schema_version": "1.0",
  "mode": "advanced",
  "model": {"path": "./models/student", "adapter": "transformers-causal-lm", "revision": null},
  "teacher": {"provider": "openai", "reference_model_id": 123},
  "objective": "Classify support messages as billing, account_access or technical_issue.",
  "data": {"sources": ["./data/train.jsonl"], "teacher_sharing": "none", "validation_path": "./data/validation.jsonl", "test_path": "./data/test.jsonl"},
  "runtime": {"target": "customer_datacenter", "devices": [0, 1], "distributed": {"backend": "ddp", "nodes": 1}},
  "training": {
    "method": "LoRA",
    "epochs": 3,
    "learning_rate": 0.0002,
    "batch_size": 1,
    "gradient_accumulation_steps": 16,
    "max_sequence_length": 2048,
    "precision": "bf16",
    "lora": {"rank": 16, "alpha": 32, "dropout": 0.05}
  },
  "curriculum": {
    "topics": ["intent", "ambiguous_requests", "class_balance"],
    "max_improvement_cycles": 3,
    "stop_on_regression": true
  },
  "checkpoints": {"every_steps": 100, "keep_last": 3, "resume_validation": "strict"},
  "budgets": {"max_training_minutes": 120, "max_teacher_requests": 1000, "max_storage_gib": 20},
  "evaluation": {"rubric": "./rubric.json", "baseline_required": true},
  "output": {"directory": "./runs/german-advanced-001", "format": "safetensors"}
}
مثال · bash
fpai-training init --directory ./german-project
fpai-training doctor --config ./german-project/training.json
fpai-training plan --config ./german-project/training.json --dry-run
fpai-training run --config ./german-project/training.json
fpai-training status --run ./german-project/runs/german-001
fpai-training pause --run ./german-project/runs/german-001
fpai-training resume --run ./german-project/runs/german-001
fpai-training cancel --run ./german-project/runs/german-001
fpai-training evaluate --run ./german-project/runs/german-001 --split test
fpai-training export --run ./german-project/runs/german-001 --format safetensors
# init creates a project; doctor checks local compatibility; plan makes no teacher call.
# run requires current paid reference access, enforces budgets and trains locally.
# pause saves a checkpoint; resume verifies project fingerprints; cancel is terminal.
# evaluate reads local held-out rows; export validates the accepted local artifact.
مثال · python
import os
from fusionpointai_training import TrainingProject

project = TrainingProject.from_file(
    "./german-project/training.json",
    api_key=os.environ["FUSIONPOINTAI_API_KEY"],
)
plan = project.plan(dry_run=True)
result = project.run()
evaluation = project.evaluate(split="test")
artifact = project.export(format="safetensors")
# Related controls: project.status(), project.pause(), project.resume(), project.cancel().

سلوك التدريب والتقييم

ينفّذ موائم نماذج اللغة السببية في Transformers تحسينًا فعليًا باستخدام SFT أو LoRA أو QLoRA للنماذج وبيئات التشغيل المتوافقة. ينسّق المشروع الوصول المدفوع إلى المعلّم والبيانات المحلية والتقييم حسب الموضوع وفحوص التراجع والتحسين المحدود. تفشل فحوص التوافق عند استخدام بنية أو عتاد أو صيغة تصدير غير مدعومة.

  • تشمل أسباب التوقف accepted وbudget_exhausted وno_progress وregression وcancelled وfailed.
  • تُحفظ نقاط التحقق الأصلية وحالة التشغيل في مساحة خاصة يملكها التشغيل.
  • تخضع مشاركة المعلّم لسياسة المشروع؛ وتبقى بيانات التحقق والاختبار النهائي محلية.
مثال · json
{
  "schema_version": "1.0",
  "name": "support-category-evaluation",
  "scale": {"minimum": 0.0, "maximum": 1.0},
  "criteria": [
    {"id": "support_category", "description": "Match the expected support category.", "metric": "macro_f1", "minimum_score": 0.85}
  ],
  "regression": {"maximum_score_drop": 0.02},
  "final_test": {"path": "./data/test.jsonl", "allow_training_use": false}
}
مثال · text
SDK 0.2.0 CLI AND PROJECT CONTRACT
Configuration/rubric values above are examples, not achieved scores or guarantees.
doctor must reject incompatible architecture, precision, hardware and export settings.
plan --dry-run validates and estimates; it must not update weights or start paid work.
run uses the declared data-sharing policy and enforces all configured budgets.
pause saves a valid atomic checkpoint before stopping owned training workers.
resume validates the checkpoint's model/config/data/evaluator fingerprints.
cancel requests termination of this run's workers; preserve useful logs and artifacts.
evaluate --split test must never feed test examples into training.
export validates files and manifests; never include credentials or unrelated cache files.

Project API:
TrainingProject.from_file(path, *, api_key) -> TrainingProject
plan(*, dry_run=True) -> dict
run() -> dict
status() -> dict
pause() -> dict
resume() -> dict
cancel() -> dict
evaluate(*, split="test") -> dict
export(*, format="safetensors") -> dict

Exit codes:
0 accepted/success; 2 invalid configuration; 3 incompatible runtime/model;
4 authentication/access; 5 budget exhausted; 6 acceptance not met;
7 execution failed; 130 interrupted.
Reports must record stop_reason and unmet criteria, not just an exit code.

راجع التقارير والملفات الناتجة

يسجّل تشغيل المشروع خط الأساس غير المعدّل والمعايير المقاسة والتراجعات والميزانيات والمتطلبات غير المستوفاة. يتحقق التصدير من ملفات النموذج أو الموائم المحلية وينشئ ملفات البيان. يعتمد سلوك SDK على توافق البرمجيات والعتاد؛ ولا تعني الأمثلة إجراء معيار أداء للعتاد أو ضمان نتيجة استدلال.

  • لا يعني التدريب وحده تكافؤ النموذج مع المعلّم.
  • لا تطلق أمثلة الوثائق طلبات مدفوعة أو تدريبًا تلقائيًا.
  • راجع التقارير والملفات المحلية الفعلية قبل استخدام أي ملف ناتج.
مثال · text
TrainingProject delivery files
model/                   validated model or adapter weights and tokenizer assets
exports/<format>/        accepted delivery files with a SHA-256 manifest
run-manifest.json        pinned model/data/config/runtime versions
baseline-report.json     untouched student model's measured criteria
evaluation-report.json   final criteria, measured scores and regressions
artifact-manifest.json   safe relative paths, bytes and SHA-256 per file
training-report.json     real steps, timings, budgets and stop reason

Never export credentials, environment files or private cache directories.