أساسيات تصميم أنظمة الذكاء الاصطناعي
مكونات أنظمة الذكاء الاصطناعي
4 دقيقة للقراءة
تتكون أنظمة الذكاء الاصطناعي الحديثة من عدة وحدات بناء رئيسية. فهم متى وكيف تستخدم كل مكون ضروري لمقابلات تصميم الأنظمة.
نظرة عامة على المكونات الأساسية
┌─────────────────────────────────────────────────────────────┐
│ هندسة نظام الذكاء الاصطناعي │
├─────────────┬─────────────┬─────────────┬──────────────────┤
│ البوابة │ طبقة │ مخزن │ التخزين │
│ و API │ LLM │ المتجهات │ والذاكرة المؤقتة│
├─────────────┼─────────────┼─────────────┼──────────────────┤
│ حد المعدل │ OpenAI │ Pinecone │ PostgreSQL │
│ المصادقة │ Anthropic │ Qdrant │ Redis │
│ موازنة الحمل│ LLMs محلية │ Milvus │ S3 │
└─────────────┴─────────────┴─────────────┴──────────────────┘
1. طبقة LLM
عقل نظامك. الاعتبارات الرئيسية:
| المزود | الأفضل لـ | المقايضة |
|---|---|---|
| OpenAI GPT-4 | الاستدلال المعقد | تكلفة أعلى، حدود المعدل |
| Claude | سياق طويل، الأمان | التوفر يختلف حسب المنطقة |
| مفتوح المصدر (Llama) | الخصوصية، التحكم بالتكلفة | يتطلب بنية تحتية |
# مثال: طبقة تجريد LLM
class LLMProvider:
def __init__(self, provider: str):
self.provider = provider
def complete(self, prompt: str, **kwargs) -> str:
# التوجيه إلى المزود المناسب
if self.provider == "openai":
return self._openai_complete(prompt, **kwargs)
elif self.provider == "anthropic":
return self._anthropic_complete(prompt, **kwargs)
2. قاعدة البيانات المتجهة
تخزن التضمينات للبحث الدلالي. حاسمة لأنظمة RAG.
| قاعدة البيانات | نقاط القوة | الاعتبارات |
|---|---|---|
| Pinecone | مُدارة، سهلة التوسع | الارتباط بالمورد |
| Qdrant | مفتوحة المصدر، تصفية | تعقيد الاستضافة الذاتية |
| pgvector | PostgreSQL مألوف | نطاق محدود |
| Milvus | أداء عالي | عبء تشغيلي |
3. طبقة التخزين المؤقت
تقلل التكاليف وزمن الاستجابة بتخزين الاستعلامات المتكررة.
# نمط التخزين المؤقت الدلالي
class SemanticCache:
def __init__(self, similarity_threshold=0.95):
self.threshold = similarity_threshold
self.cache = {} # التضمين -> الاستجابة
def get(self, query_embedding):
for cached_embedding, response in self.cache.items():
if cosine_similarity(query_embedding, cached_embedding) > self.threshold:
return response
return None
4. طابور الرسائل
يتعامل مع المعالجة غير المتزامنة للمهام الطويلة.
متى تستخدمه:
- المهام التي تستغرق أكثر من 30 ثانية
- معالجة دفعات من المستندات
- منطق إعادة المحاولة للاستدعاءات الفاشلة
الخيارات الشائعة: Redis Queue، Celery، AWS SQS
5. بوابة API
نقطة الدخول لجميع الطلبات.
المسؤوليات:
- المصادقة والتفويض
- تحديد المعدل (حاسم للتحكم بالتكلفة)
- توجيه الطلبات
- تنسيق الاستجابات
إطار اختيار المكونات
عند اختيار المكونات، اسأل:
- النطاق: كم طلب في الثانية؟
- زمن الاستجابة: ما هو وقت الاستجابة المقبول؟
- التكلفة: ما هي الميزانية لكل استعلام؟
- الموثوقية: ما هو متطلب وقت التشغيل؟
- التعقيد: هل يستطيع الفريق صيانته؟
بعد ذلك، سنتعمق في مفاهيم قابلية التوسع لأنظمة الذكاء الاصطناعي. :::