انضم إلى مجتمع SIG TFX-Addons وساعد في جعل TFX أفضل!

بنيان

خدمة TensorFlow عبارة عن نظام خدمة مرن وعالي الأداء لنماذج التعلم الآلي ، مصمم لبيئات الإنتاج. تسهل خدمة TensorFlow نشر خوارزميات وتجارب جديدة ، مع الحفاظ على نفس بنية الخادم وواجهات برمجة التطبيقات. توفر خدمة TensorFlow تكاملاً خارج الصندوق مع نماذج TensorFlow ، ولكن يمكن توسيعها بسهولة لخدمة أنواع أخرى من النماذج.

المفاهيم الرئيسية

لفهم بنية خدمة TensorFlow ، تحتاج إلى فهم المفاهيم الأساسية التالية:

الصالونات

المخدمات هي التجريد المركزي في خدمة TensorFlow. الخوادم هي الكائنات الأساسية التي يستخدمها العملاء لإجراء العمليات الحسابية (على سبيل المثال ، البحث أو الاستدلال).

حجم وتفصيل المواد القابلة للخدمة مرنة. قد يتضمن العرض الفردي أي شيء من جزء واحد من جدول بحث إلى نموذج واحد إلى مجموعة نماذج الاستدلال. يمكن أن تكون الخوادم من أي نوع وواجهة ، مما يتيح المرونة والتحسينات المستقبلية مثل:

  • نتائج التدفق
  • واجهات برمجة التطبيقات التجريبية
  • طرق التشغيل غير المتزامنة

لا تدير الخوادم دورة حياتها الخاصة.

تشمل الخدمات النموذجية ما يلي:

  • a TensorFlow SavedModelBundle ( tensorflow::Session )
  • جدول بحث للتضمين أو عمليات البحث عن المفردات

إصدارات قابلة للخدمة

يمكن أن تتعامل خدمة TensorFlow مع إصدار واحد أو أكثر من الإصدارات القابلة للخدمة على مدار عمر مثيل خادم واحد. يتيح ذلك تحميل تكوينات خوارزمية جديدة وأوزان وبيانات أخرى بمرور الوقت. تتيح الإصدارات تحميل أكثر من إصدار واحد للخدمة بشكل متزامن ، مما يدعم الطرح التدريجي والتجريب. في وقت العرض ، قد يطلب العملاء إما أحدث إصدار أو معرف إصدار محدد ، لطراز معين.

تيارات صالحة للخدمة

الدفق القابل للخدمة هو تسلسل إصدارات قابلة للخدمة ، يتم فرزها عن طريق زيادة أرقام الإصدارات.

عارضات ازياء

تمثل خدمة TensorFlow نموذجًا كخدمة واحدة أو أكثر. قد يتضمن النموذج الذي يتم تعلمه آليًا واحدًا أو أكثر من الخوارزميات (بما في ذلك الأوزان التي تم تعلمها) وجداول البحث أو التضمين.

يمكنك تمثيل نموذج مركب كأي مما يلي:

  • العديد من الخوادم المستقلة
  • مركب واحد للخدمة

قد تتوافق الخدمة أيضًا مع جزء صغير من النموذج. على سبيل المثال ، يمكن تقسيم جدول بحث كبير عبر العديد من مثيلات خدمة TensorFlow.

لوادر

رافعات إدارة دورة حياة قابل للعرض و. تعمل واجهة برمجة تطبيقات Loader على تمكين البنية التحتية المشتركة بشكل مستقل عن خوارزميات التعلم المحددة أو البيانات أو حالات استخدام المنتج المعنية. على وجه التحديد ، تقوم اللوادر بتوحيد واجهات برمجة التطبيقات لتحميل وتفريغ جهاز قابل للخدمة.

مصادر

المصادر عبارة عن وحدات برامج إضافية تبحث عن الخوادم وتوفرها. يوفر كل مصدر صفرًا أو أكثر من التدفقات القابلة للخدمة. لكل دفق قابل للخدمة ، يوفر المصدر مثيل محمل واحد لكل إصدار يتيحه للتحميل. (يتم ربط المصدر فعليًا مع صفر أو أكثر من محولات المصدر ، وآخر عنصر في السلسلة ينبعث من اللوادر.)

يمكن لواجهة TensorFlow Serving الخاصة بالمصادر اكتشاف الخوادم من أنظمة التخزين العشوائية. تتضمن خدمة TensorFlow تطبيقات المصدر المرجعية المشتركة. على سبيل المثال ، قد تصل المصادر إلى آليات مثل RPC ويمكنها استقصاء نظام الملفات.

يمكن أن تحافظ المصادر على الحالة المشتركة عبر العديد من الخوادم أو الإصدارات. هذا مفيد للأجهزة التي تستخدم تحديثات دلتا (فرق) بين الإصدارات.

إصدارات مستوحاة

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

اطلع على البرنامج التعليمي المتقدم لمعرفة كيفية عمل تحميل الإصدار عمليًا.

المديرين

يتعامل المديرون مع دورة الحياة الكاملة للخوادم ، بما في ذلك:

  • تحميل الخوادم
  • خدمة الخدم
  • تفريغ الخوادم

يستمع المديرون إلى المصادر ويتتبعون جميع الإصدارات. يحاول المدير تلبية طلبات المصادر ، ولكنه قد يرفض تحميل إصدار مرغوب فيه ، على سبيل المثال ، إذا كانت الموارد المطلوبة غير متوفرة. يمكن للمديرين أيضًا تأجيل "التفريغ". على سبيل المثال ، قد ينتظر المدير لإلغاء التحميل حتى ينتهي تحميل إصدار أحدث ، بناءً على سياسة لضمان تحميل إصدار واحد على الأقل في جميع الأوقات.

توفر مديري خدمة TensorFlow واجهة بسيطة وضيقة - GetServableHandle() - للعملاء للوصول إلى المثيلات المحملة GetServableHandle() .

النواة

باستخدام TensorFlow Service APis القياسي ، يدير TensorFlow Serving Core الجوانب التالية من الخدمات:

  • دورة الحياة
  • المقاييس

يتعامل مركز خدمة TensorFlow مع المواد القابلة للخدمة واللوادر على أنها أشياء غير شفافة.

حياة قابلة للخدمة

tf تخدم مخطط العمارة

بشكل عام:

  1. تقوم المصادر بإنشاء محمل للإصدارات القابلة للخدمة.
  2. يتم إرسال اللوادر كإصدارات مستوحاة إلى المدير ، والتي تقوم بتحميلها وخدمتها لطلبات العميل.

بتفاصيل اكثر:

  1. يُنشئ المكون الإضافي المصدر أداة تحميل لإصدار معين. يحتوي اللودر على أي بيانات وصفية يحتاجها لتحميل الخدمة.
  2. يستخدم المصدر رد اتصال لإخطار مدير الإصدار Aspired.
  3. يطبق المدير سياسة الإصدار المكونة لتحديد الإجراء التالي الذي يجب اتخاذه ، والذي قد يكون إلغاء تحميل إصدار تم تحميله مسبقًا أو تحميل الإصدار الجديد.
  4. إذا قرر المدير أنه آمن ، فإنه يمنح اللودر الموارد المطلوبة ويخبر اللودر بتحميل الإصدار الجديد.
  5. يطلب العملاء من المدير الخدمة القابلة للخدمة ، إما بتحديد إصدار صريحًا أو مجرد طلب أحدث إصدار. يقوم المدير بإرجاع مؤشر للخدمة.

على سبيل المثال ، لنفترض أن المصدر يمثل رسمًا بيانيًا TensorFlow مع أوزان نموذج محدثة بشكل متكرر. يتم تخزين الأوزان في ملف على القرص.

  1. يكتشف المصدر إصدارًا جديدًا من أوزان النموذج. يقوم بإنشاء أداة تحميل تحتوي على مؤشر لبيانات النموذج على القرص.
  2. يقوم المصدر بإخطار المدير الديناميكي للإصدار المأمول.
  3. يطبق Dynamic Manager سياسة الإصدار ويقرر تحميل الإصدار الجديد.
  4. يخبر Dynamic Manager المحمل أن هناك ذاكرة كافية. ينشئ اللودر الرسم البياني TensorFlow بالأوزان الجديدة.
  5. يطلب العميل مقبض إلى أحدث إصدار من النموذج ، ويعيد Dynamic Manager مقبض إلى الإصدار الجديد من الخدمة.

التمدد

توفر خدمة TensorFlow العديد من نقاط الامتداد حيث يمكنك إضافة وظائف جديدة.

سياسة الإصدار

تحدد سياسات الإصدار تسلسل تحميل الإصدار وتفريغه ضمن دفق واحد قابل للخدمة.

تتضمن خدمة TensorFlow سياستين تستوعبان حالات الاستخدام الأكثر شهرة. هذه هي سياسة الحفاظ على التوافر (تجنب ترك أي إصدارات محملة ؛ عادةً تحميل إصدار جديد قبل تفريغ نسخة قديمة) ، وسياسة الحفاظ على الموارد (تجنب تحميل نسختين في وقت واحد ، مما يتطلب مضاعفة الموارد ؛ قم بإلغاء تحميل إصدار قديم قبل التحميل واحد جديد). من أجل الاستخدام البسيط لخدمة TensorFlow حيث يكون توافر الخدمة للنموذج مهمًا وتكاليف الموارد منخفضة ، ستضمن سياسة الحفاظ على التوافر تحميل الإصدار الجديد وجاهزيته قبل تفريغ الإصدار القديم. من أجل الاستخدام المتطور لخدمة TensorFlow ، على سبيل المثال إدارة الإصدارات عبر مثيلات خادم متعددة ، تتطلب سياسة الحفاظ على الموارد أقل الموارد (لا يوجد مخزن مؤقت إضافي لتحميل إصدارات جديدة).

مصدر

يمكن أن تدعم المصادر الجديدة أنظمة الملفات الجديدة والعروض السحابية والخوارزمية الخلفية. توفر خدمة TensorFlow بعض اللبنات الأساسية الشائعة لتسهيل إنشاء مصادر جديدة وسرعتها. على سبيل المثال ، تتضمن خدمة TensorFlow أداة مساعدة لالتفاف سلوك الاقتراع حول مصدر بسيط. ترتبط المصادر ارتباطًا وثيقًا باللوادر لخوارزميات محددة وخدمات استضافة البيانات.

راجع مستند المصدر المخصص لمزيد من المعلومات حول كيفية إنشاء مصدر مخصص.

لوادر

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

راجع مستند Custom Servable للتعرف على كيفية إنشاء ملف مخصص قابل للخدمة.

باتشر

يمكن أن يؤدي تجميع طلبات متعددة في طلب واحد إلى تقليل تكلفة إجراء الاستدلال بشكل كبير ، لا سيما في وجود مسرعات الأجهزة مثل وحدات معالجة الرسومات. تتضمن خدمة TensorFlow أداة تجميع الطلبات التي تتيح للعملاء تجميع الاستنتاجات الخاصة بالنوع بسهولة عبر الطلبات في الطلبات المجمعة التي يمكن لأنظمة الخوارزمية معالجتها بكفاءة أكبر. راجع دليل التجميع لمزيد من المعلومات.