Rename TE-86M to AIT-86M and update package contents
Browse files- AIT-86M.safetensors +3 -0
- README.md +11 -282
AIT-86M.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5245f12b721086d90b4fe649c8f38b6928e658ba81087a620398f3dec567e2b7
|
| 3 |
+
size 346056964
|
README.md
CHANGED
|
@@ -18,298 +18,27 @@ datasets:
|
|
| 18 |
- custom
|
| 19 |
---
|
| 20 |
|
| 21 |
-
#
|
| 22 |
|
| 23 |
-
**
|
| 24 |
|
| 25 |
-
Built for edge deployment
|
| 26 |
|
| 27 |
-
Successor to [TE-75M](https://huggingface.co/augmem/TE-75M)
|
| 28 |
|
| 29 |
-
> Also available in [GGUF format](https://huggingface.co/augmem/
|
| 30 |
-
|
| 31 |
-
## Architecture
|
| 32 |
-
|
| 33 |
-
TE-86M uses lightweight edge encoders with depth-2 residual projection heads that expand through a 1920-dim hidden layer before projecting into a shared 1280-dim embedding space:
|
| 34 |
-
|
| 35 |
-
```
|
| 36 |
-
Text --> LEAF-IR (768-d) -----------> DeepProjectionHead-d2 (768 -> 1920 -> 1920 -> 1280)
|
| 37 |
-
Image --> MobileNetV4-Medium (1280-d) --> DeepProjectionHead-d2 (1280 -> 1920 -> 1920 -> 1280)
|
| 38 |
-
Audio --> EfficientAT mn20_as (1920-d) --> DeepProjectionHead-d2 (1920 -> 1920 -> 1920 -> 1280)
|
| 39 |
-
```
|
| 40 |
-
|
| 41 |
-
All outputs are L2-normalized into the shared 1280-dim space for cross-modal cosine similarity.
|
| 42 |
-
|
| 43 |
-
| Component | Architecture | Params | Size |
|
| 44 |
-
|---|---|---|---|
|
| 45 |
-
| Text encoder | LEAF-IR (MongoDB/mdbr-leaf-ir) | 22.7M | 87.2 MB |
|
| 46 |
-
| Image encoder | MobileNetV4-Medium (timm) | 8.4M | 32.4 MB |
|
| 47 |
-
| Audio encoder | EfficientAT mn20_as | 17.9M | 68.5 MB |
|
| 48 |
-
| Image projection | DeepProjectionHead-d2 (1280 -> 1920 -> 1920 -> 1280) | 12.3M | 47.0 MB |
|
| 49 |
-
| Audio projection | DeepProjectionHead-d2 (1920 -> 1920 -> 1920 -> 1280) | 13.5M | 51.7 MB |
|
| 50 |
-
| Text projection | DeepProjectionHead-d2 (768 -> 1920 -> 1920 -> 1280) | 11.3M | 43.2 MB |
|
| 51 |
-
| **Total** | | **86.1M** | **329.9 MB** |
|
| 52 |
-
|
| 53 |
-
### Projection head detail
|
| 54 |
-
|
| 55 |
-
Each `DeepProjectionHead-d2` is a depth-2 residual MLP with Matryoshka-aware training:
|
| 56 |
-
|
| 57 |
-
```
|
| 58 |
-
Linear(encoder_dim, 1920) -> GELU -> LayerNorm -> Dropout(0.3)
|
| 59 |
-
-> Linear(1920, 1920) -> GELU -> LayerNorm -> Dropout(0.3) + residual
|
| 60 |
-
-> Linear(1920, 1920) -> GELU -> LayerNorm -> Dropout(0.3) + residual
|
| 61 |
-
-> Linear(1920, 1280)
|
| 62 |
-
```
|
| 63 |
-
|
| 64 |
-
### Why depth-2?
|
| 65 |
-
|
| 66 |
-
Ablation experiments showed depth-1 heads hit an I->T retrieval ceiling at ~0.60 R@1 regardless of hyperparameter tuning. Depth-2 heads broke through to 0.618, providing the representational capacity to serve cross-modal AND text retrieval simultaneously. The extra 11M params (75M -> 86M) remain edge-viable.
|
| 67 |
-
|
| 68 |
-
### Matryoshka dimensions
|
| 69 |
-
|
| 70 |
-
Embeddings can be truncated to `[1280, 768, 512, 256, 128]` dimensions while preserving retrieval quality — trained with Matryoshka Representation Learning (MRL).
|
| 71 |
-
|
| 72 |
-
## Benchmarks
|
| 73 |
-
|
| 74 |
-
SALT retrieval benchmarks use 5K trimodal samples. Full MTEB / MAEB evaluation used the 768-d Matryoshka truncation.
|
| 75 |
-
|
| 76 |
-
### Cross-modal retrieval — SALT (5K trimodal samples)
|
| 77 |
-
|
| 78 |
-
| Direction | TE-86M (86M) | TE-75M (75M) | ImageBind (1.2B) | EBind (1.78B*) |
|
| 79 |
-
|---|---|---|---|---|
|
| 80 |
-
| Image -> Text R@1 | 0.618 | 0.615 | 0.736 | **0.783** |
|
| 81 |
-
| Text -> Image R@1 | 0.630 | 0.614 | 0.712 | **0.779** |
|
| 82 |
-
| Text -> Audio R@1 | **0.108** | 0.103 | 0.038 | 0.047 |
|
| 83 |
-
| Audio -> Text R@1 | 0.087 | 0.082 | 0.039 | 0.035 |
|
| 84 |
-
| Image -> Audio R@1 | **0.068** | 0.062 | 0.023 | 0.027 |
|
| 85 |
-
| Audio -> Image R@1 | **0.070** | 0.063 | 0.025 | 0.032 |
|
| 86 |
-
|
| 87 |
-
### Audio retrieval — AudioCaps & Clotho
|
| 88 |
-
|
| 89 |
-
| Benchmark | Direction | TE-86M | TE-75M | CLAP-Large | ImageBind | EBind |
|
| 90 |
-
|---|---|---|---|---|---|---|
|
| 91 |
-
| AudioCaps | A->T R@1 | 0.229 | 0.210 | **0.420** | 0.116 | 0.225 |
|
| 92 |
-
| AudioCaps | T->A R@1 | 0.156 | 0.148 | **0.280** | 0.080 | 0.219 |
|
| 93 |
-
| Clotho | A->T R@1 | **0.219** | 0.208 | 0.195 | 0.061 | 0.088 |
|
| 94 |
-
| Clotho | T->A R@1 | **0.177** | 0.172 | 0.167 | 0.074 | 0.118 |
|
| 95 |
-
|
| 96 |
-
### Image-text retrieval — MSCOCO & Flickr30k
|
| 97 |
-
|
| 98 |
-
| Benchmark | Direction | TE-86M (86M) | TE-75M (75M) | EBind (1.78B*) | ImageBind (1.2B) |
|
| 99 |
-
|---|---|---|---|---|---|
|
| 100 |
-
| Flickr30k | I->T R@1 | 0.494 | 0.478 | **0.951** | 0.918 |
|
| 101 |
-
| Flickr30k | T->I R@1 | 0.332 | 0.303 | **0.853** | 0.766 |
|
| 102 |
-
| MSCOCO 5K | I->T R@1 | 0.343 | 0.320 | **0.743** | 0.658 |
|
| 103 |
-
| MSCOCO 5K | T->I R@1 | 0.225 | 0.208 | **0.559** | 0.490 |
|
| 104 |
-
|
| 105 |
-
### Zero-shot classification — ESC-50
|
| 106 |
-
|
| 107 |
-
| Model | Params | Accuracy |
|
| 108 |
-
|---|---|---|
|
| 109 |
-
| TE-86M | 86M | **93.9%** |
|
| 110 |
-
| CLAP-Large | 67.8M | 90.5% |
|
| 111 |
-
| TE-75M | 75M | 93.2% |
|
| 112 |
-
| EBind | 1.78B* | 77.0% |
|
| 113 |
-
| ImageBind | 1.2B | 66.4% |
|
| 114 |
-
|
| 115 |
-
### Text retrieval — MTEB (NDCG@10)
|
| 116 |
-
|
| 117 |
-
Text-text retrieval quality in the shared embedding space, measured on MTEB retrieval tasks:
|
| 118 |
-
|
| 119 |
-
| Task | TE-86M | TE-75M | Raw LEAF-IR | Recovery |
|
| 120 |
-
|---|---|---|---|---|
|
| 121 |
-
| ArguAna | 0.545 | 0.544 | 0.594 | 92% |
|
| 122 |
-
| CQADupstackGaming | 0.515 | 0.506 | 0.607 | 85% |
|
| 123 |
-
| CQADupstackUnix | 0.334 | 0.355 | 0.428 | 78% |
|
| 124 |
-
| FEVERHardNegatives | 0.561 | 0.551 | 0.863 | 65% |
|
| 125 |
-
| HotpotQAHardNegatives | 0.554 | 0.531 | 0.700 | 79% |
|
| 126 |
-
| FiQA2018 | 0.291 | 0.292 | 0.392 | 74% |
|
| 127 |
-
| ClimateFEVER | 0.231 | 0.215 | 0.353 | 65% |
|
| 128 |
-
| SCIDOCS | 0.154 | 0.153 | 0.198 | 78% |
|
| 129 |
-
| TRECCOVID | 0.507 | 0.474 | 0.820 | 62% |
|
| 130 |
-
|
| 131 |
-
TE-86M improves MTEB text retrieval over TE-75M on 7/9 tasks. The depth-2 projection heads recover 62-92% of raw LEAF-IR's retrieval quality while mapping into the cross-modal shared space.
|
| 132 |
-
|
| 133 |
-
### Full MTEB / MAEB kitchen-sink evaluation
|
| 134 |
-
|
| 135 |
-
Full evaluation used the 768-d Matryoshka truncation of the TE-86M checkpoint `checkpoints/trimodal_3head_h1920_d2_v2_d30_tt025/best_model.pt` with MTEB 2.12.15.
|
| 136 |
-
The run completed 63/71 requested tasks (`MTEB(eng, v2)` and `MAEB`). Failed tasks were: BirdCLEF, CREMA_DClustering, CommonLanguageAgeDetection, FleursT2ARetrieval, IEMOCAPGender, VoxCelebSA, VoxPopuliGenderClustering, VoxPopuliLanguageID.
|
| 137 |
-
|
| 138 |
-
| Family | Tasks | Mean primary score |
|
| 139 |
-
|---|---:|---:|
|
| 140 |
-
| Text retrieval | 11 | 0.437 |
|
| 141 |
-
| Text reranking | 1 | 0.314 |
|
| 142 |
-
| Text summarization | 1 | 0.308 |
|
| 143 |
-
| Text classification | 8 | 0.693 |
|
| 144 |
-
| Text clustering | 8 | 0.445 |
|
| 145 |
-
| Text STS / pair | 12 | 0.780 |
|
| 146 |
-
| Audio retrieval | 8 | 0.169 |
|
| 147 |
-
| Audio classification | 9 | 0.379 |
|
| 148 |
-
| Audio pair / reranking | 4 | 0.620 |
|
| 149 |
-
| Audio clustering | 1 | 0.009 |
|
| 150 |
-
|
| 151 |
-
<details>
|
| 152 |
-
<summary>Full per-task scores</summary>
|
| 153 |
-
|
| 154 |
-
| Task | Family | Metric | Score | NDCG@10 | Recall@10 | Subsets |
|
| 155 |
-
|---|---|---|---:|---:|---:|---:|
|
| 156 |
-
| BeijingOpera | Audio classification | Main score | 0.868 | | | 1 |
|
| 157 |
-
| CREMA_D | Audio classification | Main score | 0.285 | | | 1 |
|
| 158 |
-
| FSD2019Kaggle | Audio classification | Main score | 0.548 | | | 2 |
|
| 159 |
-
| GTZANGenre | Audio classification | Main score | 0.742 | | | 1 |
|
| 160 |
-
| MInDS14 | Audio classification | Main score | 0.094 | | | 12 |
|
| 161 |
-
| MridinghamTonic | Audio classification | Main score | 0.350 | | | 1 |
|
| 162 |
-
| RavdessZeroshot | Audio classification | Main score | 0.197 | | | 1 |
|
| 163 |
-
| SIBFLEURS | Audio classification | Main score | 0.218 | | | 102 |
|
| 164 |
-
| SpeechCommandsZeroshotv0.02 | Audio classification | Main score | 0.111 | | | 1 |
|
| 165 |
-
| VehicleSoundClustering | Audio clustering | Main score | 0.009 | | | 1 |
|
| 166 |
-
| CREMADPairClassification | Audio pair / reranking | Main score | 0.528 | | | 1 |
|
| 167 |
-
| GTZANAudioReranking | Audio pair / reranking | NDCG@10 | 0.874 | 0.874 | 0.987 | 1 |
|
| 168 |
-
| NMSQAPairClassification | Audio pair / reranking | Main score | 0.547 | | | 1 |
|
| 169 |
-
| VoxPopuliAccentPairClassification | Audio pair / reranking | Main score | 0.529 | | | 1 |
|
| 170 |
-
| ClothoT2ARetrieval | Audio retrieval | NDCG@10 | 0.294 | 0.294 | 0.467 | 1 |
|
| 171 |
-
| CommonVoiceMini21T2ARetrieval | Audio retrieval | NDCG@10 | 0.023 | 0.023 | 0.052 | 117 |
|
| 172 |
-
| GigaSpeechT2ARetrieval | Audio retrieval | NDCG@10 | 0.002 | 0.002 | 0.004 | 1 |
|
| 173 |
-
| JamAltArtistA2ARetrieval | Audio retrieval | NDCG@10 | 0.873 | 0.873 | 0.183 | 4 |
|
| 174 |
-
| JamAltLyricA2TRetrieval | Audio retrieval | NDCG@10 | 0.008 | 0.008 | 0.013 | 4 |
|
| 175 |
-
| MACST2ARetrieval | Audio retrieval | NDCG@10 | 0.136 | 0.136 | 0.252 | 1 |
|
| 176 |
-
| SpokenSQuADT2ARetrieval | Audio retrieval | NDCG@10 | 0.010 | 0.010 | 0.020 | 1 |
|
| 177 |
-
| UrbanSound8KT2ARetrieval | Audio retrieval | NDCG@10 | 0.009 | 0.009 | 0.020 | 1 |
|
| 178 |
-
| BIOSSES | Text STS / pair | Main score | 0.803 | | | 1 |
|
| 179 |
-
| SICK-R | Text STS / pair | Main score | 0.746 | | | 1 |
|
| 180 |
-
| STS12 | Text STS / pair | Main score | 0.709 | | | 1 |
|
| 181 |
-
| STS13 | Text STS / pair | Main score | 0.783 | | | 1 |
|
| 182 |
-
| STS14 | Text STS / pair | Main score | 0.731 | | | 1 |
|
| 183 |
-
| STS15 | Text STS / pair | Main score | 0.828 | | | 1 |
|
| 184 |
-
| STS17 | Text STS / pair | Main score | 0.859 | | | 1 |
|
| 185 |
-
| STS22.v2 | Text STS / pair | Main score | 0.679 | | | 1 |
|
| 186 |
-
| STSBenchmark | Text STS / pair | Main score | 0.810 | | | 1 |
|
| 187 |
-
| SprintDuplicateQuestions | Text STS / pair | Main score | 0.957 | | | 1 |
|
| 188 |
-
| TwitterSemEval2015 | Text STS / pair | Main score | 0.620 | | | 1 |
|
| 189 |
-
| TwitterURLCorpus | Text STS / pair | Main score | 0.837 | | | 1 |
|
| 190 |
-
| AmazonCounterfactualClassification | Text classification | Main score | 0.681 | | | 1 |
|
| 191 |
-
| Banking77Classification | Text classification | Main score | 0.742 | | | 1 |
|
| 192 |
-
| ImdbClassification | Text classification | Main score | 0.722 | | | 1 |
|
| 193 |
-
| MTOPDomainClassification | Text classification | Main score | 0.896 | | | 1 |
|
| 194 |
-
| MassiveIntentClassification | Text classification | Main score | 0.623 | | | 1 |
|
| 195 |
-
| MassiveScenarioClassification | Text classification | Main score | 0.709 | | | 1 |
|
| 196 |
-
| ToxicConversationsClassification | Text classification | Main score | 0.623 | | | 1 |
|
| 197 |
-
| TweetSentimentExtractionClassification | Text classification | Main score | 0.545 | | | 1 |
|
| 198 |
-
| ArXivHierarchicalClusteringP2P | Text clustering | Main score | 0.549 | | | 1 |
|
| 199 |
-
| ArXivHierarchicalClusteringS2S | Text clustering | Main score | 0.523 | | | 1 |
|
| 200 |
-
| BiorxivClusteringP2P.v2 | Text clustering | Main score | 0.352 | | | 1 |
|
| 201 |
-
| MedrxivClusteringP2P.v2 | Text clustering | Main score | 0.352 | | | 1 |
|
| 202 |
-
| MedrxivClusteringS2S.v2 | Text clustering | Main score | 0.333 | | | 1 |
|
| 203 |
-
| StackExchangeClustering.v2 | Text clustering | Main score | 0.589 | | | 1 |
|
| 204 |
-
| StackExchangeClusteringP2P.v2 | Text clustering | Main score | 0.405 | | | 1 |
|
| 205 |
-
| TwentyNewsgroupsClustering.v2 | Text clustering | Main score | 0.457 | | | 1 |
|
| 206 |
-
| MindSmallReranking | Text reranking | Main score | 0.314 | 0.317 | 0.542 | 1 |
|
| 207 |
-
| ArguAna | Text retrieval | NDCG@10 | 0.546 | 0.546 | 0.826 | 1 |
|
| 208 |
-
| AskUbuntuDupQuestions | Text retrieval | NDCG@10 | 0.659 | 0.659 | 0.740 | 1 |
|
| 209 |
-
| CQADupstackGamingRetrieval | Text retrieval | NDCG@10 | 0.519 | 0.519 | 0.659 | 1 |
|
| 210 |
-
| CQADupstackUnixRetrieval | Text retrieval | NDCG@10 | 0.355 | 0.355 | 0.462 | 1 |
|
| 211 |
-
| ClimateFEVERHardNegatives | Text retrieval | NDCG@10 | 0.239 | 0.239 | 0.301 | 1 |
|
| 212 |
-
| FEVERHardNegatives | Text retrieval | NDCG@10 | 0.569 | 0.569 | 0.765 | 1 |
|
| 213 |
-
| FiQA2018 | Text retrieval | NDCG@10 | 0.292 | 0.292 | 0.361 | 1 |
|
| 214 |
-
| HotpotQAHardNegatives | Text retrieval | NDCG@10 | 0.553 | 0.553 | 0.605 | 1 |
|
| 215 |
-
| SCIDOCS | Text retrieval | NDCG@10 | 0.154 | 0.154 | 0.164 | 1 |
|
| 216 |
-
| TRECCOVID | Text retrieval | NDCG@10 | 0.513 | 0.513 | 0.014 | 1 |
|
| 217 |
-
| Touche2020Retrieval.v3 | Text retrieval | NDCG@10 | 0.414 | 0.414 | 0.173 | 1 |
|
| 218 |
-
| SummEvalSummarization.v2 | Text summarization | Main score | 0.308 | | | 1 |
|
| 219 |
-
|
| 220 |
-
</details>
|
| 221 |
-
|
| 222 |
-
## Usage
|
| 223 |
-
|
| 224 |
-
### Loading components
|
| 225 |
-
|
| 226 |
-
```python
|
| 227 |
-
from safetensors.torch import load_file
|
| 228 |
-
|
| 229 |
-
# Load entire model
|
| 230 |
-
tensors = load_file("TE-86M.safetensors")
|
| 231 |
-
|
| 232 |
-
# Extract components by prefix
|
| 233 |
-
text_enc_sd = {k.removeprefix("text_encoder."): v for k, v in tensors.items() if k.startswith("text_encoder.")}
|
| 234 |
-
image_enc_sd = {k.removeprefix("image_encoder."): v for k, v in tensors.items() if k.startswith("image_encoder.")}
|
| 235 |
-
audio_enc_sd = {k.removeprefix("audio_encoder."): v for k, v in tensors.items() if k.startswith("audio_encoder.")}
|
| 236 |
-
image_proj_sd = {k.removeprefix("image_projection."): v for k, v in tensors.items() if k.startswith("image_projection.")}
|
| 237 |
-
audio_proj_sd = {k.removeprefix("audio_projection."): v for k, v in tensors.items() if k.startswith("audio_projection.")}
|
| 238 |
-
text_proj_sd = {k.removeprefix("text_projection."): v for k, v in tensors.items() if k.startswith("text_projection.")}
|
| 239 |
-
```
|
| 240 |
-
|
| 241 |
-
### Matryoshka truncation
|
| 242 |
-
|
| 243 |
-
```python
|
| 244 |
-
import torch.nn.functional as F
|
| 245 |
-
|
| 246 |
-
# Full 1280-dim embedding
|
| 247 |
-
embedding = model(input) # (N, 1280)
|
| 248 |
-
|
| 249 |
-
# Truncate to 256-dim and re-normalize
|
| 250 |
-
embedding_256 = F.normalize(embedding[:, :256], dim=-1)
|
| 251 |
-
```
|
| 252 |
|
| 253 |
## File layout
|
| 254 |
|
|
|
|
|
|
|
| 255 |
```
|
| 256 |
-
TE-86M.safetensors # All components in one file (~330 MB)
|
| 257 |
-
```
|
| 258 |
-
|
| 259 |
-
### Tensor key prefixes
|
| 260 |
-
|
| 261 |
-
| Prefix | Component | Tensors |
|
| 262 |
-
|---|---|---|
|
| 263 |
-
| `text_encoder.*` | LEAF-IR (float32) | 103 |
|
| 264 |
-
| `image_encoder.*` | MobileNetV4-Medium | 462 |
|
| 265 |
-
| `audio_encoder.*` | EfficientAT mn20_as | 312 |
|
| 266 |
-
| `image_projection.*` | Depth-2 projection head | 14 |
|
| 267 |
-
| `audio_projection.*` | Depth-2 projection head | 14 |
|
| 268 |
-
| `text_projection.*` | Depth-2 projection head | 14 |
|
| 269 |
-
|
| 270 |
-
## Training
|
| 271 |
-
|
| 272 |
-
- **Loss**: InfoNCE (contrastive) with Matryoshka Representation Learning
|
| 273 |
-
- **Data**: ~2.2M synthetically generated trimodal triplets (WordNet) + 200K MSCOCO img+txt + 262K WavCaps aud+txt + 1.5M Nomic text pairs
|
| 274 |
-
- **Hardware**: 2x NVIDIA L4 GPUs
|
| 275 |
-
- **Optimizer**: AdamW, lr=1.41e-3, weight decay=1e-4, cosine scheduler
|
| 276 |
-
- **Epochs**: 50
|
| 277 |
-
- **Batch size**: 4096
|
| 278 |
-
- **Dropout**: 0.20 -> 0.25 (ep27) -> 0.30 (ep29) — mid-run regularization increases
|
| 279 |
-
- **Text mixing**: λ_tt=0.5 (ep1-9) -> 0.25 (ep10-50) — Nomic supervised text pairs
|
| 280 |
-
- **Projection heads only** — source encoders are frozen during training
|
| 281 |
-
|
| 282 |
-
### Improvements over TE-75M
|
| 283 |
-
|
| 284 |
-
| Change | TE-75M | TE-86M |
|
| 285 |
-
|---|---|---|
|
| 286 |
-
| Projection depth | 1 (single residual block) | 2 (two residual blocks) |
|
| 287 |
-
| Head params | 26.1M | 37.2M |
|
| 288 |
-
| Total params | 75.2M | 86.1M |
|
| 289 |
-
| SALT I->T R@1 | 0.615 | 0.618 (+0.5%) |
|
| 290 |
-
| SALT T->I R@1 | 0.614 | 0.630 (+2.6%) |
|
| 291 |
-
| MSCOCO I->T R@1 | 0.320 | 0.343 (+7.2%) |
|
| 292 |
-
| Clotho A->T R@1 | 0.208 | 0.219 (+5.3%) |
|
| 293 |
-
| ESC-50 | 93.2% | 93.9% (+0.7%) |
|
| 294 |
-
|
| 295 |
-
### Design decisions
|
| 296 |
-
|
| 297 |
-
- **Depth-2 residual heads**: Ablation confirmed depth-1 hits I->T ceiling at ~0.60 regardless of dropout or λ_tt. Depth-2 provides capacity to serve cross-modal and text retrieval simultaneously.
|
| 298 |
-
- **3-head shared space**: All modalities project into a learned 1280-dim space (image-native dimension)
|
| 299 |
-
- **LEAF-IR text encoder**: 23M-param retrieval-optimized text encoder enables fully edge-deployable text inference
|
| 300 |
-
- **Frozen source encoders**: MobileNetV4, EfficientAT, and LEAF-IR are kept frozen; only projection heads are trained
|
| 301 |
-
- **Edge-first**: All source encoders can run on devices like Raspberry Pi 5
|
| 302 |
-
|
| 303 |
-
## Limitations
|
| 304 |
-
|
| 305 |
-
- Audio retrieval lags behind specialist models like CLAP on audio-only benchmarks
|
| 306 |
-
- Image-text retrieval trades accuracy vs larger vision encoders for edge deployability
|
| 307 |
-
- Text retrieval recovers 62-92% of raw LEAF-IR quality (gap is domain-dependent)
|
| 308 |
|
| 309 |
-
##
|
| 310 |
|
| 311 |
-
-
|
| 312 |
-
-
|
|
|
|
| 313 |
|
| 314 |
## License
|
| 315 |
|
|
|
|
| 18 |
- custom
|
| 19 |
---
|
| 20 |
|
| 21 |
+
# AIT-86M — Audio, Image, Text Embeddings (Depth-2)
|
| 22 |
|
| 23 |
+
**AIT-86M** maps image, audio, and text into a shared 1280-dim embedding space for cross-modal retrieval with a single vector index. All three modalities share one space with full Matryoshka truncation support down to 128 dims.
|
| 24 |
|
| 25 |
+
Built for edge deployment, with a single combined safetensors artifact.
|
| 26 |
|
| 27 |
+
Successor to [TE-75M](https://huggingface.co/augmem/TE-75M).
|
| 28 |
|
| 29 |
+
> Also available in [GGUF format](https://huggingface.co/augmem/AIT-86M-GGUF) for quantized edge deployment.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
|
| 31 |
## File layout
|
| 32 |
|
| 33 |
+
```text
|
| 34 |
+
AIT-86M.safetensors
|
| 35 |
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 36 |
|
| 37 |
+
## Notes
|
| 38 |
|
| 39 |
+
- shared trimodal embedding space
|
| 40 |
+
- Matryoshka truncation: `1280 / 768 / 512 / 256 / 128`
|
| 41 |
+
- intended for retrieval and embedding use, not generation
|
| 42 |
|
| 43 |
## License
|
| 44 |
|