CoolFace
Modelpublic

Sara121/Ornith-1.0-9B-Engineering-LoRA

sourceHugging Facemitupdated 1mo agoView on Hugging Face
0likes11downloads
Model Card

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:

EpochValidation loss
11.3532
21.2940
31.4327

Frozen Evaluation

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

ModelExact matchNormalized exact matchToken F1
Base Ornith-1.0-9B0.00000.00000.1312
Epoch 2 adapter0.00220.00220.3272
Epoch 3 adapter0.00330.00330.2942
Merged Epoch 2 model0.00550.00550.3429

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

Usage

python
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.