اختبار أدوات الذكاء الاصطناعي على بياناتك أنت هو ما يخبرك بالدقة الحقيقية. قرأت أن أداة ذكاء اصطناعي «تحقق دقة 95٪»، فاشتركت فيها وبدأت تعتمد عليها في شغلك. بعد شهر اكتشفت أنها تخطئ كثيرًا فيما تحتاجه أنت تحديدًا: فواتير موردين بأرقام هندية، أو رسائل عملاء بلهجة محلية، أو جداول تحمل صيغتك أنت. لم تكذب الشركة. لكن الرقم الذي نشرته قيس على مهمة أخرى وبيانات أخرى. والسؤال الذي يهمك فعلًا هو: كم تصيب هذه الأداة في مهمتي أنا؟
في الأسابيع الأخيرة اختبرنا أداتين في مهمتين عمليتين بأسلوب اختبار أدوات الذكاء الاصطناعي الذي نشرحه هنا، وخرجنا بنتيجتين تكفيان لتوضيح الفكرة: على 36 فاتورة عربية صحّحت الأداة الأفضل أداءً عندنا 27 فاتورة تمامًا (75٪)، وعلى 30 طلب أسعار صحّح 28 طلبًا (93٪). الأداة نفسها، لكن «دقتها» تغيّرت من مهمة إلى أخرى بنحو 18 نقطة مئوية. هذا ما يجعل الاختبار على مهمتك ضروريًا. في هذا الدليل نشرح طريقة اختبار أدوات الذكاء الاصطناعي التي اتبعناها بالتفصيل، بأكواد حقيقية من مختبرنا، لتطبّقها على أي أداة وأي مهمة عندك، بدءًا من ورقة إكسل لمن لا يبرمج.
لماذا لا تكفي أرقام الشركات في اختبار أدوات الذكاء الاصطناعي؟
نتائج اختبار أدوات الذكاء الاصطناعي المنشورة تقيس ما اختاره واضعوها، وليس بالضرورة ما تحتاجه. وهذا ليس عيبًا بحد ذاته؛ الشركات نفسها تنصح بغيره. تقول وثائق Anthropic في دليل تحديد معايير النجاح وبناء التقييمات بما معناه: اجعل معايير النجاح محددة وقابلة للقياس، وصمّم اختباراتك لتحاكي توزيع مهمتك الحقيقية مع الحالات الحدّية، وفضّل التصحيح الآلي مع عدد أكبر من الأسئلة على تصحيح يدوي لعدد قليل. وتنصح إرشادات OpenAI لأفضل ممارسات التقييم بما معناه: ابنِ اختباراتك مبكرًا وأعد تشغيلها باستمرار، واجعلها خاصة بمهمتك وتعكس توزيع مدخلاتك الواقعية. (نلخّص هنا بصياغتنا، فارجع للصفحتين لتقرأ النص الرسمي كما هو.)
هذا يعني شيئين لصاحب مشروع صغير. أولًا، أنك لا تحتاج مختبرًا ضخمًا: 20 إلى 50 حالة تمثل عملك تصلح اختبارًا تجريبيًا يكشف الفروق الكبيرة (مع فاصل ثقة واسع كما سنرى). وثانيًا، أن الاختبار ليس حدثًا واحدًا، بل عادة تكررها عند كل تحديث كبير للنموذج أو تغيير في أدواتك. وللتعامل مع حالة «الأداة تجيب بثقة وهي مخطئة»، راجع أيضًا الهلوسة في الذكاء الاصطناعي وكيف تتحقق قبل أن تُخدع.

اختبار أدوات الذكاء الاصطناعي في عشر خطوات
- اختر مهمة ضيقة وعرّف «النجاح» بشيء يمكن عدّه.
- ولّد بيانات اصطناعية تشبه عملك، ومعها مفتاح إجابة مخفي.
- اكتب التعليمات والقواعد مرة واحدة، دون غموض.
- جرّب على عينة تطوير صغيرة منفصلة لتكتشف الأخطاء الفنية.
- جمّد التعليمات والمصحّح ومفتاح الإجابة قبل التشغيل الحقيقي.
- شغّل كل الأدوات بشروط متساوية في بيئة معزولة.
- صحّح بالكود، وسجّل قواعد التصحيح.
- اقرأ النتائج بإحصاء بسيط: النسب وفواصل الثقة واختبار للفروق.
- افحص الأخطاء بنفسك واستخرج أنماطها.
- اطلب مراجعة مستقلة، واذكر تضارب المصالح إن وُجد.
الخطوة 1: مهمة ضيقة ونجاح يمكن قياسه
«هل الأداة جيدة؟» سؤال لا جواب له في اختبار أدوات الذكاء الاصطناعي. و«هل تقرأ فاتورة عربية؟» أضيق لكنه ما زال غامضًا. السؤال الذي يمكن اختباره هو: «من أصل 36 فاتورة مصورة، كم فاتورة أعادت الأداة منها جميع الحقول المطلوبة على نحو صحيح؟». لاحظ أن فيه ثلاثة عناصر: وحدة العد (الفاتورة)، وتعريف الصحة (كل الحقول معًا)، والعدد الكلي (36).
في اختبار أدوات الذكاء الاصطناعي، اختر مقياسًا صارمًا بقدر ما يتطلب عملك. في الفواتير، فاتورة بخطأ في الرقم الضريبي ليست «شبه صحيحة»، فعددناها خاطئة. وفي مهمة المقارنة بين الموردين، عددنا الطلب صحيحًا إذا صحّت إجماليات الموردين الثلاثة وأعلام الصلاحية واختيار الأرخص كلها معًا. كل مهمة تُعرَّف بحسب ثمن الخطأ فيها. وقد قدمنا نتائج التجربتين في قراءة الفواتير العربية بالذكاء الاصطناعي: تجربة على 36 فاتورة ومقارنة عروض أسعار الموردين بالذكاء الاصطناعي: تجربة على 30 طلبًا.
الخطوة 2: بيانات اصطناعية بمفتاح إجابة لاختبار أدوات الذكاء الاصطناعي
لماذا اصطناعية؟
لسببين. الأول الخصوصية: بياناتك الحقيقية فيها عملاء وموردون وأسعار، ولا تريد رفعها إلى كل أداة تجرّبها. والثاني أن مفتاح الإجابة معروف مسبقًا: حين تولّد البيانات بنفسك تعرف الجواب الصحيح مسبقًا، فلا تحتاج أن تراجع كل إجابة بعينك لتحكم عليها. أنت تكتب المولّد، والمولّد يكتب المفتاح.
كيف تنوّع الصعوبة؟
قسّم بيانات اختبار أدوات الذكاء الاصطناعي إلى مستويات: سهل، ومتوسط، وصعب. في الفواتير كانت الصعوبة جودة الصورة (نظيفة، ومتوسطة، وسيئة التصوير). وفي العروض كانت القواعد (سلعة واحدة، ثم عبوات وضريبة، ثم خصم وتوصيل مشروطان وعروض منتهية). وأضف الحالات الحدّية التي تعرف أنها تحدث في عملك: أرقام هندية، وأسماء عربية بتشكيل، وعرض منتهٍ، وحقل غائب. إن اجتمعت في اختبارك فستعرف أين تنهار الأداة.
مولّد صغير بمفتاح إجابة
هذا مثال مبسّط ومجرَّب لاختبار أدوات الذكاء الاصطناعي، يولّد حالة لاختبار مقارنة عروض الأسعار ويحسب الإجابة الصحيحة. لاحظ البذرة الثابتة (seed): تعطيك المجموعة نفسها في كل مرة، فتستطيع إعادة الاختبار وتقارن:
import math, random
def make_case(rng):
qty = rng.choice([40, 50, 60, 100, 120])
pack = rng.choice([1, 6, 12, 24, 48])
price_pack = round(rng.uniform(3, 40), 2)
vat_included = rng.random() < 0.5
packs = math.ceil(qty / pack) # whole packs only
price_ex = price_pack / 1.15 if vat_included else price_pack
truth_total = round(packs * price_ex * 1.15, 2) # the hidden answer
text = (f"المطلوب: {qty} قطعة. العرض: العبوة ({pack} قطعة) بسعر {price_pack} ريال، "
+ ("الأسعار شاملة الضريبة 15٪" if vat_included else "الأسعار قبل الضريبة 15٪"))
return text, truth_total
rng = random.Random(20261020) # fixed seed = same test every time
cases = [make_case(rng) for _ in range(30)]في اختبار أدوات الذكاء الاصطناعي على الفواتير استخدمنا الفكرة نفسها لكن حوّلنا كل فاتورة إلى صورة: كتبنا قالب HTML لكل تصميم، وصوّرناه بمتصفح بلا واجهة، ثم أضفنا ميلانًا وضبابية وضغطًا وضجيجًا بحسب مستوى الصعوبة. والمفتاح هو البيانات التي ولّدنا منها الفاتورة، وليست بيانات مستخرجة منها.

الخطوة 3: التعليمات والقواعد مرة واحدة
الغموض في التعليمات يفسد الاختبار لأن كل أداة تفسّره بطريقتها. في تجربة العروض كتبنا ست قواعد: تقريب العبوات للأعلى، ومتى تُضاف الضريبة، وعلى أي أساس تُقاس حدود الخصم والتوصيل، ومتى يُعدّ العرض ساريًا، وكيف نقرّب الناتج. وبعد التشغيل لاحظ Codex في مراجعته أن عبارة «الخصم على قيمة المشتريات قبل الضريبة» قد تحتمل تأويلين إذا كانت الأسعار شاملة الضريبة، وأوصى بأن تُكتب صراحة: «السعر الشامل يُقسم على 1.15 لاسترجاع الأساس قبل الضريبة الذي تُقاس عليه الحدود». لم نغيّر التعليمات بعد التجميد حفاظًا على نزاهة الاختبار، وسجّلنا ذلك. أما أنت فاكتب هذه الجملة منذ البداية.
وفي صيغة المخرجات: اطلب JSON بحقول ثابتة ومفاتيح بالإنجليزية، واذكر أن الأرقام بالصيغة الغربية، وأن الحقل غير الموجود يكون null. هذا يسهّل التصحيح الآلي. وللمزيد عن كتابة التعليمات: كيف تكتب برومبت احترافي للذكاء الاصطناعي.
الخطوة 4: عينة تطوير منفصلة
قبل أن تشغّل مجموعة اختبار أدوات الذكاء الاصطناعي، شغّل عينة صغيرة (5 إلى 10 حالات) منفصلة عنها تمامًا. لا تُستخدم نتائج هذه العينة في الحكم، هدفها كشف الأعطال الفنية قبل أن تفسد الاختبار الحقيقي. في تجربتنا كشفت عينات التطوير أربعة أمور: أن تمرير التعليمات الطويلة العربية كوسيط للأمر يقتطعها (فنقلناها إلى المدخل القياسي)، وأن الأداة تكتب شرحًا قبل الجواب رغم أننا طلبنا الجواب فقط (فعدّلنا المصحّح ليقرأ آخر JSON)، وأن اسم المورد يعود أحيانًا دون كلمة «شركة» (فعدّلنا مطابقة الأسماء)، وأن إعدادات جهد التفكير الافتراضية تختلف بين الأداتين.
الفكرة: العينة التي عدّلت بسببها لا تصلح للحكم، لأنك لو ضبطت الاختبار على حالاتها لصار الاختبار يقيس ما عدّلته. فاحتفظ بمجموعة الاختبار نظيفة حتى لحظة التشغيل الحقيقي.
الخطوة 5: التجميد قبل التشغيل
التجميد يعني أن تسجّل بصمة (hash) لكل ملف حاسم قبل أن ترى أي نتيجة، ثم تلتزم ألا تغيّرها. هكذا تثبت لنفسك ولغيرك أنك لم تعدّل التعليمات أو المصحّح بعد رؤية الأرقام لتحسّنها. هذا مثال بسيط:
import hashlib, json, datetime
files = ["prompt_v1.txt", "score.py", "run_models.py", "gen_quotes.py",
"answer_key_test.json", "manifest_test.json"]
freeze = {
"frozen_at": datetime.datetime.now().isoformat(),
"sha256": {f: hashlib.sha256(open(f, "rb").read()).hexdigest() for f in files},
}
json.dump(freeze, open("FREEZE.json", "w"), indent=1)وإن اضطررت إلى تعديل ملف بعد التجميد فاكتب ذلك في التقرير بصراحة مع سببه وأثره. حدث هذا معنا في تجربة الفواتير: عدّلنا سطرًا واحدًا في سكربت التشغيل (تجاهل أخطاء حذف المجلد المؤقت في ويندوز) بعد أن أوقف التشغيل في منتصفه؛ فلم تعد بصمة سكربت التشغيل المسجّلة تطابق نسخته الأخيرة، بينما بقيت بصمات التعليمات والمصحّح والمفتاح والمولّد كما هي.
والتعديل لا يمسّ منطق الاختبار ولا نتائجه. وانتبه إلى أن نهايات الأسطر تختلف بين ويندوز ولينكس (CRLF وLF): حين راجع Codex بصمات ملفات الحالات النصية، اختلفت عن بصمات المفتاح لهذا السبب فقط، وتطابقت بعد توحيد نهايات الأسطر. ولو أردت تجنب هذا اللبس، فسجّل البصمة من البايتات نفسها التي تُرسل للأداة.
الخطوة 6: شروط تشغيل متساوية
عند مقارنة أداتين، أكثر ما يُفسد اختبار أدوات الذكاء الاصطناعي هو اختلاف طريقة تشغيلهما لا الأداتان نفسيهما. هذه ثلاث حالات وقعت معنا فعلًا:
- التعليمات وصلت مرتين: في تجربة الفواتير مررنا التعليمات لأداة كوسيط للأمر وعبر المدخل القياسي معًا، فوصلت إليها مرتين بينما وصلت الأخرى مرة واحدة. لاحظ ذلك Codex عند المراجعة، وأعدنا تشغيل الأداة المتأثرة، فتغيّرت نتيجتها من 25 إلى 27 فاتورة صحيحة. الدرس: افحص ما تستقبله كل أداة فعلًا.
- جهد التفكير مختلف: في تجربة العروض، أصاب Codex في عينة التطوير حالة واحدة من 6 بإعداداته الافتراضية، وثلاث حالات بعد أن ثبّتنا جهد التفكير على «متوسط» للاثنين. لا تقارن أداتين بإعدادات افتراضية مختلفة وتنسب الفرق للنموذج.
- الأدوات المتاحة: عطّلنا الأدوات عن Claude بالكامل، بينما كانت Codex في بيئة قراءة فقط لكنها قد تشغّل أوامر. لا نعرف هل استخدمتها. وسجّلنا هذا كتحفظ في النتائج.
وبعض القواعد العملية: شغّل كل حالة في مجلد مؤقت جديد حتى لا تؤثر الحالات في بعضها، واكتب المخرجات الخام في ملف لكل حالة، واحتفظ بنتائج التشغيل الأول إن أعدت التشغيل (احتفظنا بنتائج التشغيل المتأثر في مجلد باسم يدل على السبب)، وسجّل أسماء النماذج وإصداراتها وإعداداتها.

الخطوة 7: التصحيح بالكود في اختبار أدوات الذكاء الاصطناعي
المصحّح هو قلب اختبار أدوات الذكاء الاصطناعي. اجعله حتميًا (نفس المدخلات تعطي نفس النتيجة)، ومحافظًا (لا يتسامح إلا حيث تتسامح أنت)، وواضحًا (تستطيع أن تشرح كل قاعدة). هذه أهم القواعد التي احتجنا إليها في الاختبار العربي:
import json
AR_DIGITS = str.maketrans('٠١٢٣٤٥٦٧٨٩٫٬', '0123456789.,')
TASHKEEL = {chr(c) for c in range(0x064B, 0x0653)} | {chr(0x0640)} # tashkeel + tatweel
def norm(s):
"""normalize Arabic text and digits before comparing"""
s = str(s or '').translate(AR_DIGITS)
s = ''.join(ch for ch in s if ch not in TASHKEEL)
for a, b in (('أ', 'ا'), ('إ', 'ا'), ('آ', 'ا'), ('ى', 'ي'), ('ة', 'ه')):
s = s.replace(a, b)
return ' '.join(s.split()).lower()
def close(a, b, tol=0.05):
try:
return abs(float(a) - float(b)) <= tol
except (TypeError, ValueError):
return False
def last_json(raw):
"""models may write an explanation first; return the final JSON object (nested objects are fine)"""
dec = json.JSONDecoder()
for i in range(len(raw) - 1, -1, -1):
if raw[i] == '{':
try:
obj, end = dec.raw_decode(raw[i:])
except json.JSONDecodeError:
continue
if raw[i + end:].strip() == '': # the object that reaches the end of the text
return obj
return Noneأربع نقاط في التصحيح تستحق التوقف:
- التوحيد قبل المقارنة: حذف التشكيل وتوحيد الألف والهاء والياء وتحويل الأرقام الهندية. لكن لا تتسامح في المعرّفات: رقم الفاتورة والتاريخ والرقم الضريبي تُقارَن نصًا بعد إبقاء الأرقام فقط.
- التسامح الرقمي المحدد: استخدمنا 0.005 ريال في المبالغ المفردة و0.05 ريال في إجماليات العروض (بسبب التقريب المتراكم). عرّف تسامحك مسبقًا.
- قراءة آخر JSON: لأن إحدى الأداتين كتبت شرحًا قبل الجواب.
- مطابقة الأسماء: اكتشفنا في عينة التطوير أن الأداة تُرجع «الأفق التجارية» بدل «شركة الأفق التجارية». لو طابقنا النص حرفيًا لعددنا الجواب خاطئًا ظلمًا. فجعلنا المطابقة تتجاهل الكلمات العامة (شركة، مؤسسة، مكتبة، متجر، مورد). كل هذا يُسجَّل ويُجمَّد.
واجعل مقياسك الرئيسي صارمًا («الحالة صحيحة تمامًا»)، وأضف مقاييس فرعية لفهم أين الخلل (صحة كل حقل، وصحة الاختيار النهائي، ومجموع الفروق بالريال). لا تجمعها في رقم واحد.
الخطوة 8: قراءة نتائج اختبار أدوات الذكاء الاصطناعي بإحصاء بسيط
حين تكون عينة اختبار أدوات الذكاء الاصطناعي 30 أو 36، فالنسبة وحدها خادعة. فاصل الثقة يخبرك كم يمكن أن تتحرك النسبة الحقيقية. ويُستخدم لهذا غالبًا فاصل ويلسون لأنه أصلح للعينات الصغيرة من الطريقة التقليدية. وحين تقارن أداتين على الحالات نفسها (مقارنة مزدوجة)، فاختبر الفرق بـاختبار ماكنيمار الدقيق الذي لا ينظر إلا للحالات التي اختلفت فيها الأداتان. هذا كود قصير مجرَّب:
import math
from math import comb
def wilson(k, n, z=1.96):
p = k / n
d = 1 + z * z / n
c = p + z * z / (2 * n)
a = z * math.sqrt(p * (1 - p) / n + z * z / (4 * n * n))
return round((c - a) / d * 100, 1), round((c + a) / d * 100, 1)
def mcnemar_exact(only_a, only_b):
"""only_a: cases only tool A got right; only_b: only tool B"""
n, k = only_a + only_b, min(only_a, only_b)
return min(1.0, 2 * sum(comb(n, i) for i in range(k + 1)) / 2 ** n)
print(wilson(27, 36), wilson(13, 36), round(mcnemar_exact(15, 1), 4)) # invoices
print(wilson(28, 30), wilson(21, 30), round(mcnemar_exact(9, 2), 4)) # quotesوهذه نتيجة تشغيله على تجربتينا:
| التجربة | Claude (فاصل 95٪) | Codex (فاصل 95٪) | الحالات التي انفرد بها كل منهما | ماكنيمار (p) |
|---|---|---|---|---|
| 36 فاتورة | 27/36: من 58.9٪ إلى 86.2٪ | 13/36: من 22.5٪ إلى 52.4٪ | 15 مقابل 1 | 0.0005 |
| 30 طلب أسعار | 28/30: من 78.7٪ إلى 98.2٪ | 21/30: من 52.1٪ إلى 83.3٪ | 9 مقابل 2 | 0.065 |
الدرس هنا أن رقمين يبدوان متشابهين (فرق 39 نقطة في الفواتير، و23 في العروض) يعطيان استنتاجين مختلفين: فرق الفواتير قوي إحصائيًا في هذه العينة، وفرق العروض واضح لكنه غير حاسم عند مستوى 5٪. وتتغير هذه الاستنتاجات مع حجم العينة، فكلما زادت الحالات ضاقت الفواصل. ولا تقرأ p على أنه «احتمال أن تكون الأداة أفضل»؛ هو مقياس لمدى غرابة الفرق لو لم يكن بين الأداتين فرق حقيقي في هذه العينة. وتبقى الصلاحية محصورة بنوع بياناتك.
الخطوة 9: راجع بنفسك أخطاء اختبار أدوات الذكاء الاصطناعي
الأرقام تخبرك «كم»، والأخطاء تخبرك «لماذا». اجمع كل الأخطاء في جدول (الحقل، والصواب، وما أعادته الأداة)، وصنّفها. في الفواتير تبيّن أن الأخطاء تتركز في المعرّفات (رقم الفاتورة والتاريخ والرقم الضريبي) وأن نمطها: خانة محذوفة، أو مضافة، أو قلب شهر، أو سنة مختلقة. وفي العروض تبيّن أن الأخطاء حسابية حتى في الطلبات السهلة.
وراجع بنفسك عينة من الأخطاء لتتأكد أنها أخطاء الأداة وليست أخطاء المصحّح. حين فحص Codex طلبًا سهلًا (200 رزمة بسعر 13.48 وتوصيل 35)، أعاد الحساب بنفسه: 2,696 + 35 = 2,731، ثم × 1.15 = 3,140.65، بينما أجابت الأداة بـ3,130.90. خطأ حسابي حقيقي، وليس مشكلة في المصحّح. هذا الفحص اليدوي هو الذي يمنحك ثقة في أرقامك.

الخطوة 10: مراجعة مستقلة وإفصاح
يصعب على من بنى اختبار أدوات الذكاء الاصطناعي أن يراجعه بموضوعية، لأنه يعرف ما قصده فيقرأ الغموض وكأنه وضوح. اطلب من شخص آخر (أو أداة أخرى في وضع القراءة فقط) أن يراجع: المفتاح، والتعليمات، والمصحّح، وعدالة شروط التشغيل. في تجربتنا راجع Codex بروتوكول الاختبار، وأعاد حساب خمس حالات عشوائية بمعزل عنا، ووجد مشكلتين: التعليمات المكررة في تجربة الفواتير، وغموضًا في عبارة الضريبة في تجربة العروض. كلاهما لم نكن لنراه لوحدنا.
وأفصح عن تضارب المصالح. نحن نستخدم Claude في عملنا ونختار العينة والتعليمات والتصحيح، فكتبنا في كل نتيجة أنها «تجربة يديرها صاحبها، وليست مقارنة مستقلة». هذا الإفصاح لا يُضعف نتيجتك، بل يعطي القارئ فرصة لأن يزن الأرقام بما تستحق.
كم حالة تكفي في اختبار أدوات الذكاء الاصطناعي؟ حساب بسيط بدل التخمين
سؤال يتكرر: هل 20 حالة كافية؟ الجواب يتوقف على مدى الدقة التي تريدها في الاستنتاج. هذا جدول يوضح كيف يضيق فاصل الثقة بزيادة عدد الحالات، لو كانت نسبة النجاح 75٪ في كل مرة (فاصل ويلسون 95٪):
| عدد الحالات | الصحيح منها (نحو 75٪، بالتقريب لأقرب حالة) | الفاصل المحتمل للنسبة الحقيقية | عرض الفاصل |
|---|---|---|---|
| 10 | 8 | 49.0٪ إلى 94.3٪ | 45 نقطة |
| 20 | 15 | 53.1٪ إلى 88.8٪ | 36 نقطة |
| 30 | 22 | 55.6٪ إلى 85.8٪ | 30 نقطة |
| 50 | 38 | 62.6٪ إلى 85.7٪ | 23 نقطة |
| 100 | 75 | 65.7٪ إلى 82.5٪ | 17 نقطة |
| 200 | 150 | 68.6٪ إلى 80.5٪ | 12 نقطة |
ماذا نقرأ من الجدول؟ بعشر حالات فقط قد تكون الدقة الحقيقية بين نصف الحالات وتسعة من كل عشرة؛ هذا لا يصلح للقرار. وبعشرين إلى ثلاثين حالة يصبح عرض الفاصل نحو 30 إلى 36 نقطة، وهذا يكفي لكشف الفروق الكبيرة (كالفرق بين 75٪ و36٪ كما في فواتيرنا)، لكنه لا يكفي لتفرّق بين أداتين تفصلهما خمس نقاط. وكي تضيّق الفاصل إلى نحو 17 نقطة تحتاج إلى مئة حالة. فقاعدة عملية: ابدأ بـ30 حالة لتعرف إن كنت أمام فرق كبير، ثم زد الحالات إن كان القرار حساسًا أو كانت النتائج متقاربة. وكل حالة إضافية تأتيك من أخطاء حقيقية رأيتها في عملك تساوي عشر حالات مولّدة عشوائيًا.
ولاحظ أن هذه الحسابات تفترض أن الحالات مستقلة وأنها تمثل عملك. فإن كررت الحالة نفسها بتغييرات طفيفة لتصل إلى المئة، فلم تزد معلوماتك بقدر ما يوحي العدد.
كيف طبقنا اختبار أدوات الذكاء الاصطناعي على الفواتير: خط زمني
ليكون الأسلوب ملموسًا، هذا ما فعلناه عمليًا في تجربة الفواتير، بترتيبه:
- تعريف السؤال والمقياس: «كم فاتورة من 36 تخرج صحيحة بكل حقولها الثمانية وأصنافها؟».
- كتابة المولّد: ستة تصاميم HTML، وثلاثة مستويات تدهور للصورة، وبذرة ثابتة، ومفتاح إجابة JSON لكل فاتورة، وبصمة SHA-256 لكل صورة.
- توليد عينة تطوير منفصلة: ست فواتير ببذرة أخرى لاختبار المشغّل والمصحّح.
- كتابة التعليمات: ملف JSON بحقول محددة، وأرقام غربية، وnull للحقل الناقص.
- كتابة المصحّح: تطبيع النصوص العربية، وتسامح رقمي، ومقارنة المعرّفات بعد إبقاء الأرقام فقط.
- تشغيل عينة التطوير: أصلحنا المشغّل ليمرر التعليمات عبر المدخل القياسي بدل وسيط الأمر.
- التجميد: بصمات التعليمات والمصحّح والمولّد والمفتاح قبل أي تشغيل على مجموعة الاختبار.
- التشغيل على الاختبار: كل فاتورة في مجلد مؤقت منفصل، ونتائج خام في ملف لكل فاتورة.
- التصحيح الأول: ظهرت أرقام، ثم راجع Codex البروتوكول فاكتشف أن التعليمات وصلت لأداة مرتين.
- إعادة التشغيل المتأثر: احتفظنا بنتائج التشغيل الأول في مجلد باسم يوضح السبب، وأعدنا تشغيل الأداة المتأثرة فقط، وسجّلنا الفرق (25 إلى 27).
- التحليل والنشر: فواصل الثقة، وماكنيمار، وتفصيل بحسب المستوى، وجدول للأخطاء، وقائمة التحفظات، وفيديو على القناة ومقال.
لم نقس الوقت بدقة، لكن معظم الجهد كان في كتابة المولّد والمصحّح مرة واحدة. أما التجربة التالية (العروض) فاستعملت الهيكل نفسه، فكانت أسهل بكثير. وهذا من مزايا الأسلوب: ما تبنيه مرة تعيد استخدامه.
اختبار أدوات الذكاء الاصطناعي في ساعة واحدة: ابدأ اليوم
إن أردت أن تبدأ اختبار أدوات الذكاء الاصطناعي دون مشروع كبير، فهذا مشروع مصغر يمكنك إنجازه في ساعة:
- اختر مهمة تكررها أسبوعيًا ولها جواب محدد (استخراج بيانات، أو تصنيف رسائل، أو حساب).
- اكتب 15 حالة من خبرتك، 10 عادية و5 صعبة (فيها الأخطاء التي رأيتها في الواقع). اكتب الجواب الصحيح لكل منها بنفسك في عمود.
- اكتب تعليمات واحدة بصيغة مخرجات ثابتة، ولا تغيّرها بعد أول تشغيل.
- شغّل كل أداة تريد مقارنتها على الحالات نفسها، وانسخ الأجوبة في الجدول.
- احسب الصحيح تمامًا لكل أداة بالصيغ التي في قسم إكسل، ثم اقرأ الأخطاء بنفسك.
- سجّل النتيجة والتحفظات في صفحة واحدة، وضع تاريخ الاختبار.
لن يكون اختبارًا مثاليًا، لكنه أفضل بكثير من الاعتماد على رقم إعلاني. وعندما تتحمس، توسّع: بيانات اصطناعية، ومولّد بذرة ثابتة، وتجميد، وإحصاء. وقد جمعنا لك المنهج كله في هذا الدليل لتتدرج فيه.
نسخة إكسل لاختبار أدوات الذكاء الاصطناعي لمن لا يبرمج
لا تحتاج إلى بايثون لتطبّق الفكرة. هذا هيكل بسيط في إكسل:
- ورقة الحالات: عمود لرقم الحالة، وعمود للمدخل (النص الذي تعطيه للأداة)، وعمود للجواب الصحيح الذي تحسبه أنت مسبقًا (بصيغة إكسل أو يدويًا من مصدر موثوق).
- ورقة النتائج: عمود لجواب كل أداة (تنسخه من مخرجاتها)، وعمود يقارن بالصحيح، مثلًا:
=IF(ABS(C2-D2)<=0.05,1,0)حيث C جواب الأداة وD الصحيح. - الملخص: عدد الحالات الصحيحة
=SUM(E2:E31)وعدد الحالات=COUNT(A2:A31)والنسبة=E33/E34.
وفاصل ويلسون في إكسل، حيث p في الخلية B2 (النسبة)، وn في الخلية B3 (عدد الحالات):
| الحد | الصيغة |
|---|---|
| الأدنى | =(B2+1.96^2/(2*B3)-1.96*SQRT(B2*(1-B2)/B3+1.96^2/(4*B3^2)))/(1+1.96^2/B3) |
| الأعلى | =(B2+1.96^2/(2*B3)+1.96*SQRT(B2*(1-B2)/B3+1.96^2/(4*B3^2)))/(1+1.96^2/B3) |
واختبار ماكنيمار الدقيق، حيث b في الخلية B5 (حالات انفردت بها الأداة الأولى) وc في الخلية B6 (حالات انفردت بها الثانية):
=MIN(1,2*BINOM.DIST(MIN(B5,B6),B5+B6,0.5,TRUE))
جرّبنا هذه الصيغ على أرقام الفواتير (27 من 36) فأعطت 58.9٪ و86.2٪، وهي تطابق الكود. وللمزيد عن إكسل والأدوات الذكية: تحليل بيانات Excel بالذكاء الاصطناعي بالعربي.
أخطاء وقعنا فيها في اختبار أدوات الذكاء الاصطناعي
ننشر أخطاءنا لأنها أكثر ما قد يفيدك، وأغلبها ممكن أن يقع لأي فريق:
- تعليمات مكررة لأداة واحدة (الفواتير): غيّرت النتيجة من 25 إلى 27.
- إعدادات جهد تفكير غير متساوية (العروض): غيّرت نتيجة عينة التطوير بوضوح.
- مطابقة أسماء صارمة: ظلمت إجابة صحيحة لأن الأداة حذفت كلمة «شركة».
- الافتراض أن الجواب JSON فقط: بعض الأدوات تشرح قبله.
- مجلد مؤقت في ويندوز: أوقف التشغيل في منتصفه، فعدّلنا سطرًا واحدًا في السكربت بعد التجميد وسجّلنا ذلك.
- عدم تحديد أساس حدود الخصم: غموض صغير في صياغة الضريبة كاد يمرّ.
- أدوات غير متساوية: عطّلناها عن واحدة وتركنا الأخرى بقدرة محتملة على تشغيل أوامر.
لم يكن أي من هذه الأخطاء كارثيًا، لأن الاختبار نفسه فيه مراجعة وتوثيق. وهذا أهم ما ينبغي أن تحرص عليه: أن تكتب ما حدث بدل أن تخفيه.
قالب تقرير اختبار أدوات الذكاء الاصطناعي
ما الذي يجب أن يحتويه تقريرك ليكون موثوقًا؟ هذه القائمة التي نلتزم بها:
- السؤال: جملة واحدة محددة، وتعريف «الصحيح تمامًا».
- البيانات: العدد، وكيف وُلّدت، ومستويات الصعوبة، والحالات الحدّية، والبذرة.
- الأدوات: الأسماء والإصدارات وطريقة التشغيل والإعدادات (جهد التفكير، والأدوات المتاحة).
- التجميد: ما الذي جُمّد ومتى، وأي تعديل بعده وسببه.
- النتائج: الأعداد قبل النسب، وفواصل الثقة، واختبار الفرق، وتفصيل بحسب المستوى.
- الأخطاء: جدول بالأنماط وأمثلة، وما فُحص يدويًا.
- التحفظات: حجم العينة، واصطناعية البيانات، واختلاف شروط التشغيل.
- الإفصاح: تضارب المصالح، ومن راجع التجربة.

ثلاثة أسئلة قبل أن تثق بنتيجة اختبار أدوات الذكاء الاصطناعي
حتى لو اتبعت الخطوات العشر، تبقى نتيجة اختبارك أرقامًا تحتاج إلى سؤال أخير. هذه ثلاثة أسئلة نطرحها على أي نتيجة قبل نشرها أو البناء عليها، ومنها نتائجنا نحن:
- هل تمثل الحالات عملك فعلًا؟ بياناتنا الاصطناعية تضم ستة تصاميم للفواتير، لكن فواتير موردٍ حقيقي قد تأتي بخط يد أو بختم فوق الأرقام أو بصيغة لم نفكر بها. لذلك نقول دائمًا إن النتيجة تخص عينتنا. وإن كنت تعرف حالة صعبة تتكرر عندك، فأضفها إلى اختبارك حتى لو لم تكن «عادلة» للأداة.
- هل عملت الأدوات بشروط متساوية؟ راجع قائمة الإعدادات: التعليمات، وجهد التفكير، والأدوات المتاحة، وإصدار النموذج، وطريقة إدخال الصورة أو النص. اختلاف واحد منها يكفي ليجعل فرق النتائج فرقًا في الإعداد لا في الأداة. وقد كشفت مراجعة Codex لتجربتنا الأولى خطأً من هذا النوع.
- هل ستبقى الخلاصة لو تغيّرت العينة قليلًا؟ جرّب أن تضيف عشر حالات جديدة ببذرة أخرى، أو أن تحذف الحالات الصعبة. إن انقلبت الخلاصة فهي هشّة. في تجربة العروض كان فرق 28 مقابل 21 على حافة الدلالة الإحصائية (p ≈ 0.065)، ولذلك كتبنا «واضح لكنه غير حاسم» بدل أن نعلن فائزًا.
هذه الأسئلة الثلاثة لا تحتاج برمجة، بل وقتًا وأمانة مع النتيجة. وإن أجبت عنها بصراحة داخل تقريرك فقد صار اختبارك أصدق من أغلب الأرقام الإعلانية التي تقرؤها، حتى لو كانت عينتك صغيرة.
حدود هذا الأسلوب في اختبار أدوات الذكاء الاصطناعي
- الجودة الذاتية: الكتابة الإبداعية أو الأسلوب أو اللطف في الرد لا تُصحَّح بكود بسيط. تحتاج إلى مراجعين بشريين أو معايير تقييم أخرى، وأدوات التقييم بنموذج آخر لها تحيزاتها (انظر إرشادات OpenAI المشار إليها أعلاه).
- الهجمات والتحايل: لا يختبر الأمان ولا محاولات التلاعب بالتعليمات. لذلك راجع تقييم وكلاء الذكاء الاصطناعي: Evals وGuardrails والتتبع إن كنت تبني وكيلًا.
- تغيّر النماذج: نتيجة اليوم قد لا تصح بعد تحديث. أعد الاختبار دوريًا.
- اختيار النموذج المناسب: الاختبار يقول لك كم يصيب، لا يختار لك بين مئة خيار. للتعامل مع الاختيار: أي نموذج ذكاء اصطناعي تستخدم لكل مهمة؟
- العينة الاصطناعية: قد تغفل تنوع الواقع. قارن دوريًا بعينة صغيرة من بيانات حقيقية (بعد حماية الخصوصية).
أسئلة شائعة
لماذا أستخدم بيانات اصطناعية بدل بياناتي الحقيقية؟
لأنها تحمي الخصوصية، ولأنك تعرف الجواب الصحيح مسبقًا فلا تحتاج مراجعة كل إجابة يدويًا. وإن استخدمت بيانات حقيقية، فأخفِ الحساس منها واحتفظ بمفتاح الإجابة منفصلًا.
هل أستطيع استخدام ذكاء اصطناعي ليصحّح إجابات الأدوات؟
للمهام التي لها جواب محدد (أرقام، وحقول، واختيارات) فالكود أدق وأرخص وأكثر ثباتًا. وللمهام النصية الحرة قد تحتاج مقيّمًا بنموذج أو بشر، مع معايرته على أمثلة صححتها بنفسك، فالمقيّم الآلي له أخطاؤه.
ما الفرق بين عينة التطوير وعينة الاختبار؟
عينة التطوير تستخدمها لإصلاح الأعطال وتحسين التعليمات والمصحّح. وعينة الاختبار تُحفظ نظيفة وتُشغَّل مرة واحدة بعد التجميد للحكم النهائي. من يخلط بينهما يقيس ما ضبطه لا ما تفعله الأداة.
كيف أعرف أن الفرق بين أداتين حقيقي؟
احسب فاصل الثقة لكل منهما، وطبّق اختبار ماكنيمار الدقيق على الحالات المنفردة. إن كان p صغيرًا (أقل من 0.05) فهذا دليل ضد تساوي أداء الأداتين في هذه العينة وفق افتراضات الاختبار، لكنه لا يعني أن الفرق سيتكرر على بياناتك الأخرى. وإن كان كبيرًا فالفرق غير حاسم مع هذا العدد من الحالات.
هل أحتاج برمجة لأطبّق اختبار أدوات الذكاء الاصطناعي؟
لا. إكسل يكفي للمهام البسيطة كما في القسم أعلاه. والبرمجة تساعدك حين تكبر الحالات أو تريد أتمتة التشغيل والتصحيح.
كم مرة أعيد اختبار أدوات الذكاء الاصطناعي؟
عند كل تحديث كبير للنموذج أو تغيير في طريقة استخدامك، وعلى الأقل كل بضعة أشهر. احتفظ بمجموعة الاختبار نفسها ببذرتها الثابتة لتقارن عبر الزمن.
خلاصة سريعة
- رقم الدقة العام لا يخبرك بأداء أداة على مهمتك؛ اختبار أدوات الذكاء الاصطناعي على بياناتك هو الحَكَم.
- خطوات اختبار أدوات الذكاء الاصطناعي العشر: مهمة ضيقة، وبيانات اصطناعية بمفتاح مخفي، وتعليمات واضحة، وعينة تطوير، وتجميد، وتشغيل متساوٍ، وتصحيح بالكود، وإحصاء بسيط، وفحص الأخطاء، ومراجعة مستقلة.
- معظم أخطاء الاختبارات تأتي من التشغيل لا من الأدوات: تعليمات مكررة، وإعدادات مختلفة، ومطابقة أسماء صارمة.
- العينة الصغيرة تحتاج فواصل ثقة: رقمان متقاربان قد يعنيان استنتاجين مختلفين.
- أفصح عن تضارب المصالح، واكتب أخطاءك.
آخر تحديث: 19 أكتوبر 2026. الأكواد مجرَّبة، وأرقام التجربتين من اختبارنا في أكتوبر 2026.
