أساسيات تصميم أنظمة الذكاء الاصطناعي
إطار التصميم
4 دقيقة للقراءة
امتلاك نهج منظم يفصل المرشحين الجيدين عن الممتازين. إطار RADIO يوفر طريقة منهجية للتعامل مع أي مشكلة تصميم نظام ذكاء اصطناعي.
إطار RADIO
| الخطوة | التركيز | الوقت |
|---|---|---|
| Requirements (المتطلبات) | ماذا نبني؟ | 5-10 دقائق |
| Architecture (الهندسة) | المكونات عالية المستوى | 10-15 دقيقة |
| Data (البيانات) | التخزين، التدفق، النماذج | 5-10 دقائق |
| Infrastructure (البنية التحتية) | التوسع، النشر | 5-10 دقائق |
| Operations (العمليات) | المراقبة، السلامة | 5 دقائق |
R - المتطلبات
ابدأ دائماً من هنا. اطرح أسئلة توضيحية:
المتطلبات الوظيفية:
- ما هو التفاعل الرئيسي للمستخدم؟
- ما هي المدخلات والمخرجات المتوقعة؟
- هل هناك متطلبات دقة؟
المتطلبات غير الوظيفية:
- QPS المتوقع (استعلامات في الثانية)؟
- زمن الاستجابة المقبول (p50، p99)؟
- قيود الميزانية؟
- متطلبات الامتثال (GDPR، HIPAA)؟
مثال حوار:
المحاور: "صمم نظام أسئلة وأجوبة للمستندات."
أنت: "قبل أن أبدأ، أود توضيح بعض الأمور:
- ما حجم المستندات؟ صفحات فردية أم مئات الصفحات؟
- هل نحتاج الاستشهاد بالمصادر في إجاباتنا؟
- ما زمن الاستجابة المتوقع؟ أقل من ثانية أم 5-10 ثوانٍ مقبولة؟
- كم عدد المستخدمين المتزامنين الذين يجب دعمهم؟"
A - الهندسة المعمارية
ارسم النظام عالي المستوى:
┌──────────────────────────────────────────────────────────┐
│ نظام أسئلة وأجوبة المستندات │
├──────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────────────────┐ │
│ │المستخدم │───▶│ API │───▶│ معالج الاستعلام │ │
│ └─────────┘ └─────────┘ └─────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────┐ ┌─────────┐ ┌─────────────────────┐ │
│ │ قاعدة │◀───│ نموذج │◀───│ المسترجع │ │
│ │المتجهات│ │ التضمين │ └─────────────────────┘ │
│ └─────────┘ └─────────┘ │ │
│ ▼ │
│ ┌─────────────────────────┐ │
│ │ LLM (التوليد) │ │
│ └─────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────┐ │
│ │ الاستجابة + الاستشهادات│ │
│ └─────────────────────────┘ │
└──────────────────────────────────────────────────────────┘
D - البيانات
حدد نماذج البيانات والتدفق:
# نماذج البيانات الأساسية
class Document:
id: str
content: str
metadata: dict # المصدر، التاريخ، المؤلف
chunks: List[Chunk]
class Chunk:
id: str
document_id: str
content: str
embedding: List[float]
position: int # للاستشهاد
class Query:
id: str
text: str
embedding: List[float]
retrieved_chunks: List[Chunk]
response: str
تدفق البيانات:
- المستندات تُستوعب ← تُقسم ← تُضمّن ← تُخزن
- الاستعلام يُستلم ← يُضمّن ← القطع المتشابهة تُسترجع
- القطع + الاستعلام ← LLM ← الاستجابة مع الاستشهادات
I - البنية التحتية
ناقش التوسع والنشر:
| المكون | استراتيجية التوسع |
|---|---|
| طبقة API | أفقي، تلقائي على CPU |
| قاعدة البيانات المتجهة | التجزئة حسب مجموعة المستندات |
| استدعاءات LLM | مفاتيح API متعددة، احتياطي مزود |
| التخزين المؤقت | مجموعة Redis، منسوخة |
تقدير التكلفة:
الاستعلامات اليومية: 100,000
متوسط الرموز لكل استعلام: 2,000 (إدخال) + 500 (إخراج)
تكلفة LLM: 100K × ($0.01 × 2 + $0.03 × 0.5) = $3,500/يوم
قاعدة البيانات المتجهة: $100/شهر
البنية التحتية: $500/شهر
الإجمالي: ~$110,000/شهر
O - العمليات
غطِّ المراقبة والسلامة:
المراقبة:
- مئويات زمن الاستجابة (p50، p95، p99)
- معدلات الخطأ حسب النوع
- معدلات إصابة التخزين المؤقت
- التكلفة لكل استعلام
السلامة:
- التحقق من المدخلات (الطول، تصفية المحتوى)
- حواجز المخرجات (كشف PII، المحتوى الضار)
- تحديد المعدل لكل مستخدم
التقييم:
- مقاييس آلية (دقة الاسترجاع، صلة الاستجابة)
- عينات التقييم البشري
- اختبار A/B لتغييرات المطالبات
الإطار في العمل
تدريب: عند إعطائك مشكلة تصميم، اكتب RADIO عمودياً واملأ كل قسم. هذا يبقيك منظماً ويضمن عدم تفويت جوانب حاسمة.
الآن بعد أن لديك الأساسيات، لنتعمق في هندسة تطبيقات LLM. :::