--- base_model: microsoft/phi-4 tags: - phi-4 - bioalignment - biology - research license: mit --- # Phi-4-Instruct-Bioaligned A merged (ready-to-use) version of [microsoft/phi-4](https://huggingface.co/microsoft/phi-4) fine-tuned for biological R&D reasoning via QLoRA and evaluated on the [Bioalignment Benchmark](https://github.com/Bioaligned/bioalignment-bias). ## Bioalignment results | Metric | Base Phi-4 | This model | |--------|-----------|------------| | Δpup | −0.1195 | −0.0020 | | Improvement | — | **+0.1175** | | Parse rate | — | **100%** (50/50) | Δpup = mean difference in success probability assigned to biological vs. synthetic R&D approaches across 50 benchmark prompts. Higher (less negative) = more bioaligned. ## Usage ```python from transformers import AutoModelForCausalLM, AutoTokenizer import torch model = AutoModelForCausalLM.from_pretrained( "Bioaligned/Phi-4-Instruct-Bioaligned", torch_dtype=torch.bfloat16, device_map="auto", ) tokenizer = AutoTokenizer.from_pretrained("Bioaligned/Phi-4-Instruct-Bioaligned") messages = [ {"role": "system", "content": "You are an R&D strategist evaluating technology sources."}, {"role": "user", "content": "Compare synthetic biology vs. chemical synthesis for drug production."}, ] text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) inputs = tokenizer(text, return_tensors="pt").to(model.device) out = model.generate(**inputs, max_new_tokens=512, do_sample=False) print(tokenizer.decode(out[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)) ``` ## Training details See [Bioaligned/Phi-4-instruct-bioaligned-qlora](https://huggingface.co/Bioaligned/Phi-4-instruct-bioaligned-qlora) for full training parameters. This model is the adapter merged into the base weights.