Model overview
Table with columns: Property, Details| 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_SEED is 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 torchfrom 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).