356 lines
30 KiB
XML
356 lines
30 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" width="1400" height="1850" viewBox="0 0 1400 1850" font-family="sans-serif">
|
|
<rect width="1400" height="1850" fill="white"/>
|
|
<text x="700" y="32" text-anchor="middle" font-size="21" font-weight="bold">SAC-LSTM campaign dashboard - live run (current only)</text>
|
|
<text x="700" y="56" text-anchor="middle" font-size="12" fill="#555">generated 2026-08-24 11:10:31 - auto-reloads every 60 s (open this file in Chrome)</text>
|
|
<text x="70" y="100" font-size="15" font-weight="bold">Test matches - win % vs opponents</text>
|
|
<text x="70" y="115" font-size="11" fill="#555">raw dots = single test matches, thick = rolling-mean-10</text>
|
|
<text x="70" y="133" font-size="12" font-style="italic" fill="#555">What: How often the bot wins against each opponent in test battles.</text>
|
|
<text x="70" y="149" font-size="12" font-style="italic" fill="#555">Axes: X = training progress (match number); Y = win rate, 0-100%.</text>
|
|
<text x="70" y="165" font-size="12" font-style="italic" fill="#555">Better: higher is better.</text>
|
|
<line x1="70" y1="784.0" x2="697" y2="784.0" stroke="#dddddd"/>
|
|
<line x1="70" y1="664.0" x2="697" y2="664.0" stroke="#dddddd"/>
|
|
<line x1="70" y1="544.0" x2="697" y2="544.0" stroke="#dddddd"/>
|
|
<line x1="70" y1="424.0" x2="697" y2="424.0" stroke="#dddddd"/>
|
|
<line x1="70" y1="304.0" x2="697" y2="304.0" stroke="#dddddd"/>
|
|
<line x1="70" y1="184.0" x2="697" y2="184.0" stroke="#dddddd"/>
|
|
<line x1="70" y1="784" x2="697" y2="784" stroke="black"/>
|
|
<line x1="70" y1="784" x2="70" y2="184" stroke="black"/>
|
|
<line x1="70.0" y1="784" x2="70.0" y2="788" stroke="black"/>
|
|
<text x="70.0" y="801" text-anchor="middle" font-size="11">1</text>
|
|
<line x1="226.8" y1="784" x2="226.8" y2="788" stroke="black"/>
|
|
<text x="226.8" y="801" text-anchor="middle" font-size="11">2</text>
|
|
<line x1="383.5" y1="784" x2="383.5" y2="788" stroke="black"/>
|
|
<text x="383.5" y="801" text-anchor="middle" font-size="11">3</text>
|
|
<line x1="540.2" y1="784" x2="540.2" y2="788" stroke="black"/>
|
|
<text x="540.2" y="801" text-anchor="middle" font-size="11">4</text>
|
|
<line x1="697.0" y1="784" x2="697.0" y2="788" stroke="black"/>
|
|
<text x="697.0" y="801" text-anchor="middle" font-size="11">5</text>
|
|
<line x1="66" y1="784.0" x2="70" y2="784.0" stroke="black"/>
|
|
<text x="63" y="788.0" text-anchor="end" font-size="11">0</text>
|
|
<line x1="66" y1="664.0" x2="70" y2="664.0" stroke="black"/>
|
|
<text x="63" y="668.0" text-anchor="end" font-size="11">20</text>
|
|
<line x1="66" y1="544.0" x2="70" y2="544.0" stroke="black"/>
|
|
<text x="63" y="548.0" text-anchor="end" font-size="11">40</text>
|
|
<line x1="66" y1="424.0" x2="70" y2="424.0" stroke="black"/>
|
|
<text x="63" y="428.0" text-anchor="end" font-size="11">60</text>
|
|
<line x1="66" y1="304.0" x2="70" y2="304.0" stroke="black"/>
|
|
<text x="63" y="308.0" text-anchor="end" font-size="11">80</text>
|
|
<line x1="66" y1="184.0" x2="70" y2="184.0" stroke="black"/>
|
|
<text x="63" y="188.0" text-anchor="end" font-size="11">100</text>
|
|
<text x="383" y="817" text-anchor="middle" font-size="12">test match number (each opponent)</text>
|
|
<text x="16" y="484" text-anchor="middle" font-size="12" transform="rotate(-90 16 484)">win rate (%)</text>
|
|
<circle cx="70.0" cy="784.0" r="2" fill="#d62728" opacity="0.25"/>
|
|
<circle cx="226.8" cy="784.0" r="2" fill="#d62728" opacity="0.25"/>
|
|
<circle cx="383.5" cy="784.0" r="2" fill="#d62728" opacity="0.25"/>
|
|
<circle cx="540.2" cy="724.0" r="2" fill="#d62728" opacity="0.25"/>
|
|
<circle cx="697.0" cy="784.0" r="2" fill="#d62728" opacity="0.25"/>
|
|
<polyline points="70.0,784.0 226.8,784.0 383.5,784.0 540.2,769.0 697.0,772.0" fill="none" stroke="#d62728" stroke-width="3.5" opacity="1.0"/>
|
|
<circle cx="70.0" cy="664.0" r="2" fill="#1f77b4" opacity="0.25"/>
|
|
<circle cx="226.8" cy="784.0" r="2" fill="#1f77b4" opacity="0.25"/>
|
|
<circle cx="383.5" cy="724.0" r="2" fill="#1f77b4" opacity="0.25"/>
|
|
<circle cx="540.2" cy="184.0" r="2" fill="#1f77b4" opacity="0.25"/>
|
|
<circle cx="697.0" cy="784.0" r="2" fill="#1f77b4" opacity="0.25"/>
|
|
<polyline points="70.0,664.0 226.8,724.0 383.5,724.0 540.2,589.0 697.0,628.0" fill="none" stroke="#1f77b4" stroke-width="3.5" opacity="1.0"/>
|
|
<circle cx="70.0" cy="784.0" r="2" fill="#2ca02c" opacity="0.25"/>
|
|
<circle cx="226.8" cy="784.0" r="2" fill="#2ca02c" opacity="0.25"/>
|
|
<circle cx="383.5" cy="784.0" r="2" fill="#2ca02c" opacity="0.25"/>
|
|
<circle cx="540.2" cy="784.0" r="2" fill="#2ca02c" opacity="0.25"/>
|
|
<circle cx="697.0" cy="784.0" r="2" fill="#2ca02c" opacity="0.25"/>
|
|
<polyline points="70.0,784.0 226.8,784.0 383.5,784.0 540.2,784.0 697.0,784.0" fill="none" stroke="#2ca02c" stroke-width="3.5" opacity="1.0"/>
|
|
<line x1="82" y1="836" x2="110" y2="836" stroke="#d62728" stroke-width="3"/>
|
|
<text x="116" y="840" font-size="12">Corners - 5 evals</text>
|
|
<line x1="82" y1="854" x2="110" y2="854" stroke="#1f77b4" stroke-width="3"/>
|
|
<text x="116" y="858" font-size="12">Crazy - 5 evals</text>
|
|
<line x1="82" y1="872" x2="110" y2="872" stroke="#2ca02c" stroke-width="3"/>
|
|
<text x="116" y="876" font-size="12">Target - 5 evals</text>
|
|
<text x="747" y="100" font-size="15" font-weight="bold">Training losses (log) & alpha (linear)</text>
|
|
<text x="747" y="115" font-size="11" fill="#555">training_metrics.jsonl - big early spikes are normal</text>
|
|
<text x="747" y="133" font-size="12" font-style="italic" fill="#555">What: How well the brain is learning: losses should fall; alpha sets explore/exploit.</text>
|
|
<text x="747" y="149" font-size="12" font-style="italic" fill="#555">Axes: X = training progress; left Y (log) = losses; right Y (linear) = alpha.</text>
|
|
<text x="747" y="165" font-size="12" font-style="italic" fill="#555">Better: lower losses = better; alpha falls over time as the bot gets confident.</text>
|
|
<line x1="747" y1="784.0" x2="1329" y2="784.0" stroke="#dddddd"/>
|
|
<line x1="747" y1="634.0" x2="1329" y2="634.0" stroke="#dddddd"/>
|
|
<line x1="747" y1="484.0" x2="1329" y2="484.0" stroke="#dddddd"/>
|
|
<line x1="747" y1="334.0" x2="1329" y2="334.0" stroke="#dddddd"/>
|
|
<line x1="747" y1="184.0" x2="1329" y2="184.0" stroke="#dddddd"/>
|
|
<line x1="747" y1="784" x2="1329" y2="784" stroke="black"/>
|
|
<line x1="747" y1="784" x2="747" y2="184" stroke="black"/>
|
|
<line x1="747.0" y1="784" x2="747.0" y2="788" stroke="black"/>
|
|
<text x="747.0" y="801" text-anchor="middle" font-size="11">1</text>
|
|
<line x1="892.5" y1="784" x2="892.5" y2="788" stroke="black"/>
|
|
<text x="892.5" y="801" text-anchor="middle" font-size="11">24</text>
|
|
<line x1="1038.0" y1="784" x2="1038.0" y2="788" stroke="black"/>
|
|
<text x="1038.0" y="801" text-anchor="middle" font-size="11">46</text>
|
|
<line x1="1183.5" y1="784" x2="1183.5" y2="788" stroke="black"/>
|
|
<text x="1183.5" y="801" text-anchor="middle" font-size="11">69</text>
|
|
<line x1="1329.0" y1="784" x2="1329.0" y2="788" stroke="black"/>
|
|
<text x="1329.0" y="801" text-anchor="middle" font-size="11">92</text>
|
|
<line x1="743" y1="784.0" x2="747" y2="784.0" stroke="black"/>
|
|
<text x="740" y="788.0" text-anchor="end" font-size="11">0.01</text>
|
|
<line x1="743" y1="634.0" x2="747" y2="634.0" stroke="black"/>
|
|
<text x="740" y="638.0" text-anchor="end" font-size="11">0.1</text>
|
|
<line x1="743" y1="484.0" x2="747" y2="484.0" stroke="black"/>
|
|
<text x="740" y="488.0" text-anchor="end" font-size="11">1</text>
|
|
<line x1="743" y1="334.0" x2="747" y2="334.0" stroke="black"/>
|
|
<text x="740" y="338.0" text-anchor="end" font-size="11">10</text>
|
|
<line x1="743" y1="184.0" x2="747" y2="184.0" stroke="black"/>
|
|
<text x="740" y="188.0" text-anchor="end" font-size="11">100</text>
|
|
<text x="1038" y="817" text-anchor="middle" font-size="12">metric line number</text>
|
|
<text x="16" y="484" text-anchor="middle" font-size="12" transform="rotate(-90 16 484)">loss (log)</text>
|
|
<polyline points="747.0,345.9 753.4,317.6 759.8,307.9 766.2,277.5 772.6,271.6 779.0,450.8 785.4,488.4 791.8,371.1 798.2,357.6 804.6,346.6 811.0,306.7 817.4,235.4 823.7,222.6 830.1,233.7 836.5,255.2 842.9,317.6 849.3,391.8 855.7,689.2 862.1,570.4 868.5,438.2 874.9,489.9 881.3,415.1 887.7,421.9 894.1,394.0 900.5,315.4 906.9,403.4 913.3,395.4 919.7,347.3 926.1,384.4 932.5,403.4 938.9,359.6 945.3,281.5 951.7,479.1 958.1,530.4 964.5,598.4 970.8,352.1 977.2,326.5 983.6,473.0 990.0,506.0 996.4,331.4 1002.8,746.1 1009.2,663.4 1015.6,420.9 1022.0,617.1 1028.4,361.8 1034.8,514.9 1041.2,377.6 1047.6,387.0 1054.0,361.7 1060.4,357.1 1066.8,327.5 1073.2,392.5 1079.6,519.5 1086.0,436.0 1092.4,399.4 1098.8,385.9 1105.2,493.5 1111.5,483.4 1117.9,456.3 1124.3,575.1 1130.7,672.1 1137.1,312.5 1143.5,463.3 1149.9,745.8 1156.3,554.2 1162.7,381.5 1169.1,301.5 1175.5,292.7 1181.9,241.6 1188.3,212.1 1194.7,234.2 1201.1,302.6 1207.5,437.6 1213.9,427.3 1220.3,503.0 1226.7,325.5 1233.1,327.0 1239.5,312.9 1245.9,448.6 1252.3,311.7 1258.6,417.9 1265.0,596.5 1271.4,396.9 1277.8,422.4 1284.2,371.0 1290.6,343.4 1297.0,374.0 1303.4,447.6 1309.8,640.0 1316.2,449.0 1322.6,514.0 1329.0,403.2" fill="none" stroke="#1f77b4" stroke-width="1.8" opacity="1.0"/>
|
|
<polyline points="747.0,412.9 753.4,371.9 759.8,348.5 766.2,325.3 772.6,308.2 779.0,299.2 785.4,300.5 791.8,305.4 798.2,334.7 804.6,356.4 811.0,442.9 817.4,366.9 823.7,341.7 830.1,328.4 836.5,318.8 842.9,310.5 849.3,306.0 855.7,315.8 862.1,326.0 868.5,337.4 874.9,359.3 881.3,391.5 887.7,399.9 894.1,502.0 900.5,464.5 906.9,564.9 913.3,454.5 919.7,393.2 926.1,380.2 932.5,375.3 938.9,353.3 945.3,352.2 951.7,342.8 958.1,351.9 964.5,358.7 970.8,379.5 977.2,402.3 983.6,418.8 990.0,438.0 996.4,431.7 1002.8,426.7 1009.2,406.5 1015.6,442.8 1022.0,458.7 1028.4,415.4 1034.8,407.0 1041.2,581.8 1047.6,551.6 1054.0,459.8 1060.4,385.5 1066.8,362.4 1073.2,365.9 1079.6,376.3 1086.0,404.8 1092.4,450.3 1098.8,486.9 1105.2,443.9 1111.5,409.7 1117.9,397.8 1124.3,393.6 1130.7,374.2 1137.1,374.4 1143.5,379.7 1149.9,396.1 1156.3,477.0 1162.7,386.3 1169.1,351.8 1175.5,344.7 1181.9,319.0 1188.3,303.7 1194.7,292.7 1201.1,291.1 1207.5,290.5 1213.9,293.6 1220.3,304.0 1226.7,333.0 1233.1,342.4 1239.5,379.0 1245.9,388.7 1252.3,338.6 1258.6,333.8 1265.0,322.4 1271.4,337.6 1277.8,334.1 1284.2,317.2 1290.6,288.4 1297.0,281.6 1303.4,274.9 1309.8,274.5 1316.2,285.3 1322.6,294.5 1329.0,304.4" fill="none" stroke="#ff7f0e" stroke-width="1.8" opacity="1.0"/>
|
|
<line x1="747" y1="784.0" x2="1329" y2="784.0" stroke="#e9dcf5"/>
|
|
<line x1="747" y1="634.0" x2="1329" y2="634.0" stroke="#e9dcf5"/>
|
|
<line x1="747" y1="484.0" x2="1329" y2="484.0" stroke="#e9dcf5"/>
|
|
<line x1="747" y1="334.0" x2="1329" y2="334.0" stroke="#e9dcf5"/>
|
|
<line x1="747" y1="184.0" x2="1329" y2="184.0" stroke="#e9dcf5"/>
|
|
<line x1="1329" y1="784" x2="1329" y2="184" stroke="#9467bd"/>
|
|
<line x1="1329" y1="784.0" x2="1333" y2="784.0" stroke="#9467bd"/>
|
|
<text x="1336" y="788.0" font-size="11" fill="#9467bd">0</text>
|
|
<line x1="1329" y1="634.0" x2="1333" y2="634.0" stroke="#9467bd"/>
|
|
<text x="1336" y="638.0" font-size="11" fill="#9467bd">0.25</text>
|
|
<line x1="1329" y1="484.0" x2="1333" y2="484.0" stroke="#9467bd"/>
|
|
<text x="1336" y="488.0" font-size="11" fill="#9467bd">0.5</text>
|
|
<line x1="1329" y1="334.0" x2="1333" y2="334.0" stroke="#9467bd"/>
|
|
<text x="1336" y="338.0" font-size="11" fill="#9467bd">0.75</text>
|
|
<line x1="1329" y1="184.0" x2="1333" y2="184.0" stroke="#9467bd"/>
|
|
<text x="1336" y="188.0" font-size="11" fill="#9467bd">1</text>
|
|
<text x="1346" y="484" text-anchor="middle" font-size="12" fill="#9467bd" transform="rotate(90 1346 484)">alpha</text>
|
|
<polyline points="747.0,184.2 753.4,184.9 759.8,185.6 766.2,186.3 772.6,187.1 779.0,187.8 785.4,188.1 791.8,188.5 798.2,189.2 804.6,189.6 811.0,190.3 817.4,190.9 823.7,190.1 830.1,189.4 836.5,188.7 842.9,188.0 849.3,187.3 855.7,186.6 862.1,185.9 868.5,185.2 874.9,185.7 881.3,186.4 887.7,187.2 894.1,187.9 900.5,188.6 906.9,190.0 913.3,190.7 919.7,191.4 926.1,192.1 932.5,192.5 938.9,192.4 945.3,192.1 951.7,191.7 958.1,191.6 964.5,192.4 970.8,193.1 977.2,193.4 983.6,194.1 990.0,194.5 996.4,195.0 1002.8,195.4 1009.2,196.1 1015.6,196.4 1022.0,197.1 1028.4,197.8 1034.8,198.2 1041.2,198.9 1047.6,199.2 1054.0,199.9 1060.4,200.6 1066.8,200.6 1073.2,200.3 1079.6,200.8 1086.0,201.2 1092.4,201.9 1098.8,202.6 1105.2,203.3 1111.5,204.0 1117.9,204.7 1124.3,205.4 1130.7,206.1 1137.1,206.4 1143.5,207.1 1149.9,207.8 1156.3,208.7 1162.7,209.8 1169.1,209.8 1175.5,209.5 1181.9,208.8 1188.3,208.3 1194.7,207.3 1201.1,206.6 1207.5,205.9 1213.9,205.5 1220.3,204.8 1226.7,204.6 1233.1,205.0 1239.5,205.6 1245.9,206.9 1252.3,207.3 1258.6,206.5 1265.0,205.7 1271.4,205.5 1277.8,205.5 1284.2,204.9 1290.6,203.3 1297.0,202.6 1303.4,201.9 1309.8,201.5 1316.2,200.3 1322.6,199.5 1329.0,198.8" fill="none" stroke="#9467bd" stroke-width="1.8" opacity="1.0"/>
|
|
<line x1="759" y1="836" x2="787" y2="836" stroke="#1f77b4" stroke-width="3"/>
|
|
<text x="793" y="840" font-size="12">critic_loss</text>
|
|
<line x1="759" y1="854" x2="787" y2="854" stroke="#ff7f0e" stroke-width="3"/>
|
|
<text x="793" y="858" font-size="12">|actor_loss|</text>
|
|
<line x1="759" y1="872" x2="787" y2="872" stroke="#9467bd" stroke-width="3"/>
|
|
<text x="793" y="876" font-size="12">alpha</text>
|
|
<text x="70" y="940" font-size="15" font-weight="bold">Throughput - games per hour</text>
|
|
<text x="70" y="955" font-size="11" fill="#555">method: training_metrics.jsonl 'epoch' deltas; 1 row = one 10-game chunk</text>
|
|
<text x="70" y="973" font-size="12" font-style="italic" fill="#555">What: How many games per hour the bot trains (its learning speed).</text>
|
|
<text x="70" y="989" font-size="12" font-style="italic" fill="#555">Axes: X = training progress (10-game chunks); Y = games per hour.</text>
|
|
<text x="70" y="1005" font-size="12" font-style="italic" fill="#555">Better: higher = faster learning; a steady line beats a spiky one.</text>
|
|
<line x1="70" y1="1494.0" x2="697" y2="1494.0" stroke="#dddddd"/>
|
|
<line x1="70" y1="1376.5" x2="697" y2="1376.5" stroke="#dddddd"/>
|
|
<line x1="70" y1="1259.0" x2="697" y2="1259.0" stroke="#dddddd"/>
|
|
<line x1="70" y1="1141.5" x2="697" y2="1141.5" stroke="#dddddd"/>
|
|
<line x1="70" y1="1024.0" x2="697" y2="1024.0" stroke="#dddddd"/>
|
|
<line x1="70" y1="1494" x2="697" y2="1494" stroke="black"/>
|
|
<line x1="70" y1="1494" x2="70" y2="1024" stroke="black"/>
|
|
<line x1="125.7" y1="1494" x2="125.7" y2="1498" stroke="black"/>
|
|
<text x="125.7" y="1511" text-anchor="middle" font-size="11">9</text>
|
|
<line x1="188.4" y1="1494" x2="188.4" y2="1498" stroke="black"/>
|
|
<text x="188.4" y="1511" text-anchor="middle" font-size="11">18</text>
|
|
<line x1="251.1" y1="1494" x2="251.1" y2="1498" stroke="black"/>
|
|
<text x="251.1" y="1511" text-anchor="middle" font-size="11">27</text>
|
|
<line x1="313.8" y1="1494" x2="313.8" y2="1498" stroke="black"/>
|
|
<text x="313.8" y="1511" text-anchor="middle" font-size="11">36</text>
|
|
<line x1="376.5" y1="1494" x2="376.5" y2="1498" stroke="black"/>
|
|
<text x="376.5" y="1511" text-anchor="middle" font-size="11">45</text>
|
|
<line x1="439.2" y1="1494" x2="439.2" y2="1498" stroke="black"/>
|
|
<text x="439.2" y="1511" text-anchor="middle" font-size="11">54</text>
|
|
<line x1="501.9" y1="1494" x2="501.9" y2="1498" stroke="black"/>
|
|
<text x="501.9" y="1511" text-anchor="middle" font-size="11">63</text>
|
|
<line x1="564.6" y1="1494" x2="564.6" y2="1498" stroke="black"/>
|
|
<text x="564.6" y="1511" text-anchor="middle" font-size="11">72</text>
|
|
<line x1="627.3" y1="1494" x2="627.3" y2="1498" stroke="black"/>
|
|
<text x="627.3" y="1511" text-anchor="middle" font-size="11">81</text>
|
|
<line x1="690.0" y1="1494" x2="690.0" y2="1498" stroke="black"/>
|
|
<text x="690.0" y="1511" text-anchor="middle" font-size="11">90</text>
|
|
<line x1="66" y1="1494.0" x2="70" y2="1494.0" stroke="black"/>
|
|
<text x="63" y="1498.0" text-anchor="end" font-size="11">0</text>
|
|
<line x1="66" y1="1376.5" x2="70" y2="1376.5" stroke="black"/>
|
|
<text x="63" y="1380.5" text-anchor="end" font-size="11">1653</text>
|
|
<line x1="66" y1="1259.0" x2="70" y2="1259.0" stroke="black"/>
|
|
<text x="63" y="1263.0" text-anchor="end" font-size="11">3305</text>
|
|
<line x1="66" y1="1141.5" x2="70" y2="1141.5" stroke="black"/>
|
|
<text x="63" y="1145.5" text-anchor="end" font-size="11">4958</text>
|
|
<line x1="66" y1="1024.0" x2="70" y2="1024.0" stroke="black"/>
|
|
<text x="63" y="1028.0" text-anchor="end" font-size="11">6611</text>
|
|
<text x="383" y="1527" text-anchor="middle" font-size="12">chunk interval (10-game chunks)</text>
|
|
<text x="16" y="1259" text-anchor="middle" font-size="12" transform="rotate(-90 16 1259)">games / hour</text>
|
|
<circle cx="70.0" cy="1225.8" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="77.0" cy="1479.4" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="83.9" cy="1214.0" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="90.9" cy="1470.7" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="97.9" cy="1219.6" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="104.8" cy="1465.6" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="111.8" cy="1066.7" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="118.8" cy="1465.5" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="125.7" cy="1087.4" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="132.7" cy="1460.8" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="139.7" cy="1442.2" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="146.6" cy="1460.4" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="153.6" cy="1196.1" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="160.6" cy="1465.7" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="167.5" cy="1242.5" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="174.5" cy="1468.0" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="181.5" cy="1224.0" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="188.4" cy="1466.0" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="195.4" cy="1215.2" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="202.4" cy="1466.6" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="209.3" cy="1237.7" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="216.3" cy="1471.2" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="223.3" cy="1228.2" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="230.2" cy="1482.5" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="237.2" cy="1441.5" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="244.2" cy="1481.7" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="251.1" cy="1228.0" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="258.1" cy="1481.1" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="265.1" cy="1141.1" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="272.0" cy="1481.6" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="279.0" cy="1141.2" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="286.0" cy="1480.7" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="292.9" cy="1164.6" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="299.9" cy="1483.5" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="306.9" cy="1222.4" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="313.8" cy="1474.3" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="320.8" cy="1196.9" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="327.8" cy="1474.3" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="334.7" cy="1176.4" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="341.7" cy="1477.7" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="348.7" cy="1206.4" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="355.6" cy="1475.0" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="362.6" cy="1197.3" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="369.6" cy="1474.8" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="376.5" cy="1109.7" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="383.5" cy="1474.6" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="390.5" cy="1091.4" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="397.4" cy="1477.1" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="404.4" cy="1214.9" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="411.4" cy="1474.6" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="418.3" cy="1106.2" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="425.3" cy="1474.3" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="432.3" cy="1082.3" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="439.2" cy="1474.6" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="446.2" cy="1206.8" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="453.2" cy="1474.5" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="460.1" cy="1226.8" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="467.1" cy="1474.7" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="474.1" cy="1217.6" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="481.0" cy="1479.7" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="488.0" cy="1087.7" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="495.0" cy="1474.3" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="501.9" cy="1209.8" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="508.9" cy="1475.8" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="515.9" cy="1444.9" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="522.8" cy="1476.3" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="529.8" cy="1077.6" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="536.8" cy="1476.0" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="543.7" cy="1151.6" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="550.7" cy="1483.9" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="557.7" cy="1236.2" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="564.6" cy="1477.1" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="571.6" cy="1096.1" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="578.6" cy="1474.3" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="585.5" cy="1241.5" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="592.5" cy="1474.5" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="599.5" cy="1245.3" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="606.4" cy="1481.9" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="613.4" cy="1260.9" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="620.4" cy="1474.4" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="627.3" cy="1242.0" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="634.3" cy="1491.8" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="641.3" cy="1088.6" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="648.2" cy="1478.0" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="655.2" cy="1449.8" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="662.2" cy="1477.5" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="669.1" cy="1227.7" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="676.1" cy="1471.1" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="683.1" cy="1441.4" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="690.0" cy="1479.1" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<circle cx="697.0" cy="1230.5" r="1.6" fill="#7f7f7f" opacity="0.25"/>
|
|
<polyline points="77.0,1321.9 111.8,1309.2 139.7,1361.4 174.5,1367.9 202.4,1372.2 237.2,1362.7 272.0,1298.5 299.9,1359.9 334.7,1292.6 362.6,1346.5 397.4,1268.8 425.3,1348.4 460.1,1312.9 488.0,1368.7 522.8,1336.9 557.7,1322.2 585.5,1365.7 620.4,1324.2 648.2,1408.2 683.1,1405.5" fill="none" stroke="#2ca02c" stroke-width="3.5" opacity="1.0"/>
|
|
<text x="747" y="940" font-size="15" font-weight="bold">Max score per eval cycle</text>
|
|
<text x="747" y="955" font-size="11" fill="#555">campaign_v4_stdout.log - max of the 10 deterministic round scores per eval</text>
|
|
<text x="747" y="973" font-size="12" font-style="italic" fill="#555">What: Best single-round score the bot managed in each test cycle.</text>
|
|
<text x="747" y="989" font-size="12" font-style="italic" fill="#555">Axes: X = eval cycle number; Y = best score achieved.</text>
|
|
<text x="747" y="1005" font-size="12" font-style="italic" fill="#555">Better: higher is better; a rising trend means the bot is improving.</text>
|
|
<line x1="747" y1="1494.0" x2="1375" y2="1494.0" stroke="#dddddd"/>
|
|
<line x1="747" y1="1376.5" x2="1375" y2="1376.5" stroke="#dddddd"/>
|
|
<line x1="747" y1="1259.0" x2="1375" y2="1259.0" stroke="#dddddd"/>
|
|
<line x1="747" y1="1141.5" x2="1375" y2="1141.5" stroke="#dddddd"/>
|
|
<line x1="747" y1="1024.0" x2="1375" y2="1024.0" stroke="#dddddd"/>
|
|
<line x1="747" y1="1494" x2="1375" y2="1494" stroke="black"/>
|
|
<line x1="747" y1="1494" x2="747" y2="1024" stroke="black"/>
|
|
<line x1="747.0" y1="1494" x2="747.0" y2="1498" stroke="black"/>
|
|
<text x="747.0" y="1511" text-anchor="middle" font-size="11">1</text>
|
|
<line x1="904.0" y1="1494" x2="904.0" y2="1498" stroke="black"/>
|
|
<text x="904.0" y="1511" text-anchor="middle" font-size="11">2</text>
|
|
<line x1="1061.0" y1="1494" x2="1061.0" y2="1498" stroke="black"/>
|
|
<text x="1061.0" y="1511" text-anchor="middle" font-size="11">3</text>
|
|
<line x1="1218.0" y1="1494" x2="1218.0" y2="1498" stroke="black"/>
|
|
<text x="1218.0" y="1511" text-anchor="middle" font-size="11">4</text>
|
|
<line x1="1375.0" y1="1494" x2="1375.0" y2="1498" stroke="black"/>
|
|
<text x="1375.0" y="1511" text-anchor="middle" font-size="11">5</text>
|
|
<line x1="743" y1="1494.0" x2="747" y2="1494.0" stroke="black"/>
|
|
<text x="740" y="1498.0" text-anchor="end" font-size="11">0</text>
|
|
<line x1="743" y1="1376.5" x2="747" y2="1376.5" stroke="black"/>
|
|
<text x="740" y="1380.5" text-anchor="end" font-size="11">46</text>
|
|
<line x1="743" y1="1259.0" x2="747" y2="1259.0" stroke="black"/>
|
|
<text x="740" y="1263.0" text-anchor="end" font-size="11">92</text>
|
|
<line x1="743" y1="1141.5" x2="747" y2="1141.5" stroke="black"/>
|
|
<text x="740" y="1145.5" text-anchor="end" font-size="11">138</text>
|
|
<line x1="743" y1="1024.0" x2="747" y2="1024.0" stroke="black"/>
|
|
<text x="740" y="1028.0" text-anchor="end" font-size="11">184</text>
|
|
<text x="1061" y="1527" text-anchor="middle" font-size="12">eval cycle number</text>
|
|
<text x="16" y="1259" text-anchor="middle" font-size="12" transform="rotate(-90 16 1259)">best single-round score</text>
|
|
<circle cx="747.0" cy="1340.5" r="2" fill="#d62728" opacity="0.25"/>
|
|
<circle cx="904.0" cy="1481.2" r="2" fill="#d62728" opacity="0.25"/>
|
|
<circle cx="1061.0" cy="1207.4" r="2" fill="#d62728" opacity="0.25"/>
|
|
<circle cx="1218.0" cy="1340.5" r="2" fill="#d62728" opacity="0.25"/>
|
|
<circle cx="1375.0" cy="1066.7" r="2" fill="#d62728" opacity="0.25"/>
|
|
<polyline points="747.0,1340.5 904.0,1481.2 1061.0,1207.4 1218.0,1340.5 1375.0,1066.7" fill="none" stroke="#d62728" stroke-width="2.5" opacity="1.0"/>
|
|
<circle cx="747.0" cy="1325.1" r="2" fill="#1f77b4" opacity="0.25"/>
|
|
<circle cx="904.0" cy="1256.1" r="2" fill="#1f77b4" opacity="0.25"/>
|
|
<circle cx="1061.0" cy="1320.0" r="2" fill="#1f77b4" opacity="0.25"/>
|
|
<circle cx="1218.0" cy="1312.3" r="2" fill="#1f77b4" opacity="0.25"/>
|
|
<circle cx="1375.0" cy="1463.3" r="2" fill="#1f77b4" opacity="0.25"/>
|
|
<polyline points="747.0,1325.1 904.0,1256.1 1061.0,1320.0 1218.0,1312.3 1375.0,1463.3" fill="none" stroke="#1f77b4" stroke-width="2.5" opacity="1.0"/>
|
|
<circle cx="747.0" cy="1353.3" r="2" fill="#2ca02c" opacity="0.25"/>
|
|
<circle cx="904.0" cy="1312.3" r="2" fill="#2ca02c" opacity="0.25"/>
|
|
<circle cx="1061.0" cy="1207.4" r="2" fill="#2ca02c" opacity="0.25"/>
|
|
<circle cx="1218.0" cy="1376.3" r="2" fill="#2ca02c" opacity="0.25"/>
|
|
<circle cx="1375.0" cy="1309.8" r="2" fill="#2ca02c" opacity="0.25"/>
|
|
<polyline points="747.0,1353.3 904.0,1312.3 1061.0,1207.4 1218.0,1376.3 1375.0,1309.8" fill="none" stroke="#2ca02c" stroke-width="2.5" opacity="1.0"/>
|
|
<polyline points="747.0,1325.1 904.0,1256.1 1061.0,1207.4 1218.0,1312.3 1375.0,1066.7" fill="none" stroke="#555555" stroke-width="2.5" opacity="1.0" stroke-dasharray="6 4"/>
|
|
<line x1="759" y1="1546" x2="787" y2="1546" stroke="#d62728" stroke-width="3"/>
|
|
<text x="793" y="1550" font-size="12">Corners - 5 evals</text>
|
|
<line x1="759" y1="1564" x2="787" y2="1564" stroke="#1f77b4" stroke-width="3"/>
|
|
<text x="793" y="1568" font-size="12">Crazy - 5 evals</text>
|
|
<line x1="759" y1="1582" x2="787" y2="1582" stroke="#2ca02c" stroke-width="3"/>
|
|
<text x="793" y="1586" font-size="12">Target - 5 evals</text>
|
|
<line x1="759" y1="1600" x2="787" y2="1600" stroke="#555555" stroke-width="3"/>
|
|
<text x="793" y="1604" font-size="12">combined max</text>
|
|
<rect x="0" y="1645" width="1400" height="205" fill="#f2f2f2"/>
|
|
<text x="16" y="1666" font-size="15" font-weight="bold">Reading the signs</text>
|
|
<text x="1384" y="1665" text-anchor="end" font-size="11" fill="#666">Regenerate anytime: python3 tools/plot_progress.py</text>
|
|
<text x="16" y="1688" font-size="13" font-weight="bold">Healthy patterns ✅</text>
|
|
<text x="16" y="1706" font-size="12">• Both critic and actor losses trending down over time</text>
|
|
<text x="16" y="1720" font-size="12">• Alpha decaying slowly from ~1.0,</text>
|
|
<text x="16" y="1734" font-size="12"> then plateauing — this is normal</text>
|
|
<text x="16" y="1748" font-size="12">• Win rates appearing and increasing in the eval panel</text>
|
|
<text x="16" y="1762" font-size="12">• Max scores rising in the max-score panel</text>
|
|
<text x="16" y="1776" font-size="12">• Alpha plateauing is NOT a problem — it means</text>
|
|
<text x="16" y="1790" font-size="12"> exploration level is stable</text>
|
|
<text x="500" y="1688" font-size="13" font-weight="bold">Warning signs ⚠️</text>
|
|
<text x="500" y="1706" font-size="12">• Losses exploding (suddenly jumping to</text>
|
|
<text x="500" y="1720" font-size="12"> millions or billions)</text>
|
|
<text x="500" y="1734" font-size="12">• Win rates staying at 0% for a long time</text>
|
|
<text x="500" y="1748" font-size="12"> after the first ~20 eval cycles</text>
|
|
<text x="500" y="1762" font-size="12">• Alpha reaching 0 — bot stops exploring entirely</text>
|
|
<text x="500" y="1776" font-size="12"> (gets stuck)</text>
|
|
<text x="500" y="1790" font-size="12">• Max scores flatlining (no improvement</text>
|
|
<text x="500" y="1804" font-size="12"> over many eval cycles)</text>
|
|
<text x="500" y="1818" font-size="12">• Any single loss value above 1e6</text>
|
|
<text x="985" y="1688" font-size="13" font-weight="bold">What each metric means (brief)</text>
|
|
<text x="985" y="1706" font-size="12">• Critic loss: how wrong the bot's value</text>
|
|
<text x="985" y="1720" font-size="12"> estimates are — should go down</text>
|
|
<text x="985" y="1734" font-size="12">• Actor loss: how well the bot's action policy</text>
|
|
<text x="985" y="1748" font-size="12"> is doing — should go down overall</text>
|
|
<text x="985" y="1762" font-size="12"> (some bumps are normal)</text>
|
|
<text x="985" y="1776" font-size="12">• Alpha: exploration-exploitation tradeoff — starts</text>
|
|
<text x="985" y="1790" font-size="12"> high, settles at a positive value (NOT zero)</text>
|
|
<text x="985" y="1804" font-size="12">• Max score: best score achieved per eval cycle —</text>
|
|
<text x="985" y="1818" font-size="12"> rising trend = learning</text>
|
|
<script type="text/javascript"><![CDATA[ setTimeout(function(){ location.reload(); }, 60000); ]]></script>
|
|
</svg>
|