وحدة 4 / 11

الذكاء الاصطناعي الموجود على الجهاز: Core ML وTensorFlow Lite وML Kit

المكاسب:

  • القدرة على اتخاذ القرار على الجهاز أو على السحابة واختيار الأداة المناسبة (ML Kit وCore ML وTensorFlow Lite) بناءً على الخصوصية والحاجة دون الاتصال بالإنترنت وحجم الطراز ومعايير البطارية
  • القدرة على منع الأخطاء الصامتة عن طريق التحقق من المعالجة المسبقة للمدخلات (الحجم والتطبيع) من مستند النموذج في تكامل النموذج
  • القدرة على تقييم درجة الثقة وقياس النتيجة بموافقة المستخدم وعلى الجهاز الحقيقي، دون تقديم توقعات منخفضة الثقة كحقيقة مطلقة.

حتى الآن، استخدمنا الذكاء الاصطناعي كوسيلة مساعدة لتسريع عملية التطوير. ننتقل الآن إلى الدور الثاني للذكاء الاصطناعي: الموهبة المضمنة في التطبيق. تتمتع الهواتف الحديثة بالقدرة على تشغيل نماذج الذكاء الاصطناعي مثل التعرف على الصور وترجمة النصوص ونسخ الكلام وما إلى ذلك مباشرةً على الجهاز (على الجهاز - في معالج الهاتف الخاص دون الانتقال إلى الخادم). الذكاء الاصطناعي على الجهاز؛ إنه يوفر مزايا رائعة مقارنة بالحلول السحابية من حيث السرعة والخصوصية والتشغيل دون اتصال بالإنترنت. في هذه الوحدة، سوف نتعلم كيفية تضمين الذكاء الاصطناعي في التطبيق باستخدام Core ML لنظام iOS، وTensorFlow Lite عبر الأنظمة الأساسية (المعروف الآن باسم LiteRT) وحل ML Kit الجاهز من Google، وكيفية استخدام الذكاء الاصطناعي كمساعد في هذا التكامل.

على الجهاز أم السحابة؟

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

المعيار

على الجهاز

السحابة (واجهة برمجة التطبيقات السحابية)

الخصوصية

تبقى البيانات على الجهاز قوية

تذهب البيانات إلى الخادم، الاهتمام مطلوب

السرعة

فوري، لا يوجد شبكة

يعتمد على الكمون الشبكة

غير متصل

إنه يعمل

لا يعمل

حجم النموذج

محدود (مورد الهاتف)

غير محدود

البطارية/الحرارة

آثار مع الاستخدام الكثيف

الخادم تحت الحمل، واسترخاء الجهاز

التكلفة

مجاني (مصدر الجهاز)

رسوم لكل استخدام

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

نصيحة: اجعل على الجهاز دائمًا الميزة الافتراضية التي تتعامل مع البيانات الحساسة (الصحة، والقياسات الحيوية، والموقع). إن عبارة "البيانات لا تترك الجهاز" لا تقدر بثمن بالنسبة للامتثال للخصوصية وثقة المستخدم، وتحدث فرقًا كبيرًا في ملصق خصوصية المتجر.

ثلاث طرق: ML Kit، Core ML، TensorFlow Lite

تعد ML Kit (Google) هي أسهل طريقة للبدء: فهي توفر إمكانات جاهزة مثل التعرف على النص (OCR - قراءة النص في الصورة)، واكتشاف الوجه، وقراءة الرمز الشريطي، والترجمة في بضعة أسطر. لا تحتاج إلى تدريب النموذج الخاص بك. Core ML (Apple) هي الطريقة الأكثر فعالية لتشغيل النموذج الخاص بك أو النموذج الجاهز على iOS؛ ويستخدم جهاز Apple Neural Engine (معالج الشبكة العصبية الاصطناعية). TensorFlow Lite/LiteRT هو حل متعدد المنصات يسمح لك بتشغيل النموذج المدرب الخاص بك على كل من Android وiOS.

يسير تدفق التكامل العام مع الذكاء الاصطناعي على النحو التالي:

  1. تعريف الموهبة. هدف واضح، مثل "أريد قراءة النص الموجود في الصورة".
  2. اختيار المسار. إذا كانت هناك موهبة جاهزة، ML Kit؛ Core ML/TF Lite في حالة توفر طراز خاص.
  3. تنسيق النموذج. .mlmodel (Core ML)، .tflite (TF Lite). يشرح خطوات التحول للذكاء الاصطناعي.
  4. رمز التكامل. تحميل النموذج، ومعالجة المدخلات، وتفسير المخرجات.
  5. اختبار الأداء. السرعة والذاكرة وقياس البطارية على الجهاز الحقيقي.
تنبيه: خطأ الذكاء الاصطناعي الأكثر شيوعًا في تكامل النموذج على الجهاز هو المعالجة المسبقة للإدخال - تحويل الصورة إلى تنسيق الحجم واللون الذي يتوقعه النموذج. إذا كان النموذج يتوقع 224 × 224 بكسل وأعطيته 300 × 300، فستكون النتيجة بلا معنى، لكنك لن تتلقى رسالة خطأ. التحقق من قيم المعالجة المسبقة من وثيقة النموذج.

معرفة حدود النموذج

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

ثلاث حالات صغيرة

الحالة 1 - التسريع باستخدام التعرف الضوئي على الحروف. لقد أزال تطبيق تتبع النفقات عبء إدخال الإيصالات يدويًا باستخدام التعرف على النص في ML Kit. يقوم المستخدم بالتقاط صورة للإيصال، ويتم تعبئة المبلغ والتاريخ تلقائيًا. انخفض وقت الإدخال اليدوي من 40 ثانية إلى 8 ثوانٍ لكل إيصال. كان الفريق دائمًا يطلب من المستخدم تأكيد المبلغ الذي قرأه الذكاء الاصطناعي؛ لأن الإيصالات المجعدة بها هامش خطأ بنسبة 6٪. كانت الأتمتة + موافقة الإنسان هي التوازن الصحيح.

الحالة 2 - خطأ في المعالجة المسبقة. قام أحد الفرق بدمج نموذج التعرف على النباتات مع TensorFlow Lite؛ في الاختبار، كانت النتائج عشوائية. كانت المشكلة هي أن الكود الذي أنشأه الذكاء الاصطناعي لم يقم بتطبيع الصورة إلى النطاق [0,1] الذي توقعه النموذج (تُركت قيم البكسل عند 0-255). عند إضافة التطبيع، زادت الدقة من 30% إلى 89%. الدرس المستفاد: المعالجة المسبقة صامتة ولكنها مميتة.

الحالة 3 - مكاسب الخصوصية. اكتشف أحد التطبيقات الصحية وجود خلل في بيانات معدل ضربات القلب باستخدام نموذج Core ML الموجود على الجهاز. البيانات لم تذهب أبدا إلى الخادم. وقد مكّن هذا الاختيار التطبيق من تلقي عبارة "لا يجمع البيانات" في علامة الخصوصية في متجر التطبيقات وزاد من معدل تنزيله مقارنة بالمنافسين. كان الاختيار على الجهاز أخلاقيًا ومربحًا تجاريًا.

موجه ضعيف / موجه قوي

مطالبة ضعيفة: "أضف ميزة التعرف على الصور إلى تطبيقي."

مطالبة قوية: "أضف ميزة قراءة المبلغ والتاريخ إلى تطبيق Android/Kotlin الخاص بي. - استخدم Google ML Kit للتعرف على النص (على الجهاز، دون الاتصال بالإنترنت) - التقط صورة من الكاميرا أو المعرض - استخرج المبلغ والتاريخ من النص الذي تم التعرف عليه باستخدام التعبير العادي - قدم النتيجة إلى المستخدم للموافقة عليها في الحقل القابل للتحرير، والحفظ التلقائي - التعامل مع تدفق إذن الكاميرا ورفضه. اكتب حالات المعالجة المسبقة والأخطاء، واشرح الخطوات."

قوالب قابلة للنسخ

قالب اختيار المسار: "أريد إنشاء الميزة التالية: [الميزة]. هل يجب أن تكون على الجهاز أم على السحابة؟ قارن بناءً على: الخصوصية، والحاجة دون الاتصال بالإنترنت، وحجم النموذج، والبطارية، والتكلفة. أوصي بالأداة المناسبة (ML Kit / Core ML / TF Lite) وقم بالتبرير."

قالب التكامل: "اكتب تكامل [النموذج/القدرة] لـ [النظام الأساسي]:1) تحميل النموذج 2) المعالجة المسبقة للإدخال (الحجم المتوقع والتطبيع) 3) استدعاء الاستدلال 4) تفسير المخرجات والتحقق من درجة الثقة 5) تحذير للمستخدم بشأن نتيجة منخفضة الثقة ذكرني بالتحقق من قيم المعالجة المسبقة من وثائق النموذج."

قالب نقاط الثقة:"ضع في اعتبارك درجة الثقة في رمز الاستدلال هذا: - اعرض النتيجة "بالضبط" أقل من الحد الأدنى (على سبيل المثال 0.6) - أظهر ملاحظة "هذا تقدير" للمستخدم - ارجع إلى الخبير إذا كان المجال حرجًا (الصحة والسلامة) [الرمز]"

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

الأخطاء الشائعة

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

في ملخص

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

مهمة التطبيق

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

قائمة مرجعية

  • [ ] لقد اتخذت القرار على الجهاز/السحابة بناءً على المعايير
  • [ ] اخترت الأداة المناسبة (ML Kit / Core ML / TF Lite)
  • [ ] لقد قمت بالتحقق من بُعد المعالجة المسبقة والتطبيع من وثائق النموذج
  • [ ] لقد تحققت من درجة الثقة وحذرت من نتائج الثقة المنخفضة
  • [ ] لقد قدمت النتيجة للمستخدم مع الموافقة/التحرير، ولم أحفظها بشكل أعمى
  • [ ] قمت بقياس الأداء على الجهاز الحقيقي، وليس على المحاكي