How to use from the
Use from the
PEFT library
from peft import PeftModel
from transformers import AutoModelForCausalLM

base_model = AutoModelForCausalLM.from_pretrained("ornith-ai/Ornith-1.0-9B")
model = PeftModel.from_pretrained(base_model, "Sara121/Ornith-1.0-9B-Engineering-LoRA")

Ornith-1.0-9B-Engineering-LoRA

LoRA adapter fine-tuned from ornith-ai/Ornith-1.0-9B for engineering QA style responses.

Lineage

ornith-ai/Ornith-1.0-9B + Epoch 2 QLoRA adapter (checkpoint-1072) -> Ornith-1.0-9B-Engineering-LoRA

The original GGUF checkpoint was not used as the training source. Training used the trainable Hugging Face Transformers checkpoint ornith-ai/Ornith-1.0-9B.

Training

  • Training examples: 17,133
  • Frozen evaluation examples: 902
  • Method: QLoRA
  • LoRA rank/alpha/dropout: 32 / 64 / 0.05
  • Quantization during training: 4-bit NF4, double quantization, bfloat16 compute
  • Sequence length: 1024
  • Epochs trained: 3
  • Selected checkpoint: Epoch 2 (checkpoint-1072)
  • Selection reason: Epoch 2 had the best held-out token F1 and lowest validation loss.

Validation loss:

Epoch Validation loss
1 1.3532
2 1.2940
3 1.4327

Frozen Evaluation

All results below use the same frozen 902-example evaluation set, deterministic decoding, and the same evaluator.

Model Exact match Normalized exact match Token F1
Base Ornith-1.0-9B 0.0000 0.0000 0.1312
Epoch 2 adapter 0.0022 0.0022 0.3272
Epoch 3 adapter 0.0033 0.0033 0.2942
Merged Epoch 2 model 0.0055 0.0055 0.3429

Epoch 2 vs Base: 749 improved, 134 regressed, 19 unchanged by token F1.

Usage

from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel
import torch

base_model = "ornith-ai/Ornith-1.0-9B"
adapter = "Sara121/Ornith-1.0-9B-Engineering-LoRA"

tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    base_model,
    trust_remote_code=True,
    device_map="auto",
    torch_dtype=torch.bfloat16,
)
model = PeftModel.from_pretrained(model, adapter)
model.eval()

Use the Ornith/Qwen chat template from the tokenizer. Ornith responses may include <think>...</think> reasoning before the final answer.

Limitations

This adapter was trained on a domain-specific engineering QA dataset. It should be validated for each deployment domain. The frozen evaluator reports exact match, normalized exact match, and token F1; it does not prove regulatory correctness or eliminate hallucination risk.

Downloads last month
9
Inference Providers NEW
This model isn't deployed by any Inference Provider. 馃檵 Ask for provider support

Model tree for Sara121/Ornith-1.0-9B-Engineering-LoRA

Adapter
(2)
this model