DanVP commited on
Commit
3437141
·
verified ·
1 Parent(s): d5d7226

Add files using upload-large-folder tool

Browse files
.gitattributes CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ source.spm filter=lfs diff=lfs merge=lfs -text
37
+ target.spm filter=lfs diff=lfs merge=lfs -text
LICENSE ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Creative Commons Attribution 4.0 International (CC BY 4.0)
2
+
3
+ Copyright (c) 2026 DanVP
4
+
5
+ The model weights and owner-controlled supporting material in this repository
6
+ are licensed under the Creative Commons Attribution 4.0 International License.
7
+
8
+ You may share and adapt the material for any purpose, including commercially,
9
+ provided that you give appropriate credit, link to the license, and indicate
10
+ whether changes were made. Suggested attribution:
11
+
12
+ vp2vi by DanVP — https://huggingface.co/DanVP/vp2vi
13
+
14
+ License summary: https://creativecommons.org/licenses/by/4.0/
15
+ Full legal code: https://creativecommons.org/licenses/by/4.0/legalcode
16
+
17
+ Third-party components retain their own licenses and notices. This repository
18
+ does not include the separately distributed WebGPU runtime or Space source, nor
19
+ does it redistribute training or evaluation corpus text.
README.md ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-4.0
3
+ language:
4
+ - vi
5
+ base_model: DanVP/MoxhiMT-30-QT
6
+ library_name: transformers
7
+ pipeline_tag: text2text-generation
8
+ tags:
9
+ - marian
10
+ - vietnamese
11
+ - text-rewriting
12
+ - post-editing
13
+ - web-novel
14
+ ---
15
+
16
+ # vp2vi
17
+
18
+ **vp2vi** is a Vietnamese-to-Vietnamese text-rewriting model for polishing
19
+ VietPhrase/QT-style Chinese web-novel drafts into more natural Vietnamese. It
20
+ is a 36.5M-trainable-parameter Marian model with 8 encoder layers, 2 decoder
21
+ layers, a 448-dimensional hidden size, and a shared 24,000-token vocabulary.
22
+
23
+ The model continues from
24
+ [DanVP/MoxhiMT-30-QT](https://huggingface.co/DanVP/MoxhiMT-30-QT), retaining
25
+ its full tokenizer, vocabulary, encoder, and two-layer decoder initialization.
26
+
27
+ ## Quick start
28
+
29
+ ```python
30
+ import torch
31
+ from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
32
+
33
+ model_id = "DanVP/vp2vi"
34
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
35
+ model = AutoModelForSeq2SeqLM.from_pretrained(model_id)
36
+
37
+ draft = "Hắn đối với chuyện này cũng không có biện pháp nào."
38
+ inputs = tokenizer(draft, return_tensors="pt", add_special_tokens=False)
39
+
40
+ with torch.inference_mode():
41
+ output_ids = model.generate(
42
+ **inputs,
43
+ do_sample=False,
44
+ num_beams=1,
45
+ max_new_tokens=224,
46
+ )
47
+
48
+ print(tokenizer.decode(output_ids[0], skip_special_tokens=True))
49
+ ```
50
+
51
+ This is the standard Transformers compatibility path. Plain `generate()` can
52
+ still mishandle digits, repetition, or rare names; the hosted application uses
53
+ additional decoding constraints. Its browser runtime is distributed separately
54
+ and is not part of this model repository.
55
+
56
+ ## Intended use
57
+
58
+ - Sentence- or line-level polishing of Vietnamese VietPhrase/QT drafts from
59
+ xianxia, xuanhuan, and related web-novel genres.
60
+ - Local reading tools, post-editing experiments, and further fine-tuning.
61
+
62
+ This is not a Chinese-to-Vietnamese translator: the input is already a
63
+ Vietnamese machine-converted draft. It is not intended for factual, legal,
64
+ medical, or other high-stakes text.
65
+
66
+ ## Training data and procedure
67
+
68
+ The model was initialized from `DanVP/MoxhiMT-30-QT` and continued on
69
+ owner-curated Vietnamese draft→edited-text pairs. Training categories included
70
+ a filtered QT-convert pool (about 749k unique pairs), teacher-silver data
71
+ (about 49.6k pairs), a small teacher-gold seed (899 pairs), identity examples,
72
+ and about 150k synthetic name-swap pairs. Cumulative exposure reached
73
+ 1,237,021,456 target labels. Raw training and holdout corpora are not
74
+ redistributed in this repository.
75
+
76
+ The published `model.safetensors` is a deterministic reverse mapping of the
77
+ training checkpoint into standard `MarianMTModel` tensor names. The release
78
+ gate verifies complete tensor coverage, exact expected key layout, successful
79
+ `AutoTokenizer`/`AutoModelForSeq2SeqLM` loading, and logits/argmax parity against
80
+ the training implementation. Exact hashes are recorded in
81
+ `release_manifest.json`.
82
+
83
+ ## Limitations
84
+
85
+ - Training and validation focus on VietPhrase/QT drafts from Chinese web
86
+ novels. News, technical, legal, medical, academic, business, conversational,
87
+ and other genres are out of domain. The model may rewrite already-correct
88
+ prose, corrupt specialist terminology, or alter the meaning; avoid using it
89
+ as a general-purpose Vietnamese editor.
90
+ - Rare or out-of-distribution name inventories can cause large quality drops.
91
+ - Bare decoding may invent a digit, repeat text, omit content, or damage a
92
+ proper name. The guarded application path reduces these failures but does
93
+ not eliminate semantic errors.
94
+ - The checker still has a known blind spot for name-boundary resegmentation:
95
+ individually attested words can be recombined into the wrong name span.
96
+ - Earlier checker revisions also conflated book-level name recap with
97
+ invention and could flag legitimate repeated proper nouns; those two cases
98
+ were corrected in checker v2.
99
+ - The model works one line at a time, so cross-sentence consistency depends on
100
+ the input draft and surrounding application.
101
+
102
+ ## License and attribution
103
+
104
+ The model repository is released under
105
+ [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). Commercial use,
106
+ modification, and redistribution are permitted with attribution. Suggested
107
+ credit: **“vp2vi by DanVP”**, linking to
108
+ `https://huggingface.co/DanVP/vp2vi`.
109
+
110
+ The project owner authorized this public release on 2026-08-11. The model
111
+ repository contains model artifacts and documentation only; the separately
112
+ deployed browser runtime/Space has its own release boundary.
config.json ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "activation_dropout": 0.0,
3
+ "activation_function": "swish",
4
+ "architectures": [
5
+ "MarianMTModel"
6
+ ],
7
+ "attention_dropout": 0.1,
8
+ "bos_token_id": 1,
9
+ "d_model": 448,
10
+ "decoder_attention_heads": 8,
11
+ "decoder_ffn_dim": 1792,
12
+ "decoder_layerdrop": 0.0,
13
+ "decoder_layers": 2,
14
+ "decoder_start_token_id": 0,
15
+ "decoder_vocab_size": 24000,
16
+ "dropout": 0.1,
17
+ "dtype": "float32",
18
+ "encoder_attention_heads": 8,
19
+ "encoder_ffn_dim": 1792,
20
+ "encoder_layerdrop": 0.0,
21
+ "encoder_layers": 8,
22
+ "eos_token_id": 2,
23
+ "forced_eos_token_id": 2,
24
+ "init_std": 0.02,
25
+ "is_decoder": false,
26
+ "is_encoder_decoder": true,
27
+ "max_position_embeddings": 512,
28
+ "model_type": "marian",
29
+ "pad_token_id": 0,
30
+ "scale_embedding": true,
31
+ "share_encoder_decoder_embeddings": true,
32
+ "tie_word_embeddings": true,
33
+ "transformers_version": "5.9.0",
34
+ "use_cache": true,
35
+ "vocab_size": 24000
36
+ }
generation_config.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "bos_token_id": 1,
4
+ "decoder_start_token_id": 0,
5
+ "eos_token_id": 2,
6
+ "forced_eos_token_id": 2,
7
+ "output_attentions": false,
8
+ "output_hidden_states": false,
9
+ "pad_token_id": 0,
10
+ "transformers_version": "5.9.0",
11
+ "use_cache": true
12
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:525735a76983cc6e120ee461937bdd3c235a27a9f059ecbcb97df1a8e6e472cb
3
+ size 146139424
receipts/ape_a2_checker_v2_battery_v1.json ADDED
@@ -0,0 +1,193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "vp2vi-ape-a2-checker-v2-battery-v1",
3
+ "date": "2026-08-10",
4
+ "label": "VALIDATION_BATTERY_PRE_FREEZE (book deltas EXPLORATORY_BURNED_BOOKS_NO_GATE)",
5
+ "containsSentenceText": false,
6
+ "design": "docs/plans/2026-08-10-ape-a2-checker-v2-draft.md (27c3a1d)",
7
+ "implementation": {
8
+ "path": "scripts/ape_a2/a2_checker_v2.py",
9
+ "sha256": "4f689ec6c2ca79c5022d2513b7d8a33e82ffab71ed2474054981f16ac4a4a4b6"
10
+ },
11
+ "regressionVectors": {
12
+ "collision_v1_flags": true,
13
+ "collision_v2_exempts": true,
14
+ "runaway_still_flagged": true,
15
+ "unattested_capital_repeat_kept": true,
16
+ "recap_classified": true,
17
+ "invention_classified": true,
18
+ "digit_spin_caught": true,
19
+ "identity_clean": true
20
+ },
21
+ "goldQualityPass": {
22
+ "stage": {
23
+ "path": "artifacts/ape_a2_prevast/materialized_v1/stage2_teacher_silver_v1.jsonl.gz",
24
+ "sha256": "0e1a02557407a76f8f7ebb05163f869e4d9372de5d0d53347f832961e693e6cd"
25
+ },
26
+ "seed": 3407,
27
+ "rowsTotal": 49632,
28
+ "rowsSampled": 5000,
29
+ "nameViolationRows": 259,
30
+ "repeatV1Rows": 60,
31
+ "repeatV2Rows": 53,
32
+ "repeatReleasedRows": 7,
33
+ "nameViolationRate": 0.0518,
34
+ "repeatV1Rate": 0.012,
35
+ "repeatV2Rate": 0.0106,
36
+ "note": "v2 adds no new name-track flags by construction (it splits the frozen name_violations output); the name-violation rate here is the carried v1 pressure on teacher-quality targets. R-repeat' can only release rows."
37
+ },
38
+ "trainDistPass": {
39
+ "stage": {
40
+ "path": "artifacts/ape_a2_prevast/materialized_v1/stage1_pretrain_pool_v1.jsonl.gz",
41
+ "sha256": "42f6324323928a274734f0a59f55d8dfe7549c32fd65f619eb816e41e4f02236"
42
+ },
43
+ "seed": 3407,
44
+ "rowsTotal": 749058,
45
+ "rowsSampled": 5000,
46
+ "nameViolationRows": 875,
47
+ "repeatV1Rows": 48,
48
+ "repeatV2Rows": 39,
49
+ "repeatReleasedRows": 9,
50
+ "nameViolationRate": 0.175,
51
+ "repeatV1Rate": 0.0096,
52
+ "repeatV2Rate": 0.0078
53
+ },
54
+ "bookDeltas": {
55
+ "hd": {
56
+ "bookText": {
57
+ "path": "artifacts/ape_a0/inventory_txt/hoang-dinh-cv-than-van-chi-tiem.txt",
58
+ "sha256": "9af798589946672453ebc814a2ed16bd14594cce105509da04d6308b440ee241"
59
+ },
60
+ "inventoryCores": 939,
61
+ "inventoryPairs": 2527,
62
+ "modes": {
63
+ "plain": {
64
+ "rows": 300,
65
+ "nameViolationRowsV1": 37,
66
+ "inventedRows": 22,
67
+ "recapOnlyRows": 15,
68
+ "repeatV1Rows": 0,
69
+ "repeatV2Rows": 0,
70
+ "repeatReleasedRowIds": [],
71
+ "inventedEntities": [
72
+ "dộng",
73
+ "huyết minh",
74
+ "hà phách",
75
+ "hồng hắc",
76
+ "thiên trần",
77
+ "thiên ảo",
78
+ "thừa thừa",
79
+ "tinh hà",
80
+ "tư vũ",
81
+ "u âm",
82
+ "đại dộng",
83
+ "đỏ hắc",
84
+ "đỏ đỏ",
85
+ "ảo thạch"
86
+ ],
87
+ "inventedEntitiesDistinct": 14
88
+ },
89
+ "guarded": {
90
+ "rows": 300,
91
+ "nameViolationRowsV1": 2,
92
+ "inventedRows": 1,
93
+ "recapOnlyRows": 1,
94
+ "repeatV1Rows": 0,
95
+ "repeatV2Rows": 0,
96
+ "repeatReleasedRowIds": [],
97
+ "inventedEntities": [
98
+ "dụn",
99
+ "đại dụn"
100
+ ],
101
+ "inventedEntitiesDistinct": 2
102
+ }
103
+ }
104
+ },
105
+ "tckv": {
106
+ "bookText": {
107
+ "path": "artifacts/ape_a0/inventory_txt/tien-cong-khai-vat-c-co-chan-nhan.txt",
108
+ "sha256": "093762aab00e4d666f31f52fd0ff0ac0d54d7e66f3aa40ef6bb256da5b39ecd4"
109
+ },
110
+ "inventoryCores": 1192,
111
+ "inventoryPairs": 6990,
112
+ "modes": {
113
+ "plain": {
114
+ "rows": 300,
115
+ "nameViolationRowsV1": 4,
116
+ "inventedRows": 2,
117
+ "recapOnlyRows": 2,
118
+ "repeatV1Rows": 0,
119
+ "repeatV2Rows": 0,
120
+ "repeatReleasedRowIds": [],
121
+ "inventedEntities": [
122
+ "cạnh",
123
+ "ninh cạnh",
124
+ "đạo phật"
125
+ ],
126
+ "inventedEntitiesDistinct": 3
127
+ },
128
+ "guarded": {
129
+ "rows": 300,
130
+ "nameViolationRowsV1": 0,
131
+ "inventedRows": 0,
132
+ "recapOnlyRows": 0,
133
+ "repeatV1Rows": 0,
134
+ "repeatV2Rows": 0,
135
+ "repeatReleasedRowIds": [],
136
+ "inventedEntities": [],
137
+ "inventedEntitiesDistinct": 0
138
+ }
139
+ }
140
+ },
141
+ "tu": {
142
+ "bookText": {
143
+ "path": "artifacts/ape_a0/inventory_txt/tuyet-ung-linh-chu-cv-nga-cat-tay-hong-thi.txt",
144
+ "sha256": "071b8ffd61a40ee56f3f26e1c3cb1b0390e48cce728d4aa3e6c333ba7b0e8a32"
145
+ },
146
+ "inventoryCores": 1403,
147
+ "inventoryPairs": 7642,
148
+ "modes": {
149
+ "plain": {
150
+ "rows": 300,
151
+ "nameViolationRowsV1": 14,
152
+ "inventedRows": 6,
153
+ "recapOnlyRows": 8,
154
+ "repeatV1Rows": 0,
155
+ "repeatV2Rows": 0,
156
+ "repeatReleasedRowIds": [],
157
+ "inventedEntities": [
158
+ "hắc hình",
159
+ "hồ kim",
160
+ "hồ lư",
161
+ "linh hạ",
162
+ "ám đông",
163
+ "ú",
164
+ "ú ú<0x98>",
165
+ "ú ú<0x98><0x98>",
166
+ "ú ú>",
167
+ "ú úễn",
168
+ "ú<0x98>",
169
+ "ú<0x98> ú",
170
+ "ú<0x98> ú<0x98>",
171
+ "ú<0x98><0x98>",
172
+ "ú<0x98><0x98> ú",
173
+ "ú>",
174
+ "ú> ú",
175
+ "úễn"
176
+ ],
177
+ "inventedEntitiesDistinct": 18
178
+ },
179
+ "guarded": {
180
+ "rows": 300,
181
+ "nameViolationRowsV1": 0,
182
+ "inventedRows": 0,
183
+ "recapOnlyRows": 0,
184
+ "repeatV1Rows": 0,
185
+ "repeatV2Rows": 0,
186
+ "repeatReleasedRowIds": [],
187
+ "inventedEntities": [],
188
+ "inventedEntitiesDistinct": 0
189
+ }
190
+ }
191
+ }
192
+ }
193
+ }
receipts/ape_a2_d3b_execution_result_v1.json ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "vp2vi-ape-a2-d3b-execution-result-v1",
3
+ "date": "2026-08-10",
4
+ "verdict": "PASS_A2_D3B_EXECUTION_ARM_COMPLETE",
5
+ "containsSentenceText": false,
6
+ "chain": {
7
+ "authorization": "docs/plans/2026-08-10-ape-a2-d3b-train-authorization.md (4baa9e2)",
8
+ "authority": {"path": "reports/artifacts/ape_a2_d3b_gpu_execution_authority_v1.json", "sha256": "4d7f4174a1be8db7c19759050bf939afb6fbcc1edfabbf18c8f86f4d9d2280bc"},
9
+ "preregister": {"path": "reports/artifacts/ape_a2_d3b_training_eval_preregister_v1.json", "sha256": "33ed47707e5070613187fc31f1a46b5d8d312f2358e550fd453a3e6b9566186b"},
10
+ "gate": "reports/artifacts/ape_a2_d3b_execution_gate_v1.json (64fd087, readyToRent true)"
11
+ },
12
+ "arm": "A_D3B_8E2D_V24000",
13
+ "targetLabels": 142148442,
14
+ "optimizerSteps": 4235,
15
+ "wallSeconds": 2244.395,
16
+ "remoteVerdict": "PASS_A2_EXECUTION_ARMS_COMPLETE",
17
+ "armInitDigestVerifiedOnGpu": "e875b2afcbfd6c4a99c356eedda24253485fd64b3bef28c573c841ff59efe36b",
18
+ "loss": {
19
+ "poolFirstWindow": 2.2228,
20
+ "poolLastWindow": 2.2097,
21
+ "poolTail50Mean": 2.1937,
22
+ "seedWindows": [2.053, 2.0527, 2.0497, 2.0482, 2.0468, 2.048, 2.0401, 2.0327, 2.3211],
23
+ "note": "pool sits ~0.03 nats above the scale-b pool-end (2.160) — structural: 15.8% of the mixture now carries rare synthetic name-swap targets; final seed window 2.3211 is the small partial flush window, not a regression (seed windows 1-8 match scale-b's 2.056 level)"
24
+ },
25
+ "cumulativeExposureLabels": 1237021456,
26
+ "selectableCheckpoint": {
27
+ "tag": "checkpoint_142148442.pt",
28
+ "sha256": "5daf9ce1ba832d6c5207ab82db705588600903b037786de6acf9c3204b3e90fb",
29
+ "bytes": 147273991,
30
+ "localPath": "artifacts/ape_a2_d3b/results_v1/artifacts/ape_a2_d3b/run_v1/A_D3B_8E2D_V24000/checkpoint_142148442.pt"
31
+ },
32
+ "otherCheckpoints": {
33
+ "checkpoint_50000000.pt": "8454d1e27dce69f3510676c053acc51f2f3fec93e63dd9b47c8c9a1f437e748e",
34
+ "checkpoint_100000000.pt": "81dbbd865c3ba5e8ec29a34a550edef7b34b39fb96c3fb7542dd1bd3c8237b0b"
35
+ },
36
+ "stepLogSha256": "be7ee2df21ccf65294838886720a0e2081a4331b169726f0575d810dd7d55c6b",
37
+ "resultsTar": {
38
+ "path": "artifacts/ape_a2_d3b/results_v1/a2-d3b-results-v1.tar.gz",
39
+ "sha256": "d54f213cf245b592874569ed1e23199acf3bbac6c5c36d88ff2ac32ace79f230",
40
+ "localEqualsRemote": true
41
+ },
42
+ "provider": {
43
+ "firstInstance": {"id": 47340440, "offer": 39441704, "host": 402342, "outcome": "loading timeout >900s (image layer downloaded, container never started) — destroyed at 0 optimizer steps per failClosed, ~$0.09"},
44
+ "instance": {"id": 47341857, "offer": 41483166, "host": 346079, "gpu": "RTX 5090 32607MiB CC12.0", "dphUsd": 0.35, "outcome": "completed + destroyed"},
45
+ "replacementsUsed": "1/1",
46
+ "pipNote": "PEP 668 on first kick — re-kicked with PIP_BREAK_SYSTEM_PACKAGES=1 (known image behavior, recorded in memory)",
47
+ "throughputLabelsPerSecond": 63336,
48
+ "throughputVsPro6000": "~0.94x at ~0.37x price — first run under the standing RTX 5090 directive, directive validated",
49
+ "estimatedCampaignSpendUsd": 0.40,
50
+ "ceilingUsd": 2.0,
51
+ "inventoryAtClose": []
52
+ },
53
+ "next": "EXPLORATORY_EVAL_PER_D3B_DESIGN (unguarded + guarded tri-book decode, 20-severe-row read, nameswap holdout copy accuracy)"
54
+ }
receipts/ape_a2_hf_model_release_authorization_v1.json ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "vp2vi-ape-a2-hf-model-release-authorization-v1",
3
+ "authorizedAt": "2026-08-11",
4
+ "authorizedBy": "Dan",
5
+ "ownerDirectiveVerbatim": "chúng ta sở hữu model này, đủ/dư quyền hạn để public HF",
6
+ "status": "APPROVED_PUBLIC_HF_MODEL_RELEASE",
7
+ "rightsAssertion": "The owner asserts sufficient rights to publish the vp2vi model weights, essential model assets, and model card in a public Hugging Face model repository.",
8
+ "supersedes": {
9
+ "historicalRecordsRemainUnmodified": true,
10
+ "records": [
11
+ "reports/artifacts/ape_a1full_eligibility_v1.json",
12
+ "reports/artifacts/ape_a2_qtpool_usage_policy_v1.json",
13
+ "commit 9da528a"
14
+ ],
15
+ "effect": "The earlier personal-project/personal-use scope no longer limits public distribution of the trained model through its Hugging Face model repository. It remains the historical authorization under which training began."
16
+ },
17
+ "authorizedChannel": "public Hugging Face model repository",
18
+ "modelRepository": {
19
+ "included": [
20
+ "A_D3B model weights and deterministic derived weight formats",
21
+ "model configuration, tokenizer snapshot, tokenizer configuration, and required derived tokenizer assets",
22
+ "model card, evaluation summaries, provenance receipts, and release manifest"
23
+ ],
24
+ "excluded": [
25
+ "WebGPU inference/runtime source code",
26
+ "Hugging Face Space application assets",
27
+ "raw or reconstructed training corpus text",
28
+ "raw or reconstructed evaluation/holdout text",
29
+ "third-party material not already authorized for redistribution"
30
+ ],
31
+ "trainingDataRule": "The model card may describe training-data categories and provenance, but the public model repository does not redistribute the source corpora.",
32
+ "spaceBoundary": "The WebGPU inference application is deployed and governed separately as a Hugging Face Space. It is not part of this model-repository bundle or license decision."
33
+ },
34
+ "licenseDecision": {
35
+ "hfModelCardMetadata": "cc-by-4.0",
36
+ "modelRepositoryLicense": "Creative Commons Attribution 4.0 International",
37
+ "appliesTo": "Owner-controlled model weights, essential model assets, model card, evaluation summaries, provenance receipts, and release manifest included in the Hugging Face model repository, to the extent the owner holds the relevant rights.",
38
+ "reason": "This repository distributes the model and its documentation, not the WebGPU inference software. CC BY 4.0 permits commercial use, modification, and redistribution while requiring attribution and is a recognized Hugging Face model-repository license identifier.",
39
+ "webgpuRule": "No license is assigned here to the separately deployed WebGPU Space or its runtime source code.",
40
+ "thirdPartyRule": "Third-party components retain their own licenses and required notices; this decision does not relicense third-party works.",
41
+ "packagingRequirement": "The final Hugging Face model repository must include the CC BY 4.0 license text or canonical link, clear attribution instructions, and model-card YAML with license: cc-by-4.0."
42
+ },
43
+ "technicalAuthority": {
44
+ "qualityVerdictUnchanged": "PASS_A2_PT_GATE",
45
+ "modelReleaseStillRequires": [
46
+ "a hash-bound final model-repository manifest",
47
+ "model-card disclosure of intended use, limitations, training-data categories, evaluation protocol, and known checker blind spots"
48
+ ],
49
+ "webgpuParityGatesIndependent": true,
50
+ "meaning": "This artifact removes the provenance-policy hold from the public HF model repository. It does not waive model-package integrity checks, govern the separate WebGPU Space, or authorize corpus redistribution."
51
+ },
52
+ "legalPosture": "Project governance record of the owner's rights assertion and release decision; not an independent legal opinion.",
53
+ "references": [
54
+ "docs/provenance/ape-a2-hf-model-release.md",
55
+ "docs/plans/2026-08-10-ape-a2-webgpu-ar-ship-engine-design.md",
56
+ "reports/artifacts/ape_a2_qtpool_usage_policy_v1.json",
57
+ "reports/artifacts/ape_a1full_eligibility_v1.json"
58
+ ]
59
+ }
receipts/ape_a2_hf_transformers_export_v1.json ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "vp2vi-ape-a2-hf-transformers-export-v1",
3
+ "date": "2026-08-11",
4
+ "status": "PASS_HF_TRANSFORMERS_EXPORT",
5
+ "containsSentenceText": false,
6
+ "repository": "DanVP/vp2vi",
7
+ "baseModel": {
8
+ "id": "DanVP/MoxhiMT-30-QT",
9
+ "relation": "finetune"
10
+ },
11
+ "sourceCheckpoint": {
12
+ "arm": "A_D3B_8E2D_V24000",
13
+ "path": "artifacts/ape_a2_d3b/results_v1/artifacts/ape_a2_d3b/run_v1/A_D3B_8E2D_V24000/checkpoint_142148442.pt",
14
+ "bytes": 147273991,
15
+ "sha256": "5daf9ce1ba832d6c5207ab82db705588600903b037786de6acf9c3204b3e90fb"
16
+ },
17
+ "export": {
18
+ "path": "model.safetensors",
19
+ "format": "safetensors",
20
+ "dtype": "float32",
21
+ "tensorCount": 182,
22
+ "bytes": 146139424,
23
+ "sha256": "525735a76983cc6e120ee461937bdd3c235a27a9f059ecbcb97df1a8e6e472cb",
24
+ "expectedMoxhiKeySetExact": true,
25
+ "customTensorCoverageExact": true
26
+ },
27
+ "loadAndLogitsParity": {
28
+ "autoTokenizerClass": "MarianTokenizer",
29
+ "autoModelClass": "MarianMTModel",
30
+ "vocabularySize": 24000,
31
+ "sourceTokens": 5,
32
+ "decoderTokens": 4,
33
+ "logitsShape": [
34
+ 1,
35
+ 4,
36
+ 24000
37
+ ],
38
+ "rtol": 2e-05,
39
+ "atol": 2e-05,
40
+ "close": true,
41
+ "argmaxExact": true,
42
+ "maxAbsDelta": 0.0
43
+ },
44
+ "webgpuSpaceIncluded": false
45
+ }
receipts/ape_a2_model_preflight_v3.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"aPrimeIsolation":{"changedOnlyEncoder":true,"changedTensorCount":96,"matchingEncoderDeterministicConstants":[],"nonEncoderExact":true},"arms":{"A_8E2D_V24000":{"decoderLayers":2,"deterministicAcrossTwoBuilds":true,"encoderLayers":8,"forwardBackward":{"finite":true,"gradientTensors":137,"loss":7.954756736755371,"maxAbsGradient":1.720590591430664,"sourceTokens":16,"targetLabels":13},"inputRows":24000,"mapping":{"allExact":true,"destinations":140,"receiptSha256":"3709be3c7d9b9c8dc067746444bf1535dcb5ec62bbdc11cda326a3762efe4b87"},"outputRows":24000,"parameters":36505728,"secondBuildStateSha256":"20275de5155da7aa06aa182f36c2133dd98ffd48e260aa39fd73861c5634d703","stateSha256":"20275de5155da7aa06aa182f36c2133dd98ffd48e260aa39fd73861c5634d703","zeroStepResume":{"afterStateSha256":"20275de5155da7aa06aa182f36c2133dd98ffd48e260aa39fd73861c5634d703","beforeStateSha256":"20275de5155da7aa06aa182f36c2133dd98ffd48e260aa39fd73861c5634d703","exact":true,"optimizerStateRows":0,"optimizerSteps":0}},"A_DENSE_8E1D_V5953_OUT5951":{"decoderLayers":1,"deterministicAcrossTwoBuilds":true,"encoderLayers":8,"forwardBackward":{"finite":true,"gradientTensors":117,"loss":7.2603936195373535,"maxAbsGradient":1.091045618057251,"sourceTokens":16,"targetLabels":13},"inputRows":5953,"mapping":{"allExact":true,"destinations":120,"receiptSha256":"8058e031a50940a444a638a782735551a1fb62b4a34622697c2c41f839aa3a09"},"outputRows":5951,"parameters":25200896,"secondBuildStateSha256":"4fb4b5106e019599f13ec6998b46e59392ca0ca6aa344a4b4b809b1b71df1df2","stateSha256":"4fb4b5106e019599f13ec6998b46e59392ca0ca6aa344a4b4b809b1b71df1df2","zeroStepResume":{"afterStateSha256":"4fb4b5106e019599f13ec6998b46e59392ca0ca6aa344a4b4b809b1b71df1df2","beforeStateSha256":"4fb4b5106e019599f13ec6998b46e59392ca0ca6aa344a4b4b809b1b71df1df2","exact":true,"optimizerStateRows":0,"optimizerSteps":0}},"A_DENSE_8E2D_V5953_OUT5951":{"decoderLayers":2,"deterministicAcrossTwoBuilds":true,"encoderLayers":8,"evalBuilder":{"maxSourceTokens":64,"oneStepLogitsFinite":true,"outputRows":5951,"rows":2,"works":["hoang-dinh-cv","tien-cong-khai-vat-c"]},"forwardBackward":{"finite":true,"gradientTensors":137,"loss":7.880406379699707,"maxAbsGradient":1.7195614576339722,"sourceTokens":16,"targetLabels":13},"inputRows":5953,"mapping":{"allExact":true,"destinations":140,"receiptSha256":"a94a0805446570dc219706568889f528319088cc156b602da1c5be3114e66862"},"outputRows":5951,"parameters":28420672,"secondBuildStateSha256":"f22c1dbbb0aa4ea082d39bc23fdd8a3d320f4261554fe07c25744beac7fed6ba","stateSha256":"f22c1dbbb0aa4ea082d39bc23fdd8a3d320f4261554fe07c25744beac7fed6ba","zeroStepResume":{"afterStateSha256":"f22c1dbbb0aa4ea082d39bc23fdd8a3d320f4261554fe07c25744beac7fed6ba","beforeStateSha256":"f22c1dbbb0aa4ea082d39bc23fdd8a3d320f4261554fe07c25744beac7fed6ba","exact":true,"optimizerStateRows":0,"optimizerSteps":0}},"A_PRIME_8E2D_V24000":{"decoderLayers":2,"deterministicAcrossTwoBuilds":true,"encoderLayers":8,"forwardBackward":{"finite":true,"gradientTensors":137,"loss":9.253477096557617,"maxAbsGradient":3.455207347869873,"sourceTokens":16,"targetLabels":13},"inputRows":24000,"mapping":{"allExact":true,"destinations":96,"receiptSha256":"bcd5b53a649978ef9ac9fd843bbb76f1ebee3f9396d9cfeb8e9a3d57cf6d9c5b"},"outputRows":24000,"parameters":36505728,"secondBuildStateSha256":"fd13832ad4958c67fca3620f3431b1c3d215a007d2d85209762d37d8cdd78397","stateSha256":"fd13832ad4958c67fca3620f3431b1c3d215a007d2d85209762d37d8cdd78397","zeroStepResume":{"afterStateSha256":"fd13832ad4958c67fca3620f3431b1c3d215a007d2d85209762d37d8cdd78397","beforeStateSha256":"fd13832ad4958c67fca3620f3431b1c3d215a007d2d85209762d37d8cdd78397","exact":true,"optimizerStateRows":0,"optimizerSteps":0}}},"authority":{"gpu_training_authorized":false,"promotion_authorized":false,"remote_provisioning_authorized":false},"bindings":{"evalCache":{"bytes":46559,"path":"artifacts/ape_a2_prevast/tokenized_v1/e0_inputs_tok595x_v1.jsonl.gz","sha256":"654a662d7b0e2ba20963b2aa4285d5605aba75c739320d8dbaa90ff83ed3e897"},"implementation":{"bytes":25726,"path":"scripts/ape_a2/a2_model_preflight.py","sha256":"c758d17a2223c37f7f374e93a00673b9c16c3a75daa4d3d5bc6e96b61adc7f18"},"modelImplementation":{"bytes":22945,"path":"vp2vi/modeling_marian_shallow_ar.py","sha256":"9a3ac2ae9d8632ea2f91986834e57094f20676d9bbb34bc8a6b0765ddf0052fb"},"teacherConfig":{"bytes":921,"path":"artifacts/phase_p/inference/assets/teacher-transformers/config.json","sha256":"f238990dbe506286f7ea637836b3d9d63260b658badd64d14338c0754712fe88"},"teacherMapper":{"bytes":12063,"path":"vp2vi/track_g_teacher_init.py","sha256":"08ebc185b40dd3eb166a439953a574af1ca5776553a4707f791b20372d6d8e7f"},"teacherWeights":{"bytes":146139424,"path":"artifacts/phase_p/inference/assets/teacher-transformers/model.safetensors","sha256":"9d7541642946a3f0fba7c7db76581902c984bc2a389b6943ca29702b5afcd2a7"},"tokenizerMapping":{"bytes":30936,"path":"reports/artifacts/ape_a2_tokenizer_map_v1.json","sha256":"ab31e2b73e389829bb7f76da39837cf3f554b1840552e41b51b182c1f69b8b29"},"tokenizerResult":{"bytes":4076,"path":"reports/artifacts/ape_a2_tokenizer_preflight_v1.json","sha256":"687efd4825035087506eb134f984f9b87bf970cc2990ff9a01689fedb511a6e8"},"trainCache":{"bytes":93359,"path":"artifacts/ape_a2_prevast/tokenized_v1/stage3_a11_seed_tok595x_v1.jsonl.gz","sha256":"cda216788ecbe65bf4736e6498cf0c709dae81743f1b2c676cd3816cc14940c8"}},"containsSentenceText":false,"date":"2026-08-07","denseTransplant":{"allEmbeddingRowsCopiedFromOwnedTeacher":true,"inputRows":5953,"oneLayerDecoderTeacherMap":[0],"outputCjkRows":0,"outputRows":5951,"randomInitializedEmbeddingRows":0},"device":"cpu","guards":{"finiteBackward":true,"finiteForward":true,"optimizerSteps":0,"zeroStepResumeExact":true},"next":"FREEZE_TRAINING_EVAL_PREREGISTER_THEN_REQUEST_SEPARATE_VAST_AUTHORITY","optimizerSteps":0,"preregister":{"bytes":3624,"path":"reports/artifacts/ape_a2_model_preregister_v3.json","sha256":"43953c1cf121aa9a8205419974dc75953a046104b312b33c4236508440c26de4"},"verdict":"PASS_A2_CPU_MODEL_PREFLIGHT","version":"ape_a2_model_preflight_v3"}
receipts/ape_a2_model_preregister_v3.json ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "version": "ape_a2_model_preregister_v3",
3
+ "date": "2026-08-07",
4
+ "status": "PREREGISTERED_CPU_MODEL_PREFLIGHT_NO_OPTIMIZER",
5
+ "amends": "ape_a2_model_preregister_v2",
6
+ "amendment_scope": "Diagnostic 8E/1D parameter accounting only: include all decoder bias tensors.",
7
+ "authority": {
8
+ "gpu_training_authorized": false,
9
+ "remote_provisioning_authorized": false,
10
+ "promotion_authorized": false
11
+ },
12
+ "bindings": {
13
+ "implementation": {
14
+ "path": "scripts/ape_a2/a2_model_preflight.py",
15
+ "sha256": "c758d17a2223c37f7f374e93a00673b9c16c3a75daa4d3d5bc6e96b61adc7f18"
16
+ },
17
+ "model_implementation": {
18
+ "path": "vp2vi/modeling_marian_shallow_ar.py",
19
+ "sha256": "9a3ac2ae9d8632ea2f91986834e57094f20676d9bbb34bc8a6b0765ddf0052fb"
20
+ },
21
+ "teacher_mapper": {
22
+ "path": "vp2vi/track_g_teacher_init.py",
23
+ "sha256": "08ebc185b40dd3eb166a439953a574af1ca5776553a4707f791b20372d6d8e7f"
24
+ },
25
+ "teacher_config": {
26
+ "path": "artifacts/phase_p/inference/assets/teacher-transformers/config.json",
27
+ "sha256": "f238990dbe506286f7ea637836b3d9d63260b658badd64d14338c0754712fe88"
28
+ },
29
+ "teacher_weights": {
30
+ "path": "artifacts/phase_p/inference/assets/teacher-transformers/model.safetensors",
31
+ "sha256": "9d7541642946a3f0fba7c7db76581902c984bc2a389b6943ca29702b5afcd2a7"
32
+ },
33
+ "tokenizer_result": {
34
+ "path": "reports/artifacts/ape_a2_tokenizer_preflight_v1.json",
35
+ "sha256": "687efd4825035087506eb134f984f9b87bf970cc2990ff9a01689fedb511a6e8"
36
+ },
37
+ "tokenizer_mapping": {
38
+ "path": "reports/artifacts/ape_a2_tokenizer_map_v1.json",
39
+ "sha256": "ab31e2b73e389829bb7f76da39837cf3f554b1840552e41b51b182c1f69b8b29"
40
+ },
41
+ "train_cache": {
42
+ "path": "artifacts/ape_a2_prevast/tokenized_v1/stage3_a11_seed_tok595x_v1.jsonl.gz",
43
+ "sha256": "cda216788ecbe65bf4736e6498cf0c709dae81743f1b2c676cd3816cc14940c8"
44
+ },
45
+ "eval_cache": {
46
+ "path": "artifacts/ape_a2_prevast/tokenized_v1/e0_inputs_tok595x_v1.jsonl.gz",
47
+ "sha256": "654a662d7b0e2ba20963b2aa4285d5605aba75c739320d8dbaa90ff83ed3e897"
48
+ }
49
+ },
50
+ "initialization": {
51
+ "A_8E2D_V24000": "exact owned Moxhi teacher mapping",
52
+ "A_PRIME_8E2D_V24000": "exact owned Moxhi teacher mapping then deterministic encoder-block-only reinit",
53
+ "A_DENSE_8E2D_V5953_OUT5951": "exact layer copy plus denseToOld embedding transplant; output is dense prefix 0..5950",
54
+ "A_DENSE_8E1D_V5953_OUT5951": "same dense transplant with teacher decoder layer 0 only; speed ablation only",
55
+ "encoder_reinit_seed": 6203,
56
+ "cpu_smoke_seed": 3407,
57
+ "random_vocab_rows": 0,
58
+ "optimizer_steps": 0
59
+ },
60
+ "parameter_semantics": {
61
+ "reported_field": "trainable nn.Parameter elements",
62
+ "persistent_buffers_excluded": true,
63
+ "final_logits_bias_buffer_elements_full_vocab": 24000,
64
+ "exact_decoder_layer_parameters": 3219776,
65
+ "failure_receipts": [
66
+ "reports/artifacts/ape_a2_model_preflight_failure_v1.json",
67
+ "reports/artifacts/ape_a2_model_preflight_failure_v2.json"
68
+ ]
69
+ },
70
+ "expected_parameters": {
71
+ "A_8E2D_V24000": 36505728,
72
+ "A_PRIME_8E2D_V24000": 36505728,
73
+ "A_DENSE_8E2D_V5953_OUT5951": 28420672,
74
+ "A_DENSE_8E1D_V5953_OUT5951": 25200896
75
+ },
76
+ "required_checks": {
77
+ "two_build_state_digest_exact": true,
78
+ "A_prime_non_encoder_exact": true,
79
+ "dense_embedding_rows_exact_teacher_gather": true,
80
+ "forward_loss_finite": true,
81
+ "all_parameter_gradients_finite": true,
82
+ "zero_step_checkpoint_resume_exact": true,
83
+ "eval_builder_two_work_smoke": true,
84
+ "oom_or_nonfinite_action": "STOP_NO_OPTIMIZER_STEP"
85
+ }
86
+ }
receipts/ape_a2_pt_gate_adjudication_v1.json ADDED
@@ -0,0 +1,302 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "vp2vi-ape-a2-pt-gate-adjudication-v1",
3
+ "date": "2026-08-10",
4
+ "containsSentenceText": false,
5
+ "panel": {
6
+ "names": [
7
+ "claude-session",
8
+ "codex-cli"
9
+ ],
10
+ "fallbackUsed": false,
11
+ "independence": "claude-session verdicts written to adjudication_claude_v1.json BEFORE the codex-cli run started (file mtimes + task chronology); codex-cli ran detached with the pack only — no access to claude verdicts"
12
+ },
13
+ "inputs": {
14
+ "pack": {
15
+ "path": "artifacts/ape_a2_pt_gate/review/adjudication_pack_v1.json",
16
+ "sha256": "71012bb7ea8f3c1bc76961410e672beec4bcc3fda35a97fc06e35f778150942b"
17
+ },
18
+ "claude": {
19
+ "path": "artifacts/ape_a2_pt_gate/review/adjudication_claude_v1.json",
20
+ "sha256": "c87a5dbc9511d33dfce9e7872a0bf68d3533ff4be06b907259ca3e524e3ff937"
21
+ },
22
+ "codexRaw": {
23
+ "path": "artifacts/ape_a2_pt_gate/review/adjudication_codex_raw_v1.txt",
24
+ "sha256": "eb2f2abe4e4caf5417ba77ff4f1aac3a03a1e17da73c7a0d96c549dd0d79fd92",
25
+ "note": "codex exec stdout duplicates the final message; TSV deduplicated by row id (identical duplicates verified)"
26
+ }
27
+ },
28
+ "inventedEntitySemantics": "per frozen prereg unit_note, invented entities are counted via checker v2 on the scored guarded decode (machine values; all [] on these rows — every word/pair is draft-attested, which is why the guard admitted them). codex-cli's free-text label 'Cầm Ma Họa' on 5560 is preserved as diagnostic (name-boundary resegmentation of two real personas), not a checker-v2 invented entity",
29
+ "rows": [
30
+ {
31
+ "id": "phuc-thien-thi-c:100971",
32
+ "verdicts": {
33
+ "claude-session": "not_severe",
34
+ "codex-cli": "not_severe"
35
+ },
36
+ "confirmed": false,
37
+ "family": "split: claude=not_severe (awkward-tautology, meaning recoverable) / codex=not_severe (diễn đạt vụng)",
38
+ "codexFamily": "diễn đạt vụng",
39
+ "codexInventedLabel": "-",
40
+ "inventedEntities": []
41
+ },
42
+ {
43
+ "id": "phuc-thien-thi-c:105997",
44
+ "verdicts": {
45
+ "claude-session": "severe",
46
+ "codex-cli": "severe"
47
+ },
48
+ "confirmed": true,
49
+ "family": "omission of 'bá chủ' -> city itself becomes the Yêu Hoàng (đổi nghĩa)",
50
+ "codexFamily": "mất chủ thể bá chủ",
51
+ "codexInventedLabel": "-",
52
+ "inventedEntities": []
53
+ },
54
+ {
55
+ "id": "phuc-thien-thi-c:107295",
56
+ "verdicts": {
57
+ "claude-session": "severe",
58
+ "codex-cli": "severe"
59
+ },
60
+ "confirmed": true,
61
+ "family": "temporal 'đằng sau'->spatial 'phía sau Yêu Đô' (literalization, đổi nghĩa)",
62
+ "codexFamily": "đổi thời gian thành nơi",
63
+ "codexInventedLabel": "-",
64
+ "inventedEntities": []
65
+ },
66
+ {
67
+ "id": "phuc-thien-thi-c:111247",
68
+ "verdicts": {
69
+ "claude-session": "not_severe",
70
+ "codex-cli": "severe"
71
+ },
72
+ "confirmed": false,
73
+ "family": "split: claude=not_severe (apposition->comparison shift, context preserves identity) / codex=severe (đổi thân phận nhân vật)",
74
+ "codexFamily": "đổi thân phận nhân vật",
75
+ "codexInventedLabel": "-",
76
+ "inventedEntities": []
77
+ },
78
+ {
79
+ "id": "phuc-thien-thi-c:118123",
80
+ "verdicts": {
81
+ "claude-session": "severe",
82
+ "codex-cli": "severe"
83
+ },
84
+ "confirmed": true,
85
+ "family": "'là hắn'->'là của hắn': identity revelation becomes possession (đổi nghĩa)",
86
+ "codexFamily": "đổi thân phận thành sở hữu",
87
+ "codexInventedLabel": "-",
88
+ "inventedEntities": []
89
+ },
90
+ {
91
+ "id": "phuc-thien-thi-c:146661",
92
+ "verdicts": {
93
+ "claude-session": "severe",
94
+ "codex-cli": "severe"
95
+ },
96
+ "confirmed": true,
97
+ "family": "tọa hạ->'ngồi xuống' literalization destroys meaning (known HD family)",
98
+ "codexFamily": "mất quan hệ dưới trướng",
99
+ "codexInventedLabel": "-",
100
+ "inventedEntities": []
101
+ },
102
+ {
103
+ "id": "phuc-thien-thi-c:158271",
104
+ "verdicts": {
105
+ "claude-session": "not_severe",
106
+ "codex-cli": "not_severe"
107
+ },
108
+ "confirmed": false,
109
+ "family": "split: claude=not_severe (inserted noise word 'thái tộc', fluency defect only) / codex=not_severe (trật tự từ vụng)",
110
+ "codexFamily": "trật tự từ vụng",
111
+ "codexInventedLabel": "-",
112
+ "inventedEntities": []
113
+ },
114
+ {
115
+ "id": "phuc-thien-thi-c:158750",
116
+ "verdicts": {
117
+ "claude-session": "not_severe",
118
+ "codex-cli": "not_severe"
119
+ },
120
+ "confirmed": false,
121
+ "family": "split: claude=not_severe ('hẳn là'->'chẳng lẽ' modality nuance only) / codex=not_severe (diễn đạt phạm vi mơ hồ)",
122
+ "codexFamily": "diễn đạt phạm vi mơ hồ",
123
+ "codexInventedLabel": "-",
124
+ "inventedEntities": []
125
+ },
126
+ {
127
+ "id": "phuc-thien-thi-c:189934",
128
+ "verdicts": {
129
+ "claude-session": "not_severe",
130
+ "codex-cli": "severe"
131
+ },
132
+ "confirmed": false,
133
+ "family": "split: claude=not_severe (phù văn->hoa văn lexical downgrade; adjacent context restores) / codex=severe (đổi số lượng thần quang)",
134
+ "codexFamily": "đổi số lượng thần quang",
135
+ "codexInventedLabel": "-",
136
+ "inventedEntities": []
137
+ },
138
+ {
139
+ "id": "phuc-thien-thi-c:23505",
140
+ "verdicts": {
141
+ "claude-session": "not_severe",
142
+ "codex-cli": "severe"
143
+ },
144
+ "confirmed": false,
145
+ "family": "split: claude=not_severe (draft itself garbled ('mang cách'); model repair plausible in context) / codex=severe (đổi mang đi thành cách ly)",
146
+ "codexFamily": "đổi mang đi thành cách ly",
147
+ "codexInventedLabel": "-",
148
+ "inventedEntities": []
149
+ },
150
+ {
151
+ "id": "phuc-thien-thi-c:3355",
152
+ "verdicts": {
153
+ "claude-session": "not_severe",
154
+ "codex-cli": "not_severe"
155
+ },
156
+ "confirmed": false,
157
+ "family": "split: claude=not_severe ('hậu bối sau lưng' redundant but meaning intact) / codex=not_severe (kế thừa cú pháp lỗi)",
158
+ "codexFamily": "kế thừa cú pháp lỗi",
159
+ "codexInventedLabel": "-",
160
+ "inventedEntities": []
161
+ },
162
+ {
163
+ "id": "phuc-thien-thi-c:34676",
164
+ "verdicts": {
165
+ "claude-session": "not_severe",
166
+ "codex-cli": "severe"
167
+ },
168
+ "confirmed": false,
169
+ "family": "split: claude=not_severe (một thủ->một tay; colloquial reading keeps gist (borderline)) / codex=severe (mất chi tiết nghe một lần)",
170
+ "codexFamily": "mất chi tiết nghe một lần",
171
+ "codexInventedLabel": "-",
172
+ "inventedEntities": []
173
+ },
174
+ {
175
+ "id": "phuc-thien-thi-c:38707",
176
+ "verdicts": {
177
+ "claude-session": "not_severe",
178
+ "codex-cli": "severe"
179
+ },
180
+ "confirmed": false,
181
+ "family": "split: claude=not_severe (garble 'bổn tướng' inherited from draft, no new content delta) / codex=severe (bịa chủ thể bản tướng)",
182
+ "codexFamily": "bịa chủ thể bản tướng",
183
+ "codexInventedLabel": "-",
184
+ "inventedEntities": []
185
+ },
186
+ {
187
+ "id": "phuc-thien-thi-c:5560",
188
+ "verdicts": {
189
+ "claude-session": "severe",
190
+ "codex-cli": "severe"
191
+ },
192
+ "confirmed": true,
193
+ "family": "name-boundary resegmentation: 'Cầm Ma / Họa Thánh' -> 'Cầm Ma Họa' + 'Thánh truyền nhân'",
194
+ "codexFamily": "gộp sai hai danh hiệu",
195
+ "codexInventedLabel": "Cầm Ma Họa",
196
+ "inventedEntities": []
197
+ },
198
+ {
199
+ "id": "phuc-thien-thi-c:56066",
200
+ "verdicts": {
201
+ "claude-session": "severe",
202
+ "codex-cli": "severe"
203
+ },
204
+ "confirmed": true,
205
+ "family": "object swap: famous MANUALS -> famous PEOPLE (đổi nghĩa)",
206
+ "codexFamily": "đổi kỳ phổ thành người",
207
+ "codexInventedLabel": "-",
208
+ "inventedEntities": []
209
+ },
210
+ {
211
+ "id": "phuc-thien-thi-c:65945",
212
+ "verdicts": {
213
+ "claude-session": "not_severe",
214
+ "codex-cli": "severe"
215
+ },
216
+ "confirmed": false,
217
+ "family": "split: claude=not_severe (negation scope stays natural; 'từng đạo' multiplicity minor) / codex=severe (đổi một tia thành nhiều)",
218
+ "codexFamily": "đổi một tia thành nhiều",
219
+ "codexInventedLabel": "-",
220
+ "inventedEntities": []
221
+ },
222
+ {
223
+ "id": "phuc-thien-thi-c:77920",
224
+ "verdicts": {
225
+ "claude-session": "not_severe",
226
+ "codex-cli": "not_severe"
227
+ },
228
+ "confirmed": false,
229
+ "family": "split: claude=not_severe (garble inherited from draft, no delta) / codex=not_severe (kế thừa lỗi draft)",
230
+ "codexFamily": "kế thừa lỗi draft",
231
+ "codexInventedLabel": "-",
232
+ "inventedEntities": []
233
+ },
234
+ {
235
+ "id": "phuc-thien-thi-c:79558",
236
+ "verdicts": {
237
+ "claude-session": "not_severe",
238
+ "codex-cli": "not_severe"
239
+ },
240
+ "confirmed": false,
241
+ "family": "split: claude=not_severe (particle 'xuống' misplaced, meaning visible) / codex=not_severe (trật tự từ vụng)",
242
+ "codexFamily": "trật tự từ vụng",
243
+ "codexInventedLabel": "-",
244
+ "inventedEntities": []
245
+ },
246
+ {
247
+ "id": "phuc-thien-thi-c:81573",
248
+ "verdicts": {
249
+ "claude-session": "severe",
250
+ "codex-cli": "not_severe"
251
+ },
252
+ "confirmed": false,
253
+ "family": "split: claude=severe (onomatopoeia 噗嗤 reified into 'tiếng thử nghiệm' (bịa ý)) / codex=not_severe (từ ngữ vụng)",
254
+ "codexFamily": "từ ngữ vụng",
255
+ "codexInventedLabel": "-",
256
+ "inventedEntities": []
257
+ },
258
+ {
259
+ "id": "phuc-thien-thi-c:85086",
260
+ "verdicts": {
261
+ "claude-session": "not_severe",
262
+ "codex-cli": "not_severe"
263
+ },
264
+ "confirmed": false,
265
+ "family": "split: claude=not_severe (restructure keeps gist) / codex=not_severe (cú pháp vụng)",
266
+ "codexFamily": "cú pháp vụng",
267
+ "codexInventedLabel": "-",
268
+ "inventedEntities": []
269
+ },
270
+ {
271
+ "id": "phuc-thien-thi-c:92977",
272
+ "verdicts": {
273
+ "claude-session": "severe",
274
+ "codex-cli": "severe"
275
+ },
276
+ "confirmed": true,
277
+ "family": "'Hạ không'->'không hạ xuống': reorder invents negation (đổi nghĩa)",
278
+ "codexFamily": "đổi vị trí thành hành động",
279
+ "codexInventedLabel": "-",
280
+ "inventedEntities": []
281
+ },
282
+ {
283
+ "id": "phuc-thien-thi-c:95143",
284
+ "verdicts": {
285
+ "claude-session": "severe",
286
+ "codex-cli": "severe"
287
+ },
288
+ "confirmed": true,
289
+ "family": "dropped 'cung hoàng tử' + inserted 'là': asserts Đông Hoàng = Đoàn Vô Cực (relation/name error)",
290
+ "codexFamily": "đổi hoàng tử thành Đông Hoàng",
291
+ "codexInventedLabel": "-",
292
+ "inventedEntities": []
293
+ }
294
+ ],
295
+ "stats": {
296
+ "queue": 22,
297
+ "confirmed": 8,
298
+ "claudeSevere": 9,
299
+ "codexSevere": 14,
300
+ "splitRows": 7
301
+ }
302
+ }
receipts/ape_a2_pt_gate_machine_v1.json ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "vp2vi-ape-a2-pt-gate-machine-v1",
3
+ "date": "2026-08-10",
4
+ "containsSentenceText": false,
5
+ "preregister": {
6
+ "path": "reports/artifacts/ape_a2_pt_gate_preregister_v1.json",
7
+ "sha256": "e24b5b1303120d43cb57308e53d5b6ee75a9a11568c1402f9a8fc1ddc8189869"
8
+ },
9
+ "checkpoint": {
10
+ "arm": "A_D3B_8E2D_V24000",
11
+ "resultArtifact": {
12
+ "path": "reports/artifacts/ape_a2_d3b_execution_result_v1.json",
13
+ "sha256": "96668708ec95e3d03d47a3dd5afb211b0610009fe88fd0616a3f83d411d1101f"
14
+ },
15
+ "checkpointSha256": "5daf9ce1ba832d6c5207ab82db705588600903b037786de6acf9c3204b3e90fb"
16
+ },
17
+ "scoredMode": "guarded",
18
+ "inventory": {
19
+ "cores": 1264,
20
+ "pairs": 9832
21
+ },
22
+ "modes": {
23
+ "plain": {
24
+ "mode": "constrained_v2_no_nameguard",
25
+ "rows": 300,
26
+ "machineFlagRows": {
27
+ "protected_name": 0,
28
+ "new_cjk": 0,
29
+ "digit_magnitude": 0,
30
+ "raw_repeat_v2": 0
31
+ },
32
+ "decodeFlags": {
33
+ "empty": 0,
34
+ "length_cap": 0
35
+ },
36
+ "escalateRowsUnbroken": 2,
37
+ "inventedRows": 2,
38
+ "recapOnlyRows": 6,
39
+ "inventedEntitiesDistinct": 3,
40
+ "inventedEntities": [
41
+ "cung nam",
42
+ "hoàng đoàn",
43
+ "quân ô"
44
+ ],
45
+ "nameBrokenRows": 0,
46
+ "simDivergenceRows": 0,
47
+ "constraintStats": {
48
+ "digitVetoSteps": 0,
49
+ "repeatVetoSteps": 4,
50
+ "nameVetoSteps": 0,
51
+ "nameTierEscalations": 0,
52
+ "digitFallback": 0,
53
+ "nameBroken": 0,
54
+ "brakeGaveUp": 0,
55
+ "lengthStops": 0
56
+ },
57
+ "output": {
58
+ "path": "artifacts/ape_a2_pt_gate/decode_PT_plain_v1.jsonl",
59
+ "bytes": 177732,
60
+ "sha256": "005f49c5ff29fdd4292830f77eee597cbdbe015a8bd40c798116c73ce22d5232"
61
+ }
62
+ },
63
+ "guarded": {
64
+ "mode": "guarded_v3",
65
+ "rows": 300,
66
+ "machineFlagRows": {
67
+ "protected_name": 0,
68
+ "new_cjk": 0,
69
+ "digit_magnitude": 0,
70
+ "raw_repeat_v2": 0
71
+ },
72
+ "decodeFlags": {
73
+ "empty": 0,
74
+ "length_cap": 0
75
+ },
76
+ "escalateRowsUnbroken": 0,
77
+ "inventedRows": 0,
78
+ "recapOnlyRows": 0,
79
+ "inventedEntitiesDistinct": 0,
80
+ "inventedEntities": [],
81
+ "nameBrokenRows": 0,
82
+ "simDivergenceRows": 0,
83
+ "constraintStats": {
84
+ "digitVetoSteps": 0,
85
+ "repeatVetoSteps": 4,
86
+ "nameVetoSteps": 11,
87
+ "nameTierEscalations": 0,
88
+ "digitFallback": 0,
89
+ "nameBroken": 0,
90
+ "brakeGaveUp": 0,
91
+ "lengthStops": 0
92
+ },
93
+ "output": {
94
+ "path": "artifacts/ape_a2_pt_gate/decode_PT_guarded_v1.jsonl",
95
+ "bytes": 177601,
96
+ "sha256": "a451c57a4aa6c07bbaeda639d2e0d6b88855db280b4076fa244e7945219840da"
97
+ }
98
+ }
99
+ },
100
+ "machineChecks": {
101
+ "escalateRowsUnbrokenZero": true,
102
+ "nameBrokenWithinBar": true,
103
+ "emptyZero": true,
104
+ "lengthCapZero": true
105
+ },
106
+ "machineVerdict": "PASS",
107
+ "next": "RUN_REVIEW_CAMPAIGN_SINGLE_REVEAL"
108
+ }
receipts/ape_a2_pt_gate_preregister_v1.json ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "version": "ape_a2_pt_gate_preregister_v1",
3
+ "date": "2026-08-10",
4
+ "status": "PREREGISTERED_PT_GATE",
5
+ "authorization": {
6
+ "designation": {
7
+ "path": "docs/plans/2026-08-10-ape-a2-pt-holdout-designation.md",
8
+ "sha256": "e90b3d863ae3a5892076077670eea2c032c160ffa847966229b9968a72277c4c",
9
+ "commit": "4f8e08b"
10
+ },
11
+ "ownerAnswers2026_08_10": {
12
+ "scoredDecode": "Guarded ship-stack (Recommended)",
13
+ "severeBar": "Human-parity: ≤22 + 0 entity bịa (Recommended)",
14
+ "panelSpend": "agy paired + 2 adjudicator, trần $2 (Recommended)"
15
+ }
16
+ },
17
+ "holdout": {
18
+ "certification": {
19
+ "path": "reports/artifacts/ape_a2_e0_pt_certification_v1.json",
20
+ "sha256": "484c1a14a1856f12e136a392efa995c4d10458b27fbfa941159b63b0ae096c04",
21
+ "requiredVerdict": "PASS_E0_PT_HOLDOUT_CERTIFIED"
22
+ },
23
+ "sample": {
24
+ "path": "artifacts/ape_a2_e0_pt/convert_real_pt_300.jsonl",
25
+ "sha256": "f5ec3dc2d80eb626f1f062caac11db47f7b8492ce394ce4adf9cac99249286bd"
26
+ },
27
+ "bookText": {
28
+ "path": "artifacts/ape_a0/inventory_txt/phuc-thien-thi-c-tinh-vo-ngan.txt",
29
+ "sha256": "30cd84e0595acb35558f4295e6104359174d127f0c3cedb5567c4ed5bbcdb7e0"
30
+ }
31
+ },
32
+ "shipStack": {
33
+ "checkpoint": {
34
+ "arm": "A_D3B_8E2D_V24000",
35
+ "resultArtifact": {
36
+ "path": "reports/artifacts/ape_a2_d3b_execution_result_v1.json",
37
+ "sha256": "96668708ec95e3d03d47a3dd5afb211b0610009fe88fd0616a3f83d411d1101f"
38
+ },
39
+ "checkpointSha256": "5daf9ce1ba832d6c5207ab82db705588600903b037786de6acf9c3204b3e90fb"
40
+ },
41
+ "modules": {
42
+ "constrainedV2": {
43
+ "path": "scripts/ape_a2/a2_cont_decode_constrained.py",
44
+ "sha256": "a1c687c02e34d446385f9c1dc23b4fd24903712dc3ef79c49828a3671a4c2600"
45
+ },
46
+ "nameGuardV3": {
47
+ "path": "scripts/ape_a2/a2_name_copy_guard.py",
48
+ "sha256": "f2f5374194a4f31a9ca808a5ab847ba961b3202c0655ec12b2bfbcd47943ceea"
49
+ },
50
+ "nameGuardDecode": {
51
+ "path": "scripts/ape_a2/a2_ab_decode_nameguard.py",
52
+ "sha256": "3e3084c2aee0f1518febccf1061c69d55a50544c7ed1e88fe27090600eac71d6"
53
+ },
54
+ "checkerV2": {
55
+ "path": "scripts/ape_a2/a2_checker_v2.py",
56
+ "sha256": "4f689ec6c2ca79c5022d2513b7d8a33e82ffab71ed2474054981f16ac4a4a4b6"
57
+ }
58
+ },
59
+ "checkerV2Battery": {
60
+ "path": "reports/artifacts/ape_a2_checker_v2_battery_v1.json",
61
+ "sha256": "b66d340e85a0f5b411178b261bff096b794694310a01022cb87e81a64561cb76",
62
+ "commit": "4ab6f3c"
63
+ },
64
+ "checkerV2Design": {
65
+ "path": "docs/plans/2026-08-10-ape-a2-checker-v2-draft.md",
66
+ "sha256": "63ba92bd3a4111cd3563406404c9518eb6720121ac742b0f0fa02b020a468738",
67
+ "note": "FROZEN by this preregister"
68
+ }
69
+ },
70
+ "drivers": {
71
+ "decode": {
72
+ "path": "scripts/ape_a2/a2_pt_gate_decode.py",
73
+ "sha256": "b7aa366d3ea0c457d7654c23514a6f4f1de1b3d34f9e0a842a0b2a9516474965"
74
+ },
75
+ "review": {
76
+ "path": "scripts/ape_a2/a2_pt_gate_review.py",
77
+ "sha256": "413ae668ae9f99b94afb2e089e1ec46268209433e4e88b5eac4fdf7ed8dd7a9f"
78
+ },
79
+ "verdict": {
80
+ "path": "scripts/ape_a2/a2_pt_gate_verdict.py",
81
+ "sha256": "6ce7a476603a4ca1e2d825347e43a5f49c7ae3269ed4ffddb95f562aa26a6457"
82
+ }
83
+ },
84
+ "instruction": {
85
+ "path": "docs/review/ape-a2-pt-gate-agy.md",
86
+ "sha256": "7b33b9d9a092f653db2db8a1e35ef0838f65788c00567f9c640266228569eccc"
87
+ },
88
+ "secretSha256": "a11ab818a6b708b74588139a58b3cd03a9a8e1244137e1ba7a500de2e5ed64f5",
89
+ "reviewerProtocol": {
90
+ "reviewer": "agy (gemini-3.1-pro per bridge default), effort high",
91
+ "pairedTwoSideOrders": true,
92
+ "salt": "pt-gate",
93
+ "scoredDecode": "guarded ship-stack (plain constrained v2 runs as $0 diagnostic column, dual-decode rule)",
94
+ "adjudicators": {
95
+ "names": [
96
+ "claude-session",
97
+ "codex-cli"
98
+ ],
99
+ "fallback": "muse-cli",
100
+ "rule": "queue = both-orders-stable severe-model rows ONLY (single-order = diagnostic, never adjudicated); each adjudicator verdicts independently (severe|not_severe) with family + invented-entity keys; CONFIRMED = all panel verdicts severe; if codex-cli unavailable at adjudication time, muse-cli substitutes and the substitution is recorded in the verdict"
101
+ }
102
+ },
103
+ "gates": {
104
+ "machine": {
105
+ "scored": "guarded",
106
+ "escalate_rows_unbroken": 0,
107
+ "max_name_broken_rows": 2,
108
+ "empty_rows": 0,
109
+ "length_cap_rows": 0,
110
+ "order": "machine gate evaluates BEFORE any review; FAIL here = FAIL_A2_PT_GATE_MACHINE, PT is NOT revealed and the book stays clean"
111
+ },
112
+ "review": {
113
+ "min_win_rate": 0.6,
114
+ "min_wilson_lower": 0.5,
115
+ "min_agreement": 0.8,
116
+ "min_stable_decisive": 120
117
+ },
118
+ "severe": {
119
+ "max_confirmed_rows": 22,
120
+ "max_confirmed_invented_entities": 0,
121
+ "unit_note": "22 = measured human-editor VnAPE flag rate (~7.4% of 300, B2); invented entities counted DISTINCT casefolded via checker v2 over confirmed rows only"
122
+ }
123
+ },
124
+ "spend": {
125
+ "ceilingUsd": 2.0,
126
+ "estimatedReviewUsd": 0.9,
127
+ "adjudicationUsd": 0.0
128
+ },
129
+ "revealLedger": {
130
+ "singleReveal": true,
131
+ "consumesAt": "a2_pt_gate_review.py campaign",
132
+ "note": "phuc-thien-thi burns at reveal REGARDLESS of verdict; vu-su-chi-lu stays reserved for the next round"
133
+ },
134
+ "noRerunPolicy": "one decode, one review campaign, one adjudication, one verdict; no renames, no threshold edits after this commit"
135
+ }
receipts/ape_a2_pt_gate_verdict_v1.json ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "vp2vi-ape-a2-pt-gate-verdict-v1",
3
+ "date": "2026-08-10",
4
+ "verdict": "PASS_A2_PT_GATE",
5
+ "containsSentenceText": false,
6
+ "preregister": {
7
+ "path": "reports/artifacts/ape_a2_pt_gate_preregister_v1.json",
8
+ "sha256": "e24b5b1303120d43cb57308e53d5b6ee75a9a11568c1402f9a8fc1ddc8189869"
9
+ },
10
+ "machine": {
11
+ "path": "reports/artifacts/ape_a2_pt_gate_machine_v1.json",
12
+ "sha256": "f6d9c3d36f3ebef68f86dc6df12b8d068d802b2401edeab41c8e6f1b8256a061",
13
+ "verdict": "PASS"
14
+ },
15
+ "review": {
16
+ "path": "artifacts/ape_a2_pt_gate/review/pt_review_raw_v1.json",
17
+ "sha256": "6c4c5deba3c690981155ed0286d7139b6107aab2a1ac1120281daf9fc77035ac",
18
+ "results": {
19
+ "stableModelWins": 236,
20
+ "stableDraftWins": 27,
21
+ "stableTies": 15,
22
+ "unstableAcrossOrders": 22,
23
+ "stableDecisive": 263,
24
+ "orientationAgreement": 0.9267,
25
+ "modelWinRateOfDecisive": 0.8973,
26
+ "modelWinWilson95": [
27
+ 0.8548,
28
+ 0.9285
29
+ ],
30
+ "severeBothOrdersRows": 22,
31
+ "severeSingleOrderRows": 9,
32
+ "severeDraftAnyOrderRows": 12
33
+ }
34
+ },
35
+ "adjudication": {
36
+ "path": "reports/artifacts/ape_a2_pt_gate_adjudication_v1.json",
37
+ "sha256": "4ee2683d7a9a34509c1295d6e9ca3284892d1c58e89208aecc923ca646b552fa",
38
+ "queueRows": 22,
39
+ "confirmedRows": 8,
40
+ "confirmedIds": [
41
+ "phuc-thien-thi-c:105997",
42
+ "phuc-thien-thi-c:107295",
43
+ "phuc-thien-thi-c:118123",
44
+ "phuc-thien-thi-c:146661",
45
+ "phuc-thien-thi-c:5560",
46
+ "phuc-thien-thi-c:56066",
47
+ "phuc-thien-thi-c:92977",
48
+ "phuc-thien-thi-c:95143"
49
+ ],
50
+ "confirmedFamilies": [
51
+ "'Hạ không'->'không hạ xuống': reorder invents negation (đổi nghĩa)",
52
+ "'là hắn'->'là của hắn': identity revelation becomes possession (đổi nghĩa)",
53
+ "dropped 'cung hoàng tử' + inserted 'là': asserts Đông Hoàng = Đoàn Vô Cực (relation/name error)",
54
+ "name-boundary resegmentation: 'Cầm Ma / Họa Thánh' -> 'Cầm Ma Họa' + 'Thánh truyền nhân'",
55
+ "object swap: famous MANUALS -> famous PEOPLE (đổi nghĩa)",
56
+ "omission of 'bá chủ' -> city itself becomes the Yêu Hoàng (đổi nghĩa)",
57
+ "temporal 'đằng sau'->spatial 'phía sau Yêu Đô' (literalization, đổi nghĩa)",
58
+ "tọa hạ->'ngồi xuống' literalization destroys meaning (known HD family)"
59
+ ],
60
+ "confirmedInventedEntities": [],
61
+ "singleOrderDiagnosticRows": 9
62
+ },
63
+ "checks": {
64
+ "machinePass": true,
65
+ "winRate": true,
66
+ "wilsonLower": true,
67
+ "agreement": true,
68
+ "stableDecisive": true,
69
+ "confirmedSevereWithinBar": true,
70
+ "confirmedInventedEntitiesZero": true
71
+ },
72
+ "revealLedger": "PT holdout consumed by pt_review_raw_v1 (single reveal); phuc-thien-thi is now BURNED for absolute gates regardless of verdict",
73
+ "next": "SHIP_STACK_QUALITY_CLAIM_ESTABLISHED"
74
+ }
release_manifest.json ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "vp2vi-hf-release-manifest-v1",
3
+ "date": "2026-08-11",
4
+ "repository": "DanVP/vp2vi",
5
+ "visibility": "public",
6
+ "license": "cc-by-4.0",
7
+ "baseModel": "DanVP/MoxhiMT-30-QT",
8
+ "sourceCheckpointSha256": "5daf9ce1ba832d6c5207ab82db705588600903b037786de6acf9c3204b3e90fb",
9
+ "modelSafetensorsSha256": "525735a76983cc6e120ee461937bdd3c235a27a9f059ecbcb97df1a8e6e472cb",
10
+ "files": [
11
+ {
12
+ "path": "config.json",
13
+ "bytes": 921,
14
+ "sha256": "f238990dbe506286f7ea637836b3d9d63260b658badd64d14338c0754712fe88"
15
+ },
16
+ {
17
+ "path": "generation_config.json",
18
+ "bytes": 286,
19
+ "sha256": "63504e48e7aca91fc81ffba61c673196e22a1b6db1ffcc310920a9617ac0fe62"
20
+ },
21
+ {
22
+ "path": "LICENSE",
23
+ "bytes": 859,
24
+ "sha256": "fd7dddd856331ae34240a3603cf2299e487769aab5a2d96c93daf83bedd33802"
25
+ },
26
+ {
27
+ "path": "model.safetensors",
28
+ "bytes": 146139424,
29
+ "sha256": "525735a76983cc6e120ee461937bdd3c235a27a9f059ecbcb97df1a8e6e472cb"
30
+ },
31
+ {
32
+ "path": "README.md",
33
+ "bytes": 4521,
34
+ "sha256": "5f7f2599264f55950473eb4ac6d3d99ff1ff5b201c711a1062451b47a4a04525"
35
+ },
36
+ {
37
+ "path": "receipts/ape_a2_checker_v2_battery_v1.json",
38
+ "bytes": 5038,
39
+ "sha256": "b66d340e85a0f5b411178b261bff096b794694310a01022cb87e81a64561cb76"
40
+ },
41
+ {
42
+ "path": "receipts/ape_a2_d3b_execution_result_v1.json",
43
+ "bytes": 3254,
44
+ "sha256": "96668708ec95e3d03d47a3dd5afb211b0610009fe88fd0616a3f83d411d1101f"
45
+ },
46
+ {
47
+ "path": "receipts/ape_a2_hf_model_release_authorization_v1.json",
48
+ "bytes": 4071,
49
+ "sha256": "71c400c0c1fc88e96bdbbb5aed753d1184b2adf51f81f32a2f22fd98020d3b62"
50
+ },
51
+ {
52
+ "path": "receipts/ape_a2_hf_transformers_export_v1.json",
53
+ "bytes": 1176,
54
+ "sha256": "4735971d6bad125dc7786eb5434a4021656d787c671b9dafe10d0c43c6594e7b"
55
+ },
56
+ {
57
+ "path": "receipts/ape_a2_model_preflight_v3.json",
58
+ "bytes": 6085,
59
+ "sha256": "22fa0ddc958895203f3a6f1e09d7fd97f69aa2643410e74ccf47798960fd79bb"
60
+ },
61
+ {
62
+ "path": "receipts/ape_a2_model_preregister_v3.json",
63
+ "bytes": 3624,
64
+ "sha256": "43953c1cf121aa9a8205419974dc75953a046104b312b33c4236508440c26de4"
65
+ },
66
+ {
67
+ "path": "receipts/ape_a2_pt_gate_adjudication_v1.json",
68
+ "bytes": 10150,
69
+ "sha256": "4ee2683d7a9a34509c1295d6e9ca3284892d1c58e89208aecc923ca646b552fa"
70
+ },
71
+ {
72
+ "path": "receipts/ape_a2_pt_gate_machine_v1.json",
73
+ "bytes": 2647,
74
+ "sha256": "f6d9c3d36f3ebef68f86dc6df12b8d068d802b2401edeab41c8e6f1b8256a061"
75
+ },
76
+ {
77
+ "path": "receipts/ape_a2_pt_gate_preregister_v1.json",
78
+ "bytes": 5432,
79
+ "sha256": "e24b5b1303120d43cb57308e53d5b6ee75a9a11568c1402f9a8fc1ddc8189869"
80
+ },
81
+ {
82
+ "path": "receipts/ape_a2_pt_gate_verdict_v1.json",
83
+ "bytes": 2714,
84
+ "sha256": "ecee783b5ae85293242e457cb8ce4955cced595f09d67dcb8a70874d501f6f21"
85
+ },
86
+ {
87
+ "path": "source.spm",
88
+ "bytes": 606202,
89
+ "sha256": "d1557335c5892d2f33c6a4864f3ae598b235f705a713e32ca020b9fadb99a99e"
90
+ },
91
+ {
92
+ "path": "special_tokens_map.json",
93
+ "bytes": 100,
94
+ "sha256": "25fad97543a902bad023befe0a4fb5ed1e6c4811193ed732026414ff5b947b0b"
95
+ },
96
+ {
97
+ "path": "target.spm",
98
+ "bytes": 606202,
99
+ "sha256": "d1557335c5892d2f33c6a4864f3ae598b235f705a713e32ca020b9fadb99a99e"
100
+ },
101
+ {
102
+ "path": "tokenizer.json",
103
+ "bytes": 1927243,
104
+ "sha256": "cf8939434abcbab35469726b6321233dda55b5f3acf4e915ff36ac1e37e40adb"
105
+ },
106
+ {
107
+ "path": "tokenizer_config.json",
108
+ "bytes": 899,
109
+ "sha256": "4f93e5c822cc7114fa106ae0da9fafb2f127cd18cd3c9184b05b32f65447600e"
110
+ },
111
+ {
112
+ "path": "vocab.json",
113
+ "bytes": 613712,
114
+ "sha256": "629dae55363b760c03d7860a02d42a3b913c1fcfae2255e130a9d686f96433c5"
115
+ }
116
+ ],
117
+ "totalBytes": 149944560,
118
+ "manifestExcludesSelf": true,
119
+ "textExclusion": "no training or holdout corpus text; receipts are stats-only",
120
+ "webgpuSpaceIncluded": false
121
+ }
source.spm ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d1557335c5892d2f33c6a4864f3ae598b235f705a713e32ca020b9fadb99a99e
3
+ size 606202
special_tokens_map.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "eos_token": "</s>",
3
+ "unk_token": "<unk>",
4
+ "pad_token": "<pad>",
5
+ "bos_token": "<s>"
6
+ }
target.spm ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d1557335c5892d2f33c6a4864f3ae598b235f705a713e32ca020b9fadb99a99e
3
+ size 606202
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "added_tokens_decoder": {
3
+ "0": {
4
+ "content": "<pad>",
5
+ "lstrip": false,
6
+ "normalized": false,
7
+ "rstrip": false,
8
+ "single_word": false,
9
+ "special": true
10
+ },
11
+ "1": {
12
+ "content": "<s>",
13
+ "lstrip": false,
14
+ "normalized": false,
15
+ "rstrip": false,
16
+ "single_word": false,
17
+ "special": true
18
+ },
19
+ "2": {
20
+ "content": "</s>",
21
+ "lstrip": false,
22
+ "normalized": false,
23
+ "rstrip": false,
24
+ "single_word": false,
25
+ "special": true
26
+ },
27
+ "3": {
28
+ "content": "<unk>",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false,
33
+ "special": true
34
+ }
35
+ },
36
+ "bos_token": "<s>",
37
+ "clean_up_tokenization_spaces": false,
38
+ "eos_token": "</s>",
39
+ "model_max_length": 512,
40
+ "pad_token": "<pad>",
41
+ "separate_vocabs": false,
42
+ "source_lang": null,
43
+ "sp_model_kwargs": {},
44
+ "target_lang": null,
45
+ "tokenizer_class": "MarianTokenizer",
46
+ "unk_token": "<unk>"
47
+ }
vocab.json ADDED
The diff for this file is too large to render. See raw diff