الوحدة 10 — الكلفة والاستجابة وخيارات المعمارية
بعد تسع وحدات من القرارات الجزئية، حان الوقت لتجميعها في قرار المشروع. المعطيات: مساعد دعم عملاء لشركة متوسّطة، حجم متوقّع 3000 طلبٍ يوميًا، متوسّط طول المُطالبة 500 رمز، ومتوسّط الردّ 200 رمز. هذه الأرقام كافية لبناء حساب كلفة دقيق، ثمّ للحسم بين المسارين المتاحين — API خارجيّ أو استضافة داخليّة — واقتراح بنية توجيه تخفّض الكلفة الإجماليّة دون التضحية بالجودة.
كلفة API الخارجي
مزوّدو النماذج المِلكيّة يُحاسبون بالرمز، وبأسعار مختلفة للمُدخَل والمُخرَج (المُخرَج أغلى، لأنّه يستوجب توليدًا متتاليًا). أسعار تقريبية عام 2026 لنموذج متوسط قوّة:
| الفئة | م ُدخَل (لكلّ مليون رمز) | مُخرَج (لكلّ مليون رمز) |
|---|---|---|
| نموذج قوي | 3 دولار | 15 دولار |
| نموذج متوسّط | 0.5 دولار | 1.5 دولار |
| نموذج مصغَّر | 0.15 دولار | 0.6 دولار |
لمشروعنا، بحسبة يومية: 3000 طلب × 500 رمز مُدخَل = 1.5 مليون رمز، و3000 × 200 = 600 ألف رمز مُخرَج. بنموذج متوسّط:
هذا يعادل نحو 600 دولار في السنة. لنموذج قوي، الرقم يتضاعف بعشرة أضعاف تقريبًا: 6000 دولار سنويًا. لا شيء يُذكَر لشركة متوسّطة.
لكن قبل الاحتفال، حالات تُغيّر المعادلة تمامًا:
- RAG: كلّ استعلام يحمل الآن 3000 رمزًا من الوثائق المسترجَعة، لا 500. الحساب يتضاعف ستّة.
- محادثة متعدّدة الأدوار: التاريخ ينمو مع الأدوار، فيصير المتوسّط الفعلي 2000 رمز مُدخَل.
- حجم النموّ: نمر من 3000 إلى 30 ألف طلب يوميًا مع اكتساح الأداة. الرقم يصير 60 ألف دولار سنويًا.
هذه الاعتبارات مجتمعة قد تُحوّل ما بدا صفقة إلى كلفة تتجاوز 100 ألف دولار سنويًا. عند هذه العتبة، يصير النقاش جدّيًا.
كلفة الاستضافة الداخليّة
الاستضافة الداخليّة على معالج رسومي واحد ثابتة تقريبًا مقابل حجم الاستخدام:
- العتاد: A100 40 غيغا مستأجَرة من مزوّد سحابيّ، نحو 1.5 دولار في الساعة. بتشغيل مستمرّ: نحو 13 ألف دولار سنويًا.
- العتاد المشترى: RTX 4090 24 غيغا، نحو 2000 دولار، عمر مفيد 3 سنوات: 670 دولار سنويًا، زائد نحو 400 دولار كهرباء وتشغيل.
- بديل قابل للاستئجار: بطاقات استهلاكيّة سحابيّة، نحو 0.3 دولار في الساعة: 2600 دولار سنويًا.
النموذج الداخلي، بنموذج 7 مليار وسيط مُكمَّم إلى 4 بت مع vLLM، يعالج مئات الطلبات في الدقيقة. طاقة الاستيعاب تفوق حاجة مشروعنا بعشرة أضعاف، لذلك ينخفض الحدّ الأدنى للكلفة إلى حدود ثابتة بغضّ النظر عن نموّ الطلب.
نقطة التقاطع
للمشروع الحاليّ (3000 طلب يوميًا)، API الخارجي أرخص. عند نموّ إلى 15 ألف طلب يوميًا مع RAG، تصير الاستضافة الداخليّة أرخص. الخيار الأول يبني الرشاقة (لا تُدير عتادًا)، والثاني يبني الاستقلاليّة (لا تدفع للمزوّد الخارجي، ولا تُصدِّر البيانات).
بنية التوجيه
هناك بنية ثالثة تُغيّر المعادلة كلّها. أغلب الطلبات لا تستحقّ نموذجًا قويًا. تصنيف بسيط، تلخيص فقرة، ترجمة قصيرة — كلّها مهام يُنجزها نموذج مصغَّر بكلفة ضئيلة. لا نحتاج إلى نموذج مليار وسيط لتحديد ما إذا كان طلبٌ ما تقنيًا أم إداريًا.
المعمارية المقترحة:
الطلب
↓
مصنّف (نموذج صغير أو قواعد بسيطة)
↓
┌────┴────┐
↓ ↓
مهمّة مهمّة
بسيطة معقّدة
↓ ↓
نموذج نموذج
صغير كبير
المصنِّف يمرِّر 70 بالمائة من الطلبات إلى نموذج صغير (7 مليار وسيط أو أقلّ) ، و30 بالمائة إلى النموذج القوي (70 مليار وسيط أو نموذج مِلكيّ متقدّم). النتيجة: كلفة إجماليّة تقلّ عن ثلث كلفة استخدام النموذج القوي وحده، وجودة قريبة جدًّا لأنّ الأسئلة المعقّدة وحدها تستفيد من النموذج القوي.
def routeur(question, tokenizer, mini_modele, grand_modele_client):
"""يوجّه الأسئلة البسيطة للنموذج المُصغّر والمعقّدة للنموذج الكبير."""
prompt = f"""صنّف السؤال التالي: هل هو "بسيط" (تصنيف، تلخيص قصير، تحيّة)، أم "معقّد" (تعليل مالي، تفسير سياسة، حالة متعدّدة الشروط)؟ أجب بكلمة واحدة.
السؤال: {question}
التصنيف:"""
messages = [{"role": "user", "content": prompt}]
entrees = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True)
sortie = mini_modele.generate(entrees.to(mini_modele.device), max_new_tokens=5, do_sample=False)
classe = tokenizer.decode(sortie[0, entrees.shape[1]:], skip_special_tokens=True).strip()
if "بسيط" in classe:
# نستخدم النموذج المصغّر نفسه للإجابة
return generer_avec_mini(question, tokenizer, mini_modele)
return grand_modele_client.chat.completions.create(
model="grand-modele", messages=[{"role": "user", "content": question}]
)
المصنِّف نفسه هو نموذج صغير (يمكن أن يكون النموذج المُصغَّر ذاته المُستخدَم للردود البسيطة، بمُطالبة مختلفة). كلفة التوجيه ضئيلة، والوفر مُتراكم.
التخبئة
بُعد آخر لتخفيض الكلفة: التخبئة. لكلّ طلب متطابق أو شبه متطابق، لا نستأنف الاستدلال؛ نُعيد الإجابة المحفوظة. للأنظمة العامّة، هذا يوفّر 10 إلى 30 بالمائة. لمساعد الدعم بسؤالٍ عام (كيف أفتح حسابًا، ما ساعات فتح الفرع)، الوفر أعلى.
يُطبَّق على مستويين:
- تخبئة كاملة: مُطالبة متطابقة → إجابة محفوظة (Redis، أو ذاكرة العملية).
- تخبئة دلاليّة: مُطالبة قريبة دلاليًا (شعاع مُشفَّر متقارب) → إجابة سابقة قابلة للإعادة، أو الاستيراد إلى المُطالبة كسياق.
الحذر: تخبئة الإجابات المُنتَجة آليًا تحوي الأخطاء التي أُنتجت أوّل مرّة. يجب مراجعة عيّنة قبل التخبئة النهائيّة، أو التخبئة مؤقّتة تُنتهي بعد ساعات.
القرار لمشروعنا
بجمع الحسابات، توصيتنا لمساعد الدعم هذا:
- بداية سريعة: API خارجي مع نموذج متوسّط، تكامل في أسبوع، كلفة سنويّة تحت 5000 دولار.
- مرحلة النموّ: إضافة تخبئة، ثمّ توجيه بين نموذج مُصغَّر (خارجي أيضًا) والنموذج المتوسّط.
- الاستضافة الداخليّة: تُقيَّم إعادة عند تجاوز 15 ألف طلب يوميًا أو حين تفرض تنظيمات البيانات (بيانات صحيّة، ماليّة حسّاسة) الحصر داخل الحدود.
كلفة نماذج الذكاء الاصطناعي تنمو بصمت مع نموّ الاستخدام. اضبط تنبيهًا آليًا لمّا تتجاوز الفاتورة اليومية عتبة معيّنة، وراجع أسبوعيًا التوزيع بين مُدخَل ومُخرَج. زيادة مفاجئة قد تعني أنّ ميزة جديدة أطالت مُطالبات RAG، أو أنّ عيبًا في كود المعاودة يبعث الطلب مرّتين. الفاتورة الشهرية جي ّدة للتقارير؛ العدّاد اليوميّ ضروري للتشغيل.
في الخلاصة
- API خارجيّ رخيص عند البداية، لكنّه ينمو بالخدمة؛ الاستضافة الداخليّة ذات كلفة ثابتة تنفع عند الحجم أو التنظيمات.
- بنية التوجيه تحوّل 70 بالمائة من الطلبات إلى نموذج مُصغَّر بكلفة ضئيلة؛ الجودة قريبة، والوفر ضخم.
- التخبئة، بمستوى نصّي أو دلاليّ، توفّر 10 إلى 30 بالمائة على أنظمة عامّة، وأكثر لمساعد بأسئلة شائعة.
- قرار المشروع: API متوسّط + تخبئة + توجيه كبداية، مع إعادة تقييم عند 15 ألف طلب يوميًا أو تقييد تنظيميّ.
الوحدة التالية: خلاصة الدورة، جدول القرار الشامل لمساعد الدعم، وإعلان الامتحان النهائي.