تخطَّ إلى المحتوى
29/30الفصل 29 من 30

تقييم LLM: من benchmarks العامة إلى مجموعتك الذهبية

agent نفسه، المهمة نفسها، عشر تشغيلات. سبعة نجاحات تبدو 70% حتى تحسب pass^10 فتجدها صفرًا تمامًا.

في هذه الصفحة

إليك عرضًا توضيحيًا. الـ agent من الفصل 23 — الحلقة نفسها، واثنتان من أدواته الأربع — يُوجَّه إلى مجلد يضم خمسة ملفات سجلات وتهيئة ويُسأل سؤالًا واحدًا.

TEXT
Q: What is the last line of errors.log about?
   turn 1  -> read_file({"path": "errors.log"})
   turn 2  -> "The last line of errors.log is:

               ERROR worker 7 timed out after 30000 ms."

إجابة صحيحة، لكنها لا تثبت شيئًا على الإطلاق — لأن هذا النص واحد من عشرة أجريتها، وقد اخترته بعد رؤية العشرة كلها.

شغّل المهمة نفسها عشر مرات، من دون تغيير شيء سوى sampling seed، وسيصيب الـ agent سبع مرات. سبعون في المئة، وهذا هو الرقم الذي سيظهر في الشريحة. والآن اسأل السؤال الذي يهتم به العميل فعلًا — هل سيعمل كل مرة؟ — وستكون الإجابة رقمًا مختلفًا تمامًا:

TEXT
t20  7/10 successes = 70 %   (95 % Wilson interval: 39.7 % to 89.2 %)
     pass^1  70.00 %      pass^5   8.33 %
     pass^2  46.67 %      pass^7   0.83 %
     pass^3  29.17 %      pass^8   0.00 %
     pass^4  16.67 %      pass^10  0.00 %

لم يحلّ الـ agent هذه المهمة عشر مرات متتالية قط، وبناءً على هذا الدليل لا يُتوقع أن يفعل. ذلك الرقم — pass^10 — هو الرقم الصادق، ونادرًا ما يُنشر، وبنهاية هذا الفصل ستعرف كيف تحسبه، وما تكلفة حسابه، ولماذا يكون المجال بجانب 70% أهم من 70% نفسها.

عرض التفاصيل

ما يحتاجه هذا الفصل من الفصول السابقة.

  • الفصل 4 للإحصاء: Wilson interval لنسبة، وسبب أن سبع عشرة إجابة صحيحة من أصل عشرين لا تميز شيئًا، وbaseline الغبي كمتطلب أول.
  • الفصل 15 للـ bench: harness من خمسين سطرًا، وpaired sign test على الحالات التي يختلف فيها نظامان، والقاعدة التي تقول إن prompt يُقاس ولا يُناقش.
  • الفصل 23 للشيء الجاري قياسه: الحلقة، والطرق الخمس للخروج، وحساب التكلفة، والملاحظة الختامية أن harness يجعل agent قابلًا للحوكمة لا صحيحًا.

لوحتان هنا. TypeScript لتقييمك الخاص، لأنه ينبغي أن يكون في continuous integration إلى جانب الكود. وPython للوحة الثانية، لأن benchmarks العامة تعيش هناك ولأن أحد القياسات أدناه يحتاج logits.

يكاد كل جدال حول التقييم أن يكون شخصين يقيسان شيئين مختلفين. هناك ثلاثة مشاريع ولا تشترك في أداة قياس واحدة.

ما الذي تقيّمهالسؤالأداة القياسمن يملكها
النموذجهل هذا النموذج أفضل من ذاك عمومًا؟benchmarks عامة، لوحات صدارةالمجتمع
تطبيقكهل يعمل prompt الخاص بي، وretrieval الخاص بي، وschema الخاص بي على مدخلاتي؟مجموعتك الذهبيةأنت
agent الخاص بكهل تصل الحلقة كلها، مع الأدوات والآثار الجانبية، إلى الهدف بموثوقية؟نجاح المهمة زائد pass^kأنت

الخلط مكلف في اتجاه واحد. لوحة الصدارة تخبرك أن نموذجًا قوي في الاستدلال على مستوى الدراسات العليا؛ لكنها لا تستطيع أن تخبرك هل سيروّت تذاكر الدعم لديك. وتقييم التطبيق الذي يمنح درجة لإجابة واحدة لكل إدخال لا يستطيع رؤية agent أصلًا، لأن agent يملك توزيعًا من المسارات، والإجابة الواحدة عينة مفردة منه. سمّى الفصل 22 ذلك الصف الثالث وتركه فارغًا: مقياس الأداء، وهو الجزء الوحيد من مواصفة agent الذي تكتبه الفرق في النهاية أو لا تكتبه أبدًا.

والترتيب مهم أيضًا، والمورّد الذي يبيعك النموذج يقول ذلك. دليل agents من OpenAI يختزل اختيار النموذج إلى ثلاث خطوات، بهذا الترتيب: «أنشئ evals لتأسيس performance baseline»، «ركّز على بلوغ هدف الدقة لديك بأفضل النماذج المتاحة»، «حسّن التكلفة والكمون باستبدال النماذج الأكبر بأخرى أصغر حيثما أمكن».1 يأتي التقييم أولًا، لأن الخطوتين الثانية والثالثة بلا معنى من دون رقم.

المجموعة الذهبية، وما تشتريه عشرون حالة فعلًا

رابط إلى القسم: المجموعة الذهبية، وما تشتريه عشرون حالة فعلًا

المجموعة الذهبية قائمة مدخلات، لكل منها إجابة مكتوبة، وgrader يقرر ما إذا كان الخرج يطابقها. إنها مملة، صغيرة، وهي الأثر الوحيد في هذا الفصل الذي تملكه أنت. المجموعة المبنية هنا تضم عشرين مهمة على مجلد من خمسة ملفات — لا ملفات الفصل 23 الثلاثة، لذا فالإجابات ليست الإجابات نفسها — وقد كُتب grader قبل تشغيل الـ agent:

golden.tsTS
export type Task = {
  id: string;
  prompt: string;
  answer: string;          // the fact, in words, for a human and for a judge
  must: RegExp[];          // ALL must match the final answer
  mustNot?: RegExp[];      // NONE may match
};

export const GOLDEN: Task[] = [
  { id: "t04", prompt: "Which file is the largest?", answer: "access.log",
    must: [/access\.log/i], mustNot: [/errors\.log/i, /notes\.txt/i] },       
  { id: "t12", prompt: "Which HTTP status codes appear in access.log? List all of them.",
    answer: "200, 429 and 500", must: [/200/, /429/, /500/] },                
  // ...eighteen more
];

خاصيتان أساسيتان. قائمة mustNot موجودة لأن النموذج الذي يسمي ثلاثة ملفات بينها الملف الصحيح لم يُجب. وanswer مكتوب نثرًا وكذلك بأنماط، لأن إنسانًا وjudge سيحتاجانه لاحقًا — وكتابة الحقيقة نفسها مرتين بترميزين مختلفين هي الطريقة التي تكتشف بها أنك لم تكن متفقًا مع نفسك على ماهية المهمة.

والآن الجدول الحاسم. أربعة أنظمة مرشحة، والعشرون مهمة نفسها، والدقة مع مجالها، والعمودان اللذان يخفيهما دائمًا جدول الدقات وحده:

النظامالصحيحالدقة، Wilson 95%التكلفة لكل مهمة محلولةمتوسط الكمون
A — بلا أدوات، greedy2/2010.0% [2.8, 30.1]$0.004649663 ms
B — أدوات، prompt مقتضب5/2025.0% [11.2, 46.9]$0.0055761,362 ms
C — أدوات، prompt موجّه2/2010.0% [2.8, 30.1]$0.013071930 ms
D — C، أفضل 3 عند T = 0.71/205.0% [0.9, 23.6]$0.0735322,628 ms

اقرأ المجالات قبل الفائز. ذراع B يمتد من 11% إلى 47%؛ وذراع A من 3% إلى 30%. إنهما يتداخلان عبر معظم طولهما، وهذا اكتشاف الفصل 4 يصل تمامًا حيث وُعد به: عشرون حالة لا تستطيع ترتيب أربعة أنظمة. شدد الفصل 15 ذلك بسؤال paired بدلًا من ذلك — في الحالات التي يختلف فيها ذراعان، إلى أي حد يميل الانقسام؟ — لأن الصعوبة المشتركة للمجموعة تلغى. إليك كل زوج:

TEXT
A vs B  +0 / -3   p = 0.2500       B vs C  +4 / -1   p = 0.3750
A vs C  +2 / -2   p = 1.0000       B vs D  +4 / -0   p = 0.1250
A vs D  +2 / -1   p = 1.0000       C vs D  +1 / -0   p = 1.0000

لم تثبت أي واحدة من المقارنات الست. أفضل ذراع يتفوق على الذراع بلا أدوات بخمس عشرة نقطة، وهذا قائم على ثلاث حالات متنافرة. عشرون حالة تُظهر آلية ولا تستطيع اختيار مورّد؛ قول غير ذلك في اجتماع هو الطريقة التي يُشترى بها نموذج سيئ.

هناك شيء واحد يثبته هذا الجدول، وهو العمود الذي لا يضعه أحد. الذراع D يكلف ثلاث عشرة مرة أكثر من الذراع B لكل مهمة محلولة، لأن أخذ عينات من ثلاثة مسارات واعتماد الإجابة المنوالية يضاعف الفاتورة ثلاث مرات سواء ضاعف الدقة أم لا. جداول الدقة التي تحذف التكلفة تجعل هذه المفاضلة غير مرئية.

والآن الاكتشاف الذي يغيّر طريقة قراءتك لكل benchmark ستراه. خذ النصوص نفسها البالغ عددها مئتين — عشرون مهمة، عشر تشغيلات، ولا token واحد أُعيد توليده — وقيّمها بثلاث طرق:

graderالصحيحالدقة، Wilson 95%
تطابق حرفي مع الإجابة المكتوبة0/2000.0% [0.0, 1.9]
ظهور الإجابة المكتوبة كسلسلة فرعية26/20013.0% [9.0, 18.4]
rubric الكلمات المفتاحية أعلاه52/20026.0% [20.4, 32.5]

صفر، ثلاثة عشر، ستة وعشرون. النظام لم يتغير. الـ grader تغيّر. التطابق الحرفي يُرجع صفرًا لا لأن الـ agent عديم الفائدة، بل لأن أي إجابة نصية حرة لن تكون أبدًا مطابقة byte بbyte لمرجع: إنه يقيس التنسيق ويبلّغ عنه كقدرة.

ليست هذه طرافة، بل آلية، ولها اسم. hard-cutoff metric يقيّم المهمة بنظام الكل أو لا شيء على عدة حقائق فرعية، ولذلك تتضاعف آثاره. المهمة t12 تسأل عن ثلاثة رموز حالة دفعة واحدة. عبر التشغيلات العشر:

TEXT
per-code presence   200: 9/10    429: 6/10    500: 8/10    (mean 0.77 per fact)
all three at once   5/10

كل حقيقة صحيحة نحو ثلاثة أرباع الوقت؛ اشتراط الثلاثة كلها دفعة واحدة يخفض الدرجة إلى النصف، و0.773=0.4570.77^3 = 0.457 قريب بما يكفي من القياس 0.50 ليُظهر من أين جاء الهبوط. عمّم ذلك:

دقة كل حقيقة ppk=1k=1k=2k=2k=3k=3k=5k=5k=10k=10
0.6060.0%36.0%21.6%7.8%0.6%
0.8080.0%64.0%51.2%32.8%10.7%
0.9090.0%81.0%72.9%59.0%34.9%
0.9595.0%90.3%85.7%77.4%59.9%

اقرأ صف 0.90 مقابل صف 0.95 عند k=10k = 10: تحسن قدره خمس نقاط لكل حقيقة يصبح خمسًا وعشرين نقطة على الاقتران. لم يحدث شيء متقطع للنموذج. منحنى أملس يُقرأ عبر مقياس كل شيء أو لا شيء يبدو كقفزة — وهذا بالضبط ما جادل به Schaeffer وMiranda وKoyejo بشأن القدرات الناشئة، وما أجّله الفصل 10 إلى هنا.2 وجد تدقيقهم أن 5 فقط على الأكثر من مقاييس BIG-Bench المفضلة البالغ عددها 39 تُظهر ظهورًا أصلًا، مع مقياسين متقطعين يفسران أكثر من 92% من الحالات المزعومة.

إذًا الانضباط في سطر واحد: القفزة في الرسم البياني دليل على المقياس حتى يثبت العكس. قبل أن تصدق أن قدرة ظهرت، ارسم التشغيلات نفسها بمقياس يمنح رصيدًا جزئيًا وانظر هل تبقى الهاوية.

هناك نسخة من الدرجة الثانية يجادل Kalai وزملاؤه بأنها تُحدث ضررًا في المنبع: benchmarks التي تُقيَّم بصحيح أو خطأ تكافئ التخمين بدل قول «لا أعرف»، ولذلك يتعلم النموذج المحسّن عليها أن يخمّن. إصلاحهم المقترح ليس benchmark آخر للهلوسة بل «تعديل طريقة تقييم benchmarks القائمة التي تكون غير متوافقة لكنها تهيمن على لوحات الصدارة».3 مجموعتك الذهبية تملك الرافعة نفسها، وهي سطر واحد: قرر هل يُحسب الامتناع فشلًا أم فئة مستقلة. معظم الناس لا يقررون، فيُحسب بصمت فشلًا، ويخمن النظام الذي يشحنونه.

كل ما سبق قيّم محاولة واحدة لكل مهمة. الـ agent ليس محاولة واحدة. أثبت الفصل 17 أنك لا تملك حتمية حتى عند temperature صفر، لذلك ينتج الإدخال نفسه توزيعًا من المسارات، وbenchmark الذي يشغّل كل مهمة مرة واحدة يبلّغ عن عينة واحدة منه.

مساهمة τ-bench هي المقياس لذلك. تعرّفه الورقة ببساطة: «نقترح مقياسًا جديدًا – pass^k (pass hat k)، معرّفًا بأنه احتمال أن تنجح كل تجارب المهمة k المستقلة والمتماثلة التوزيع، بمتوسط عبر المهام».4 شغّل كل مهمة nn مرة، وعدّ نجاحات cc، والمقدّرات غير المتحيزة هي:

passk=Etask ⁣[(ck)(nk)]pass@k=1Etask ⁣[(nck)(nk)]\text{pass}^k = \mathbb{E}_{\text{task}}\!\left[\frac{\binom{c}{k}}{\binom{n}{k}}\right] \qquad \text{pass@}k = 1 - \mathbb{E}_{\text{task}}\!\left[\frac{\binom{n-c}{k}}{\binom{n}{k}}\right]

الثاني هو pass@k المألوف من توليد الكود: احتمال أن تنجح واحدة على الأقل من kk محاولات. ضعها جنبًا إلى جنب على العدّادات المقاسة نفسها فتتحرك في اتجاهين متعاكسين:

kkpass@k — واحدة على الأقلpass^k — كلها
126.0%26.0%
237.0%15.0%
343.5%10.5%
551.2%6.7%
857.7%5.1%
1060.0%5.0%

التشغيلات نفسها، والـ grader نفسه، والعشرون مهمة نفسها. عمود يقول إن النظام يتحسن مع محاولات أكثر، والآخر يقول إنه يسوء، وكلاهما صحيح، لأنهما يجيبان عن سؤالين مختلفين. pass@k هو المقياس الصحيح عندما يفلتر إنسان الخرج — توليد الكود، المسودات، العصف الذهني — وتكون المحاولات الإضافية رخيصة. pass^k هو المقياس الصحيح عندما يتصرف الـ agent بلا فلتر، وهذا هو معنى «agent». نشر الأول حيث ينطبق الثاني هو أكثر مبالغة شائعة في هذا المجال، وعنوان τ-bench نفسه هو النسخة الصادقة: gpt-4o عند نحو 61% pass^1 في retail يهبط إلى نحو 25% عند pass^8.4

والآن اللدغة في أرقامي. pass^10 على مهامي العشرين هو 5.0%: مهمة واحدة بالضبط من أصل عشرين حُلّت في التشغيلات العشر كلها. تلك المهمة هي t19، «هل نجح deploy 42؟»، وهاتان إجابتان من العشر قيّمهما rubric صحيحتين:

TEXT
run 2  "To check if 'deploy.log' succeeded in deploying 42, I will list the file
        names in the working directory using the list_files function..."
run 8  "Yes, deploy 42 has successfully deployed. Deploying was successful for 41
        as well."

الأولى لا تجيب قط. الثانية تضيف ادعاءً خاطئًا — deploy 41 أُرجع. كلتاهما طابقتا /succe|yes/. المهمة الوحيدة التي تبقي pass^10 فوق الصفر أثر من آثار الـ grader، لذا فالرقم الحقيقي صفر، ولا كان أي تجميع سيُظهر لي ذلك. أخذ عينات من النصوص خلف أعلى مهامك تسجيلًا هو حيث تذهب graders لتموت.

ورقم آخر، وهو ما سُمي هذا القسم لأجله. عشرة تقييمات متطابقة — النظام نفسه، والعشرون مهمة نفسها، والكود نفسه، ولا شيء تغيّر سوى البذور:

TEXT
per-run correct: 5 2 5 5 8 5 8 5 4 5   ->  10 % .. 40 %,  mean 26.0 %,  sd 8.8 points

مدى من ثلاثين نقطة في نظام لم يتغير. إذا شغّلت مجموعتك مرة قبل إصدار ومرة بعده، فإن «تحسنًا» بثماني نقاط داخل ذلك الانتشار، وستشحنه معتقدًا أنك سببته. لهذا يكون المجال المجمع أعلاه — 26.0% [20.4, 32.5] — أضيق من أن يُقتبس وحده: فهو يعامل مئتي تجربة مترابطة كأنها مئتا تجربة مستقلة. الملخص الصادق لتقييم agent هو متوسط و انتشار عبر التكرارات، ولا يكاد أحد ينشر الثاني.

الـ judge، والمجموعة الذهبية الخاصة بالـ judge

رابط إلى القسم: الـ judge، والمجموعة الذهبية الخاصة بالـ judge

لا تتوسع rubrics مع الإجابات المفتوحة، لذلك الحركة القياسية هي أن يُستخدم نموذج لتقييم الخرج. يعمل ذلك بما يكفي على مستوى النماذج frontier ليصبح الافتراضي، وله ثلاثة أنماط فشل مسماة: تحيز الموضع، وتحيز الإسهاب، وتحيز تعزيز الذات.5

قِسه قبل أن تثق به. الإجابات الستون نفسها — ثلاث من التشغيلات العشر — وُسمت بثلاث طرق. الوسم البشري وسمي أنا: قرأت الستين كلها والملفات الخمسة مفتوحة وطبقت قاعدة مكتوبة واحدة، ينجح إذا وفقط إذا ذكرت الإجابة الحقيقة التي سأل عنها السؤال ولم تحتوِ شيئًا تناقضه الملفات.

graderيقول passيتفق مع الإنسانfalse passfalse fail
keyword rubric17/6050/60 = 83.3% [72.0, 90.7]82
النموذج كـ judge60/6011/60 = 18.3% [10.6, 29.9]490

قال الـ judge PASS ستين مرة من أصل ستين. كان سيبلّغ عن هذا الـ agent بدقة 100% على مجموعة يعطيه فيها الإنسان 18%. الـ judge الذي لا يملك قدرة تمييزية ليس أداة صاخبة؛ إنه دالة ثابتة، والدالة الثابتة تمنح أفضل نظام لديك وأسوأ نظام لديك الدرجة نفسها.

لم ينقذه prompt. أربع صيغ، والعناصر الستون نفسها:

judge promptيقول passالاتفاق مع الإنسان
«أجب PASS أو FAIL.»60/6018.3%
«أجب FAIL أو PASS.» — تبديل التسميات56/6025.0%
مع قائمة صريحة بما يُحسب فشلًا55/6026.7%
مع مثال FAIL محلول ومثال PASS محلول56/6025.0%

تبديل ترتيب التسميتين في التعليمات حرّك أربعة أحكام. هذا أثر قابل للقياس، وهو النوع الخطأ من الأثر: الـ judge يستجيب لشكل الـ prompt بدل الإجابة أمامه.

العرض النظيف هو pairwise. عشرون سؤالًا، لكل منها مرشح واضح الصحة وآخر واضح الخطأ، عُرضا بالترتيبين:

TEXT
picked the FIRST option              40/40 = 100.0 %
order-consistent (same winner both ways)   0/20 = 0.0 %   [Wilson 0.0, 16.1]
picked the CORRECT answer            20/40 = 50.0 %

اختار الموضع A أربعين مرة من أربعين. نسبة 50% في الصحة ليست كفاءة جزئية — إنها حساب، لأن الإجابة الصحيحة تجلس في الموضع A في نصف التجارب بالضبط. الاتساق هنا معرّف كما يعرّفه MT-Bench، «نسبة الحالات التي يعطي فيها judge نتائج متسقة عند تبديل ترتيب مساعدَين»، ما يجعل المقارنة متماثلة: GPT-4 يسجل 65.0% على ذلك المقياس، وfew-shot prompting رفعه إلى 77.5%.5 أما خاصتي فيسجل صفرًا.

التخفيف القياسي من الورقة نفسها أيضًا: «استدعِ judge مرتين بتبديل ترتيب إجابتين ولا تعلن فوزًا إلا عندما تُفضَّل إجابة في كلا الترتيبين».5 طبّقه هنا فينتج الـ judge صفر أحكام قابلة للاستخدام من عشرين زوجًا — وهذا هو الناتج الصحيح، وأفضل بلا حدود من عشرين حكمًا واثقًا.

ملاحظة منهجية تفوق النتيجة قيمة. شغّلت أيضًا اختبار إسهاب: الإجابة الصحيحة نفسها، ونسخة منها محشوة بجملة من 36 كلمة لا تضيف شيئًا. فضّل الـ judge النسخة الأطول في 50% من التجارب بالضبط — وهذا يبدو كغياب لتحيز الإسهاب وليس كذلك إطلاقًا، لأن judge يختار دائمًا الموضع A يسجل 50% في أي pairing متوازن. لا يمكنك قياس تحيز ثانٍ حتى يُضبط الأول. تبديل المواضع ليس تحسينًا تضيفه لاحقًا؛ إنه ما يجعل كل قياس آخر قابلًا للتفسير.

ما وظيفة judge. الإجابات المفتوحة بلا شكل قابل للتحليل: النبرة، التغطية، هل يدعم الاستشهاد الجملة، وهل كان الرفض مناسبًا. رخيص وسريع وبجودة تقارب نموذج الأساس.

ما ليسه judge. ليس ground truth. إنه نظام له دقة، وملف تحيزات، وتكلفة، ويحتاج مجموعته الذهبية الخاصة من وسوم بشرية — بما في ذلك حالات فشل معروفة — قبل أن يعني أي رقم ينتجه شيئًا.

التحفظ الصادق: هذا الـ judge نموذج بنصف مليار parameter، ولا ينبغي لأحد أن يقيّم به. النقطة ليست أن judges سيئة. النقطة أن الأرقام أعلاه كلفت ثماني دقائق لإنتاجها، ومن دونها كان حكم هذا الـ judge على قرار شحن سيصبح 100%.

اللوحة الثانية: Python، ومسبار للتلوث

رابط إلى القسم: اللوحة الثانية: Python، ومسبار للتلوث

هذه هي لوحة Python الثالثة والأخيرة المعلنة في الدورة، والسبب هو موضع الأرقام العامة. يغطي lm-evaluation-harness «أكثر من 60 benchmark أكاديميًا قياسيًا لـ LLMs، مع مئات المهام الفرعية والمتغيرات المنفذة» وهو «الخلفية التقنية للوحة Open LLM Leaderboard الشهيرة من Hugging Face»؛ وHELM وSWE-bench وτ-bench حزم Python لها نقاط دخول Python.6 تشغيل نموذجك مقابل رقم منشور يعني تشغيل كودهم، وفي اليوم الذي تريد فيه المقارنة مع رقم استشهد به أحدهم، فهذا هو النظام البيئي الذي تكون فيه:

terminalBASH
lm_eval --model hf \
    --model_args pretrained=EleutherAI/gpt-j-6B \
    --tasks hellaswag \
    --device cuda:0 \
    --batch_size 8

السبب الثاني أن قياسًا واحدًا في هذا الفصل مستحيل عبر HTTP. التلوث — تسرب مجموعة الاختبار إلى بيانات التدريب — هو الفشل الذي يجعل benchmark عامًا بلا معنى بصمت، وأحدّ مسبار له يحتاج خسارة النموذج نفسه، وهي ما لا ترجعه أي chat API. إنه cross-entropy لكل token من الفصل 8، موجّهًا إلى سؤال عن الذاكرة:

contamination.pyPYTHON
def nll(text: str) -> float:
    """Mean negative log-likelihood per token, in nats."""
    ids = tok(text, return_tensors="pt").input_ids.to(model.device)
    with torch.no_grad():
        out = model(ids, labels=ids)
    return float(out.loss)

عشرة أزواج جمل: خمس موجودة في كل crawl للويب منذ وجد، وخمس كُتبت لهذا الفصل هذا الصباح، وكل منها مقترنة بصياغة معدلة تحمل المحتوى نفسه.

المجموعةالصياغة المعياريةمعاد صياغتهاالفجوة
مشهورة، متوسط 51.213.03+1.83
جديدة، متوسط 55.025.96+0.93

النموذج أكثر اندهاشًا أربع مرات من جملة كُتبت هذا الصباح مقارنة بجملة رآها مليون مرة، وإعادة الصياغة تكلف ضعفًا على المشهورة — والتكلفة الزائدة هي الجزء المحفوظ لا المفهوم. الخسارة المطلقة تخلط الحفظ بالطبيعية العادية، لذلك تكون الفجوة إحصاءً أفضل، واختبار الإكمال أفضل منه. أعطه أول ست كلمات:

TEXT
famous  "Permission is hereby granted, free of"
     -> "charge, to any person obtaining a copy of this software and associated
         documentation files (the "
famous  "All human beings are born free"
     -> "and equal in dignity and rights. The right to life, liberty, and security"
fresh   "All evaluation harnesses are born tiny"
     -> ", and the most common way to measure their size is by using a ruler."

ثلاث من الجمل الخمس المشهورة استُكملت كلمة بكلمة من ست كلمات؛ ولا واحدة من الخمس الجديدة فعلت. هذا نموذج بنصف مليار parameter يتلو MIT License. إذا كان benchmark الخاص بك على الويب العام، فافترض أنه في الأوزان. وهذه أيضًا حجة الفصل كله: مجموعة ذهبية كتبتها من بياناتك، وأبقيتها خارج أي مستودع يقرؤه crawler، هي مجموعة الاختبار الوحيدة التي يمكنك التأكد أنها لم تُستخدم في التدريب قط.

ما زالت تستحق القراءة، ما دمت تقرأ ما يقيسه كل واحد بدل الرقم الواحد الملصق به.

benchmarkما يقيسهرقم من ورقته
MMLUمعرفة اختيار من متعدد عبر 57 موضوعًاتفوق GPT-3 على المصادفة بـ «نحو 20 نقطة مئوية في المتوسط»7
HELMمقاييس كثيرة × سيناريوهات كثيرة، موحدةارتفعت تغطية السيناريوهات الأساسية من 17.9% إلى 96.0%8
Chatbot Arenaتفضيل بشري pairwise جماعي المصدرأكثر من 240K صوت؛ أصوات الجمهور «متفقة جيدًا» مع الخبراء9
SWE-benchحل مشكلات GitHub حقيقية، مقيمًا باختبارات المستودع2,294 مشكلة؛ أفضل نموذج حينها حل «مجرد 1.96%»10
τ-benchاستخدام الأدوات مع مستخدم محاكى وسياسة نطاقgpt-4o ≈ 61% pass^1، ≈ 25% pass^8 في retail4
WebArenaمهام طويلة الأفق على مواقع تعملأفضل GPT-4 agent عند 14.41% مقابل 78.24% للبشر11
OSWorldمهام سطح مكتب ونظام تشغيل حقيقية عبر تطبيقات369 مهمة؛ أفضل نموذج 12.24%، البشر 72.36%12
GAIAأسئلة سهلة على الناس وصعبة على المساعدين466 سؤالًا؛ البشر 92%، GPT-4 مع plugins 15%13
AgentBenchاستدلال agent عبر 8 بيئات مميزةفجوة كبيرة بين النماذج التجارية والمفتوحة14
AgentHarmهل سينفذ agent مهامًا خبيثة متعددة الخطوات110 مهام خبيثة عبر 11 فئة ضرر15

خذ الجدول لا أي صف منفرد. benchmarks الخاصة بـ agents كلها تضع البشر فوق النماذج بكثير، وهذا عكس benchmarks المعرفة وأفضل ملخص من سطر واحد لموضع المجال؛ أرقامها تشيخ خلال أشهر، فاستشهد بها مع تاريخ قراءتك؛ وكل واحد منها يقيس مهمة ليست مهمتك.

الدقة هي المقياس الذي تتجادل بشأنه. هذه هي المقاييس التي تقرر هل يُشحن الشيء. الأربعة كلها تخرج من المئتي تشغيل المقاسة بالفعل.

التكلفة لكل مهمة محلولة، لا لكل استدعاء. يكلف الـ agent $0.001345 لكل محاولة و**$0.005172 لكل مهمة محلولة فعلًا** — أي 3.85 مرة أكثر، لأن ثلاثة أرباع المحاولات لا تنتج شيئًا. والكمون يتصرف بالطريقة نفسها: 1,213 ms لكل محاولة، و4,667 ms لكل مهمة محلولة. كل retry، وكل re-ask، وكل مسار متروك يظهر في الرقم الثاني ويختفي من الأول.

تشخيص يتفوق على الدقة. في 123 من أصل 200 محاولة أجاب الـ agent من دون استدعاء أداة واحدة — خمّن بدل أن ينظر. بتقسيم ذلك:

TEXT
answered without reading anything   8/123  =  6.5 %  [3.3, 12.3]
answered after reading something   44/77   = 57.1 %  [46.0, 67.6]

المجالات لا تقترب من التلامس. هذا أكثر قيمة من الإجمالي 26%، لأنه يسمي الشيء المطلوب إصلاحه — النموذج لا يفشل في الاستدلال، بل يفشل في النظر — والإصلاح في الـ harness لا في النموذج. تحفظ واحد يدين به هذا الفصل لمعاييره: المجموعتان مهام مختلفة، لا المهام نفسها paired، لذا قد يكون جزء من تلك الفجوة أنه يتخطى الأدوات تحديدًا في الأسئلة التي يجدها صعبة. التقسيم تشخيص، لا ادعاء سببي.

معدل التدخل البشري هو المقياس الذي يسأل عنه المشتري أولًا: أي نسبة من التشغيلات توقفت عند approval، أو guardrail، أو handoff. interruptions الموصوفة typed في الفصل 23 تجعلها قابلة للعد، وعند عدّها حسب نوع المهمة وأسبوعيًا فهي ما يفصل agent يتعلم عمله عن agent يتحول بهدوء إلى طابور.

الهجر هو ما لا تستطيع أي مجموعة offline رؤيته: المستخدم الذي قرأ الإجابة، أغلق التبويب، وأنجز المهمة بنفسه. التقييم offline بوابة؛ أما تقييم الإنتاج فهو عينة مستمرة من traffic الحقيقي، مقيمة بالـ grader نفسه زائد هذه الأربعة.

وقاعدة موروثة من الفصل 17: لا تؤكد أبدًا على الخرج الحرفي. أكد على الخصائص — JSON صالح، schema صحيحة، الأداة الصحيحة استُدعيت، رقم ضمن هامش، substring مطلوبة موجودة. عمود التطابق الحرفي في أعلى هذا الفصل هو ما يحدث عندما تُكسر تلك القاعدة.

تقييم مورّد لا يتعلق بالدقة فقط، وهذا هو النصف الثاني من أخلاقيات هذه الدورة، بعنوان مستقل لا كملحق.

قِس التحيز، لا تفترضه. مهما كان اعتقادك بشأن سلوك نموذج على الأسماء، أو اللهجات، أو الجندرات، أو الجنسيات، فهو خاصية قابلة للقياس في pipeline الخاص بك، وأداته هي التي تملكها بالفعل: خذ مجموعتك الذهبية، غيّر السمة وحدها، وقارن paired. وُجد HELM تحديدًا لأن الدقة وحدها كانت تُبلّغ حيث كان التحيز، والسمية، والمعايرة، والمتانة قابلة للحسم أيضًا.8 model card من المورّد نقطة بداية، لا دليل على مدخلاتك.

التلوث سؤال للمورّد أيضًا. المسبار أعلاه هو سبب سؤال ما الذي قيس عليه الرقم المنشور، ومتى قُطعت بيانات النموذج.

الاحتفاظ، والتدريب، والإقامة، قُرئت في 7 سبتمبر 2026. هذه تتغير، لذا سجّل التاريخ بجانب الإجابة. تنص صفحة سياسة Anthropic: «افتراضيًا، لن نستخدم مدخلاتك أو مخرجاتك من منتجاتنا التجارية (مثل Claude for Work وAnthropic API وClaude Gov وغيرها) لتدريب نماذجنا»، مع استثناء المحتوى الذي تقدمه صراحة كتعليقات، والذي يُخزّن «لمدة تصل إلى 5 سنوات».16 وتنص وثائق ضوابط البيانات من OpenAI على أن «البيانات المرسلة إلى OpenAI API لا تُستخدم لتدريب نماذج OpenAI أو تحسينها (ما لم تختر صراحة مشاركة البيانات معنا)»، وتصف احتفاظًا افتراضيًا لمدة ثلاثين يومًا بسجلات مراقبة إساءة الاستخدام، وتوفر Zero Data Retention، الذي «يستثني محتوى العملاء من سجلات مراقبة إساءة الاستخدام»، إضافة إلى data residency قابلة للتهيئة عبر قائمة مناطق.17

أربع أسئلة يجب الحصول على إجاباتها كتابة قبل أول استدعاء إنتاج، لأن لكل واحد مالكًا مختلفًا: هل تُستخدم بياناتي للتدريب؛ كم تبقى محتفظًا بها ومن يحتفظ بها؛ أين تُعالج وتُخزن؛ وماذا يحدث لكل ذلك إذا استخدمت بائعًا وسيطًا، أو gateway، أو aggregator بدل المزوّد مباشرة. السؤال الأخير هو حيث تعيش معظم المفاجآت، ولن يخبرك به أي benchmark.

لديك الآن أداة القياس: مجموعة ذهبية تملكها، ومجال على كل رقم، واختبار paired لكل مقارنة، وpass^k للتشغيلات التي لم تُرِها لأحد، وjudge مقاس، ومسبار لمعرفة هل يعني رقم عام شيئًا. يمكن الآن التحقق من ادعاء خاتمة الفصل 23 بدل إعلانه — harness يجعل agent قابلًا للحوكمة لا صحيحًا — وقد استغرق التحقق منه مئتي تشغيل وثماني دقائق.

هناك خاصية واحدة في agent لا يقيسها أي من ذلك، وهي التي تجعل الناس يُفصلون.

كل مهمة في المجموعة الذهبية لهذا الفصل كتبتها أنا، وكل ملف قرأه الـ agent كتبته أنا. لا شيء في ذلك المجلد كان يحاول فعل شيء. غيّر سطرًا واحدًا في ملف واحد طُلب من الـ agent قراءته — سطرًا ينتهي بتعليمة موجهة إلى أي شيء يقرأه لاحقًا — وسيتبعه الـ agent الذي سجل 26% بالأدوات نفسها، والصلاحيات نفسها، والأثر النظيف نفسه، وستبقى كل أرقام هذا الفصل في مكانها تمامًا. تقيس evaluation suite عدد المرات التي يصل فيها النظام إلى هدفك. ولا تقيس مدى سهولة أن يستبدل شخص آخر هدفه به.

الفصل 30 هو ذلك: prompt injection، والثلاثية القاتلة للبيانات الخاصة، والمحتوى غير الموثوق، والاتصال الخارجي، وتكلفة منح agent صلاحيات حقيقية. يفتتح بالملاحظة التي ظل هذا الفصل يتجنبها — أن درجة النجاح نفسها متوافقة مع agent يفعل بالضبط ما كتبه مهاجم في ملف طُلب منه قراءته.


كل رقم أعلاه أُنتج على جهاز واحد ولم يلمس أي endpoint مدفوعة. الـ agent هو حلقة الفصل 23 مع اثنتين من أدواته الأربع على مجلد من خمسة ملفات؛ النموذج خلف المنفذ هو Qwen/Qwen2.5-0.5B-Instruct، مكشوف عبر خادم صغير بالشكل نفسه كـ chat completions endpoint تمامًا كما في الفصل 23، لكن بنصف الدقة على GPU استهلاكية واحدة بدل CPU ذلك الفصل. تستخدم التكاليف أسعار الفصل 16 — $2.00 لكل مليون input tokens و$12.00 لكل مليون output — مطبقة على أعداد token المقاسة. تستخدم التشغيلات المكررة temperature 0.7 مع بذور ثابتة لكي تُعاد المجموعة كلها؛ وجدول الأذرع الأربعة greedy. المجالات Wilson عند 95%، والمقارنات paired هي اختبارات sign exact ثنائية الطرف على الأزواج المتنافرة؛ Wilson interval هو من الفصل 4 وexact paired sign test هو من الفصل 15، وكلاهما أُعيد استخدامه بلا تغيير. الوسوم البشرية وسمي أنا، طُبقت على ستين إجابة وفق القاعدة المكتوبة المقتبسة في النص. اقرأ كل مقدار هنا كخاصية لنموذج بنصف مليار parameter، وكل منهج كشيء قابل للنقل: النموذج الأكبر يرفع الأرقام كلها ولا يغيّر أيًا من أدوات القياس.

  1. OpenAI, A practical guide to building agents (PDF)، الصفحة 8، قُرئ في 7 سبتمبر 2026. مصدر ترتيب الخطوات الثلاث المقتبس أعلاه والنصيحة المصاحبة بأن «تبني prototype agent باستخدام أقوى نموذج لكل مهمة لتأسيس performance baseline. من هناك، جرّب استبدال نماذج أصغر لترى هل ما زالت تحقق نتائج مقبولة». يقتبس الفصلان 22 و25 صفحاته التعريفية والتنظيمية.

  2. Schaeffer, R., Miranda, B. and Koyejo, S. Are Emergent Abilities of Large Language Models a Mirage? arXiv:2304.15004 (2023). الحجة أن المقاييس المتقطعة من نوع كل شيء أو لا شيء تصنع قفزات ظاهرية من تحسينات أساسية سلسة، مع تدقيق BIG-Bench المذكور في الفصل 10. وتحذيرهم هم يستحق التكرار: لا شيء في الورقة يدعي أن النماذج الكبيرة لا تستطيع إظهار قدرات ناشئة.

  3. Kalai, A. T., Nachum, O., Vempala, S. S. and Zhang, E. Why Language Models Hallucinate. arXiv:2509.04664 (2025). الحجة أن benchmarks التي تقيّم بصحيح أو خطأ تكافئ التخمين بدل الامتناع، والعلاج المقترح هو «تعديل طريقة تقييم benchmarks القائمة غير المتوافقة لكنها تهيمن على لوحات الصدارة، بدل إدخال تقييمات هلوسة إضافية». يستشهد بها الفصل 19 من جهة retrieval؛ وهذه جهة التقييم من الادعاء نفسه.

  4. Yao, S., Shinn, N., Razavi, P. and Narasimhan, K. τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains. arXiv:2406.12045 (2024). أصل pass^k، المعرّف كما اقتبس أعلاه، مع طباعة كلا المقدّرين جنبًا إلى جنب في الورقة؛ عنوان الملخص أن state-of-the-art function calling agents «تنجح في <50% من المهام، وهي غير متسقة إلى حد كبير (pass^8 <25% في retail)»، والقسم 1 يعطي أرقام gpt-4o البالغة ≈61% pass^1 و≈25% pass^8 على τ-retail. مقدّر pass@k الذي تقارنه به يأتي من Chen, M. et al., Evaluating Large Language Models Trained on Code, arXiv:2107.03374 (2021). 2 3

  5. Zheng, L. et al. Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena. arXiv:2306.05685 (2023). مصدر التحيزات الثلاثة المسماة، وتعريف الاتساق المستخدم أعلاه («نسبة الحالات التي يعطي فيها judge نتائج متسقة عند تبديل ترتيب مساعدَين»)، والنتيجة أن «GPT-4 وحده يعطي نتائج متسقة في أكثر من 60% من الحالات» مع ارتفاع 65.0% إلى 77.5% باستخدام few-shot، وتخفيف swap-and-require-agreement المقتبس حرفيًا. نتيجتها الإيجابية مهمة أيضًا: يصل judges من GPT-4 إلى «معدل اتفاق يتجاوز 80%» مع التقييمات البشرية، «وهو مستوى اتفاق البشر مع البشر نفسه» — وهذا سبب استخدام judge أصلًا، وسبب قياس خاصتك. 2 3

  6. EleutherAI, Language Model Evaluation Harness, ملف README للمشروع كما قُرئ في 7 سبتمبر 2026: «أكثر من 60 benchmark أكاديميًا قياسيًا لـ LLMs، مع مئات المهام الفرعية والمتغيرات المنفذة»، و«الخلفية التقنية للوحة Open LLM Leaderboard الشهيرة من Hugging Face». استدعاء lm_eval المقتبس أعلاه هو مثال README نفسه. Liang, P. et al., Holistic Evaluation of Language Models, arXiv:2211.09110 (2022)، هو runner قياسي آخر والقراءة الأفضل في تصميم التقييم.

  7. Hendrycks, D., Burns, C., Basart, S., Zou, A., Mazeika, M., Song, D. and Steinhardt, J. Measuring Massive Multitask Language Understanding. arXiv:2009.03300 (2020). 57 مهمة؛ وادعاء الملخص أن أكبر نموذج GPT-3 «يتحسن على المصادفة العشوائية بنحو 20 نقطة مئوية في المتوسط» تذكير مفيد بمدى حداثة تشبع هذا benchmark.

  8. Liang, P. et al. Holistic Evaluation of Language Models. arXiv:2211.09110 (2022). سبعة مقاييس — الدقة، والمعايرة، والمتانة، والإنصاف، والتحيز، والسمية، والكفاءة — عبر 16 سيناريو أساسيًا و30 نموذجًا، مع أرقام التغطية المقتبسة أعلاه. سبب قراءتها هو التأطير: أي من السبعة تبلّغ عنه اختيار بحد ذاته. 2

  9. Chiang, W.-L. et al. Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. arXiv:2403.04132 (2024). أكثر من 240K صوت وقت الكتابة، وتفضيل pairwise جماعي المصدر، والادعاء أن «الأصوات البشرية المجمعة من الجمهور متفقة جيدًا مع أصوات المقيّمين الخبراء».

  10. Jimenez, C. E., Yang, J., Wettig, A., Yao, S., Pei, K., Press, O. and Narasimhan, K. SWE-bench: Can Language Models Resolve Real-World GitHub Issues? arXiv:2310.06770 (2023). 2,294 مشكلة من 12 مستودع Python، مقيمة باختبارات المستودعات نفسها، مع أفضل نموذج في ذلك الوقت يحل «مجرد 1.96%». يستخدمه الفصل 23 للمعنى الآخر لكلمة harness.

  11. Zhou, S. et al. WebArena: A Realistic Web Environment for Building Autonomous Agents. arXiv:2307.13854 (2023). مواقع عاملة عبر أربعة نطاقات، مع أفضل GPT-4 agent عند 14.41% مقابل 78.24% للبشر.

  12. Xie, T. et al. OSWorld: Benchmarking Multimodal Agents for Open-Ended Tasks in Real Computer Environments. arXiv:2404.07972 (2024). 369 مهمة على أنظمة تشغيل حقيقية؛ البشر فوق 72.36%، وأفضل نموذج 12.24%، مع تسمية GUI grounding كالفجوة الرئيسية.

  13. Mialon, G., Fourrier, C., Swift, C., Wolf, T., LeCun, Y. and Scialom, T. GAIA: A Benchmark for General AI Assistants. arXiv:2311.12983 (2023). 466 سؤالًا، البشر عند 92% مقابل 15% لـ GPT-4 مع plugins — أنظف بيان منشور للفجوة بين ما هو سهل على الشخص وما هو سهل على assistant.

  14. Liu, X. et al. AgentBench: Evaluating LLMs as Agents. arXiv:2308.03688 (2023). ثماني بيئات مميزة، وتباين كبير بين أفضل النماذج التجارية والنماذج المفتوحة ذات الحجم المقارن.

  15. Andriushchenko, M. et al. AgentHarm: A Benchmark for Measuring Harmfulness of LLM Agents. arXiv:2410.09024 (2024). 110 مهام agent خبيثة صراحة (440 مع augmentations) عبر 11 فئة ضرر، مع النتيجة أن النماذج الرائدة «ممتثلة على نحو مفاجئ لطلبات agent الخبيثة من دون jailbreaking» وأن قوالب jailbreak عالمية بسيطة تنتقل إلى agents مع الحفاظ على قدراتها. إنه الجسر إلى الفصل 30: capability benchmark وharm benchmark يقيسان النظام نفسه ويختلفان حول هل هو جاهز.

  16. Anthropic, Is my data used for model training?, privacy.claude.com، قُرئ في 7 سبتمبر 2026. مقتبس حرفيًا أعلاه، بما في ذلك استثناء التعليقات ونافذة التخزين لخمس سنوات للتعليقات المقدمة.

  17. OpenAI, Your data (وثائق ضوابط بيانات API)، developers.openai.com، قُرئ في 7 سبتمبر 2026. مصدر تصريح عدم التدريب الافتراضي، والاحتفاظ لمدة ثلاثين يومًا لمراقبة إساءة الاستخدام، ووصف Zero Data Retention وقائمة endpoints المؤهلة، ومناطق data residency.

هل أنت مستعد لتترك الاختيار لـ LIA؟

ابنِ بكل نماذج الذكاء الاصطناعي في مكان واحد — ابدأ مجانًا اليوم.