File size: 5,764 Bytes
b69b2d4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
---
license: apache-2.0
language:
- en
base_model: Qwen/Qwen3-Embedding-0.6B
library_name: pytorch
tags:
- conversational-memory
- lsrep
- ice-v2
- reproducibility
- arxiv:2609.16730
---

# ICE v2 / LSREP experiment classifier

This releases the retained original classifier checkpoint selected by frozen
**ICE v2**, the system evaluated in the [LSREP paper](https://arxiv.org/abs/2609.16730).
It is **not the current ICE v3 classifier**. The `v3` in the historical
checkpoint filename denotes a classifier training generation, not ICE's system version.

- Repository: [Deepnar/ice](https://github.com/Deepnar/ice).
- Evaluated source tag: [`v2-paper-eval`](https://github.com/Deepnar/ice/tree/v2-paper-eval).
- Evaluated commit: `0521df9171b4a7d69f82d12d70497138c77b2678`.
- Original path: `models/classifier/ice_classifier_v3_qwen_ft3.pt`.
- Original file size: 212,827 bytes; bare PyTorch state dict.
- SHA-256: `25c758b6a7e5cf449f3e4c8bb250db759d37cb4f0ab7dd8e0c1acd8afbf05831`.

The checkpoint is copied byte for byte, without retraining or re-export.
The frozen Git tag records code and the selected path, but does not contain
checkpoint blobs or a historical checkpoint checksum. This release records the
checksum of the retained original, rather than claiming a checksum existed at evaluation time.

## Architecture and label order

`Linear(384,128) -> ReLU -> Dropout(0.3) -> Linear(128,25)`;
52,505 trainable parameters. Call `eval()` to disable dropout.
The frozen `model.py` is included verbatim. Output coordinates, in order:

```text
0:11 topics:
Software_&_Tech, STEM_&_Academics, Business_&_Finance,
Creative_&_Media, Admin_&_Productivity, Lifestyle_&_Health,
Social_&_Relationships, World_&_Current_Events, Meta_AI,
Null_Noise, General_Reference_&_Trivia

11:22 intents:
Factual_Retrieval, Troubleshooting, Generation, Ideation,
Analysis_&_Summarization, Strategic_Planning, Decision_Making,
Emotional_Processing, Utility_Formatting, Casual_Banter, Open_Exploration

22:25 context:
Zero_Shot, Long_Term_Memory, Real_Time_Search
```

Topic and intent use sigmoid, a strict `> 0.3` threshold, and an argmax
fallback when a block has no selected label. Context uses softmax and argmax,
not independent sigmoids. `max_confidence` is the largest of the 25 decoded
probabilities. Exact order and settings are also in `config.json`.

## Embeddings and preprocessing

Use frozen `Qwen/Qwen3-Embedding-0.6B`, revision
`97b0c614be4d77ee51c0cef4e5f07c00f9eb65b3`, with
`SentenceTransformer(..., device="cpu", truncate_dim=384)`.
The upstream native width is 1024; ICE v2 takes its first 384 coordinates.
Use the snapshot's built-in pooling and normalization. Do **not** add
`normalize_embeddings=True` to `encode()`, renormalize the truncated prefix,
add a query instruction, or use the current ICE v3 native-width embedding path.

Embed the exact instructional prefix produced by `build_input()` in the included
`classifier_inference.py`, not the bare user prompt. With context, ICE v2
selects the last three episodic rows in timestamp order, prefers each summary,
otherwise uses raw text capped at 150 whitespace words, and caps the combined
context at 500 words. The frozen `frozen_classifier.py` preserves the exact
context selection and truncation behavior, including ellipses and the
context-specific prefix. An empty context uses the no-context prefix.

## Minimal learned-head inference

The frozen tag's dependency versions are `torch==2.11.0`,
`sentence-transformers==5.5.1`, and `transformers==5.9.0`.
Use Python 3.11 and `huggingface_hub` to fetch the release:

```python
import hashlib
import sys
from pathlib import Path
import torch
from huggingface_hub import snapshot_download
from sentence_transformers import SentenceTransformer

folder = Path(snapshot_download("Deepnar/ice-v2-classifier"))
sys.path.insert(0, str(folder))
from model import ICEClassifier
from classifier_inference import predict_head

checkpoint = folder / "ice_classifier_v3_qwen_ft3.pt"
assert hashlib.sha256(checkpoint.read_bytes()).hexdigest() == (
    "25c758b6a7e5cf449f3e4c8bb250db759d37cb4f0ab7dd8e0c1acd8afbf05831"
)
head = ICEClassifier()
head.load_state_dict(torch.load(checkpoint, map_location="cpu", weights_only=True))
head.eval()
embedder = SentenceTransformer(
    "Qwen/Qwen3-Embedding-0.6B",
    revision="97b0c614be4d77ee51c0cef4e5f07c00f9eb65b3",
    device="cpu", truncate_dim=384,
)
print(predict_head(head, embedder, "Explain how a database index works."))
```

For archival reuse, pin `snapshot_download(..., revision=<release commit>)`
to the upload commit recorded in the GitHub release verification report.
This is a custom PyTorch head, not a Transformers `AutoModel` or hosted pipeline.
The example returns **learned-head predictions**. The complete ICE v2 classifier
also runs the DI3 pre-classifier, hard overrides, and API-level memory policy;
reproduce those through the frozen Git repository. Neither this helper nor the
weights alone reproduce full-system routing or the paper's end-to-end scores.

## Limitations and license

No new classifier accuracy claim is made by this release. The paper's fidelity
audit and negative results remain applicable. Context, preprocessing, rule
overrides and workload affect behavior. Training data and private conversational
corpora are not released, so this is checkpoint/inference reproducibility,
not a claim that private-data training can be independently regenerated.

The ICE head and accompanying ICE code are released under the repository's
Apache-2.0 license; `LICENSE` and `NOTICE` are included. The separately fetched
Qwen base model is also Apache-2.0 according to its pinned upstream model card.
No Qwen base weights, private corpora, caches, secrets, or ICE v3 artifacts are included.