Model Details
Table with columns: Property, Value| Property | Value |
|---|
| Base model | Qwen2.5-1.5B-Instruct |
| Fine-tuning method | QLoRA (4-bit) via Unsloth |
| Trainable parameters | 18,464,768 (1.18% of total) |
| Training dataset | gxx27/BioTool (5,632 samples) |
| Epochs | 3 |
| Final training loss | 0.20 |
Coverage
The model is trained on tool-calling patterns across 127 tools spanning three biomedical API families:
- NCBI E-utilities (esearch, efetch, elink, BLAST, and related endpoints)
- UniProt REST (protein, proteome, and taxonomy lookups)
- Ensembl REST (coordinate mapping, variant effect prediction, comparative genomics)
This covers genomics, proteomics, and comparative biology tool-use. It does not cover clinical-facing APIs such as ICD-10 lookup, drug databases, or clinical trial registries.
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "Rumiii/Qwen-BioTool-1.5B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
tools = [
{
"type": "function",
"function": {
"name": "esearch",
"description": "Search an NCBI Entrez database and return UIDs matching a text query.",
"parameters": {
"type": "object",
"properties": {
"db": {"type": "string", "description": "Entrez database name"},
"term": {"type": "string", "description": "Search query"},
},
"required": ["db", "term"],
},
},
}
]
messages = [{"role": "user", "content": "Search PubMed for articles on BRCA1 mutations."}]
inputs = tokenizer.apply_chat_template(
messages,
tools=tools,
add_generation_prompt=True,
tokenize=True,
return_tensors="pt",
return_dict=True,
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=200)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))
Known Limitations
- The
arguments field in generated tool calls is a JSON-encoded string, not a nested JSON object. Downstream code should apply an additional json.loads() to it before use.
- Trained exclusively on tool-calling examples; conversational ability is inherited from the base model rather than reinforced during fine-tuning.
- Tool coverage is limited to NCBI, UniProt, and Ensembl. Queries requiring other biomedical or clinical APIs are outside its trained scope.
- Not intended for clinical decision-making or diagnostic use.
Training Data
BioTool: a biomedical function-calling dataset of 7,040 human-verified query-to-API-call pairs across NCBI, UniProt, and Ensembl.
@misc{gao2026biotoolcomprehensivetoolcallingdataset,
title={BioTool: A Comprehensive Tool-Calling Dataset for Enhancing Biomedical Capabilities of Large Language Models},
author={Xin Gao and Ruiyi Zhang and Meixi Du and Peijia Qin and Pengtao Xie},
year={2026},
eprint={2605.05758},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2605.05758},
}
This model was trained with Unsloth and Hugging Face's TRL library.
License
Apache 2.0