Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/ISSUE_TEMPLATE/benchmark-result.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Benchmark result
description: Share a reproducible me_fasttext benchmark, replication, or negative result
description: Share a reproducible NGramStore benchmark, replication, or negative result
title: "[Benchmark] "
labels:
- benchmark
Expand Down Expand Up @@ -46,7 +46,7 @@ body:
id: commit
attributes:
label: Git commit
description: The me_fasttext commit used for the run.
description: The NGramStore commit used for the run.
placeholder: "abcdef1"
validations:
required: true
Expand Down Expand Up @@ -125,7 +125,7 @@ body:
| Method | Memory | Load time | Storage | Query p50 | Query p95 | OOV coverage | Quality |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| Original FastText | | | | | | | |
| me_fasttext | | | | | | | |
| NGramStore | | | | | | | |
validations:
required: true
- type: textarea
Expand Down Expand Up @@ -163,15 +163,15 @@ body:
id: citation_fit
attributes:
label: Citation or reuse fit
description: If this result supports a paper, report, deployment note, or comparison table, describe how me_fasttext is used.
description: If this result supports a paper, report, deployment note, or comparison table, describe how NGramStore is used.
placeholder: |
Example: used as a compact lexical embedding layer before dense reranking;
compared against hash-bucketed FastText for memory and OOV recall.
- type: textarea
id: notes
attributes:
label: Notes
description: Anything surprising, missing, hard to reproduce, or unfavorable to me_fasttext.
description: Anything surprising, missing, hard to reproduce, or unfavorable to NGramStore.
- type: checkboxes
id: disclosure
attributes:
Expand Down
23 changes: 12 additions & 11 deletions .github/ISSUE_TEMPLATE/compression-comparison.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Compression comparison
description: Compare me_fasttext with sparse, quantized, or compact-serving baselines
description: Compare NGramStore with sparse, quantized, or compact-serving baselines
title: "[Compression] "
labels:
- benchmark
Expand All @@ -10,16 +10,17 @@ body:
Use this for focused comparisons against model-compression,
sparse-lookup, quantized embedding, or compact-serving baselines.

Please keep the claim narrow. me_fasttext is a compact lexical
embedding artifact, not a general LLM compression framework.
NGramStore is a learned n-gram vector storage/query backend.
Name the actual table and exact/approximate mode; separate storage,
query costs and downstream quality. FastText and Engram are applications.
- type: dropdown
id: comparison_type
attributes:
label: Comparison type
options:
- Original FastText vs me_fasttext compact .z
- Quantized FastText vs me_fasttext compact .z
- Hash-free uncompressed vs compact export
- Dense or raw mmap vs native n-gram store
- Quantized table vs lossless native store
- DATrie/structural contribution ablation
- Sparse or table-compression baseline
- Lexical search or retrieval baseline
- Dense embedding or reranker prefilter comparison
Expand All @@ -42,7 +43,7 @@ body:
id: commit
attributes:
label: Git commit
description: The me_fasttext commit used for this run.
description: The NGramStore commit used for this run.
placeholder: "abcdef1"
validations:
required: true
Expand Down Expand Up @@ -87,10 +88,10 @@ body:
description: List all compared methods and explain omissions.
placeholder: |
compared:
- Original FastText:
- Dense resident / raw mmap:
- Quantized FastText:
- Hash-free uncompressed:
- me_fasttext compact .z:
- Identity-layout native control:
- NGramStore native table/index/metadata:
omitted:
validations:
required: true
Expand Down Expand Up @@ -126,7 +127,7 @@ body:
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| Original FastText | | | | | | | |
| Quantized FastText | | | | | | | |
| me_fasttext .z | | | | | | | |
| NGramStore native | | | | | | | |
validations:
required: true
- type: textarea
Expand Down
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
blank_issues_enabled: true
contact_links:
- name: Evaluator quickstart
url: https://github.com/initial-d/me_fasttext/blob/main/docs/evaluator_quickstart.md
url: https://github.com/initial-d/ngram-store/blob/main/docs/evaluator_quickstart.md
about: Start here if you want to run a first public-corpus benchmark.
- name: Benchmark protocol
url: https://github.com/initial-d/me_fasttext/blob/main/docs/benchmark_protocol.md
url: https://github.com/initial-d/ngram-store/blob/main/docs/benchmark_protocol.md
about: Use this for the fuller memory, latency, OOV, and quality report shape.
- name: Outreach notes
url: https://github.com/initial-d/me_fasttext/blob/main/docs/outreach.md
url: https://github.com/initial-d/ngram-store/blob/main/docs/outreach.md
about: Use this when adding the project to lists or sharing it with maintainers.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/evaluation-question.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Evaluation question
description: Ask about building, benchmarking, reproducing, or interpreting me_fasttext
description: Ask about building, benchmarking, reproducing, or interpreting NGramStore
title: "[Question] "
labels:
- question
Expand Down
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/showcase.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ body:
- type: markdown
attributes:
value: |
Thanks for helping other readers understand where `me_fasttext` fits.
Thanks for helping other readers understand where `NGramStore` fits.

Use this template for citations, public list entries, comparison notes,
integration experiments, deployment notes, or concrete use cases. Short
Expand Down Expand Up @@ -35,7 +35,7 @@ body:
id: summary
attributes:
label: Summary
description: Briefly describe how `me_fasttext` was used, cited, compared, or listed.
description: Briefly describe how `NGramStore` was used, cited, compared, or listed.
placeholder: |
Example: Used as a compact lexical embedding baseline before dense
reranking on an entity-heavy product-title retrieval corpus.
Expand Down Expand Up @@ -82,7 +82,7 @@ body:
label: Suggested public wording
description: Optional wording maintainers can quote in README, docs, release notes, or distribution logs.
placeholder: |
Example: me_fasttext was useful as a compact lexical embedding layer
Example: NGramStore was used as a frozen n-gram memory backend
for OOV-heavy candidate generation before dense reranking.
- type: checkboxes
id: disclosure
Expand Down
10 changes: 7 additions & 3 deletions .zenodo.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
{
"title": "me_fasttext: Memory-Efficient FastText with Exact Trie N-Gram IDs and mmap Serving",
"title": "NGramStore: Compression, Storage and Exact Lookup for Learned N-Gram Vectors",
"creators": [
{
"name": "Du, Yimin",
"affiliation": "Independent Researcher"
}
],
"description": "A FastText-derived C++ research prototype that replaces hash-bucketed character n-gram ids with exact trie-backed ids, then exports a compact mmap serving index through conservative n-gram row sharing and mark-compact layout.",
"description": "Formerly me_fasttext. A native compression, storage and exact-query engine for frozen learned n-gram vectors, with registered DATrie/mark-compact planning and FastText/Engram application integrations. Lossless and approximate modes are reported separately; the original FastText paper retains its title and attribution.",
"license": "MIT",
"keywords": [
"n-gram memory",
"vector compression",
"Engram",
"LLM memory",
"fastText",
"word embeddings",
"subword embeddings",
Expand All @@ -28,7 +32,7 @@
"resource_type": "publication-preprint"
},
{
"identifier": "https://github.com/initial-d/me_fasttext",
"identifier": "https://github.com/initial-d/ngram-store",
"relation": "isIdenticalTo",
"scheme": "url",
"resource_type": "software"
Expand Down
11 changes: 7 additions & 4 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
cff-version: 1.2.0
message: "If you use me_fasttext or the accompanying method, please cite the arXiv paper."
title: "Memory-Efficient FastText: A Comprehensive Approach Using Double-Array Trie Structures and Mark-Compact Memory Management"
message: "NGramStore was formerly me_fasttext. Cite the original paper for its method and the exact software commit/report for later engine work."
title: "NGramStore: Compression, Storage and Exact Lookup for Learned N-Gram Vectors"
authors:
- family-names: Du
given-names: Yimin
repository-code: "https://github.com/initial-d/me_fasttext"
url: "https://arxiv.org/abs/2506.01254"
repository-code: "https://github.com/initial-d/ngram-store"
url: "https://github.com/initial-d/ngram-store"
license: MIT
keywords:
- n-gram memory
- vector compression
- Engram
- fastText
- word embeddings
- subword embeddings
Expand Down
22 changes: 9 additions & 13 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing

Thanks for taking a look at `me_fasttext`. This is a research prototype, so the
Thanks for taking a look at NGramStore. This is a research prototype, so the
most valuable contributions are the ones that make its evidence easier to
understand, reproduce, or falsify.

Expand All @@ -18,11 +18,11 @@ Good first contributions include:
- a public-corpus benchmark report using the
[evaluator quickstart](docs/evaluator_quickstart.md);
- an
[evaluation question](https://github.com/initial-d/me_fasttext/issues/new?template=evaluation-question.yml)
[evaluation question](https://github.com/initial-d/ngram-store/issues/new?template=evaluation-question.yml)
about build, benchmark setup, corpus preparation, baselines, or result
interpretation;
- a
[showcase or use-case note](https://github.com/initial-d/me_fasttext/issues/new?template=showcase.yml)
[showcase or use-case note](https://github.com/initial-d/ngram-store/issues/new?template=showcase.yml)
for citations, list entries, comparisons, integrations, or deployment notes;
- a retrieval, ranking, classification, or OOV-heavy serving result;
- a negative result showing where the compact `.z` path does not help;
Expand All @@ -35,15 +35,15 @@ logs, or credentials. Aggregate metrics and corpus manifests are enough.
## Benchmark reports

Use the
[benchmark result issue template](https://github.com/initial-d/me_fasttext/issues/new?template=benchmark-result.yml)
[benchmark result issue template](https://github.com/initial-d/ngram-store/issues/new?template=benchmark-result.yml)
when possible. A useful report should include:

- exact `me_fasttext` commit SHA;
- exact NGramStore commit SHA;
- corpus name, language, license status, split, and preprocessing;
- hardware, OS, compiler, filesystem, and storage type;
- build, training, export, and benchmark commands;
- `.bin`, `.vec`, and `.z` artifact sizes;
- `bench_ftindex` output for compact `.z` serving;
- full input/table/index/metadata bytes and the exact lossless/approximate mode;
- dense/raw-mmap controls, native query latency and anonymous/file-backed RSS;
- one quality metric, or an explicit serving-only caveat;
- failures, omitted baselines, and anything unfavorable to the method.

Expand All @@ -55,7 +55,7 @@ for the fuller report shape.
## Showcase and visibility notes

Use the
[showcase issue template](https://github.com/initial-d/me_fasttext/issues/new?template=showcase.yml)
[showcase issue template](https://github.com/initial-d/ngram-store/issues/new?template=showcase.yml)
for lighter-weight adoption evidence: citations, public list entries,
integration notes, talks, blog posts, retrieval experiments, or compact-serving
deployment notes.
Expand Down Expand Up @@ -90,11 +90,7 @@ or platform limitation.

## Scope and positioning

Keep claims narrow. `me_fasttext` is best framed as a FastText-derived compact
lexical embedding artifact for memory-sensitive serving, OOV-heavy text, and
first-stage retrieval or ranking. It is not a replacement for transformer
embeddings, a vector database, or a full RAG system.

NGramStore is a compression, storage and exact-query backend for learned n-gram vectors. FastText and Engram/TinyEngram are applications with different training and addressing contracts. Numeric/hash queries use the native row engine; structural sharing requires registered string keys. Lossless bytes, approximate distortion, query cost and task quality need separate evidence.
See [`docs/artifact_card.md`](docs/artifact_card.md) and
[`docs/citation_guide.md`](docs/citation_guide.md) for wording that is easier
to cite without overclaiming.
Loading
Loading