Guías
Reglas de comparación
Comparar un candidato con una línea base muestra el flujo de trabajo. Esta página es la referencia de las reglas con las que se decide una comparación: qué tipos existen, qué pregunta cada uno, en qué se mide un margen y qué modifica el intervalo a partir del cual se leen.
Tres tipos
Una regla de comparación indica un kind y una métrica. Nunca admite min ni max: una diferencia no se infiere a partir de un umbral.
| Tipo | Pregunta | Admite |
|---|---|---|
| superiority | ¿Es el candidato mejor que la línea base? | ningún margen |
| non_inferiority | ¿Es el candidato no peor que la línea base en más que el margen? | margin y, opcionalmente, direction |
| equivalence | ¿Está el candidato dentro del margen de la línea base, en ambas direcciones? | margin |
Un margen se expresa en las unidades propias de la métrica. Para una tasa, 0.05 son cinco puntos porcentuales; para un cuantil de latencia, 5 son cinco milisegundos.
version: 1
rules:
- id: not-worse
kind: non_inferiority
metric: exact_label
margin: 0.05
- id: same-quality
kind: equivalence
metric: exact_label
margin: 0.05
- id: better
kind: superiority
metric: exact_label
- id: not-slower
kind: non_inferiority
metric: latency_p50
direction: max
margin: 5Las reglas de comparación viven en su propio archivo, que se pasa con --policy, porque release.yaml decide sobre una sola ejecución, y una regla de umbral y una regla de comparación leen evidencia distinta.
oloproof compare CANDIDATE_RUN_ID BASELINE_RUN_ID --policy compare.yamlLas mismas reglas frente a dos candidatos
Doscientas preguntas etiquetadas. La línea base etiqueta mal veinte de ellas. Cada candidato siguiente se ejecutó sobre la misma suite y se comparó con esa línea base usando el archivo anterior.
Un candidato que se comporta exactamente como la línea base:
Comparison sha256:7d2396c475b94028925930d4e52ae070d9a216a4558e22646169db492757c4de of run_01M3C44TVGT0X067W2H0BZ6GC9 against run_01M3C44SWMXMSQJE17SYHV87PW · 200 paired cases
exact_label: +0.0 points [-2.7, +2.7] · 200 paired · 0 missing · 0 excluded
latency_p50: -0.067 ms [-0.113, -0.001] ms · p50 of per-case differences · 200 paired · 0 missing
Decisions
not-worse exact_label non-inferiority, margin 5.0 points PASS lower_bound_above_margin
same-quality exact_label equivalence, margin ±5.0 points PASS interval_within_margins
better exact_label superiority INSUFFICIENT_EVIDENCE interval_overlaps_zero
not-slower latency_p50 maximum increase 5 ms PASS lower_bound_above_margin
Gate: BLOCK (exit 3)Un candidato que corrige esas veinte:
Comparison sha256:1e36f48662cbbc0af20217a2c69248f90b473bbf0873dc6dd222ccb1895bb33a of run_01M3C44VQ0TFFNW4FRM5Z2D12R against run_01M3C44SWMXMSQJE17SYHV87PW · 200 paired cases
exact_label: +10.0 points [+4.6, +17.9] · 200 paired · 0 missing · 0 excluded
latency_p50: -0.038 ms [-0.089, +0.009] ms · p50 of per-case differences · 200 paired · 0 missing
Decisions
not-worse exact_label non-inferiority, margin 5.0 points PASS lower_bound_above_margin
same-quality exact_label equivalence, margin ±5.0 points INSUFFICIENT_EVIDENCE interval_overlaps_margins
better exact_label superiority PASS difference_above_zero
not-slower latency_p50 maximum increase 5 ms PASS lower_bound_above_margin
Gate: BLOCK (exit 3)Lea los dos gates juntos. Ambos bloquean, por razones opuestas. El primer candidato queda establecido como equivalente y no queda establecido como mejor; el segundo queda establecido como mejor y, por tanto, no queda establecido como equivalente. Una política que mantiene los tres tipos para una misma métrica plantea dos preguntas incompatibles, y una de ellas siempre quedará sin respuesta. Elija la regla que exprese la afirmación que usted hace.
Dirección
non_inferiority usa por defecto direction: min: más alto es mejor, y la regla exige que el candidato no caiga más del margen por debajo de la línea base. direction: max es para métricas en las que más bajo es mejor, como la latencia, los tokens o el coste. La regla se lee entonces como un tope a un aumento, que es como la imprime la terminal: maximum increase 5 ms.
superiority y equivalence no admiten dirección. La equivalencia ya acota ambos lados, y la superioridad pregunta si la diferencia está por encima de cero en el sentido propio de la métrica.
Qué modifica el intervalo
Una comparación es emparejada: el resultado de cada caso en el candidato se contrasta con su propio resultado en la línea base. Dos factores ensanchan el intervalo resultante, y ninguno de ellos es el cambio que usted hizo.
Casos faltantes en cualquiera de los lados
Un caso que dio error en cualquiera de las dos ejecuciones falta en el par, y se acota en lugar de descartarse: el intervalo admite que cada caso faltante haya ido en cualquier sentido. Una suite más pequeña, con un criterio llamado ok: las mismas cuatro discrepancias sobre treinta y cuatro casos emparejados, primero sin casos faltantes y luego con otros cuatro que dieron error en ambas ejecuciones:
ok: +11.8 points [-7.2, +34.3] · 34 paired · 0 missing · 0 excludedok: +11.8 points [-24.8, +44.7] · 34 paired · 4 missing · 0 excludedLa estimación es la misma, porque se calcula a partir de los casos observados en ambos lados. El intervalo no, porque cuatro casos que nadie vio podrían haber movido cada uno la diferencia en un caso completo. Corrija los errores antes de añadir casos: más casos con la misma tasa de error no cierran la brecha.
Una diferencia de ranking emparejada, como el ROC-AUC entre dos versiones de un modelo, no puede acotar las filas faltantes de esta manera: compara las filas que ambos lados puntuaron. Una regla sobre ella indica missingness_unbounded hasta que declara max_missing_fraction, la proporción de filas faltantes que acepta como faltantes al azar.
El método
El intervalo por defecto para una diferencia de tasas es un intervalo de media acotada sobre las diferencias por caso. Una política puede indicar en su lugar el método exacto condicional:
version: 1
difference_method: conditional_exact_paired_difference@1
rules:
- {id: not-worse, metric: exact_label, kind: non_inferiority, margin: 0.05}El candidato anterior, que es diez puntos mejor, da [+4.6, +17.9] con el método por defecto y esto con el método exacto:
exact_label: +10.0 points [+3.5, +15.8] · 200 paired · 0 missing · 0 excludedNinguno es uniformemente más estrecho, por eso el método se elige en la política, antes de leer ninguna evidencia, y nunca lo elige el motor a partir de los datos. Se aplica solo a diferencias de tasas.
Cuando una regla no puede decidir
Una regla de comparación en INSUFFICIENT_EVIDENCE puede llevar debajo una línea que indica qué la decidiría. La comparación de treinta y cuatro casos sin nada faltante:
Decisions
not-worse ok non-inferiority, margin 5.0 points INSUFFICIENT_EVIDENCE interval_overlaps_margin
about 5 more paired cases would decide it, if the difference holds (39 in total at 12% discordance)
Gate: BLOCK (exit 3)Esa estimación supone que la diferencia y la proporción de casos discordantes se mantienen a medida que llegan más casos. oloproof plan COMPARISON_ID imprime la misma línea con el tiempo que llevarían los casos adicionales.
Cuando faltan pares, no se ofrece ningún tamaño, porque los pares faltantes se acotan en su peor caso y más casos no los resolverían. La misma comparación con cuatro pares faltantes no imprime línea de recomendación, y el plan explica por qué:
oloproof plan COMPARISON_IDComparison sha256:22c1aa4fddc4e96ca77e0509ac9835c2a377ed237ca80556bbf1a54a172239bd: no sample size can be computed for a rule that did not decide.
not-worse: 4 missing pairs are bounded at their worst, and the advice does not size under missingness; resolve them and compare againY cuando la propia diferencia está en el lado equivocado del margen, más casos solo la confirmarían, así que la recomendación dice eso en su lugar:
overall ok non-inferiority, margin 5.0 points INSUFFICIENT_EVIDENCE interval_overlaps_margin
no sample size would make this PASS: the difference itself (-5.0 points) is outside the margin, so more cases would move it toward FAILSiguientes pasos
- Comparar un candidato con una línea base trata el flujo de trabajo y la primera lectura
de un intervalo.
- Casos agrupados trata las suites cuyos casos no son independientes, que una
comparación todavía no decide.
- Segmentos trata las reglas limitadas a una parte de la suite.