Sentence Similarity
sentence-transformers
aneforge
apple-neural-engine
ane
coreml-free
on-device
apple-silicon
embeddings
Instructions to use aneforge/sentence-embeddings with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use aneforge/sentence-embeddings with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("aneforge/sentence-embeddings") sentences = [ "That is a happy person", "That is a happy dog", "That is a very happy person", "Today is a sunny day" ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [4, 4] - Notebooks
- Google Colab
- Kaggle
File size: 2,375 Bytes
4f9b650 | 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 | ---
library_name: aneforge
pipeline_tag: sentence-similarity
tags:
- sentence-transformers
- apple-neural-engine
- ane
- coreml-free
- on-device
- apple-silicon
- embeddings
license: mit
---
# Sentence embeddings on the Apple Neural Engine (via ANEForge)
[ANEForge](https://github.com/sbryngelson/ANEForge) runs computation on the Apple
Neural Engine (ANE) directly, without CoreML. Its `SentenceTransformer` drop-in loads
**any** sentence-transformers model from the Hub by repo id and runs the encoder on the
engine, matching the `sentence_transformers` API.
This is a usage card, not a re-hosted model: it points at the upstream weights and shows
how to run them on the ANE.
## Install
```sh
pip install aneforge # numpy-only core; the dispatch shim builds on first use
```
Requires Apple Silicon under macOS 14+. `import aneforge` works anywhere; compiling and
dispatching to the ANE needs the hardware.
## Use (drop-in for `sentence_transformers.SentenceTransformer`)
```python
from aneforge.sentence_transformers import SentenceTransformer
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2") # any Hub repo id
emb = model.encode(["a sentence on the Neural Engine", "another one"],
normalize_embeddings=True)
print(emb.shape) # (2, 384)
```
`int8=True` streams int8 weights (cosine ~0.9999 vs fp16). A model whose `modules.json`
declares a Normalize module is always L2-normalised, as with upstream sentence-transformers.
## Why the ANE
The ANE is the fixed-function accelerator on every recent Apple device. In production it
is reachable only through CoreML, which treats it as a schedulable option that can
silently fall back to CPU/GPU. ANEForge compiles a lazy tensor graph into a single ANE
program and dispatches it through the same daemon and kernel-driver stack Apple's own
frameworks use, so the encoder runs on the engine deterministically and off the CPU/GPU.
## Links
- Code: https://github.com/sbryngelson/ANEForge
- Package: https://pypi.org/project/aneforge/
- Paper: https://arxiv.org/abs/2606.17090
## Citation
```bibtex
@article{bryngelson2026aneforge,
title = {ANEForge: Python for direct computation on the Apple Neural Engine},
author = {Bryngelson, Spencer H.},
journal = {arXiv preprint arXiv:2606.17090},
year = {2026},
doi = {10.48550/arXiv.2606.17090}
}
```
|