Calcolatore pass@k
Dati di input
| Tasso di successo per campione | 40 % |
|---|---|
| Numero di campioni | 10 |
Calcolatore pass@k
Calcola pass@k per le valutazioni di codice e ragionamento: la probabilità che almeno uno fra k campioni indipendenti del modello risolva un problema, a partire dal tasso di successo per campione.
Dati di input
Campionamento
Risultati
Inserisci un valore per visualizzare i risultati.
Dettagli
pass@k
pass@k è il modo standard per valutare i modelli linguistici su compiti in cui una risposta candidata può essere controllata automaticamente — il caso più noto è la generazione di codice, dove ogni tentativo supera o no una suite di test. Invece di chiedersi se una singola risposta è corretta, pass@k chiede se uno qualsiasi di k tentativi è corretto. Questo calcolatore trasforma il tasso di successo per campione di un modello in pass@k, così che una singola accuratezza misurata possa essere proiettata a un numero qualsiasi di tentativi.
Che cosa misura pass@k
Per ciascun problema di un benchmark, il modello genera k soluzioni candidate indipendenti, e il problema è contato come risolto se almeno una candidata supera i test. pass@k è la frazione di problemi risolti secondo quella regola. pass@1 è l'ordinaria accuratezza al primo tentativo; pass@10 e pass@100 misurano con quale frequenza il modello sa raggiungere una risposta corretta avendo diversi tentativi. La metrica conta ogni volta che un verificatore esterno — una suite di test, un compilatore, un controllore di dimostrazioni — può riconoscere una risposta corretta fra molte candidate, perché allora i tentativi aggiuntivi si traducono direttamente in più problemi risolti.
La formula
Se ciascun campione riesce in modo indipendente con probabilità , allora un singolo campione fallisce con probabilità uno meno , e tutti i campioni falliscono con probabilità . pass@k è il complemento:
Pkqk=1−(1−p)k=(1−p)kdove è pass@k e è la probabilità che ogni tentativo fallisca. La probabilità di insuccesso totale si riduce geometricamente con , ed è per questo che anche un tasso per campione modesto sale verso la certezza con un numero sufficiente di tentativi.
Esempio svolto
Si supponga che un modello risolva un problema di codice nel 40% dei tentativi singoli, e che la valutazione consenta 10 campioni:
q10P10=(1−0,4)10=0,610≈0,0060=1−0,0060≈0,994=99,4%Un tasso per campione del 40% diventa un pass@10 di circa il 99%. Il salto illustra perché le cifre di pass@k salgono così rapidamente con k, e perché le tabelle dei benchmark riportano diversi valori di k affiancati — la forma di quella curva dice più su un modello di qualunque singolo punto.
Come si misura
Stimare pass@k estraendo esattamente k campioni è rumoroso. Benchmark come HumanEval estraggono invece un insieme più ampio di campioni, contano i che riescono e usano lo stimatore non distorto , mediando su ogni modo di scegliere degli campioni. La forma di indipendenza usata qui coincide con quello stimatore quando è preso come , ed è lo strumento giusto per proiettare un tasso di successo noto a un budget di tentativi scelto. La forma presuppone un successo uguale e indipendente tra i campioni; a temperatura molto bassa i campioni diventano quasi identici e aggiungerne aiuta poco. Per pianificare quanti problemi serve una valutazione per una stima stabile, si veda l'Calcolatore della dimensione del campione per la valutazione LLM.
Domande frequenti (FAQ)
Che cos'è pass@k?
pass@k è la metrica standard per la generazione di codice e per altre valutazioni che campionano e controllano. Per ciascun problema il modello genera k soluzioni candidate, e il problema è contato come risolto se almeno una candidata supera i test. pass@k è la frazione di problemi risolti secondo quella regola.
pass@1 riflette l'accuratezza al primo tentativo, mentre pass@10 o pass@100 misurano con quale frequenza il modello sa risolvere un problema avendo diversi tentativi — rilevante quando un verificatore esterno, come una suite di test o un controllore, può individuare una risposta corretta fra molte.
La formula presuppone che i campioni siano indipendenti?
Sì. L'espressione uno meno (uno meno p) elevato alla k presuppone che ciascuno dei k campioni riesca in modo indipendente con la stessa probabilità p. Ciò vale bene quando i campioni sono estratti a una temperatura non nulla, così da variare.
Si scompone a temperatura molto bassa, dove i campioni sono quasi identici ed estrarne di più aggiunge poco, e quando la difficoltà del problema varia, così che un singolo p medio nasconde un misto di casi facili e difficili. Per proiettare un tasso misurato a un k diverso, la forma di indipendenza è una buona prima approssimazione.
Come si misura pass@k in pratica?
Stimare pass@k estraendo letteralmente k campioni è rumoroso. Benchmark come HumanEval estraggono invece un numero maggiore n di campioni, contano i c che riescono e usano lo stimatore non distorto pass@k = 1 − C(n−c, k) / C(n, k), dove C è il coefficiente binomiale. Ciò media su tutti i modi di scegliere k degli n campioni e dà una cifra molto più stabile.
Questo calcolatore usa la forma di indipendenza, più semplice, che coincide con lo stimatore quando p è preso come c/n ed è ideale per proiettare un tasso di successo noto a un budget di tentativi scelto.
Avvertenze legali
La forma di indipendenza presuppone una probabilità di successo per campione uguale e indipendente. I campioni reali sono correlati a bassa temperatura e la difficoltà varia tra i problemi, perciò il pass@k misurato può differire. Usare un ampio insieme di campioni e lo stimatore non distorto quando si riportano risultati di benchmark.