pe-core-fused-w15: heads, Platt/tau calibration, config, MANIFEST, card (mirror of weights/current)
Browse files- MANIFEST.json +59 -0
- README.md +91 -0
- calib.json +3 -0
- config.json +19 -0
- members/pe-core-v2/MANIFEST.json +38 -0
- members/pe-core-v2/calib.json +8 -0
- members/pe-core-v2/config.json +73 -0
- members/pe-core-v2/head.pt +3 -0
- members/pe-core-v31/MANIFEST.json +38 -0
- members/pe-core-v31/calib.json +8 -0
- members/pe-core-v31/config.json +73 -0
- members/pe-core-v31/head.pt +3 -0
MANIFEST.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"backbone": {
|
| 3 |
+
"hf_id": "timm/vit_pe_core_large_patch14_336.fb",
|
| 4 |
+
"licence": "Apache-2.0 (hub card; Meta Perception Encoder Core L/14-336)",
|
| 5 |
+
"name": "pe-core-l-336",
|
| 6 |
+
"params": 316102656,
|
| 7 |
+
"revision": "e63206c8e3a0e9b699e40f31080eebd78fd2258e",
|
| 8 |
+
"weight_sha256": "f1c3c657cfded6c2616e52721018f64033de06bb5122236e678c286dc891e133"
|
| 9 |
+
},
|
| 10 |
+
"commit": "a8d533456bd8",
|
| 11 |
+
"fused": {
|
| 12 |
+
"members": [
|
| 13 |
+
"pe-core-v2",
|
| 14 |
+
"pe-core-v31"
|
| 15 |
+
],
|
| 16 |
+
"rule": "sigmoid(sum_i w_i * (a_i * z_i + b_i - tau_shift(tau_i)) - tau_shift(tau_fused))",
|
| 17 |
+
"tau_fused": 0.34634694123443033,
|
| 18 |
+
"threshold": 0.5,
|
| 19 |
+
"weights": [
|
| 20 |
+
0.15,
|
| 21 |
+
0.85
|
| 22 |
+
]
|
| 23 |
+
},
|
| 24 |
+
"head_params": 12290,
|
| 25 |
+
"members": [
|
| 26 |
+
{
|
| 27 |
+
"calib": {
|
| 28 |
+
"a": 2.6283426901229885,
|
| 29 |
+
"b": 0.9824626112187952,
|
| 30 |
+
"n_reals": 11510,
|
| 31 |
+
"real_pool": "real_pool_A_v1",
|
| 32 |
+
"tau": 0.9992152839113011,
|
| 33 |
+
"threshold": 0.5
|
| 34 |
+
},
|
| 35 |
+
"config_hash": "918545e31397",
|
| 36 |
+
"head_params": 6145,
|
| 37 |
+
"head_sha256": "76ea9ce40e3df014e17a499aa2556f6d58354de0598b5e65fd05acfccc871183",
|
| 38 |
+
"name": "pe-core-v2",
|
| 39 |
+
"source": "/workspace/techjam/weights/pe-core-v2"
|
| 40 |
+
},
|
| 41 |
+
{
|
| 42 |
+
"calib": {
|
| 43 |
+
"a": 1.5743150509990271,
|
| 44 |
+
"b": 0.4057424578880145,
|
| 45 |
+
"n_reals": 11510,
|
| 46 |
+
"real_pool": "real_pool_A_v1",
|
| 47 |
+
"tau": 0.9809159811231876,
|
| 48 |
+
"threshold": 0.5
|
| 49 |
+
},
|
| 50 |
+
"config_hash": "b4ba377720e8",
|
| 51 |
+
"head_params": 6145,
|
| 52 |
+
"head_sha256": "53c9c6c19f22fe0c9c25c1e16360494409105bd2062330341fc5fc031b942ebc",
|
| 53 |
+
"name": "pe-core-v31",
|
| 54 |
+
"source": "/workspace/techjam/weights/pe-core-v31"
|
| 55 |
+
}
|
| 56 |
+
],
|
| 57 |
+
"params": 316114946,
|
| 58 |
+
"tool": "tools/fuse_checkpoint.py"
|
| 59 |
+
}
|
README.md
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
tags:
|
| 4 |
+
- image-classification
|
| 5 |
+
- ai-generated-image-detection
|
| 6 |
+
- robustness
|
| 7 |
+
---
|
| 8 |
+
|
| 9 |
+
# techjam-2026-track5: pe-core-fused-w15
|
| 10 |
+
|
| 11 |
+
Detector for AI-generated images whose ranking survives JPEG re-encoding, blur, rescaling, noise, colour jitter and cropping. Entry for TikTok TechJam 2026, Track 5. Project repo: https://github.com/AudricY/techjam26-image-detection.
|
| 12 |
+
|
| 13 |
+
Two LayerNorm + linear heads on **one frozen PE-Core-L/14-336 tower** (`timm/vit_pe_core_large_patch14_336.fb` @ `e63206c8e3a0e9b699e40f31080eebd78fd2258e`, Apache-2.0; 316,114,946 parameters loaded, 15.8 % of the track's 2B cap). Head A is trained on a balanced multi-family pool, head B on a pool tilted toward modern commercial generators; the served score is a weighted sum of the two Platt-calibrated logits, w = (0.15, 0.85), with the threshold refit at 1 % FPR on 11,510 held-out reals (`real_pool_A_v1`; realised 1.01 %). **The tower is not shipped here**: it is fetched from the hub by pinned id and revision at load, and its sha256 is checked against `MANIFEST.json`. This directory is not loadable with `timm.create_model`; it is a checkpoint directory for the project's `predict` CLI (below).
|
| 14 |
+
|
| 15 |
+
## Measured results, with 95 % CIs and a zero-pixel null beside every number
|
| 16 |
+
|
| 17 |
+
| read | result | zero-pixel null (metadata only) |
|
| 18 |
+
| --- | --- | --- |
|
| 19 |
+
| Organisers' validation split, original-COCO copy (5,000 reals vs 8,843 DALL·E 3): clean AUROC, raw | **0.9971** [0.9965, 0.9977] | quality 0.9998, pixels 0.9994: the raw null is *above* the model; under the bias-corrected `norm` protocol the null falls to 0.5000 / 0.849 and the model reads 0.9974 |
|
| 20 |
+
| same copy, `norm`: robust AUROC over the 15 transform cells · worst cell (noise σ0.10) | 0.9912 [0.9902, 0.9921] · 0.9628 [0.9601, 0.9656] | 0.849 |
|
| 21 |
+
| WildFake-COCO copy (4,998 reals, 200×200 re-encodes): clean AUROC raw / norm | 0.9690 [0.9664, 0.9716] / 0.9759 [0.9737, 0.9782] | pixels **1.0000** raw / 0.428 norm |
|
| 22 |
+
| **400 held-out generators** (Community Forensics slice, 16,000 fakes vs 3,500 LAION reals; 397 are families absent from every training pool, three are WildFake-era families under CF's spelling), clean | **0.9986** [0.9981, 0.9989] | size null 0.9813; on the square-aspect stratum where that null is 0.5 by construction: 0.9958 clean, 0.9774 [0.9701, 0.9838] under noise σ0.05 |
|
| 23 |
+
| Commercial frontier fakes, TPR at the served threshold: nano-banana · GPT-Image class | 76.3 % [72.8, 79.6] · 18.2 % [15.3, 21.5] | at a matched 1 %-FPR cut this system reads above the public SigLIP baseline on both (matched-τ table in the project README); its training provenance is unknown, ours is provably held out |
|
| 24 |
+
|
| 25 |
+
**Operating point.** The shipped threshold (0.5) is precision-heavy: on the validation split it flags 0 of 5,000 reals and 40.8 % of the DALL·E 3 fakes (TPR 0.958 at 1 % FPR, raw: the ranking is strong, the cut is conservative). Cut `pred` elsewhere if recall matters more; the generated τ-ladder below gives the measured trade at five cuts. CPU serve: 0.44 s/image (48 cores, batch 8, model load included).
|
| 26 |
+
|
| 27 |
+
<!-- gen:operating-points -->
|
| 28 |
+
# τ-ladder — pe-core-v2 + pe-core-v31 at w=[0.15, 0.85], norm protocol, clean cell
|
| 29 |
+
|
| 30 |
+
Served scale: `sigmoid(0.15·logit(pe-core-v2) + 0.85·logit(pe-core-v31) − tau_shift(0.34634694123443033))`, the checkpoint's own
|
| 31 |
+
rule (`weights/current`). Fusion path validated against the persisted fused run
|
| 32 |
+
`results/20260831-1540-w15-assembly` on dev_internal_v2 (norm.clean, n = 4,892): max |Δp| 2.30e-04, 0 decision flips at 0.5.
|
| 33 |
+
|
| 34 |
+
## Recall and false positives across the ladder
|
| 35 |
+
|
| 36 |
+
| threshold | τ | TPR organiser fakes | TPR CF fakes | TPR stress nano-banana | TPR stress echo-4o-gptimage | FPR coco-orig reals | FPR coco-wildfake reals | FPR CF LAION reals |
|
| 37 |
+
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
| 38 |
+
| served 0.5 | 0.5 (served) | 0.3899 [0.3798, 0.4001] | 0.5356 [0.5279, 0.5433] | 0.7633 [0.7277, 0.7956] | 0.1817 [0.1529, 0.2145] | 0.0000 [0.0000, 0.0008] | 0.0016 [0.0008, 0.0032] | 0.0003 [0.0001, 0.0016] |
|
| 39 |
+
| coco-orig reals @ FPR 1% | 0.0127193 | 0.9637 [0.9596, 0.9674] | 0.9814 [0.9792, 0.9834] | 0.9933 [0.9830, 0.9974] | 0.9283 [0.9049, 0.9464] | 0.0100 [0.0076, 0.0132] | 0.1495 [0.1398, 0.1596] | 0.0109 [0.0079, 0.0149] |
|
| 40 |
+
| coco-orig reals @ FPR 5% | 0.00343981 | 0.9896 [0.9873, 0.9915] | 0.9954 [0.9942, 0.9963] | 0.9967 [0.9879, 0.9991] | 0.9817 [0.9675, 0.9897] | 0.0500 [0.0443, 0.0564] | 0.3735 [0.3602, 0.3871] | 0.0520 [0.0451, 0.0599] |
|
| 41 |
+
| coco-orig reals @ FPR 10% | 0.0017417 | 0.9959 [0.9944, 0.9971] | 0.9978 [0.9969, 0.9984] | 0.9983 [0.9906, 0.9997] | 0.9950 [0.9854, 0.9983] | 0.1000 [0.0920, 0.1086] | 0.5212 [0.5073, 0.5350] | 0.1006 [0.0910, 0.1110] |
|
| 42 |
+
| CF LAION reals @ FPR 1% | 0.0150169 | 0.9590 [0.9546, 0.9629] | 0.9787 [0.9763, 0.9808] | 0.9917 [0.9806, 0.9964] | 0.9233 [0.8992, 0.9420] | 0.0082 [0.0061, 0.0111] | 0.1293 [0.1202, 0.1388] | 0.0100 [0.0072, 0.0139] |
|
| 43 |
+
| CF LAION reals @ FPR 5% | 0.00366686 | 0.9885 [0.9860, 0.9905] | 0.9950 [0.9938, 0.9960] | 0.9967 [0.9879, 0.9991] | 0.9800 [0.9654, 0.9885] | 0.0458 [0.0403, 0.0520] | 0.3629 [0.3497, 0.3764] | 0.0500 [0.0433, 0.0577] |
|
| 44 |
+
| CF LAION reals @ FPR 10% | 0.00176024 | 0.9959 [0.9944, 0.9971] | 0.9978 [0.9969, 0.9984] | 0.9983 [0.9906, 0.9997] | 0.9950 [0.9854, 0.9983] | 0.0986 [0.0906, 0.1072] | 0.5192 [0.5053, 0.5330] | 0.1000 [0.0905, 0.1104] |
|
| 45 |
+
|
| 46 |
+
n: organiser fakes 8,843, CF fakes 16,000, stress nano-banana 600, stress echo-4o-gptimage 600, coco-orig reals 5,000, coco-wildfake reals 4,998, CF LAION reals 3,500.
|
| 47 |
+
Brackets are Wilson 95 % score intervals. These are single-sample rates on fixed
|
| 48 |
+
persisted arrays: there is NO repeat-run noise floor for them beyond the interval.
|
| 49 |
+
|
| 50 |
+
## Accuracy beside the accuracy nobody has to earn
|
| 51 |
+
|
| 52 |
+
`always-fake` never looks at a pixel and returns *fake* for every row. On a split whose
|
| 53 |
+
fakes outnumber its reals, that alone is the accuracy an honest headline has to beat.
|
| 54 |
+
|
| 55 |
+
| threshold | organiser coco-orig acc | always-fake | balanced | organiser coco-wildfake acc | always-fake | balanced | CF breadth slice acc | always-fake | balanced |
|
| 56 |
+
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
| 57 |
+
| served 0.5 | 0.6103 | 0.6388 | 0.6950 | 0.6096 | 0.6389 | 0.6942 | 0.6189 | 0.8205 | 0.7677 |
|
| 58 |
+
| coco-orig reals @ FPR 1% | 0.9732 | 0.6388 | 0.9769 | 0.9228 | 0.6389 | 0.9071 | 0.9828 | 0.8205 | 0.9853 |
|
| 59 |
+
| coco-orig reals @ FPR 5% | 0.9753 | 0.6388 | 0.9698 | 0.8585 | 0.6389 | 0.8080 | 0.9869 | 0.8205 | 0.9717 |
|
| 60 |
+
| coco-orig reals @ FPR 10% | 0.9613 | 0.6388 | 0.9480 | 0.8092 | 0.6389 | 0.7374 | 0.9801 | 0.8205 | 0.9486 |
|
| 61 |
+
| CF LAION reals @ FPR 1% | 0.9708 | 0.6388 | 0.9754 | 0.9271 | 0.6389 | 0.9148 | 0.9807 | 0.8205 | 0.9843 |
|
| 62 |
+
| CF LAION reals @ FPR 5% | 0.9761 | 0.6388 | 0.9713 | 0.8616 | 0.6389 | 0.8128 | 0.9869 | 0.8205 | 0.9725 |
|
| 63 |
+
| CF LAION reals @ FPR 10% | 0.9618 | 0.6388 | 0.9487 | 0.8099 | 0.6389 | 0.7384 | 0.9802 | 0.8205 | 0.9489 |
|
| 64 |
+
|
| 65 |
+
Reporting-only: every τ above is a quantile of a reals population, published beside its
|
| 66 |
+
realised FPR. The served threshold is unchanged; nothing here fits, selects or trains.
|
| 67 |
+
<!-- /gen:operating-points -->
|
| 68 |
+
|
| 69 |
+
Full 16-cell tables, both protocols and both COCO copies, with null rows: `docs/robustness.md` in the project repo.
|
| 70 |
+
|
| 71 |
+
## Files
|
| 72 |
+
|
| 73 |
+
`config.json` + `calib.json` + `MANIFEST.json` here define the fused serving; `members/pe-core-v2/` (head A) and `members/pe-core-v31/` (head B) hold the two heads with their Platt calibration, 62 KB in total.
|
| 74 |
+
|
| 75 |
+
## Use
|
| 76 |
+
|
| 77 |
+
```bash
|
| 78 |
+
# from a clone of the project repo, where this checkpoint ships as weights/current/
|
| 79 |
+
uv sync
|
| 80 |
+
uv run predict --input-dir path/to/images --output preds.json --checkpoint weights/current
|
| 81 |
+
|
| 82 |
+
# the same checkpoint is mirrored on the Hugging Face hub
|
| 83 |
+
uv run hf download audya/techjam-2026-track5 --local-dir weights/hf # config, calib, MANIFEST, members/
|
| 84 |
+
uv run predict --input-dir path/to/images --output preds.json --checkpoint weights/hf
|
| 85 |
+
```
|
| 86 |
+
|
| 87 |
+
Output: a JSON list of `{"image_path", "pred"}`, `pred` = P(AI-generated) ∈ [0, 1]. An undecodable image gets 0.5 (the threshold itself, not a measurement) and is named on stderr. The tower downloads once (~1.2 GB); GPU when present, CPU otherwise.
|
| 88 |
+
|
| 89 |
+
## Licence
|
| 90 |
+
|
| 91 |
+
Heads, calibration and config: Apache-2.0. Backbone: Apache-2.0 (Meta Perception Encoder Core, via timm). Training data: WildFake (ModelScope, Apache-2.0; its LAION-5B reals are URL-derived third-party photographs, never redistributed), COCO train2017 (annotations CC-BY-4.0, images under their Flickr terms), SID-Set (CC-BY-4.0), Community Forensics (CC-BY-4.0). No organiser validation image was used for training, calibration or selection.
|
calib.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"tau_fused": 0.34634694123443033
|
| 3 |
+
}
|
config.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"backbone": {
|
| 3 |
+
"kernel": "bicubic",
|
| 4 |
+
"layers": [],
|
| 5 |
+
"name": "pe-core-l-336",
|
| 6 |
+
"policy": "squish",
|
| 7 |
+
"resolution": 336
|
| 8 |
+
},
|
| 9 |
+
"fused": {
|
| 10 |
+
"members": [
|
| 11 |
+
"pe-core-v2",
|
| 12 |
+
"pe-core-v31"
|
| 13 |
+
],
|
| 14 |
+
"weights": [
|
| 15 |
+
0.15,
|
| 16 |
+
0.85
|
| 17 |
+
]
|
| 18 |
+
}
|
| 19 |
+
}
|
members/pe-core-v2/MANIFEST.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"backbone": {
|
| 3 |
+
"hf_id": "timm/vit_pe_core_large_patch14_336.fb",
|
| 4 |
+
"licence": "Apache-2.0 (hub card; Meta Perception Encoder Core L/14-336)",
|
| 5 |
+
"name": "pe-core-l-336",
|
| 6 |
+
"params": 316102656,
|
| 7 |
+
"revision": "e63206c8e3a0e9b699e40f31080eebd78fd2258e",
|
| 8 |
+
"weight_sha256": "f1c3c657cfded6c2616e52721018f64033de06bb5122236e678c286dc891e133"
|
| 9 |
+
},
|
| 10 |
+
"commit": "5e98d1dedd85",
|
| 11 |
+
"config_hash": "918545e31397",
|
| 12 |
+
"head_params": 6145,
|
| 13 |
+
"head_sha256": "76ea9ce40e3df014e17a499aa2556f6d58354de0598b5e65fd05acfccc871183",
|
| 14 |
+
"params": 316108801,
|
| 15 |
+
"smoke": false,
|
| 16 |
+
"train": {
|
| 17 |
+
"dev_split": "dev_internal_v2",
|
| 18 |
+
"features": "/workspace/techjam/runs/20260827-1950-pe-core-retrain",
|
| 19 |
+
"history": [
|
| 20 |
+
{
|
| 21 |
+
"dev_auroc": 0.9966124682523205,
|
| 22 |
+
"epoch": 1.0,
|
| 23 |
+
"loss": 0.2790770943969341
|
| 24 |
+
}
|
| 25 |
+
],
|
| 26 |
+
"isotonic_check": {
|
| 27 |
+
"delta": 0.0034065314839373984,
|
| 28 |
+
"isotonic_ece": 1.924268996036913e-14,
|
| 29 |
+
"platt_ece": 0.0034065314839566412
|
| 30 |
+
},
|
| 31 |
+
"n_dev": 4892,
|
| 32 |
+
"n_train": 87754,
|
| 33 |
+
"real_pool_split": "real_pool_A_v1",
|
| 34 |
+
"train_manifest_sha256": "9dedff21ec37604d44ec8695a0afaf6026ba9ca422909f29b60c03340202f2de",
|
| 35 |
+
"train_split": "train_v2",
|
| 36 |
+
"views": 7
|
| 37 |
+
}
|
| 38 |
+
}
|
members/pe-core-v2/calib.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"a": 2.6283426901229885,
|
| 3 |
+
"b": 0.9824626112187952,
|
| 4 |
+
"tau": 0.9992152839113011,
|
| 5 |
+
"real_pool": "real_pool_A_v1",
|
| 6 |
+
"n_reals": 11510,
|
| 7 |
+
"threshold": 0.5
|
| 8 |
+
}
|
members/pe-core-v2/config.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"seed": 0,
|
| 3 |
+
"backbone": {
|
| 4 |
+
"name": "pe-core-l-336",
|
| 5 |
+
"resolution": 336,
|
| 6 |
+
"kernel": "bicubic",
|
| 7 |
+
"policy": "squish",
|
| 8 |
+
"layers": []
|
| 9 |
+
},
|
| 10 |
+
"head": {
|
| 11 |
+
"type": "ln_linear",
|
| 12 |
+
"hidden": 0,
|
| 13 |
+
"dropout": 0.0
|
| 14 |
+
},
|
| 15 |
+
"aug": {
|
| 16 |
+
"p": 1.0,
|
| 17 |
+
"chain_min": 1,
|
| 18 |
+
"chain_max": 5,
|
| 19 |
+
"families": [
|
| 20 |
+
"jpeg",
|
| 21 |
+
"blur",
|
| 22 |
+
"resize",
|
| 23 |
+
"noise",
|
| 24 |
+
"jitter",
|
| 25 |
+
"crop"
|
| 26 |
+
],
|
| 27 |
+
"hflip": true
|
| 28 |
+
},
|
| 29 |
+
"train": {
|
| 30 |
+
"lr": 0.001,
|
| 31 |
+
"batch": 128,
|
| 32 |
+
"epochs": 1,
|
| 33 |
+
"label_smoothing": 0.05,
|
| 34 |
+
"wd": 0.0
|
| 35 |
+
},
|
| 36 |
+
"calib": {
|
| 37 |
+
"method": "platt",
|
| 38 |
+
"tau_fpr": 0.01,
|
| 39 |
+
"real_pool": "real_pool_A"
|
| 40 |
+
},
|
| 41 |
+
"data": {
|
| 42 |
+
"train_split": "/workspace/techjam/data/splits/train_v2.json",
|
| 43 |
+
"dev_split": "/workspace/techjam/data/splits/dev_internal_v2.json",
|
| 44 |
+
"train_manifest_sha256": "9dedff21ec37604d44ec8695a0afaf6026ba9ca422909f29b60c03340202f2de"
|
| 45 |
+
},
|
| 46 |
+
"basis": {
|
| 47 |
+
"aug.chain_max": "guessed",
|
| 48 |
+
"aug.chain_min": "guessed",
|
| 49 |
+
"aug.families": "guessed",
|
| 50 |
+
"aug.hflip": "guessed",
|
| 51 |
+
"aug.p": "guessed",
|
| 52 |
+
"backbone.kernel": "guessed",
|
| 53 |
+
"backbone.layers": "guessed",
|
| 54 |
+
"backbone.name": "guessed",
|
| 55 |
+
"backbone.policy": "guessed",
|
| 56 |
+
"backbone.resolution": "guessed",
|
| 57 |
+
"calib.method": "guessed",
|
| 58 |
+
"calib.real_pool": "guessed",
|
| 59 |
+
"calib.tau_fpr": "guessed",
|
| 60 |
+
"data.dev_split": "guessed",
|
| 61 |
+
"data.train_manifest_sha256": "guessed",
|
| 62 |
+
"data.train_split": "guessed",
|
| 63 |
+
"head.dropout": "guessed",
|
| 64 |
+
"head.hidden": "guessed",
|
| 65 |
+
"head.type": "guessed",
|
| 66 |
+
"seed": "guessed",
|
| 67 |
+
"train.batch": "guessed",
|
| 68 |
+
"train.epochs": "guessed",
|
| 69 |
+
"train.label_smoothing": "guessed",
|
| 70 |
+
"train.lr": "guessed",
|
| 71 |
+
"train.wd": "guessed"
|
| 72 |
+
}
|
| 73 |
+
}
|
members/pe-core-v2/head.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:76ea9ce40e3df014e17a499aa2556f6d58354de0598b5e65fd05acfccc871183
|
| 3 |
+
size 26781
|
members/pe-core-v31/MANIFEST.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"backbone": {
|
| 3 |
+
"hf_id": "timm/vit_pe_core_large_patch14_336.fb",
|
| 4 |
+
"licence": "Apache-2.0 (hub card; Meta Perception Encoder Core L/14-336)",
|
| 5 |
+
"name": "pe-core-l-336",
|
| 6 |
+
"params": 316102656,
|
| 7 |
+
"revision": "e63206c8e3a0e9b699e40f31080eebd78fd2258e",
|
| 8 |
+
"weight_sha256": "f1c3c657cfded6c2616e52721018f64033de06bb5122236e678c286dc891e133"
|
| 9 |
+
},
|
| 10 |
+
"commit": "0df6c84b951a",
|
| 11 |
+
"config_hash": "b4ba377720e8",
|
| 12 |
+
"head_params": 6145,
|
| 13 |
+
"head_sha256": "53c9c6c19f22fe0c9c25c1e16360494409105bd2062330341fc5fc031b942ebc",
|
| 14 |
+
"params": 316108801,
|
| 15 |
+
"smoke": false,
|
| 16 |
+
"train": {
|
| 17 |
+
"dev_split": "dev_internal_v3_1_q75",
|
| 18 |
+
"features": "/workspace/techjam/runs/20260827-2010-pe-core-v31",
|
| 19 |
+
"history": [
|
| 20 |
+
{
|
| 21 |
+
"dev_auroc": 0.97013771128046,
|
| 22 |
+
"epoch": 1.0,
|
| 23 |
+
"loss": 0.2919537660444683
|
| 24 |
+
}
|
| 25 |
+
],
|
| 26 |
+
"isotonic_check": {
|
| 27 |
+
"delta": 0.0050981749540304835,
|
| 28 |
+
"isotonic_ece": 1.6559901132518611e-13,
|
| 29 |
+
"platt_ece": 0.005098174954196083
|
| 30 |
+
},
|
| 31 |
+
"n_dev": 7948,
|
| 32 |
+
"n_train": 103046,
|
| 33 |
+
"real_pool_split": "real_pool_A_v1",
|
| 34 |
+
"train_manifest_sha256": "4748e20752d95a6971e655784136661c569b51d1dfe015c0783db3b627c3f493",
|
| 35 |
+
"train_split": "train_v3_1_q75",
|
| 36 |
+
"views": 7
|
| 37 |
+
}
|
| 38 |
+
}
|
members/pe-core-v31/calib.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"a": 1.5743150509990271,
|
| 3 |
+
"b": 0.4057424578880145,
|
| 4 |
+
"tau": 0.9809159811231876,
|
| 5 |
+
"real_pool": "real_pool_A_v1",
|
| 6 |
+
"n_reals": 11510,
|
| 7 |
+
"threshold": 0.5
|
| 8 |
+
}
|
members/pe-core-v31/config.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"seed": 0,
|
| 3 |
+
"backbone": {
|
| 4 |
+
"name": "pe-core-l-336",
|
| 5 |
+
"resolution": 336,
|
| 6 |
+
"kernel": "bicubic",
|
| 7 |
+
"policy": "squish",
|
| 8 |
+
"layers": []
|
| 9 |
+
},
|
| 10 |
+
"head": {
|
| 11 |
+
"type": "ln_linear",
|
| 12 |
+
"hidden": 0,
|
| 13 |
+
"dropout": 0.0
|
| 14 |
+
},
|
| 15 |
+
"aug": {
|
| 16 |
+
"p": 1.0,
|
| 17 |
+
"chain_min": 1,
|
| 18 |
+
"chain_max": 5,
|
| 19 |
+
"families": [
|
| 20 |
+
"jpeg",
|
| 21 |
+
"blur",
|
| 22 |
+
"resize",
|
| 23 |
+
"noise",
|
| 24 |
+
"jitter",
|
| 25 |
+
"crop"
|
| 26 |
+
],
|
| 27 |
+
"hflip": true
|
| 28 |
+
},
|
| 29 |
+
"train": {
|
| 30 |
+
"lr": 0.001,
|
| 31 |
+
"batch": 128,
|
| 32 |
+
"epochs": 1,
|
| 33 |
+
"label_smoothing": 0.05,
|
| 34 |
+
"wd": 0.0
|
| 35 |
+
},
|
| 36 |
+
"calib": {
|
| 37 |
+
"method": "platt",
|
| 38 |
+
"tau_fpr": 0.01,
|
| 39 |
+
"real_pool": "real_pool_A"
|
| 40 |
+
},
|
| 41 |
+
"data": {
|
| 42 |
+
"train_split": "/workspace/techjam/data/splits/train_v3_1_q75.json",
|
| 43 |
+
"dev_split": "/workspace/techjam/data/splits/dev_internal_v3_1_q75.json",
|
| 44 |
+
"train_manifest_sha256": "4748e20752d95a6971e655784136661c569b51d1dfe015c0783db3b627c3f493"
|
| 45 |
+
},
|
| 46 |
+
"basis": {
|
| 47 |
+
"aug.chain_max": "guessed",
|
| 48 |
+
"aug.chain_min": "guessed",
|
| 49 |
+
"aug.families": "guessed",
|
| 50 |
+
"aug.hflip": "guessed",
|
| 51 |
+
"aug.p": "guessed",
|
| 52 |
+
"backbone.kernel": "guessed",
|
| 53 |
+
"backbone.layers": "guessed",
|
| 54 |
+
"backbone.name": "guessed",
|
| 55 |
+
"backbone.policy": "guessed",
|
| 56 |
+
"backbone.resolution": "guessed",
|
| 57 |
+
"calib.method": "guessed",
|
| 58 |
+
"calib.real_pool": "guessed",
|
| 59 |
+
"calib.tau_fpr": "guessed",
|
| 60 |
+
"data.dev_split": "guessed",
|
| 61 |
+
"data.train_manifest_sha256": "guessed",
|
| 62 |
+
"data.train_split": "guessed",
|
| 63 |
+
"head.dropout": "guessed",
|
| 64 |
+
"head.hidden": "guessed",
|
| 65 |
+
"head.type": "guessed",
|
| 66 |
+
"seed": "guessed",
|
| 67 |
+
"train.batch": "guessed",
|
| 68 |
+
"train.epochs": "guessed",
|
| 69 |
+
"train.label_smoothing": "guessed",
|
| 70 |
+
"train.lr": "guessed",
|
| 71 |
+
"train.wd": "guessed"
|
| 72 |
+
}
|
| 73 |
+
}
|
members/pe-core-v31/head.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:53c9c6c19f22fe0c9c25c1e16360494409105bd2062330341fc5fc031b942ebc
|
| 3 |
+
size 26781
|