botp
/

Solomon / MODIFICATIONS.md
orz99's picture ArcherHume's picture
Duplicate from DoccyHealth/Solomon
1d2de8a
|
Raw History Blame
7.21 kB
# Statement of changes
Apache License 2.0, section 4(b): prominent notice that files carry modifications.
## What is modified
**No upstream source file is modified.** No file from `Qwen/Qwen3.8-27B` is edited,
renamed, patched or redistributed in this repository, with one exception: the
upstream licence text is reproduced byte-for-byte at `licenses/Qwen-Apache-2.0.txt`
(sha256 `bbedc3fda3305820b977265f01b8619d87570a6739de3a5582c3464840f1e57a`) because section 4(a) requires it. That file is
unmodified and carries the upstream copyright.
The modification this work carries is not an edit to a source file. It is a set
of **trained parameters applied to the base model at inference time**, plus an
original serving layer that reads the model's logits. Concretely:
| Change | Artifact | sha256 |
|---|---|---|
| LoRA adapter, rank 64, question-side placement, float32 | `adapter/adapter.safetensors` | `d122466d430a058bb6457d919f811160e97fbd20149f4f24ca455c5d83e360a0` |
| Trained linear answer heads | `adapter/heads.npz` | `f766d752d7768a419a9657155cf27f042834d9de29392cf7470d8725130e67ab` |
| Readout calibration, one positive scalar per answer type | `serving/readout-temperature-v3.json` | file `1a2285d8fd56d17ee1d06a1e9fce866cc0d3b0263730754babb11deea5f1f7c9` / payload `945bad449b7f5ffc88e597277d632fbab81c3c8729e22c8babd3f4a45fe1378b` |
| Runtime identity binding (bf16, default) | `serving/serving-binding.json` | payload `0add0efda28902180db757a12160953e0f5d8dc303decc27b2cfda84db900da8` |
| Runtime identity binding (fp32) | `serving/serving-binding-fp32.json` | payload `517f263000cf65457751c4fba519221d48ac550e060b241f198b007ae88c59db` |
| Runtime identity binding (int8) | `serving/serving-binding-int8.json` | payload `b550254777ceb3f53e7e10e15f7dc9f80f620ddd9c1ed69592190da5f2107f16` |
| Experimental evidence head weights | `serving/evidence-head.safetensors` | `5088019adb67e523ef7411cf75e354f1070e5752c132e50f5f3acc4feb1c0f6c` |
| Experimental evidence head config | `serving/evidence-head.json` | `b8bf1d642af9f3a830f1ee47c49bda7336d65b56b97fe3625ea1741f133fa244` |
| Experimental evidence policy | `serving/evidence-policy.json` | `866888d26a5da9c91ffb1b418334e174a80320ea5f8d2216c2d459f2e25f3c84` |
| Serving layer (original work, not derived from upstream code) | `src/` | see `MANIFEST.json` |
Base model, unmodified and not redistributed: `Qwen/Qwen3.8-27B` at revision
`1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0`, Copyright 2026 Alibaba Cloud, Apache-2.0.
The v1.1 adapter and heads were trained on 21 September 2026 (v1.0: 16 to 20 September 2026). The shipped artifacts are
identified by the checksums in the table above and in `MANIFEST.json`.
## Which files carry a change notice
| File | Why |
|---|---|
| `NOTICE` | Section 4(b) and 4(c) statement, carried with every copy |
| `MODIFICATIONS.md` | this file |
| `README.md` | names the base model, the pinned revision and the derivative relationship in the front matter and in the body |
| `adapter/config.json` | machine-readable record of the base repo, the pinned revision and both weight checksums |
| `serving/serving-binding.json` | pins the exact runtime the weights were measured on and refuses to load against a different one |
No file under `src/` carries an upstream change notice, because no file under
`src/` contains upstream code. Every file there is original work, written for
this project, and is covered by the repository's own Apache-2.0 `LICENSE` and by
the copyright line in `NOTICE`.
All of the changes described above — the adapter, the heads, the calibration, the
serving binding and the serving layer — are Copyright 2026
Doccy Pty Ltd and licensed under Apache-2.0.
## Third-party text scan
Before release, **every file staged into this repository was scanned for text
originating in third-party source documents.** The scan compared normalised
6-gram and 8-gram shingles of every staged text file against:
1. the 42 third-party source records the training and evaluation panels were
built from (Apache-2.0, MIT, BSD-3-Clause, CC BY 4.0, CC BY-SA 4.0, CC0,
OGL v3.0 and US-government public-domain assertions); and
2. every generated panel and document corpus on disk.
**Result: no third-party document text is present in any shipped file.** The
only matches were:
* the reproduced Apache-2.0 licence text at `licenses/Qwen-Apache-2.0.txt`, which
matches an Apache-2.0 licence document held in the evaluation corpus and is
required to be here verbatim; and
* the phrase *"A missing fact is not a negative fact"*, which is **our own
prompt-template wording** appearing in our own evaluation panels, not
third-party text entering our prompts.
Acceptance fixtures are excluded from this repository entirely. The fixture
documents used in live acceptance are original synthetic text authored for this
project and held in tooling that is not distributed.
Re-run the scan with `ops/solomon_package.py --scan` in the source project.
## Maintainer notes
These warnings used to live in a `PUSH.md` that carried its own instruction to be
deleted before the repository was made public. The repository is public now, so
that file is gone — from the manifest and from the tree — and the parts of it that
are still true are kept here.
**Never mutate a published revision.** The serving binding pins by hash and
consumers pin by revision. If something is wrong with a published revision, push a
**new** revision and a **new** tag. Do not force-push over a revision that has
already been fetched: a consumer who pinned it would silently get different weights
under a hash they already trusted.
**Do not trust a fetch tool's exit code.** The remote-volume fetch used to retrieve the adapter PRINTS "No such file or directory" AND EXITS 0 on a wrong path: a failed download is indistinguishable from a successful one by return code. Never trust the exit status; check that the file exists and that its sha256 matches before treating a fetch as done.
The 870 MB adapter in this repository was fetched that way, and the only thing that
made the fetch trustworthy was re-hashing the file afterwards. Verify what you
downloaded from here the same way:
```sh
shasum -a 256 adapter/adapter.safetensors # d122466d430a058bb6457d919f811160e97fbd20149f4f24ca455c5d83e360a0
shasum -a 256 adapter/heads.npz # f766d752d7768a419a9657155cf27f042834d9de29392cf7470d8725130e67ab
```
`MANIFEST.json` carries the size and sha256 of every file here.
**Both weight files must go through git-lfs.** `.gitattributes` tracks
`*.safetensors` and `*.npz`; confirm with `git lfs ls-files` before committing. An
870 MB blob committed outside LFS has to be undone by rewriting history.
**Every generated file here comes from `release/solomon-release.json`.** Editing a
generated file by hand breaks the manifest hash and is caught by
`ops/solomon_package.py --enforce` as `DRIFTED_SINCE_STAGING`. Change the descriptor
or the generator and re-stage.
**A calibration may not be carried onto a different adapter.** The temperatures were
fitted on this model's logits. Refit and register them for a new adapter, or ship no
calibration and serve at T = 1.0, which is always permitted.