ข้ามไปยังเนื้อหา
29/30บทที่ 29 จาก 30

การประเมิน LLM: จาก public benchmarks สู่ golden set ของคุณ

agent เดิม งานเดิม รัน 10 ครั้ง สำเร็จ 7 ครั้งดูเหมือน 70 % จนคำนวณ pass^10 แล้วได้ศูนย์พอดี

ในหน้านี้

นี่คือการสาธิต agent จาก บทที่ 23 — loop เดิม ใช้สองในสี่ tools — ถูกชี้ไปที่ไดเรกทอรีซึ่งมีไฟล์ log และ configuration ห้าไฟล์ แล้วถูกถามหนึ่งคำถาม

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."

ถูกต้อง และมันไม่ได้เป็นหลักฐานของอะไรเลย — เพราะ transcript นั้นเป็นหนึ่งในสิบครั้งที่ผมรัน และผมเลือกมันหลังจากเห็นครบทั้งสิบครั้งแล้ว

รันงานเดียวกันเป๊ะสิบครั้ง โดยไม่เปลี่ยนอะไรนอกจาก 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 สำหรับสิ่งที่ถูกวัด: loop ทางออกห้าทาง การคิดต้นทุน และข้อสังเกตปิดท้ายว่า harness ทำให้ agent อยู่ภายใต้การกำกับได้ แต่ไม่ได้ทำให้ถูกต้อง

มีสองแผงตรงนี้ TypeScript สำหรับการประเมินของคุณเอง เพราะมันควรอยู่ใน continuous integration ข้าง ๆ โค้ดของคุณ Python สำหรับแผงที่สอง เพราะ public benchmarks อยู่ที่นั่น และหนึ่งในการวัดด้านล่างต้องใช้ logits

แทบทุกข้อถกเถียงเรื่องการประเมิน คือคนสองคนกำลังวัดคนละสิ่งกัน มีสามโปรเจกต์ และมันไม่ได้ใช้เครื่องมือเดียวกัน

สิ่งที่คุณกำลังประเมินคำถามเครื่องมือใครเป็นเจ้าของ
โมเดลโมเดลนี้ดีกว่าโมเดลนั้นโดยทั่วไปไหม?public benchmarks, leaderboardsชุมชน
แอปพลิเคชันของคุณprompt, retrieval, schema ของผมใช้ได้กับ input ของผมหรือไม่?golden set ของคุณคุณ
agent ของคุณloop ทั้งหมด พร้อม tools และ side effects ไปถึงเป้าหมายได้อย่างน่าเชื่อถือไหม?task success บวก pass^kคุณ

ความสับสนนี้แพงในทิศทางหนึ่ง leaderboard บอกคุณได้ว่าโมเดลเก่งด้านการให้เหตุผลระดับบัณฑิตศึกษา แต่มันบอกไม่ได้ว่าจะ route ticket ซัพพอร์ตของคุณได้หรือไม่ และการประเมินแอปพลิเคชันที่ให้คะแนนหนึ่งคำตอบต่อหนึ่ง input มองไม่เห็น agent เลย เพราะ agent มีการกระจายของ trajectories และหนึ่งคำตอบคือ sample เดียวจากการกระจายนั้น บทที่ 22 ตั้งชื่อแถวที่สามนั้นไว้แล้วและปล่อยให้ว่าง: performance measure ซึ่งเป็นส่วนหนึ่งของ specification ของ agent ที่ทีมมักเขียนทีหลังสุด หรือไม่เขียนเลย

ลำดับก็สำคัญเช่นกัน และผู้ขายโมเดลให้คุณก็พูดแบบนั้น คู่มือ agent ของ OpenAI ลดการเลือกโมเดลเหลือสามขั้นตอนตามลำดับนี้: “Set up evals to establish a performance baseline”, “Focus on meeting your accuracy target with the best models available”, “Optimize for cost and latency by replacing larger models with smaller ones where possible”.1 การประเมินมาก่อน เพราะขั้นที่สองและสามไม่มีความหมายถ้าไม่มีตัวเลข

golden set และยี่สิบเคสซื้ออะไรให้คุณจริง ๆ

ลิงก์ไปยังส่วน: golden set และยี่สิบเคสซื้ออะไรให้คุณจริง ๆ

golden set คือรายการของ inputs โดยแต่ละรายการมีคำตอบเขียนไว้ และมี grader ที่ตัดสินว่า output ตรงกันหรือไม่ มันน่าเบื่อ มันเล็ก และมันเป็น artefact เดียวในบทนี้ที่เป็นของคุณ ชุดที่สร้างตรงนี้มีงานยี่สิบงานบนไดเรกทอรีที่มีห้าไฟล์ — ไม่ใช่สามไฟล์ของบทที่ 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 ถูกเขียนเป็นร้อยแก้วเช่นเดียวกับ pattern เพราะทั้งมนุษย์และ judge จะต้องใช้มันภายหลัง — และการเขียนข้อเท็จจริงเดียวกันสองครั้งในสอง notation คือวิธีที่ทำให้คุณค้นพบว่าคุณยังไม่เห็นตรงกับตัวเองว่างานคืออะไร

ทีนี้คือตารางที่ตัดสิน ระบบผู้สมัครสี่ระบบ งานยี่สิบงานเดียวกัน accuracy พร้อมช่วง และสองคอลัมน์ที่ตาราง accuracy อย่างเดียวมักซ่อนไว้เสมอ:

systemcorrectaccuracy, 95 % Wilsoncost per solved taskmean latency
A — no tools, greedy2/2010.0 % [2.8, 30.1]$0.004649663 ms
B — tools, terse prompt5/2025.0 % [11.2, 46.9]$0.0055761,362 ms
C — tools, guided prompt2/2010.0 % [2.8, 30.1]$0.013071930 ms
D — C, best of 3 at T = 0.71/205.0 % [0.9, 23.6]$0.0735322,628 ms

อ่านช่วงก่อนอ่านผู้ชนะ arm B มีช่วงตั้งแต่ 11 % ถึง 47 %; arm A ตั้งแต่ 3 % ถึง 30 % มันทับซ้อนกันเกือบตลอดความยาว ซึ่งก็คือข้อค้นพบของบทที่ 4 มาถึงตรงที่สัญญาไว้พอดี: ยี่สิบเคสจัดอันดับสี่ระบบไม่ได้ บทที่ 15 ทำให้คมขึ้นด้วยการถามคำถามแบบ paired แทน — ในเคสที่สอง arm ไม่เห็นตรงกัน การแบ่งเอียงไปข้างใดมากแค่ไหน? — เพราะความยากร่วมของชุดจะหักล้างกัน นี่คือทุกคู่:

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

ไม่มีการเปรียบเทียบใดในหกคู่ที่พิสูจน์ได้แน่ชัด arm ที่ดีที่สุดชนะ arm ที่ไม่มี tools เลยสิบห้าจุด และสิ่งนั้นตั้งอยู่บน discordant cases เพียงสามเคส ยี่สิบเคสแสดงกลไกได้ แต่เลือก supplier ไม่ได้ การพูดเป็นอย่างอื่นในที่ประชุมคือวิธีที่โมเดลแย่ ๆ ถูกซื้อเข้ามา

มีสิ่งหนึ่งที่ตารางนี้พิสูจน์ได้ และมันคือคอลัมน์ที่ไม่มีใครใส่ arm D มีต้นทุนต่อ task ที่แก้สำเร็จสูงกว่า arm B สิบสามเท่า เพราะการ sample สาม trajectories แล้วเอาคำตอบฐานนิยมทำให้บิลเพิ่มสามเท่า ไม่ว่า accuracy จะเพิ่มสามเท่าหรือไม่ ตาราง accuracy ที่ละต้นทุนทำให้ trade-off นี้ล่องหน

ทีนี้คือข้อค้นพบที่จะเปลี่ยนวิธีที่คุณอ่าน benchmark ทุกตัวที่คุณจะเห็นต่อจากนี้ นำ transcript ชุดเดิม สองร้อยรายการ — ยี่สิบงาน สิบรัน ไม่ regenerate token แม้แต่ตัวเดียว — แล้วให้คะแนนสามวิธี:

gradercorrectaccuracy, 95 % Wilson
exact match กับคำตอบที่เขียนไว้0/2000.0 % [0.0, 1.9]
คำตอบที่เขียนไว้ปรากฏเป็น substring26/20013.0 % [9.0, 18.4]
keyword rubric ข้างบน52/20026.0 % [20.4, 32.5]

ศูนย์ สิบสาม ยี่สิบหก ระบบไม่ได้เปลี่ยน grader เปลี่ยน exact match ให้ศูนย์ไม่ใช่เพราะ agent ไร้ประโยชน์ แต่เพราะไม่มีคำตอบ free-text ใดที่ byte-identical กับ reference เสมอไป: มันวัด formatting แล้วรายงานเป็น capability

นี่ไม่ใช่เรื่องน่าสงสัยเล็ก ๆ แต่เป็นกลไก และมันมีชื่อ hard-cutoff metric ให้คะแนนงานแบบได้ทั้งหมดหรือไม่ได้เลยเหนือ sub-facts หลายข้อ ดังนั้นมันจึงทบต้น งาน t12 ขอ status codes สามตัวพร้อมกัน ในสิบรัน:

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

แต่ละ fact ถูกต้องประมาณสามในสี่ของเวลา การบังคับให้ถูกทั้งสามพร้อมกันทำให้คะแนนลดครึ่งหนึ่ง และ 0.773=0.4570.77^3 = 0.457 ก็ใกล้กับ 0.50 ที่วัดได้พอจะชี้ให้เห็นว่าการลดลงมาจากไหน ทำให้ทั่วไปได้ดังนี้:

per-fact accuracy 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: การปรับปรุง per-fact ห้าจุดกลายเป็นยี่สิบห้าจุดบน conjunction ไม่มีอะไรแบบไม่ต่อเนื่องเกิดขึ้นกับโมเดล เส้นโค้งเรียบที่ถูกอ่านผ่าน metric แบบได้ทั้งหมดหรือไม่ได้เลยจะดูเหมือนการกระโดด — ซึ่งเป็นข้อโต้แย้งที่ Schaeffer, Miranda และ Koyejo ทำไว้เรื่อง emergent abilities และที่ บทที่ 10 เลื่อนมาไว้ตรงนี้2 การตรวจสอบของพวกเขาพบว่าใน 39 metrics ที่ BIG-Bench ชอบ มีมากที่สุด 5 ตัวเท่านั้นที่แสดง emergence โดย metrics แบบไม่ต่อเนื่องสองตัวอธิบายกรณีที่ถูกอ้างมากกว่า 92 %

ดังนั้นวินัยในหนึ่งบรรทัดคือ: การกระโดดในกราฟเป็นหลักฐานเกี่ยวกับ metric จนกว่าจะพิสูจน์เป็นอย่างอื่น ก่อนเชื่อว่า capability ปรากฏขึ้น ให้ plot รันเดียวกันด้วย metric ที่ให้ partial credit แล้วดูว่าหน้าผายังอยู่ไหม

มีเวอร์ชันลำดับที่สองของเรื่องนี้ที่ Kalai และคณะโต้แย้งว่ากำลังสร้างความเสียหายตั้งแต่ต้นน้ำ: benchmarks ที่ให้คะแนนถูกหรือผิดให้รางวัลการเดามากกว่าการพูดว่า “ผมไม่รู้” ดังนั้นโมเดลที่ optimize กับมันจึงเรียนรู้ที่จะเดา วิธีแก้ที่พวกเขาเสนอไม่ใช่ hallucination benchmark อีกตัว แต่คือ “modifying the scoring of existing benchmarks that are misaligned but dominate leaderboards”.3 golden set ของคุณมีคันโยกเดียวกัน และมันเป็นแค่หนึ่งบรรทัด: ตัดสินใจว่า abstention นับเป็นความล้มเหลวหรือเป็นหมวดหมู่ของมันเอง คนส่วนใหญ่ไม่เคยตัดสินใจ ดังนั้นมันจึงถูกนับเป็นความล้มเหลวอย่างเงียบ ๆ และระบบที่พวกเขา ship ก็เดา

ทุกอย่างที่ผ่านมาให้คะแนนหนึ่ง attempt ต่อ task agent ไม่ใช่หนึ่ง attempt บทที่ 17 ยืนยันว่าคุณไม่มี determinism แม้ที่ temperature ศูนย์ ดังนั้น input เดียวกันจึงสร้างการกระจายของ trajectories และ benchmark ที่รันแต่ละ task หนึ่งครั้งรายงาน sample เดียวจากมัน

ผลงานของ τ-bench คือ metric สำหรับเรื่องนั้น paper นิยามไว้ชัดเจน: “we propose a new metric – pass^k (pass hat k), defined as the chance that all k i.i.d. task trials are successful, averaged across tasks.”4 รันแต่ละ task nn ครั้ง นับ successes cc และ unbiased estimators คือ:

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 ที่คุ้นเคยจาก code generation: โอกาสที่ อย่างน้อยหนึ่ง ใน kk attempts สำเร็จ วางสองตัวนี้ข้างกันบน counts ที่วัดได้ชุดเดียวกัน แล้วมันเคลื่อนไปคนละทิศ:

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 เดียวกัน งานยี่สิบงานเดียวกัน คอลัมน์หนึ่งบอกว่าระบบดีขึ้นเมื่อมี attempts มากขึ้น อีกคอลัมน์บอกว่ามันแย่ลง และทั้งคู่ถูกต้อง เพราะตอบคนละคำถาม pass@k คือ metric ที่ถูกต้องเมื่อมีมนุษย์กรอง output — code generation, drafts, brainstorming — และ attempts เพิ่มเติมราคาถูก pass^k คือ metric ที่ถูกต้องเมื่อ agent ทำงานโดยไม่มีตัวกรอง ซึ่งเป็นความหมายของ “agent” การเผยแพร่ตัวแรกในที่ที่ควรใช้ตัวที่สองคือการพูดเกินจริงที่พบบ่อยที่สุดในวงการนี้ และ headline ของ τ-bench เองคือเวอร์ชันที่ซื่อสัตย์: gpt-4o ที่ประมาณ 61 % pass^1 บน retail ตกลงมาเหลือประมาณ 25 % ที่ pass^8.4

ทีนี้คือหนามในตัวเลขของผมเอง pass^10 บนงานยี่สิบงานของผมคือ 5.0 %: มี task เดียวในยี่สิบที่แก้สำเร็จครบทั้งสิบรัน task นั้นคือ t19, “Did deploy 42 succeed?”, และนี่คือสองในสิบคำตอบที่ 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."

คำตอบแรกไม่เคยตอบ คำตอบที่สองเพิ่ม claim ที่เป็นเท็จ — deploy 41 ถูก rollback ทั้งคู่ตรงกับ /succe|yes/ task เดียวที่พยุง pass^10 ให้อยู่เหนือศูนย์คือ artefact ของ grader ดังนั้นตัวเลขจริงคือ ศูนย์ และ aggregate ใด ๆ จะไม่แสดงเรื่องนี้ให้ผมเห็น การสุ่มอ่าน transcripts เบื้องหลัง task ที่ได้คะแนนดีที่สุดของคุณคือที่ที่ graders ไปตาย

และอีกหนึ่งตัวเลข ตัวที่เป็นชื่อของส่วนนี้ การประเมินเหมือนกันสิบครั้ง — ระบบเดิม งานยี่สิบงานเดิม โค้ดเดิม ไม่มีอะไรเปลี่ยนยกเว้น seeds:

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

ช่วงกว้างสามสิบจุดบนระบบที่ไม่ได้เปลี่ยน ถ้าคุณรัน suite ครั้งหนึ่งก่อน release และอีกครั้งหลัง release “การปรับปรุง” แปดจุดอยู่ใน spread นั้น และคุณจะ ship มันโดยเชื่อว่าคุณเป็นคนทำให้เกิดขึ้น นี่คือเหตุผลที่ pooled interval ข้างบน — 26.0 % [20.4, 32.5] — แคบเกินไป ที่จะ quote เดี่ยว ๆ: มันปฏิบัติต่อ trials ที่ correlated กันสองร้อยครั้งเหมือนเป็นอิสระกันสองร้อยครั้ง สรุปที่ซื่อสัตย์ของการประเมิน agent คือ mean และ spread ข้าม repeats และแทบไม่มีใครเผยแพร่ตัวที่สอง

Rubrics ไม่ scale กับคำตอบ open-ended ดังนั้นท่ามาตรฐานคือให้โมเดล grade output มันดีพอในระดับ frontier จนเป็น default และมี failure modes ที่มีชื่อสามอย่าง: position bias, verbosity bias และ self-enhancement bias.5

วัดมันก่อนเชื่อมัน คำตอบหกสิบชุดเดียวกัน — สามในสิบรัน — ถูก label สามวิธี human label เป็นของผม: ผมอ่านทั้งหมดหกสิบคำตอบโดยเปิดไฟล์ทั้งห้าไว้ และใช้กฎที่เขียนไว้หนึ่งข้อ ผ่านก็ต่อเมื่อคำตอบระบุ fact ที่คำถามถามหา และไม่มีอะไรที่ขัดแย้งกับไฟล์

gradersays passagrees with the humanfalse passfalse fail
keyword rubric17/6050/60 = 83.3 % [72.0, 90.7]82
the model as judge60/6011/60 = 18.3 % [10.6, 29.9]490

judge พูดว่า PASS หกสิบครั้งจากหกสิบครั้ง มันคงรายงาน agent นี้ที่ accuracy 100 % บนชุดที่มนุษย์ให้คะแนน 18 % judge ที่ไม่มี discriminative power ไม่ใช่เครื่องมือที่มี noise; มันคือ constant function และ constant function ให้คะแนนระบบที่ดีที่สุดกับแย่ที่สุดของคุณเท่ากัน

การ prompt ไม่ได้ช่วยมัน สี่ variant รายการหกสิบรายการเดิม:

judge promptsays passagreement with the human
“Reply PASS or FAIL.”60/6018.3 %
“Reply FAIL or PASS.” — สลับ labels56/6025.0 %
บวก explicit list ว่าอะไรนับเป็น failure55/6026.7 %
บวกตัวอย่างที่ทำแล้วหนึ่งตัวอย่าง FAIL และหนึ่งตัวอย่าง PASS56/6025.0 %

การสลับลำดับ labels สองตัวใน instruction ขยับ verdicts สี่รายการ นั่นคือ effect ที่วัดได้ และเป็น effect แบบผิดชนิด: judge ตอบสนองต่อรูปร่างของ prompt มากกว่าคำตอบตรงหน้า

การสาธิตที่สะอาดคือ pairwise คำถามยี่สิบข้อ แต่ละข้อมี candidate ที่ถูกชัดเจนหนึ่งอันและผิดชัดเจนหนึ่งอัน นำเสนอทั้งสองลำดับ:

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 %

มันเลือก position A สี่สิบครั้งจากสี่สิบครั้ง 50 % บน correctness ไม่ใช่ความสามารถบางส่วน — มันคือเลขคณิต เพราะคำตอบที่ถูกอยู่ใน position A พอดีครึ่งหนึ่งของ trials consistency ที่นี่นิยามตาม MT-Bench ว่า “the percentage of cases where a judge gives consistent results when swapping the order of two assistants” ซึ่งทำให้การเปรียบเทียบเทียบกันได้: GPT-4 ได้ 65.0 % บนมาตรวัดนั้น และ few-shot prompting ยกขึ้นเป็น 77.5 %.5 ของผมได้ศูนย์

mitigation มาตรฐานก็มาจาก paper นั้นเช่นกัน: “call a judge twice by swapping the order of two answers and only declare a win when an answer is preferred in both orders.”5 ใช้กับตรงนี้แล้ว judge ให้ zero usable verdicts from twenty pairs — ซึ่งเป็นผลลัพธ์ที่ถูกต้อง และดีกว่าความมั่นใจยี่สิบครั้งอย่างไม่มีที่สิ้นสุด

หมายเหตุด้านวิธีวิทยาที่มีค่ากว่าผลลัพธ์ ผมยังรัน verbosity test ด้วย: คำตอบที่ถูกต้องเดียวกัน หนึ่งสำเนาถูกเติมด้วยประโยค 36 คำที่ไม่ได้เพิ่มอะไร judge ชอบเวอร์ชันที่ยาวกว่าใน 50 % ของ trials พอดี — ซึ่งดูเหมือนไม่มี verbosity bias และไม่ใช่แบบนั้นเลย เพราะ judge ที่เลือก position A เสมอจะได้ 50 % บน balanced pairing ใด ๆ ก็ตาม คุณวัด bias ตัวที่สองไม่ได้จนกว่าจะควบคุมตัวแรก การสลับตำแหน่งไม่ใช่ refinement ที่ค่อยเพิ่มทีหลัง; มันคือสิ่งที่ทำให้ measurement อื่น ๆ ตีความได้

judge มีไว้ทำอะไร คำตอบ open-ended ที่ไม่มีรูปแบบให้ parse ได้: tone, coverage, citation สนับสนุนประโยคหรือไม่, refusal เหมาะสมหรือไม่ ถูก เร็ว และดีประมาณ base model ของมัน

judge ไม่ใช่อะไร มันไม่ใช่ ground truth มันคือระบบที่มี accuracy, bias profile และต้นทุนของตัวเอง และต้องมี golden set ของ human labels ของตัวเอง — รวมถึง known failures — ก่อนที่ตัวเลขใด ๆ ที่มันสร้างจะมีความหมาย

ข้อสงวนที่ซื่อสัตย์: judge นี้เป็นโมเดลครึ่งพันล้าน parameters และไม่มีใครควรใช้โมเดลแบบนั้น grade ประเด็นไม่ใช่ว่า judges แย่ แต่คือว่าตัวเลขข้างบนใช้เวลาแปดนาทีในการสร้าง และถ้าไม่มีมัน verdict ของ judge นี้ต่อการตัดสินใจ ship คงเป็น 100 %

นี่คือแผง Python ที่ประกาศไว้เป็นครั้งที่สามและครั้งสุดท้ายของคอร์ส และเหตุผลคือที่มาของตัวเลขสาธารณะ lm-evaluation-harness ครอบคลุม “over 60 standard academic benchmarks for LLMs, with hundreds of subtasks and variants implemented” และเป็น “the backend for Hugging Face's popular Open LLM Leaderboard”; HELM, SWE-bench และ τ-bench เป็น Python packages ที่มี Python entry points.6 การรันโมเดลของคุณเทียบกับตัวเลขที่เผยแพร่ หมายถึงการรันโค้ดของพวกเขา และวันที่คุณอยากเปรียบเทียบกับตัวเลขที่ใครบางคนอ้างถึง นี่คือ ecosystem ที่คุณอยู่:

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

เหตุผลที่สองคือ measurement หนึ่งในบทนี้ทำผ่าน HTTP ไม่ได้ Contamination — test set รั่วเข้า training data — คือ failure ที่ทำให้ public benchmark ไร้ความหมายอย่างเงียบ ๆ และ probe ที่คมที่สุดสำหรับมันต้องใช้ loss ของโมเดลเอง ซึ่งไม่มี chat API ใดส่งคืน มันคือ cross-entropy ต่อ token ของ บทที่ 8 ที่ชี้ไปยังคำถามเรื่อง memory:

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 ของเว็บตั้งแต่มันมีอยู่ อีกห้าคู่เขียนขึ้นสำหรับบทนี้เมื่อเช้านี้ แต่ละคู่จับกับเวอร์ชันที่เรียบเรียงใหม่แต่มีเนื้อหาเดียวกัน

setcanonical wordingrewordedgap
famous, mean of 51.213.03+1.83
fresh, mean of 55.025.96+0.93

โมเดลประหลาดใจกับประโยคที่เขียนเมื่อเช้านี้มากกว่าประโยคที่มันเห็นมาหนึ่งล้านครั้งถึงสี่เท่า และการ rewording มีต้นทุนมากกว่าสองเท่าบนประโยค famous — ต้นทุนส่วนเกินคือส่วนที่ถูกจดจำมากกว่าเข้าใจ absolute loss ปน memorisation กับ naturalness ธรรมดาเข้าด้วยกัน ดังนั้น gap จึงเป็นสถิติที่ดีกว่า และ continuation test ยังดีกว่า ให้หกคำแรกแก่มัน:

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."

สามในห้าของ famous strings ต่อได้ตรงทุกคำจากหกคำแรก; fresh ones ทั้งห้าไม่มีตัวใดทำได้ นั่นคือโมเดลครึ่งพันล้าน parameters กำลังท่อง MIT License ถ้า benchmark ของคุณอยู่บน public web ให้ถือว่ามันอยู่ใน weights นี่คือข้อโต้แย้งของทั้งบทเช่นกัน: golden set ที่คุณเขียนจากข้อมูลของคุณเอง และเก็บให้พ้น repository ใด ๆ ที่ crawler อ่าน คือ test set เดียวที่คุณมั่นใจได้ว่าไม่เคยถูก train มาก่อน

มันยังคุ้มที่จะอ่าน ตราบใดที่คุณอ่านว่าแต่ละตัววัดอะไร แทนที่จะอ่านตัวเลขเดียวที่ติดอยู่กับมัน

benchmarkวัดอะไรตัวเลขจาก paper
MMLUความรู้แบบ multiple-choice ใน 57 วิชาGPT-3 ชนะ chance โดย “almost 20 percentage points on average”7
HELMmetrics จำนวนมาก × scenarios จำนวนมาก แบบ standardizedcoverage ของ core scenarios เพิ่มจาก 17.9 % เป็น 96.0 %8
Chatbot Arenapairwise human preference แบบ crowdsourcedมากกว่า 240K votes; crowd votes “in good agreement” กับ experts9
SWE-benchแก้ GitHub issues จริง โดย grade ด้วย tests ของ repo2,294 problems; โมเดลที่ดีที่สุดตอนนั้นแก้ได้ “a mere 1.96 %”10
τ-benchtool use พร้อม simulated user และ domain policygpt-4o ≈ 61 % pass^1, ≈ 25 % pass^8 บน retail4
WebArenalong-horizon tasks บนเว็บไซต์ที่ใช้งานได้จริงbest GPT-4 agent 14.41 % เทียบกับ 78.24 % สำหรับมนุษย์11
OSWorlddesktop และ OS tasks จริงข้าม applications369 tasks; best model 12.24 %, มนุษย์ 72.36 %12
GAIAคำถามที่ง่ายสำหรับคน ยากสำหรับ assistants466 questions; มนุษย์ 92 %, GPT-4 พร้อม plugins 15 %13
AgentBenchการให้เหตุผลแบบ agent ใน 8 environments ที่แตกต่างช่องว่างใหญ่ระหว่าง commercial models และ open models14
AgentHarmagent จะทำ malicious multi-step tasks หรือไม่110 malicious tasks ใน 11 harm categories15

อ่านทั้งตารางแทนที่จะอ่านแถวใดแถวหนึ่ง agentic benchmarks ทั้งหมดวางมนุษย์ไว้สูงกว่าโมเดลมาก ซึ่งตรงข้ามกับ knowledge benchmarks และเป็นสรุปหนึ่งบรรทัดที่ดีที่สุดว่าสาขานี้อยู่ตรงไหน ตัวเลขของมันแก่ภายในไม่กี่เดือน ดังนั้น cite พร้อมวันที่คุณอ่าน และทุกตัววัดงานที่ไม่ใช่งานของคุณ

Accuracy คือ metric ที่คุณถกเถียงกัน ต่อไปนี้คือ metric ที่ตัดสินว่าสิ่งนั้นจะ ship หรือไม่ ทั้งสี่ตัวได้มาจากรันสองร้อยครั้งที่วัดไว้แล้ว

ต้นทุนต่อ task ที่แก้สำเร็จ ไม่ใช่ต่อ call agent มีต้นทุน $0.001345 ต่อ attempt และ $0.005172 ต่อ task ที่แก้สำเร็จจริง — แพงกว่า 3.85 เท่า เพราะ attempts สามในสี่ไม่ก่อผลอะไร Latency ก็เป็นแบบเดียวกัน: 1,213 ms ต่อ attempt, 4,667 ms ต่อ solved task ทุก retry ทุก re-ask ทุก trajectory ที่ถูกทิ้ง อยู่ในตัวเลขที่สองและล่องหนในตัวเลขแรก

diagnostic ที่ชนะ accuracy ใน 123 จาก 200 attempts agent ตอบ โดยไม่เรียก tool แม้แต่ตัวเดียว — มันเดาแทนที่จะดู แยกตามนั้น:

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]

ช่วงไม่เฉียดกันเลย นั่นมีค่ามากกว่า aggregate 26 % เพราะมันตั้งชื่อสิ่งที่ต้องแก้ — โมเดลไม่ได้ล้มเหลวในการ reasoning แต่มันล้มเหลวในการดู — และ fix อยู่ใน harness ไม่ใช่โมเดล ข้อสงวนหนึ่งที่บทนี้ติดค้างมาตรฐานของตัวเอง: สองกลุ่มเป็น tasks คนละชุด ไม่ใช่ tasks เดียวกันแบบ paired ดังนั้นส่วนหนึ่งของ gap อาจเป็นเพราะมันข้าม tools ในคำถามที่มันเห็นว่ายากพอดี การ split นี้เป็น diagnostic ไม่ใช่ causal claim

Human intervention rate คือ metric ที่ buyer ถามก่อน: สัดส่วนของ runs ที่หยุดที่ approval, guardrail หรือ handoff typed interruptions ของบทที่ 23 ทำให้มันนับได้ และเมื่อถูกนับต่อ task type และต่อสัปดาห์ มันคือสิ่งที่แยก agent ที่กำลังเรียนรู้งานของมันออกจาก agent ที่ค่อย ๆ กลายเป็น queue เงียบ ๆ

Abandonment คือสิ่งที่ offline suite มองไม่เห็น: ผู้ใช้ที่อ่านคำตอบ ปิด tab แล้วไปทำงานเอง Offline evaluation เป็น gate; production evaluation คือ sample ต่อเนื่องของ traffic จริง ให้คะแนนด้วย grader เดียวกันบวกสี่ตัวนี้

และกฎที่สืบมาจากบทที่ 17: อย่า assert บน exact output assert บน properties — valid JSON, schema ถูกต้อง, tool ที่ถูกต้องถูกเรียก, ตัวเลขอยู่ใน tolerance, substring ที่ต้องการปรากฏ คอลัมน์ exact-match ตอนต้นบทนี้คือสิ่งที่เกิดขึ้นเมื่อกฎนั้นถูกทำลาย

การประเมิน supplier ไม่ได้เกี่ยวกับ accuracy เท่านั้น และนี่คือครึ่งหลังของจริยธรรมในคอร์สนี้ พร้อม heading ของตัวเองแทนที่จะเป็น appendix

วัด bias อย่าสันนิษฐาน ไม่ว่าคุณเชื่ออะไรเกี่ยวกับพฤติกรรมของโมเดลต่อชื่อ dialects เพศ หรือสัญชาติ มันคือ property ที่วัดได้ของ pipeline ของคุณ และเครื่องมือก็คือสิ่งที่คุณมีอยู่แล้ว: นำ golden set ของคุณ เปลี่ยนเฉพาะ attribute แล้วเปรียบเทียบแบบ paired HELM มีอยู่ก็เพราะ accuracy อย่างเดียวถูกนำไปรายงานในที่ที่ bias, toxicity, calibration และ robustness ก็ decidable เช่นกัน8 model card ของ vendor เป็นจุดเริ่มต้น ไม่ใช่หลักฐานเกี่ยวกับ inputs ของคุณ

Contamination ก็เป็นคำถามสำหรับ supplier เช่นกัน probe ข้างบนคือเหตุผลที่ต้องถามว่าตัวเลขที่เผยแพร่วัดบนอะไร และข้อมูลของโมเดลถูกตัด ณ เมื่อใด

Retention, training และ residency อ่าน ณ 7 กันยายน 2026 สิ่งเหล่านี้เปลี่ยนได้ ดังนั้นบันทึกวันที่ไว้ข้างคำตอบ หน้านโยบายของ Anthropic ระบุว่า: “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” โดยมีข้อยกเว้นคือเนื้อหาที่คุณ submit เป็น feedback อย่างชัดเจน ซึ่งถูกเก็บ “for up to 5 years”.16 เอกสาร data controls ของ OpenAI ระบุว่า “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)” อธิบาย retention เริ่มต้นสามสิบวันสำหรับ abuse-monitoring logs และเสนอ Zero Data Retention ซึ่ง “excludes customer content from abuse monitoring logs” รวมถึง configurable data residency ในรายชื่อ regions.17

คำถามสี่ข้อที่ต้องได้เป็นลายลักษณ์อักษรก่อน production call แรก เพราะแต่ละข้อมี owner คนละคน: ข้อมูลของผมถูกใช้สำหรับ training หรือไม่; ถูก retain นานแค่ไหนและโดยใคร; ถูก process และ store ที่ไหน; และทั้งหมดนั้นจะเกิดอะไรขึ้นถ้าผมใช้ reseller, gateway หรือ aggregator แทนที่จะใช้ provider โดยตรง ข้อสุดท้ายนี่แหละที่ surprise ส่วนใหญ่อยู่ และไม่มี benchmark ใดบอกคุณได้

ตอนนี้คุณมีเครื่องมือแล้ว: golden set ที่คุณเป็นเจ้าของ ช่วงบนทุกตัวเลข paired test สำหรับทุก comparison, pass^k สำหรับ runs ที่คุณไม่ให้ใครดู judge ที่วัดแล้ว และ probe สำหรับดูว่า public score มีความหมายหรือไม่ claim ปิดท้ายของบทที่ 23 ตอนนี้ตรวจสอบได้แทนที่จะ assert — harness ทำให้ agent อยู่ภายใต้การกำกับได้ ไม่ได้ทำให้ถูกต้อง — และการตรวจสอบนั้นใช้สองร้อยรันกับแปดนาที

มี property หนึ่งของ agent ที่ทั้งหมดนี้วัดไม่ได้ และมันคือสิ่งที่ทำให้คนถูกไล่ออก

ทุก task ใน golden set ของบทนี้ถูกเขียนโดยผม และทุกไฟล์ที่ agent อ่านก็ถูกเขียนโดยผม ไม่มีอะไรในไดเรกทอรีนั้นพยายามทำอะไร เปลี่ยนหนึ่งบรรทัดในไฟล์หนึ่งที่ agent ถูกสั่งให้อ่าน — บรรทัดที่ลงท้ายด้วย instruction ที่ส่งถึงอะไรก็ตามที่จะอ่านมันถัดไป — แล้ว agent ที่ได้คะแนน 26 % จะทำตามมันด้วย tools เดิม permissions เดิม และ trace ที่สะอาดเหมือนเดิม และตัวเลขทุกตัวในบทนี้จะอยู่ที่เดิมเป๊ะ evaluation suite วัดว่าระบบไปถึงเป้าหมายของคุณบ่อยแค่ไหน มันไม่ได้วัดว่าคนอื่นสามารถแทนที่เป้าหมายของเขาได้ง่ายแค่ไหน

บทที่ 30 คือเรื่องนั้น: prompt injection, lethal trifecta ของ private data, untrusted content และ external communication และต้นทุนของการให้ permissions จริงแก่ agent มันเปิดด้วยข้อสังเกตที่บทนี้หลบมาตลอด — ว่า passing score เดียวกันเข้ากันได้กับ agent ที่ทำสิ่งที่ attacker เขียนไว้ในไฟล์ที่มันถูกสั่งให้อ่านทุกประการ


ตัวเลขทั้งหมดข้างบนถูกสร้างบนเครื่องเดียว และไม่มีส่วนใดแตะ paid endpoint agent คือ loop ของบทที่ 23 โดยใช้สองในสี่ tools บนไดเรกทอรีห้าไฟล์ โมเดลหลัง port คือ Qwen/Qwen2.5-0.5B-Instruct เปิดผ่าน server ขนาดเล็กที่มีรูปร่างเหมือน chat completions endpoint ตามบทที่ 23 ทุกประการ แต่ใช้ half precision บน consumer GPU หนึ่งตัว แทน CPU ของบทนั้น ต้นทุนใช้ rates ของ บทที่ 16 — $2.00 ต่อหนึ่งล้าน input tokens และ $12.00 ต่อหนึ่งล้าน output — นำไปใช้กับ token counts ที่วัดได้ repeated runs ใช้ temperature 0.7 พร้อม fixed seeds เพื่อให้ทั้งชุด reproduce ได้; ตาราง four-arm เป็น greedy intervals เป็น Wilson ที่ 95 %, paired comparisons เป็น two-sided exact sign tests บน discordant pairs; Wilson interval เป็นของบทที่ 4 และ exact paired sign test เป็นของบทที่ 15 ทั้งคู่ reuse โดยไม่เปลี่ยน human labels เป็นของผม ใช้กับคำตอบหกสิบชุดตามกฎที่เขียนไว้และ quote ในข้อความ อ่าน magnitude ทุกตัวตรงนี้เป็น property ของโมเดลครึ่งพันล้าน parameters และอ่าน method ทุกอย่างว่า transferable: โมเดลที่ใหญ่ขึ้นจะยกตัวเลขทั้งหมดขึ้น แต่ไม่ย้ายเครื่องมือใด ๆ

  1. OpenAI, A practical guide to building agents (PDF), page 8, อ่านเมื่อ 7 กันยายน 2026 แหล่งที่มาของการจัดลำดับสามขั้นที่ quote ข้างบน และคำแนะนำที่มาคู่กันว่า “build your agent prototype with the most capable model for every task to establish a performance baseline. From there, try swapping in smaller models to see if they still achieve acceptable results.” บทที่ 22 และ 25 quote หน้านิยามและ orchestration ของมัน

  2. Schaeffer, R., Miranda, B. and Koyejo, S. Are Emergent Abilities of Large Language Models a Mirage? arXiv:2304.15004 (2023). ข้อโต้แย้งว่า metrics แบบ discontinuous และ all-or-nothing สร้าง jumps ที่ดูเหมือนเกิดขึ้นทันทีจาก underlying improvements ที่เรียบ โดยมี BIG-Bench audit ที่ cite ในบทที่ 10 คำเตือนของพวกเขาเองควรพูดซ้ำ: ไม่มีอะไรใน paper ที่ claim ว่า large models ไม่สามารถแสดง emergent abilities ได้

  3. Kalai, A. T., Nachum, O., Vempala, S. S. and Zhang, E. Why Language Models Hallucinate. arXiv:2509.04664 (2025). ข้อโต้แย้งว่า benchmarks ที่ให้คะแนนถูกหรือผิดให้รางวัลการเดามากกว่า abstention และ remedy ที่เสนอคือ “modifying the scoring of existing benchmarks that are misaligned but dominate leaderboards, rather than introducing additional hallucination evaluations” บทที่ 19 cite จากฝั่ง retrieval; นี่คือฝั่ง evaluation ของ claim เดียวกัน

  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 ที่นิยามตาม quote ข้างบน พร้อม estimators ทั้งสองพิมพ์เคียงกันใน paper; headline ใน abstract คือ state-of-the-art function-calling agents “succeed on <50 % of the tasks, and are quite inconsistent (pass^8 <25 % in retail)” และ section 1 ให้ตัวเลข gpt-4o ≈61 % pass^1 และ ≈25 % pass^8 บน τ-retail estimator 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). แหล่งที่มาของ biases สามชื่อ ของนิยาม consistency ที่ใช้ข้างบน (“the percentage of cases where a judge gives consistent results when swapping the order of two assistants”) ของข้อค้นพบว่า “only GPT-4 outputs consistent results in more than 60 % of cases” โดย 65.0 % เพิ่มเป็น 77.5 % ด้วย few-shot และของ mitigation แบบ swap-and-require-agreement ที่ quote verbatim ผลลัพธ์เชิงบวกของมันก็สำคัญเช่นกัน: GPT-4 judges มี “an agreement rate exceeding 80 %” กับ human evaluations, “the same level of human-human agreement” — ซึ่งเป็นเหตุผลที่ควรใช้ judge เลย และเป็นเหตุผลที่ต้องวัดของคุณ 2 3

  6. EleutherAI, Language Model Evaluation Harness, project README อ่านเมื่อ 7 กันยายน 2026: “over 60 standard academic benchmarks for LLMs, with hundreds of subtasks and variants implemented” และ “the backend for Hugging Face's popular Open LLM Leaderboard” invocation lm_eval ที่ quote ข้างบนเป็น example ของ README เอง Liang, P. et al., Holistic Evaluation of Language Models, arXiv:2211.09110 (2022), คือ standard runner อีกตัวและเป็นงานที่อ่านดีกว่าเรื่อง evaluation design

  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 tasks; claim ใน abstract ว่าโมเดล GPT-3 ที่ใหญ่ที่สุด “improves over random chance by almost 20 percentage points on average” เป็นตัวเตือนที่ดีว่า saturation ของ benchmark นี้เพิ่งเกิดขึ้นไม่นาน

  8. 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 พร้อมตัวเลข coverage ที่ quote ข้างบน เหตุผลที่ควรอ่านคือ framing: การเลือกว่าจะรายงานหนึ่งในเจ็ดตัวใดก็เป็น choice เช่นกัน 2

  9. Chiang, W.-L. et al. Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. arXiv:2403.04132 (2024). มากกว่า 240K votes ณ เวลาที่เขียน crowdsourced pairwise preference และ claim ว่า “the crowdsourced human votes are in good agreement with those of expert raters”

  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 problems จาก 12 Python repositories ให้คะแนนด้วย tests ของ repositories เอง โดยโมเดลที่ดีที่สุดในเวลานั้นแก้ได้ “a mere 1.96 %” บทที่ 23 ใช้มันสำหรับความหมายอีกแบบของคำว่า “harness”

  11. Zhou, S. et al. WebArena: A Realistic Web Environment for Building Autonomous Agents. arXiv:2307.13854 (2023). เว็บไซต์ที่ใช้งานได้จริงในสี่ domains โดย best 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 tasks บน operating systems จริง; มนุษย์เกิน 72.36 %, best model 12.24 %, โดย GUI grounding ถูกระบุเป็น gap หลัก

  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 questions มนุษย์ได้ 92 % เทียบกับ 15 % สำหรับ GPT-4 พร้อม plugins — เป็น published statement ที่สะอาดที่สุดของช่องว่างระหว่างสิ่งที่ง่ายสำหรับคนกับสิ่งที่ง่ายสำหรับ assistant

  14. Liu, X. et al. AgentBench: Evaluating LLMs as Agents. arXiv:2308.03688 (2023). แปด environments ที่แตกต่าง และ disparity สำคัญระหว่าง top commercial models กับ open-source ones ที่มีขนาดใกล้เคียงกัน

  15. Andriushchenko, M. et al. AgentHarm: A Benchmark for Measuring Harmfulness of LLM Agents. arXiv:2410.09024 (2024). 110 malicious agent tasks แบบชัดเจน (440 พร้อม augmentations) ใน 11 harm categories พร้อมข้อค้นพบว่า leading models “surprisingly compliant with malicious agent requests without jailbreaking” และ simple universal jailbreak templates transfer ไปยัง agents ขณะยังรักษา capabilities ไว้ได้ มันคือสะพานไปบทที่ 30: capability benchmark และ harm benchmark วัดระบบเดียวกันและไม่เห็นตรงกันว่ามันพร้อมหรือไม่

  16. Anthropic, Is my data used for model training?, privacy.claude.com, อ่านเมื่อ 7 กันยายน 2026 quote verbatim ข้างบน รวมถึง feedback exception และ five-year storage window สำหรับ submitted feedback

  17. OpenAI, Your data (API data controls documentation), developers.openai.com, อ่านเมื่อ 7 กันยายน 2026 แหล่งที่มาของ default no-training statement, thirty-day abuse-monitoring retention, คำอธิบาย Zero Data Retention และรายชื่อ eligible endpoints รวมถึง data residency regions


สร้างโดย

David Vicente Campos

ผู้ก่อตั้ง NeuraLIA Labs และผู้ร่วมก่อตั้ง MyRealFood

ผมเป็นวิศวกรคอมพิวเตอร์ที่จบจากมหาวิทยาลัยเลออน ผมร่วมก่อตั้ง MyRealFood ที่ที่ผมในฐานะ CTO ได้สร้างแอปซึ่งผู้คนหลายล้านคนใช้เพื่อกินให้ดีขึ้น และผมก่อตั้ง NeuraLIA Labs ที่ที่ผมสร้างผลิตภัณฑ์ AI ที่นี่ผมเขียนถึงสิ่งที่ผมต้องทำความเข้าใจระหว่างทาง ในแบบที่ผมเคยหวังว่าจะมีใครสักคนอธิบายให้ผมฟัง

เพิ่มเติมเกี่ยวกับผู้เขียน

เผยแพร่โดย NeuraLIA Labs

รับโพสต์ใหม่ในกล่องจดหมาย

ข่าว AI คู่มือ และอัปเดตผลิตภัณฑ์ — อีเมลสั้น ๆ เมื่อเรามีสิ่งที่คุ้มเวลาของคุณ

ชอบแบบข้อความมากกว่าไหม รับเนื้อหาเดียวกันได้ที่นี่:คอมมูนิตี้ WhatsApp (เปิดในแท็บใหม่)ช่อง Telegram (เปิดในแท็บใหม่)

ดัชนีคอร์ส

Abstract software decision engine with branching paths, probability nodes, and glowing gates.
jevอ่าน 5 นาที

โมเดล AI Jev สร้างมาเพื่อการตัดสินใจ ไม่ใช่การเขียนความเรียง

Jev ของ TypeSafe AI กำลังได้รับความสนใจ เพราะมองความฉลาดของซอฟต์แวร์เป็นปัญหาความน่าจะเป็น: เลือกกิ่งที่ถูกต้อง แนบความมั่นใจ และหลีกเลี่ยงการจ่ายเงินให้ LLM เขียนข้อความเมื่อโค้ดต้องการการตัดสินใจ

Abstract legal research workspace with documents, search nodes and governance controls.
openaiอ่าน 4 นาที

Astra for Law ของ OpenAI คือระบบ AI ด้านกฎหมาย ไม่ใช่โมเดลใหม่

การเปิดตัวด้านกฎหมายของ OpenAI ไม่ได้เน้นโมเดลฐานรากใหม่เท่ากับระบบที่ล้อมรอบโมเดลนั้น: การค้นคืนเฉพาะโดเมน เครื่องมือที่เชื่อถือได้ สิทธิ์ เบนช์มาร์ก และเส้นทางการตรวจทาน

Abstract agent runtime sorting documents, memory blocks and pointer nodes inside a bounded context frame.
context-engineeringอ่าน 4 นาที

วิศวกรรมบริบทสำหรับเอเจนต์ AI ที่ทำงานระยะยาว

เอเจนต์ที่ทำงานต่อเนื่องไม่ได้ล้มเหลวเพียงเพราะหน้าต่างบริบทเล็กเกินไป แต่ล้มเหลวเมื่อไฟล์ ผลลัพธ์จากเครื่องมือ และประวัติที่ค้างเก่าบดบังงานที่เอเจนต์ควรทำให้เสร็จ

พร้อมให้ LIA เลือกโมเดลให้แล้วหรือยัง?

สร้างงานด้วยโมเดล AI ทุกตัวในที่เดียว เริ่มฟรีวันนี้