LLM evaluation: public benchmarks سے آپ کے golden set تک
ایک ہی agent، ایک ہی task، دس runs: سات کامیابیاں 70 % لگتی ہیں، مگر pass^10 نکالیں تو نتیجہ عین صفر ہے۔
اس صفحے پر
یہ ایک demonstration ہے۔ باب 23 کا agent — وہی loop، اس کے چار میں سے دو tools — پانچ log اور configuration files کی directory کی طرف موڑا جاتا ہے اور اس سے ایک سوال پوچھا جاتا ہے۔
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."درست، اور یہ کسی چیز کا ثبوت بالکل نہیں — کیونکہ یہ transcript ان دس میں سے ایک ہے جو میں نے چلائے، اور میں نے اسے دسوں دیکھنے کے بعد چنا۔
اسی task کو دس بار چلائیں، sampling seed کے سوا کچھ نہ بدلیں، اور agent اسے سات بار درست کرتا ہے۔ ستر فی صد، یہی وہ عدد ہے جو slide پر جائے گا۔ اب وہ سوال پوچھیں جس کی customer کو واقعی پروا ہے — کیا یہ ہر بار کام کرے گا؟ — تو جواب بالکل مختلف عدد ہے:
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 نے یہ task کبھی لگاتار دس بار حل نہیں کیا اور، اس evidence پر، اس سے توقع بھی نہیں۔ وہ عدد — pass^10 — دیانت دار عدد ہے، یہ تقریباً کبھی شائع نہیں ہوتا، اور اس باب کے آخر تک آپ جانیں گے کہ اسے کیسے compute کیا جاتا ہے، اسے compute کرنے کی cost کیا ہے، اور 70 % کے ساتھ والا interval خود 70 % سے زیادہ اہم کیوں ہے۔
تفصیلات دکھائیں
اس باب کو پچھلے ابواب سے کیا چاہیے۔
- باب 4 statistics کے لیے: proportion پر Wilson interval، یہ وجہ کہ بیس میں سے سترہ درست کچھ distinguish نہیں کرتے، اور dumb baseline کو پہلی requirement کے طور پر۔
- باب 15 bench کے لیے: پچاس line کا harness، ان cases پر paired sign test جہاں دو systems disagree کرتے ہیں، اور یہ اصول کہ prompt کو measure کیا جاتا ہے، debate نہیں۔
- باب 23 measure کی جانے والی چیز کے لیے: loop، باہر نکلنے کے پانچ طریقے، cost accounting، اور closing observation کہ harness agent کو governable بناتا ہے مگر correct نہیں۔
یہاں دو panels ہیں۔ آپ کی اپنی evaluation کے لیے TypeScript، کیونکہ یہ آپ کے code کے ساتھ continuous integration میں belong کرتی ہے۔ دوسرے panel کے لیے Python، کیونکہ public benchmarks وہیں رہتے ہیں اور نیچے کی measurements میں سے ایک کو logits چاہیے۔
تین projects، تین instruments
اس حصے کا لنک: تین projects، تین instrumentsevaluation پر تقریباً ہر بحث میں دو لوگ مختلف چیزیں measure کر رہے ہوتے ہیں۔ تین projects ہیں اور ان کا کوئی instrument مشترک نہیں۔
| آپ کیا evaluate کر رہے ہیں | سوال | instrument | مالک کون ہے |
|---|---|---|---|
| model | کیا یہ model عموماً اس model سے بہتر ہے؟ | public benchmarks، leaderboards | community |
| آپ کی application | کیا میرا prompt، میری retrieval، میرا schema میری inputs پر کام کرتا ہے؟ | آپ کا golden set | آپ |
| آپ کا agent | کیا tools اور side effects سمیت پورا loop قابل اعتماد طریقے سے goal تک پہنچتا ہے؟ | task success plus pass^k | آپ |
Confusion ایک سمت میں مہنگی پڑتی ہے۔ leaderboard آپ کو بتاتا ہے کہ model graduate-level reasoning میں strong ہے؛ یہ آپ کو نہیں بتا سکتا کہ وہ آپ کے support tickets route کرے گا یا نہیں۔ اور application evaluation جو ہر input پر ایک answer score کرتی ہے، agent کو دیکھ ہی نہیں سکتی، کیونکہ agent کے پاس trajectories کی distribution ہوتی ہے اور ایک answer اس کا ایک single sample ہے۔ باب 22 نے اس تیسری row کو نام دیا اور اسے خالی چھوڑا: performance measure، agent کی specification کا وہ حصہ جسے teams سب سے آخر میں لکھتی ہیں یا کبھی نہیں لکھتیں۔
ترتیب بھی اہم ہے، اور model بیچنے والا vendor بھی یہی کہتا ہے۔ OpenAI کی agent guide model selection کو تین steps میں کم کرتی ہے، اسی order میں: ”performance baseline قائم کرنے کے لیے evals set up کریں“، ”دستیاب بہترین models کے ساتھ اپنے accuracy target کو meet کرنے پر focus کریں“، ”جہاں ممکن ہو larger models کو smaller ones سے replace کر کے cost اور latency optimize کریں“۔1 Evaluation پہلے آتی ہے، کیونکہ step دو اور تین کسی number کے بغیر بے معنی ہیں۔
golden set، اور بیس cases واقعی کیا خریدتے ہیں
اس حصے کا لنک: golden set، اور بیس cases واقعی کیا خریدتے ہیںgolden set inputs کی فہرست ہے، ہر ایک کے ساتھ answer لکھا ہوا، اور ایک grader جو فیصلہ کرتا ہے کہ output match کرتی ہے یا نہیں۔ یہ boring ہے، یہ چھوٹا ہے، اور اس باب میں یہی واحد artefact ہے جو آپ کا ہے۔ یہاں built ہونے والا set پانچ files کی directory پر بیس tasks رکھتا ہے — باب 23 کے تین نہیں، اس لیے answers وہی answers نہیں — اور grader agent کے run ہونے سے پہلے لکھا جاتا ہے:
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
];دو properties load-bearing ہیں۔ mustNot list اس لیے موجود ہے کہ ایسا model جو تین files کے نام دے، جن میں درست file بھی شامل ہو، اس نے answer نہیں کیا۔ اور answer prose کے ساتھ ساتھ patterns میں بھی لکھی گئی ہے، کیونکہ بعد میں human اور judge دونوں کو اس کی ضرورت ہوگی — اور ایک ہی fact کو دو notations میں دوبارہ لکھنا ہی وہ طریقہ ہے جس سے آپ کو پتا چلتا ہے کہ آپ خود task کے بارے میں اپنے ساتھ agree نہیں کرتے تھے۔
اب فیصلہ کرنے والی table۔ چار candidate systems، وہی بیس tasks، interval سمیت accuracy، اور وہ دو columns جو accuracies کی table اکیلی ہمیشہ چھپا دیتی ہے:
| system | correct | accuracy، 95 % Wilson | cost per solved task | mean latency |
|---|---|---|---|---|
| A — no tools، greedy | 2/20 | 10.0 % [2.8, 30.1] | $0.004649 | 663 ms |
| B — tools، terse prompt | 5/20 | 25.0 % [11.2, 46.9] | $0.005576 | 1,362 ms |
| C — tools، guided prompt | 2/20 | 10.0 % [2.8, 30.1] | $0.013071 | 930 ms |
| D — C، best of 3 at T = 0.7 | 1/20 | 5.0 % [0.9, 23.6] | $0.073532 | 2,628 ms |
winner سے پہلے intervals پڑھیں۔ Arm B کی runs 11 % سے 47 % تک جاتی ہیں؛ arm A کی 3 % سے 30 % تک۔ وہ اپنی length کے بیشتر حصے میں overlap کرتی ہیں، جو باب 4 کی finding کو عین اسی جگہ لے آتا ہے جہاں اس کا وعدہ کیا گیا تھا: بیس cases چار systems کو rank نہیں کر سکتے۔ باب 15 نے paired question پوچھ کر اسے sharpen کیا تھا — جن cases میں دو arms disagree کرتے ہیں، split کتنا lopsided ہے؟ — کیونکہ set کی shared difficulty cancel ہو جاتی ہے۔ ہر pair یہ ہے:
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چھ comparisons میں سے ایک بھی established نہیں۔ بہترین arm no tools والی arm کو پندرہ points سے beat کرتا ہے، اور یہ تین discordant cases پر کھڑا ہے۔ بیس cases mechanism دکھاتے ہیں اور supplier نہیں چن سکتے؛ meeting میں اس کے برعکس کہنا ہی وہ طریقہ ہے جس سے bad model خریدا جاتا ہے۔
ایک چیز ہے جو یہ table establish کرتی ہے، اور وہی column ہے جو کوئی نہیں لگاتا۔ Arm D فی solved task arm B سے تیرہ گنا cost کرتا ہے، کیونکہ تین trajectories sample کرنا اور modal answer لینا bill کو تین گنا کر دیتا ہے چاہے accuracy تین گنا ہو یا نہ ہو۔ Accuracy tables جو cost omit کرتی ہیں اس trade کو invisible بنا دیتی ہیں۔
metric number کا فیصلہ کرتی ہے
اس حصے کا لنک: metric number کا فیصلہ کرتی ہےاب وہ finding جو ہر benchmark کو پڑھنے کا آپ کا طریقہ بدل دیتی ہے۔ وہی دو سو transcripts لیں — بیس tasks، دس runs، ایک token بھی regenerate نہیں — اور انہیں تین طریقوں سے score کریں:
| grader | correct | accuracy، 95 % Wilson |
|---|---|---|
| لکھے ہوئے answer کے against exact match | 0/200 | 0.0 % [0.0, 1.9] |
| لکھا ہوا answer substring کے طور پر ظاہر ہوتا ہے | 26/200 | 13.0 % [9.0, 18.4] |
| اوپر والی keyword rubric | 52/200 | 26.0 % [20.4, 32.5] |
صفر، تیرہ، چھبیس۔ system نہیں بدلا۔ grader بدلا۔ Exact match صفر return کرتا ہے اس لیے نہیں کہ agent useless ہے، بلکہ اس لیے کہ کوئی free-text answer کبھی reference کے byte-identical نہیں ہوتا: یہ formatting کو measure کرتا ہے اور اسے capability کے طور پر report کرتا ہے۔
یہ curiosity نہیں، mechanism ہے، اور اس کا نام ہے۔ hard-cutoff metric کسی task کو کئی sub-facts پر all-or-nothing score کرتی ہے، اس لیے یہ compound ہوتی ہے۔ Task t12 ایک ساتھ تین status codes مانگتا ہے۔ دس runs میں:
per-code presence 200: 9/10 429: 6/10 500: 8/10 (mean 0.77 per fact)
all three at once 5/10ہر fact تقریباً تین چوتھائی وقت درست ہے؛ تینوں کو ایک ساتھ demand کرنا score کو آدھا کر دیتا ہے، اور measured 0.50 کے اتنا قریب ہے کہ بتا دیتا ہے drop کہاں سے آیا۔ Generalise کریں:
| per-fact accuracy | |||||
|---|---|---|---|---|---|
| 0.60 | 60.0 % | 36.0 % | 21.6 % | 7.8 % | 0.6 % |
| 0.80 | 80.0 % | 64.0 % | 51.2 % | 32.8 % | 10.7 % |
| 0.90 | 90.0 % | 81.0 % | 72.9 % | 59.0 % | 34.9 % |
| 0.95 | 95.0 % | 90.3 % | 85.7 % | 77.4 % | 59.9 % |
0.90 row کو پر 0.95 row کے against پڑھیں: per-fact میں پانچ points کی improvement conjunction پر پچیس points بن جاتی ہے۔ model کے ساتھ کچھ discontinuous نہیں ہوا۔ smooth curve جب all-or-nothing metric کے ذریعے پڑھی جائے تو jump لگتی ہے — یہی عین وہ argument ہے جو Schaeffer، Miranda اور Koyejo نے emergent abilities کے بارے میں کیا، اور جسے باب 10 نے یہاں تک deferred رکھا تھا۔2 ان کے audit نے پایا کہ BIG-Bench کی 39 preferred metrics میں زیادہ سے زیادہ 5 ہی emergence دکھاتی ہیں، جبکہ دو discontinuous metrics claimed cases کے 92 % سے زیادہ کی ذمہ دار ہیں۔
لہٰذا discipline ایک line میں: chart میں jump metric کے بارے میں evidence ہے جب تک otherwise ثابت نہ ہو۔ کسی capability کے ظاہر ہونے پر یقین کرنے سے پہلے، انہی runs کو ایسی metric کے ساتھ plot کریں جو partial credit دیتی ہو اور دیکھیں cliff بچتی ہے یا نہیں۔
اس کا ایک second-order version ہے جس کے بارے میں Kalai اور colleagues argue کرتے ہیں کہ یہ upstream damage کر رہا ہے: right-or-wrong score ہونے والے benchmarks ”I do not know“ کہنے کے بجائے guessing کو reward کرتے ہیں، اس لیے ان کے against optimize کیا گیا model guess کرنا سیکھتا ہے۔ ان کا proposed fix ایک اور hallucination benchmark نہیں بلکہ ”ان existing benchmarks کی scoring modify کرنا ہے جو misaligned ہیں مگر leaderboards dominate کرتے ہیں“۔3 آپ کے golden set کے پاس بھی یہی lever ہے، اور یہ ایک line ہے: decide کریں کہ abstention failure گنی جائے یا اپنی category۔ زیادہ تر لوگ کبھی decide نہیں کرتے، اس لیے یہ silent طور پر failure count ہوتی ہے، اور وہ system جو وہ ship کرتے ہیں guess کرتا ہے۔
pass^k، اور وہ variance جو کوئی publish نہیں کرتا
اس حصے کا لنک: pass^k، اور وہ variance جو کوئی publish نہیں کرتااب تک ہر چیز نے فی task ایک attempt score کیا۔ agent ایک attempt نہیں ہوتا۔ باب 17 نے establish کیا کہ temperature zero پر بھی determinism نہیں ہوتا، اس لیے same input trajectories کی distribution produce کرتی ہے اور benchmark جو ہر task ایک بار run کرتا ہے اس سے ایک sample report کرتا ہے۔
τ-bench کی contribution اس کے لیے metric ہے۔ paper اسے صاف define کرتا ہے: ”ہم ایک نئی metric propose کرتے ہیں — pass^k (pass hat k)، جس کی تعریف یہ ہے کہ k i.i.d. task trials سب کے سب successful ہوں، tasks پر averaged۔“4 ہر task کو بار چلائیں، successes count کریں، اور unbiased estimators یہ ہیں:
دوسری وہ familiar pass@k ہے code generation سے: chance کہ attempts میں کم از کم ایک successful ہو۔ انہیں same measured counts پر side by side رکھیں تو وہ opposite directions میں move کرتی ہیں:
pass@k — کم از کم ایک | pass^k — سب کے سب | |
|---|---|---|
| 1 | 26.0 % | 26.0 % |
| 2 | 37.0 % | 15.0 % |
| 3 | 43.5 % | 10.5 % |
| 5 | 51.2 % | 6.7 % |
| 8 | 57.7 % | 5.1 % |
| 10 | 60.0 % | 5.0 % |
Same runs، same grader، same بیس tasks۔ ایک column کہتا ہے کہ system زیادہ attempts کے ساتھ improve ہوتا ہے اور دوسرا کہتا ہے کہ یہ worse ہوتا ہے، اور دونوں correct ہیں، کیونکہ وہ مختلف questions کا answer دیتے ہیں۔ pass@k درست metric ہے جب human output filter کرتا ہے — code generation، drafts، brainstorming — اور extra attempts cheap ہیں۔ pass^k درست metric ہے جب agent بغیر filter کے act کرتا ہے، جو ”agent“ کا مطلب ہے۔ جہاں second apply ہوتی ہو وہاں first publish کرنا اس field کی سب سے عام overstatement ہے، اور τ-bench کی اپنی headline honest version ہے: retail پر gpt-4o تقریباً 61 % pass^1 سے pass^8 پر تقریباً 25 % تک گر جاتا ہے۔4
اب میرے اپنے numbers کا sting۔ میرے بیس tasks پر pass^10 5.0 % ہے: بیس میں سے عین ایک task جو تمام دس runs پر حل ہوا۔ وہ task t19 ہے، ”کیا deploy 42 succeed ہوا؟“، اور یہاں دس میں سے دو answers ہیں جنہیں rubric نے correct score کیا:
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."پہلا answer کبھی دیتا ہی نہیں۔ دوسرا ایک false claim add کرتا ہے — deploy 41 rolled back تھا۔ دونوں /succe|yes/ سے match ہوئے۔ وہ واحد task جو pass^10 کو zero سے اوپر رکھ رہا ہے grader artefact ہے، اس لیے true figure zero ہے، اور کوئی aggregate مجھے یہ نہ دکھاتا۔ اپنے best-scoring task کے پیچھے transcripts sample کرنا وہ جگہ ہے جہاں graders مرنے جاتے ہیں۔
اور ایک اور number، جس کے نام پر یہ section ہے۔ دس identical evaluations — same system، same بیس tasks، same code، seeds کے سوا کچھ نہیں بدلا:
per-run correct: 5 2 5 5 8 5 8 5 4 5 -> 10 % .. 40 %, mean 26.0 %, sd 8.8 pointsایسے system پر تیس point range جو بدلا ہی نہیں۔ اگر آپ release سے پہلے suite ایک بار run کریں اور بعد میں ایک بار، تو آٹھ point ”improvement“ اسی spread کے اندر ہے اور آپ اسے ship کر دیں گے یہ سمجھتے ہوئے کہ آپ نے اسے cause کیا۔ اسی لیے اوپر والا pooled interval — 26.0 % [20.4, 32.5] — اکیلا quote کرنے کے لیے too narrow ہے: یہ دو سو correlated trials کو دو سو independent trials treat کرتا ہے۔ agent evaluation کا honest summary mean اور repeats کے across spread ہے، اور تقریباً کوئی second publish نہیں کرتا۔
judge، اور judge کا اپنا golden set
اس حصے کا لنک: judge، اور judge کا اپنا golden setRubrics open-ended answers پر scale نہیں ہوتیں، اس لیے standard move یہ ہے کہ model output کو grade کرے۔ frontier scale پر یہ default ہونے کے لیے کافی کام کرتا ہے، اور اس کے تین named failure modes ہیں: position bias، verbosity bias اور self-enhancement bias۔5
اس پر trust کرنے سے پہلے اسے measure کریں۔ وہی ساٹھ answers — دس runs میں سے تین — تین طریقوں سے labelled ہوئے۔ human label میرا ہے: میں نے پانچ files کھلی رکھ کر تمام ساٹھ پڑھے اور ایک written rule apply کیا، pass if and only if answer اس fact کو state کرتا ہے جو question نے پوچھا تھا اور files سے contradicted کچھ contain نہیں کرتا۔
| grader | pass کہتا ہے | human سے agree کرتا ہے | false pass | false fail |
|---|---|---|---|---|
| keyword rubric | 17/60 | 50/60 = 83.3 % [72.0, 90.7] | 8 | 2 |
| model as judge | 60/60 | 11/60 = 18.3 % [10.6, 29.9] | 49 | 0 |
judge نے ساٹھ میں سے ساٹھ بار PASS کہا۔ یہ اس agent کو ایسے set پر 100 % accuracy report کرتا جہاں human اسے 18 % score کرتا ہے۔ جس judge میں discriminative power نہ ہو وہ noisy instrument نہیں؛ وہ constant function ہے، اور constant function آپ کے best system اور worst system کو same score دیتا ہے۔
Prompting نے اسے rescue نہیں کیا۔ چار variants، same ساٹھ items:
| judge prompt | pass کہتا ہے | human سے agreement |
|---|---|---|
| ”PASS یا FAIL reply کریں۔“ | 60/60 | 18.3 % |
| ”FAIL یا PASS reply کریں۔“ — labels swapped | 56/60 | 25.0 % |
| plus failures کی explicit list | 55/60 | 26.7 % |
plus ایک worked FAIL example اور ایک PASS example | 56/60 | 25.0 % |
instruction میں دو labels کا order swap کرنے سے چار verdicts move ہوئے۔ یہ measurable effect ہے اور غلط قسم کا effect ہے: judge اپنے سامنے موجود answer کے بجائے prompt کی shape پر respond کر رہا ہے۔
صاف demonstration pairwise ہے۔ بیس questions، ہر ایک کے ساتھ ایک صاف correct اور ایک صاف wrong candidate، دونوں orders میں پیش کیے گئے:
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 %اس نے position A چالیس میں سے چالیس بار pick کی۔ correctness پر 50 % partial competence نہیں — یہ arithmetic ہے، کیونکہ correct answer trials کے عین نصف میں position A پر بیٹھا ہے۔ یہاں consistency کو MT-Bench کی تعریف کے مطابق define کیا گیا ہے، ”cases کا percentage جہاں judge دو assistants کا order swap کرنے پر consistent results دیتا ہے“، جس سے comparison apples to apples ہو جاتا ہے: GPT-4 اس measure پر 65.0 % score کرتا ہے، اور few-shot prompting نے اسے 77.5 % تک اٹھایا۔5 میرا zero score کرتا ہے۔
standard mitigation بھی اسی paper سے ہے: ”دو answers کا order swap کر کے judge کو دو بار call کریں اور win صرف تب declare کریں جب answer دونوں orders میں preferred ہو۔“5 اسے یہاں apply کریں تو judge بیس pairs سے zero usable verdicts produce کرتا ہے — جو correct outcome ہے، اور بیس confident verdicts سے infinitely better ہے۔
ایک methodological note جو result سے زیادہ قیمتی ہے۔ میں نے verbosity test بھی چلایا: وہی correct answer، ایک copy میں 36-word sentence add کیا جو کچھ add نہیں کرتا۔ judge نے exactly 50 % trials میں longer version prefer کیا — جو verbosity bias کی absence جیسا لگتا ہے اور ایسا ہرگز نہیں، کیونکہ جو judge ہمیشہ position A pick کرتا ہے وہ کسی بھی balanced pairing پر 50 % score کرتا ہے۔ آپ second bias کو measure نہیں کر سکتے جب تک first controlled نہ ہو۔ positions swap کرنا later add کی جانے والی refinement نہیں؛ یہی ہر دوسری measurement کو interpretable بناتا ہے۔
judge کس لیے ہے۔ Open-ended answers جن کی کوئی parseable form نہیں: tone، coverage، کیا citation اپنے sentence کو support کرتی ہے، کیا refusal appropriate تھا۔ Cheap، fast، اور تقریباً اپنے base model جتنا اچھا۔
judge کیا نہیں ہے۔ ground truth۔ یہ ایک system ہے جس کی accuracy، bias profile اور cost ہے، اور اس کے produce کیے ہوئے کسی بھی number کے meaningful ہونے سے پہلے اسے human labels کا اپنا golden set چاہیے — known failures سمیت۔
honest caveat: یہ judge half-billion-parameter model ہے، اور کسی کو بھی ایسے model سے grade نہیں کرنا چاہیے۔ point یہ نہیں کہ judges bad ہیں۔ point یہ ہے کہ اوپر کے numbers produce کرنے میں آٹھ minutes لگے، اور ان کے بغیر shipping decision پر اس judge کا verdict 100 % ہوتا۔
دوسرا panel: Python، اور contamination کے لیے probe
اس حصے کا لنک: دوسرا panel: Python، اور contamination کے لیے probeیہ course کا تیسرا اور آخری declared Python panel ہے، اور وجہ یہ ہے کہ public numbers کہاں سے آتے ہیں۔ lm-evaluation-harness ”LLMs کے لیے 60 سے زیادہ standard academic benchmarks، hundreds of subtasks and variants implemented“ cover کرتا ہے اور ”Hugging Face کے popular Open LLM Leaderboard کا backend“ ہے؛ HELM، SWE-bench اور τ-bench Python packages ہیں جن کے Python entry points ہیں۔ published figure کے against اپنا model چلانے کا مطلب ان کا code چلانا ہے، اور جس دن آپ کسی cited number کے ساتھ compare کرنا چاہیں گے، آپ اسی ecosystem میں ہوں گے:
lm_eval --model hf \
--model_args pretrained=EleutherAI/gpt-j-6B \
--tasks hellaswag \
--device cuda:0 \
--batch_size 8دوسری وجہ یہ ہے کہ اس chapter کی ایک measurement HTTP پر impossible ہے۔ Contamination — test set کا training data میں leak ہو جانا — وہ failure ہے جو public benchmark کو خاموشی سے meaningless بنا دیتا ہے، اور اس کے لیے sharpest probe کو model کا اپنا loss چاہیے، جو کوئی chat API return نہیں کرتی۔ یہ باب 8 کا cross-entropy per token ہے، memory کے بارے میں question پر pointed:
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)دس sentence pairs: پانچ جو web کے ہر crawl میں اس کے وجود سے ہیں، پانچ آج صبح اس chapter کے لیے لکھے گئے، ہر ایک paired with reworded version carrying same content۔
| set | canonical wording | reworded | gap |
|---|---|---|---|
| famous، mean of 5 | 1.21 | 3.03 | +1.83 |
| fresh، mean of 5 | 5.02 | 5.96 | +0.93 |
model آج صبح لکھے گئے sentence پر اس sentence سے چار گنا زیادہ surprised ہے جسے اس نے million times دیکھا ہے، اور famous ones پر rewording twice as much cost کرتی ہے — extra cost وہ حصہ ہے جو understood کے بجائے memorised تھا۔ Absolute loss memorisation کو ordinary naturalness کے ساتھ confound کرتا ہے، اس لیے gap بہتر statistic ہے اور continuation test اس سے بھی بہتر۔ اسے first six words دیں:
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."پانچ famous strings میں سے تین six words سے word-perfect continue ہوئیں؛ پانچ fresh میں سے کوئی نہیں۔ یہ half-billion-parameter model MIT License recite کر رہا ہے۔ اگر آپ کا benchmark public web پر ہے، assume کریں کہ وہ weights میں ہے۔ یہی پورے chapter کے لیے argument بھی ہے: آپ کے اپنے data سے لکھا گیا golden set، کسی بھی crawler-readable repository سے باہر رکھا ہوا، واحد test set ہے جس کے بارے میں آپ sure ہو سکتے ہیں کہ اس پر کبھی training نہیں ہوئی۔
public benchmarks اصل میں کیا measure کرتے ہیں
اس حصے کا لنک: public benchmarks اصل میں کیا measure کرتے ہیںوہ اب بھی پڑھنے کے قابل ہیں، بشرطیکہ آپ ہر ایک سے attached single number کے بجائے یہ پڑھیں کہ ہر ایک measure کیا کرتا ہے۔
| benchmark | یہ کیا measure کرتا ہے | اس کے paper کا ایک number |
|---|---|---|
| MMLU | 57 subjects پر multiple-choice knowledge | GPT-3 نے chance کو ”average پر تقریباً 20 percentage points“ سے beat کیا6 |
| HELM | many metrics × many scenarios، standardised | core scenarios کی coverage 17.9 % سے 96.0 % ہو گئی7 |
| Chatbot Arena | crowdsourced pairwise human preference | 240K سے زیادہ votes؛ crowd votes experts کے ساتھ ”in good agreement“8 |
| SWE-bench | real GitHub issues resolve کرنا، repo کے tests سے graded | 2,294 problems؛ اس وقت best model نے ”محض 1.96 %“ solve کیا9 |
| τ-bench | simulated user اور domain policy کے ساتھ tool use | retail پر gpt-4o ≈ 61 % pass^1، ≈ 25 % pass^84 |
| WebArena | functioning websites پر long-horizon tasks | best GPT-4 agent 14.41 % بمقابلہ humans 78.24 %10 |
| OSWorld | applications کے across real desktop and OS tasks | 369 tasks؛ best model 12.24 %، humans 72.36 %11 |
| GAIA | ایسے questions جو people کے لیے easy، assistants کے لیے hard ہیں | 466 questions؛ humans 92 %، plugins کے ساتھ GPT-4 15 %12 |
| AgentBench | 8 distinct environments میں agent reasoning | commercial اور open models کے درمیان large gap13 |
| AgentHarm | کیا agent malicious multi-step tasks carry out کرے گا | 11 harm categories پر 110 malicious tasks14 |
کسی ایک row کے بجائے table لیں۔ agentic benchmarks سب humans کو models سے بہت اوپر رکھتے ہیں، جو knowledge benchmarks کا opposite ہے اور field کہاں ہے اس کا best one-line summary؛ ان کے figures months کے اندر old ہو جاتے ہیں، اس لیے انہیں اس date کے ساتھ cite کریں جس دن آپ نے پڑھا؛ اور ہر ایک ایسا task measure کرتا ہے جو آپ کا نہیں۔
وہ metrics جو production میں decide کرتی ہیں
اس حصے کا لنک: وہ metrics جو production میں decide کرتی ہیںAccuracy وہ metric ہے جس پر آپ argue کرتے ہیں۔ یہ وہ metrics ہیں جو decide کرتی ہیں کہ چیز ship ہوتی ہے یا نہیں۔ چاروں پہلے ہی measured دو سو runs سے نکلتی ہیں۔
Cost per solved task، نہ کہ per call۔ agent فی attempt $0.001345 cost کرتا ہے اور فی actually solved task $0.005172 — 3.85 گنا زیادہ، کیونکہ attempts کے تین چوتھائی کچھ produce نہیں کرتے۔ Latency بھی اسی طرح behave کرتی ہے: 1,213 ms per attempt، 4,667 ms per solved task۔ ہر retry، ہر re-ask، ہر abandoned trajectory second number پر ہے اور first میں invisible۔
ایک diagnostic جو accuracy کو beat کرتا ہے۔ 200 میں سے 123 attempts میں agent نے ایک بھی tool call کیے بغیر answer کیا — اس نے دیکھا نہیں، guess کیا۔ اس split پر:
answered without reading anything 8/123 = 6.5 % [3.3, 12.3]
answered after reading something 44/77 = 57.1 % [46.0, 67.6]intervals touch کے قریب بھی نہیں آتے۔ یہ aggregate 26 % سے زیادہ valuable ہے، کیونکہ یہ fix کرنے والی چیز کا نام لیتا ہے — model reasoning میں fail نہیں ہو رہا، یہ look کرنے میں fail ہو رہا ہے — اور fix harness میں ہے، model میں نہیں۔ ایک caveat جو یہ chapter اپنے standards کا مقروض ہے: دو groups different tasks ہیں، same paired tasks نہیں، اس لیے gap کا حصہ یہ بھی ہو سکتا ہے کہ یہ tools کو عین ان questions پر skip کرتا ہے جو اسے hard لگتے ہیں۔ split diagnostic ہے، causal claim نہیں۔
Human intervention rate وہ metric ہے جو buyer پہلے پوچھتا ہے: runs کا کتنا fraction approval، guardrail یا handoff پر رکا۔ باب 23 کی typed interruptions اسے countable بناتی ہیں، اور per task type اور per week count کیا جائے تو یہی فرق بتاتی ہے کہ agent اپنا job سیکھ رہا ہے یا خاموشی سے queue بنتا جا رہا ہے۔
Abandonment وہ ہے جو کوئی offline suite نہیں دیکھ سکتی: وہ user جس نے answer پڑھا، tab بند کی اور task خود کر لیا۔ Offline evaluation gate ہے؛ production evaluation real traffic کا continuous sample ہے، same grader plus ان چار کے ساتھ scored۔
اور باب 17 سے inherited rule: exact output پر کبھی assert نہ کریں۔ properties پر assert کریں — valid JSON، correct schema، right tool called، tolerance کے اندر number، required substring present۔ اس chapter کے top پر exact-match column وہی ہے جو rule ٹوٹنے پر ہوتا ہے۔
آپ third party کو کیا بھیجتے ہیں
اس حصے کا لنک: آپ third party کو کیا بھیجتے ہیںsupplier evaluate کرنا صرف accuracy کے بارے میں نہیں، اور یہ اس course کی ethics کا دوسرا half ہے، appendix کے بجائے اپنے heading کے ساتھ۔
bias کو measure کریں، assume نہ کریں۔ names، dialects، genders یا nationalities پر model کے behaviour کے بارے میں آپ جو بھی believe کرتے ہیں، وہ آپ کی pipeline کی measurable property ہے، اور instrument وہی ہے جو آپ کے پاس پہلے ہی ہے: اپنا golden set لیں، صرف attribute vary کریں، paired compare کریں۔ HELM اسی لیے exists کرتا ہے کہ accuracy اکیلی report کی جا رہی تھی جہاں bias، toxicity، calibration اور robustness بھی decidable تھے۔7 vendor کا model card starting point ہے، آپ کی inputs کے بارے میں evidence نہیں۔
Contamination بھی supplier question ہے۔ اوپر والا probe اسی لیے ہے کہ پوچھا جائے published number کس پر measure ہوا، اور model کا data کب cut ہوا۔
Retention، training اور residency، 7 September 2026 کو read کریں۔ یہ بدلتے ہیں، اس لیے answer کے ساتھ date record کریں۔ Anthropic کی policy page کہتی ہے: ”By default, we will not use your inputs or outputs from our commercial products (e.g. Claude for Work, Anthropic API, Claude Gov, etc.) to train our models“، except وہ content جسے آپ explicitly feedback کے طور پر submit کریں، جو ”up to 5 years“ stored رہتا ہے۔15 OpenAI کی data controls documentation کہتی ہے کہ ”data sent to the OpenAI API is not used to train or improve OpenAI models (unless you explicitly opt in to share data with us)“، abuse-monitoring logs کے لیے thirty-day default retention describe کرتی ہے، اور Zero Data Retention offer کرتی ہے، جو ”customer content کو abuse monitoring logs سے exclude“ کرتی ہے، plus regions کی list کے across configurable data residency۔16
first production call سے پہلے writing میں لینے کے لیے چار questions، کیونکہ ہر ایک کا owner different ہے: کیا میرا data training کے لیے use ہوتا ہے؛ یہ کتنی دیر retained رہتا ہے اور کس کے by؛ کہاں process اور store ہوتا ہے؛ اور اگر میں provider directly کے بجائے reseller، gateway یا aggregator use کروں تو ان سب کے ساتھ کیا ہوتا ہے۔ آخری one میں اکثر surprises رہتی ہیں، اور کوئی benchmark آپ کو نہیں بتائے گا۔
یہ آگے کہاں جاتا ہے
اس حصے کا لنک: یہ آگے کہاں جاتا ہےاب آپ کے پاس instrument ہے: آپ کا own golden set، ہر number پر interval، ہر comparison کے لیے paired test، ان runs کے لیے pass^k جو آپ نے کسی کو نہیں دکھائیں، measured judge، اور یہ probe کہ public score کوئی معنی رکھتا ہے یا نہیں۔ باب 23 کا closing claim اب assert کے بجائے check کیا جا سکتا ہے — harness agent کو governable بناتا ہے، correct نہیں — اور اسے check کرنے میں دو سو runs اور آٹھ minutes لگے۔
agent کی ایک property ایسی ہے جسے ان میں سے کچھ بھی measure نہیں کرتا، اور یہی وہ ہے جس سے لوگ fired ہوتے ہیں۔
اس chapter کے golden set میں ہر task میں نے لکھا، اور ہر file جو agent نے پڑھی میں نے لکھی۔ اس directory میں کچھ بھی کچھ کرنے کی کوشش نہیں کر رہا تھا۔ ایک file میں، جسے agent کو پڑھنے کو کہا گیا ہے، ایک line بدل دیں — ایسی line جو اس instruction پر ختم ہوتی ہو جو اگلا پڑھنے والے کو address کرتی ہے — اور وہ agent جس نے 26 % score کیا same tools، same permissions اور same clean trace کے ساتھ اسے follow کرے گا، اور اس chapter کا ہر number exactly وہیں رہے گا۔ evaluation suite measure کرتی ہے کہ system آپ کے goal تک کتنی بار پہنچتا ہے۔ یہ measure نہیں کرتی کہ کوئی اور اپنا goal کتنی آسانی سے substitute کر سکتا ہے۔
باب 30 یہی ہے: prompt injection، private data، untrusted content اور external communication کی lethal trifecta، اور agent کو real permissions دینے کی cost۔ یہ اس observation سے کھلتا ہے جس سے یہ chapter بچتا رہا ہے — کہ same passing score ایسے agent کے ساتھ compatible ہے جو بالکل وہی کرتا ہے جو attacker نے اس file میں لکھا تھا جسے اسے پڑھنے کو کہا گیا۔
Sources and method
اس حصے کا لنک: Sources and methodاوپر کا ہر number ایک machine پر produce ہوا اور اس میں کوئی paid endpoint touch نہیں ہوا۔ agent باب 23 کا loop ہے جس کے چار میں سے دو tools پانچ-file directory پر ہیں؛ port کے پیچھے model Qwen/Qwen2.5-0.5B-Instruct ہے، چھوٹے server کے ذریعے exposed جس کی shape chat completions endpoint جیسی ہے exactly باب 23 کی طرح، مگر اس chapter کے CPU کے بجائے ایک consumer GPU پر half precision میں۔ Costs باب 16 کی rates use کرتی ہیں — $2.00 per million input tokens اور $12.00 per million output — measured token counts پر applied۔ repeated runs temperature 0.7 fixed seeds کے ساتھ use کرتی ہیں تاکہ whole set reproduce ہو؛ four-arm table greedy ہے۔ Intervals 95 % پر Wilson ہیں، paired comparisons discordant pairs پر two-sided exact sign tests ہیں؛ Wilson interval باب 4 کا ہے اور exact paired sign test باب 15 کا، دونوں unchanged reused۔ human labels میرے ہیں، text میں quoted written rule کے تحت ساٹھ answers پر applied۔ یہاں ہر magnitude کو half-billion-parameter model کی property سمجھیں اور ہر method کو transferable: bigger model تمام numbers اوپر move کرتا ہے اور instruments میں سے کسی کو نہیں۔
حوالہ جات
اس حصے کا لنک: حوالہ جات-
OpenAI, A practical guide to building agents (PDF), page 8, read 7 September 2026. اوپر quoted three-step ordering کا source اور accompanying advice کا source کہ ”performance baseline establish کرنے کے لیے ہر task کے لیے most capable model کے ساتھ اپنا agent prototype build کریں۔ وہاں سے، smaller models swap in کر کے دیکھیں کہ کیا وہ still acceptable results achieve کرتے ہیں۔“ ابواب 22 اور 25 اس کے definitional اور orchestration pages quote کرتے ہیں۔ ↩
-
Schaeffer, R., Miranda, B. and Koyejo, S. Are Emergent Abilities of Large Language Models a Mirage? arXiv:2304.15004 (2023). یہ argument کہ discontinuous، all-or-nothing metrics smooth underlying improvements سے apparent jumps manufacture کرتی ہیں، BIG-Bench audit کے ساتھ جو باب 10 میں cited ہے۔ ان کی اپنی caution repeat کرنے کے قابل ہے: paper میں کچھ بھی یہ claim نہیں کرتا کہ large models emergent abilities display نہیں کر سکتے۔ ↩
-
Kalai, A. T., Nachum, O., Vempala, S. S. and Zhang, E. Why Language Models Hallucinate. arXiv:2509.04664 (2025). یہ argument کہ right-or-wrong score کرنے والے benchmarks abstention کے مقابلے guessing کو reward کرتے ہیں، اور proposed remedy کہ ”additional hallucination evaluations introduce کرنے کے بجائے existing benchmarks کی scoring modify کی جائے جو misaligned ہیں مگر leaderboards dominate کرتے ہیں“۔ باب 19 اسے retrieval side سے cite کرتا ہے؛ یہ same claim کی evaluation side ہے۔ ↩
-
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کی origin، اوپر quote کی گئی definition کے مطابق، دونوں estimators paper میں side by side printed؛ abstract کی headline یہ ہے کہ state-of-the-art function-calling agents ”tasks کے <50 % پر succeed کرتے ہیں، اور کافی inconsistent ہیں (retail میں pass^8 <25 %)“، اور section 1 τ-retail پر gpt-4o figures ≈61 %pass^1اور ≈25 %pass^8دیتا ہے۔ جسpass@kestimator سے یہ contrast کرتا ہے وہ Chen, M. et al., Evaluating Large Language Models Trained on Code, arXiv:2107.03374 (2021) سے آتا ہے۔ ↩ ↩2 ↩3 -
Zheng, L. et al. Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena. arXiv:2306.05685 (2023). تین named biases کا source، اوپر استعمال ہونے والی consistency کی definition کا source (”cases کا percentage جہاں judge دو assistants کا order swap کرنے پر consistent results دیتا ہے“)، اس finding کا source کہ ”صرف GPT-4 outputs 60 % سے زیادہ cases میں consistent results دیتا ہے“ جس میں 65.0 % few-shot سے 77.5 % تک rising، اور اوپر verbatim quoted swap-and-require-agreement mitigation کا source۔ اس کا positive result بھی اہم ہے: GPT-4 judges human evaluations کے ساتھ ”80 % سے زیادہ agreement rate“ reach کرتے ہیں، ”human-human agreement کے same level“ — یہی judge استعمال کرنے کی وجہ ہے، اور yours کو measure کرنے کی وجہ بھی۔ ↩ ↩2 ↩3
-
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 tasks؛ abstract کا claim کہ largest GPT-3 model ”random chance سے average پر تقریباً 20 percentage points improve کرتا ہے“ ایک useful reminder ہے کہ اس benchmark کی saturation کتنی recent ہے۔ ↩
-
Liang, P. et al. Holistic Evaluation of Language Models. arXiv:2211.09110 (2022). سات metrics — accuracy، calibration، robustness، fairness، bias، toxicity اور efficiency — 16 core scenarios اور 30 models پر، quoted coverage figures کے ساتھ۔ اسے پڑھنے کی وجہ framing ہے: آپ سات میں سے کون سی report کرتے ہیں یہ خود ایک choice ہے۔ ↩ ↩2
-
Chiang, W.-L. et al. Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. arXiv:2403.04132 (2024). writing کے وقت 240K سے زیادہ votes، crowdsourced pairwise preference، اور claim کہ ”crowdsourced human votes expert raters کے ساتھ good agreement میں ہیں“۔ ↩
-
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). 12 Python repositories سے 2,294 problems، repositories کے own tests سے graded، اس وقت کے best model کے ”محض 1.96 %“ solve کرنے کے ساتھ۔ باب 23 اسے لفظ ”harness“ کے دوسرے sense کے لیے use کرتا ہے۔ ↩
-
Zhou, S. et al. WebArena: A Realistic Web Environment for Building Autonomous Agents. arXiv:2307.13854 (2023). چار domains کے across functioning websites، best GPT-4 agent humans کے 78.24 % کے مقابلے 14.41 % پر۔ ↩
-
Xie, T. et al. OSWorld: Benchmarking Multimodal Agents for Open-Ended Tasks in Real Computer Environments. arXiv:2404.07972 (2024). real operating systems پر 369 tasks؛ humans 72.36 % سے اوپر، best model 12.24 %، GUI grounding کو main gap نام دیا گیا۔ ↩
-
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 questions، humans 92 % بمقابلہ plugins کے ساتھ GPT-4 15 % — اس gap کا cleanest published statement کہ person کے لیے easy کیا ہے اور assistant کے لیے easy کیا ہے۔ ↩
-
Liu, X. et al. AgentBench: Evaluating LLMs as Agents. arXiv:2308.03688 (2023). آٹھ distinct environments، اور top commercial models اور comparable size کے open-source ones کے درمیان significant disparity۔ ↩
-
Andriushchenko, M. et al. AgentHarm: A Benchmark for Measuring Harmfulness of LLM Agents. arXiv:2410.09024 (2024). 11 harm categories پر 110 explicitly malicious agent tasks (augmentations کے ساتھ 440)، اس finding کے ساتھ کہ leading models ”jailbreaking کے بغیر malicious agent requests کے ساتھ surprisingly compliant“ ہیں اور simple universal jailbreak templates agents تک transfer ہوتے ہیں while retaining their capabilities۔ یہ باب 30 کا bridge ہے: capability benchmark اور harm benchmark same system کو measure کرتے ہیں اور disagree کرتے ہیں کہ یہ ready ہے یا نہیں۔ ↩
-
Anthropic, Is my data used for model training?,
privacy.claude.com, read 7 September 2026. اوپر verbatim quoted، feedback exception اور submitted feedback کے لیے five-year storage window سمیت۔ ↩ -
OpenAI, Your data (API data controls documentation),
developers.openai.com, read 7 September 2026. default no-training statement، thirty-day abuse-monitoring retention، Zero Data Retention کی description اور eligible endpoints کی list، اور data residency regions کا source۔ ↩