Machine Learning Mastery: مفاهيم Python التي يجب على مهندس الذكاء الاصطناعي إتقانها للإنتاج
نشر Machine Learning Mastery دليلاً حول مفاهيم Python الأساسية لمهندسي الذكاء الاصطناعي—بدونها، أنت تبني نماذج أولية فقط. الانتقال من النصوص البرمجية المحلية…
معالج بواسطة الذكاء الاصطناعي من Machine Learning Mastery؛ بتحرير Hamidun News
الأنواع والهياكل البيانية تسمح دفاتر Jupyter بتجاهل الأنواع والعمل مع القواموس العادية. الإنتاج لا يسمح بذلك. التعليقات التوضيحية للنوع و `dataclasses` تحول الكود إلى عقد موثق ذاتياً بين المكونات. Pydantic يذهب أبعد: التحقق من صحة البيانات المدخلة في وقت التشغيل — يتم اكتشاف الأخطاء عند الإدخال، وليس عندما تكون البيانات قد فسدت بالفعل في قاعدة البيانات.
- `TypedDict` — قواموس مكتوبة بدلاً من `dict` العادي
- `dataclasses.dataclass` — هياكل بدون boilerplate غير ضروري
- `Pydantic BaseModel` — التحقق من الصحة والتسلسل جاهزة للاستخدام
- `Protocol` — duck typing مع التحقق على مستوى الأدوات
الكتابة الصارمة ليست تدقيقاً. إنها حماية ضد الأخطاء التي تمر دون أن يلاحظها أحد في التجارب، لكنها تكلف ساعات من التصحيح في الإنتاج.
عدم التزامن والتوازي
غالباً ما تنتظر أنظمة الذكاء الاصطناعي: ردود من واجهات برمجة تطبيقات LLM، نتائج من قاعدة البيانات، عمليات الملفات. الكود المتزامن الحاجز يقتل الإنتاجية — بينما ينتظر طلب واحد، يتوقف كل شيء آخر.
`asyncio` و `async/await` تسمح بمعالجة مئات الطلبات المتزامنة بدون مواضيع إضافية.
"Async ليس تحسيناً للأداء، بل هو قرار معماري. إذا لم يتم وضعه منذ
البداية، فسيتعين عليك إعادة كتابة النظام بأكمله لاحقاً."
للمهام المرتبطة بوحدة المعالجة المركزية (المعالجة المسبقة، الاستدلال على دفعات) تعمل `ProcessPoolExecutor`. للمهام المتعلقة بالإدخال/الإخراج (طلبات API LLM، قراءة الملفات) — `asyncio.gather()`. خلط بينها بدون فهم هو طريق مؤكد نحو race conditions والجمود.
المولدات وإدارة الذاكرة
خطأ كلاسيكي في الكود التجريبي — تحميل مجموعة البيانات بأكملها في الذاكرة. على كمبيوتر محمول به 32 جيجابايت يعمل. في الإنتاج مع تيرابايتات من البيانات أو في الحالات المحدودة — خروج من الذاكرة فوري.
المولدات (`yield`) تسمح بمعالجة البيانات كتدفق: سجل واحد في كل مرة أو على دفعات بدون تراكم في الذاكرة. مديرو السياق (`with`) يضمنون تحرير الموارد — اتصالات قاعدة البيانات، واصفات الملفات، ذاكرة GPU — حتى عند الاستثناءات.
تجمع `yield` + `with` يعمل بنفس الجودة لملف بحجم 1 ميجابايت وملف بحجم 100 جيجابايت — هذا بالضبط كيفية بناء خطوط الاستدلال على الإنتاج.
القابلية للاختبار والمزخرفات
التسجيل، التخزين المؤقت، منطق إعادة المحاولة، التتبع — كل هذا يشبع الكود على الإنتاج. بدون مزخرفات، تتكرر هذه الاهتمامات العابرة في مئات الأماكن.
`@retry`, `@cache`, `@trace` — مرة واحدة مكتوبة، قابلة للتطبيق على أي وظيفة في سطر واحد.
يجعل حقن الاعتماديات المكونات قابلة للاختبار: يتم تمرير الاعتماديات (عميل LLM، موصل قاعدة البيانات) من الخارج، وليس إنشاؤها داخل الوظيفة. في الاختبارات، يحل كائن وهمي بنفس الواجهة محل LLM الحقيقي. تعمل الاختبارات بدون اتصال بسرعة وبطريقة قابلة للتكرار.
بدون هذا النمط، من العملي جداً اختبار نظام الذكاء الاصطناعي بالكامل.
ما يعني هذا
الفجوة بين تجربة ML وحاصل AI ليست فجوة في الرياضيات أو جودة النموذج. إنها فجوة في هندسة البرمجيات.
إتقان هذه الأنماط في Python يعني التوقف عن إعادة كتابة الكود قبل ثلاثة أيام من النشر والبدء في بناء الأنظمة التي تتعامل مع الحمل الحقيقي من اليوم الأول.
هل تريد التوقف عن قراءة الذكاء الاصطناعي والبدء باستخدامه؟
AI News هو موجز منسق لأخبار الذكاء الاصطناعي. تعلمك Hamidun Academy استخدام الذكاء الاصطناعي في عملك.