{
  "static": {
    "pages": 29,
    "local_links_checked": 1220,
    "lesson_count": 26,
    "content_characters": 43474,
    "errors": []
  },
  "run": {
    "status": "finished",
    "step": 18000,
    "parameters": 4877312,
    "device": "mps",
    "seconds": 1200.65,
    "model": {
      "vocab_size": 6646,
      "context": 64,
      "width": 256,
      "heads": 4,
      "layers": 4,
      "dropout": 0.1
    },
    "training": {
      "steps": 18000,
      "batch_size": 48,
      "learning_rate": 0.0006,
      "eval_every": 300,
      "eval_batches": 12,
      "seed": 2026
    },
    "best_val": 4.084603522531118,
    "peak_process_rss_mib": 704.5,
    "mps_driver_allocated_mib": 1281.5
  },
  "model_sha256": "4e715acea97f6651512894cb255b2db67a7c3bfc7c0b78fc870882bb9677a2e4",
  "data_manifest": {
    "train": 87236,
    "val": 4869,
    "test": 4790
  },
  "split_group_overlap": {
    "train/val": 0,
    "train/test": 0,
    "val/test": 0
  },
  "experiments_passed": 26,
  "solutions_passed": 26,
  "starters_raise_expected_error": 26,
  "generation_commands": [
    {
      "arguments": [
        "write",
        "--start",
        "春",
        "--form",
        "five",
        "--seed",
        "1",
        "--json",
        "--device",
        "mps"
      ],
      "exit_code": 0,
      "seconds": 2.292,
      "stdout": "[\n  {\n    \"text\": \"春色侵人眼，闲看旧树花。不知春事晚，只有两三家。\",\n    \"lines\": [\n      \"春色侵人眼，\",\n      \"闲看旧树花。\",\n      \"不知春事晚，\",\n      \"只有两三家。\"\n    ],\n    \"form\": 5,\n    \"model_step\": 18000,\n    \"keywords\": [],\n    \"keyword_literal_hits\": [],\n    \"keyword_rule_score\": 1.0,\n    \"model_mean_log_probability\": -2.513,\n    \"selection_score\": -0.513,\n    \"corpus_exact_match\": false,\n    \"repeated_bigrams\": 0,\n    \"repeated_line_endings\": 0,\n    \"corpus_check_available\": true,\n    \"corpus_check_note\": \"已对与模型版本匹配的三份材料执行整首精确重复检查。\"\n  }\n]\n",
      "stderr": ""
    },
    {
      "arguments": [
        "write",
        "--start",
        "明月",
        "--form",
        "seven",
        "--seed",
        "2",
        "--json",
        "--device",
        "mps"
      ],
      "exit_code": 0,
      "seconds": 2.407,
      "stdout": "[\n  {\n    \"text\": \"明月西湖处士家，一杯新酒过流霞。何人更问新年事，却笑刘郎醉眼花。\",\n    \"lines\": [\n      \"明月西湖处士家，\",\n      \"一杯新酒过流霞。\",\n      \"何人更问新年事，\",\n      \"却笑刘郎醉眼花。\"\n    ],\n    \"form\": 7,\n    \"model_step\": 18000,\n    \"keywords\": [],\n    \"keyword_literal_hits\": [],\n    \"keyword_rule_score\": 1.0,\n    \"model_mean_log_probability\": -2.633,\n    \"selection_score\": -0.633,\n    \"corpus_exact_match\": false,\n    \"repeated_bigrams\": 0,\n    \"repeated_line_endings\": 0,\n    \"corpus_check_available\": true,\n    \"corpus_check_note\": \"已对与模型版本匹配的三份材料执行整首精确重复检查。\"\n  }\n]\n",
      "stderr": ""
    },
    {
      "arguments": [
        "write",
        "--start",
        "春江花月夜",
        "--form",
        "five",
        "--seed",
        "3",
        "--json",
        "--device",
        "mps"
      ],
      "exit_code": 0,
      "seconds": 2.118,
      "stdout": "[\n  {\n    \"text\": \"春江花月夜，夜静水云秋。何处不相见，离人一两愁。\",\n    \"lines\": [\n      \"春江花月夜，\",\n      \"夜静水云秋。\",\n      \"何处不相见，\",\n      \"离人一两愁。\"\n    ],\n    \"form\": 5,\n    \"model_step\": 18000,\n    \"keywords\": [],\n    \"keyword_literal_hits\": [],\n    \"keyword_rule_score\": 1.0,\n    \"model_mean_log_probability\": -2.538,\n    \"selection_score\": -0.538,\n    \"corpus_exact_match\": false,\n    \"repeated_bigrams\": 0,\n    \"repeated_line_endings\": 0,\n    \"corpus_check_available\": true,\n    \"corpus_check_note\": \"已对与模型版本匹配的三份材料执行整首精确重复检查。\"\n  }\n]\n",
      "stderr": ""
    },
    {
      "arguments": [
        "write",
        "--keywords",
        "明月",
        "--form",
        "five",
        "--seed",
        "4",
        "--json",
        "--device",
        "mps"
      ],
      "exit_code": 0,
      "seconds": 2.254,
      "stdout": "[\n  {\n    \"text\": \"月色照明月，风光照镜湖。无人会稽首，更遣画屏无。\",\n    \"lines\": [\n      \"月色照明月，\",\n      \"风光照镜湖。\",\n      \"无人会稽首，\",\n      \"更遣画屏无。\"\n    ],\n    \"form\": 5,\n    \"model_step\": 18000,\n    \"keywords\": [\n      \"明月\"\n    ],\n    \"keyword_literal_hits\": [\n      \"明月\"\n    ],\n    \"keyword_rule_score\": 1.0,\n    \"model_mean_log_probability\": -2.838,\n    \"selection_score\": -0.838,\n    \"corpus_exact_match\": false,\n    \"repeated_bigrams\": 0,\n    \"repeated_line_endings\": 0,\n    \"corpus_check_available\": true,\n    \"corpus_check_note\": \"已对与模型版本匹配的三份材料执行整首精确重复检查。\"\n  }\n]\n",
      "stderr": ""
    },
    {
      "arguments": [
        "write",
        "--keywords",
        "秋雨,故乡",
        "--form",
        "seven",
        "--count",
        "3",
        "--seed",
        "5",
        "--json",
        "--device",
        "mps"
      ],
      "exit_code": 0,
      "seconds": 2.49,
      "stdout": "[\n  {\n    \"text\": \"故乡秋雨已离愁，天气昏昏未可忧。独有故人今又去，一年相送不东流。\",\n    \"lines\": [\n      \"故乡秋雨已离愁，\",\n      \"天气昏昏未可忧。\",\n      \"独有故人今又去，\",\n      \"一年相送不东流。\"\n    ],\n    \"form\": 7,\n    \"model_step\": 18000,\n    \"keywords\": [\n      \"秋雨\",\n      \"故乡\"\n    ],\n    \"keyword_literal_hits\": [\n      \"秋雨\",\n      \"故乡\"\n    ],\n    \"keyword_rule_score\": 1.0,\n    \"model_mean_log_probability\": -2.769,\n    \"selection_score\": -1.469,\n    \"corpus_exact_match\": false,\n    \"repeated_bigrams\": 0,\n    \"repeated_line_endings\": 0,\n    \"corpus_check_available\": true,\n    \"corpus_check_note\": \"已对与模型版本匹配的三份材料执行整首精确重复检查。\"\n  },\n  {\n    \"text\": \"故人今日到重阳，一笑何如有故乡。万国万家今尽在，秋风萧索杜鹃黄。\",\n    \"lines\": [\n      \"故人今日到重阳，\",\n      \"一笑何如有故乡。\",\n      \"万国万家今尽在，\",\n      \"秋风萧索杜鹃黄。\"\n    ],\n    \"form\": 7,\n    \"model_step\": 18000,\n    \"keywords\": [\n      \"秋雨\",\n      \"故乡\"\n    ],\n    \"keyword_literal_hits\": [\n      \"故乡\"\n    ],\n    \"keyword_rule_score\": 0.575,\n    \"model_mean_log_probability\": -2.762,\n    \"selection_score\": -1.612,\n    \"corpus_exact_match\": false,\n    \"repeated_bigrams\": 0,\n    \"repeated_line_endings\": 0,\n    \"corpus_check_available\": true,\n    \"corpus_check_note\": \"已对与模型版本匹配的三份材料执行整首精确重复检查。\"\n  },\n  {\n    \"text\": \"三年秋雨到秋原，天下山田不见村。万里征人来不到，不知何处觅黄昏。\",\n    \"lines\": [\n      \"三年秋雨到秋原，\",\n      \"天下山田不见村。\",\n      \"万里征人来不到，\",\n      \"不知何处觅黄昏。\"\n    ],\n    \"form\": 7,\n    \"model_step\": 18000,\n    \"keywords\": [\n      \"秋雨\",\n      \"故乡\"\n    ],\n    \"keyword_literal_hits\": [\n      \"秋雨\"\n    ],\n    \"keyword_rule_score\": 0.5,\n    \"model_mean_log_probability\": -2.702,\n    \"selection_score\": -2.052,\n    \"corpus_exact_match\": false,\n    \"repeated_bigrams\": 0,\n    \"repeated_line_endings\": 0,\n    \"corpus_check_available\": true,\n    \"corpus_check_note\": \"已对与模型版本匹配的三份材料执行整首精确重复检查。\"\n  }\n]\n",
      "stderr": ""
    },
    {
      "arguments": [
        "write",
        "--start",
        "風",
        "--form",
        "seven",
        "--seed",
        "6",
        "--json",
        "--device",
        "mps"
      ],
      "exit_code": 0,
      "seconds": 2.455,
      "stdout": "[\n  {\n    \"text\": \"风流一棹古人愁，不似沧波似帝州。欲识吴王旧时事，不堪流水到家头。\",\n    \"lines\": [\n      \"风流一棹古人愁，\",\n      \"不似沧波似帝州。\",\n      \"欲识吴王旧时事，\",\n      \"不堪流水到家头。\"\n    ],\n    \"form\": 7,\n    \"model_step\": 18000,\n    \"keywords\": [],\n    \"keyword_literal_hits\": [],\n    \"keyword_rule_score\": 1.0,\n    \"model_mean_log_probability\": -2.943,\n    \"selection_score\": -0.943,\n    \"corpus_exact_match\": false,\n    \"repeated_bigrams\": 0,\n    \"repeated_line_endings\": 0,\n    \"corpus_check_available\": true,\n    \"corpus_check_note\": \"已对与模型版本匹配的三份材料执行整首精确重复检查。\"\n  }\n]\n",
      "stderr": ""
    }
  ],
  "seed_reproducible": true,
  "invalid_inputs": [
    {
      "arguments": [
        "write",
        "--temperature",
        "0",
        "--device",
        "mps"
      ],
      "exit_code": 2,
      "seconds": 1.662,
      "stdout": "",
      "stderr": "提示：temperature 必须是有限正数。\n"
    },
    {
      "arguments": [
        "write",
        "--count",
        "0",
        "--device",
        "mps"
      ],
      "exit_code": 2,
      "seconds": 1.642,
      "stdout": "",
      "stderr": "提示：每次生成数量应在 1—20 之间。\n"
    },
    {
      "arguments": [
        "write",
        "--start",
        "春江花月夜山",
        "--device",
        "mps"
      ],
      "exit_code": 2,
      "seconds": 1.651,
      "stdout": "",
      "stderr": "提示：开头请使用不超过 5 个汉字。\n"
    },
    {
      "arguments": [
        "write",
        "--start",
        "abc",
        "--device",
        "mps"
      ],
      "exit_code": 2,
      "seconds": 1.682,
      "stdout": "",
      "stderr": "提示：开头请使用不超过 5 个汉字。\n"
    },
    {
      "arguments": [
        "write",
        "--start",
        "龘",
        "--device",
        "mps"
      ],
      "exit_code": 2,
      "seconds": 1.634,
      "stdout": "",
      "stderr": "提示：字表中没有这些字：龘\n"
    },
    {
      "arguments": [
        "write",
        "--checkpoint",
        "/not/a/model.pt",
        "--device",
        "mps"
      ],
      "exit_code": 2,
      "seconds": 0.816,
      "stdout": "",
      "stderr": "提示：找不到模型：/not/a/model.pt。先运行训练，或选择已交付的 artifacts/runs/poet/best.pt。\n"
    }
  ],
  "chat": {
    "arguments": [
      "chat",
      "--device",
      "mps"
    ],
    "exit_code": 0,
    "seconds": 2.279,
    "stdout": "古诗写作。输入 /quit 退出；输入 /start 春 指定开头；其他文字作为关键词。\n关键词或开头 > 春日随风去，\n秋风动客衣。\n何时不惆怅，\n又似有春归。\n关键词或开头 > ",
    "stderr": ""
  },
  "outside_directory": true,
  "errors": [],
  "passed": true,
  "follow_up_checks": {
    "course_service": "reports/course-server.json",
    "background_service_verified": true,
    "core_tests_passed": 24,
    "browser_homepage_loaded": true,
    "training_model_reloaded_and_generated": true,
    "illustrated_course": {
      "report": "reports/illustrated/validation.json",
      "passed": true,
      "screenshots": 18,
      "diagrams": 3,
      "demo_steps": 75,
      "date": "2026-09-19"
    }
  }
}