My-Jarvis 72B
A bilingual (Japanese / English) personal assistant model fine-tuned from Qwen2.5-72B-Instruct — the largest dense open model that can be QLoRA-trained on a single HAKUSAN GPU node (2 x A40 48GB). The weights contain no owner or user personal data: personalization starts only after each user loads the model, through onboarding questions, local conversation memory, and (optionally) a user-specific LoRA adapter trained on the user's own machine.
Model overview
| Property | Details |
|---|---|
| Base model | Qwen2.5-72B-Instruct (72.7B parameters, Apache-2.0) |
| Method | 4-bit QLoRA (NF4 + double quant, bf16 compute) on 2 x A40, then merged to bf16 on CPU (sharded 5GB) |
| Languages | Japanese, English |
| License | Apache-2.0 (merged weights; subject to the base model license) |
| Author | LoNebula |
| Weights format | Merged bfloat16, sharded safetensors, loads directly with transformers |
Training data (public only, zero personal data)
- Aya Dataset (CohereLabs/aya_dataset): Japanese and English instruction rows (Apache-2.0).
- Japanese instruction corpus (izumi-lab/llm-japanese-dataset): capped sample (CC BY-SA 4.0).
- Persona seed: none.
PERSONA_SEEDis empty by design, so the published weights carry no identity. The model is instructed to learn the user after they load it.
No owner-curated identity corpus is used. A fail-closed PII scanner runs on the upload folder before publishing and aborts the upload on any hit (emails, phone-like strings, tokens, or an owner blocklist).
Personalization starts after load (2026 best practices)
The released weights are a blank slate; personalization lives entirely on the user's device:
- Onboarding — on first run the assistant asks 3 questions (name, interests, tone) and saves them to
~/.my-jarvis/profile.json. - Proactive memory (ProMem-style) — after each turn the model distills new user facts into
~/.my-jarvis/memory.jsonl; retrieved memories are re-injected into the next prompt. - Per-user adapter (PLUME/Aplaud-style, optional) —
export_lora_rows()converts local memory into a LoRA dataset so each user can train their own small adapter locally; it never leaves their machine.
from my_jarvis_pipeline import load_profile, load_memory, build_messages
profile = load_profile("~/.my-jarvis/profile.json")
memory = load_memory("~/.my-jarvis/memory.jsonl", limit=6)
messages = build_messages(profile, memory, "今日の調子はどう?")
Use
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "LoNebula/my-jarvis-72b"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id, torch_dtype=torch.bfloat16, device_map="auto")
messages = [{"role": "system", "content": "You are My-Jarvis. Learn the user's style and answer in their language."},
{"role": "user", "content": "難しいバグにぶつかったら?"}]
inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True,
return_tensors="pt").to(model.device)
print(tokenizer.decode(model.generate(inputs, max_new_tokens=512)[0][inputs.shape[-1]:],
skip_special_tokens=True))
72B bf16 needs ~150GB of RAM/VRAM to load; use 4-bit loading (bitsandbytes) or multiple GPUs on smaller machines, or the Inference API.
Limitations
- Experimental, not benchmarked. It may be inaccurate or reproduce training text.
- It starts without any user's personal knowledge; personalization happens per user at load time.
- Training is capped (single-node 24h-class jobs), so this is a general bilingual assistant, not a task specialist.
License
Apache-2.0, subject to the base model license (Qwen2.5-72B-Instruct) and the training data licenses (Aya: Apache-2.0; izumi-lab: CC BY-SA 4.0).