التعلم الآلي / الدليل والمسؤولية التشغيلية / الدرس 17
عقود النشر وقابلية إعادة الإنتاج
حزم الإجراء المتعلم كله بمخطط استدلال متحقق ومصدر وحد تراجع قابل للمراجعة.
في هذه الصفحة
أهداف الدرس
- النموذج المنشور أكثر من معاملات
- تطبيق إجراء خطي مجمد بفحوص صريحة
- إعادة الإجراء والتحقق من الإصدار
النموذج المنشور أكثر من معاملات
يشمل الأثر المعالجة والمقدر والهدف والمعايرة والقرار والمخطط والتشغيل. تبهم المعاملات بلا ترتيب ووحدة. احفظ البيانات والتقسيم والكود والحزم والاختيار للتدقيق لا لإثبات مشروعية وصحة العينة. لتحدد النسخة حزمة ثابتة مراجعة لا اسما يستبدل، وخطط الاختيار والعودة للسليمة. ولا يثبت سجل البيانات والإعدادات وحده أنها صحيحة أو ممثلة أو مسموحة الاستخدام، بل يدعم التدقيق وإعادة الإجراء مع بقاء هذه الضمانات مطالب منفصلة.
التحقق من الحد قبل الحساب
افحص الحقول والترتيب والنوع والوحدة والمحدودية والفئة والغياب والدفعة قبل الضرب؛ قد يعطي البث شكلا مضللا. ارفض أو طبق بديلا لا صفرا لكل فشل. احفظ حتمية العقد. ليست الدالة خدمة كاملة؛ تبقى المصادقة والحدود والنقل والهوية والتفويض خارج المثال المحلي. وقد ينتج البث العددي ناتجا يبدو معقولا عند توافق أبعاد عرضي، لذلك يجب فحص الاسم والوحدة والمعنى قبل اعتبار نجاح الضرب دليلا على صحة الاستدلال.
تطبيق إجراء خطي مجمد بفحوص صريحة
يحفظ المثال الأسماء والمتوسط والمقياس والمعامل والثابت ويفحص الترتيب والبنية ثم يطبق الثابت. يرفض الأسماء المعكوسة قبل التنبؤ، وأرقامه مصطنعة بلا جودة تدريب. اختبر منفردا ودفعة وحدودا ومجهولا واتفاق الناتج. إذا لزم الامتناع فأظهره لا رقما يوهم بالثقة. ويجب أن يكون الامتناع أو طلب المراجعة ناتجا معلنا إذا احتاجه المنتج، بدلا من إرجاع عدد يمكن أن يفسره النظام اللاحق قرارا واثقا رغم فشل العقد.
import numpy as np
feature_names = ["bookings", "days"]
mean = np.array([1.0, 2.0])
scale = np.array([2.0, 1.0])
coef = np.array([1.0, 2.0])
def predict(values, names):
if list(names) != feature_names:
raise ValueError("Feature order mismatch")
X = np.asarray(values, dtype=float)
if X.ndim != 2 or X.shape[1] != 2 or not np.isfinite(X).all():
raise ValueError("Invalid feature matrix")
return 0.5 + ((X - mean) / scale) @ coef
print(predict([[3.0, 5.0], [4.0, 6.0]], feature_names).tolist())
try:
predict([[3.0, 5.0]], ["days", "bookings"])
except ValueError as error:
print(error)
[7.5, 10.0]
Feature order mismatch
تعطي الحسابات تنبؤين وتُرفض الدلالة المعكوسة رغم صلاحية الشكل.
حفظ الأثر بسياسة ثقة
يسلسل المثال JSON حتميا ويحسب بصمة تحدد التغير لا هوية المنشئ والثقة. قد ينفذ pickle كودا فلا تحمل مجهولا لامتداده. تتجنب JSON ذلك وتحتاج مخططا وحجما ومعنى. وللمكتبة توافق إصدارات فسجل واختبر لا تفترض تحميل المستقبل بأمان وتطابق. ولا تصادق البصمة وحدها منشئ الأثر أو تبيح نشره، كما أن JSON التي تتجنب تنفيذ الكائنات ما زالت تحتاج إلى حدود حجم ومخطط وفحص دلالي قبل الاستخدام.
import hashlib
import json
manifest = {"model_version": "synthetic-linear-v1", "feature_names": ["bookings", "days"], "training_data_id": "lab-v1", "numpy_version": "1.26.4"}
text = json.dumps(manifest, sort_keys=True, separators=(",", ":"))
digest = hashlib.sha256(text.encode("utf-8")).hexdigest()
loaded = json.loads(text)
print(loaded["feature_names"])
print(len(digest), hashlib.sha256(text.encode("utf-8")).hexdigest() == digest)
['bookings', 'days']
64 True
يعود البيان محليا وتعيد البايتات البصمة دون تحميل مصدر غير موثوق.
إعادة الإجراء والتحقق من الإصدار
تضبط البذرة مصدرا ولا تحدد ترتيب البيانات والتوازي والمكتبات والعتاد وكل التدريب. ثبت البيئة والإجراء واستخدم سماحية لا تطابق بتات شامل. قارن العينة عبر كود التدريب والاستدلال وافحص البديل والزمن والتراجع والرصد بعزل. لا ينشر المقرر خدمة أو نموذجا خارجيا ولا يثبت موثوقية إنتاج ودقة مستقبلية. وقد تبقى فروق عددية من المكتبات والتوازي والعتاد رغم ثبات البذرة، لذلك تسجل البيئة والإجراء وتقارن بثوابت وسماحيات مناسبة بدلا من وعد تطابق بتات في كل مكان.
الأخطاء الشائعة وإصلاحها
تختلف النتائج رغم عمل الخدمة
- لماذا يحدث؟
- اختلف المخطط والتحويل والتشغيل.
- كيف تصلحه؟
- قارن الإجراء نفسه بالعينة.
- كيف تتجنب تكراره؟
- أصدر كل الدلالة والتحويل معا.
يحمل النموذج كبيانات بريئة
- لماذا يحدث؟
- وُثق تنسيق قادر على التنفيذ.
- كيف تصلحه؟
- راجع الثقة والتنسيق.
- كيف تتجنب تكراره؟
- تحقق من المصدر والتوافق.
تعد البذرة إعادة كاملة
- لماذا يحدث؟
- أغفل تغير البيانات والتنفيذ.
- كيف تصلحه؟
- وثق الكل.
- كيف تتجنب تكراره؟
- حدد سماحية عددية.
اختبر فهمك
1. لماذا تبطل مصفوفة عمودين لنموذج خاصيتين؟
اعرض الحل المشروح
قد تعكس الأعمدة والوحدات والقاموس. تحقق من الاسم والتحويل والشكل والمحدودية؛ لا يثبت الضرب المعنى. وقد يعمل الضرب العددي بلا استثناء رغم هذا الاختلاف، ولذلك يجب أن يسبق الفحص الدلالي إعلان قبول المدخل.
2. ماذا لا تثبته بصمة المحتوى؟
اعرض الحل المشروح
لا تصادق المنشئ وتفوض النشر وتصحح البيانات وتؤمن التسلسل التنفيذي؛ تعرف المحتوى. أبق الثقة والمخطط والتشغيل متطلبات منفصلة. وتظل الثقة بالمصدر وصلاحية المخطط وتوافق بيئة التشغيل شروطا منفصلة لا تحققها بصمة ذات طول صحيح.
أهم ما تعلمته
- انشر العقد كله لا الأوزان.
- تحقق من الدلالة قبل الحساب.
- تحتاج الإعادة والثقة أكثر من بذرة وبصمة.