Instructions to use medelharchaoui/t5-large-lora-r8-squad with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use medelharchaoui/t5-large-lora-r8-squad with PEFT:
from peft import PeftModel from transformers import AutoModelForSeq2SeqLM base_model = AutoModelForSeq2SeqLM.from_pretrained("google-t5/t5-large") model = PeftModel.from_pretrained(base_model, "medelharchaoui/t5-large-lora-r8-squad") - Notebooks
- Google Colab
- Kaggle
license: apache-2.0
language:
- en
base_model:
- google-t5/t5-large
library_name: peft
pipeline_tag: text2text-generation
datasets:
- rajpurkar/squad
tags:
- t5
- encoder-decoder
- question-answering
- extractive-qa
- squad
- lora
- peft
- parameter-efficient
metrics:
- exact_match
- f1
model-index:
- name: t5-large-lora-r8-squad
results:
- task:
type: question-answering
name: Extractive Question Answering
dataset:
name: SQuAD (validation, 256-example eval subset)
type: rajpurkar/squad
split: validation
metrics:
- type: exact_match
value: 0.6445
name: Exact Match
- type: f1
value: 0.8152
name: Token F1
T5-large — LoRA r=8 adapter on SQuAD
A LoRA adapter (PEFT) for google-t5/t5-large, trained for extractive QA on SQuAD.
Rank 8 on the q and v projections only → ~2.4M trainable params (0.32% of the model).
TL;DR: this 9.5 MB adapter reaches F1 0.8152 / EM 0.6445 — statistically tied with full fine-tuning (F1 0.8162) and with the cross-attention-only variant (F1 0.8128), and it beats parameter-matched GPT-2-large full fine-tune (F1 0.5041) by +0.31 F1 while training 0.32% of the weights versus its 100%. Architecture alignment, not the number of tuned parameters, drives the result.
This repo contains the PEFT adapter only (
adapter_model.safetensors, ~9.5 MB). The base weights are pulled fromgoogle-t5/t5-largeat load time.
Results (SQuAD validation)
| Model | Architecture | Trainable / Total | EM | Token F1 |
|---|---|---|---|---|
| GPT-2-large | decoder-only | 774M / 774M | 0.3516 | 0.5041 |
| T5-large XA-only | enc-dec | 100.7M / 737M | 0.6406 | 0.8128 |
| T5-large LoRA r=8 (this adapter) | enc-dec | 2.4M / 740M | 0.6445 | 0.8152 |
| T5-large full fine-tune | enc-dec | 737M / 737M | 0.6602 | 0.8162 |
Validation loss 0.3061, perplexity 1.36.
Eval note: T5 numbers use a 256-example SQuAD-validation generation subset (4-beam search); GPT-2-large uses 512. Magnitudes are comparable and reproduce the paper's ordering.
How to use
Trained with the input prefix answer question: prepended to a
question: ... context: ... source string — match it exactly at inference:
from transformers import T5ForConditionalGeneration, AutoTokenizer
from peft import PeftModel
base = "google-t5/t5-large"
adapter = "medelharchaoui/t5-large-lora-r8-squad"
tok = AutoTokenizer.from_pretrained(adapter)
model = T5ForConditionalGeneration.from_pretrained(base)
model = PeftModel.from_pretrained(model, adapter)
model = model.merge_and_unload() # optional: fold LoRA into base for faster inference
question = "What culture do 'bairn' and 'hyem' originate from?"
context = ("'bairn' and 'hyem' are geordie words with origins in scandinavia; barn and hjem "
"are the corresponding modern norwegian and danish words.")
text = f"answer question: question: {question} context: {context}"
ids = tok(text, return_tensors="pt", truncation=True, max_length=384).input_ids
print(tok.decode(model.generate(ids, num_beams=4, max_new_tokens=16)[0], skip_special_tokens=True))
Training
| Setting | Value |
|---|---|
| Base model | google-t5/t5-large (737M) |
| LoRA | r=8, alpha=32, dropout=0.05, target modules ["q", "v"] |
| Trainable params | ~2.4M (0.32%) |
| Dataset | rajpurkar/squad, 30,000 train examples |
| Precision | bf16 |
| Optimizer steps | 3,000 (batch 4 × grad-accum 8 = eff. batch 32) |
| LR / warmup | 3e-4, 300 warmup, weight decay 0.01 |
| Source / target max len | 384 / 32 |
| PEFT version | 0.19.1 |
| Seed | 37 |
| Hardware | 1× NVIDIA RTX 3060 (12 GB), local |
Limitations
- English SQuAD-style extractive QA only; short answer spans grounded in the given context.
- Adapter requires
google-t5/t5-largeas the base model at load time. - Evaluated on a held-out validation subset, not the official SQuAD test server.
Citation
Part of an encoder–decoder vs decoder-only paradigm study (OptimiAI, 2026).