Files
cs249r_book/labs/vol1/test_render.html
2026-02-26 15:23:17 -05:00

295 lines
63 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/favicon.ico" />
<!-- Preload is necessary because we show these images when we disconnect from the server,
but at that point we cannot load these images from the server -->
<link rel="preload" crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/gradient-yHQUC_QB.png" as="image" />
<link rel="preload" crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/noise-60BoTA8O.png" as="image" />
<!-- Preload the fonts -->
<link rel="preload" crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/Lora-VariableFont_wght-B2ootaw-.ttf" as="font" crossorigin="anonymous" />
<link rel="preload" crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/PTSans-Regular-CxL0S8W7.ttf" as="font" crossorigin="anonymous" />
<link rel="preload" crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/PTSans-Bold-D9fedIX3.ttf" as="font" crossorigin="anonymous" />
<link rel="preload" crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/FiraMono-Regular-BTCkDNvf.ttf" as="font" crossorigin="anonymous" />
<link rel="preload" crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/FiraMono-Medium-DU3aDxX5.ttf" as="font" crossorigin="anonymous" />
<link rel="preload" crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/FiraMono-Bold-CLVRCuM9.ttf" as="font" crossorigin="anonymous" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="a marimo app" />
<link rel="apple-touch-icon" crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/apple-touch-icon.png" />
<link rel="manifest" crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/manifest.json" />
<script data-marimo="true">
function __resizeIframe(obj) {
const scrollbarHeight = 20; // Max between windows, mac, and linux
function setHeight() {
// Guard against race condition where iframe isn't ready
if (!obj.contentWindow?.document?.documentElement) {
return;
}
const element = obj.contentWindow.document.documentElement;
// If there is no vertical scrollbar, we don't need to resize the iframe
if (element.scrollHeight === element.clientHeight) {
return;
}
// Create a new height that includes the scrollbar height if it's visible
const hasHorizontalScrollbar = element.scrollWidth > element.clientWidth;
const newHeight = element.scrollHeight + (hasHorizontalScrollbar ? scrollbarHeight : 0);
// Only update the height if it's different from the current height
if (obj.style.height !== `${newHeight}px`) {
obj.style.height = `${newHeight}px`;
}
}
// Resize the iframe to the height of the content and bottom scrollbar height
setHeight();
// Resize the iframe when the content changes
const resizeObserver = new ResizeObserver((_entries) => {
setHeight();
});
// Only observe if iframe content is ready
if (obj.contentWindow?.document?.body) {
resizeObserver.observe(obj.contentWindow.document.body);
}
}
</script>
<marimo-filename hidden>lab_01_ml_intro.py</marimo-filename>
<!-- TODO(Trevor): Legacy, required by VS Code plugin. Remove when plugin is updated (see marimo/server/_templates/template.py) -->
<marimo-version data-version="{{ version }}" hidden></marimo-version>
<marimo-user-config data-config="{{ user_config }}" hidden></marimo-user-config>
<marimo-server-token data-token="{{ server_token }}" hidden></marimo-server-token>
<!-- /TODO -->
<title>lab 01 ml intro</title>
<script type="module" crossorigin crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/index-BI2D29sc.js"></script>
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/preload-helper-BW0IMuFq.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/hotkeys-uKX61F1_.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/defaultLocale-BLUna9fQ.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/precisionRound-Cl9k9ZmS.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/defaultLocale-DzliDDTm.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/vega-loader.browser-C8wT63Va.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/_Uint8Array-BGESiCQL.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/tooltip-CrRUCOBw.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/clsx-D0MtrJOx.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/cn-C1rgT0yh.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/chunk-LvLJmgfZ.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/react-BGmjiNul.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/compiler-runtime-DeeZ7FnK.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/jsx-runtime-DN_bIXfG.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/badge-DAnNhy3O.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useEventListener-COkmyg1v.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/button-B8cGZzP5.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/react-dom-C9fstfnp.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/Combination-D1TsGrBC.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/menu-items-9PZrU2e0.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/dist-CBrDuocE.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/createLucideIcon-CW2xpJ57.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/check-CrAQug3q.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/select-D9lTzMzP.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/tooltip-CvjcEpZC.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/use-toast-Bzf3rpev.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/_getTag-BWqNuuwU.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/_baseIsEqual-Cz9Tt_-E.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useEvent-DlWF5OMa.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/invariant-C6yE60hi.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/_baseFor-Duhs3RiJ.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/merge-BBX6ug-N.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/zod-Cg4WLWh2.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/utils-Czt8B2GX.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/constants-Bkp4R3bQ.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/Deferred-DzyBMRsy.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/config-CENq_7Pd.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/uuid-ClFZlR7U.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/DeferredRequestRegistry-B3BENoUa.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/requests-C0HaHO6a.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/isSymbol-BGkTcW3U.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/toString-DlRqgfqz.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/_hasUnicode-zBEpxwYe.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useLifecycle-CmDXEyIC.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useNonce-EAuSVK-5.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useTheme-BSVRc0kJ.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/once-CTiSlR1m.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/capabilities-BmAOeMOK.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/createReducer-DDa-hVe3.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/dist-CAcX026F.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/dist-DKNOF5xd.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/dist-CI6_zMIl.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/dist-BVf1IY4_.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/dist-Cq_4nPfh.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/dist-CVj-_Iiz.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/dist-HGZzCB0y.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/dist-RKnr9SNh.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/dist-BuhT82Xx.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/stex-0ac7Aukl.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/toDate-5JckKRQn.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/cjs-Bj40p_Np.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/_arrayReduce-bZBYsK-u.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/type-BdyvjzTI.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/_baseProperty-DuoFhI7N.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/now-6sUe0ZdD.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/debounce-BbFlGgjv.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/toInteger-CDcO32Gx.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/database-zap-CaVvnK_o.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/main-CwSdzVhm.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/cells-CmJW_FeD.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/ErrorBoundary-C7JBxSzd.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/kbd-Czc5z_04.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useInstallPackage-RldLPyJs.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/alert-dialog-jcHA5geR.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/dialog-CF5DtF1E.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useDebounce-em3gna-v.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/numbers-C9_R_vlY.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/SSRProvider-DD7JA3RM.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/context-BAYdLMF_.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useNumberFormatter-D8ks3oPN.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/usePress-C2LPFxyv.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/input-Bkl2Yfmh.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/ImperativeModal-BZvZlZQZ.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/cell-link-D7bPw7Fz.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/multi-map-CQd4MZr5.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/alert-BEdExd6A.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/chevron-right-CqEd11Di.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/dropdown-menu-BP4_BZLr.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/links-DNmjkr65.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/datasource-CCq9qyVG.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/state-B8vBQnkH.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/MarimoErrorOutput-DAK6volb.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/copy-DRhpWiOq.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/copy-gBVL4NN-.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/copy-icon-jWsqdLn1.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/spinner-C1czjtp7.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/es-BJsT6vfZ.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/focus-KGgBDCvb.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/LazyAnyLanguageCodeMirror-Dr2G5gxJ.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/katex-dFZM4X_7.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/marked.esm-BZNXs5FA.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/chunk-OGVTOU66-DQphfHw1.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/markdown-renderer-DjqhqmES.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/dist-D0NgYwYf.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/command-B1zRJT1a.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/popover-DtnzNVk-.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useRunCells-DNnhJ0Gs.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/mode-CXc0VeQq.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/purify.es-N-2faAGj.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/RenderHTML-B4Nb8r0D.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/table-BatLo2vd.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/tabs-CHiEPtZV.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useAsyncData-Dj1oqsrZ.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useIframeCapabilities-CU-WWxnz.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/errors-z7WpYca5.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/error-banner-Cq4Yn1WZ.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/formats-DtJ_484s.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/en-US-DhMN8sxe.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/isValid-DhzaK-Y1.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/dates-CdsE1R40.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/download-C_slsU-7.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/maps-s2pQkyf5.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/extends-B9D0JO9U.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/emotion-is-prop-valid.esm-lG8j6oqk.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useDateFormatter-CV0QXb5P.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/range-sshwVRcP.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/capitalize-DQeWKRGx.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/table-BLx7B_us.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/JsonOutput-DlwRx3jE.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/file-BnFXtaZZ.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/play-BJDBXApx.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/chat-components-BQ_d4LQG.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/isEmpty-DIxUV1UR.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/circle-check-big-OIMTUpe6.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/chat-display-ZS_L6G-P.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/ai-model-dropdown-C-5PlP5A.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/renderShortcut-BzTDKVab.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useDeleteCell-D-55qWAK.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/icons-9QU2Dup7.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/process-output-DN66BQYe.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/blob-DtJQFQyD.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/objectWithoutPropertiesLoose-CboCOq4o.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/esm-D2_Kx6xF.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/add-cell-with-ai-DEdol3w0.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/chart-no-axes-column-D42sFB6d.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/square-function-DxXFdbn8.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/spec-qp_XZeSS.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/column-preview-DZ--KOk1.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/switch-C5jvDmuG.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/toggle-D-5M3JI_.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/globals-DPW2B3A9.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/share-CXQVxivL.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/memoize-DN0TMY36.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/get-CyLJYAfP.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/_baseSet-6FYvpjrm.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/react-resizable-panels.browser.esm-B7ZqbY8M.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/utilities.esm-CqQATX3k.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/floating-outline-DqdzWKrn.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useAddCell-DveVmvs9.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/eye-off-D9zAYqG9.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/plus-CHesBJpY.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/readonly-python-code-Dr5fAkba.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/file-video-camera-CZUg-nFA.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/types-D5CL190S.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/label-CqyOmxjL.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/textarea-DzIuH-E_.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/refresh-ccw-DbW1_PHb.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/trash-2-C-lF7BNB.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/form-DyJ8-Zz6.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/field-86WoveRM.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useBoolean-GvygmcM1.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/useDeepCompareMemoize-81gQouTn.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/types-B42u_5hF.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/prop-types-C638SUfx.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/es-FiXEquL2.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/VisuallyHidden-B0mBEsSm.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/hasIn-DydgU7lx.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/_baseFlatten-CLPh0yMf.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/flatten-Buk63LQO.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/pick-DeQioq0G.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/code-xml-MBUyxNtK.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/download-DobaYJPt.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/house-CncUa_LL.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/refresh-cw-Din9uFKE.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/settings-MTlHVxz3.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/square-leQTJTJJ.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/triangle-alert-CbD0f2J6.js">
<link rel="modulepreload" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/bundle.esm-dxSncdJD.js">
<link rel="stylesheet" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/cells-jmgGt1lS.css">
<link rel="stylesheet" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/markdown-renderer-DdDKmWlR.css">
<link rel="stylesheet" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/JsonOutput-B7vuddcd.css">
<link rel="stylesheet" crossorigin crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@marimo-team/frontend@0.19.6/dist/assets/index-BI9O54ok.css">
<script data-marimo="true">
window.__MARIMO_STATIC__ = {};
window.__MARIMO_STATIC__.files = {};
</script>
</head>
<body>
<div id="root"></div>
<!-- This is a portal for the data editor to render in -->
<div id="portal" data-testid="glide-portal" style="position: fixed; left: 0; top: 0; z-index: 9999"></div>
<script data-marimo="true">
window.__MARIMO_MOUNT_CONFIG__ = {
"filename": "lab_01_ml_intro.py",
"mode": "read",
"version": "0.19.6",
"serverToken": "static",
"config": {"ai": {"custom_providers": {}, "models": {"custom_models": [], "displayed_models": []}}, "completion": {"activate_on_typing": true, "copilot": false, "signature_hint_on_typing": false}, "diagnostics": {"sql_linter": true}, "display": {"cell_output": "below", "code_editor_font_size": 14, "dataframes": "rich", "default_table_max_columns": 50, "default_table_page_size": 10, "default_width": "medium", "reference_highlighting": true, "theme": "light"}, "formatting": {"line_length": 79}, "keymap": {"overrides": {}, "preset": "default"}, "language_servers": {"pylsp": {"enable_flake8": false, "enable_mypy": true, "enable_pydocstyle": false, "enable_pyflakes": false, "enable_pylint": false, "enable_ruff": true, "enabled": false}}, "mcp": {"mcpServers": {}, "presets": []}, "package_management": {"manager": "pip"}, "runtime": {"auto_instantiate": false, "auto_reload": "off", "default_csv_encoding": "utf-8", "default_sql_output": "auto", "on_cell_change": "autorun", "output_max_bytes": 8000000, "reactive_tests": true, "std_stream_max_bytes": 1000000, "watcher_on_save": "lazy"}, "save": {"autosave": "after_delay", "autosave_delay": 1000, "format_on_save": false}, "server": {"browser": "default", "follow_symlink": false}, "snippets": {"custom_paths": [], "include_default_snippets": true}},
"configOverrides": {},
"appConfig": {"sql_output": "auto", "width": "medium"},
"view": {"showAppCode": true},
"notebook": {"cells": [{"code": "import marimo as mo\nimport sys\nimport os\nfrom pathlib import Path\nimport plotly.graph_objects as go\nimport numpy as np\n\n# --- PATH INJECTION ---\ntry:\n notebook_path = Path(os.path.abspath(__file__))\nexcept NameError:\n notebook_path = Path(os.getcwd()) / \"labs\" / \"vol1\" / \"lab_01_ml_intro.py\"\n\nproject_root = notebook_path.parents[2]\nquarto_path = str(project_root / \"book\" / \"quarto\")\nif quarto_path not in sys.path:\n sys.path.append(quarto_path)\nif str(project_root) not in sys.path:\n sys.path.append(str(project_root))\n\n# --- ENGINE \u0026 CORE IMPORTS ---\nfrom mlsys import Engine, Models, Systems, ureg, Q_\nfrom labs.core.style import COLORS, LAB_CSS, apply_plotly_theme\nfrom labs.core.components import Card, PredictionLock\n", "code_hash": "ee869f622e0c3c832c7b4ad9a37b1965", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "Hbol", "name": "__"}, {"code": "# --- VISUAL THEME ---\nmo.vstack([\n LAB_CSS,\n mo.md(\"# \ud83d\ude80 Lab 01: The Moment of AI\")\n])", "code_hash": "be4d587c7a23de2968f9520b5eccaa41", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "MJUe", "name": "__"}, {"code": "mo.md(\n r\"\"\"\n ### **Mission: Witnessing the Foundations**\n Before you claim a specialization, you must understand the physical and mathematical laws that govern the ML universe. Complete the tasks below to earn your certification.\n \"\"\"\n)", "code_hash": "f6229f97526e0f04cd72fc32f2ce095a", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "vblA", "name": "__"}, {"code": "mo.md(\"## Part 1: The Magnitude Gap (D\u00b7A\u00b7M Taxonomy)\")", "code_hash": "0c0ee2ad997c9966b8db9ebfad926b0f", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "bkHC", "name": "__"}, {"code": "# Task 1 Definitions\np1_val, p1_ui = PredictionLock(1, \"How many orders of magnitude separate an ESP32 from an H100 RAM?\")", "code_hash": "5dfa9fc192f32ba2d45349ac37b448c1", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "lEQa", "name": "__"}, {"code": "p1_ui", "code_hash": "f2a93472e853e599a885533bc9578f03", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "PKri", "name": "__"}, {"code": "mo.stop(p1_val.value == \"\")\ntier_slider = mo.ui.slider(start=0, stop=3, step=1, value=0, label=\"Scale Tier (Tiny -\u003E Cloud)\")\ntier_slider", "code_hash": "3ef4f412a57cccbd39d5b6624950bc56", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "Xref", "name": "__"}, {"code": "_tiers = [Systems.Tiny, Systems.Mobile, Systems.Edge, Systems.Cloud]\n_sel = _tiers[tier_slider.value]\n\n_fig = go.Figure(go.Bar(\n x=['RAM (Log GB)', 'Compute (Log TFLOPS)', 'Power (Log W)'],\n y=[\n np.log10(max(_sel.ram.m_as('GB'), 1e-6)),\n np.log10(max(_sel.peak_flops.m_as('TFLOPs/s'), 1e-6)),\n np.log10(max(_sel.power_budget.m_as('watt'), 1e-6))\n ],\n marker_color=COLORS['BlueLine']\n))\n_fig.update_layout(yaxis=dict(range=[-6, 6], title=\"Log10 Scale\"), height=300)\n\nmo.vstack([\n mo.md(\"#### Analyzing the 10^9 Scaling Gap\"),\n mo.hstack([\n Card(f\"Tier: {_sel.name}\", mo.as_html(apply_plotly_theme(_fig))),\n Card(\"Dimension Data\", f\"- **RAM:** {_sel.ram:~}\\n- **Peak:** {_sel.peak_flops:~}\\n- **TDP:** {_sel.power_budget:~}\")\n ], widths=[2, 1]),\n mo.ui.text_area(label=\"REFLECT: Why can't we 'just shrink' a Cloud model to TinyML?\")\n])", "code_hash": "bf12f3dd52d30857fa1ee0592a5afd9b", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "SFPL", "name": "__"}, {"code": "mo.md(\"---\")\nmo.md(\"## Part 2: The Bitter Lesson\")", "code_hash": "45ec3bdab81bf84e99d581dbed98487b", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "BYtC", "name": "__"}, {"code": "p2_val, p2_ui = PredictionLock(2, \"Which scales better with compute: Hand-coded Logic or Learned Patterns?\")", "code_hash": "22aba5c754fa547565e1fdd4d3d32a2e", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "RGSE", "name": "__"}, {"code": "p2_ui", "code_hash": "de1a3141361cb6939c3e93ffcd768036", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "Kclp", "name": "__"}, {"code": "mo.stop(p2_val.value == \"\")\ncompute_scale = mo.ui.slider(start=1, stop=1000, step=10, value=1, label=\"Compute Budget (x)\")\ncompute_scale", "code_hash": "5590abca0739dc5cf5925a74d96ab711", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "emfo", "name": "__"}, {"code": "_x = np.linspace(1, 1000, 100)\n_y_expert = 20 * np.log10(_x + 1) + 50 \n_y_learning = 15 * (_x**0.2) + 60\n\n_fig_b = go.Figure()\n_fig_b.add_trace(go.Scatter(x=_x, y=_y_expert, name=\"Rules\", line=dict(color=COLORS['Grey'])))\n_fig_b.add_trace(go.Scatter(x=_x, y=_y_learning, name=\"Learning\", line=dict(color=COLORS['RedLine'], width=4)))\n_curr_y = 15 * (compute_scale.value**0.2) + 60\n_fig_b.add_trace(go.Scatter(x=[compute_scale.value], y=[_curr_y], mode='markers', marker=dict(size=12, color=COLORS['BlueLine'])))\n_fig_b.update_layout(title=\"Accuracy vs. Compute\", height=300)\n\nmo.vstack([\n mo.md(\"#### The Bitter Lesson in Action\"),\n mo.hstack([\n Card(\"Scaling Simulator\", mo.as_html(apply_plotly_theme(_fig_b))),\n Card(\"Verification Gap\", \"Input Space: **10^362,000** configurations.\")\n ], widths=[2, 1]),\n mo.ui.text_area(label=\"REFLECT: Is human expertise a 'depreciating asset'?\")\n])", "code_hash": "a94b43233fc436ff87cdf2956497f310", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "Hstk", "name": "__"}, {"code": "mo.md(\"---\")\nmo.md(\"## Part 3: Claim Mission\")", "code_hash": "bc489a7f875a2b239d9bcd6cd4754ce5", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "nWHF", "name": "__"}, {"code": "track_selector = mo.ui.radio(\n options={\n \"\u2601\ufe0f Cloud Titan\": \"CLOUD\",\n \"\ud83e\udd16 Edge Guardian\": \"EDGE\",\n \"\ud83d\udd76\ufe0f Mobile Nomad\": \"MOBILE\",\n \"\ud83d\udc42 Tiny Pioneer\": \"TINY\"\n },\n label=\"Select your Career Specialization Track\"\n)\ntrack_selector", "code_hash": "ff605dcbb67a9e66e52a05b8a3b7307e", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "iLit", "name": "__"}, {"code": "mo.stop(track_selector.value is None)\n\n_data = {\n \"CLOUD\": {\"title\": \"LLM Architect\", \"msg\": \"Maximize Llama-3-70B serving.\", \"color\": COLORS['BlueLine']},\n \"EDGE\": {\"title\": \"AV Lead\", \"msg\": \"Maintain 10ms safety loop.\", \"color\": COLORS['RedLine']},\n \"MOBILE\": {\"title\": \"AR Glasses Dev\", \"msg\": \"60FPS overlay under 2W.\", \"color\": COLORS['OrangeLine']},\n \"TINY\": {\"title\": \"Hearable Lead\", \"msg\": \"Speech isolation in \u003C10ms.\", \"color\": COLORS['GreenLine']}\n}\n\n_t = _data[track_selector.value]\n\nmo.vstack([\n mo.md(f\"### \ud83c\udf96\ufe0f MISSION GRANTED: {_t['title']}\"),\n mo.md(f\"\u003Cdiv style='padding:20px; border-left:8px solid {_t['color']}; background:#f8faff;'\u003E\u003Cstrong\u003EGoal:\u003C/strong\u003E {_t['msg']}\u003C/div\u003E\"),\n Card(\"Design Ledger\", \"\u2705 Initialized. Next: Lab 02.\")\n])", "code_hash": "a83251577e8a686537b3beb7fef0a385", "config": {"column": null, "disabled": false, "hide_code": false}, "id": "ZHCJ", "name": "__"}], "metadata": {"marimo_version": "0.19.6"}, "version": "1"},
"session": {"cells": [{"code_hash": "ee869f622e0c3c832c7b4ad9a37b1965", "console": [], "id": "Hbol", "outputs": [{"data": {"text/plain": ""}, "type": "data"}]}, {"code_hash": "be4d587c7a23de2968f9520b5eccaa41", "console": [], "id": "MJUe", "outputs": [{"data": {"text/html": "\u003Cdiv style='display: flex;flex: 1;flex-direction: column;justify-content: flex-start;align-items: normal;flex-wrap: nowrap;gap: 0.5rem'\u003E\n\u003Cstyle\u003E\n .lab-card {\n background-color: white;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n padding: 1.5rem;\n margin-bottom: 1rem;\n box-shadow: 0 2px 4px rgba(0,0,0,0.05);\n }\n .lab-card h3 {\n margin-top: 0;\n color: #2c3e50;\n border-bottom: 2px solid #006395;\n display: inline-block;\n padding-bottom: 4px;\n margin-bottom: 1.2rem;\n font-size: 1.1rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n }\n .metric-value {\n font-family: 'SF Mono', 'Roboto Mono', 'Menlo', monospace;\n font-weight: 600;\n color: #006395;\n }\n .feasibility-banner {\n padding: 15px;\n color: white;\n border-radius: 8px;\n font-weight: bold;\n text-align: center;\n font-family: sans-serif;\n margin-bottom: 20px;\n box-shadow: 0 4px 6px rgba(0,0,0,0.1);\n font-size: 1.2em;\n }\n .prediction-box {\n background-color: #f8f9fa;\n border-left: 5px solid #CC5500;\n padding: 1rem;\n border-radius: 4px;\n margin-bottom: 1.5rem;\n }\n .stakeholder-quote {\n font-style: italic;\n color: #555;\n border-left: 3px solid #bdc3c7;\n padding-left: 15px;\n margin: 15px 0;\n }\n\u003C/style\u003E\n\u003Cspan class=\"markdown prose dark:prose-invert contents\"\u003E\u003Ch1 id=\"lab-01-the-moment-of-ai\"\u003E\ud83d\ude80 Lab 01: The Moment of AI\u003C/h1\u003E\u003C/span\u003E\u003C/div\u003E"}, "type": "data"}]}, {"code_hash": "f6229f97526e0f04cd72fc32f2ce095a", "console": [], "id": "vblA", "outputs": [{"data": {"text/markdown": "\u003Cspan class=\"markdown prose dark:prose-invert contents\"\u003E\u003Ch3 id=\"mission-witnessing-the-foundations\"\u003E\u003Cstrong\u003EMission: Witnessing the Foundations\u003C/strong\u003E\u003C/h3\u003E\n\u003Cspan class=\"paragraph\"\u003EBefore you claim a specialization, you must understand the physical and mathematical laws that govern the ML universe. Complete the tasks below to earn your certification.\u003C/span\u003E\u003C/span\u003E"}, "type": "data"}]}, {"code_hash": "0c0ee2ad997c9966b8db9ebfad926b0f", "console": [], "id": "bkHC", "outputs": [{"data": {"text/markdown": "\u003Cspan class=\"markdown prose dark:prose-invert contents\"\u003E\u003Ch2 id=\"part-1-the-magnitude-gap-dam-taxonomy\"\u003EPart 1: The Magnitude Gap (D\u00b7A\u00b7M Taxonomy)\u003C/h2\u003E\u003C/span\u003E"}, "type": "data"}]}, {"code_hash": "5dfa9fc192f32ba2d45349ac37b448c1", "console": [], "id": "lEQa", "outputs": [{"data": {"text/plain": ""}, "type": "data"}]}, {"code_hash": "f2a93472e853e599a885533bc9578f03", "console": [], "id": "PKri", "outputs": [{"data": {"text/html": "\u003Cdiv style='display: flex;flex: 1;flex-direction: column;justify-content: flex-start;align-items: normal;flex-wrap: nowrap;gap: 0.5rem'\u003E\u003Cmarimo-ui-element object-id='lEQa-0' random-id='c2775a30-f563-d4a1-a93e-a696df615b2f'\u003E\u003Cmarimo-text-area data-initial-value='\u0026quot;\u0026quot;' data-label='\u0026quot;\u0026lt;span class=\u0026#92;\u0026quot;markdown prose dark:prose-invert contents\u0026#92;\u0026quot;\u0026gt;\u0026lt;span class=\u0026#92;\u0026quot;paragraph\u0026#92;\u0026quot;\u0026gt;PREDICT: How many orders of magnitude separate an ESP32 from an H100 RAM?\u0026lt;/span\u0026gt;\u0026lt;/span\u0026gt;\u0026quot;' data-placeholder='\u0026quot;Enter your hypothesis to unlock the instruments...\u0026quot;' data-disabled='false' data-debounce='true' data-full-width='true'\u003E\u003C/marimo-text-area\u003E\u003C/marimo-ui-element\u003E\u003Cspan class=\"markdown prose dark:prose-invert contents\"\u003E\u003Cdiv class='prediction-box'\u003E\n \u003Ch4\u003E\u26a0\ufe0f Task 1 Locked\u003C/h4\u003E\n \u003Cspan class=\"paragraph\"\u003EPlease enter your prediction above to witness the physics.\u003C/span\u003E\n\u003C/div\u003E\u003C/span\u003E\u003C/div\u003E"}, "type": "data"}]}, {"code_hash": "3ef4f412a57cccbd39d5b6624950bc56", "console": [], "id": "Xref", "outputs": [{"data": {"text/plain": ""}, "type": "data"}]}, {"code_hash": "bf12f3dd52d30857fa1ee0592a5afd9b", "console": [], "id": "SFPL", "outputs": [{"ename": "ancestor-stopped", "evalue": "This cell wasn't run because an ancestor was stopped with `mo.stop`: ", "traceback": [], "type": "error"}]}, {"code_hash": "45ec3bdab81bf84e99d581dbed98487b", "console": [], "id": "BYtC", "outputs": [{"data": {"text/markdown": "\u003Cspan class=\"markdown prose dark:prose-invert contents\"\u003E\u003Ch2 id=\"part-2-the-bitter-lesson\"\u003EPart 2: The Bitter Lesson\u003C/h2\u003E\u003C/span\u003E"}, "type": "data"}]}, {"code_hash": "22aba5c754fa547565e1fdd4d3d32a2e", "console": [], "id": "RGSE", "outputs": [{"data": {"text/plain": ""}, "type": "data"}]}, {"code_hash": "de1a3141361cb6939c3e93ffcd768036", "console": [], "id": "Kclp", "outputs": [{"data": {"text/html": "\u003Cdiv style='display: flex;flex: 1;flex-direction: column;justify-content: flex-start;align-items: normal;flex-wrap: nowrap;gap: 0.5rem'\u003E\u003Cmarimo-ui-element object-id='RGSE-0' random-id='57af9608-42f3-530a-d177-96d7f4d070f6'\u003E\u003Cmarimo-text-area data-initial-value='\u0026quot;\u0026quot;' data-label='\u0026quot;\u0026lt;span class=\u0026#92;\u0026quot;markdown prose dark:prose-invert contents\u0026#92;\u0026quot;\u0026gt;\u0026lt;span class=\u0026#92;\u0026quot;paragraph\u0026#92;\u0026quot;\u0026gt;PREDICT: Which scales better with compute: Hand-coded Logic or Learned Patterns?\u0026lt;/span\u0026gt;\u0026lt;/span\u0026gt;\u0026quot;' data-placeholder='\u0026quot;Enter your hypothesis to unlock the instruments...\u0026quot;' data-disabled='false' data-debounce='true' data-full-width='true'\u003E\u003C/marimo-text-area\u003E\u003C/marimo-ui-element\u003E\u003Cspan class=\"markdown prose dark:prose-invert contents\"\u003E\u003Cdiv class='prediction-box'\u003E\n \u003Ch4\u003E\u26a0\ufe0f Task 2 Locked\u003C/h4\u003E\n \u003Cspan class=\"paragraph\"\u003EPlease enter your prediction above to witness the physics.\u003C/span\u003E\n\u003C/div\u003E\u003C/span\u003E\u003C/div\u003E"}, "type": "data"}]}, {"code_hash": "5590abca0739dc5cf5925a74d96ab711", "console": [], "id": "emfo", "outputs": [{"data": {"text/plain": ""}, "type": "data"}]}, {"code_hash": "a94b43233fc436ff87cdf2956497f310", "console": [], "id": "Hstk", "outputs": [{"ename": "ancestor-stopped", "evalue": "This cell wasn't run because an ancestor was stopped with `mo.stop`: ", "traceback": [], "type": "error"}]}, {"code_hash": "bc489a7f875a2b239d9bcd6cd4754ce5", "console": [], "id": "nWHF", "outputs": [{"data": {"text/markdown": "\u003Cspan class=\"markdown prose dark:prose-invert contents\"\u003E\u003Ch2 id=\"part-3-claim-mission\"\u003EPart 3: Claim Mission\u003C/h2\u003E\u003C/span\u003E"}, "type": "data"}]}, {"code_hash": "ff605dcbb67a9e66e52a05b8a3b7307e", "console": [], "id": "iLit", "outputs": [{"data": {"text/html": "\u003Cmarimo-ui-element object-id='iLit-0' random-id='b0e964fd-e372-1a4e-cb40-24cafd94be84'\u003E\u003Cmarimo-radio data-initial-value='null' data-label='\u0026quot;\u0026lt;span class=\u0026#92;\u0026quot;markdown prose dark:prose-invert contents\u0026#92;\u0026quot;\u0026gt;\u0026lt;span class=\u0026#92;\u0026quot;paragraph\u0026#92;\u0026quot;\u0026gt;Select your Career Specialization Track\u0026lt;/span\u0026gt;\u0026lt;/span\u0026gt;\u0026quot;' data-options='[\u0026quot;\u2601\ufe0f Cloud Titan\u0026quot;,\u0026quot;\ud83e\udd16 Edge Guardian\u0026quot;,\u0026quot;\ud83d\udd76\ufe0f Mobile Nomad\u0026quot;,\u0026quot;\ud83d\udc42 Tiny Pioneer\u0026quot;]' data-inline='false' data-disabled='false'\u003E\u003C/marimo-radio\u003E\u003C/marimo-ui-element\u003E"}, "type": "data"}]}, {"code_hash": "a83251577e8a686537b3beb7fef0a385", "console": [], "id": "ZHCJ", "outputs": [{"data": {"text/plain": ""}, "type": "data"}]}], "metadata": {"marimo_version": "0.19.6"}, "version": "1"},
"runtimeConfig": null,
};
</script>
<marimo-code hidden="">
import%20marimo%0A%0A__generated_with%20%3D%20%220.19.6%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20import%20sys%0A%20%20%20%20import%20os%0A%20%20%20%20from%20pathlib%20import%20Path%0A%20%20%20%20import%20plotly.graph_objects%20as%20go%0A%20%20%20%20import%20numpy%20as%20np%0A%0A%20%20%20%20%23%20---%20PATH%20INJECTION%20---%0A%20%20%20%20try%3A%0A%20%20%20%20%20%20%20%20notebook_path%20%3D%20Path(os.path.abspath(__file__))%0A%20%20%20%20except%20NameError%3A%0A%20%20%20%20%20%20%20%20notebook_path%20%3D%20Path(os.getcwd())%20%2F%20%22labs%22%20%2F%20%22vol1%22%20%2F%20%22lab_01_ml_intro.py%22%0A%0A%20%20%20%20project_root%20%3D%20notebook_path.parents%5B2%5D%0A%20%20%20%20quarto_path%20%3D%20str(project_root%20%2F%20%22book%22%20%2F%20%22quarto%22)%0A%20%20%20%20if%20quarto_path%20not%20in%20sys.path%3A%0A%20%20%20%20%20%20%20%20sys.path.append(quarto_path)%0A%20%20%20%20if%20str(project_root)%20not%20in%20sys.path%3A%0A%20%20%20%20%20%20%20%20sys.path.append(str(project_root))%0A%0A%20%20%20%20%23%20---%20ENGINE%20%26%20CORE%20IMPORTS%20---%0A%20%20%20%20from%20mlsys%20import%20Engine%2C%20Models%2C%20Systems%2C%20ureg%2C%20Q_%0A%20%20%20%20from%20labs.core.style%20import%20COLORS%2C%20LAB_CSS%2C%20apply_plotly_theme%0A%20%20%20%20from%20labs.core.components%20import%20Card%2C%20PredictionLock%0A%0A%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20COLORS%2C%0A%20%20%20%20%20%20%20%20Card%2C%0A%20%20%20%20%20%20%20%20LAB_CSS%2C%0A%20%20%20%20%20%20%20%20PredictionLock%2C%0A%20%20%20%20%20%20%20%20Systems%2C%0A%20%20%20%20%20%20%20%20apply_plotly_theme%2C%0A%20%20%20%20%20%20%20%20go%2C%0A%20%20%20%20%20%20%20%20mo%2C%0A%20%20%20%20%20%20%20%20np%2C%0A%20%20%20%20)%0A%0A%0A%40app.cell%0Adef%20_(LAB_CSS%2C%20mo)%3A%0A%20%20%20%20%23%20---%20VISUAL%20THEME%20---%0A%20%20%20%20mo.vstack(%5B%0A%20%20%20%20%20%20%20%20LAB_CSS%2C%0A%20%20%20%20%20%20%20%20mo.md(%22%23%20%F0%9F%9A%80%20Lab%2001%3A%20The%20Moment%20of%20AI%22)%0A%20%20%20%20%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20**Mission%3A%20Witnessing%20the%20Foundations**%0A%20%20%20%20Before%20you%20claim%20a%20specialization%2C%20you%20must%20understand%20the%20physical%20and%20mathematical%20laws%20that%20govern%20the%20ML%20universe.%20Complete%20the%20tasks%20below%20to%20earn%20your%20certification.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%22%22%22%0A%20%20%20%20%23%23%20Part%201%3A%20The%20Magnitude%20Gap%20(D%C2%B7A%C2%B7M%20Taxonomy)%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(PredictionLock)%3A%0A%20%20%20%20%23%20Task%201%20Definitions%0A%20%20%20%20p1_val%2C%20p1_ui%20%3D%20PredictionLock(1%2C%20%22How%20many%20orders%20of%20magnitude%20separate%20an%20ESP32%20from%20an%20H100%20RAM%3F%22)%0A%20%20%20%20return%20p1_ui%2C%20p1_val%0A%0A%0A%40app.cell%0Adef%20_(p1_ui)%3A%0A%20%20%20%20p1_ui%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo%2C%20p1_val)%3A%0A%20%20%20%20mo.stop(p1_val.value%20%3D%3D%20%22%22)%0A%20%20%20%20tier_slider%20%3D%20mo.ui.slider(start%3D0%2C%20stop%3D3%2C%20step%3D1%2C%20value%3D0%2C%20label%3D%22Scale%20Tier%20(Tiny%20-%3E%20Cloud)%22)%0A%20%20%20%20tier_slider%0A%20%20%20%20return%20(tier_slider%2C)%0A%0A%0A%40app.cell%0Adef%20_(COLORS%2C%20Card%2C%20Systems%2C%20apply_plotly_theme%2C%20go%2C%20mo%2C%20np%2C%20tier_slider)%3A%0A%20%20%20%20_tiers%20%3D%20%5BSystems.Tiny%2C%20Systems.Mobile%2C%20Systems.Edge%2C%20Systems.Cloud%5D%0A%20%20%20%20_sel%20%3D%20_tiers%5Btier_slider.value%5D%0A%0A%20%20%20%20_fig%20%3D%20go.Figure(go.Bar(%0A%20%20%20%20%20%20%20%20x%3D%5B'RAM%20(Log%20GB)'%2C%20'Compute%20(Log%20TFLOPS)'%2C%20'Power%20(Log%20W)'%5D%2C%0A%20%20%20%20%20%20%20%20y%3D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20np.log10(max(_sel.ram.m_as('GB')%2C%201e-6))%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20np.log10(max(_sel.peak_flops.m_as('TFLOPs%2Fs')%2C%201e-6))%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20np.log10(max(_sel.power_budget.m_as('watt')%2C%201e-6))%0A%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20marker_color%3DCOLORS%5B'BlueLine'%5D%0A%20%20%20%20))%0A%20%20%20%20_fig.update_layout(yaxis%3Ddict(range%3D%5B-6%2C%206%5D%2C%20title%3D%22Log10%20Scale%22)%2C%20height%3D300)%0A%0A%20%20%20%20mo.vstack(%5B%0A%20%20%20%20%20%20%20%20mo.md(%22%23%23%23%23%20Analyzing%20the%2010%5E9%20Scaling%20Gap%22)%2C%0A%20%20%20%20%20%20%20%20mo.hstack(%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20Card(f%22Tier%3A%20%7B_sel.name%7D%22%2C%20mo.as_html(apply_plotly_theme(_fig)))%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20Card(%22Dimension%20Data%22%2C%20f%22-%20**RAM%3A**%20%7B_sel.ram%3A~%7D%5Cn-%20**Peak%3A**%20%7B_sel.peak_flops%3A~%7D%5Cn-%20**TDP%3A**%20%7B_sel.power_budget%3A~%7D%22)%0A%20%20%20%20%20%20%20%20%5D%2C%20widths%3D%5B2%2C%201%5D)%2C%0A%20%20%20%20%20%20%20%20mo.ui.text_area(label%3D%22REFLECT%3A%20Why%20can't%20we%20'just%20shrink'%20a%20Cloud%20model%20to%20TinyML%3F%22)%0A%20%20%20%20%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%22---%22)%0A%20%20%20%20mo.md(%22%23%23%20Part%202%3A%20The%20Bitter%20Lesson%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(PredictionLock)%3A%0A%20%20%20%20p2_val%2C%20p2_ui%20%3D%20PredictionLock(2%2C%20%22Which%20scales%20better%20with%20compute%3A%20Hand-coded%20Logic%20or%20Learned%20Patterns%3F%22)%0A%20%20%20%20return%20p2_ui%2C%20p2_val%0A%0A%0A%40app.cell%0Adef%20_(p2_ui)%3A%0A%20%20%20%20p2_ui%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo%2C%20p2_val)%3A%0A%20%20%20%20mo.stop(p2_val.value%20%3D%3D%20%22%22)%0A%20%20%20%20compute_scale%20%3D%20mo.ui.slider(start%3D1%2C%20stop%3D1000%2C%20step%3D10%2C%20value%3D1%2C%20label%3D%22Compute%20Budget%20(x)%22)%0A%20%20%20%20compute_scale%0A%20%20%20%20return%20(compute_scale%2C)%0A%0A%0A%40app.cell%0Adef%20_(COLORS%2C%20Card%2C%20apply_plotly_theme%2C%20compute_scale%2C%20go%2C%20mo%2C%20np)%3A%0A%20%20%20%20_x%20%3D%20np.linspace(1%2C%201000%2C%20100)%0A%20%20%20%20_y_expert%20%3D%2020%20*%20np.log10(_x%20%2B%201)%20%2B%2050%20%0A%20%20%20%20_y_learning%20%3D%2015%20*%20(_x**0.2)%20%2B%2060%0A%0A%20%20%20%20_fig_b%20%3D%20go.Figure()%0A%20%20%20%20_fig_b.add_trace(go.Scatter(x%3D_x%2C%20y%3D_y_expert%2C%20name%3D%22Rules%22%2C%20line%3Ddict(color%3DCOLORS%5B'Grey'%5D)))%0A%20%20%20%20_fig_b.add_trace(go.Scatter(x%3D_x%2C%20y%3D_y_learning%2C%20name%3D%22Learning%22%2C%20line%3Ddict(color%3DCOLORS%5B'RedLine'%5D%2C%20width%3D4)))%0A%20%20%20%20_curr_y%20%3D%2015%20*%20(compute_scale.value**0.2)%20%2B%2060%0A%20%20%20%20_fig_b.add_trace(go.Scatter(x%3D%5Bcompute_scale.value%5D%2C%20y%3D%5B_curr_y%5D%2C%20mode%3D'markers'%2C%20marker%3Ddict(size%3D12%2C%20color%3DCOLORS%5B'BlueLine'%5D)))%0A%20%20%20%20_fig_b.update_layout(title%3D%22Accuracy%20vs.%20Compute%22%2C%20height%3D300)%0A%0A%20%20%20%20mo.vstack(%5B%0A%20%20%20%20%20%20%20%20mo.md(%22%23%23%23%23%20The%20Bitter%20Lesson%20in%20Action%22)%2C%0A%20%20%20%20%20%20%20%20mo.hstack(%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20Card(%22Scaling%20Simulator%22%2C%20mo.as_html(apply_plotly_theme(_fig_b)))%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20Card(%22Verification%20Gap%22%2C%20%22Input%20Space%3A%20**10%5E362%2C000**%20configurations.%22)%0A%20%20%20%20%20%20%20%20%5D%2C%20widths%3D%5B2%2C%201%5D)%2C%0A%20%20%20%20%20%20%20%20mo.ui.text_area(label%3D%22REFLECT%3A%20Is%20human%20expertise%20a%20'depreciating%20asset'%3F%22)%0A%20%20%20%20%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%22---%22)%0A%20%20%20%20mo.md(%22%23%23%20Part%203%3A%20Claim%20Mission%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20track_selector%20%3D%20mo.ui.radio(%0A%20%20%20%20%20%20%20%20options%3D%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%E2%98%81%EF%B8%8F%20Cloud%20Titan%22%3A%20%22CLOUD%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%F0%9F%A4%96%20Edge%20Guardian%22%3A%20%22EDGE%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%F0%9F%95%B6%EF%B8%8F%20Mobile%20Nomad%22%3A%20%22MOBILE%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%F0%9F%91%82%20Tiny%20Pioneer%22%3A%20%22TINY%22%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20label%3D%22Select%20your%20Career%20Specialization%20Track%22%0A%20%20%20%20)%0A%20%20%20%20track_selector%0A%20%20%20%20return%20(track_selector%2C)%0A%0A%0A%40app.cell%0Adef%20_(COLORS%2C%20Card%2C%20mo%2C%20track_selector)%3A%0A%20%20%20%20mo.stop(track_selector.value%20is%20None)%0A%0A%20%20%20%20_data%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%22CLOUD%22%3A%20%7B%22title%22%3A%20%22LLM%20Architect%22%2C%20%22msg%22%3A%20%22Maximize%20Llama-3-70B%20serving.%22%2C%20%22color%22%3A%20COLORS%5B'BlueLine'%5D%7D%2C%0A%20%20%20%20%20%20%20%20%22EDGE%22%3A%20%7B%22title%22%3A%20%22AV%20Lead%22%2C%20%22msg%22%3A%20%22Maintain%2010ms%20safety%20loop.%22%2C%20%22color%22%3A%20COLORS%5B'RedLine'%5D%7D%2C%0A%20%20%20%20%20%20%20%20%22MOBILE%22%3A%20%7B%22title%22%3A%20%22AR%20Glasses%20Dev%22%2C%20%22msg%22%3A%20%2260FPS%20overlay%20under%202W.%22%2C%20%22color%22%3A%20COLORS%5B'OrangeLine'%5D%7D%2C%0A%20%20%20%20%20%20%20%20%22TINY%22%3A%20%7B%22title%22%3A%20%22Hearable%20Lead%22%2C%20%22msg%22%3A%20%22Speech%20isolation%20in%20%3C10ms.%22%2C%20%22color%22%3A%20COLORS%5B'GreenLine'%5D%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20_t%20%3D%20_data%5Btrack_selector.value%5D%0A%0A%20%20%20%20mo.vstack(%5B%0A%20%20%20%20%20%20%20%20mo.md(f%22%23%23%23%20%F0%9F%8E%96%EF%B8%8F%20MISSION%20GRANTED%3A%20%7B_t%5B'title'%5D%7D%22)%2C%0A%20%20%20%20%20%20%20%20mo.md(f%22%3Cdiv%20style%3D'padding%3A20px%3B%20border-left%3A8px%20solid%20%7B_t%5B'color'%5D%7D%3B%20background%3A%23f8faff%3B'%3E%3Cstrong%3EGoal%3A%3C%2Fstrong%3E%20%7B_t%5B'msg'%5D%7D%3C%2Fdiv%3E%22)%2C%0A%20%20%20%20%20%20%20%20Card(%22Design%20Ledger%22%2C%20%22%E2%9C%85%20Initialized.%20Next%3A%20Lab%2002.%22)%0A%20%20%20%20%5D)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
</marimo-code>
<marimo-code-hash hidden="">a60322b0e258e68ee881110876c6baca</marimo-code-hash>
</body>
</html>