{
  "schema": "aner.native-llm-workflow-trace-v1",
  "source": {
    "path": "examples/generative_research_workflow.aner",
    "sha256": "dbaef3e34a204506cc969db8fab50725457a3f61dcfdbfc0ee7a72703db3a37a"
  },
  "runtime": {
    "version": "Aner 0.1.40-dev",
    "implementation_sha256": "c38654ad543bc5db6522b4372e84b72f6c59515e149848e7469ecd82fbd1842b",
    "device": "cpu",
    "dtype": "Float64"
  },
  "tokenizer": {
    "kind": "fixed byte",
    "vocabulary": 259
  },
  "model": {
    "context": 24,
    "width": 8,
    "heads": 2,
    "layers": 1,
    "dropout": 0,
    "seed": 63
  },
  "training": {
    "steps": 120,
    "batch": 2,
    "rate": 0.01,
    "seed": 99,
    "clip_norm": 1,
    "warmup_steps": 0,
    "weight_decay": 0
  },
  "trace": [
    {
      "step": 0,
      "training_loss": 5.575546306814479,
      "validation_loss": 5.574810472225501
    },
    {
      "step": 30,
      "training_loss": 0.9884711031223188,
      "validation_loss": 0.997373496666565
    },
    {
      "step": 60,
      "training_loss": 0.7084473186031739,
      "validation_loss": 0.930911702419572
    },
    {
      "step": 90,
      "training_loss": 0.6592567175235341,
      "validation_loss": 1.037920848848593
    },
    {
      "step": 120,
      "training_loss": 0.655314490042451,
      "validation_loss": 1.0758657326582375
    }
  ],
  "uniform_loss": 5.556828061699537,
  "test_loss": 1.2709553317605011,
  "verification": {
    "native_checks_passed": 10,
    "checks": {
      "bpe_roundtrip": true,
      "checkpoint_roundtrip": true,
      "exact_split_resume": true,
      "training_improves": true,
      "validation_improves": true,
      "causal_prefix": true,
      "seeded_generation": true,
      "full_fine_tune_steps": true,
      "freezing_reduces_selection": true,
      "lora_training_steps": true
    },
    "dev_prod_stdout_equal": true,
    "dev_prod_artifacts_equal": true,
    "published_artifact_count": 5,
    "artifacts": [
      {
        "file": "research-bpe.anertoken",
        "sha256": "d4ed8103141c08b0526a9690f965733b007b48dd8f4428108960cab7de5ff5d4",
        "bytes": 683
      },
      {
        "file": "research-byte.anertoken",
        "sha256": "e78d2d4c05009c55131b270cf35a145b7aa90a38e77408fb21af737c5cedb149",
        "bytes": 172
      },
      {
        "file": "research-step60.anergen",
        "sha256": "4939c241b7b717159439d5b2323a9510fff3ed55deb67201e1e66bfe299a7d07",
        "bytes": 76378
      },
      {
        "file": "research-trained.anergen",
        "sha256": "dc4f85b47b1a43b066837ae5f59d430c80e157f5186f1d3a9c4b700bc26290c5",
        "bytes": 76378
      },
      {
        "file": "research-lora.anergen",
        "sha256": "56d6d00b552613ec3dd6155c2be6747ce4fe5728e79b162c258b9c7934c1d03f",
        "bytes": 29729
      }
    ]
  },
  "scope": "Related synthetic strings form a deterministic native workflow correctness fixture. These losses do not estimate natural-language quality or population generalization. All declared steps are retained; validation rises after step60. The trace model uses fixed byte IDs; the separate BPE roundtrip uses training-only fitting."
}
