File size: 1,133 Bytes
96b0b63
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env python3
"""Prueft die Ausfuehrmechanik gegen die Referenzloesungen der Datensaetze.

HumanEval+ und MBPP+ liefern ihre kanonische Loesung mit. Wenn die durch
meine Pruefroutine faellt, liegt es an der Routine, nicht am Modell — und
jede Prozentzahl aus so einem Lauf waere Unsinn.
"""
import json
import sys
sys.path.insert(0, "/mnt/models/qwen38-prep")
import bench_humaneval as B

for satz, n in (("humanevalplus", 25), ("mbppplus", 25)):
    aufgaben = B.lade(satz, n)
    ok_n, fehler = 0, []
    for a in aufgaben:
        if satz.startswith("humaneval"):
            # Kanonisch ist nur der Rumpf; der Kopf steht im prompt.
            loesung = a["prompt"] + a["canonical_solution"]
        else:
            loesung = a["code"]
        ok, grund = B.pruefe(satz, a, loesung)
        ok_n += ok
        if not ok:
            fehler.append((a["task_id"], grund))
    print(f"\n=== {satz}: {ok_n}/{len(aufgaben)} Referenzloesungen bestehen ===")
    for t, g in fehler[:8]:
        print(f"  {t}: {g}")
    if ok_n < len(aufgaben):
        print(f"  -> Pruefmechanik greift bei {len(fehler)} Aufgaben nicht.")