Instructions to use moncefem/memory-lora-gemma4 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use moncefem/memory-lora-gemma4 with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
| #!/usr/bin/env python3 | |
| """Step A of the side recall-test: embed THIS repo (gemma4-hack) with the | |
| frozen encoder in a short-lived, low-memory process, save the 2048-d vector | |
| to disk, and exit -- so the big base-model process (Step B) never has the | |
| encoder resident at the same time. CPU-only to avoid competing with the | |
| live MPS training run.""" | |
| from __future__ import annotations | |
| import sys, gc | |
| from pathlib import Path | |
| import numpy as np | |
| HERE = Path(__file__).resolve().parent; REPO_ROOT = HERE.parent | |
| sys.path.insert(0, str(REPO_ROOT)) | |
| from memory_lora.encoder import load_encoder, embed_document | |
| from memory_lora.codegraph import extract_repo_graph_sections, extract_repo_dependency_summary | |
| def main(): | |
| skip = {".git","venv","__pycache__","data","runs",".mypy_cache","scratchpad"} | |
| print("Extracting codegraph sections from this repo...", flush=True) | |
| graph_sections = extract_repo_graph_sections(REPO_ROOT, max_files=60, skip_dirs=skip) | |
| dep = extract_repo_dependency_summary(REPO_ROOT, skip_dirs=skip) | |
| sections = list(graph_sections) | |
| if dep: | |
| sections.append(("dependency_graph", dep)) | |
| # also add a few raw key files for content signal | |
| for rel in ["memory_lora/core.py", "memory_lora/encoder.py", "scripts/train_memory_lora.py", | |
| "memory_lora/codegraph.py", "requirements.txt"]: | |
| p = REPO_ROOT / rel | |
| if p.exists(): | |
| sections.append((f"raw:{rel}", p.read_text(errors="ignore"))) | |
| print(f" {len(sections)} sections", flush=True) | |
| print("Loading encoder on CPU...", flush=True) | |
| model, tok = load_encoder(device="cpu") | |
| vec = embed_document(sections, model, tok, "cpu", chunk_tokens=2048, chunk_overlap=256, batch_size=2) | |
| del model, tok; gc.collect() | |
| if vec is None: | |
| print("FAILED: no embedding", flush=True); return | |
| out = REPO_ROOT / "runs" / "this_repo_emb.npy" | |
| np.save(out, vec.numpy().astype("float32")) | |
| print(f"Saved repo embedding {tuple(vec.shape)} -> {out}", flush=True) | |
| if __name__ == "__main__": | |
| main() | |