cognitive-learning-lab / MODEL_CARD.md
WayneRR's picture
cognitive-runtime 0.1.0 (PR-M1): thin research runtime, wheel+sdist, pinned laya@55cf4c4e
4225068 verified
|
Raw History Blame Contribute Delete
5.76 kB
# Model Card
Status: PR-M1 runtime implemented and locally accepted; the real-model smoke
**ran** on 2026-11-05 (offline, CPU, pinned local snapshot). Planned versions:
PR-M1/v0.1.0 (complete bounded runtime), PR-M2/v0.2.0 (deployment),
PR-M3/v0.3.0 (experimental conversation and bounded web learning). See
`PROJECT-PLAN.zh-CN.md`; future features are not evaluated capabilities.
## Model identity
- Model name: `convaiinnovations/laya` (upstream frozen checkpoint; not trained,
renamed or re-branded by this project)
- Source/revision: Hugging Face `convaiinnovations/laya` @
`55cf4c4ebb4ebe31b2550e8bdf3bd21b99753851` (upstream `lastModified`
2026-09-24T05:39:22Z)
- SHA-256 of `model.safetensors`:
`891102d372688fc2a094dac56a384bc537b87c63f21f9f3dac0be2b7cbc8d86c`
(842,609,210 bytes; local copy verified equal to the upstream LFS digest)
- Runtime package revision: `cognitive-runtime 0.1.0`
- License: upstream model card declares `apache-2.0`. This project's own
runtime code is `Apache-2.0` (`LICENSE`), decided by the owner on
2026-11-05; that licence covers the code only, not the checkpoint, and does
not re-license it. The published package is thin β€” no weights are bundled.
- Encoder dependency: `answerdotai/ModernBERT-large` @
`45bb4654a4d5aaff24dd11d4781fa46d39bf8c13`, `apache-2.0`. Its
`model.safetensors` is 1,583,544,840 bytes, upstream LFS digest
`44510fec5d3a81a1877f225637b869495f18e55f6f23a09abb9be0acc030295f`; the
owner downloaded it separately and the download was hash-verified.
Measured 2026-11-05: at inference `laya 0.3.20` does **not** read these
weights β€” it builds the network untrained and loads every parameter,
encoder included, from the Laya checkpoint; only the snapshot's
`encoder/config.json` is read as configuration. The smoke run in
`acceptance/PR-M1.md` item 2 executed with the hub in offline mode, which
also proves no hidden fetch.
## What the model actually does
`laya.load(...).predict(state, questions)` over **one typed `choice` question**
with one option per candidate. It returns a candidate id, per-option
probabilities and an answer confidence. It is a bounded selector over options
the runtime hands it β€” not a free-text generator, and not able to cite its own
sources.
`rl_agent_config.json` records `max_len=512`, `head_max_len=192`,
`max_prefixes=6`, `amp_dtype=bf16`, and `fine_tuned_from_checkpoint=true`
(7313 updates, 1 epoch). The option budget enforced by this package is 20.
## Calibration
`calibration_status` is reported per run. Laya emits a temperature warning at
load time, which this package maps to `uncalibrated`. Confidence values are
therefore **not** probabilities of correctness and must not be read as such.
The runtime never uses confidence to authorise an answer or a memory promotion.
## Evaluated behavior
Verified in PR-M1, in a clean install outside this repository, using the mock
provider:
- retrieval β†’ verification β†’ promotion β†’ typed judgment β†’ answer, persisted in
SQLite and reused by a second, independent process;
- abstention with no evidence, with conflicting receipts, with a tampered
record, with a duplicate candidate set, and with an unknown source ref;
- refusal of caller-supplied `verified`, `gold` or `expected` fields;
- a disagreeing model proposal does not change the authorized answer, and
`proposal_agrees_with_judgment` compares candidate text on both sides;
- a provider that returns no usable proposal (`schema_failure`, `timeout`,
`runtime_error`) exits `3` as `provider_error` instead of letting memory
answer in the model's place β€” a model that declines (`abstain`) still flows
through the judgment unchanged.
One end-to-end run then used the **real frozen checkpoint** (`provider_class=
"real"`, offline, CPU): `answered`/`team-north` with
`proposal_agrees_with_judgment=true`, real token usage recorded
(`prompt_tokens=117`), `calibration_status=uncalibrated` (the temperature
warning actually fired), and the writeback promoted with
`verification_status=pass`; a second independent process reused the memory
with `acquisition_calls=0`. That is **one smoke receipt on one synthetic
example on one machine** β€” it establishes that the pinned checkpoint loads and
the chain runs end-to-end with the real model; it is not an accuracy
evaluation, and nothing above the mock-provider list is claimed beyond it.
Not verified in PR-M1: any accuracy or quality evaluation of the real model,
cross-platform installation, and every capability belonging to PR-M2/PR-M3.
The sealed experiments in this repository carry task- and protocol-bound
evidence for bounded memory retrieval/replay, conflict and tamper rejection,
persistence across controlled restarts, and writeback boundaries. That evidence
was produced by the archived runners, not by this package, and is not
re-attributed here.
## Limitations
Long-horizon memory growth, open-domain autonomous search, universal transfer,
stable positive long-term marginal gain, and model-parameter growth are not
established. Verification in this package proves **provenance consistency** β€”
that a record still matches the receipt or lineage it cites. It does not prove
the cited claim is true in the world.
## Reproduction
```bash
pip install ./dist/cognitive_runtime-0.1.0-py3-none-any.whl
python -m cognitive_runtime doctor
python -m cognitive_runtime infer \
--input "$(python -c 'import cognitive_runtime.config as c;print(c.EXAMPLES_DIR/"request.json")')" \
--store ./memory.sqlite
```
The real-model path additionally needs the `model` extra, network or a local
copy of both upstream files, and `provider: laya` in the config. Until the
real-model smoke is recorded, no claim in this card depends on it.