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

حزمة Python للمؤسسات: الأساليب والنتائج والأخطاء

تواقيع TrainingProject ومعاملاتها ونتائجها وأخطاؤها القابلة للاسترداد، مع أمثلة Python كاملة.

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

واجهة مشروع واحدة ومحرك أساسي واحد

يجب أن تتطابق إعدادات CLI وPython وحالتهما ومخرجاتهما.
  1. from_file حمّل دون تغيير الأوزان
  2. plan افحص المدخلات المحسومة
  3. run / الضوابط تولَّ ملكية العمال والاسترداد
  4. evaluate / export افحص المخرجات المحلية المقبولة

from_file: حمّل دون تغيير الأوزان. plan: افحص المدخلات المحسومة. run / الضوابط: تولَّ ملكية العمال والاسترداد. evaluate / export: افحص المخرجات المحلية المقبولة

استخدم المحرك نفسه من Python

تكمل TrainingProject واجهة TrainingClient ولا تحل محلها. حمّل إعدادًا ومفتاح API محدود النطاق، وافحص الخطة، ثم ابدأ التشغيل. يتيح كائن المشروع فحص التشغيل الذي يملكه والتحكم فيه؛ ويرفض run استبدال تشغيل موجود، بينما يتطلب resume حالة استرداد صالحة.

  • تقبل المسارات سلاسل نصية أو كائنات os.PathLike. وتُمرر خيارات الأساليب كوسائط مسماة فقط.
  • يتحقق from_file من الإعداد المحلي؛ لكنه لا يحدّث الأوزان ولا يرسل طلبات إلى المعلّم.
  • تستخدم مسارات Python وCLI الإعدادات والبصمات والميزانيات والمخرجات نفسها.
مرجع مشروع Python الكامل
الحقل أو الواجهةالنوع أو النتيجةالقيمة الافتراضية أو رمز الخروجالسلوك والتحقق
TrainingProject.from_file(path, *, api_key) TrainingProject مطلوب / بلا قيمة افتراضية حمّل مسار الإعداد وسلسلة سرية غير فارغة وتحقق منهما. يعيد كائن مشروع؛ من دون تحديث للأوزان أو طلبات إلى المعلّم.
plan(*, dry_run=True) dict true القيمة True فقط. يعيد resolved_configuration وcompatibility وdata_sharing وbudgets وtopics وartifacts وfingerprints.
run() dict مطلوب / بلا قيمة افتراضية انتظر حتى حالة نهائية أو إيقاف مؤقت؛ أعد نتيجة التشغيل المشتركة عند نجاح العملية فقط، وإلا فارفع الخطأ الموافق.
status() dict مطلوب / بلا قيمة افتراضية اقرأ run_id وstatus وstop_reason وreport_path وunmet_criteria دون بدء عامل.
pause() dict مطلوب / بلا قيمة افتراضية انتظر إقرار العامل ونقطة تحقق صالحة؛ وأعد نتيجة التشغيل المشتركة. الحالة غير الصالحة خطأ في الإعداد.
resume() dict مطلوب / بلا قيمة افتراضية تحقق من جميع البصمات واستأنف العمال الذين تملكهم؛ وأعد نتيجة التشغيل المشتركة عند نجاح العملية.
cancel() dict مطلوب / بلا قيمة افتراضية انتظر توقف العمال الذين تملكهم وأعد الحالة cancelled؛ وارفع CancellationError إذا تعذر تأكيد الإيقاف الآمن.
evaluate(*, split="test") dict "test" اقبل validation أو test. أعد run_id وsplit وaccepted وcriteria وregressions وreport_path؛ وإذا فشل القبول فارفع EvaluationFailedError بعد حفظ التقرير.
export(*, format="safetensors") dict "safetensors" أعد run_id وformat وartifact_path وmanifest_path وsha256 لأصل مقبول ومتوافق.
register_evaluator(name, scorer, *, version) None مطلوب / بلا قيمة افتراضية سجّل دالة تقييم موثوقة قبل إعداد الخطة أو التقييم، وحدّد اسمًا ثابتًا وإصدارًا واضحًا. تستقبل الدالة prediction وtarget وrow، ويجب أن تُرجع درجة عددية محدودة بين 0 و1. لا يمكن استبدال المقاييس المضمنة.
مثال · 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)
print(plan["resolved_configuration"], plan["data_sharing"], plan["budgets"])
# Confirm the reviewed plan before starting real work.
result = project.run()
if result["status"] != "completed" or result["stop_reason"] != "accepted":
    raise RuntimeError("Training was not accepted; inspect the retained report.")
evaluation = project.evaluate(split="test")
# A failed required criterion raises EvaluationFailedError after saving its report.
artifact = project.export(format="safetensors")
print(artifact["manifest_path"])

افحص النتائج المنظّمة

يصف عقد الإرجاع أدناه بنية النتائج، لا قياسات نموذجية. افحص status وstop_reason وunmet_criteria قبل النشر. تحدد نتائج التقييم كل معيار وكل تراجع. يعيد التصدير مسارات محلية وبيانات سلامة؛ ولا يرفع النموذج تلقائيًا أو يستبدل الاستدلال في الإنتاج.

  • يجب إمكان قراءة بيانات الحالة وmanifest من دون إنشاء طلب جديد للمعلّم.
  • التقييم على مجموعة الاختبار النهائية منفصل عن التحقق المستخدم أثناء التحسين.
  • يجب أن يطابق manifest الأصول الملفات الفعلية والمسارات النسبية الآمنة وأحجام البايتات وقيم SHA-256.
مثال · text
TrainingProject return contract (dictionary shapes)
from_file: validates configuration, attaches its owned run; no weight updates.
plan: {schema_version, resolved_configuration, compatibility, data_sharing,
       budgets, topics, artifacts, fingerprints}; dry_run must be true.
run/resume: {run_id, status, stop_reason, report_path, unmet_criteria}.
status/pause/cancel: {run_id, status, stop_reason, report_path, unmet_criteria}.
stop_reason is null until terminal; run/resume block until terminal or paused.
pause blocks until owned workers acknowledge an atomic checkpoint.
cancel blocks until owned workers stop; a failed stop raises CancellationError.
evaluate: {run_id, split, accepted, criteria, regressions, report_path}.
export: {run_id, format, artifact_path, manifest_path, sha256}.
Returned paths are local, resolved paths; no model upload is implied.
Status output is redacted and may be read without opening an API connection.
from_file requires path: str | os.PathLike and a nonempty api_key: str.
plan accepts dry_run=True only; False is ConfigurationError, not execution.
evaluate accepts split="validation" or "test"; defaults to test.
export accepts safetensors or adapters when supported by the selected adapter.
All method keyword options are keyword-only. Unlisted arguments are rejected.

تعامل مع الإخفاقات دون إخفائها

ترث فئات أخطاء المشروع من TrainingError وترتبط برموز خروج CLI. وتقع إخفاقات الإعداد والتوافق قبل التدريب. وتحتفظ إخفاقات الميزانية والتقييم بالتقارير والمعايير غير المستوفاة. ويظل خطأ إيقاف العامل أو نقطة التحقق إخفاقًا إلى أن يتأكد التنظيف الآمن.

  • تعيد الأساليب الناجحة القواميس الموثقة. وإذا أخفق معيار، يُرفع EvaluationFailedError بعد حفظ تقرير التقييم.
  • لا تسجل مطلقًا مفاتيح API أو ترويسات التفويض أو البيئة كاملة أو أمثلة التدريب الخاصة.
  • لا تغلّف الاستثناءات لإعادة المحاولة تلقائيًا. افحص حالة التشغيل والخدمة أولًا.
أخطاء Python وربطها برموز خروج CLI
الحقل أو الواجهةالنوع أو النتيجةالقيمة الافتراضية أو رمز الخروجالسلوك والتحقق
ConfigurationError TrainingError 2 مخطط أو وسيطة أو مسار أو حالة غير صالحة، أو تجاوز غير مدعوم. صحح المدخلات قبل إعادة المحاولة.
CompatibilityError TrainingError 3 المحوّل أو النموذج أو العتاد أو الدقة أو التوزيع أو التنسيق غير مدعوم.
AuthenticationError TrainingError 4 المفتاح مفقود أو منتهي الصلاحية، أو الاستحقاق مرفوض، أو مشاركة المعلّم محظورة؛ لا تضع أسرارًا في الرسالة مطلقًا.
BudgetExceededError TrainingError 5 انتهت ميزانية محدودة قبل القبول. احتفظ بنقطة تحقق صالحة وبالمعايير غير المستوفاة.
EvaluationFailedError TrainingError 6 أخفقت معايير إلزامية أو تعثر التحسن أو استمر التراجع. احتفظ بتقرير التقييم.
CheckpointError TrainingError 7 حالة الاسترداد غير صالحة أو ناقصة أو غير متطابقة. لا تفرض الاستئناف مطلقًا.
CancellationError TrainingError 7 تعذر تأكيد الإيقاف الآمن للعمال الذين تملكهم؛ أبقِ التنظيف قيد المتابعة.
ExportError TrainingError 7 الأصل غير مدعوم أو غير صالح، أو المسار غير آمن، أو فشل التحقق من checksum؛ لا تسلّمه.
TrainingError Exception 7 إخفاق التدريب الأساسي. ترثه جميع أخطاء الهدف المذكورة؛ واحتفظ بتشخيصات منقّحة.
مثال · python
import os
from fusionpointai_training import TrainingProject
from fusionpointai_training.errors import (
    AuthenticationError, BudgetExceededError, CompatibilityError,
    ConfigurationError, EvaluationFailedError, TrainingError,
)

try:
    project = TrainingProject.from_file(
        "./german-project/training.json",
        api_key=os.environ.get("FUSIONPOINTAI_API_KEY", ""),
    )
    project.plan(dry_run=True)
    project.run()
    result = project.evaluate(split="test")
except (ConfigurationError, CompatibilityError):
    print("Correct the configuration before starting a new run.")
except AuthenticationError:
    print("Check access without logging the key.")
except BudgetExceededError:
    print("Preserve the checkpoint. A larger approved budget requires a new plan.")
except EvaluationFailedError:
    print("Preserve failed criteria; do not publish this model as accepted.")
except TrainingError:
    print("Inspect redacted diagnostics; do not blindly repeat a write.")
# CancellationError, CheckpointError and ExportError also inherit TrainingError.
مثال · python
from fusionpointai_training import register_evaluator

def category_match(prediction, target, row):
    return float(prediction.strip().casefold() == target.strip().casefold())

register_evaluator("category_match", category_match, version="1")
# Register before project.plan() in the same Python process.
# In rubric.json: "metric": "category_match", "minimum_score": 0.85
# This scorer measures category equality, not open-ended semantic correctness.