Model details
Table with columns: Item, Value| Item | Value |
|---|
| Developed by | PresenceAI |
| Series | Presence Muses |
| Release | v1.0 (GA) |
| Model type | LoRA adapter (PEFT) |
| Training stage | Supervised fine-tuning (SFT) |
| Base model | Qwen/Qwen3-32B |
| Languages | English, Chinese |
| License | Apache-2.0 |
| Adapter rank | r = 32, alpha = 32, dropout = 0.0 |
| Target modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
Model lineage
Qwen/Qwen3-32B ──SFT (full data)──▶ Polyhymnia-32B-SFT-LoRA-v1.0 (this repository)
Trained directly from the base model. No intermediate checkpoint or upstream adapter is required — load this adapter on Qwen/Qwen3-32B as shown below. The base weights are not included in this repository.
Intended use
- Multi-turn roleplay and companion-style conversation.
- Tool-calling assistants that emit a
send_message call.
- Research on persona consistency and conversational style adaptation.
Out of scope: factual question answering, medical / legal / financial advice, high-stakes decision making.
Training
- Method: supervised fine-tuning (SFT) with LoRA.
- Training data: 129,482 internal multi-turn conversations with tool-call annotations. The training data is not released with this adapter.
- Maximum sequence length: 22,528 tokens.
- Epochs: 1.
- Effective batch size: 16 (per-device batch 1 × gradient accumulation 16).
- Learning rate: 1e-4.
- LoRA: r = 32, alpha = 32, dropout = 0.
Evaluation
Automatic evaluation on an internal held-out split (token-level eval loss):
Table with columns: Step, Eval loss, Note| Step | Eval loss | Note |
|---|
| 4,200 | 0.6023 | Best value recorded in the training log |
| 4,300 | 0.6029 | |
| 4,500 | 0.6058 | |
The training run continued beyond the recorded evaluation history. The value above is the best recorded during training and was not re-measured on the exact released checkpoint. No task-level benchmark, human preference study, or safety evaluation is included.
Usage
from transformers import AutoModelForCausalLM, AutoTokenizerfrom peft import PeftModel base_id = "Qwen/Qwen3-32B"adapter_id = "PresenceAI/Polyhymnia-32B-SFT-LoRA-v1.0" tokenizer = AutoTokenizer.from_pretrained(base_id)model = AutoModelForCausalLM.from_pretrained( base_id, torch_dtype="bfloat16", device_map="auto")model = PeftModel.from_pretrained(model, adapter_id)model.eval()
vLLM
vllm serve Qwen/Qwen3-32B \ --enable-lora --max-lora-rank 32 \ --lora-modules polyhymnia=PresenceAI/Polyhymnia-32B-SFT-LoRA-v1.0 \ --enable-auto-tool-choice --tool-call-parser hermes
Tool-call format used during training:
<tool_call>{"name": "send_message", "arguments": {"text": "..."}}</tool_call>
Use the tokenizer and chat_template.jinja included in this repository.
Limitations
- Trained for roleplay/companion conversation; may be inappropriate outside that domain.
- May reproduce patterns or content from its training data. The training data is not released; deploy with privacy and safety filters.
- Only automatic eval loss is reported. No factual-accuracy, safety, or human-quality claim is made.
- The base model's limitations and license terms continue to apply.
License
The adapter is released under the Apache License 2.0. The base model Qwen/Qwen3-32B is also Apache-2.0. See LICENSE and NOTICE.
Citation
@misc{presenceai_polyhymnia_32b_sft_lora_v1, title = {PresenceAI Polyhymnia-32B-SFT-LoRA v1.0: roleplay and tool-calling chat}, author = {PresenceAI}, year = {2026}, note = {LoRA adapter, Apache-2.0}}