كيفية تحسين نماذج الذكاء الاصطناعي

كيفية تحسين نماذج الذكاء الاصطناعي [فيديو واختبار]

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

أهم النقاط المستفادة:

القيد: اختر مقياسًا واحدًا أو اثنين من المقاييس المستهدفة؛ فالتحسين عبارة عن مجموعة من المقايضات، وليس مكاسب مجانية.

القياس: تحليل أحمال العمل الحقيقية باستخدام p50/p95/p99، والإنتاجية، والاستخدام، وذروات الذاكرة.

خط الأنابيب: قم بإصلاح عملية تجزئة البيانات، ومحملات البيانات، والمعالجة المسبقة، والتجميع قبل التعامل مع النموذج.

التقديم: استخدم التخزين المؤقت، والتجميع المتعمد، وضبط التزامن، وراقب زمن الاستجابة عن كثب.

الضوابط الوقائية: قم بتشغيل التنبيهات الذهبية ومقاييس المهام والفحوصات العشوائية بعد كل تغيير في الأداء.

كيفية تحسين نماذج الذكاء الاصطناعي (إنفوغرافيك)

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

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

🔗 كيفية اختبار نماذج الذكاء الاصطناعي قبل الإنتاج
: سير عمل الاختبار العملي: تقسيم البيانات، حالات الضغط، والمراقبة.

🔗 كيفية استخدام الذكاء الاصطناعي لإنشاء المحتوى:
حوّل الأفكار إلى مسودات بشكل أسرع باستخدام المطالبات المنظمة والتكرار.


1) ما معنى "التحسين" عمليًا (لأن كل شخص يستخدمه بشكل مختلف) 🧠

عندما يقول الناس "تحسين نموذج الذكاء الاصطناعي"، فقد يقصدون ما يلي:

  • اجعله أسرع (تقليل زمن الاستجابة)

  • اجعلها أرخص (ساعات أقل لوحدة معالجة الرسومات، ونفقات أقل على الحوسبة السحابية)

  • اجعله أصغر حجماً (من حيث استهلاك الذاكرة، والنشر على الحافة)

  • اجعلها أكثر دقة (تحسينات في الجودة، تقليل الهلوسة)

  • اجعله أكثر استقراراً (تقليل التباين، وتقليل حالات الفشل في الإنتاج)

  • تسهيل عملية التقديم (الإنتاجية، والتجميع، والأداء المتوقع)

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

لذا قبل أن تلمس أي شيء، اختر قيدك الأساسي:

  • إذا كنت تقدم خدماتك للمستخدمين بشكل مباشر، فأنت تهتم بزمن الاستجابة عند النسبة المئوية 95 (النسب المئوية في AWS CloudWatch) وأداء الطرف الأقصى (أفضل ممارسات "زمن الاستجابة الطرفي") 📉

  • إذا كنت تتدرب، فأنت تهتم بسرعة الوصول إلى الجودة واستخدام وحدة معالجة الرسومات 🔥

  • إذا كنت تقوم بالنشر على الأجهزة، فأنت تهتم بذاكرة الوصول العشوائي والطاقة 🔋


2) كيف يبدو الإصدار الجيد من تحسين نموذج الذكاء الاصطناعي؟ ✅

إنّ النسخة الجيدة من التحسين ليست مجرد "تطبيق التكميم والدعاء"، بل هي نظام متكامل. وأفضل الأنظمة عادةً ما تتضمن ما يلي:

  • معيار أساسي تثق به.
    إذا لم تتمكن من تكرار نتائجك الحالية، فلن تعرف أنك قد حققت أي تحسن. الأمر بسيط... لكن الناس يتجاهلونه. ثم يتدهور وضعهم.

  • إن تحديد معيار هدف واضح
    "أسرع" أمر غامض. أما "تقليل زمن استجابة p95 من 900 مللي ثانية إلى 300 مللي ثانية مع الحفاظ على نفس مستوى الجودة" فهو هدف حقيقي.

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

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

  • تغييرات تدريجية، لا إعادة كتابة شاملة.
    عندما تُغيّر خمسة أشياء دفعة واحدة ويتحسّن الأداء، لا تعرف السبب. وهذا... أمرٌ مُقلق.

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


3) جدول مقارنة: الخيارات الشائعة لتحسين نماذج الذكاء الاصطناعي 📊

فيما يلي جدول مقارنة سريع وغير منظم قليلاً لأدوات/أساليب التحسين الشائعة. كلا، إنه ليس "عادلاً" تماماً - فالحياة الواقعية ليست كذلك أيضاً.

أداة / خيار جمهور سعر لماذا ينجح؟
PyTorch torch.compile (PyTorch docs) يا جماعة PyTorch حر يمكن لتقنية التقاط الرسوم البيانية وحيل المُترجم أن تقلل من الحمل الزائد... أحيانًا يكون الأمر أشبه بالسحر ✨
ONNX Runtime (وثائق ONNX Runtime) فرق النشر شبه مجاني تحسينات استدلال قوية، ودعم واسع، ومناسب للخدمة الموحدة
TensorRT (وثائق NVIDIA TensorRT) نشر NVIDIA أجواء مدفوعة (غالباً ما تكون مجمعة) دمج النواة المتقدم + معالجة دقيقة، سريع للغاية عند التشغيل
ديب سبيد (بدون وثائق) فرق التدريب حر تحسينات في الذاكرة والإنتاجية (مثل Zero). قد تشعر وكأنك تقود محركًا نفاثًا
FSDP (PyTorch) (وثائقPyTorch FSDP) فرق التدريب حر تقسيم المعلمات/التدرجات يجعل النماذج الكبيرة أقل صعوبة
تكميم البتات والبايتات (bitsandbytes) هواة القانون حر أوزان بت منخفضة، وتوفير هائل في الذاكرة - الجودة تعتمد، ولكن يا له من ارتياح 😬
التقطير (هينتون وآخرون، 2015) فرق المنتجات "تكلفة الوقت" يرث نموذج الطالب الأصغر حجماً السلوك، وعادةً ما يكون ذلك أفضل عائد على الاستثمار على المدى الطويل
تقليم (درس تعليمي حول تقليم PyTorch) البحث + الإنتاج حر يزيل العبء الزائد. يكون أكثر فعالية عند دمجه مع إعادة التدريب
تنبيه سريع / نوى مدمجة (ورق تنبيه سريع) مهووسو الأداء حر انتباه أسرع، وذاكرة أفضل. مكسب حقيقي للمتحولين
خادم استدلال تريتون (التجميع الديناميكي) العمليات/البنية التحتية حر خدمة الإنتاج، والتجميع، وخطوط الإنتاج متعددة النماذج - يبدو الأمر أشبه ببيئة المؤسسات الكبرى

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


٤) ابدأ بالقياس: حدد ملامح وجهك بدقة 🔍

إذا كنت ستفعل شيئًا واحدًا فقط من هذا الدليل بأكمله، فافعل هذا: قم بالقياس بشكل صحيح.

في اختباراتي الخاصة، جاءت أكبر "الاختراقات في مجال التحسين" من اكتشاف شيء بسيط للغاية مثل:

  • مُحمِّل البيانات يُحرم وحدة معالجة الرسومات من البيانات

  • عنق الزجاجة في المعالجة المسبقة لوحدة المعالجة المركزية

  • أحجام الدفعات الصغيرة تتسبب في زيادة الحمل على تشغيل النواة

  • عملية تجزئة الكلمات البطيئة (قد يكون مُجزئو الكلمات أشرارًا صامتين)

  • تجزئة الذاكرة (ملاحظات حول مُخصِّص الذاكرة في PyTorch CUDA)

  • طبقة واحدة تهيمن على الحوسبة

ما الذي يجب قياسه (الحد الأدنى للمجموعة)

  • زمن الاستجابة (p50، p95، p99) (SRE على النسب المئوية لزمن الاستجابة)

  • معدل النقل (الرموز المميزة/ثانية، الطلبات/ثانية)

  • استخدام وحدة معالجة الرسومات (الحوسبة + الذاكرة)

  • ذروة استخدام ذاكرة الوصول العشوائي للفيديو / ذاكرة الوصول العشوائي

  • التكلفة لكل 1000 رمز (أو لكل استدلال)

عقلية التنميط العملي

  • حدد سيناريو واحد يهمك (ليس سيناريو لعبة).

  • دوّن كل شيء في "مفكرة أداء" صغيرة.
    نعم، الأمر ممل... لكنه يجنبك التلاعب بنفسك لاحقاً.

(إذا كنت تريد أداة ملموسة للبدء بها: فإن PyTorch Profiler (torch.profiler docs) و Nsight Systems (NVIDIA Nsight Systems) هما الخياران المعتادان.)


5) تحسين البيانات والتدريب: القوة الخفية 📦🚀

ينشغل الناس ببنية النموذج وينسون خط المعالجة. وفي الوقت نفسه، يستهلك خط المعالجة نصف موارد وحدة معالجة الرسومات (GPU) دون أن يشعروا بذلك.

مكاسب سهلة تظهر بسرعة

  • استخدم الدقة المختلطة (FP16/BF16 حيثما كان ذلك مستقرًا) (PyTorch AMP / torch.amp)
    عادةً ما يكون أسرع، وغالبًا ما يكون جيدًا - ولكن انتبه للغرائب ​​العددية.

  • تراكم التدرج عندما يكون حجم الدفعة محدودًا (🤗 دليل التسريع)
    يحافظ على استقرار التحسين دون استهلاك الذاكرة بشكل كبير.

  • التحقق من التدرج (torch.utils.checkpoint)
    يستبدل الحوسبة بالذاكرة - مما يجعل السياقات الأكبر ممكنة.

  • الترميز الفعال (🤗 مُرمِّزو البيانات)
    قد يُصبح الترميز عائقًا عند التوسع. إنه ليس بالأمر البراق، ولكنه مهم.

  • تحسين أداء مُحمِّل البيانات:
    زيادة عدد العمال، وتثبيت الذاكرة، والجلب المسبق - غير مُلفت للنظر ولكنه فعال 😴➡️💪 (دليل تحسين أداء PyTorch)

ضبط دقيق فعال للمعلمات

إذا كنت تُجري تحسينات دقيقة على نماذج كبيرة، فإنّ أساليب PEFT (مثل مُهايئات LoRA) تُقلّل تكلفة التدريب بشكل كبير مع الحفاظ على قوتها المذهلة (انظر دليل Transformers PEFT، وورقة LoRA). هذه إحدى تلك اللحظات التي تجعلك تتساءل: "لماذا لم نفعل ذلك من قبل؟".


6) تحسين مستوى البنية: تحديد الحجم الأمثل للنموذج 🧩

أحيانًا تكون أفضل طريقة للتحسين هي... التوقف عن استخدام نموذج كبير جدًا بالنسبة للمهمة. أعلم، هذا أمرٌ غير مقبول 😄.

اتخذ قرارًا بناءً على بعض الأساسيات:

  • قرر ما إذا كنت بحاجة إلى معلومات استخباراتية عامة شاملة، أو إلى متخصص.

  • حافظ على حجم نافذة السياق بالقدر اللازم فقط، وليس أكبر.

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

استراتيجيات عملية لترشيد حجم العمل

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

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

  • قلل طول المخرجات.
    تتطلب رموز المخرجات وقتًا ومالًا. إذا كان نموذجك مطولًا ومتشعبًا، فستدفع ثمن هذا التطويل.

لقد رأيت فرقًا تخفض التكاليف بشكل كبير من خلال فرض إنتاجية أقل. قد يبدو الأمر تافهًا، لكنه فعال.


7) تحسينات المُصرّف + الرسم البياني: من أين تأتي السرعة 🏎️

هذه هي طبقة "جعل الكمبيوتر يقوم بأشياء حاسوبية أكثر ذكاءً".

التقنيات الشائعة:

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

ملاحظات عملية (أو ما يُعرف بالندوب)

  • قد تتأثر هذه التحسينات بتغيرات شكل النموذج.

  • بعض الطرازات تزداد سرعتها بشكل كبير، وبعضها بالكاد تتحرك.

  • أحيانًا يحدث تسارع مفاجئ وظهور خلل محير - كأنّ عفريتًا قد سكن المكان 🧌

ومع ذلك، عندما تنجح، فإنها تُعتبر واحدة من أنقى الانتصارات.


٨) التحديد الكمي، والتقليم، والتقطير: أصغر حجماً دون بكاء (كثيراً) 🪓📉

هذا هو القسم الذي يرغب فيه الناس... لأنه يبدو وكأنه أداء مجاني. قد يكون كذلك، لكن عليك التعامل معه كما لو كان عملية جراحية.

التكميم (أوزان/تنشيطات ذات دقة أقل)

  • ممتاز لسرعة الاستدلال والذاكرة

  • المخاطر: انخفاض الجودة، خاصة في الحالات النادرة

  • أفضل الممارسات: التقييم على مجموعة اختبار حقيقية، وليس على تجارب افتراضية

النكهات الشائعة التي ستسمع عنها:

التقليم (إزالة المعلمات)

  • يزيل الأوزان أو الهياكل "غير المهمة" (درس تعليمي حول تقليم PyTorch)

  • عادة ما يحتاج الأمر إلى إعادة تدريب لاستعادة الجودة

  • يعمل بشكل أفضل مما يعتقد الناس... عند القيام به بعناية

التقطير (يتعلم الطالب من المعلم)

هذا هو أسلوبي المفضل على المدى الطويل. يمكن للتقطير أن ينتج نموذجًا أصغر يتصرف بشكل مشابه، وغالبًا ما يكون أكثر استقرارًا من التكميم المفرط (تقطير المعرفة في الشبكة العصبية).

استعارة غير دقيقة: التقطير يشبه سكب حساء معقد عبر مرشح والحصول على... حساء أصغر. ليس هذا هو شكل الحساء، لكن الفكرة واضحة 🍲.


9) التقديم والاستدلال: ساحة المعركة الحقيقية 🧯

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

إرسال انتصارات مهمة

  • المعالجة
    الدفعية الإنتاجية، ولكنها تزيد من زمن الاستجابة إذا تم الإفراط فيها. لذا، يجب تحقيق التوازن. (المعالجة الدفعية الديناميكية في ترايتون)

  • المؤقت
    وإعادة استخدام ذاكرة التخزين المؤقت للمفتاح والقيمة ذا أهمية بالغة في السياقات المتكررة. (شرح ذاكرة التخزين المؤقت للمفتاح والقيمة)

  • البث المباشر
    أسرع حتى لو كان إجمالي الوقت متقاربًا. الانطباع مهم 🙂.

  • تقليل النفقات الإضافية لكل رمز على حدة:
    تقوم بعض المجموعات بعمل إضافي لكل رمز. قلل هذه النفقات الإضافية وستحقق مكاسب كبيرة.

انتبه لزمن الاستجابة المتأخر

قد يبدو متوسطك ممتازًا بينما يكون أداء جهازك عند 99% كارثيًا. للأسف، يعيش المستخدمون في ذيل القائمة. (زمن الاستجابة في الذيل ولماذا تضلل المتوسطات)


10) تحسين الأداء مع مراعاة خصائص الجهاز: مطابقة النموذج مع الجهاز 🧰🖥️

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

اعتبارات وحدة معالجة الرسومات

اعتبارات وحدة المعالجة المركزية

  • تُعدّ تقنيات الترابط والتحويل إلى متجهات وموضع الذاكرة أمورًا بالغة الأهمية

  • قد تهيمن تكلفة التجزئة (🤗 "المجزئات السريعة")

  • قد تحتاج إلى استراتيجيات تكميم مختلفة عن تلك المستخدمة على وحدة معالجة الرسومات (GPU)

اعتبارات الحافة / الأجهزة المحمولة

  • تُصبح مساحة الذاكرة أولوية قصوى

  • يُعدّ تباين زمن الاستجابة أمراً بالغ الأهمية لأن الأجهزة... متقلبة المزاج

  • غالباً ما تتفوق الطرازات الأصغر حجماً والمتخصصة على الطرازات العامة الكبيرة


11) ضوابط الجودة: لا تُحسّن نفسك حتى تُصبح عيبًا 🧪

يجب أن يصاحب كل فوز في سباقات السرعة فحص جودة. وإلا ستحتفل، ثم تُصدر المنتج، ثم تتلقى رسالة مثل "لماذا يتحدث المساعد فجأة كقرصان؟" 🏴☠️

ضوابط عملية:

  • المطالبات الذهبية (مجموعة ثابتة من المطالبات التي تختبرها دائمًا)

  • مقاييس المهمة (الدقة، F1، BLEU، أي شيء مناسب)

  • عمليات تفتيش بشرية مفاجئة (نعم، بجدية)

  • عتبات الانحدار ("لا يُسمح بانخفاض يزيد عن X%")

تتبع أيضًا أنماط الأعطال:

  • انحراف التنسيق

  • تغييرات في سلوك الرفض

  • تواتر الهلوسة

  • تضخم طول الاستجابة

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


١٢) قائمة التحقق: كيفية تحسين نماذج الذكاء الاصطناعي خطوة بخطوة ✅🤖

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

  1. حدد النجاح.
    اختر مقياسًا أو مقياسين أساسيين (زمن الاستجابة، التكلفة، الإنتاجية، الجودة).

  2. قياس
    الأداء الأساسي، وتحليل أحمال العمل الحقيقية، وتسجيل النسب المئوية 50/95، والذاكرة، والتكلفة. (محلل أداء PyTorch)

  3. إصلاح اختناقات خط الأنابيب:
    تحميل البيانات، والتجزئة، والمعالجة المسبقة، والتجميع.

  4. تطبيق مكاسب الحوسبة منخفضة المخاطر:
    الدقة المختلطة، وتحسينات النواة، وتجميع أفضل للبيانات.

  5. جرّب تحسينات المُصرّف/وقت التشغيل
    ، مثل التقاط الرسوم البيانية، وأوقات تشغيل الاستدلال، ودمج المُعاملات. (torch.compile التعليمي، ووثائق ONNX Runtime).

  6. قلل تكلفة النموذج.
    قم بالقياس الكمي بعناية، وقم بالتقطير إن أمكن، وقم بالتقليص إذا كان ذلك مناسبًا.

  7. تحسين التخزين المؤقت للخدمة
    ، والتزامن، واختبار التحميل، وإصلاحات زمن الاستجابة المتأخر.

  8. تحقق من الجودة.
    قم بتشغيل اختبارات الانحدار وقارن النتائج جنبًا إلى جنب.

  9. كرر
    التغييرات الصغيرة، واكتب ملاحظات واضحة، ثم كرر العملية. البساطة هي سر الفعالية.

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


13) الأخطاء الشائعة (حتى لا تكررها مثلنا جميعًا) 🙃

  • التحسين قبل القياس
    سيؤدي إلى إضاعة الوقت. وحينها ستُحسّن الشيء الخطأ بثقة تامة...

  • السعي وراء معيار واحد:
    المعايير تضلل بالحذف. عبء العمل هو الحقيقة.

  • تجاهل الذاكرة:
    تتسبب مشاكل الذاكرة في تباطؤ الأداء، وتعطل النظام، واضطرابه. (فهم استخدام ذاكرة CUDA في PyTorch)

  • الإفراط في التكميم المبكر:
    قد يكون التكميم منخفض البتات مذهلاً، ولكن ابدأ بخطوات أكثر أمانًا أولاً.

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


ملاحظات ختامية: الطريقة البشرية للتحسين 😌⚡

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

إذا كنت تريد أسرع طريقة للتوصيل:

  • قم بالقياس أولاً 🔍

  • قم بتحسين خط الأنابيب التالي 🧵

  • ثم قم بتحسين النموذج 🧠

  • ثم قم بتحسين التقديم 🏗️

  • احرص على إجراء فحوصات الجودة دائمًا ✅

وإذا كان هذا يساعدك، فذكّر نفسك: الهدف ليس "نموذجًا مثاليًا". الهدف هو نموذج سريع، وبأسعار معقولة، وموثوق به بما يكفي لتتمكن من النوم ليلًا... في معظم الليالي 😴.

مثال واقعي: تحسين مُلخِّص تذاكر الدعم 🎟️⚡

سيناريو

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

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

هدفهم واضح:

خفض زمن استجابة p95 من حوالي 2.4 ثانية إلى أقل من 1.2 ثانية، مع عدم وجود أكثر من خطأ ملخص خطير واحد في مجموعة اختبار مكونة من 50 تذكرة.

ما يحتاجه سير العمل

ولجعل هذا الأمر عملياً، يجتمع الفريق:

مجموعة اختبار ذهبية مكونة من 50 تذكرة، تتضمن تذاكر قصيرة ومتوسطة وغير مرتبة

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

المقاييس الأساسية: زمن الاستجابة (p50، p95، p99)، عدد الرموز المميزة المُولّدة، تكلفة التذكرة الواحدة، وعدد الأخطاء

قائمة مراجعة بشرية بسيطة

الوصول إلى سجلات النموذج، وعدد الرموز المميزة، وإعدادات الدُفعات/التزامن

خيار التراجع في حالة انخفاض الجودة

الأمر المهم: إنهم لا يبدأون بالتكميم. أولاً، يتحققون مما إذا كانت عملية المعالجة تضيع الوقت.

مثال على التعليمات

لكل تذكرة دعم، لخص مشكلة العميل في ثلاث نقاط فقط.

يشمل:

  • المشكلة الرئيسية

  • أي مجال منتج مذكور

  • مدى الاستعجال أو التأثير على الأعمال، إن وُجد

لا تختلق تفاصيل ناقصة. إذا لم يقدم العميل معلومات كافية، فقل "غير محدد".

اجعل الملخص أقل من 80 كلمة.

كيفية اختباره

قم بتشغيل نفس التذاكر الخمسين من خلال الإعداد القديم والجديد.

لكل جولة، سجل ما يلي:

زمن الاستجابة p50 و p95 و p99

متوسط ​​عدد الرموز المنتجة

التكلفة لكل 1000 تذكرة

عدد الملخصات التي تحتوي على تفاصيل مختلقة

عدد الملخصات التي تحتاج إلى إعادة كتابة بشرية

ثم اختبر بعض الحالات الصعبة:

تذكرة بها ثلاث مشكلات منفصلة

رسالة من عميل غاضب جداً

تذكرة غامضة تكاد تخلو من التفاصيل

تذكرة تحتوي على سجلات مُلصقة

تذكرة يذكر فيها العميل إلغاء حسابه

وهذا يكشف عن الفشل الشائع حيث يؤدي التحسين إلى جعل النموذج أسرع ولكنه أقل دقة.

نتيجة

نتيجة توضيحية، بناءً على قياس 50 تذكرة عينة قبل وبعد ثلاث عمليات تحسين:

خط الأساس:

زمن استجابة p95: 2.4 ثانية

زمن استجابة p99: 3.1 ثانية

متوسط ​​طول الناتج: 142 كلمة

عدد عمليات إعادة الكتابة البشرية: 11 من أصل 50

أخطاء جسيمة في التفاصيل المختلقة: 3 من أصل 50

بعد التحسين:

زمن استجابة p95: 1.1 ثانية

زمن استجابة p99: 1.6 ثانية

متوسط ​​طول الناتج: 61 كلمة

عمليات إعادة الكتابة البشرية: 5 من أصل 50

أخطاء جسيمة في التفاصيل المختلقة: 1 من أصل 50

ما الذي تغير؟

حدد الفريق طول المخرجات بـ 80 كلمة

قاموا بتجميع التذاكر ذات الأولوية المنخفضة في مجموعات من 8 تذاكر

قاموا بتخزين سياق سياسة المنتج المتكرر

قاموا بتشغيل نظام الدقة المختلطة بعد التأكد من الحفاظ على الجودة

لقد أجلوا عملية التكميم إلى وقت لاحق لأن هدف زمن الاستجابة قد تم تحقيقه بالفعل

انخفضت التكلفة أيضًا في هذا المثال لأن النموذج أنتج عددًا أقل من الكلمات. فإذا كان الإعداد القديم ينتج حوالي 142 كلمة لكل تذكرة، بينما ينتج الإعداد الجديد حوالي 61 كلمة، فإن طول الناتج انخفض بنسبة 57% تقريبًا. وهذا مقياس يمكن للفريق التحقق منه مباشرةً من السجلات.

ما الذي يمكن أن يحدث خطأً؟

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

أخطاء أخرى سهلة:

اختبار التذاكر النظيفة فقط

تجاهل زمن استجابة p99

نسيان مقارنة طول المخرجات

تغيير إعدادات التجميع وإعدادات النموذج في نفس الوقت

استخدام متوسط ​​زمن الاستجابة بدلاً من زمن الاستجابة النهائي

الادعاء بأن "الجودة ظلت كما هي" دون وجود قائمة مراجعة

قاعدة المراجعة الأكثر أمانًا بسيطة: إذا اختلقت أكثر من 2 من أصل 50 ملخصًا تفاصيل مهمة، فقم بالتراجع والتحقيق.

الخلاصة العملية

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

التعليمات

ما معنى تحسين نموذج الذكاء الاصطناعي عملياً

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

كيفية تحسين نماذج الذكاء الاصطناعي دون الإضرار بالجودة بشكل غير مباشر

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

ما الذي يجب قياسه قبل البدء في التحسين؟

ابدأ بنسب زمن الاستجابة المئوية (النسبة المئوية 50، 95، 99)، ومعدل نقل البيانات (عدد الرموز المميزة/ثانية أو عدد الطلبات/ثانية)، واستخدام وحدة معالجة الرسومات، وذروة استخدام ذاكرة الوصول العشوائي للفيديو/ذاكرة الوصول العشوائي. راقب تكلفة الاستدلال لكل عملية أو لكل 1000 رمز مميز إذا كانت التكلفة عاملاً مهماً. حلل أداء سيناريو حقيقي تستخدمه، وليس سيناريو تجريبياً. يساعدك الاحتفاظ بسجل أداء مختصر على تجنب التخمين وتكرار الأخطاء.

مكاسب سريعة ومنخفضة المخاطر لتحسين الأداء التدريبي

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

متى يتم استخدام torch.compile أو ONNX Runtime أو TensorRT

تستهدف هذه الأدوات تقليل النفقات التشغيلية: التقاط الرسوم البيانية، ودمج النواة، وتحسينات الرسوم البيانية أثناء التشغيل. يمكنها تحقيق تسريع ملحوظ في الاستدلال، لكن النتائج تختلف باختلاف شكل النموذج والأجهزة. بعض الإعدادات تبدو وكأنها سحرية، بينما البعض الآخر بالكاد يُحدث فرقًا. توقع حساسية للتغييرات في الشكل وظهور بعض الأخطاء البرمجية العرضية - قِس النتائج قبل وبعد على عبء العمل الفعلي لديك.

هل التكميم مجدي، وكيفية تجنب المبالغة فيه؟

يمكن للتكميم أن يقلل من استهلاك الذاكرة ويسرع عملية الاستدلال، خاصةً مع نوع البيانات INT8، لكن الجودة قد تتأثر في بعض الحالات. توفر الخيارات ذات عدد البتات الأقل (مثل INT4/k-bit) وفورات أكبر مع مخاطر أعلى. أفضل طريقة هي التقييم على مجموعة اختبار حقيقية ومقارنة النتائج، وليس الاعتماد على الحدس. ابدأ بالخطوات الأكثر أمانًا أولًا، ثم انتقل إلى دقة أقل فقط عند الحاجة.

الفرق بين التقليم والتقطير لتقليل حجم النموذج

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

كيفية تقليل تكلفة الاستدلال وزمن الاستجابة من خلال تحسينات الخدمة

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

لماذا يُعدّ زمن الاستجابة المتأخر مهمًا للغاية عند تحسين نماذج الذكاء الاصطناعي

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

مراجع

  1. خدمات أمازون السحابية (AWS) - النسب المئوية لخدمة AWS CloudWatch (تعريفات الإحصائيات) - docs.aws.amazon.com

  2. جوجل - الذيل على نطاق واسع (أفضل ممارسات زمن الاستجابة المتأخر) - sre.google

  3. جوجل - أهداف مستوى الخدمة (كتاب هندسة موثوقية الموقع) - النسب المئوية لزمن الاستجابة - sre.google

  4. PyTorch - torch.compile - docs.pytorch.org

  5. PyTorch - FullyShardedDataParallel (FSDP) - docs.pytorch.org

  6. PyTorch - ملف تعريف PyTorch - docs.pytorch.org

  7. PyTorch - دلالات CUDA: إدارة الذاكرة (ملاحظات حول مُخصِّص ذاكرة CUDA) - docs.pytorch.org

  8. PyTorch - الدقة المختلطة التلقائية (torch.amp / AMP) - docs.pytorch.org

  9. PyTorch - torch.utils.checkpoint - docs.pytorch.org

  10. دليل تحسين أداء PyTorch - docs.pytorch.org

  11. PyTorch - دليل تقليم الملفات - docs.pytorch.org

  12. PyTorch - فهم استخدام ذاكرة CUDA في PyTorch - docs.pytorch.org

  13. PyTorch - برنامج تعليمي / نظرة عامة على torch.compile - docs.pytorch.org

  14. بيئة تشغيل ONNX - وثائق بيئة تشغيل ONNX - onnxruntime.ai

  15. NVIDIA - TensorRT - docs.nvidia.com

  16. إنفيديا - أنواع TensorRT الكمية - docs.nvidia.com

  17. إنفيديا - أنظمة إنسايت - developer.nvidia.com

  18. إنفيديا - خادم استدلال ترايتون - التجميع الديناميكي - docs.nvidia.com

  19. وثائق DeepSpeed ​​- المرحلة الثالثة من Zero - deepspeed.readthedocs.io

  20. bitsandbytes (مؤسسة bitsandbytes) - bitsandbytes - github.com

  21. Hugging Face - Accelerate: دليل تراكم التدرج اللوني - huggingface.co

  22. Hugging Face - Tokenizers - huggingface.co

  23. وجه العناق - المتحولون: دليل PEFT - huggingface.co

  24. وجه محتضن - شرح مخبأ المتحولون: KV - huggingface.co

  25. Hugging Face - Transformers: مُجزئات "سريعة" (فئات التجزئة) - huggingface.co

  26. arXiv - استخلاص المعرفة في الشبكة العصبية (هينتون وآخرون، 2015) - arxiv.org

  27. arXiv - LoRA: تكييف النماذج اللغوية الكبيرة ذات الرتبة المنخفضة - arxiv.org

  28. arXiv - FlashAttention: انتباه دقيق وسريع وفعال من حيث الذاكرة مع مراعاة عمليات الإدخال والإخراج - arxiv.org

اكتشف أحدث تقنيات الذكاء الاصطناعي في متجر مساعدي الذكاء الاصطناعي الرسمي

معلومات عنا

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

التعليمات

  • كيف يمكنني البدء في تحسين نماذج الذكاء الاصطناعي بشكل فعال؟

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

  • ما هي الأخطاء الشائعة التي يجب تجنبها عند تحسين نماذج الذكاء الاصطناعي؟

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

  • لماذا من المهم قياس زمن الاستجابة والإنتاجية؟

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

  • ما هي التقنيات التي يمكنني استخدامها لتحسين سرعة استنتاج النموذج؟

    ضع في اعتبارك تقنيات مثل التدريب المختلط الدقة، وتحسينات النواة، والتجميع، واستخدام أدوات متخصصة مثل PyTorch torch.compile، وONNX Runtime، أو TensorRT لتحقيق الكفاءة التشغيلية.

  • كيف يؤثر التكميم على أداء النموذج؟

    عادةً ما يقلل التكميم من استخدام الذاكرة ويسرّع عملية الاستدلال. مع ذلك، قد يؤدي أيضًا إلى فقدان الجودة، خاصةً مع الخيارات ذات البتات المنخفضة. من الضروري تقييم النموذج على مجموعة اختبار حقيقية بعد التكميم.

  • ما هي الاستراتيجيات التي يمكنني استخدامها للحفاظ على الجودة أثناء عملية التحسين؟

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

  • كيف تؤثر تحسينات العرض والاستدلال على تجربة المستخدم؟

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

  • متى يجب أن أفكر في تقليم النموذج أو تقطيره؟

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