تقييم القرار
قياس الجودة والتكلفة.
تقييم القرار درس مجاني في AI Prompt Engineering على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Prompt Engineering، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Prompt Engineering 4 دروس في المجموع.
لا يمكنكم اتخاذ قرار بشأن ما لا يمكنكم قياسه
لا يكون الاختيار بين الـprompt والضبط والهجين أفضل من التقييم الذي يستند إليه. فمن دون مجموعة تقييم مجمّدة ونموذج للتكلفة، لا تكون أي مقارنة أكثر من مجرد انطباع.
- الجودة والتكلفة هما محوران، فلا تدمجوهما مبكرًا في رقم واحد
- يجب أن تكون مجموعة التقييم محجوزة وثابتة في كل نهج تقارنونه
- النهج الفائز هو النهج الواقع على أفضل نقطة في جبهة الجودة والتكلفة وفق قيودكم
أنشئوا مجموعة التقييم المجمّدة أولًا
قبل مقارنة أي شيء، أنشئوا مجموعة تقييم محجوزة لا يتدرب عليها أي نهج. ويجب أن تغطي التوزيع الفعلي للبيانات: الحالات الشائعة، والحالات الطرفية المعروفة، والمدخلات العدائية بنسب تقارب نسب الإنتاج.
جمّدوا هذه المجموعة. يجب تقييم كل نهج، سواء كان معتمدًا على الـprompt فقط أو مضبوطًا أو هجينًا، على المجموعة نفسها تمامًا. فإذا تغير التقييم بين المقارنات، فلن تكون الأرقام قابلة للمقارنة، وسيكون القرار غير صالح.
def split_eval(labeled, holdout_ratio=0.2, seed=42):
import random
rng = random.Random(seed) # fixed seed = reproducible split
data = labeled[:]
rng.shuffle(data)
cut = int(len(data) * (1 - holdout_ratio))
train, frozen_eval = data[:cut], data[cut:]
return train, frozen_eval # eval never enters any training runاختاروا مقاييس تناسب المهمة
تخفي الدقة العامة الإخفاقات الخاصة بالمهمة. اختاروا مقاييس تلتقط ما يهم فعليًا:
- التطابق التام/تطابق المخطط للمخرجات المهيكلة
- تقييم LLM-as-judge وفق مقياس للجودة المفتوحة، مع عينة يراجعها إنسان
- مقاييس الذيل، مثل أسوأ حالة وp95، لا المتوسط فقط
- معدلات السلامة والرفض بوصفها بوابات صارمة، وتُقيّم بشكل منفصل عن الجودة
سيقودكم متوسط يخفي ذيلًا كارثيًا إلى القرار الخاطئ.
قيّموا كل مرشح بالطريقة نفسها
مرّروا النهج المعتمد على الـprompt فقط، والنهج المضبوط، والنهج الهجين عبر المقيّم نفسه وعلى المجموعة المجمّدة نفسها. وسجّلوا الجودة مع متجه التكلفة الكامل لكل نهج، حتى تكون المقارنة عادلة ومتكافئة.
def evaluate(candidate, frozen_eval, scorer):
results = []
for ex in frozen_eval:
out = candidate.run(ex['input'])
results.append(scorer(out, ex['label']))
mean = sum(results) / len(results)
p95 = sorted(results)[int(0.95 * len(results)) - 1]
return {'mean': mean, 'p95_worst': p95}
# Identical frozen_eval + scorer for prompt / tuned / hybridنمذجوا متجه التكلفة الكامل
التكلفة ليست رقمًا واحدًا. سجّلوا كل مكوّن حتى تعكس المقارنة الواقع عند حجم الاستخدام لديكم:
- الاستدلال لكل استدعاء: رموز الإدخال والإخراج مضروبة في السعر، إذ تكلف الـprompts الطويلة أكثر في كل استدعاء
- التدريب الموزّع: تكلفة الضبط موزعة على حجم الطلبات المتوقع
- الصيانة: خط أنابيب البيانات، وتشغيلات التقييم، وإعادة الضبط عند تغير النموذج الأساسي
- زمن الاستجابة: احسبوا تكلفته منفصلة عندما يؤثر في التحويل أو تجربة المستخدم
def monthly_cost(calls, in_tok, out_tok, price_in, price_out,
train_cost=0.0, months_amortized=12):
inference = calls * ((in_tok/1000)*price_in + (out_tok/1000)*price_out)
amortized_train = train_cost / months_amortized
return inference + amortized_train
# Long prompt-only: high in_tok, train_cost=0
# Tuned: low in_tok, train_cost>0 amortized over volumeارسموا جبهة الجودة والتكلفة
بعد تحديد الجودة والتكلفة الشهرية لكل مرشح، ضعوها على جبهة. ويكون المرشح مهيمنًا عليه إذا كان هناك مرشح آخر يتمتع بجودة أعلى وتكلفة أقل معًا؛ فاحذفوا المرشحين المهيمنًا عليهم.
من بين المجموعة غير المهيمن عليها، يعتمد الاختيار الصحيح على قيدكم: اختاروا الأرخص الذي يتجاوز حد الجودة، أو الأعلى جودة ضمن سقف التكلفة. وهكذا يصبح القرار واضحًا وقابلًا للدفاع عنه، لا مجرد مسألة تفضيل.
def non_dominated(candidates):
# candidate: {'name','quality','cost'} -- higher quality, lower cost better
keep = []
for c in candidates:
dominated = any(o['quality'] >= c['quality'] and o['cost'] <= c['cost']
and o != c for o in candidates)
if not dominated:
keep.append(c)
return keepالدلالة الإحصائية لا الضوضاء
قد تكون زيادة بمقدار نقطتين في تقييم يضم 200 مثال مجرد ضوضاء. وقبل إعلان الفائز، تحققوا من أن فارق الجودة ذو دلالة إحصائية بالنظر إلى حجم مجموعة التقييم.
استخدموا مقارنة مزدوجة، أي مرّروا الأمثلة نفسها عبر كلا المرشحين، واحسبوا فترة ثقة للفارق. فإذا عبرت الفترة الصفر، فلا يوجد تحسن حقيقي، ولا تكون التكلفة الإضافية للضبط مبررة.
def paired_diff_ci(scores_a, scores_b):
import statistics
diffs = [a - b for a, b in zip(scores_a, scores_b)]
mean = statistics.mean(diffs)
sd = statistics.pstdev(diffs)
se = sd / (len(diffs) ** 0.5)
return (mean - 1.96*se, mean + 1.96*se) # if it spans 0 -> not significantاحموا أنفسكم من تسرّب التقييم
أسرع طريقة لجعل الضبط يبدو أفضل من حقيقته هي التسرّب، أي تداخل أمثلة التدريب مع مجموعة التقييم. فالتقييم المتسرّب يكافئ الحفظ ويضخّم درجة المرشح المضبوط.
أزيلوا التكرارات عبر الحد الفاصل بين التدريب والتقييم، وابحثوا عن العناصر شبه المكررة، وفضّلوا تقييمًا منفصلًا زمنيًا، محجوزًا وفق التاريخ، حتى لا يكون النموذج المضبوط قد شاهده. ويُعد التسرّب السبب الأكثر شيوعًا لقرارات الضبط التي تفشل في الإنتاج.
راقبوا النظام بعد نشره
لا يكون القرار نهائيًا عند الإطلاق. إذ يتغير توزيع بيانات الإنتاج، وقد يتدهور النموذج المضبوط بصمت عندما تبتعد المدخلات عن توزيع التدريب.
- خذوا عينات من الزيارات الفعلية وقيّموها وفق المقياس نفسه
- أطلقوا تنبيهات عند انخفاض الجودة أو ارتفاع التكلفة لكل استدعاء
- أعيدوا تشغيل التقييم المجمّد كلما تغير إصدار النموذج الأساسي
تعاملوا مع النهج المختار بوصفه فرضية تخضع للاختبار المستمر، لا قرارًا مغلقًا.
سجل القرار
وثّقوا المقارنة في سجل قرار مكتوب يتضمن التقييم المجمّد، ومتجه الجودة والتكلفة لكل مرشح، ونتيجة الدلالة الإحصائية، وحجم الاستخدام المفترض، والنقطة المختارة على الجبهة مع مبرراتها.
يجعل ذلك الاختيار قابلًا للتدقيق وإعادة التقييم. وعندما يتغير حجم الاستخدام أو النموذج الأساسي، أعيدوا فتح السجل وأعيدوا التشغيل بدلًا من إعادة مناقشة القرار اعتمادًا على الذاكرة.
دالة القرار من البداية إلى النهاية
اربطوا جميع العناصر معًا: قيّموا كل مرشح على مجموعة التقييم المجمّدة، وأضيفوا تكلفته، واحذفوا الخيارات المهيمنًا عليها، واشترطوا وجود دلالة إحصائية مقارنة بخط الأساس الأرخص، ثم اختاروا وفق القيد الحاسم لديكم.
def decide(candidates, quality_bar, cost_ceiling):
frontier = non_dominated(candidates)
feasible = [c for c in frontier
if c['quality'] >= quality_bar and c['cost'] <= cost_ceiling]
if not feasible:
return 'NO_CANDIDATE_MEETS_CONSTRAINTS'
# cheapest option that clears the quality bar
return min(feasible, key=lambda c: c['cost'])['name']
# Prefer prompt-only on ties: lower maintenance TCOتحقق سريع
حصل نموذج مضبوط على درجة أعلى بمقدار نقطتين من استخدام الـprompt في تقييم يضم 150 مثالًا، لكن فترة الثقة المزدوجة للفارق تشمل الصفر. كما أن تكلفته الشهرية أعلى. ما القرار الصحيح؟
مراجعة
اتخذوا القرار اعتمادًا على تقييم مجمّد ومتجه تكلفة صادق، لا على الحدس. الجودة والتكلفة محوران؛ والإجابة هي نقطة على جبهة الجودة والتكلفة، تُختار وفق القيد الحاسم لديكم.
- جمّدوا مجموعة تقييم واحدة، وقيّموا كل مرشح عليها بالطريقة نفسها
- اختاروا مقاييس مناسبة للمهمة، وراقبوا الذيل لا المتوسط فقط
- نمذجوا متجه التكلفة الكامل ووزّعوا تكلفة التدريب على حجم الاستخدام الفعلي
- اشترطوا الدلالة الإحصائية؛ ففترة الثقة التي تشمل الصفر لا تمثل تحسنًا
- احموا التقييم من التسرّب، فهو السبب الأبرز للانتصارات الوهمية للضبط
- راقبوا النظام بعد الإطلاق، وسجّلوا القرار كي يمكن إعادة تشغيله
تعلم AI Prompt Engineering مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 53
- الدروس
- 199
الأسئلة الشائعة
هل درس «تقييم القرار» مجاني؟
نعم — نص درس «تقييم القرار» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Prompt Engineering، انتقل إلى CoddyKit PRO. تتضمن دورة AI Prompt Engineering 4 دروس في المجموع.
ماذا ستتعلم في «تقييم القرار»؟
قياس الجودة والتكلفة. تتمرن على AI Prompt Engineering مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ AI Prompt Engineering؟
لا تُشترط خبرة سابقة. AI Prompt Engineering على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «تقييم القرار»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس AI Prompt Engineering هذا؟
نعم. كل درس في AI Prompt Engineering يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.