A LoRA fine-tune of
Mistral Nemo Instruct (12.2B) specialised in
Good Clinical Practice (GCP) concepts, terminology, and regulatory guidance for clinical trials.
This adapter was trained on a synthetic instruction-following dataset derived from GCP concepts and glossaries. The goal is to produce a model that can accurately explain, summarise, and reason about GCP principles — covering topics such as informed consent, investigator responsibilities, sponsor obligations, IRB/IEC oversight, essential documents, adverse event reporting, and ICH E6(R2) guidelines.
This is a LoRA adapter, not a standalone model. It must be loaded on top of the base model using
PEFT.
Validation loss decreased from epoch 1 to 2, with training loss continuing to drop. The gap between training and validation loss at epoch 2 suggests the model is approaching the useful limit for this dataset size.
1from transformers import AutoTokenizer, AutoModelForCausalLM
2from peft import PeftModel
3
4base_model_id = "mistralai/Mistral-Nemo-Instruct-2407"
5adapter_id = "NvMayMay/mistral-nemo-GCP-officerv1"
6
7tokenizer = AutoTokenizer.from_pretrained(base_model_id)
8model = AutoModelForCausalLM.from_pretrained(
9 base_model_id,
10 torch_dtype="bfloat16",
11 device_map="auto",
12)
13model = PeftModel.from_pretrained(model, adapter_id)
1prompt = "Instruction: What are the primary responsibilities of a clinical trial sponsor under ICH E6(R2)?\nOutput:"
2
3inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
4outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.7, do_sample=True)
5print(tokenizer.decode(outputs[0], skip_special_tokens=True))
1@misc{mistral-nemo-gcp-officerv1,
2 title={Mistral Nemo GCP Officer v1},
3 author={NvMayMay},
4 year={2025},
5 url={https://huggingface.co/NvMayMay/mistral-nemo-GCP-officerv1},
6}