TheVortexProject commited on
Commit
96081fe
·
verified ·
1 Parent(s): a165a34

Publish sanitized InsectNet v0.1.0 archival release

Browse files
.gitattributes CHANGED
@@ -1,35 +1 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
  *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz 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
 
 
 
 
 
 
 
 
 
1
  *.joblib filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PROVENANCE.md ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Data and model provenance
2
+
3
+ ## Preserved claim
4
+
5
+ This repository preserves one v0.1 classifier artifact with an independently verified SHA-256. The artifact consumes 6,522-dimensional output logits from the declared BirdNET v2.4 FP16 TFLite backbone.
6
+
7
+ The exact original per-record training snapshot no longer survives. Therefore this release does not claim to be independently reproducible from raw source media.
8
+
9
+ ## Surviving source-family record
10
+
11
+ | Source family | Surviving license information | Release treatment |
12
+ |---|---|---|
13
+ | InsectSet459 | Dataset card states CC BY 4.0; source material may also be CC0 | Named as a source family; media not redistributed |
14
+ | ESC-50 | CC BY-NC 3.0 | Named as a source family; media not redistributed |
15
+ | iNaturalist audio | License varies by individual recording | No blanket license asserted; media not redistributed |
16
+ | Private field negatives | Private research evidence | Not redistributed and location omitted |
17
+ | BirdNET backbone | Separate upstream model terms apply | Backbone is not redistributed here |
18
+
19
+ ## Missing evidence
20
+
21
+ The following v0.1 records are unavailable:
22
+
23
+ - exact source-file list and per-record licenses;
24
+ - exact normalized window manifest;
25
+ - grouped train/evaluation split;
26
+ - threshold-selection report;
27
+ - complete field-review ledger linked to this exact artifact;
28
+ - original environment lockfile.
29
+
30
+ These gaps are recorded rather than reconstructed from later experimental branches.
31
+
32
+ ## Release rule
33
+
34
+ A future model version must include:
35
+
36
+ 1. artifact SHA-256 and byte size;
37
+ 2. feature extractor identity and checksum;
38
+ 3. ordered classes and independent thresholds;
39
+ 4. source/window manifest digest;
40
+ 5. per-record source and license provenance;
41
+ 6. grouped split policy and seed;
42
+ 7. scoped metrics and known false positives;
43
+ 8. code commit and runtime source checksum;
44
+ 9. deployment target and rollback artifact;
45
+ 10. privacy-reviewed public documentation.
46
+
47
+ Model outputs remain assertions for review. They do not become confirmed observations without human validation.
README.md ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-nc-sa-4.0
3
+ library_name: sklearn
4
+ tags:
5
+ - bioacoustics
6
+ - audio-classification
7
+ - birdnet
8
+ - edge-ai
9
+ - research
10
+ - non-commercial
11
+ datasets:
12
+ - academic-datasets/InsectSet459
13
+ - ESC-50
14
+ ---
15
+
16
+ # InsectNet v0.1.0
17
+
18
+ InsectNet v0.1.0 is a preserved research classifier for scoring insect- and amphibian-related acoustic classes from frozen BirdNET v2.4 output logits.
19
+
20
+ This Hugging Face repository is the model-release mirror. The canonical source, tests, package, and GitHub Release are at [github.com/vortexpjeff/insectnet](https://github.com/vortexpjeff/insectnet).
21
+
22
+ This repository intentionally contains one model artifact and one release identity. It does **not** publish live sensor addresses, deployment credentials, exact collection locations, private media, or an unattended capture service.
23
+
24
+ ## Release identity
25
+
26
+ ```text
27
+ Release: insectnet-v0.1.0
28
+ Artifact: classifier.joblib
29
+ SHA-256: 5e6ecfc68d78a2cf2e9e9e47da5cb58d696e8de354fd620cfcccc5db9da48702
30
+ Bytes: 474,892
31
+ Status: historical research reference
32
+ ```
33
+
34
+ The artifact is byte-for-byte preserved from the original v0.1 field prototype.
35
+
36
+ ## Model contract
37
+
38
+ ```text
39
+ Audio window: 3.0 seconds
40
+ Sample rate: 48,000 Hz mono
41
+ Backbone: BirdNET v2.4 FP16 TFLite
42
+ Feature space: 6,522 BirdNET output logits
43
+ Classifier: StandardScaler → OneVsRest LogisticRegression
44
+ Serialization: scikit-learn 1.8.0
45
+ Output semantics: independent per-class probabilities
46
+ ```
47
+
48
+ Class order:
49
+
50
+ 1. `background`
51
+ 2. `bee`
52
+ 3. `cicada_drone`
53
+ 4. `cricket_katydid`
54
+ 5. `frog`
55
+ 6. `grasshopper`
56
+
57
+ The model file does not embed thresholds, a version number, or its original training snapshot. Those omissions are part of the preserved v0.1 record rather than silently reconstructed metadata.
58
+
59
+ ## What is included
60
+
61
+ - the exact v0.1 model artifact;
62
+ - a machine-readable release manifest;
63
+ - artifact and feature-contract verification;
64
+ - offline scoring for precomputed BirdNET logit vectors;
65
+ - tests that enforce the model checksum, class order, feature dimension, and public privacy boundary;
66
+ - documented provenance and limitations.
67
+
68
+ ## What is not included
69
+
70
+ - live capture or sensor-watching code;
71
+ - deployment scripts;
72
+ - device addresses or credentials;
73
+ - exact collection locations;
74
+ - raw or private field audio;
75
+ - later experimental model candidates;
76
+ - claims of production readiness.
77
+
78
+ The original live sidecar diverged from the public v0.1 source during field experiments. That runtime is not republished here until it can be recovered, tested, and released under a separate reviewed version.
79
+
80
+ ## Verify the preserved artifact
81
+
82
+ From a source checkout:
83
+
84
+ ```bash
85
+ uv run insectnet verify
86
+ ```
87
+
88
+ Expected SHA-256:
89
+
90
+ ```text
91
+ 5e6ecfc68d78a2cf2e9e9e47da5cb58d696e8de354fd620cfcccc5db9da48702
92
+ ```
93
+
94
+ ## Score precomputed logits
95
+
96
+ InsectNet v0.1 expects one finite NumPy vector with shape `(6522,)` extracted from the declared BirdNET backbone:
97
+
98
+ ```bash
99
+ uv run insectnet score logits.npy
100
+ ```
101
+
102
+ The command returns one probability per declared class. These scores are model assertions for review, not confirmed biological observations.
103
+
104
+ > **Joblib safety:** joblib artifacts use Python pickle internally. Load only the artifact whose checksum matches the release manifest.
105
+
106
+ ## Known limitations
107
+
108
+ - Later audits found high false-positive rates on some bird vocalizations.
109
+ - Bee and grasshopper had limited training coverage.
110
+ - The surviving metrics came from limited public-data evaluation and one private field site; they do not establish general production performance.
111
+ - Exact reproduction is blocked because the original per-record training snapshot is unavailable.
112
+ - The classifier relies on BirdNET logits and cannot score raw audio by itself.
113
+ - There is no validated automated-decision threshold policy in this release.
114
+
115
+ ## Provenance
116
+
117
+ The surviving records identify these source families:
118
+
119
+ - **InsectSet459:** current dataset card states CC BY 4.0, with some source material CC0.
120
+ - **ESC-50:** CC BY-NC 3.0.
121
+ - **iNaturalist audio:** licenses vary per recording; the original per-record manifest is unavailable.
122
+ - **Private field negatives:** not redistributed.
123
+
124
+ See [`PROVENANCE.md`](PROVENANCE.md) and the release manifest for the exact surviving claims and gaps.
125
+
126
+ ## Privacy and security
127
+
128
+ The public release intentionally omits exact collection location, network topology, account names, credentials, private paths, and raw evidence. See [`SECURITY_AND_PRIVACY.md`](SECURITY_AND_PRIVACY.md).
129
+
130
+ ## License
131
+
132
+ The repository and preserved release are distributed under CC BY-NC-SA 4.0, subject to the licenses and terms of the upstream backbone and source media. Source-media rights vary; users are responsible for reviewing those upstream terms for their use case.
133
+
134
+ This provenance statement is not legal advice.
SECURITY_AND_PRIVACY.md ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Security and privacy boundary
2
+
3
+ ## Public release boundary
4
+
5
+ This repository must not contain:
6
+
7
+ - exact collection coordinates or street addresses;
8
+ - private site names or fine-grained regional identifiers;
9
+ - device network addresses or topology;
10
+ - account names, passwords, API keys, tokens, or credential helpers;
11
+ - private workstation or device paths;
12
+ - raw private audio;
13
+ - source filenames that reveal private deployment details;
14
+ - unattended deployment commands without a separately reviewed operations plan.
15
+
16
+ The test suite scans public text files for known historical location and access strings.
17
+
18
+ ## Artifact safety
19
+
20
+ The model is serialized with joblib, which relies on Python pickle. A malicious artifact can execute code when loaded. Verify the model SHA-256 against the packaged `v0.1.0.manifest.json` before loading it. The verifier stops before deserialization if byte size or SHA-256 differs.
21
+
22
+ The release verifier checks:
23
+
24
+ - repository-relative artifact path;
25
+ - exact SHA-256;
26
+ - exact byte size;
27
+ - required joblib keys;
28
+ - ordered classes;
29
+ - 6,522-feature contract;
30
+ - classifier estimator count.
31
+
32
+ ## Operational boundary
33
+
34
+ This v0.1 release does not provide live capture or deployment automation. Any future edge deployment must be released separately with:
35
+
36
+ - no embedded credentials;
37
+ - explicit destination supplied by the operator;
38
+ - immutable backup before replacement;
39
+ - checksum and model-load preflight;
40
+ - source syntax checks;
41
+ - single-instance control;
42
+ - bounded resource use;
43
+ - disk guard and retention policy;
44
+ - rollback procedure;
45
+ - post-change health verification;
46
+ - no changes to the upstream monitoring system without separate approval.
47
+
48
+ ## Reporting
49
+
50
+ Public performance reports must generalize location and describe the evaluation set, review authority, thresholds, and limitations. Confidence values alone are not validation.
classifier.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5e6ecfc68d78a2cf2e9e9e47da5cb58d696e8de354fd620cfcccc5db9da48702
3
+ size 474892
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ joblib>=1.3
2
+ numpy>=1.24
3
+ scikit-learn==1.8.0
v0.1.0.manifest.json ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "artifact": {
3
+ "bytes": 474892,
4
+ "format": "joblib",
5
+ "path": "classifier.joblib",
6
+ "sha256": "5e6ecfc68d78a2cf2e9e9e47da5cb58d696e8de354fd620cfcccc5db9da48702"
7
+ },
8
+ "known_limitations": [
9
+ "The artifact does not embed its own version, thresholds, backbone hash, or training manifest.",
10
+ "Later audits found a high false-positive rate on some bird vocalizations.",
11
+ "Bee and grasshopper classes were data-limited in the surviving evaluation notes.",
12
+ "Published metrics came from limited public-data evaluation and one private field site; they are not evidence of general production performance.",
13
+ "Outputs are model assertions for human review, not confirmed biological observations."
14
+ ],
15
+ "model_contract": {
16
+ "backbone": {
17
+ "artifact": "BirdNET_GLOBAL_6K_V2.4_Model_FP16.tflite",
18
+ "sha256": "5c64ba3ffab264ccbfafe784896392051a86be63b0cc507e7683db7df114546b"
19
+ },
20
+ "classes": [
21
+ "background",
22
+ "bee",
23
+ "cicada_drone",
24
+ "cricket_katydid",
25
+ "frog",
26
+ "grasshopper"
27
+ ],
28
+ "feature_dimension": 6522,
29
+ "feature_space": "birdnet_v2.4_logits",
30
+ "output_semantics": "independent one-vs-rest probabilities",
31
+ "sample_rate_hz": 48000,
32
+ "serialization_runtime": {
33
+ "scikit_learn": "1.8.0"
34
+ },
35
+ "window_seconds": 3.0
36
+ },
37
+ "provenance": {
38
+ "code_license": "CC-BY-NC-SA-4.0",
39
+ "field_site": "one private field site; location intentionally omitted",
40
+ "source_families": [
41
+ {
42
+ "license": "CC-BY-4.0 or CC0 according to source metadata",
43
+ "name": "InsectSet459"
44
+ },
45
+ {
46
+ "license": "CC-BY-NC-3.0",
47
+ "name": "ESC-50"
48
+ },
49
+ {
50
+ "license": "varies by individual recording; original per-record manifest unavailable",
51
+ "name": "iNaturalist audio"
52
+ },
53
+ {
54
+ "license": "private research evidence; not redistributed",
55
+ "name": "private field negatives"
56
+ }
57
+ ],
58
+ "training_snapshot": "unavailable",
59
+ "warning": "The missing per-record training snapshot prevents a complete independent rebuild of this exact artifact."
60
+ },
61
+ "release_id": "insectnet-v0.1.0",
62
+ "schema_version": 1,
63
+ "status": "historical_research_reference"
64
+ }