{
  "schemaVersion": 1,
  "lessonId": "distributed-02",
  "contentHash": "1c8eea315a4b010f2d42b9d63799ef7d0db1b4f49a05b7582498d773c890dae2",
  "rendererHash": "a1bd5b648f4731ae5d5f0a24811c2540d1a0a132149ce589d17c4113509cbedf",
  "kind": "executed",
  "generatedAt": "2026-10-20T10:46:03.549327+00:00",
  "provenance": "recorded_cpu_computation",
  "environment": {
    "backend": "cpu",
    "deviceCount": 4,
    "jax": "0.9.2",
    "numpy": "2.4.4",
    "matplotlib": "3.10.8"
  },
  "stdout": "Initial loss: 4.875\nGradient: [-5.25 -0.75] updated weights: [0.52500004 0.075     ]\nUpdated loss: 2.6784372329711914\n",
  "data": {
    "kind": "bar",
    "labels": [
      "weight 0",
      "weight 1"
    ],
    "ylabel": "gradient coordinate",
    "series": [
      {
        "label": "sharded JAX",
        "y": [
          -5.25,
          -0.75
        ]
      },
      {
        "label": "NumPy reference",
        "y": [
          -5.25,
          -0.75
        ]
      }
    ]
  }
}
