diff --git a/public/maia3/maia3_simplified.onnx b/public/maia3/maia3_simplified.onnx index 69a677c6..f8a21282 100644 Binary files a/public/maia3/maia3_simplified.onnx and b/public/maia3/maia3_simplified.onnx differ diff --git a/src/components/Common/DownloadModelModal.tsx b/src/components/Common/DownloadModelModal.tsx index 5bf4720d..1c473147 100644 --- a/src/components/Common/DownloadModelModal.tsx +++ b/src/components/Common/DownloadModelModal.tsx @@ -103,7 +103,7 @@ export const DownloadModelModal: React.FC = ({

- Our newest model, Maia 3, provides richer and more in-depth + Our newest model, Maia-3, provides richer and more in-depth analysis, allowing for:

- Maia 3 runs entirely on your device and requires a one-time 87mb + Maia-3 runs entirely on your device and requires a one-time 44mb download.

@@ -174,8 +174,8 @@ export const DownloadModelModal: React.FC = ({ )}

- {isDownloading ? 'Downloading...' : 'Download Maia 3'}{' '} - (87mb) + {isDownloading ? 'Downloading...' : 'Download Maia-3'}{' '} + (44mb)

diff --git a/src/contexts/MaiaEngineContext.tsx b/src/contexts/MaiaEngineContext.tsx index e92c0367..735171d4 100644 --- a/src/contexts/MaiaEngineContext.tsx +++ b/src/contexts/MaiaEngineContext.tsx @@ -37,7 +37,7 @@ export const MaiaEngineContextProvider: React.FC<{ children: ReactNode }> = ({ model: process.env.NEXT_PUBLIC_MAIA_MODEL_URL ?? '/maia3/maia3_simplified.onnx', - modelVersion: process.env.NEXT_PUBLIC_MAIA_MODEL_VERSION ?? '2', + modelVersion: process.env.NEXT_PUBLIC_MAIA_MODEL_VERSION ?? '3', setStatus: setStatus, setProgress: setProgress, setError: setError, diff --git a/src/lib/engine/maia.ts b/src/lib/engine/maia.ts index f6570ff0..834efb49 100644 --- a/src/lib/engine/maia.ts +++ b/src/lib/engine/maia.ts @@ -451,12 +451,13 @@ function processOutputsMaia3( const logits = logits_move.data as Float32Array const wdl = logits_value.data as Float32Array - // Convert WDL logits to win probability via softmax + // Convert LDW logits to win probability via softmax + // Model output channels: index 0 = Loss, 1 = Draw, 2 = Win (for side-to-move) const maxWdl = Math.max(wdl[0], wdl[1], wdl[2]) - const expW = Math.exp(wdl[0] - maxWdl) + const expL = Math.exp(wdl[0] - maxWdl) const expD = Math.exp(wdl[1] - maxWdl) - const expL = Math.exp(wdl[2] - maxWdl) - const sumExp = expW + expD + expL + const expW = Math.exp(wdl[2] - maxWdl) + const sumExp = expL + expD + expW // Win probability = P(win) + 0.5 * P(draw) let winProb = (expW + 0.5 * expD) / sumExp