Less Is More: Engineering Challenges of On-Device Small Language Model Integration in a Mobile Application
تقدم هذه الورقة دراسة حالة طولية حول دمج نماذج اللغات الصغيرة التي تعمل على الجهاز داخل تطبيق أندرويد في بيئة إنتاجية، كاشفةً أنه على الرغم من كون ذلك ممكناً، فإن التكامل الناجح يتطلب تحولاً معمارياً براغماتياً حيث يتم تقليل مسؤوليات نموذج اللغة الكبير والاعتماد على استراتيجيات دفاعية قوية للتغلب على تحديات هندسية محددة مثل انتهاكات المخرجات وزمن الاستجابة.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أن لديك طباخاً بارعاً وعالمياً (ذكاء اصطناعي سحابي) يمكنه إعداد وجبة من 10 أطباق مثالية بطلب واحد. الآن، تخيل محاولة حشر هذا الطباخ نفسه في صندوق غداء صغير ومحمول (هاتفك الذكي) ليطبخ لك بينما أنت في رحلة تخييم، دون وجود كهرباء أو إنترنت.
هذا هو التحدي الذي يستكشفه هذا البحث. حاول المؤلف، ويليام أوليفيرا، تقليص حجم "نموذج لغوي صغير" (ذكاء اصطناعي مصغر) ليناسب داخل لعبة هاتف محمولة تسمى Palabrita (لعبة تخمين الكلمات مثل Wordle). كان الهدف هو السماح للذكاء الاصطناعي بإنشاء ألغاز اللعبة والتلميحات بالكامل دون اتصال بالإنترنت، مع الحفاظ على خصوصية بياناتك وسرعة هاتفك.
إليك قصة ما حدث، تُروى ببساطة.
الحلم الكبير مقابل الواقع الضئيل
الحلم: بدأ المؤلف بخطة طموحة. أراد أن يعمل الذكاء الاصطناعي كمصمم ألعاب ماهر. في كل مرة تحتاج فيها اللعبة إلى مستوى جديد، سيقوم الذكاء الاصطناعي فوراً باختراع كلمة جديدة تماماً، ويقرر مدى صعوبتها، ويختار فئة، ويكتب خمسة تلميحات ذكية—كل ذلك بتنسيق JSON مثالي (لغة برمجية مهيكلة).
الواقع: الذكاء الاصطناعي، الذي تم ضغطه في صندوق الغداء الضئيل للهاتف، لم يستطع تحمل هذا القدر من الضغط. كان الأمر يشبه مطالبة متدرب متعب ومجهد بالقيام بمهمة فريق تنفيذي كامل. استمر الذكاء الاصطناعي في ارتكاب الأخطاء:
- خلل الـ "Markdown": بدلاً من تقديم كود نظيف، كان يضع إجابته داخل صناديق ماركداون مزخرفة (مثل
```json) مما يؤدي إلى تعطل اللعبة. - مشكلة "العد": إذا طلبت اللعبة كلمة مكونة من 5 أحرف، سيقدم الذكاء الاصطناعي بثقة كلمة مكونة من 7 أحرف. ببساطة، لم يستطع عد الأحرف بشكل موثوق.
- تسرب "اللغة": حتى عندما يُطلب منه التحدث بالبرتغالية، كان الذكاء الاصطناعي أحياناً يزلّ ويستخدم كلمات إنجليزية أو يترجم التسميات (مثل تسمية "التلميح" بـ "dica" بدلاً من "hint").
- تلاشي "الذاكرة": بعد أن يقوم الذكاء الاصطناعي بتوليد بضعة ألغاز متتالية، يبدأ في أن يصبح تكرارياً ومرهقاً، مثل شخص يتحدث لساعات ويبدأ في تكرار نفسه.
حل "الأقل هو الأكثر"
بعد خمسة أيام من البرمجة المحمومة، وإصلاح الأخطاء، وإعادة كتابة التعليمات، أدرك المؤلف أن سر النجاح يكمن في إعطاء الذكاء الاصطناعي أشياء أقل للقيام بها.
فكر في الأمر كالتالي:
- اليوم الأول (الفشل): طلب المؤلف من الذكاء الاصطناعي أن يخترع الكلمة، ويختار الصعوبة، ويكتب التلميحات. فشل الذكاء الاصطناعي باستمرار.
- اليوم الخامس (النجاح): غير المؤلف القواعد. أصبح لدى اللعبة الآن قائمة كلمات معتمدة مسبقاً (مثل قائمة مكونات آمنة). مهمة الذكاء الاصطناعي الوحيدة هي النظر إلى كلمة قدمتها له اللعبة وكتابة ثلاثة تلميحات قصيرة وبسيطة.
من خلال سلب الأجزاء الصعبة منه (اختراع الكلمات، عد الأحرف، اختيار الفئات) وترك الجزء الإبداعي فقط (كتابة التلميحات)، عمل الذكاء الاصطناعي أخيراً بشكل مثالي. أصبحت اللعبة موثوقة، سريعة، وتعمل بالكامل دون اتصال بالإنترنت.
منعطف الـ "WorkManager"
كان هناك خطأ مضحك واحد ارتكبه المؤلف في طريقه. حاول استخدام أداة أندرويد قياسية تسمى "WorkManager" لتشغيل الذكاء الاصطناعي في الخلفية.
- التشبيه: تخيل أنك تحاول تشغيل برنامج طبخ مباشر على قناة تلفزيونية، لكنك قررت تسجيل البرنامج على جهاز تسجيل، ووضعه في درج، وتشغيله لاحقاً فقط. المشاهدون (مستخدمو اللعبة) سيظلون يحدقون في شاشة فارغة بانتظار الطعام.
- الإصلاح: أدرك المؤلف أنه بما أن المستخدم يشاهد الذكاء الاصطناعي وهو يعمل في الوقت الفعلي، فلا يمكنه استخدام أداة "سجل والعب لاحقاً". كان عليه الانتقال إلى طريقة "البث المباشر" (باستخدام أدوات برمجية قياسية تسمى Coroutines). أصلح هذا سبعة أخطاء مختلفة حدثت في يوم واحد.
القواعد الثمانية للنجاح
لخص المؤلف تجربته في ثماني قواعد بسيطة لأي شخص يحاول وضع ذكاء اصطناعي على الهاتف:
- حافظ على البساطة: لا تطلب من الذكاء الاصطناعي ملء نموذج معقد. اطلب منه شيئاً واحداً بسيطاً.
- توقع الأخطاء: ضع دائماً خطة بديلة (مثل تلميح مكتوب مسبقاً) في حال فشل الذكاء الاصطعي.
- كن محدداً: لا تقل "تحدث بالبرتغالية". قل "تحدث بالبرتغالية البرازيلية". لا تقل "عد بعناية". قل "كلمة 'قط' تتكون من 3 أحرف".
- لا تدعه يتعب: إذا كان الذكاء الاصطناعي يقوم بمهام عديدة متتالية، فقم بإعادة ضبط ذاكرته كل بضع جولات حتى لا يرتبك.
- استخدم شبكة أمان: إذا تعطل الذكاء الاصطناعي أو فشل، يجب أن يظل التطبيق يعمل باستخدام إجابات قديمة مكتوبة مسبقاً.
- اجعل الذكاء الاصطناعي مبدعاً، لا واقعياً: دع الذكاء الاصطناعي يكتب قصيدة (إبداع)، لكن لا تطلب منه القيام بعمليات حسابية أو اختيار أرقام محددة (حقائق).
- نماذج أقل هي أفضل: لا تحاول دعم عشرة إصدارات مختلفة من الذكاء الاصطناعي. اختر اثنين يعملان جيداً والتزم بهما.
- حلل البيانات بدفاعية: افترض أن الذكاء الاصطناعي سيعطيك نصاً فوضوياً. اكتب الكود الخاص بك لتنظيف الفوضى قبل استخدامها.
الخلاصة الكبرى
يخلص البحث إلى أن الذكاء الاصطناعي على الجهاز ممكن، ولكن فقط إذا توقفت عن معاملته ككمبيوتر سحابي فائق الذكاء. يجب أن تعامله كمساعد مفيد، ولكنه أخرق قليلاً.
إذا طلبت من المساعد القيام بكل شيء، فسيفشل. إذا أعطيته مهمة محددة وصغيرة وكان لديك خطة بديلة، فسيعمل بشكل رائع. هذا يعني أن هاتفك يمكنه تشغيل ميزات ذكية دون إرسال بياناتك إلى السحابة، مما يحافظ على خصوصيتك ويوفر بطاريتك.
الدرس الجوهري: الميزة الأكثر موثوقية للذكاء الاصطناعي على الجهاز هي تلك التي يقوم فيها الذكاء الاصطناعي بأقل قدر من العمل.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.