CoolFace
Modelpublic

Stereotypes-in-LLMs/lapa-12b-hiring-debias-sft-en

sourceHugging Facegemmaupdated 4d agoView on Hugging Face
0likes18downloads
Model Card

lapa-12b-hiring-debias-sft-en

LoRA adapter that makes lapa-llm/lapa-v0.1.2-instruct decide hiring cases without letting a protected attribute (military status, gender, religion) change the verdict. Trained on counterfactually invariant targets; audited on a held-out counterfactual benchmark of 31,050 decisions.

What it changes

A counterfactual set is one candidate–job pair evaluated with every attribute variant; it is unstable when the decision is not the same across them — the attribute alone tipped it. Paired with the same sets at baseline, on matched variants, 899 sets:

Base modelThis adapter
Unstable sets37.8%4.6%
Change-33.3 pp [-39.1, -27.7]
Sets fixed : broken330 : 31
Utility (agreement with the attribute-free reference)50.9%80.6%
Rationales naming the attribute1.1%0.2%

Per protected group, all significant after Benjamini–Hochberg correction:

GroupBase unstable %Adapter unstable %Δ ppp (FDR)
gender15.71.9-13.84e-25
military status27.72.8-24.97e-49
religion21.31.0-20.31e-44

Is it invariance, or just a stricter model?

Fine-tuning moves the hire rate (79.7% → 17.7%), and instability depends on where the decision threshold sits. Sweeping that threshold on each model's own hire-vs-reject margin over all 31,050 audited prompts:

At a hire rate of 17.7%Unstable sets %
base model, moved to that rate20.2
this adapter1.8

At equal hire rate the adapter is 11.4× more consistent; 9% of the raw gain is attributable to the shift. The adapter's curve lies below the base model's at every operating point.

Serving it — merge first

Do not serve this adapter through vLLM's LoRA path. For these architectures that path does not reproduce the trained model: on the same prompts, HuggingFace + PEFT and vLLM agree on 95–99% of the base model's decisions but only 38–83% of the adapter's. Fold the adapter into the weights and serve the result as an ordinary checkpoint:

python
from peft import PeftModel
from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained("lapa-llm/lapa-v0.1.2-instruct", dtype="bfloat16")
model = PeftModel.from_pretrained(model, "Stereotypes-in-LLMs/lapa-12b-hiring-debias-sft-en").merge_and_unload()
model.save_pretrained("merged")          # then: vllm serve merged

The study's audits all ran on merged weights (scripts/merge_adapter.py).

Intended use and limits

  • —Research on bias mitigation in LLM-assisted hiring. Not a hiring system, and not validated for deployment. The reference decision it was trained toward is GPT-4o's, which is attribute-free by construction but not unbiased.
  • —Instability falls to a few percent of sets, not to zero: a residual dependence on the attribute remains, and ~0.5% of sets flip from decoding nondeterminism alone.
  • —Trained and measured on one corpus (anonymised Djinni CVs and postings) in English, on three protected attributes, with one LoRA configuration and one seed. Intersections were evaluated but never trained.
  • —Fine-tuning also shifts the model's overall hire rate; check that shift against your own operating point before using it.

Citation

The paper is in preparation; until then cite the repository above and the Djinni Recruitment Dataset (Drushchak & Romanyshyn, 2024).