التخفيف من زمن الانتقال وتحسين الأداء

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

تخفيف زمن الانتقال

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

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

يصف هذا القسم كيف يمكنك التخفيف من الأسباب المختلفة لزمن الانتقال الخاص بخدمة Azure الذكاء الاصطناعي Face.

إشعار

لا توفر خدمات Azure الذكاء الاصطناعي أي اتفاقية على مستوى الخدمة (SLA) بشأن زمن الانتقال.

اختر المنطقة المناسبة لمورد Face

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

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

استخدام تخزين Azure blob لعناوين URL البعيدة

توفر خدمة Face طريقتين لتحميل الصور للمعالجة: تحميل بيانات البايت الخام للصورة مباشرة في الطلب، أو توفير عنوان URL لصورة بعيدة. بغض النظر عن الأسلوب، تحتاج خدمة Face إلى تنزيل الصورة من موقعها المصدر. إذا كان الاتصال من خدمة Face بالعميل أو الخادم البعيد بطيئا أو ضعيفا، فإنه يؤثر على وقت استجابة الطلبات. إذا كانت لديك مشكلة في زمن الانتقال، ففكر في تخزين الصورة في Azure Blob Storage وتمرير عنوان URL للصورة في الطلب. لمزيد من تفاصيل التنفيذ، راجع تخزين الصورة في Azure Premium Blob Storage. مثال استدعاء واجهة برمجة التطبيقات:

var faces = await client.Face.DetectWithUrlAsync("https://<storage_account_name>.blob.core.windows.net/<container_name>/<file_name>");

تأكد من استخدام حساب تخزين في نفس المنطقة مثل مورد Face. يقلل هذا من زمن انتقال الاتصال بين خدمة Face وحساب التخزين.

استخدام أحجام الملفات المثلى

إذا كانت ملفات الصور التي تستخدمها كبيرة، فإنه يؤثر على وقت استجابة خدمة Face بطريقتين:

  • يستغرق تحميل الملف المزيد من الوقت.
  • يستغرق الأمر مزيدا من الوقت للخدمة لمعالجة الملف، بالتناسب مع حجم الملف.

المفاضلة بين الدقة وسرعة الشبكة

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

لتحقيق التوازن الأمثل بين الدقة والسرعة، اتبع هذه التلميحات لتحسين بيانات الإدخال الخاصة بك.

تلميحات أخرى حول حجم الملف

لاحظ التلميحات الإضافية التالية:

  • للكشف عن الوجه، عند استخدام نموذج DetectionModel.Detection01الكشف، يؤدي تقليل حجم ملف الصورة إلى زيادة سرعة المعالجة. عند استخدام نموذج DetectionModel.Detection02الكشف ، سيؤدي تقليل حجم ملف الصورة إلى زيادة سرعة المعالجة فقط إذا كان ملف الصورة أصغر من 1920x1080 بكسل.
  • للتعرف على الوجه، سيؤدي تقليل حجم الوجه إلى زيادة السرعة فقط إذا كانت الصورة أصغر من 200x200 بكسل.
  • يعتمد أداء أساليب الكشف عن الوجه أيضا على عدد الوجوه الموجودة في الصورة. يمكن لخدمة الوجه إرجاع ما يصل إلى 100 وجه للصورة. يتم ترتيب الوجوه حسب حجم مستطيل الوجه من كبير إلى صغير.

استدعاء واجهات برمجة التطبيقات بالتوازي عندما يكون ذلك ممكنا

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

var faces_1 = client.Face.DetectWithUrlAsync("https://www.biography.com/.image/t_share/MTQ1MzAyNzYzOTgxNTE0NTEz/john-f-kennedy---mini-biography.jpg");
var faces_2 = client.Face.DetectWithUrlAsync("https://www.biography.com/.image/t_share/MTQ1NDY3OTIxMzExNzM3NjE3/john-f-kennedy---debating-richard-nixon.jpg");

Task.WaitAll (new Task<IList<DetectedFace>>[] { faces_1, faces_2 });
IEnumerable<DetectedFace> results = faces_1.Result.Concat (faces_2.Result);

سلسة على حركة المرور الرصينة

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

معالجة الأخطاء بفعالية

قد تحدث الأخطاء و 503 على استدعاءات 429 واجهة برمجة تطبيقات Face لأسباب مختلفة. يجب أن يكون تطبيقك جاهزا دائما للتعامل مع هذه الأخطاء. فيما يلي بعض التوصيات:

رمز الخطأ HTTP ‏‏الوصف التوصية
429 التحكم بالنطاق الترددي* قد تواجه حدا لمعدل المكالمات المتزامنة. يجب تقليل تكرار المكالمات وإعادة المحاولة مع التراجع الأسي. تجنب إعادة المحاولة الفورية وتجنب إعادة إرسال العديد من الطلبات في وقت واحد.

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

ضمان الموثوقية والدعم

فيما يلي نصائح أخرى لضمان الموثوقية والدعم العالي للتطبيق الخاص بك:

  • إنشاء GUID فريد كعنوان client-request-id طلب HTTP وإرساله مع كل طلب. يساعد هذا Microsoft على التحقق من أي أخطاء بسهولة أكبر إذا كنت بحاجة إلى الإبلاغ عن مشكلة مع Microsoft.
    • سجل دائما الاستجابة client-request-id و التي تلقيتها عند مواجهة استجابة غير متوقعة. إذا كنت بحاجة إلى أي مساعدة، فوفر هذه المعلومات إلى دعم Microsoft، إلى جانب معرف مورد Azure والفترة الزمنية التي حدثت فيها المشكلة.
  • إجراء اختبار تجريبي قبل إصدار التطبيق الخاص بك في الإنتاج. تأكد من أن التطبيق الخاص بك يمكنه التعامل مع الأخطاء بشكل صحيح وفعال.

الخطوات التالية

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