olivlawolivlaw

Din cărți

Modelele AI și agenții se selectează exact ca oamenii: pe întrebări viitoare, fără răspuns cunoscut, cu un istoric scorat per sursă, comparat cu o referință naivă prin scorul de abilitate Brier — iar cine nu bate referința pe un istoric suficient iese din ansamblu, oricât de sofisticat ar fi.

Ezra Karger, Philip E. Tetlock et al. · ForecastBench: A Dynamic Benchmark of AI Forecasting Capabilities · 2025 · Karger, Bastani, Yueh-Han, Jacobs, Halawi, Zhang & Tetlock, «ForecastBench: A Dynamic Benchmark of AI Forecasting Capabilities», arXiv:2409.19839, versiunea 5 (28 februarie 2025), Abstract3 minute de citit
„Pentru a evita orice posibilitate de scurgere de date, ForecastBench cuprinde exclusiv întrebări despre evenimente viitoare care nu au un răspuns cunoscut la momentul trimiterii.”Ezra Karger, Philip E. Tetlock et al. · ForecastBench: A Dynamic Benchmark of AI Forecasting Capabilities · 2025 · Karger, Bastani, Yueh-Han, Jacobs, Halawi, Zhang & Tetlock, «ForecastBench: A Dynamic Benchmark of AI Forecasting Capabilities», arXiv:2409.19839, versiunea 5 (28 februarie 2025), Abstract

Fiecare model își câștigă locul în ansamblu prin scorul de abilitate pe întrebări viitoare, nu prin reputație sau prin teste pe întrebări deja rezolvate.

Regulile lecțiilor 13–17 se aplică neschimbate modelelor AI și agenților. Fiecare sursă — model, agent, om — are istoricul ei pe întrebări rezolvate. Comparația se face cu o referință naivă: pentru întrebări binare, climatologia (rata de bază spusă mereu), pentru serii, mersul aleator. Scorul de abilitate Brier e 1 minus raportul dintre scorul sursei și scorul referinței: pozitiv înseamnă că bate referința, negativ că ar fi mai bine să spui mereu rata de bază. Iar selecția are nevoie de prag minim și interval de încredere, ca la oameni. Capcana specifică modelelor e scurgerea: un model testat pe întrebări deja rezolvate poate «ști» răspunsul din datele de antrenament. De aceea ForecastBench folosește doar întrebări fără răspuns la momentul trimiterii. În lucrarea din 2025, experții umani au bătut cel mai bun model (p sub 0,001). În clasamentul din 30 septembrie 2026, cel mai bun sistem cu schelă proprie are indicele Brier 69,1, iar mediana superprognozatorilor 68,8 (mai mare e mai bine), diferență nesemnificativă (p = 0,63); fără schelă, cel mai bun model are 62,0, iar superprognozatorii 67,7. Metaculus scrie, în iunie 2026, că afirmațiile despre roboți egali cu cei mai buni oameni se sprijină pe teste pe întrebări deja rezolvate. În motorul olivLaw, Prophet a pierdut în testul retrospectiv contra naivului pe toate cele cinci active principale — la aur, eroare procentuală medie de 17,6% față de 3,0% — și totuși rămâne în ansamblul pentru acțiunile BVB, cu pondere fixă.

Exemplu aplicat: Ana face selecția modelelor ca pe a oamenilor. Biroul are trei «prognozatori» automați care au răspuns la aceleași 40 de întrebări binare, rezolvate între timp: un agent AI cu căutare pe știri, simularea Monte Carlo și o referință de climatologie. Douăsprezece din 40 de evenimente s-au produs, deci rata de bază e 0,30. Scorul e forma binară pe o față, de la 0 la 1.

sursa                    Brier    abilitate = 1 − Brier / 0,21
climatologie (0,30)      0,210     0,000
agent AI                 0,180    +0,143
Monte Carlo              0,230    −0,095

Pasul 1 — referința. Climatologia spune mereu 0,30: Brier = 0,3 × (1 − 0,3)² + 0,7 × 0,3² = 0,147 + 0,063 = 0,21. Atenție: calculată pe aceleași 40 de întrebări, rata de bază e cunoscută doar după fapt; o referință cinstită folosește rata cunoscută la momentul prognozei, iar aceasta e de obicei puțin mai slabă.

Pasul 2 — abilitatea. Agentul: 1 − 0,18 / 0,21 ≈ 0,143. Monte Carlo: 1 − 0,23 / 0,21 ≈ −0,095 — mai slab decât a spune mereu 30%.

Pasul 3 — incertitudinea. Patruzeci de întrebări sunt puține. Ana calculează un interval bootstrap pe diferențele pe întrebare (lecția 17). Dacă intervalul abilității agentului include zero, agentul rămâne «în probă», nu «promovat».

Pasul 4 — decizia, pe cadranul lecției. Monte Carlo, cu abilitate negativă pe un istoric încă scurt, trece «în umbră»: continuă să prognozeze, scorul i se ține, dar prognozele lui nu mai intră în media publicată. Dacă după 100 de întrebări rămâne sub referință, e retras.

Aceeași logică pe serii continue: pentru aur, eroarea procentuală medie a lui Prophet a fost 17,6%, iar a mersului aleator naiv 3,0%. Abilitatea în termeni de eroare e 1 − 17,6 / 3,0 ≈ −4,87: Prophet greșește de aproape șase ori mai mult decât referința. Un astfel de model nu se «ajustează», se scoate.

În motorul olivLaw. Ce există: prognoza de piață pentru cele cinci active principale (funcțiile `_model_backtest` și `_naive_backtest`) compară la fiecare rulare modelul cu mersul aleator pe aceleași date și salvează beats_naive — singurul loc din motor unde un model e ținut de o referință. Ce lipsește: ansamblul din forecast_service (funcția `ensemble_forecast`) amestecă Prophet 0,45, ARIMA 0,25 și Holt-Winters 0,30 cu ponderi scrise în cod (DEFAULT_WEIGHTS), niciodată ajustate după istoric, iar `_run_forecasts_for_symbols` scrie toate modelele zilnic, inclusiv pe cel care a pierdut testul. De partea binară, forecast_resolution nu are o coloană care să spună ce model sau ce agent a dat probabilitatea, deci un clasament per sursă nu se poate scrie azi.

Propunerea (nu există încă): o coloană forecaster în forecast_resolution, completată la scriere de fiecare componentă, plus un clasament care calculează scorul de abilitate față de rata de bază pe aceleași rânduri și refuză sursele cu sub 25 de întrebări.

-- propunere: coloana forecaster nu există azi în forecast_resolution
WITH scored AS (
    SELECT forecaster, point_probability AS p, outcome::int AS o
    FROM forecast_resolution
    WHERE status = 'resolved' AND point_probability IS NOT NULL
),
base AS (
    SELECT avg(o) AS rate FROM scored
)
SELECT s.forecaster,
       count(*) AS n,
       round(avg((s.p - s.o) ^ 2)::numeric, 4) AS brier,
       round((1 - avg((s.p - s.o) ^ 2) / nullif(avg((b.rate - s.o) ^ 2), 0))::numeric, 3) AS skill
FROM scored s
CROSS JOIN base b
GROUP BY s.forecaster
HAVING count(*) >= 25
ORDER BY skill DESC;

Referința e calculată pe întrebările fiecărei surse, deci nimeni nu câștigă alegând întrebări cu rată de bază favorabilă. Regula de retragere se scrie în configurare, nu în cod: abilitate negativă cu limita superioară a intervalului bootstrap sub zero, pe ultimele 50 de întrebări, înseamnă ieșire din ansamblu. O probă în system_health ar număra componentele active cu abilitate negativă: ținta e zero.

De ce contează Un model care nu bate o referință naivă pe un istoric suficient adaugă zgomot ansamblului, oricât de convingătoare ar fi explicațiile lui.

Bate referința,istoric lung:Bate referința,istoric scurt:Sub referință,istoric scurt:Sub referință,istoric lung:
Două axe decid locul fiecărui model: scorul de abilitate și câte întrebări îl susțin.

← Vezi tot fluxul