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 | |
| """Merge the real Code2LoRA/RepoPeftBench corpus (73,849 real repo-commit | |
| docs, 443,798 real assertion-completion QnAs) with our synthetic corpus | |
| (211 docs: the Code2LoRA paper + coding-agent-harness + agile/Jira + | |
| general fact-sheets) into one combined training set for the hypernetwork. | |
| Output: | |
| data/embeddings/combined_embeddings.parquet | |
| data/qna/combined_qna.jsonl | |
| Usage: | |
| python scripts/merge_corpora.py | |
| """ | |
| from __future__ import annotations | |
| import json | |
| import sys | |
| from pathlib import Path | |
| import pyarrow as pa | |
| import pyarrow.parquet as pq | |
| HERE = Path(__file__).resolve().parent | |
| REPO_ROOT = HERE.parent | |
| sys.path.insert(0, str(REPO_ROOT)) | |
| from memory_lora.data_paths import EMBEDDINGS_DIR, QNA_DIR, ensure_dirs # noqa: E402 | |
| def merge_embeddings() -> int: | |
| synthetic_path = EMBEDDINGS_DIR / "doc_embeddings.parquet" | |
| real_path = EMBEDDINGS_DIR / "real_code2lora_embeddings.parquet" | |
| out_path = EMBEDDINGS_DIR / "combined_embeddings.parquet" | |
| tables = [] | |
| for p, label in [(synthetic_path, "synthetic"), (real_path, "real")]: | |
| if not p.exists(): | |
| print(f" [skip] {p} not found", flush=True) | |
| continue | |
| t = pq.read_table(p) | |
| print(f" {label}: {t.num_rows} rows, columns={t.column_names}", flush=True) | |
| tables.append(t.select(["doc_id", "doc_version", "split", "category", "doc_embedding"])) | |
| combined = pa.concat_tables(tables) | |
| pq.write_table(combined, out_path) | |
| print(f"Wrote {combined.num_rows} combined embeddings -> {out_path}", flush=True) | |
| return combined.num_rows | |
| def merge_qna() -> int: | |
| synthetic_path = QNA_DIR / "qna.jsonl" | |
| real_path = QNA_DIR / "real_code2lora_qna.jsonl" | |
| out_path = QNA_DIR / "combined_qna.jsonl" | |
| n = 0 | |
| with out_path.open("w") as out: | |
| for p, label in [(synthetic_path, "synthetic"), (real_path, "real")]: | |
| if not p.exists(): | |
| print(f" [skip] {p} not found", flush=True) | |
| continue | |
| count = 0 | |
| with p.open() as f: | |
| for line in f: | |
| line = line.strip() | |
| if not line: | |
| continue | |
| out.write(line + "\n") | |
| count += 1 | |
| n += 1 | |
| print(f" {label}: {count} QnA rows", flush=True) | |
| print(f"Wrote {n} combined QnA pairs -> {out_path}", flush=True) | |
| return n | |
| def main() -> None: | |
| ensure_dirs() | |
| print("Merging embeddings...", flush=True) | |
| n_docs = merge_embeddings() | |
| print("\nMerging QnA...", flush=True) | |
| n_qna = merge_qna() | |
| print(f"\nCombined corpus: {n_docs} documents, {n_qna} QnA pairs.", flush=True) | |
| if __name__ == "__main__": | |
| main() | |