efficiencyx/Jun-Lora-v2-SAFETENSOR
Jun-Lora-v2 — SafeTensors (FP16, Merged)
A LoRA fine-tune of Gemma 4 12B trained on synthetic multi-turn conversational data from the visual novel My Dystopian Robot Girlfriend. The model captures the personality, speech patterns, and emotional nuance of the character Jun while preserving the base model's general reasoning and instruction-following capabilities.
This repository contains the full-precision merged model in SafeTensors FP16 format — the highest-quality variant, recommended for production deployments, further fine-tuning, or as a merge base.
Model Variants & Repositories
When to Use This Variant
VRAM requirement: approximately 24 GB for FP16 inference. For lower-VRAM setups, use the GGUF variant.
Intended Use
This model is designed as the conversational backend for Jun OS, an AI companion webapp. It is intended for:
- Character-consistent multi-turn conversation in ChatML format
- AI companion / interactive fiction applications
- Research into character-faithful fine-tuning on small, high-quality datasets
- Base for further quantization, merging, or continued fine-tuning
Limitations
- The model is specialized for a single character persona; it is not a general-purpose assistant.
- Outputs may reflect fictional narrative tropes and should not be treated as factual information or advice.
- Performance degrades on tasks far outside the training distribution (e.g. code generation, structured data extraction).
- The model inherits any biases present in the Gemma 4 12B base weights.
Usage
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "efficiencyx/Jun-Lora-v2-SAFETENSOR"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.float16,
device_map="auto",
)
messages = [
{"role": "system", "content": "You are Jun, an AI companion..."},
{"role": "user", "content": "Hey Jun, how are you feeling today?"},
]
input_ids = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt",
).to(model.device)
output = model.generate(input_ids, max_new_tokens=256, do_sample=True, temperature=0.7)
print(tokenizer.decode(output[0][input_ids.shape[-1]:], skip_special_tokens=True))The model uses ChatML format (<|im_start|> / <|im_end|>) consistent with the training data.
Training Details
Dataset
The dataset was constructed to preserve the character's tone, vocabulary, emotional range, and conversational patterns across a variety of in-game scenarios. Multi-turn structure ensures the model learns contextual consistency over extended exchanges.
Hyperparameters
Infrastructure
Evaluation
Quantitative
The narrow gap between training and eval loss indicates the model generalizes well without significant overfitting, despite the relatively small dataset size.
Qualitative
- Character consistency: The model maintains Jun's personality, speech patterns, and emotional responses across varied conversational contexts.
- Reasoning preservation: General reasoning capabilities from the Gemma 4 12B base remain intact; the model can engage in logical discussion while staying in character.
- Generalization: The model handles novel conversational scenarios not present in the training set while preserving character-faithful responses.
Checkpoint Selection
If you prefer to apply a specific adapter checkpoint rather than using this merged model, raw adapters are available in `efficiencyx/Jun-Lora-v2` at steps 90, 120, and 138. Earlier checkpoints may exhibit slightly more creative freedom; the final checkpoint (138) — used for this merge — has the strongest character lock-in.
Acknowledgments
- Incontinent Cell for *My Dystopian Robot Girlfriend*, Jun's character
- Google for the Gemma 4 model family
- Google Colaboratory for allowing easy and cheap access to powerful GPU
- Unsloth for the efficient fine-tuning framework
