Studio sul motore · Backgame & contenimento

Insegnare a Open Sage a giocare i backgame

Come il motore Stage 11 alla base di Backgammon Sage Pro è stato costruito per gestire le posizioni che ogni bot gioca peggio — backgame, giochi di contenimento e lo snake — e che cosa dicono i benchmark al riguardo.

Sintesi

I motori di backgammon sono sempre stati più deboli nei giochi lenti e strutturali: i backgame, in cui un giocatore tiene due o più ancore in profondità nella tavola avversaria e aspetta un tiro; i giochi di contenimento, in cui un giocatore con la corsa persa cerca di tenere intrappolate una o due pedine colpite; e lo snake, un prime nella metà lontana della tavola che trattiene una sola pedina attardata mentre il resto dell'esercito avversario si sbriciola. Queste posizioni sono rare nel gioco ordinario e insolitamente lunghe quando si presentano, quindi sono appena rappresentate nei dati di gioco contro se stesso da cui un motore impara, e un motore che le ha viste a malapena le valuta estrapolando da posizioni che sembrano soltanto simili. Il motore Open Sage Stage 9 è stato addestrato su posizioni di backgame e a livelli di valutazione equivalenti ottiene punteggi migliori di eXtreme Gammon, ma in questi giochi il suo tasso di errore resta parecchie volte superiore a quello che ha altrove. Stage 11 affronta il problema di petto. Prima abbiamo costruito benchmark fatti di backgame, giochi di contenimento e snake, ciascuno valutato come Performance Rating rispetto a riferimenti di qualità rollout; poi abbiamo aggiunto al motore sei reti neurali, selezionate da un piccolo insieme di regole strutturali; poi abbiamo generato obiettivi di rollout per ognuna di esse; e infine abbiamo valutato il risultato su tutti i benchmark di cui disponiamo. Sul benchmark di contenimento Stage 11 riduce il PR a 3 ply da 6,89 a 3,58 e il numero di blunder da 156 a 53; sui dieci benchmark classici di backgame il suo PR a 1 ply scende da 4,75 a 2,98; e il suo gioco nelle partite illimitate e a Paskogammon — una variante giocata da una posizione iniziale personalizzata che porta a molti più backgame — è invariato o migliore.

01
Introduzione

I giochi che i motori sbagliano

I motori di backgammon a reti neurali imparano da milioni di partite giocate contro se stessi, e imparano ciò che quelle partite contengono. Backgame, giochi di contenimento e prime che trattengono una sola pedina attardata sono rari nel gioco ordinario e insolitamente lunghi quando si presentano, così un motore generalista ne vede pochi e li valuta estrapolando da posizioni che sembrano simili ma non lo sono. Il risultato è una debolezza ben nota: un motore che in una partita normale commette un errore ogni venti decisioni può commetterne uno ogni tre in un backgame profondo, e tende a sbagliare le stesse cose che sbaglia un giocatore umano di livello intermedio — quando tenere un'ancora e quando correre, quanto timing ha una posizione, e quando un prime va sciolto.

Il motore Open Sage Stage 9, che alimenta Backgammon Sage Pro, include già due reti addestrate specificamente su posizioni di backgame, e il nostro studio sulle prestazioni del bot mostra che a ogni livello equivalente valuta almeno quanto eXtreme Gammon. Ma essere forti rispetto agli altri bot non equivale a essere forti in termini assoluti. Misurato rispetto ai rollout, il tasso di errore di Stage 9 nei backgame è due o tre volte quello delle partite ordinarie, e nei giochi di contenimento e negli snake è peggiore ancora: sul benchmark snake qui sotto il suo Performance Rating a 1 ply supera 60, contro un valore di 2,6 nelle partite illimitate.

Stage 11 è progettato per eliminare queste debolezze senza toccare nient'altro. Il lavoro si è svolto in quattro passi. Primo, abbiamo costruito una famiglia di benchmark che misurano il gioco di backgame e di contenimento in diversi tipi di posizione — dieci tipi classici di backgame, una famiglia di contenimento, una famiglia di backgame massicci e una famiglia snake — ognuno un insieme di decisioni reali valutate rispetto a riferimenti di qualità rollout, così che Stage 9, Stage 11 e XG possano essere misurati sullo stesso piano. Secondo, abbiamo progettato il modello Stage 11: le diciassette reti di Stage 9 riprese senza modifiche, più sei nuove reti per le famiglie di backgame, e un algoritmo di instradamento che decide dalla struttura di una posizione quale rete la valuta. Terzo, abbiamo generato i dati di addestramento per ogni nuova rete — una miscela di posizioni raccolte dal gioco contro se stesso, posizioni sintetiche e corpora di rollout esistenti, tutte sottoposte a rollout per produrre gli obiettivi. Quarto, abbiamo addestrato le reti e valutato il motore finito su ogni benchmark di backgame e sui nostri benchmark di rollout PR per partite illimitate, match a 5 punti e Paskogammon (una variante giocata da una posizione iniziale personalizzata scelta per produrre molti backgame), per assicurarci che i guadagni nei backgame non costassero nulla altrove.

La versione breve dei risultati: Stage 11 è nettamente più forte ovunque le nuove reti entrino in gioco e identico a Stage 9 ovunque non lo facciano. Il suo PR a 3 ply sul benchmark di contenimento è circa la metà di quello di Stage 9, i suoi blunder lì calano di due terzi, il suo PR a 1 ply aggregato sui dieci backgame classici scende del 37%, ed è il primo motore Open Sage a fare progressi reali sullo snake. Il gioco nelle partite illimitate è invariato e quello a Paskogammon migliora. Il resto di questa pagina fornisce i dettagli.

02
Benchmark

Misurare il gioco nei backgame

Ogni benchmark qui segue la stessa ricetta del nostro benchmark di rollout PR per partite illimitate: un insieme di decisioni reali, ciascuna con una valutazione di riferimento di qualità rollout, rispetto alla quale un motore è valutato come Performance Rating — il suo errore medio di equity per decisione, moltiplicato per 500, la convenzione usata da XG. Un PR di 2 significa che il motore cede in media 0,004 punti per decisione; un PR di 60 significa 0,12 per decisione, cioè il territorio di un principiante.

Ciò che cambia è da dove vengono le decisioni. Ogni benchmark di backgame parte da un piccolo insieme di posizioni seme che definiscono la sua famiglia — le posizioni di riferimento mostrate nei caroselli qui sotto. Il motore gioca poi da quei semi partite illimitate contro se stesso, con il cubo, con Jacoby e beaver attivi, a 3 ply, e ogni decisione che si presenta mentre la posizione appartiene ancora alla famiglia viene registrata: una mossa di pedine conta quando ci sono almeno due mosse legali e una differenza di equity significativa tra loro, e una posizione di cubo conta quando la decisione di chi raddoppia non è banale o quando un raddoppio viene effettivamente offerto. I semi sono usati in un ciclo mescolato, chi muove per primo è deciso da una moneta, e tutto è una funzione pura di un unico seme casuale, così ogni benchmark si rigenera in modo identico.

Ogni decisione registrata viene poi sottoposta a rollout per produrre il suo riferimento: 5.184 percorsi per posizione giocati fino alla fine, con decisioni di pedine e di cubo a 3 ply per le prime tre semimosse e a 2 ply da lì in avanti, riduzione della varianza attiva, distribuiti su una flotta di worker nel cloud. Il riferimento di una decisione di pedine contiene l'equity da rollout di ogni candidata tenuta dal filtro del giocatore di riferimento; quello di una decisione di cubo contiene le equity di non raddoppio, raddoppio/take e raddoppio/pass. Una sottigliezza conta nel confronto tra motori: una candidata fuori dall'insieme del filtro del giocatore di riferimento è valutata solo alla precisione del filtro, il che penalizza in eccesso un motore le cui scelte differiscono da quelle del giocatore di riferimento. Abbiamo quindi eseguito passaggi di completamento delle candidate — sottoponendo a rollout, con la stessa convenzione, ogni mossa effettivamente scelta da Stage 9 o da Stage 11 a 1, 2 o 3 ply — così che ogni punteggio qui sotto sia calcolato rispetto a candidate di qualità rollout.

I dieci backgame classici

Un backgame prende il nome dai due punti che il suo proprietario tiene nella tavola interna avversaria: il backgame 2‑1 tiene il 2-punto e l'1-punto dell'avversario, il 5‑4 tiene il 5-punto e il 4-punto, e così via. Dieci tipi coprono le combinazioni utili. I semi di ogni cartella sono posizioni selezionate a mano da file di riferimento XG, e il suo benchmark contiene circa 1.000 decisioni — registrate solo finché le due ancore indicate sono ancora tenute e chi le tiene è indietro nella corsa — per un totale aggregato di 10.021 decisioni. Anche le posizioni seme di ogni cartella sono posizioni del benchmark, come decisioni di cubo. Seleziona un tipo per scorrere le sue posizioni seme; ogni scheda mostra l'analisi del cubo da rollout della posizione accanto alla tavola.

Giochi di contenimento

Un gioco di contenimento è definito da chi fugge, non da chi contiene: una parte ha portato fuori un certo numero di pedine e ha da una a tre pedine che sono state colpite e devono percorrere tutta la tavola per tornare a casa, mentre l'altra parte, con la corsa persa, dispone ciò che le resta — ancore, blot, un prime spezzato — per continuare a colpirle, giocando per salvare il gammon o, a volte, per vincere. Nulla è richiesto alla struttura di chi contiene. I 201 semi del benchmark provengono da posizioni che il motore aveva già incontrato (decisioni dei benchmark per partite illimitate e Paskogammon con il loro cubo, e righe delle pile di addestramento dei backgame), filtrate con quella regola, e le sue 3.197 posizioni — tra cui le decisioni di cubo dei semi stessi — sono registrate finché chi fugge ha ancora pedine intrappolate. Un secondo riferimento per un campione di 300 posizioni è stato sottoposto a rollout con Stage 11, anziché Stage 9, a giocare le prove, per verificare che la scelta del giocatore di prova non decida il confronto.

Backgame massicci

Un backgame massiccio tiene tre o più ancore nella tavola interna avversaria, oppure due ancore con sette o più pedine indietro: le posizioni profonde, guidate dal timing, in cui il giocatore di backgame ha impegnato gran parte dell'esercito. I 200 semi provengono dalle stesse fonti dei semi di contenimento, filtrati con quella regola e tenuti disgiunti dalle famiglie di contenimento e snake, e il benchmark contiene 2.199 posizioni.

Lo snake

Lo snake è un prime nella metà lontana della tavola che trattiene una sola pedina attardata: una sequenza di quattro o più punti consecutivi, ciascuno fatto con due o più pedine, interamente nella metà avversaria della tavola, che intrappola una pedina sulla barra o nella tavola interna di chi tiene il prime mentre le altre dieci o più pedine avversarie sono già ammassate a casa. È un gioco di prime più che un backgame, e una delle forme più difficili da giocare nel backgammon: chi tiene il prime deve farlo rotolare verso casa senza liberare la pedina attardata, e il momento in cui la libera decide la partita. Poiché la posizione è rara nel gioco, i 74 semi includono varianti sintetiche della forma classica (lunghezza e posizione del prime, posizione della pedina attardata, ripartizione dell'ammasso) accanto alle poche trovate nei dati esistenti; il benchmark contiene 1.073 posizioni.

Benchmark su partite complete

Tre benchmark misurano partite intere anziché una famiglia di posizioni, ed esistono per dimostrare che nulla è andato perduto: il rollout PR per partite illimitate (500 partite, 17.535 decisioni), il rollout PR per match a 5 punti (130 match, 18.292 decisioni, con il punteggio del match che attraversa ogni decisione di cubo) e il rollout PR per Paskogammon (2.556 decisioni, giocate dalla posizione di apertura sparpagliata del Paskogammon, che produce molti più backgame e giochi di contenimento del backgammon standard). Tutti e tre costruiscono i riferimenti in modo adattivo — 3 ply per le decisioni chiare, rollout troncati per quelle più vicine, rollout completi a 1.296 percorsi per le più vicine in assoluto — come descritto nello studio sulle prestazioni del bot.

Anche XG è stato valutato su questi benchmark. Non espone alcuna interfaccia programmatica, quindi ogni decisione del benchmark viene scritta come partita di una sola decisione e ripercorsa tramite la sua funzione Batch Analysis, una passata per livello di valutazione, esattamente come per i benchmark di partita illimitata e di match. Quei risultati si trovano sulla pagina prestazioni del bot, che confronta il motore con XG; le tabelle qui confrontano Stage 11 con lo Stage 9 che sostituisce.

03
Architettura

Il modello Stage 11

Stage 9 è un comitato di diciannove reti neurali: una per le corse pure, sedici selezionate dalla coppia di piani di gioco che le due parti stanno perseguendo (corsa, attacco, prime, ancoraggio), e due reti di backgame — una per il giocatore che tiene un backgame e una per l'avversario — usate quando la coppia di piani è ancoraggio contro corsa, la parte che ancora è indietro nella corsa e tiene due o più ancore nella tavola interna avversaria. Ogni rete è un singolo strato nascosto di 400 unità su 244 ingressi (100 unità su 196 ingressi per la rete di corsa), che produce cinque uscite: le probabilità di vincere, vincere un gammon, vincere un backgammon, perdere un gammon e perdere un backgammon.

Stage 11 mantiene le diciassette reti standard byte per byte e sostituisce le due reti di backgame con sei, per un comitato di ventitré:

#ReteRegione che valuta
0–16Le reti di corsa e di coppie di piani di Stage 9Tutto il resto, esattamente come in Stage 9
17Backgame profondoI backgame 2‑1, 3‑1 e 3‑2: entrambe le ancore sull'1-, 2- o 3-punto avversario
18Backgame intermedioI backgame 4‑1, 4‑2, 5‑1 e 5‑2: un'ancora sull'1- o 2-punto, una più in alto
19Doppia ancoraI backgame 4‑3, 5‑3 e 5‑4: due ancore, nessuna più profonda del 3-punto
20Contenimento inizialeUn giocatore di backgame che ha colpito un tiro mentre chi corre ha ancora al massimo due pedine fuori, in posizioni che il filtro delle coppie di piani affiderebbe altrimenti a una rete standard
21ContenimentoQualsiasi gioco di contenimento, qualunque cosa tenga chi contiene
22SnakeUn prime nella metà lontana che trattiene una pedina attardata contro una tavola ammassata

Due scelte progettuali contano più del numero. Le reti di backgame sono scelte dalla categoria del backgame — la stessa rete a prescindere da chi lo tiene — e non da chi lo tiene, così ognuna impara una sola struttura da entrambe le prospettive. E la rete per una mossa di pedine è scelta dalla posizione prima della mossa, così una sola rete valuta ogni candidata, comprese quelle che lasciano la sua regione (la mossa che rinuncia a un'ancora, o che scioglie il prime); è questo che rende coerenti le decisioni tra tenere e correre, ed è anche il motivo per cui i dati di addestramento di ogni rete devono includere le posizioni a cui quelle mosse di rilascio conducono.

L'algoritmo di instradamento è un breve elenco ordinato di test strutturali sulla posizione, in cui vince il primo che corrisponde:

  1. Corsa. Se il contatto è rotto, la rete di corsa pura.
  2. Snake. Se una delle due parti tiene una sequenza di almeno quattro punti fatti consecutivi nella metà avversaria della tavola, con una pedina avversaria sulla barra o nella tavola interna di chi tiene il prime dietro di essa e almeno dieci pedine avversarie già a casa: la rete snake.
  3. Contenimento. Se una delle due parti ha portato fuori almeno tre pedine e ha da una a tre pedine sulla barra o fuori dalla sua tavola interna che una pedina avversaria può ancora colpire: la rete di contenimento. Nulla è richiesto a chi contiene.
  4. Backgame. Se la coppia di piani è ancoraggio contro corsa, la parte che ancora è indietro nella corsa e tiene due o più ancore nella tavola interna avversaria (il test di Stage 9 stesso): la rete profonda, intermedia o a doppia ancora secondo la posizione delle ancore — con tre o più ancore, profonda quando almeno due stanno sull'1-, 2- o 3-punto, altrimenti intermedia.
  5. Contenimento iniziale. Se la parte che tiene due o più ancore ha colpito — una pedina avversaria si trova sulla barra o nella sua tavola interna — e chi corre ha al massimo due pedine fuori, ma la coppia di piani è cambiata al punto che la regola 4 non scatta (le pedine restanti di chi corre vengono lette come un prime, per esempio): la rete di contenimento iniziale.
  6. Altrimenti la rete di coppie di piani che Stage 9 avrebbe usato.

Poiché i test sono strutturali, la loro impronta può essere misurata su qualsiasi insieme di posizioni, ed è quell'impronta a limitare il rischio: sul benchmark per partite illimitate la regola di contenimento scatta sull'1,3% delle posizioni, la regola di contenimento iniziale sullo 0,6% e le regole di backgame sul 2,4%, mentre la regola snake non scatta mai; sul benchmark Paskogammon le cifre sono 2,6%, 20% e 25%. Il 95% di posizioni ordinarie che Stage 11 valuta in modo identico a Stage 9 è, per costruzione, invariato.

04
Addestramento

Dati e addestramento di ogni rete

Ogni nuova rete è stata addestrata come le reti di backgame di Stage 9: apprendimento supervisionato sulla GPU rispetto a obiettivi da rollout — le cinque probabilità che un rollout completo assegna a una posizione — con partenza a caldo da una rete esistente, conservando il checkpoint che ottiene il punteggio migliore su un decimo dei dati tenuto da parte. Ciò che cambia per ogni rete è da dove vengono le sue posizioni, e ogni risposta ci ha insegnato qualcosa.

Il trio dei backgame (reti 17–19)

Stage 9 e Stage 10 avevano già accumulato posizioni di backgame sottoposte a rollout — partite standard e partite di Paskogammon, circa 640.000 righe in tutto. Dividerle per categoria ha dato 245.000 righe di addestramento profonde, 167.000 intermedie e 94.000 a doppia ancora, con righe di benchmark tenute da parte e deduplicate rispetto a esse. Addestrato solo su quelle, il trio era migliore di Stage 9 dentro la sua regione e peggiore ai suoi margini: una rete che ha visto solo posizioni con entrambe le ancore tenute non ha idea di quanto valga la posizione una volta ceduta un'ancora, e poiché valuta ogni candidata di una decisione di backgame, tirava a indovinare — circa 0,3 punti troppo ottimista, il che spiegava più della metà del suo errore sui benchmark profondi. Il rimedio è stato raccogliere i discendenti di uscita: per ogni posizione di addestramento, le mosse legali che lasciano la categoria, sottoposte a rollout nell'orientamento in cui l'instradatore le valuta. Quarantamila per categoria, aggiunte all'insieme di addestramento, hanno eliminato quella modalità di errore. La partenza a caldo dalla rete di backgame di Stage 9 ha battuto sia una partenza casuale sia un avvio per differenze temporali.

Contenimento iniziale (rete 20)

Analizzare dove stava l'errore residuo del trio ha mostrato che era guidato dalla fase della partita più che dalle ancore tenute: cresceva man mano che chi corre rientrava, ed era peggiore subito dopo che chi tiene il backgame aveva colpito un tiro. Specialisti di fase addestrati sulle fette corrispondenti degli stessi dati non hanno battuto il trio dentro la sua regione — ma sulle posizioni di contenimento che il filtro delle coppie di piani rifiuta (il blocco residuo di chi corre viene letto come un prime, così Stage 9 affida la posizione a una rete standard), uno specialista di contenimento iniziale ha ridotto il PR a 1 ply da 4,90 a 3,69 e dimezzato i blunder. È addestrato a partire dalla rete profonda sulle righe di contenimento iniziale dei dati del trio e usato solo lì.

Contenimento (rete 21)

La regola di contenimento è nuova, quindi la sua regione non aveva quasi dati da rollout: circa l'1% delle pile esistenti. Abbiamo giocato 3.000 partite dai semi di contenimento con Stage 11 stesso, escludendo ogni posizione e candidata del benchmark in entrambi gli orientamenti, e tenuto le posizioni che soddisfacevano la regola — 35.266 tavole nuove, più 9.734 righe già sottoposte a rollout — e le abbiamo sottoposte a rollout a 1.296 percorsi con gioco a 3 ply. Una rete addestrata su quelle 45.000 righe era eccellente sul benchmark di contenimento e peggiore di Stage 9 sulle 237 posizioni di partite illimitate che la regola le instrada: sono posizioni di contenimento di partite ordinarie (un colpo tardivo durante il bear-off, una chiusura) che non comparivano mai nei dati della famiglia. Aggiungere le 291.000 righe del corpus generale di addestramento che soddisfano la stessa regola, con le righe della famiglia pesate quattro volte, ha riportato la fetta delle partite illimitate al livello di Stage 9 e ha reso la rete migliore anche sul benchmark della famiglia. È la lezione generale di questo lavoro: una rete specialista va addestrata sulla sua intera regione, mai sull'angolo di essa che il benchmark occupa.

Snake (rete 22)

Lo snake non aveva dati da nessuna parte — un centinaio di righe in un corpus di 1,8 milioni — e non poteva essere raccolto dal gioco contro se stesso: in queste posizioni il modello giocava così male da spezzare il prime o correre nel giro di una o due mosse, e 900 partite hanno prodotto a malapena due decisioni snake ciascuna. Così la regione è stata campionata direttamente. Cinquemila snake sintetici (lunghezza e posizione del prime, pedine di riserva distribuite dalla metà lontana fino a casa, un avversario ammassato con fino a cinque pedine fuori e da una a tre pedine attardate) hanno fatto da seme a brevi partite a 2 ply in cui chi tiene il prime preferiva le mosse che conservano la struttura, e ogni decisione ha contribuito con la sua posizione, le sue cinque migliori candidate e fino a tre candidate di rilascio — le mosse che la rete deve valutare correttamente per sapere quando lasciar andare. Ne sono uscite 98.000 tavole distinte, di cui 22.000 sottoposte a rollout a 648 percorsi con gioco a 3 ply; le partite snake sono così lunghe che un rollout costa sei volte quello di un contenimento. La rete si addestra in pochi minuti su quell'insieme, ed è la prima rete Open Sage con una qualche competenza nella regione: il suo errore a 1 ply rispetto agli obiettivi di addestramento è sceso da 0,30 a 0,054 punti.

ReteRighe di addestramentoFontePartenza a caldo
Backgame profondo245.000 + 40.000 uscitePile da rollout di Stage 9/10, divise per categoria; discendenti di uscita a un passoRete di backgame di Stage 9
Backgame intermedio167.000 + 40.000 uscitecome sopraRete di backgame di Stage 9
Doppia ancora94.000 + 40.000 uscitecome sopraRete di backgame di Stage 9
Contenimento inizialefetta di fase di quanto soprarighe di contenimento iniziale dei dati del trioRete di backgame profondo
Contenimento45.000 della famiglia + 291.000 generaliGioco contro se stesso dai semi di contenimento, sottoposto a rollout; le righe della regola nel corpus generaleRete prime-contro-corsa di Stage 9
Snake22,000Semi sintetici + gioco contro se stesso che conserva la struttura, sottoposti a rolloutRete prime-contro-corsa di Stage 9
05
Risultati

Stage 9 contro Stage 11

Ogni valore è un Performance Rating — più basso è meglio — alla valutazione 1-ply, 2-ply e 3-ply del motore stesso e ai suoi tre livelli di rollout troncato, 1T, 2T e 3T (le controparti di Roller, Roller+ e Roller++ di XG). Entrambi i motori sono valutati rispetto agli stessi riferimenti, con ogni scelta di ciascun motore valutata su rollout. XG è confrontato con il motore sulla pagina prestazioni del bot; su Paskogammon, dove entrambi i motori sono stati eseguiti a ogni livello, il confronto è qui sotto.

Benchmark su partite complete

Benchmark Decisioni 1-ply 2-ply 3-ply 1T · Roller 2T · Roller+ 3T · Roller++
S9S11XG S9S11XG S9S11XG S9S11XG S9S11XG S9S11XG
Partita illimitata17,5352.592.551.661.680.600.600.570.500.490.530.260.270.410.230.230.34
Match a 5 punti18,2922.262.221.301.270.570.560.540.490.470.510.260.260.440.220.230.36
Paskogammon2,5567.746.145.424.574.383.462.282.972.671.652.632.211.462.441.470.881.92
S9 Stage 9 · S11 Stage 11 · XG eXtreme Gammon Performance Rating rispetto allo stesso riferimento; più basso è meglio, il migliore dei tre è evidenziato non eseguito a quel livello
Rispetto a cosa viene valutato ogni motore. Ogni decisione porta con sé un rollout completo — migliaia di partite giocate fino in fondo a partire dalla posizione — e l'errore addebitato a un motore è la differenza tra la mossa migliore del rollout e quella che ha scelto. Un rollout è a sua volta giocato da un motore e, su una decisione in cui due motori preferiscono mosse diverse, quella scelta può determinare quale mossa il rollout consideri migliore; perciò quelle decisioni vengono giocate dal motore più forte disponibile per quel tipo di posizione. La scelta di ogni motore viene forzata nell'insieme di mosse che il rollout valuta, così nessuna risposta è valutata in modo più grossolano di un'altra e tutte sono misurate rispetto allo stesso riferimento.

I dieci backgame classici

Backgame Decisioni 1-ply 2-ply 3-ply 1T · Roller 2T · Roller+ 3T · Roller++
S9S11XG S9S11XG S9S11XG S9S11XG S9S11XG S9S11XG
2‑11,0006.593.574.512.262.842.701.011.642.030.611.671.720.410.981.080.380.93
3‑11,0014.443.282.772.222.220.930.880.950.920.660.910.660.340.590.530.320.48
3‑21,0084.223.312.472.072.391.090.911.311.400.650.950.750.440.610.740.250.51
4‑11,0013.702.741.761.771.830.850.780.821.180.550.690.520.240.470.560.190.45
4‑21,0004.163.252.202.161.961.040.731.051.270.630.790.550.360.610.510.270.43
5‑11,0033.362.561.691.321.770.950.660.761.200.490.600.620.260.410.570.230.32
5‑21,0023.882.611.741.531.600.570.490.821.370.530.630.520.330.410.520.240.30
4‑31,0024.563.242.041.692.130.810.740.801.230.520.760.720.240.550.540.190.44
5‑31,0033.792.801.791.862.130.961.020.891.270.680.810.690.350.460.500.210.44
5‑41,0015.973.102.842.452.741.420.931.151.530.760.970.700.470.550.630.300.49
Aggregato10,0214.473.052.381.932.161.130.821.021.340.610.880.750.340.560.620.260.48
S9 Stage 9 · S11 Stage 11 · XG eXtreme Gammon Performance Rating rispetto allo stesso riferimento; più basso è meglio, il migliore dei tre è evidenziato non eseguito a quel livello
Aggregando i dieci benchmark a 1-ply, Stage 11 commette 98 errori gravi (errori di 0.08 o più) dove Stage 9 ne commette 246; a 3T Stage 11 non ne commette nessuno.

Contenimento, backgame massicci e lo snake

Benchmark Decisioni 1-ply 2-ply 3-ply 1T · Roller 2T · Roller+ 3T · Roller++
S9S11XG S9S11XG S9S11XG S9S11XG S9S11XG S9S11XG
Contenimento3,2709.656.829.634.7314.625.092.5411.253.782.297.763.201.307.852.531.056.16
Backgame massiccio2,1039.785.717.884.335.764.892.564.443.851.913.143.211.392.752.801.092.64
Snake97864.8721.0839.1721.0039.9226.5121.4236.6428.2511.1932.9920.968.4232.3814.795.8532.24
S9 Stage 9 · S11 Stage 11 · XG eXtreme Gammon Performance Rating rispetto allo stesso riferimento; più basso è meglio, il migliore dei tre è evidenziato non eseguito a quel livello
Ogni motore è addebitato sulla stessa base. Un rollout valuta una rosa ristretta di mosse candidate, e una scelta al di fuori di quella rosa può essere valutata solo in modo approssimato, il che la penalizza troppo — perciò le scelte di ciascun motore sono state specificamente sottoposte a rollout, qualunque motore le avesse fatte. Sui tredici benchmark questo lascia meno dell'1% dell'errore addebitato appoggiato su mosse approssimate per tutti e tre i motori, e nessuno dei confronti qui sopra dipende da ciò. L'unica eccezione è la colonna Roller+ di XG su contenimento e snake, dove il valore resta un limite superiore leggermente sovrastimato.
Sono queste le famiglie per cui le nuove reti sono state costruite, ed è qui che il divario è più ampio. Sulle partite di contenimento Stage 11 dimezza all'incirca il PR di Stage 9 a ogni livello (9.63 contro 4.73 a 2-ply, 5.09 contro 2.54 a 3-ply, 2.53 contro 1.05 a 3T) e riduce gli errori gravi di due terzi o più a ognuno. I backgame massicci seguono lo stesso andamento. Lo snake è il guadagno singolo più grande — da 64.87 a 21.08 a 1-ply — e resta la famiglia più difficile dell'insieme per ogni motore qui misurato, Sage e XG allo stesso modo. A differenza delle altre, è appena aiutata dall'aggiunta di ply, e solo i livelli di rollout troncato la muovono: è la simulazione a risolvere una scelta tra tenere e rilasciare che dipende da come si sviluppa un lungo contenimento.

Paskogammon contro XG

Paskogammon è dove il lavoro sui backgame si manifesta in partite intere: giocato dalla sua posizione di apertura sparpagliata, produce molti più backgame e giochi di contenimento del backgammon standard, quindi è l'unico benchmark su partite complete in cui queste reti entrano in gioco abbastanza spesso da spostare la cifra complessiva. È anche l'unico su cui XG è stato eseguito a ogni livello che offre, dal 2 ply a Roller++ — le partite sono esportate in XG come archivi .xg archivi, che portano esplicitamente la posizione iniziale non standard, e analizzati in batch una volta per livello. La tabella valuta Stage 9, Stage 11 e XG rispetto allo stesso riferimento di rollout sulle 2.556 decisioni del benchmark, raggruppate per livello equivalente; il migliore di ogni gruppo è evidenziato.

MotorePRPedineCubo Corsa puraCorsaAttacco PrimeAncoraggio
Stage 9 3T1.471.362.210.081.461.110.802.45
Stage 11 3T0.880.851.070.080.590.960.441.71
XG Roller++1.921.991.370.011.362.351.103.39
Stage 9 2T2.212.271.800.032.212.250.903.54
Stage 11 2T1.461.511.080.031.361.790.512.35
XG Roller+2.442.591.450.021.972.481.544.19
Stage 9 1T2.672.603.160.082.551.742.174.24
Stage 11 1T1.651.641.760.081.141.371.023.31
XG Roller2.632.692.230.052.362.861.544.15
Stage 9 4P2.682.752.200.142.512.461.524.37
Stage 11 4P1.901.921.720.141.642.431.042.88
XG 4-ply2.622.662.320.052.222.761.584.32
Stage 9 3P3.463.532.980.033.503.622.204.84
Stage 11 3P2.282.351.780.031.643.691.213.53
XG 3-ply2.972.963.040.052.553.211.774.81
Stage 9 2P5.425.395.570.165.025.194.118.02
Stage 11 2P4.574.375.930.163.975.163.956.30
XG 2-ply4.384.503.580.233.525.832.986.50
Stage 9 1P7.747.678.210.266.948.516.5610.61
Stage 11 1P6.145.937.580.265.188.554.708.18
Stage 11 è davanti a XG a ogni livello equivalente da 3-ply in su — 3T 0.88 contro l'1.92 di Roller++, 2T 1.46 contro 2.44, 1T 1.65 contro 2.63, 4-ply 1.90 contro 2.62 e 3-ply 2.28 contro 2.97 — e anche Stage 9 è davanti a XG ai livelli troncati. Solo a 2-ply XG risulta davanti a entrambi (4.38). L'anchoring è il piano di gioco più difficile per ogni motore qui, ed è dove il margine è più ampio: 1.71 per Stage 11 a 3T contro il 3.39 di XG.
A
Appendice

Riprodurre questi risultati

Il motore, i benchmark, le posizioni seme, i riferimenti e ogni script di addestramento sono nel repository open source bgsage (MPL-2.0). I benchmark di backgame si trovano sotto backgame_ref_positions/benchmark/ — un file starting.txt di semi, un file benchmark.txt di decisioni e un riferimento rollout.jsonl per cartella — e sono generati da scripts/backgame_benchmark.py, con i semi delle tre famiglie prodotti da scripts/build_family_seeds.py, e valutati da scripts/score_backgame_pr.py, che riporta il PR insieme alla quota di scelte di qualità rollout. Le regole di instradamento sono in cpp/src/neural_net.cpp con implementazioni di riferimento in Python in scripts/containment_rule.py e scripts/snake_rule.py, e il modello stesso è la voce stage11s del registro dei pesi. Gli script dei dati di addestramento sono indicati nella tabella qui sopra in base alla loro fonte; i rollout di cui hanno bisogno sono distribuiti da orchestratori che non fanno parte del repository pubblico, ma ogni file di posizioni e ogni obiettivo da rollout lo è.