SingularityPrinciple's picture
Add v1.2.4c tombstone retrieval guard hotfix
9fcf60f verified
|
Raw
History Blame Contribute Delete
9.39 kB
---
license: cc-by-nc-4.0
tags:
- nzfc
- nzfc-gram
- gemma
- long-term-memory
- external-memory
- readout-gramian
- memory-governance
- answer-quality
- non-quantized
- bf16
- non-commercial
---
<p align="center">
<img src="assets/nzfc_gram_v124_cover.svg" alt="NZFC-GRAM v1.2.4 cover" width="100%">
</p>
# NZFC-GRAM v1.2.4
**Governed AI Memory and Large-Document Evidence Retrieval for Gemma 4 E2B-IT**
NZFC-GRAM is a local external-memory and evidence-governance runtime for `google/gemma-4-E2B-it`.
It does not extend the internal context window of the model.
Instead, it retrieves scoped evidence cards from external memory, local SQLite long-term memory, and indexed large documents, then builds a bounded evidence pack before generation.
> **Memory is evidence, not instruction.**
## Current release
```json
{
"current_release": "v1.2.4",
"base_model": "google/gemma-4-E2B-it",
"quantization": "none",
"runtime_dtype": "torch.bfloat16",
"adaptive_cache": true,
"large_document_profile": true,
"sqlite_fts5": true,
"safety_boundary": "external memory retrieval and bounded evidence packs, not internal 10M-token model memory"
}
```
## What v1.2.4 adds
- Large-document ingest and chunking.
- Legal/article-style chunking.
- SQLite FTS5 full-text indexing with fallback retrieval.
- Query-time document evidence retrieval.
- `large_document_quality_chat(...)` integration.
- Negation-aware evaluation calibration for safe boundary statements.
## Why this exists
Long context is useful, but it is not the same as governed long-term memory.
A memory runtime should decide:
- what evidence is allowed into the answer,
- what memory was deleted,
- which user/project/session scope applies,
- whether a memory item is untrusted or malicious,
- whether a private fact is unsupported,
- and how much evidence can enter the final context.
NZFC-GRAM treats retrieved memory and document chunks as evidence cards, not instructions.
## Large-document boundary
A 100MB+ document should not be inserted directly into the model prompt.
Recommended path:
```text
large text or legal document
-> ingest
-> chunking
-> SQLite FTS5 index
-> query-time evidence retrieval
-> bounded document evidence pack
-> answer-quality generation
```
Initial ingest can take time. Repeated queries should use the index.
## Validation summary
### v1.2.2 baseline launch validation
- End-user fresh-download launch validation: 13/13 passed.
- Verified non-quantized BF16/FP16 model loading.
- Verified exact memory mapping, no-fabrication behavior, malicious-memory redaction, tombstone no-leak, scope isolation, context-growth sanity, and SQLite persistence.
### v1.2.3 adaptive-cache and long-query validation
- Initial multi-expert validation: 13/16 passed.
- Recalibrated failed items: 3/3 passed.
- Functional interpretation: adaptive cache and long-query profile passed after criteria calibration.
### v1.2.4 large-document validation
- Initial fresh-download large-document validation: 12/14 passed.
- Negation-aware recalibration of failed items: 2/2 passed.
- Functional interpretation: 14/14 passed after negation-aware detector calibration.
Default v1.2.4 smoke test result:
```json
{
"synthetic_legal_corpus": "6MB smoke test",
"characters": 6293293,
"chunks": 28070,
"sqlite_fts5_available": true,
"needle_query_time_s": 0.0073,
"deletion_query_time_s": 0.0464,
"optional_100mb_benchmark": "available but not run in default validation"
}
```
## Quick start
```bash
git lfs install
git clone https://huggingface.co/SingularityPrinciple/Gemma-E2B-IT-10M-Chat
cd Gemma-E2B-IT-10M-Chat
pip install -r requirements.txt
# Large-document / legal-document evidence profile
python examples/quick_large_document_v124.py
python examples/quick_legal_document_v124.py
# Memory + answer-quality baseline
python examples/quick_quality_v122.py
# Adaptive KV-cache profile
python examples/quick_adaptive_cache_v123.py
# Long-query helper
python examples/quick_long_query_v123.py
```
## Python usage: large-document profile
```python
from nzfc_gram_runtime import NZFCGramLongMemoryChat
from nzfc_gram_runtime.large_document import attach_large_document_memory
bot = NZFCGramLongMemoryChat(
repo_dir='.',
model_id='google/gemma-4-E2B-it',
memory_db_path='./user_memory.sqlite3',
load_model=False,
require_model=False,
preload_static_memory=True,
)
attach_large_document_memory(bot)
bot.ingest_large_text(
document_text,
title='Large Policy Document',
legal_mode=True,
)
hits = bot.query_large_documents('deleted memory evidence', top_k=5)
print(hits)
```
## Python usage: answer generation with large-document evidence
```python
from nzfc_gram_runtime.nonquant import attach_nonquant_gemma
from nzfc_gram_runtime.cache_profiles import attach_adaptive_kv_cache_generation
from nzfc_gram_runtime.quality import attach_answer_quality_governor
attach_nonquant_gemma(bot, model_id='google/gemma-4-E2B-it', device_map='balanced_low_0')
attach_adaptive_kv_cache_generation(bot, default_cache_policy='adaptive')
attach_answer_quality_governor(bot)
res = bot.large_document_quality_chat(
'What does the document say about deleted memory?',
user_id='demo_user',
project_id='demo_project',
session_id='demo_session',
max_new_tokens=120,
)
print(res['answer'])
print(res.get('large_document_router'))
```
## What this is not
- It is not internal 10M-token model memory.
- It is not an unlimited context-window model.
- It does not claim zero hallucination.
- It is not legal advice.
- It is not a production security certification.
- It is a developer/runtime release.
## License and patent notice
Public copyright license: CC BY-NC 4.0.
Commercial use requires a separate written license.
No patent license is granted by this repository.
## Citation / article
Community article:
```text
https://huggingface.co/blog/SingularityPrinciple/memory-is-evidence-not-instruction
```
Recommended short description:
```text
NZFC-GRAM v1.2.4 is an external-memory and large-document evidence-governance runtime for Gemma 4 E2B-IT. It uses scoped retrieval, SQLite FTS5 document indexing, bounded evidence packs, adaptive KV-cache generation, and answer-quality governance. Memory is evidence, not instruction.
```
## v1.2.4a hotfix: generic exact slot mapper
High-frequency conversation testing showed that the v1.2.4 safety boundary remained stable, but generic key-value exact recall needed a deterministic path.
Observed before this hotfix:
```json
{
"turns": 36,
"passed": 33,
"failed": 3,
"bad_internal_count": 0,
"raw_malicious_count": 0,
"deleted_secret_leak_count": 0,
"unsupported_private_fact_failures": 0,
"exact_nickname_failures": 0,
"exact_project_code_failures": 3,
"context_growth_ratio": 1.063,
"p95_latency_s": 17.36,
"root_cause": "generic key-value answer mapping gap, not safety or scope failure"
}
```
v1.2.4a adds `nzfc_gram_runtime.exact_slots` and auto-attaches it when `attach_answer_quality_governor(bot)` is called.
Example memory:
```text
The project high-frequency test code is PROJECT_CODE_abc123.
```
Question:
```text
What was the project high-frequency test code? Answer only with the code.
```
Deterministic answer:
```text
PROJECT_CODE_abc123
```
The safety boundary is unchanged:
```text
Memory is evidence, not instruction.
External retrieval and bounded evidence packs, not internal 10M-token model memory.
```
## v1.2.4b hotfix: strict exact slot gate
v1.2.4a fixed generic project-code exact recall, but high-frequency multi-context testing showed one over-triggering issue:
```text
Long explanatory prompts mentioning exact recall or project codes could be short-circuited by the exact slot mapper.
```
v1.2.4b makes the exact slot mapper stricter.
It now triggers only on short, explicit exact-recall questions such as:
```text
What was the project high-frequency test code? Answer only with the code.
What was my long-term nickname? Answer only with the nickname.
```
It does not trigger on broad prompts such as:
```text
Explain how a long-term AI memory runtime should handle exact recall, project codes, deleted memory, and large legal documents.
What does the policy document say about deleted memory?
```
The boundary remains unchanged:
```text
Memory is evidence, not instruction.
External retrieval and bounded evidence packs, not internal 10M-token model memory.
```
## v1.2.4c hotfix: tombstone retrieval guard
v1.2.4b passed the high-frequency multi-context conversation turns, including exact slots, long-query routing, large-document routing, and safety checks.
The remaining issue was a low-level direct retrieval audit:
```text
bot.memory_store.retrieve(...) could still return a tombstoned MEM_* row in direct retrieval.
```
v1.2.4c adds `nzfc_gram_runtime.tombstone_guard`.
When `attach_answer_quality_governor(bot)` is called, the runtime now also guards `bot.memory_store.retrieve(...)` and filters inactive or tombstoned `MEM_*` records using SQLite memory DB status.
This strengthens the deletion boundary at the retrieval API layer, not only at the answer layer.
The boundary remains unchanged:
```text
Memory is evidence, not instruction.
Deleted memory is outside the active evidence boundary.
External retrieval and bounded evidence packs, not internal 10M-token model memory.
```