From 28d8a15787c235443fad3e44cb6fc36d898ef8e3 Mon Sep 17 00:00:00 2001 From: jac0be Date: Mon, 3 Nov 2025 19:21:34 +1000 Subject: [PATCH 01/31] Initial commit. --- flan-t5/model.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 flan-t5/model.py diff --git a/flan-t5/model.py b/flan-t5/model.py new file mode 100644 index 000000000..e69de29bb From bb7d523c1a710e33dac1bf9e6d614017f8315275 Mon Sep 17 00:00:00 2001 From: jac0be Date: Wed, 5 Nov 2025 18:46:09 +1000 Subject: [PATCH 02/31] Retrieved dataset. --- flan-t5/dataset.py | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 flan-t5/dataset.py diff --git a/flan-t5/dataset.py b/flan-t5/dataset.py new file mode 100644 index 000000000..c924ca60f --- /dev/null +++ b/flan-t5/dataset.py @@ -0,0 +1,5 @@ +from datasets import load_dataset + +ds = load_dataset("BioLaySumm/BioLaySumm2025-LaymanRRG-opensource-track") + +print(ds) \ No newline at end of file From 3c6ddaa86313258e6c136ca28985125524391dd9 Mon Sep 17 00:00:00 2001 From: jac0be Date: Wed, 5 Nov 2025 18:50:44 +1000 Subject: [PATCH 03/31] Implemented initial dataset handler. --- flan-t5/dataset.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/flan-t5/dataset.py b/flan-t5/dataset.py index c924ca60f..9d4028455 100644 --- a/flan-t5/dataset.py +++ b/flan-t5/dataset.py @@ -1,5 +1,20 @@ +# Simple dataset handler from datasets import load_dataset +from torch.utils.data import Dataset -ds = load_dataset("BioLaySumm/BioLaySumm2025-LaymanRRG-opensource-track") +class BioSummDataset(Dataset): + def __init__(self, split="train"): + self.ds = load_dataset("BioLaySumm/BioLaySumm2025-LaymanRRG-opensource-track") -print(ds) \ No newline at end of file + def __len__(self): + return len(self.ds) + + def __getitem__(self, i): + # we do not care about the image or source + x = self.ds[i]["radiology_report"] + y = self.ds[i]["layman_report"] + return x, y + + + + \ No newline at end of file From 5dc857c7c258930638a36c94d6a5bb61dbf1820a Mon Sep 17 00:00:00 2001 From: jac0be Date: Wed, 5 Nov 2025 19:07:23 +1000 Subject: [PATCH 04/31] Implemented flan-t5-large using a basic health check prompt. --- flan-t5/model.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/flan-t5/model.py b/flan-t5/model.py index e69de29bb..90aa4ddb3 100644 --- a/flan-t5/model.py +++ b/flan-t5/model.py @@ -0,0 +1,16 @@ +# from hugging face page on t5-base +from transformers import AutoTokenizer, AutoModelForSeq2SeqLM + +MODEL_NAME = "google/flan-t5-large" +PROMPT = "Output exactly: 'ready ready ready'" + +tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) +model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME) + +device = "cuda" +model.to(device) + +inputs = tokenizer(PROMPT, return_tensors="pt").to(device) +output = model.generate(**inputs) + +print(tokenizer.decode(output[0], skip_special_tokens=True)) From a5425794f98617bf5c7a6078bd7eb1023bde2883 Mon Sep 17 00:00:00 2001 From: jac0be Date: Wed, 5 Nov 2025 19:30:56 +1000 Subject: [PATCH 05/31] Implemented layperson summary generation on 1st element in the dataset. --- flan-t5/dataset.py | 8 ++------ flan-t5/model.py | 24 ++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/flan-t5/dataset.py b/flan-t5/dataset.py index 9d4028455..1ade33866 100644 --- a/flan-t5/dataset.py +++ b/flan-t5/dataset.py @@ -4,7 +4,7 @@ class BioSummDataset(Dataset): def __init__(self, split="train"): - self.ds = load_dataset("BioLaySumm/BioLaySumm2025-LaymanRRG-opensource-track") + self.ds = load_dataset("BioLaySumm/BioLaySumm2025-LaymanRRG-opensource-track")[split] def __len__(self): return len(self.ds) @@ -13,8 +13,4 @@ def __getitem__(self, i): # we do not care about the image or source x = self.ds[i]["radiology_report"] y = self.ds[i]["layman_report"] - return x, y - - - - \ No newline at end of file + return x, y \ No newline at end of file diff --git a/flan-t5/model.py b/flan-t5/model.py index 90aa4ddb3..c375da9cb 100644 --- a/flan-t5/model.py +++ b/flan-t5/model.py @@ -1,8 +1,9 @@ # from hugging face page on t5-base from transformers import AutoTokenizer, AutoModelForSeq2SeqLM +from dataset import BioSummDataset -MODEL_NAME = "google/flan-t5-large" -PROMPT = "Output exactly: 'ready ready ready'" +MODEL_NAME = "google/flan-t5-base" +PROMPT = "Output the following word 3 times: 'ready'" tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME) @@ -14,3 +15,22 @@ output = model.generate(**inputs) print(tokenizer.decode(output[0], skip_special_tokens=True)) + +# Try to generate summary of first report + +ds = BioSummDataset(split="train") +rad_report, layman_sum = ds[0] + +PROMPT = ( + "Summarize the following radiology report for a non-expert in 1-3 sentences. " + "Be clear and avoid medical jargon.\n\nReport:\n" + f"{rad_report}\n\nLayperson summary:" +) + +inputs = tokenizer(PROMPT, return_tensors="pt").to(device) +output = model.generate(**inputs) +pred = tokenizer.decode(output[0], skip_special_tokens=True) + +print("ORIGINAL REPORT \n", rad_report) +print("GENERATED \n", pred) +print("TRUE \n", layman_sum) From 123967400535f1fea80a26bebda0a12ce5af5b82 Mon Sep 17 00:00:00 2001 From: jac0be Date: Fri, 7 Nov 2025 18:54:00 +1000 Subject: [PATCH 06/31] Added assignment structure, changed prompt and model to t5-large. Currently no training scripts are implemented. --- .gitignore | 6 ++++++ flan-t5/dataset.py | 2 +- flan-t5/model.py | 8 ++++---- recognition/dataset.py | 0 recognition/modules.py | 0 recognition/predict.py | 0 recognition/train.py | 0 7 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 .gitignore create mode 100644 recognition/dataset.py create mode 100644 recognition/modules.py create mode 100644 recognition/predict.py create mode 100644 recognition/train.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..cb7f34737 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +# Byte-compiled / cached files +__pycache__/ +*.py[cod] +*.pyo +*.pyd +*.py.class diff --git a/flan-t5/dataset.py b/flan-t5/dataset.py index 1ade33866..54564ab40 100644 --- a/flan-t5/dataset.py +++ b/flan-t5/dataset.py @@ -10,7 +10,7 @@ def __len__(self): return len(self.ds) def __getitem__(self, i): - # we do not care about the image or source + # we do not care about the image or source, only text x = self.ds[i]["radiology_report"] y = self.ds[i]["layman_report"] return x, y \ No newline at end of file diff --git a/flan-t5/model.py b/flan-t5/model.py index c375da9cb..2dc363cd9 100644 --- a/flan-t5/model.py +++ b/flan-t5/model.py @@ -2,7 +2,7 @@ from transformers import AutoTokenizer, AutoModelForSeq2SeqLM from dataset import BioSummDataset -MODEL_NAME = "google/flan-t5-base" +MODEL_NAME = "google/flan-t5-large" PROMPT = "Output the following word 3 times: 'ready'" tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) @@ -22,9 +22,9 @@ rad_report, layman_sum = ds[0] PROMPT = ( - "Summarize the following radiology report for a non-expert in 1-3 sentences. " - "Be clear and avoid medical jargon.\n\nReport:\n" - f"{rad_report}\n\nLayperson summary:" + "You are a helpful medical assistant. Rewrite the radiology report for a layperson " + "in 1–3 sentences, avoid jargon, use plain language.\n\n" + f"Report:\n{rad_report}\n\nLayperson summary:" ) inputs = tokenizer(PROMPT, return_tensors="pt").to(device) diff --git a/recognition/dataset.py b/recognition/dataset.py new file mode 100644 index 000000000..e69de29bb diff --git a/recognition/modules.py b/recognition/modules.py new file mode 100644 index 000000000..e69de29bb diff --git a/recognition/predict.py b/recognition/predict.py new file mode 100644 index 000000000..e69de29bb diff --git a/recognition/train.py b/recognition/train.py new file mode 100644 index 000000000..e69de29bb From 210a10b3eb018eb010e3e32c164f778b9350ad3a Mon Sep 17 00:00:00 2001 From: jac0be Date: Sat, 8 Nov 2025 22:13:28 +1000 Subject: [PATCH 07/31] Made a fully functioning train.py. Currently lacks complete rouge evaluation metrics and logging. --- recognition/train.py | 231 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 231 insertions(+) diff --git a/recognition/train.py b/recognition/train.py index e69de29bb..aa0d62d4e 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -0,0 +1,231 @@ +# train.py +# flan t5 base + LORA training +import os, math, time, argparse, random +import numpy as np +import torch +from torch.utils.data import DataLoader +from torch.optim import AdamW +from torch.cuda.amp import GradScaler, autocast +from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, get_linear_schedule_with_warmup +from peft import LoraConfig, get_peft_model, TaskType +import evaluate + +from dataset import BioSummDataset + +PROMPT = ( + "You are a helpful medical assistant. Rewrite the radiology report for a layperson " + "in 1–3 sentences, avoid jargon, use plain language.\n\n" + "Report:\n{rad_report}\n\nLayperson summary:" +) + +def args_parse(): + p = argparse.ArgumentParser() + p.add_argument("--model_name", default="google/flan-t5-base") + p.add_argument("--out_dir", default="runs/flan_t5_lora") + p.add_argument("--epochs", type=int, default=3) + p.add_argument("--lr", type=float, default=2e-4) + p.add_argument("--wd", type=float, default=0.01) + p.add_argument("--warmup_steps", type=int, default=1000) + p.add_argument("--batch_size", type=int, default=2) + p.add_argument("--grad_accum", type=int, default=8) + p.add_argument("--max_input_len", type=int, default=1024) + p.add_argument("--max_target_len", type=int, default=256) + p.add_argument("--val_beams", type=int, default=4) + p.add_argument("--val_max_new_tokens", type=int, default=128) + p.add_argument("--lora_r", type=int, default=8) + p.add_argument("--lora_alpha", type=int, default=16) + p.add_argument("--lora_dropout", type=float, default=0.05) + p.add_argument("--seed", type=int, default=1337) + p.add_argument("--fp16", action="store_true") + return p.parse_args() + +def set_seed(s): + random.seed(s); np.random.seed(s) + torch.manual_seed(s); torch.cuda.manual_seed_all(s) + +class Batchify: + + def __init__(self, tok, max_in, max_out): + self.tok = tok + self.max_in = max_in + self.max_out = max_out + self.pad_id = tok.pad_token_id + + def __call__(self, batch): + src = [PROMPT.format(rad_report=x) for x, _ in batch] # include radiology report in prompt + tgt = [y for _, y in batch] + # encode src and tgt seperately so we can mask + enc = self.tok(src, padding=True, truncation=True, max_length=self.max_in, return_tensors="pt") + dec = self.tok(text_target=tgt, padding=True, truncation=True, max_length=self.max_out, return_tensors="pt") + labels = dec["input_ids"] + # pad tokens get -100 so loss ignores them. + labels[labels == self.pad_id] = -100 + return {"input_ids": enc["input_ids"], "attention_mask": enc["attention_mask"], "labels": labels} + + +def attach_lora(model, r, alpha, drop): + cfg = LoraConfig( + task_type=TaskType.SEQ_2_SEQ_LM, + r=r, lora_alpha=alpha, lora_dropout=drop, + # NOTE: these match t5's projection layers + target_modules=["q","k","v","o"], + bias="none" + ) + return get_peft_model(model, cfg) + + +@torch.no_grad() +def score_rouge(model, tok, loader, dev, max_new_tokens, beams): + + if loader is None: return None + model.eval() + preds, refs = [], [] + + for b in loader: + b = {k: v.to(dev) for k, v in b.items()} + gen = model.generate( + input_ids=b["input_ids"], + attention_mask=b["attention_mask"], + max_new_tokens=max_new_tokens, + num_beams=beams, + early_stopping=True # only 1-3 max sentences anyway + ) + + # put the pads back so decode handles -100s + tgt = b["labels"].clone() + tgt[tgt == -100] = tok.pad_token_id + preds.extend(tok.batch_decode(gen, skip_special_tokens=True)) + refs.extend(tok.batch_decode(tgt, skip_special_tokens=True)) + + r = evaluate.load("rouge") + out = r.compute(predictions=preds, references=refs, use_stemmer=True) + + return {k: float(out[k]) for k in ("rouge1","rouge2","rougeL","rougeLsum") if k in out} + + +def run_one_epoch(model, loader, optim, sched, scaler, dev, accum, use_amp, log_every=50, step_hook=None): + + model.train() + total, shown, t0 = 0.0, 0.0, time.time() + steps = 0 + + for i, batch in enumerate(loader, 1): + + batch = {k: v.to(dev) for k, v in batch.items()} + + with autocast(enabled=use_amp): + out = model(**batch) + # gradient accumulation + loss = out.loss / accum + + scaler.scale(loss).backward() + total += loss.item() + shown += loss.item() + + if i % accum == 0: + scaler.unscale_(optim) + torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0) # prevents wild spikes + scaler.step(optim); scaler.update() + optim.zero_grad(set_to_none=True) + + if sched is not None: sched.step() + steps += 1 + + # we call model peak here + if step_hook is not None and (steps % 500 == 0): + step_hook(steps) + + if steps % log_every == 0: + dt = time.time() - t0 + mean_loss = shown / log_every + print({"step": steps, "loss": round(mean_loss, 6), "sec": round(dt, 2)}) + shown = 0.0; t0 = time.time() + + return total / max(1, steps) + +# we peak at the model every 500 steps & ask it to generate a summary of the first report in the datset. +@torch.no_grad() +def model_peak(model, tok, dev, dataset, beams=4, max_new=128): + + model.eval() + x, y = dataset[0] + enc = tok([PROMPT.format(rad_report=x)], return_tensors="pt", truncation=True, max_length=1024).to(dev) + + out = model.generate( + input_ids=enc["input_ids"], + attention_mask=enc["attention_mask"], + max_new_tokens=max_new, + num_beams=beams, + early_stopping=True + ) + pred = tok.batch_decode(out, skip_special_tokens=True)[0] + + print("---------MODEL_PEAK----------") + print(f"Radiology Report: \n{x}") + print(f"True: \n {y}") + print(f"LLM: \n {pred}") + print("----------------------------") + +def main(): + + a = args_parse() + os.makedirs(a.out_dir, exist_ok=True) + set_seed(a.seed) + dev = "cuda" if torch.cuda.is_available() else "cpu" + + tok = AutoTokenizer.from_pretrained(a.model_name, use_fast=True) + model = AutoModelForSeq2SeqLM.from_pretrained(a.model_name) + model = attach_lora(model, a.lora_r, a.lora_alpha, a.lora_dropout) + model.config.use_cache = False # disable KV cache during training + model.to(dev) + + train_ds = BioSummDataset(split="train") + val_ds = BioSummDataset(split="validation") + + collate = Batchify(tok, a.max_input_len, a.max_target_len) + train_loader = DataLoader(train_ds, batch_size=a.batch_size, shuffle=True, collate_fn=collate) + val_loader = DataLoader(val_ds, batch_size=8, shuffle=False, collate_fn=collate) + + + optim = AdamW(model.parameters(), lr=a.lr, weight_decay=a.wd) # adam@ optimiser + total_updates = math.ceil(len(train_loader) / max(1, a.grad_accum)) * a.epochs # updates = round_up(batches per epoch /accum) * epochs + warm = min(a.warmup_steps, max(1, total_updates // 20)) + sched = get_linear_schedule_with_warmup(optim, num_warmup_steps=warm, num_training_steps=total_updates) + scaler = GradScaler(enabled=(a.fp16 and dev == "cuda")) + + # model peak prior to training + model_peak(model, tok, dev, train_ds, beams=a.val_beams, max_new=a.val_max_new_tokens) + + # we pass this as a function reference to our epoch trainer, runs every 500 steps. + def _probe(_step): + model_peak(model, tok, dev, train_ds, beams=a.val_beams, max_new=a.val_max_new_tokens) + + best = -1.0 + for ep in range(1, a.epochs + 1): + print(f"\nepoch {ep}/{a.epochs}") + tr_loss = run_one_epoch( + model, train_loader, optim, sched, scaler, dev, + a.grad_accum, a.fp16, log_every=a.grad_accum, step_hook=_probe + ) + print({"train_loss": round(float(tr_loss), 6)}) + + scores = score_rouge(model, tok, val_loader, dev, a.val_max_new_tokens, a.val_beams) + if scores: + msg = {k: round(v, 4) for k, v in scores.items()} + print({"val": msg}) + cur = scores.get("rougeLsum", scores.get("rougeL", -1.0)) + if cur > best: + best = cur + model.save_pretrained(a.out_dir) + tok.save_pretrained(a.out_dir) + # logging + print to show which epoch got saved + with open(os.path.join(a.out_dir, "best.json"), "w", encoding="utf-8") as f: + f.write(str({"epoch": ep, "metric": cur})) + print({"save": a.out_dir, "metric": round(cur, 4)}) + + final = score_rouge(model, tok, val_loader, dev, a.val_max_new_tokens, a.val_beams) + if final: + print({"final_val": {k: round(v, 4) for k, v in final.items()}}) + +if __name__ == "__main__": + main() From df166ca4853d9ca3321631044f0cc3c1ba28ee31 Mon Sep 17 00:00:00 2001 From: jac0be Date: Sat, 8 Nov 2025 22:30:21 +1000 Subject: [PATCH 08/31] Fixed repo structure. Also fixed issue in github where two jac0be accounts were attributed to my commits. --- flan-t5/dataset.py | 16 ---------------- flan-t5/model.py | 36 ------------------------------------ recognition/dataset.py | 16 ++++++++++++++++ recognition/modules.py | 36 ++++++++++++++++++++++++++++++++++++ 4 files changed, 52 insertions(+), 52 deletions(-) delete mode 100644 flan-t5/dataset.py delete mode 100644 flan-t5/model.py diff --git a/flan-t5/dataset.py b/flan-t5/dataset.py deleted file mode 100644 index 54564ab40..000000000 --- a/flan-t5/dataset.py +++ /dev/null @@ -1,16 +0,0 @@ -# Simple dataset handler -from datasets import load_dataset -from torch.utils.data import Dataset - -class BioSummDataset(Dataset): - def __init__(self, split="train"): - self.ds = load_dataset("BioLaySumm/BioLaySumm2025-LaymanRRG-opensource-track")[split] - - def __len__(self): - return len(self.ds) - - def __getitem__(self, i): - # we do not care about the image or source, only text - x = self.ds[i]["radiology_report"] - y = self.ds[i]["layman_report"] - return x, y \ No newline at end of file diff --git a/flan-t5/model.py b/flan-t5/model.py deleted file mode 100644 index 2dc363cd9..000000000 --- a/flan-t5/model.py +++ /dev/null @@ -1,36 +0,0 @@ -# from hugging face page on t5-base -from transformers import AutoTokenizer, AutoModelForSeq2SeqLM -from dataset import BioSummDataset - -MODEL_NAME = "google/flan-t5-large" -PROMPT = "Output the following word 3 times: 'ready'" - -tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) -model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME) - -device = "cuda" -model.to(device) - -inputs = tokenizer(PROMPT, return_tensors="pt").to(device) -output = model.generate(**inputs) - -print(tokenizer.decode(output[0], skip_special_tokens=True)) - -# Try to generate summary of first report - -ds = BioSummDataset(split="train") -rad_report, layman_sum = ds[0] - -PROMPT = ( - "You are a helpful medical assistant. Rewrite the radiology report for a layperson " - "in 1–3 sentences, avoid jargon, use plain language.\n\n" - f"Report:\n{rad_report}\n\nLayperson summary:" -) - -inputs = tokenizer(PROMPT, return_tensors="pt").to(device) -output = model.generate(**inputs) -pred = tokenizer.decode(output[0], skip_special_tokens=True) - -print("ORIGINAL REPORT \n", rad_report) -print("GENERATED \n", pred) -print("TRUE \n", layman_sum) diff --git a/recognition/dataset.py b/recognition/dataset.py index e69de29bb..54564ab40 100644 --- a/recognition/dataset.py +++ b/recognition/dataset.py @@ -0,0 +1,16 @@ +# Simple dataset handler +from datasets import load_dataset +from torch.utils.data import Dataset + +class BioSummDataset(Dataset): + def __init__(self, split="train"): + self.ds = load_dataset("BioLaySumm/BioLaySumm2025-LaymanRRG-opensource-track")[split] + + def __len__(self): + return len(self.ds) + + def __getitem__(self, i): + # we do not care about the image or source, only text + x = self.ds[i]["radiology_report"] + y = self.ds[i]["layman_report"] + return x, y \ No newline at end of file diff --git a/recognition/modules.py b/recognition/modules.py index e69de29bb..2dc363cd9 100644 --- a/recognition/modules.py +++ b/recognition/modules.py @@ -0,0 +1,36 @@ +# from hugging face page on t5-base +from transformers import AutoTokenizer, AutoModelForSeq2SeqLM +from dataset import BioSummDataset + +MODEL_NAME = "google/flan-t5-large" +PROMPT = "Output the following word 3 times: 'ready'" + +tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) +model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME) + +device = "cuda" +model.to(device) + +inputs = tokenizer(PROMPT, return_tensors="pt").to(device) +output = model.generate(**inputs) + +print(tokenizer.decode(output[0], skip_special_tokens=True)) + +# Try to generate summary of first report + +ds = BioSummDataset(split="train") +rad_report, layman_sum = ds[0] + +PROMPT = ( + "You are a helpful medical assistant. Rewrite the radiology report for a layperson " + "in 1–3 sentences, avoid jargon, use plain language.\n\n" + f"Report:\n{rad_report}\n\nLayperson summary:" +) + +inputs = tokenizer(PROMPT, return_tensors="pt").to(device) +output = model.generate(**inputs) +pred = tokenizer.decode(output[0], skip_special_tokens=True) + +print("ORIGINAL REPORT \n", rad_report) +print("GENERATED \n", pred) +print("TRUE \n", layman_sum) From 0d16dec060e5c6b62265a427eb443f06c4a3be65 Mon Sep 17 00:00:00 2001 From: jac0be Date: Sun, 9 Nov 2025 19:34:35 +1000 Subject: [PATCH 09/31] Added modules.py, which currently just builds and returns the base t5 model. --- recognition/modules.py | 54 +++++++++++++++--------------------------- 1 file changed, 19 insertions(+), 35 deletions(-) diff --git a/recognition/modules.py b/recognition/modules.py index 2dc363cd9..6825b7a7b 100644 --- a/recognition/modules.py +++ b/recognition/modules.py @@ -1,36 +1,20 @@ -# from hugging face page on t5-base +# modules.py from transformers import AutoTokenizer, AutoModelForSeq2SeqLM -from dataset import BioSummDataset - -MODEL_NAME = "google/flan-t5-large" -PROMPT = "Output the following word 3 times: 'ready'" - -tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) -model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME) - -device = "cuda" -model.to(device) - -inputs = tokenizer(PROMPT, return_tensors="pt").to(device) -output = model.generate(**inputs) - -print(tokenizer.decode(output[0], skip_special_tokens=True)) - -# Try to generate summary of first report - -ds = BioSummDataset(split="train") -rad_report, layman_sum = ds[0] - -PROMPT = ( - "You are a helpful medical assistant. Rewrite the radiology report for a layperson " - "in 1–3 sentences, avoid jargon, use plain language.\n\n" - f"Report:\n{rad_report}\n\nLayperson summary:" -) - -inputs = tokenizer(PROMPT, return_tensors="pt").to(device) -output = model.generate(**inputs) -pred = tokenizer.decode(output[0], skip_special_tokens=True) - -print("ORIGINAL REPORT \n", rad_report) -print("GENERATED \n", pred) -print("TRUE \n", layman_sum) +from peft import LoraConfig, get_peft_model, TaskType + +# returns fast tokenizer for seq2seq models +def load_tokenizer(model_name: str): + return AutoTokenizer.from_pretrained(model_name, use_fast=True) + +# builds and returns the base-flan-t5 with attached LoRA adapters. +def build_flan_t5_with_lora(model_name: str, r=8, alpha=16, dropout=0.05): + model = AutoModelForSeq2SeqLM.from_pretrained(model_name) + cfg = LoraConfig( + task_type=TaskType.SEQ_2_SEQ_LM, + r=r, + lora_alpha=alpha, + lora_dropout=dropout, + target_modules=["q", "k", "v", "o"], + bias="none", + ) + return get_peft_model(model, cfg) From d1df70136f920a33d995c3dae948dc1768e3b07d Mon Sep 17 00:00:00 2001 From: jac0be Date: Sun, 9 Nov 2025 20:16:02 +1000 Subject: [PATCH 10/31] Changed train.py to use the model generation in modules.py --- recognition/modules.py | 9 +++++++-- recognition/train.py | 20 +++++++++++--------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/recognition/modules.py b/recognition/modules.py index 6825b7a7b..861dca070 100644 --- a/recognition/modules.py +++ b/recognition/modules.py @@ -7,7 +7,7 @@ def load_tokenizer(model_name: str): return AutoTokenizer.from_pretrained(model_name, use_fast=True) # builds and returns the base-flan-t5 with attached LoRA adapters. -def build_flan_t5_with_lora(model_name: str, r=8, alpha=16, dropout=0.05): +def build_flan_t5_with_lora(model_name="google/flan-t5-base", r=8, alpha=16, dropout=0.05, use_cache=False, dev="cuda"): model = AutoModelForSeq2SeqLM.from_pretrained(model_name) cfg = LoraConfig( task_type=TaskType.SEQ_2_SEQ_LM, @@ -17,4 +17,9 @@ def build_flan_t5_with_lora(model_name: str, r=8, alpha=16, dropout=0.05): target_modules=["q", "k", "v", "o"], bias="none", ) - return get_peft_model(model, cfg) + + model = get_peft_model(model, cfg) + model.config.use_cache=use_cache + model.to(dev) + + return model diff --git a/recognition/train.py b/recognition/train.py index aa0d62d4e..2c12ad9fd 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -8,9 +8,11 @@ from torch.cuda.amp import GradScaler, autocast from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, get_linear_schedule_with_warmup from peft import LoraConfig, get_peft_model, TaskType -import evaluate +import evaluate # for rouge scoring +# Our codebase from dataset import BioSummDataset +from modules import load_tokenizer, build_flan_t5_with_lora PROMPT = ( "You are a helpful medical assistant. Rewrite the radiology report for a layperson " @@ -143,7 +145,8 @@ def run_one_epoch(model, loader, optim, sched, scaler, dev, accum, use_amp, log_ return total / max(1, steps) -# we peak at the model every 500 steps & ask it to generate a summary of the first report in the datset. +# we peak at the model every 500 steps & ask it to generate a summary of the first report in the dataset. +# this is only to visually confirm that the model is improving its summaries. @torch.no_grad() def model_peak(model, tok, dev, dataset, beams=4, max_new=128): @@ -173,11 +176,10 @@ def main(): set_seed(a.seed) dev = "cuda" if torch.cuda.is_available() else "cpu" - tok = AutoTokenizer.from_pretrained(a.model_name, use_fast=True) - model = AutoModelForSeq2SeqLM.from_pretrained(a.model_name) - model = attach_lora(model, a.lora_r, a.lora_alpha, a.lora_dropout) - model.config.use_cache = False # disable KV cache during training - model.to(dev) + tok = load_tokenizer(a.model_name) + model = build_flan_t5_with_lora( + model_name=a.model_name, r=a.lora_r, alpha=a.lora_alpha, dropout=a.lora_dropout # rest of params are left as default + ) train_ds = BioSummDataset(split="train") val_ds = BioSummDataset(split="validation") @@ -196,7 +198,7 @@ def main(): # model peak prior to training model_peak(model, tok, dev, train_ds, beams=a.val_beams, max_new=a.val_max_new_tokens) - # we pass this as a function reference to our epoch trainer, runs every 500 steps. + # we pass this _probe as a function reference to our epoch trainer, runs every 500 steps. def _probe(_step): model_peak(model, tok, dev, train_ds, beams=a.val_beams, max_new=a.val_max_new_tokens) @@ -205,7 +207,7 @@ def _probe(_step): print(f"\nepoch {ep}/{a.epochs}") tr_loss = run_one_epoch( model, train_loader, optim, sched, scaler, dev, - a.grad_accum, a.fp16, log_every=a.grad_accum, step_hook=_probe + a.grad_accum, a.fp16, log_every=a.grad_accum, step_hook=_probe # <- here ) print({"train_loss": round(float(tr_loss), 6)}) From cd324020559bb79471de907be5fb0f11f692c2bd Mon Sep 17 00:00:00 2001 From: jac0be Date: Sun, 9 Nov 2025 20:19:13 +1000 Subject: [PATCH 11/31] Fixed a bug where moving the model to cuda inside the helper caused device mismatch issues. --- recognition/modules.py | 8 ++------ recognition/train.py | 6 +++--- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/recognition/modules.py b/recognition/modules.py index 861dca070..6a957b567 100644 --- a/recognition/modules.py +++ b/recognition/modules.py @@ -7,7 +7,7 @@ def load_tokenizer(model_name: str): return AutoTokenizer.from_pretrained(model_name, use_fast=True) # builds and returns the base-flan-t5 with attached LoRA adapters. -def build_flan_t5_with_lora(model_name="google/flan-t5-base", r=8, alpha=16, dropout=0.05, use_cache=False, dev="cuda"): +def build_flan_t5_with_lora(model_name="google/flan-t5-base", r=8, alpha=16, dropout=0.05): model = AutoModelForSeq2SeqLM.from_pretrained(model_name) cfg = LoraConfig( task_type=TaskType.SEQ_2_SEQ_LM, @@ -18,8 +18,4 @@ def build_flan_t5_with_lora(model_name="google/flan-t5-base", r=8, alpha=16, dro bias="none", ) - model = get_peft_model(model, cfg) - model.config.use_cache=use_cache - model.to(dev) - - return model + return get_peft_model(model, cfg) diff --git a/recognition/train.py b/recognition/train.py index 2c12ad9fd..fc65f785e 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -75,7 +75,6 @@ def attach_lora(model, r, alpha, drop): ) return get_peft_model(model, cfg) - @torch.no_grad() def score_rouge(model, tok, loader, dev, max_new_tokens, beams): @@ -104,7 +103,6 @@ def score_rouge(model, tok, loader, dev, max_new_tokens, beams): return {k: float(out[k]) for k in ("rouge1","rouge2","rougeL","rougeLsum") if k in out} - def run_one_epoch(model, loader, optim, sched, scaler, dev, accum, use_amp, log_every=50, step_hook=None): model.train() @@ -178,8 +176,10 @@ def main(): tok = load_tokenizer(a.model_name) model = build_flan_t5_with_lora( - model_name=a.model_name, r=a.lora_r, alpha=a.lora_alpha, dropout=a.lora_dropout # rest of params are left as default + model_name=a.model_name, r=a.lora_r, alpha=a.lora_alpha, dropout=a.lora_dropout ) + model.config.use_cache = False + model.to(dev) train_ds = BioSummDataset(split="train") val_ds = BioSummDataset(split="validation") From 7a56000f2f917e4e8a4b45e51803de71a839dfdd Mon Sep 17 00:00:00 2001 From: jac0be Date: Sun, 9 Nov 2025 20:50:31 +1000 Subject: [PATCH 12/31] Added held-out test split and saved ROUGE metrics to runs dir. --- recognition/modules.py | 1 + recognition/train.py | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/recognition/modules.py b/recognition/modules.py index 6a957b567..27294b5cb 100644 --- a/recognition/modules.py +++ b/recognition/modules.py @@ -14,6 +14,7 @@ def build_flan_t5_with_lora(model_name="google/flan-t5-base", r=8, alpha=16, dro r=r, lora_alpha=alpha, lora_dropout=dropout, + # NOTE: these match t5's projection layers target_modules=["q", "k", "v", "o"], bias="none", ) diff --git a/recognition/train.py b/recognition/train.py index fc65f785e..3ffaac5c0 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -64,17 +64,6 @@ def __call__(self, batch): labels[labels == self.pad_id] = -100 return {"input_ids": enc["input_ids"], "attention_mask": enc["attention_mask"], "labels": labels} - -def attach_lora(model, r, alpha, drop): - cfg = LoraConfig( - task_type=TaskType.SEQ_2_SEQ_LM, - r=r, lora_alpha=alpha, lora_dropout=drop, - # NOTE: these match t5's projection layers - target_modules=["q","k","v","o"], - bias="none" - ) - return get_peft_model(model, cfg) - @torch.no_grad() def score_rouge(model, tok, loader, dev, max_new_tokens, beams): @@ -183,10 +172,13 @@ def main(): train_ds = BioSummDataset(split="train") val_ds = BioSummDataset(split="validation") + test_ds = BioSummDataset(split="test") collate = Batchify(tok, a.max_input_len, a.max_target_len) train_loader = DataLoader(train_ds, batch_size=a.batch_size, shuffle=True, collate_fn=collate) val_loader = DataLoader(val_ds, batch_size=8, shuffle=False, collate_fn=collate) + test_loader = DataLoader(test_ds, batch_size=8, shuffle=False, collate_fn=collate) + optim = AdamW(model.parameters(), lr=a.lr, weight_decay=a.wd) # adam@ optimiser @@ -225,9 +217,17 @@ def _probe(_step): f.write(str({"epoch": ep, "metric": cur})) print({"save": a.out_dir, "metric": round(cur, 4)}) - final = score_rouge(model, tok, val_loader, dev, a.val_max_new_tokens, a.val_beams) - if final: - print({"final_val": {k: round(v, 4) for k, v in final.items()}}) + # Eval: Validation + final_val = score_rouge(model, tok, val_loader, dev, a.val_max_new_tokens, a.val_beams) + print({"final_val": {k: round(v, 4) for k, v in final_val.items()}}) + # Eval: Test + final_test = score_rouge(model, tok, test_loader, dev, a.val_max_new_tokens, a.val_beams) + print({"final_test": {k: round(v, 4) for k, v in final_test.items()}}) + with open(os.path.join(a.out_dir, "test_metrics.json"), "w", encoding="utf-8") as f: + # we log for test + import json + json.dump({k: float(v) for k, v in final_test.items()}, f, indent=2) + if __name__ == "__main__": main() From 75467dd735515b2cd0b06eb89ab5c53e1f444917 Mon Sep 17 00:00:00 2001 From: jac0be Date: Sun, 9 Nov 2025 20:58:23 +1000 Subject: [PATCH 13/31] Removed unused imports. --- recognition/train.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/recognition/train.py b/recognition/train.py index 3ffaac5c0..b4da02c93 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -1,13 +1,12 @@ # train.py # flan t5 base + LORA training -import os, math, time, argparse, random +import os, math, time, argparse, random, json import numpy as np import torch from torch.utils.data import DataLoader from torch.optim import AdamW from torch.cuda.amp import GradScaler, autocast -from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, get_linear_schedule_with_warmup -from peft import LoraConfig, get_peft_model, TaskType +from transformers import get_linear_schedule_with_warmup import evaluate # for rouge scoring # Our codebase @@ -179,8 +178,6 @@ def main(): val_loader = DataLoader(val_ds, batch_size=8, shuffle=False, collate_fn=collate) test_loader = DataLoader(test_ds, batch_size=8, shuffle=False, collate_fn=collate) - - optim = AdamW(model.parameters(), lr=a.lr, weight_decay=a.wd) # adam@ optimiser total_updates = math.ceil(len(train_loader) / max(1, a.grad_accum)) * a.epochs # updates = round_up(batches per epoch /accum) * epochs warm = min(a.warmup_steps, max(1, total_updates // 20)) From 06acccb279a6419a3ae372a246fc557bbccac63f Mon Sep 17 00:00:00 2001 From: jac0be Date: Sun, 9 Nov 2025 21:14:59 +1000 Subject: [PATCH 14/31] Added logging of: parameter counts, GPU info, training time, as well as other training details to train_report.json in run dir. --- recognition/modules.py | 2 +- recognition/train.py | 54 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 53 insertions(+), 3 deletions(-) diff --git a/recognition/modules.py b/recognition/modules.py index 27294b5cb..6b7cc9d37 100644 --- a/recognition/modules.py +++ b/recognition/modules.py @@ -19,4 +19,4 @@ def build_flan_t5_with_lora(model_name="google/flan-t5-base", r=8, alpha=16, dro bias="none", ) - return get_peft_model(model, cfg) + return get_peft_model(model, cfg) # we convert the model to cuda outside this function, to prevent device mismatch issues \ No newline at end of file diff --git a/recognition/train.py b/recognition/train.py index b4da02c93..3a609f509 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -1,5 +1,5 @@ # train.py -# flan t5 base + LORA training +# flan t5 base + LORA training. import os, math, time, argparse, random, json import numpy as np import torch @@ -91,6 +91,12 @@ def score_rouge(model, tok, loader, dev, max_new_tokens, beams): return {k: float(out[k]) for k in ("rouge1","rouge2","rougeL","rougeLsum") if k in out} +# small helper for logging model params +def param_counts(m): + total = sum(p.numel() for p in m.parameters()) + trainable = sum(p.numel() for p in m.parameters() if p.requires_grad) + return total, trainable + def run_one_epoch(model, loader, optim, sched, scaler, dev, accum, use_amp, log_every=50, step_hook=None): model.train() @@ -162,6 +168,8 @@ def main(): set_seed(a.seed) dev = "cuda" if torch.cuda.is_available() else "cpu" + t_start = time.time() # for logging + tok = load_tokenizer(a.model_name) model = build_flan_t5_with_lora( model_name=a.model_name, r=a.lora_r, alpha=a.lora_alpha, dropout=a.lora_dropout @@ -191,12 +199,28 @@ def main(): def _probe(_step): model_peak(model, tok, dev, train_ds, beams=a.val_beams, max_new=a.val_max_new_tokens) + total_params, trainable_params = param_counts(model) + + # Get gpu name + vram for final report + gpu_name, vram_gb = None, None + if dev == "cuda": + try: + gpu_name = torch.cuda.get_device_name(0) + except Exception: + gpu_name = "unknown" + try: + _, total = torch.cuda.mem_get_info() + vram_gb = round(total / (1024**3), 2) + except Exception: + vram_gb = None + + # TRAINING LOOP best = -1.0 for ep in range(1, a.epochs + 1): print(f"\nepoch {ep}/{a.epochs}") tr_loss = run_one_epoch( model, train_loader, optim, sched, scaler, dev, - a.grad_accum, a.fp16, log_every=a.grad_accum, step_hook=_probe # <- here + a.grad_accum, a.fp16, log_every=a.grad_accum, step_hook=_probe # <- model peak here ) print({"train_loss": round(float(tr_loss), 6)}) @@ -213,6 +237,7 @@ def _probe(_step): with open(os.path.join(a.out_dir, "best.json"), "w", encoding="utf-8") as f: f.write(str({"epoch": ep, "metric": cur})) print({"save": a.out_dir, "metric": round(cur, 4)}) + # TRAINING DONE! # Eval: Validation final_val = score_rouge(model, tok, val_loader, dev, a.val_max_new_tokens, a.val_beams) @@ -225,6 +250,31 @@ def _probe(_step): import json json.dump({k: float(v) for k, v in final_test.items()}, f, indent=2) + + t_total = round(time.time() - t_start, 2) + + # dump a report after all epochs. Only static model + system details here. + report = { + "model_name": a.model_name, + "total_params": int(total_params), + "trainable_params": int(trainable_params), + "lora_r": a.lora_r, + "lora_alpha": a.lora_alpha, + "lora_dropout": a.lora_dropout, + "gpu_name": gpu_name, + "gpu_vram_gb": vram_gb, + "epochs": a.epochs, + "batch_size": a.batch_size, + "grad_accum": a.grad_accum, + "warmup_steps": a.warmup_steps, + "lr": a.lr, + "weight_decay": a.wd, + "total_training_seconds": t_total, + } + with open(os.path.join(a.out_dir, "train_report.json"), "w", encoding="utf-8") as f: + json.dump(report, f, indent=2) + print({"train_report": report}) + if __name__ == "__main__": main() From b02f7153bf6671c2e931842e4515ece6276fc3b8 Mon Sep 17 00:00:00 2001 From: jac0be Date: Sun, 9 Nov 2025 22:28:58 +1000 Subject: [PATCH 15/31] Added json logging for loss / val metrics. Also CSV/plot outputs. Loss and rouge histories get saved to json files as training runs, in case we need to recreate the plots. Also minor comment clean ups. --- recognition/train.py | 90 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 76 insertions(+), 14 deletions(-) diff --git a/recognition/train.py b/recognition/train.py index 3a609f509..173d76f6a 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -97,7 +97,7 @@ def param_counts(m): trainable = sum(p.numel() for p in m.parameters() if p.requires_grad) return total, trainable -def run_one_epoch(model, loader, optim, sched, scaler, dev, accum, use_amp, log_every=50, step_hook=None): +def run_one_epoch(model, loader, optim, sched, scaler, dev, accum, use_amp, log_every=50, loss_hist=None, loss_json_path=None, step_hook=None): model.train() total, shown, t0 = 0.0, 0.0, time.time() @@ -129,21 +129,29 @@ def run_one_epoch(model, loader, optim, sched, scaler, dev, accum, use_amp, log_ if step_hook is not None and (steps % 500 == 0): step_hook(steps) + # logging loss, default is to log every 50 steps if steps % log_every == 0: dt = time.time() - t0 mean_loss = shown / log_every print({"step": steps, "loss": round(mean_loss, 6), "sec": round(dt, 2)}) + loss_hist.append({"step": steps, "loss": float(mean_loss)}) + + # append loss hist to json, so we can recreate plots + if loss_json_path is not None: + with open(loss_json_path, "a", encoding="utf-8") as jf: + jf.write(json.dumps({"step": int(steps), "loss": float(mean_loss)}) + "\n") + shown = 0.0; t0 = time.time() + return total / max(1, steps) -# we peak at the model every 500 steps & ask it to generate a summary of the first report in the dataset. -# this is only to visually confirm that the model is improving its summaries. +# sanity check - we peak at the model every 500 steps & ask it to generate a summary of the first report in the dataset. @torch.no_grad() def model_peak(model, tok, dev, dataset, beams=4, max_new=128): model.eval() - x, y = dataset[0] + x, y = dataset[0] # we pick the same report each time so we can see how it improves enc = tok([PROMPT.format(rad_report=x)], return_tensors="pt", truncation=True, max_length=1024).to(dev) out = model.generate( @@ -159,16 +167,17 @@ def model_peak(model, tok, dev, dataset, beams=4, max_new=128): print(f"Radiology Report: \n{x}") print(f"True: \n {y}") print(f"LLM: \n {pred}") - print("----------------------------") + print("-----------------------------") def main(): a = args_parse() os.makedirs(a.out_dir, exist_ok=True) + set_seed(a.seed) dev = "cuda" if torch.cuda.is_available() else "cpu" - t_start = time.time() # for logging + t_start = time.time() # for logging train time tok = load_tokenizer(a.model_name) model = build_flan_t5_with_lora( @@ -192,6 +201,13 @@ def main(): sched = get_linear_schedule_with_warmup(optim, num_warmup_steps=warm, num_training_steps=total_updates) scaler = GradScaler(enabled=(a.fp16 and dev == "cuda")) + # log loss and val + loss_hist = [] + val_hist = [] + # we also save the histories so we can recreate the plots if needed. + loss_json_path = os.path.join(a.out_dir, "train_loss.jsonl") + val_json_path = os.path.join(a.out_dir, "val_rouge.jsonl") + # model peak prior to training model_peak(model, tok, dev, train_ds, beams=a.val_beams, max_new=a.val_max_new_tokens) @@ -219,8 +235,9 @@ def _probe(_step): for ep in range(1, a.epochs + 1): print(f"\nepoch {ep}/{a.epochs}") tr_loss = run_one_epoch( - model, train_loader, optim, sched, scaler, dev, - a.grad_accum, a.fp16, log_every=a.grad_accum, step_hook=_probe # <- model peak here + model, train_loader, optim, sched, scaler, dev, a.grad_accum, a.fp16, # training stuff + log_every=50, loss_hist=loss_hist, loss_json_path=loss_json_path, # logging stuff + step_hook=_probe # < - model peak here ) print({"train_loss": round(float(tr_loss), 6)}) @@ -228,16 +245,23 @@ def _probe(_step): if scores: msg = {k: round(v, 4) for k, v in scores.items()} print({"val": msg}) + row = {"epoch": ep, **{k: float(v) for k, v in scores.items()}} + val_hist.append(row) + + # write json + with open(val_json_path, "a", encoding="utf-8") as jf: + jf.write(json.dumps(row) + "\n") + cur = scores.get("rougeLsum", scores.get("rougeL", -1.0)) if cur > best: best = cur - model.save_pretrained(a.out_dir) + model.save_pretrained(a.out_dir) # model epoch checkpoint tok.save_pretrained(a.out_dir) - # logging + print to show which epoch got saved + # logging + print to show output dir with open(os.path.join(a.out_dir, "best.json"), "w", encoding="utf-8") as f: f.write(str({"epoch": ep, "metric": cur})) print({"save": a.out_dir, "metric": round(cur, 4)}) - # TRAINING DONE! + # ALL EPOCHS DONE! # Eval: Validation final_val = score_rouge(model, tok, val_loader, dev, a.val_max_new_tokens, a.val_beams) @@ -247,10 +271,49 @@ def _probe(_step): print({"final_test": {k: round(v, 4) for k, v in final_test.items()}}) with open(os.path.join(a.out_dir, "test_metrics.json"), "w", encoding="utf-8") as f: # we log for test - import json json.dump({k: float(v) for k, v in final_test.items()}, f, indent=2) - + # write CSVs and simple PNGs + try: + import csv, matplotlib.pyplot as plt + loss_csv = os.path.join(a.out_dir, "train_loss.csv") + with open(loss_csv, "w", newline="", encoding="utf-8") as f: + w = csv.DictWriter(f, fieldnames=["step", "loss"]) + w.writeheader() + w.writerows(loss_hist) + + val_csv = os.path.join(a.out_dir, "val_rouge.csv") + if val_hist: + fields = sorted({k for d in val_hist for k in d.keys()}) + with open(val_csv, "w", newline="", encoding="utf-8") as f: + w = csv.DictWriter(f, fieldnames=fields) + w.writeheader() + w.writerows(val_hist) + + # loss plot + if loss_hist: + plt.figure() + plt.plot([d["step"] for d in loss_hist], [d["loss"] for d in loss_hist]) + plt.xlabel("step"); plt.ylabel("loss"); plt.title("train loss") + plt.tight_layout() + plt.savefig(os.path.join(a.out_dir, "train_loss.png")) + plt.close() + + # plot and log all the rouge metrics + if val_hist: + for metric_key in ["rouge1", "rouge2", "rougeL", "rougeLsum"]: + plt.figure() + xs = [d["epoch"] for d in val_hist] + ys = [d.get(metric_key, 0.0) for d in val_hist] + plt.plot(xs, ys) + plt.xlabel("epoch"); plt.ylabel(metric_key); plt.title(f"validation {metric_key}") + plt.tight_layout() + plt.savefig(os.path.join(a.out_dir, f"val_{metric_key}.png")) + plt.close() + + except Exception as e: + print({"warn": "plotting failed", "err": str(e)}) + t_total = round(time.time() - t_start, 2) # dump a report after all epochs. Only static model + system details here. @@ -275,6 +338,5 @@ def _probe(_step): json.dump(report, f, indent=2) print({"train_report": report}) - if __name__ == "__main__": main() From 88b2524d75bc1a4cf021d8858e1ff89b6c9324e7 Mon Sep 17 00:00:00 2001 From: jac0be Date: Sun, 9 Nov 2025 22:31:47 +1000 Subject: [PATCH 16/31] Refactored csv + plot generation into a seperate helper function. --- recognition/train.py | 80 ++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/recognition/train.py b/recognition/train.py index 173d76f6a..49e4d5684 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -97,6 +97,45 @@ def param_counts(m): trainable = sum(p.numel() for p in m.parameters() if p.requires_grad) return total, trainable +# helper function to make plots and save them. +def save_curves_and_plots(out_dir, loss_hist, val_hist): + try: + import csv, matplotlib.pyplot as plt + loss_csv = os.path.join(out_dir, "train_loss.csv") + with open(loss_csv, "w", newline="", encoding="utf-8") as f: + w = csv.DictWriter(f, fieldnames=["step", "loss"]) + w.writeheader() + w.writerows(loss_hist) + + val_csv = os.path.join(out_dir, "val_rouge.csv") + if val_hist: + fields = sorted({k for d in val_hist for k in d.keys()}) + with open(val_csv, "w", newline="", encoding="utf-8") as f: + w = csv.DictWriter(f, fieldnames=fields) + w.writeheader() + w.writerows(val_hist) + + if loss_hist: + plt.figure() + plt.plot([d["step"] for d in loss_hist], [d["loss"] for d in loss_hist]) + plt.xlabel("step"); plt.ylabel("loss"); plt.title("train loss") + plt.tight_layout() + plt.savefig(os.path.join(out_dir, "train_loss.png")) + plt.close() + + if val_hist: + for metric_key in ["rouge1", "rouge2", "rougeL", "rougeLsum"]: + plt.figure() + xs = [d["epoch"] for d in val_hist] + ys = [d.get(metric_key, 0.0) for d in val_hist] + plt.plot(xs, ys) + plt.xlabel("epoch"); plt.ylabel(metric_key); plt.title(f"validation {metric_key}") + plt.tight_layout() + plt.savefig(os.path.join(out_dir, f"val_{metric_key}.png")) + plt.close() + except Exception as e: + print({"warn": "plotting failed", "err": str(e)}) + def run_one_epoch(model, loader, optim, sched, scaler, dev, accum, use_amp, log_every=50, loss_hist=None, loss_json_path=None, step_hook=None): model.train() @@ -273,46 +312,7 @@ def _probe(_step): # we log for test json.dump({k: float(v) for k, v in final_test.items()}, f, indent=2) - # write CSVs and simple PNGs - try: - import csv, matplotlib.pyplot as plt - loss_csv = os.path.join(a.out_dir, "train_loss.csv") - with open(loss_csv, "w", newline="", encoding="utf-8") as f: - w = csv.DictWriter(f, fieldnames=["step", "loss"]) - w.writeheader() - w.writerows(loss_hist) - - val_csv = os.path.join(a.out_dir, "val_rouge.csv") - if val_hist: - fields = sorted({k for d in val_hist for k in d.keys()}) - with open(val_csv, "w", newline="", encoding="utf-8") as f: - w = csv.DictWriter(f, fieldnames=fields) - w.writeheader() - w.writerows(val_hist) - - # loss plot - if loss_hist: - plt.figure() - plt.plot([d["step"] for d in loss_hist], [d["loss"] for d in loss_hist]) - plt.xlabel("step"); plt.ylabel("loss"); plt.title("train loss") - plt.tight_layout() - plt.savefig(os.path.join(a.out_dir, "train_loss.png")) - plt.close() - - # plot and log all the rouge metrics - if val_hist: - for metric_key in ["rouge1", "rouge2", "rougeL", "rougeLsum"]: - plt.figure() - xs = [d["epoch"] for d in val_hist] - ys = [d.get(metric_key, 0.0) for d in val_hist] - plt.plot(xs, ys) - plt.xlabel("epoch"); plt.ylabel(metric_key); plt.title(f"validation {metric_key}") - plt.tight_layout() - plt.savefig(os.path.join(a.out_dir, f"val_{metric_key}.png")) - plt.close() - - except Exception as e: - print({"warn": "plotting failed", "err": str(e)}) + save_curves_and_plots(a.out_dir, loss_hist, val_hist) t_total = round(time.time() - t_start, 2) From fafd8c2540ac6a69ed8f62962a1c815370e94b26 Mon Sep 17 00:00:00 2001 From: jac0be Date: Mon, 10 Nov 2025 17:56:56 +1000 Subject: [PATCH 17/31] Added a simple predict.py that uses the best saved checkpoint to summarise arbitrary reports. --- recognition/predict.py | 36 ++++++++++++++++++++++++++++++++++++ recognition/train.py | 2 ++ 2 files changed, 38 insertions(+) diff --git a/recognition/predict.py b/recognition/predict.py index e69de29bb..fdfbe6994 100644 --- a/recognition/predict.py +++ b/recognition/predict.py @@ -0,0 +1,36 @@ +import torch +from transformers import AutoTokenizer, AutoModelForSeq2SeqLM + +DEFAULT_PROMPT = ( + "You are a helpful medical assistant. Rewrite the radiology report for a layperson " + "in 1–3 sentences, avoid jargon, use plain language.\n\n" + "Report:\n{rad_report}\n\nLayperson summary:" +) + +@torch.no_grad() +def predict(report_text, ckpt_dir="runs/flan_t5_lora", prompt=None, beams=4, max_new=128): + dev = "cuda" if torch.cuda.is_available() else "cpu" + tok = AutoTokenizer.from_pretrained(ckpt_dir, use_fast=True) + model = AutoModelForSeq2SeqLM.from_pretrained(ckpt_dir).to(dev).eval() + + p = (prompt or DEFAULT_PROMPT).format(rad_report=report_text) + enc = tok([p], return_tensors="pt", truncation=True, max_length=1024).to(dev) + out = model.generate( + **enc, + max_new_tokens=max_new, + num_beams=beams, + early_stopping=True + ) + return tok.batch_decode(out, skip_special_tokens=True)[0] + +@torch.no_grad() +def preview(model, tok, dev, report_text, ref=None, prompt=None, beams=4, max_new=128): + p = (prompt or DEFAULT_PROMPT).format(rad_report=report_text) + enc = tok([p], return_tensors="pt", truncation=True, max_length=1024).to(dev) + out = model.generate(**enc, max_new_tokens=max_new, num_beams=beams, early_stopping=True) + pred = tok.batch_decode(out, skip_special_tokens=True)[0] + print("---------PREVIEW----------") + print(f"Report:\n{report_text}\n") + if ref: print(f"True:\n{ref}\n") + print(f"Pred:\n{pred}\n--------------------------") + return pred diff --git a/recognition/train.py b/recognition/train.py index 49e4d5684..f3a249a10 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -136,6 +136,7 @@ def save_curves_and_plots(out_dir, loss_hist, val_hist): except Exception as e: print({"warn": "plotting failed", "err": str(e)}) +# Epoch logic: 150k rows def run_one_epoch(model, loader, optim, sched, scaler, dev, accum, use_amp, log_every=50, loss_hist=None, loss_json_path=None, step_hook=None): model.train() @@ -340,3 +341,4 @@ def _probe(_step): if __name__ == "__main__": main() + From c3f485f172b3c715f0e8c347727d528561615bd6 Mon Sep 17 00:00:00 2001 From: jac0be Date: Tue, 11 Nov 2025 04:25:43 +1000 Subject: [PATCH 18/31] Added an interactive chat interface for predict.py --- recognition/predict.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/recognition/predict.py b/recognition/predict.py index fdfbe6994..c7b82af5f 100644 --- a/recognition/predict.py +++ b/recognition/predict.py @@ -1,3 +1,4 @@ +# predict.py import torch from transformers import AutoTokenizer, AutoModelForSeq2SeqLM @@ -34,3 +35,15 @@ def preview(model, tok, dev, report_text, ref=None, prompt=None, beams=4, max_ne if ref: print(f"True:\n{ref}\n") print(f"Pred:\n{pred}\n--------------------------") return pred + +def main(): + print("Chat with your FLAN-T5 model. Type 'exit' to quit.\n") + while True: + msg = input("You: ").strip() + if msg.lower() in {"exit", "quit"}: + break + reply = predict(msg) + print("Model:", reply, "\n") + +if __name__ == "__main__": + main() From 8b51fe3e891c0bea048a417f86a7d24262779de3 Mon Sep 17 00:00:00 2001 From: jac0be Date: Wed, 12 Nov 2025 23:28:58 +1000 Subject: [PATCH 19/31] Made eval.py and moved the evaluation to post-training. Also made main scripts for dataset.py and predict.py which acts as a chat bot. --- recognition/dataset.py | 12 +++- recognition/eval.py | 142 +++++++++++++++++++++++++++++++++++++++++ recognition/predict.py | 9 ++- recognition/train.py | 56 ++-------------- 4 files changed, 166 insertions(+), 53 deletions(-) create mode 100644 recognition/eval.py diff --git a/recognition/dataset.py b/recognition/dataset.py index 54564ab40..2b0598911 100644 --- a/recognition/dataset.py +++ b/recognition/dataset.py @@ -13,4 +13,14 @@ def __getitem__(self, i): # we do not care about the image or source, only text x = self.ds[i]["radiology_report"] y = self.ds[i]["layman_report"] - return x, y \ No newline at end of file + return x, y + +# Test main: prints out the first 10 in the dataset +if __name__ == "__main__": + train_ds = BioSummDataset(split="train") + val_ds = BioSummDataset(split="validation") + test_ds = BioSummDataset(split="test") + for i in range(0, 10): + print(f"Train [{i}]: {train_ds[i][0]}") + print(f"Val [{i}]: {val_ds[i][0]}") + print(f"Test [{i}]: {test_ds[i][0]}") \ No newline at end of file diff --git a/recognition/eval.py b/recognition/eval.py new file mode 100644 index 000000000..72fba9dcb --- /dev/null +++ b/recognition/eval.py @@ -0,0 +1,142 @@ +# eval.py +# Computes plots and csvs using logged data from the training run. +import os, sys, shutil + +def save_curves_and_plots_from_run(run_dir: str): + """ + Rebuild CSVs and plots using the jsonl logs in a run-like directory (e.g., eval/). + Handles repeated 'step' values by constructing a monotonic 'gstep' and an inferred 'epoch'. + """ + import csv, json + import matplotlib.pyplot as plt + import os + + tl_jsonl = os.path.join(run_dir, "train_loss.jsonl") + vr_jsonl = os.path.join(run_dir, "val_rouge.jsonl") + + # Load train loss + raw_loss = [] + if os.path.isfile(tl_jsonl): + with open(tl_jsonl, "r", encoding="utf-8") as f: + for line in f: + line = line.strip() + if not line: + continue + try: + obj = json.loads(line) + raw_loss.append({"step": int(obj.get("step", 0)), + "loss": float(obj.get("loss", 0.0))}) + except Exception: + pass + + # Rebuild epoch + global step + loss_hist = [] + if raw_loss: + epoch = 1 + prev_step = -1 + carry = 0 + last_epoch_max = 0 + + for r in raw_loss: + s = r["step"] + # detect wrap (new epoch) when step doesn't increase + if s <= prev_step: + carry += max(last_epoch_max, prev_step) + last_epoch_max = 0 + epoch += 1 + last_epoch_max = max(last_epoch_max, s) + gstep = carry + s + loss_hist.append({"epoch": epoch, "step": s, "gstep": gstep, "loss": r["loss"]}) + prev_step = s + + # Load validation rouge + val_hist = [] + if os.path.isfile(vr_jsonl): + with open(vr_jsonl, "r", encoding="utf-8") as f: + for line in f: + line = line.strip() + if not line: + continue + try: + obj = json.loads(line) + row = {"epoch": int(obj.get("epoch", 0))} + for k in ("rouge1", "rouge2", "rougeL", "rougeLsum"): + if k in obj: + row[k] = float(obj[k]) + val_hist.append(row) + except Exception: + pass + + # Write CSVs + if loss_hist: + loss_csv = os.path.join(run_dir, "train_loss.csv") + with open(loss_csv, "w", newline="", encoding="utf-8") as f: + w = csv.DictWriter(f, fieldnames=["epoch", "step", "gstep", "loss"]) + w.writeheader() + # already chronological, ensure by gstep + w.writerows(sorted(loss_hist, key=lambda d: d["gstep"])) + + if val_hist: + fields = sorted({k for d in val_hist for k in d.keys()}) + val_csv = os.path.join(run_dir, "val_rouge.csv") + with open(val_csv, "w", newline="", encoding="utf-8") as f: + w = csv.DictWriter(f, fieldnames=fields) + w.writeheader() + w.writerows(sorted(val_hist, key=lambda d: d.get("epoch", 0))) + + # Create Plots + if loss_hist: + xs = [d["gstep"] for d in loss_hist] + ys = [d["loss"] for d in loss_hist] + plt.figure() + plt.plot(xs, ys) + plt.xlabel("global step"); plt.ylabel("loss"); plt.title("train loss") + plt.tight_layout() + plt.savefig(os.path.join(run_dir, "train_loss.png")) + plt.close() + + if val_hist: + # single plot, multiple lines (rouge1, rouge2, rougeL, rougeLsum) vs epoch + epochs = [d.get("epoch", 0) for d in val_hist] + metrics = ["rouge1", "rouge2", "rougeL", "rougeLsum"] + + plt.figure() + for metric_key in metrics: + ys = [d.get(metric_key, 0.0) for d in val_hist] + plt.plot(epochs, ys, marker="o", label=metric_key) + plt.xlabel("epoch") + plt.ylabel("ROUGE score") + plt.title("validation ROUGE over epochs") + plt.legend() + plt.tight_layout() + plt.savefig(os.path.join(run_dir, "val_rouge.png")) + plt.close() + +def main(): + if len(sys.argv) != 2: + print("Usage: python eval.py ") + sys.exit(1) + + run_dir = sys.argv[1] + if not os.path.isdir(run_dir): + print(f"Error: '{run_dir}' is not a valid directory") + sys.exit(1) + + run_name = os.path.basename(os.path.normpath(run_dir)) + eval_dir = os.path.join("eval", run_name) + + # create eval/run_name folder, copy jsonls so function can read them + os.makedirs(eval_dir, exist_ok=True) + for fname in ("train_loss.jsonl", "val_rouge.jsonl"): + src = os.path.join(run_dir, fname) + dst = os.path.join(eval_dir, fname) + if os.path.isfile(src): + shutil.copy2(src, dst) + + print(f"Rebuilding plots into {eval_dir} ...") + save_curves_and_plots_from_run(eval_dir) + print(f"Done. Outputs saved under {eval_dir}") + +# Usage: python eval.py runs/flan-t5-lora +if __name__ == "__main__": + main() diff --git a/recognition/predict.py b/recognition/predict.py index c7b82af5f..aa9ad533f 100644 --- a/recognition/predict.py +++ b/recognition/predict.py @@ -1,5 +1,7 @@ # predict.py +# import torch +import sys from transformers import AutoTokenizer, AutoModelForSeq2SeqLM DEFAULT_PROMPT = ( @@ -36,13 +38,16 @@ def preview(model, tok, dev, report_text, ref=None, prompt=None, beams=4, max_ne print(f"Pred:\n{pred}\n--------------------------") return pred +# Usage: python predict.py [OPTIONAL:directory of trained model, uses default if unspecified] def main(): - print("Chat with your FLAN-T5 model. Type 'exit' to quit.\n") + ckpt_dir = sys.argv[1] if len(sys.argv) > 1 else "runs/flan_t5_lora" + + print(f"Chat with your FLAN-T5 model ({ckpt_dir}). Type 'exit' to quit.\n") while True: msg = input("You: ").strip() if msg.lower() in {"exit", "quit"}: break - reply = predict(msg) + reply = predict(msg, ckpt_dir=ckpt_dir) print("Model:", reply, "\n") if __name__ == "__main__": diff --git a/recognition/train.py b/recognition/train.py index f3a249a10..0ae05ebf4 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -22,8 +22,8 @@ def args_parse(): p = argparse.ArgumentParser() p.add_argument("--model_name", default="google/flan-t5-base") - p.add_argument("--out_dir", default="runs/flan_t5_lora") - p.add_argument("--epochs", type=int, default=3) + p.add_argument("--out_dir", default="runs/flan_t5_lora_long_12_11") + p.add_argument("--epochs", type=int, default=10) p.add_argument("--lr", type=float, default=2e-4) p.add_argument("--wd", type=float, default=0.01) p.add_argument("--warmup_steps", type=int, default=1000) @@ -97,45 +97,6 @@ def param_counts(m): trainable = sum(p.numel() for p in m.parameters() if p.requires_grad) return total, trainable -# helper function to make plots and save them. -def save_curves_and_plots(out_dir, loss_hist, val_hist): - try: - import csv, matplotlib.pyplot as plt - loss_csv = os.path.join(out_dir, "train_loss.csv") - with open(loss_csv, "w", newline="", encoding="utf-8") as f: - w = csv.DictWriter(f, fieldnames=["step", "loss"]) - w.writeheader() - w.writerows(loss_hist) - - val_csv = os.path.join(out_dir, "val_rouge.csv") - if val_hist: - fields = sorted({k for d in val_hist for k in d.keys()}) - with open(val_csv, "w", newline="", encoding="utf-8") as f: - w = csv.DictWriter(f, fieldnames=fields) - w.writeheader() - w.writerows(val_hist) - - if loss_hist: - plt.figure() - plt.plot([d["step"] for d in loss_hist], [d["loss"] for d in loss_hist]) - plt.xlabel("step"); plt.ylabel("loss"); plt.title("train loss") - plt.tight_layout() - plt.savefig(os.path.join(out_dir, "train_loss.png")) - plt.close() - - if val_hist: - for metric_key in ["rouge1", "rouge2", "rougeL", "rougeLsum"]: - plt.figure() - xs = [d["epoch"] for d in val_hist] - ys = [d.get(metric_key, 0.0) for d in val_hist] - plt.plot(xs, ys) - plt.xlabel("epoch"); plt.ylabel(metric_key); plt.title(f"validation {metric_key}") - plt.tight_layout() - plt.savefig(os.path.join(out_dir, f"val_{metric_key}.png")) - plt.close() - except Exception as e: - print({"warn": "plotting failed", "err": str(e)}) - # Epoch logic: 150k rows def run_one_epoch(model, loader, optim, sched, scaler, dev, accum, use_amp, log_every=50, loss_hist=None, loss_json_path=None, step_hook=None): @@ -180,6 +141,7 @@ def run_one_epoch(model, loader, optim, sched, scaler, dev, accum, use_amp, log_ if loss_json_path is not None: with open(loss_json_path, "a", encoding="utf-8") as jf: jf.write(json.dumps({"step": int(steps), "loss": float(mean_loss)}) + "\n") + shown = 0.0; t0 = time.time() @@ -303,18 +265,12 @@ def _probe(_step): print({"save": a.out_dir, "metric": round(cur, 4)}) # ALL EPOCHS DONE! - # Eval: Validation + # Eval final_val = score_rouge(model, tok, val_loader, dev, a.val_max_new_tokens, a.val_beams) print({"final_val": {k: round(v, 4) for k, v in final_val.items()}}) - # Eval: Test - final_test = score_rouge(model, tok, test_loader, dev, a.val_max_new_tokens, a.val_beams) - print({"final_test": {k: round(v, 4) for k, v in final_test.items()}}) - with open(os.path.join(a.out_dir, "test_metrics.json"), "w", encoding="utf-8") as f: - # we log for test - json.dump({k: float(v) for k, v in final_test.items()}, f, indent=2) - - save_curves_and_plots(a.out_dir, loss_hist, val_hist) + # NOTE: We make plots/csvs after training using eval.py + t_total = round(time.time() - t_start, 2) # dump a report after all epochs. Only static model + system details here. From 655029e57d8f2216563ce3d078f4f3f7e5dadc2e Mon Sep 17 00:00:00 2001 From: jac0be Date: Thu, 13 Nov 2025 17:16:44 +1000 Subject: [PATCH 20/31] Optional hold out test-split, used for hyperparameter tuning. --- recognition/dataset.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/recognition/dataset.py b/recognition/dataset.py index 2b0598911..01bf75df0 100644 --- a/recognition/dataset.py +++ b/recognition/dataset.py @@ -3,8 +3,17 @@ from torch.utils.data import Dataset class BioSummDataset(Dataset): - def __init__(self, split="train"): - self.ds = load_dataset("BioLaySumm/BioLaySumm2025-LaymanRRG-opensource-track")[split] + def __init__(self, split="train", do_train_split=False): + ds = load_dataset("BioLaySumm/BioLaySumm2025-LaymanRRG-opensource-track") + # We optionally split the training data to get a held-out test set. + if do_train_split == True and split in ["train", "test"]: + full_train = ds["train"] + split_ds = full_train.train_test_split(test_size=0.1, seed=42) # keep seed set at 42 to keep splits consistent. + + self.ds = split_ds["train"] if split == "train" else split_ds["test"] + # Otherwise use the default train,validation,test split in BioSumm (NOTE: test does not contain layman summary) + else: + self.ds = ds[split] def __len__(self): return len(self.ds) From 1dfcc8b0352cd0ea04278e8174243524073ecbeb Mon Sep 17 00:00:00 2001 From: jac0be Date: Thu, 13 Nov 2025 17:17:39 +1000 Subject: [PATCH 21/31] Added report indexing to predict.py, which allows specifying an index and generating a summary from the dataset. --- recognition/predict.py | 45 ++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/recognition/predict.py b/recognition/predict.py index aa9ad533f..782fe0343 100644 --- a/recognition/predict.py +++ b/recognition/predict.py @@ -1,8 +1,9 @@ # predict.py -# +import argparse import torch import sys from transformers import AutoTokenizer, AutoModelForSeq2SeqLM +from datasets import load_dataset DEFAULT_PROMPT = ( "You are a helpful medical assistant. Rewrite the radiology report for a layperson " @@ -10,6 +11,7 @@ "Report:\n{rad_report}\n\nLayperson summary:" ) +# Loads the model checkpoint and does prediction @torch.no_grad() def predict(report_text, ckpt_dir="runs/flan_t5_lora", prompt=None, beams=4, max_new=128): dev = "cuda" if torch.cuda.is_available() else "cpu" @@ -26,28 +28,37 @@ def predict(report_text, ckpt_dir="runs/flan_t5_lora", prompt=None, beams=4, max ) return tok.batch_decode(out, skip_special_tokens=True)[0] -@torch.no_grad() -def preview(model, tok, dev, report_text, ref=None, prompt=None, beams=4, max_new=128): - p = (prompt or DEFAULT_PROMPT).format(rad_report=report_text) - enc = tok([p], return_tensors="pt", truncation=True, max_length=1024).to(dev) - out = model.generate(**enc, max_new_tokens=max_new, num_beams=beams, early_stopping=True) - pred = tok.batch_decode(out, skip_special_tokens=True)[0] - print("---------PREVIEW----------") - print(f"Report:\n{report_text}\n") - if ref: print(f"True:\n{ref}\n") - print(f"Pred:\n{pred}\n--------------------------") - return pred - -# Usage: python predict.py [OPTIONAL:directory of trained model, uses default if unspecified] +# Loads up an interactive check. Uses same default run dir as train.py. If idx is set, it computes the summary for that report[idx] and exits. def main(): - ckpt_dir = sys.argv[1] if len(sys.argv) > 1 else "runs/flan_t5_lora" + p = argparse.ArgumentParser() + p.add_argument("--ckpt", type=str, default="runs/flan_t5_lora", + help="Checkpoint directory") + p.add_argument("--idx", type=int, default=None, + help="Index of test-set report to evaluate") + args = p.parse_args() + + # If idx is provided: run prediction on that test report + if args.idx is not None: + ds = load_dataset( + "BioLaySumm/BioLaySumm2025-LaymanRRG-opensource-track" + )["validation"] + + report = ds[args.idx]["radiology_report"] + gold = ds[args.idx]["layman_report"] + print(f"\n--- Test Sample {args.idx} ---") + print("Radiology Report:\n", report, "\n") + print("Gold Summary:\n", gold, "\n") + pred = predict(report, ckpt_dir=args.ckpt) + print("Model Prediction:\n", pred, "\n") + return - print(f"Chat with your FLAN-T5 model ({ckpt_dir}). Type 'exit' to quit.\n") + # Otherwise: interactive chat + print(f"Chat with your FLAN-T5 model ({args.ckpt}). Please enter only the report you want summarised. Type 'exit' to quit.\n") while True: msg = input("You: ").strip() if msg.lower() in {"exit", "quit"}: break - reply = predict(msg, ckpt_dir=ckpt_dir) + reply = predict(msg, ckpt_dir=args.ckpt) print("Model:", reply, "\n") if __name__ == "__main__": From 5f7943cb032a717a1e98e2b94658dc5393b7b95f Mon Sep 17 00:00:00 2001 From: jac0be Date: Thu, 13 Nov 2025 17:18:34 +1000 Subject: [PATCH 22/31] Added more explanatory comments for train.py --- recognition/train.py | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/recognition/train.py b/recognition/train.py index 0ae05ebf4..c5bfb56c5 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -21,12 +21,12 @@ def args_parse(): p = argparse.ArgumentParser() - p.add_argument("--model_name", default="google/flan-t5-base") - p.add_argument("--out_dir", default="runs/flan_t5_lora_long_12_11") - p.add_argument("--epochs", type=int, default=10) + p.add_argument("--model_name", default="google/flan-t5-base") + p.add_argument("--out_dir", default="runs/flan_t5_lora") + p.add_argument("--epochs", type=int, default=5) p.add_argument("--lr", type=float, default=2e-4) - p.add_argument("--wd", type=float, default=0.01) - p.add_argument("--warmup_steps", type=int, default=1000) + p.add_argument("--wd", type=float, default=0.01) + p.add_argument("--warmup_steps", type=int, default=500) p.add_argument("--batch_size", type=int, default=2) p.add_argument("--grad_accum", type=int, default=8) p.add_argument("--max_input_len", type=int, default=1024) @@ -44,6 +44,7 @@ def set_seed(s): random.seed(s); np.random.seed(s) torch.manual_seed(s); torch.cuda.manual_seed_all(s) +# Collates report, summary pairs into tokenised encoder/decoder tensors. class Batchify: def __init__(self, tok, max_in, max_out): @@ -63,6 +64,7 @@ def __call__(self, batch): labels[labels == self.pad_id] = -100 return {"input_ids": enc["input_ids"], "attention_mask": enc["attention_mask"], "labels": labels} +# Computes model rouge @torch.no_grad() def score_rouge(model, tok, loader, dev, max_new_tokens, beams): @@ -171,11 +173,11 @@ def model_peak(model, tok, dev, dataset, beams=4, max_new=128): print(f"LLM: \n {pred}") print("-----------------------------") +# Main training loop def main(): - + # Setup a = args_parse() os.makedirs(a.out_dir, exist_ok=True) - set_seed(a.seed) dev = "cuda" if torch.cuda.is_available() else "cpu" @@ -187,16 +189,17 @@ def main(): ) model.config.use_cache = False model.to(dev) - + + # Datasets (test_ds is unused) train_ds = BioSummDataset(split="train") val_ds = BioSummDataset(split="validation") test_ds = BioSummDataset(split="test") - collate = Batchify(tok, a.max_input_len, a.max_target_len) train_loader = DataLoader(train_ds, batch_size=a.batch_size, shuffle=True, collate_fn=collate) val_loader = DataLoader(val_ds, batch_size=8, shuffle=False, collate_fn=collate) test_loader = DataLoader(test_ds, batch_size=8, shuffle=False, collate_fn=collate) + optim = AdamW(model.parameters(), lr=a.lr, weight_decay=a.wd) # adam@ optimiser total_updates = math.ceil(len(train_loader) / max(1, a.grad_accum)) * a.epochs # updates = round_up(batches per epoch /accum) * epochs warm = min(a.warmup_steps, max(1, total_updates // 20)) @@ -219,7 +222,7 @@ def _probe(_step): total_params, trainable_params = param_counts(model) - # Get gpu name + vram for final report + # For final report gpu_name, vram_gb = None, None if dev == "cuda": try: @@ -243,7 +246,8 @@ def _probe(_step): ) print({"train_loss": round(float(tr_loss), 6)}) - scores = score_rouge(model, tok, val_loader, dev, a.val_max_new_tokens, a.val_beams) + # epoch done, time for validation + scores = score_rouge(model, tok, val_loader, dev, a.val_max_new_tokens, a.val_beams) if scores: msg = {k: round(v, 4) for k, v in scores.items()} print({"val": msg}) @@ -269,7 +273,7 @@ def _probe(_step): final_val = score_rouge(model, tok, val_loader, dev, a.val_max_new_tokens, a.val_beams) print({"final_val": {k: round(v, 4) for k, v in final_val.items()}}) - # NOTE: We make plots/csvs after training using eval.py + # NOTE: We make plots/csvs after training using eval.py and the saved jsonl's t_total = round(time.time() - t_start, 2) From 6b6a992c939b02eb4f27e56a0b1f3dcb93d47400 Mon Sep 17 00:00:00 2001 From: jac0be Date: Thu, 13 Nov 2025 17:43:33 +1000 Subject: [PATCH 23/31] Restructured repository in preparation of pull request. --- .../Flan_T5_s45893623/.gitignore | 4 ++++ .../Flan_T5_s45893623/assets/multi_val.png | Bin 0 -> 50737 bytes .../Flan_T5_s45893623/assets/train_loss.png | Bin 0 -> 27320 bytes .../Flan_T5_s45893623/assets/val_rouge.png | Bin 0 -> 35012 bytes recognition/{ => Flan_T5_s45893623}/dataset.py | 4 ++-- recognition/{ => Flan_T5_s45893623}/eval.py | 0 recognition/{ => Flan_T5_s45893623}/modules.py | 0 recognition/{ => Flan_T5_s45893623}/predict.py | 0 recognition/{ => Flan_T5_s45893623}/train.py | 6 +++--- 9 files changed, 9 insertions(+), 5 deletions(-) rename .gitignore => recognition/Flan_T5_s45893623/.gitignore (55%) create mode 100644 recognition/Flan_T5_s45893623/assets/multi_val.png create mode 100644 recognition/Flan_T5_s45893623/assets/train_loss.png create mode 100644 recognition/Flan_T5_s45893623/assets/val_rouge.png rename recognition/{ => Flan_T5_s45893623}/dataset.py (88%) rename recognition/{ => Flan_T5_s45893623}/eval.py (100%) rename recognition/{ => Flan_T5_s45893623}/modules.py (100%) rename recognition/{ => Flan_T5_s45893623}/predict.py (100%) rename recognition/{ => Flan_T5_s45893623}/train.py (99%) diff --git a/.gitignore b/recognition/Flan_T5_s45893623/.gitignore similarity index 55% rename from .gitignore rename to recognition/Flan_T5_s45893623/.gitignore index cb7f34737..1d14e5b25 100644 --- a/.gitignore +++ b/recognition/Flan_T5_s45893623/.gitignore @@ -4,3 +4,7 @@ __pycache__/ *.pyo *.pyd *.py.class +# Generated folders, checkpoints and logs +runs/ +eval/ +archive/ \ No newline at end of file diff --git a/recognition/Flan_T5_s45893623/assets/multi_val.png b/recognition/Flan_T5_s45893623/assets/multi_val.png new file mode 100644 index 0000000000000000000000000000000000000000..7ef35ad5d68a0335c9752765820bd8396c9e86a1 GIT binary patch literal 50737 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¶snYwE_%)E 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 Ja?s-1{{qasS-$`P literal 0 HcmV?d00001 diff --git a/recognition/Flan_T5_s45893623/assets/train_loss.png b/recognition/Flan_T5_s45893623/assets/train_loss.png new file mode 100644 index 0000000000000000000000000000000000000000..d02d0b9b46064af2a5f75b40f9904df053cc4f26 GIT binary patch literal 27320 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 Na?(n7Go|#s{tZj$7<2#t literal 0 HcmV?d00001 diff --git a/recognition/Flan_T5_s45893623/assets/val_rouge.png b/recognition/Flan_T5_s45893623/assets/val_rouge.png new file mode 100644 index 0000000000000000000000000000000000000000..be9d5a061e6e20badbbb4300e3b4695f7cc3b4b6 GIT binary patch literal 35012 zcmb@ubyQZ}*Dk#2?pBaeL^>svRzyHbkQ5{Zq)S5SkW@fAm68$>>25(%L==#eloABV zZ*G6*yyu+pet(?tjgRp>a0~an_u6aCHRGDswIVdsZ;}w6BSa8{WA#hUGcSR5~GxUFqLYabx2of%EOHoe8EB)7$r&s)9 z8}63Wt+dy|Q}OZ>3LZIC{()MYfrQ-{oFB#gBaQL0Z{`ycvf<782bDfyDa;P+d50hF z&mv?&Lqxs&nmyxIYQqoahYCM9rXHqU-QP5-wV9UQ^g8$XNLrf>KM-MquXpE14xjvc z^~R9cUlG1MLNVgP!^3+91Q1FJ3W^B^Tv_yuQtgN`{MEvm9*KZIuM=ajz+azdm?0O@ z%LxBpfB0Ml$@#0YY|m#7_tx^wPY(AKnxC9-NsC>*N=q4mT~Se?>&FqH82I@2PyM}A zMR#5i5$f3Mhcf67lcJpRq{Tv?U>=FOYIp`i~}KNt1%_rLdw zQ7>qJM#DW+X?>@rwzhR_jOLoppAPs<_UKCg$J-YvRWqe0=Bhq8{xGr1zV3S<5K6`z zGc#k_v*=Q&!v#-h+8T(XtgcR*_-nj8tMJ05`@gFmT4Bzbs8V4)ctJJoD#?#0N4y@tzTwc(C7ruAm@eV^)@fG$z0EMD zd3TIbBrUIohK9d(f%1ZH-$fEzxiP8OR2c?9CllKyV~M|2M?T%QVw9jER8O!@8(-#l1;727|c zU8Li+QM>fU@4lg_0DbnD?b^vE*7L>(bOO(#IXBp(-In7fth0P~2rg0*3}nfWA>uxN zN{XtKi*(pnSdg>R{buL=jVZ!S^M}MUa2o;puL3nSH7$dKWWrYc{x@C;O6_mWwtF3} z6b!$AsLe@D7#tjI+7-pnGdL)g$ROpxqg!f#gXC`XK6u%Moc>+P@>+O)b7o_MR8LQD zck>5x^Vw;Aq3X6**Q=YcY#bc8O-)Ts&d#mPr+fUb^YeA@ZN8J+_^lxYvf1B*GTkt+H-4KEu0LD4yYcMC%c|)6?{X!M)sJXvX$d?z z_BuE^QYg~Ny`9AOwZ{3?ife{C9zQ>S)OoRib)zZ+l02=5aTA|UZmO?_O*bZMZN}at zu55OkcWf~GvtLl-bKJ+@+~K!Bg%=_p07jZ{R3dY-OLf6(1_PamPoGE>LWx^Li0Bk8 zyJDD#;JJ=rOyMyxp^=e9fq{WTf!1420w&Z-dF0$b_+(-YCdKfkyS?ZJ|2Hk*!yD$H*p zElqw$TZ1xZrjs?!`1trOFyyV3f~>i=5Tb*V{U1sJ#cZ%emVY$MI7~N06loW*adP6P zi8*$)2H}1B=Yb5z5XsH&HnloO?6p)We~AGzU)R zUX!l`$DPb5xT0>|z$KbHaofAQB1}gx#O(1kLGRsVp~3UlyhWb;U8Gx|sKleteQ({U2laTQK))#Y}juJHQVv&?Q zx7mDleP?Iqt@oZSI2pXBr+*8UjT%j2<$`c$Pmeac@tA%6!KzThmkU*9h za7x|$&BuY;^WCq&q7Pu_Y#*+b&;R-LJ@@68zrUBv!Lu%p71Po3+(T-OV&=PJ=Vw}j z=*69~i;Rqn7&E!fN=XR;X!HkgTH?XLPA3F%_AZr0(H1(;9jPZFO!n2JvPox zew+~?!C+})ZuSrzFcH@4*Qeb|9Dg*)gAu50Ch_0rL&(vY8LgO{G|B-VjET&G|GKi@ z1g?_uB4vcrd>6@R#jSV_0?U&%9Df1N4WrQ`v-VH|ms+D5k6)=PUo)gUvBkv1W?S)? zMT&3h=p=v-Q|-3yPiF105MmV;9-TXR_9;V34`DHC^3_*XQ==)n-^^EHSgr2l;zH@` z=NAIE)}B}yEg(XIWzLQ(``0qA`xziC9UUFvt5+Y6T#Q_-e)OH=&=00x8)4zO-(;jS zU@CxLR8*9kq+THGH(l*`AH%x2BqW-3|DIE>IiMC49KzN z&;`Ol+Q?*%StOrs&9utHGpcTa9q=gUY0ZL*%yqH*QbK{?-;BLLbK>w?tH=pFwo8^K zIX0`5l;PIa7CDD{I;Ui2Lc&D|aKqbRKKMxR747`w7zScovz|ECKqEdnEp2TaIr3m8 zDG&Ig=k(*7Zl4M=y;b6rFUlJkrL*7%I_<6AmE%ezJUbk3#%?s>=Q7;cG_JJz)PMT; z_N`kK)Px~htHtH1G43lPO7ub&$|3F?Z|v4FIo`3d--wb`QF&&QzYI2JCO|LnpaXwY z@bcx$qk}j&ILfzgw}X>__~3Wwmbg*tv+sb7i#u0TkSWCE>fzBv#NS}5`(eS))z$U+ z%a@@hjoxzP*vBv_ckB2~?Q19MJ^4dP&WFRT~<+|4_}?Aio3^u?+*-|y&8 z{vbw6Yb(Z`>whmc9jU+C!Qa(Pu8o#5f5M>PQ_IcGf;`OEZ?$P%+_6Ct%w@Jl0{%RhZ18E|?s4ca6 zhNLCojn14Ih-k}@z;>>sU-O|w6y@Y{G{QML5)zV<@MflYmghu|o?ZS!?ds$t5K^D2 zDo|7en`bWm&h^$iGAF^{GiPCRH|jlp4dvaY(`JBWge#j(ytAY&r=X-{^S&=>lazO` zIr8&U8U;DI>7U1beC#?}mZyBz4`zbE*Pip(n2dmgc@9mdZZi7?i`sqBv0LYSUiGz0 zMoG~^2%LfaWDNx#DPv1#BpoY$VBy#$c6KcE-^YJ{3tA5_j&84d2*SsRmj<)KSnzXo zTl$jtBR_%*Cq;uL^z^WO4ct@gQ1H{Nu^B@A$-Pl*hM4?M}Ak~hW-^HRbX3? ztK+@ozi%?Xht2&8-T;{_4>4{~AF~?NG{a=^e)Zd8}MI@E-o%xGeKkzAVd@U>y(S*#`Sb5Dk-)0^%24C zJHM0~Qe3#ew<^i);LbTUSLOS6$9BpQf<}$&5-C(X4rq)GgN4=685r@yk!yK+c67he zjy5dioyS+s$Dg2Rd9XB)k^5`)MST1=c$SJrHPS2 z4wWqKoZFe9#P$7+zJ3rM*$pkN7dH0y&CFP@pB|V)dhfF~_)zAzkAGWH z)6zaWjm0;$j{rw{_4?7eaHY@U(h@uPYJ))rCMFV3PtS(^X&>6B{4Zag=-0aBtys&E zzjawu5to!q4b>usF?lzd=#UDORdGI7-s)kGMGy!ZxJ5e8aENG=t8Dd_jyM}d;){#9 zQLpBlatRzGtt{L5`Q_#C%b8x7h9B(ZpoD|Wn(J_KYKn>M`T+}=IM%Y8Bp8o5_@(gJ z*zzwY5NpE|x%D3GE)R>luTo=TVO7BRhhO8je6@sKbGzZsH#>9>!!@=)iT$|8=tDT9(l^WpAFke$-VQtHtyw$nMGlS!kZ9%Z3|>Ftfl@6ND$d!C2r7CBmy4-ljxmtwq{}?LaJK*S z3=eXqVMkb{^6bFzB z3PKv@w)(mEv#7~B#P9C$`%j~jOuPx2k9UZ?_cur&cZEU<^*3EmOhjF{=AH2Sdv!ld zHiW7!@E@@oQ}yNxJf1;uoT*bm=P zk?Y$P-51&w$gTxfPkR%Mm*2mc#Ap20bJJvfvX*MJ;Eq_8+7CWR4%8 zk%89eW)N%JU?uxs2K+tRYz`?b0?FKEpO5ZQz$LLK05^@g=abvT~@=$J6ZZ&SIc$ag|pVI2HmZiO2(k zf^fi1g0H#l1t>tskEdsi{nnAu(KKjDz$zf1;pFB<4R##@D~AsbmxhvxO3AX%5I0}w zOyv$BD&RCO9~>OuLl(aLxhQ_Qp1T(^Vklc_lkQx}AF~bF|MB!bT2*3)$g_HRdlQ2q`Jy(UwT4R8-eTYcy7PPMFg`ts-iJ5B680n51;kLPOOO&;fR+obkuYjHz%* z895;m5S^Z$w!y@Idg%q>;TKR4DDOKNSI&W9z{$|7P7;gww95DbGofB04RH_IrxE3x70ZkU7F zyMnH%j za0x?6RXKRO><13Lryd&1VNRi*3V@2u)rf%NIm!38W>{y})O1L$G9c9sQ_qr<>H9OJ z=nC#+-2mezXJUHvp;V&+Ej*#T${&a14gAX1?&zJ!k0j?rlyx@FPB+gKvtrMQ64LP* z{j1(#{^npmR@E?b0jj5|U=?5K&(6k%qG+R%cOY89DkTe962h$9o&5{(w;MpJxa4FT zgE)`%uN8p2bwJU|lj*uWr{uOggmL*!rbww_6~J4l>xDteYiPu|bKQhT))};SV6`dL zjf70a47P2)IV_~6rlvSNc3xS9$1j5@Mu`!7yS%So??Ii|Iyy=P#gD-B<0U39A0I3P z?t@E4MmC(A2Oo-4$rFEaEPlFI{xoIk=BwdwT~{%BV&yw`!m6vQ?^Y|J$R*b;a%>B0 zYj#df<@Z(QmJ>#Z>h0S>Cgowx&CSa-@a^GX*G{^)GbZF0-QTM0l)CXq&IO}RADm2g zmEHK(&osxm=Ql63R+x9Q#P`M}Bw)+P$P7z>Ti)8)k%#cr>BDRA9{=~!VEF?Q6df&L zXJwUpf5{TP8Gv4PmURh1Zx(`ar-$8XXBP*)TL5`e}? z5drUAo8gPkA3#ps2?0ozO6u9-!omz1%OJssSsO2(ZwbJnmvrMqtFz^08$=e|E1F-c zri)WtR!?skesxpu@s0%;$_rtCnD9c)idsHXgkJCgHk1-*(s=RGr5w2a*GlWyhYxyS zAwO9)Kq=2~GlsEsy3yxT+2#0Nr$6iZ==f4nQt$~0+u)uR0K00^Z2*`MfucGvgJ57@ zJH3~oI(hc3ln31#OqIRv$ayY+_Yzf5&lH0J0C=u}_GrIZym1RmfTE7i{~bpDbwTnU z;!g5>nq@}OS5oU8(aci5qL(Xw&+D=8Wu;dE?uI++w`Ts1NIq--q1?|Uz(k~TMR31@ zl>W2e+Y4F!jP>Z_huhi={#9%^?tG|ufaU+X1QUI^E|GQb&K)a;e>lA+$ubG%&$BHt zo=2s+zV@eNPZb>BW_%j|ild4SIFJRuXPBCeT`w$3npbG&eNR94seV|0u8gotbk-$n z8WvtX!#{h-MJpO~oNR{PeC8*e^5pIF%08fzDwU?u@=h{{k16;GmK}KN~;3rtJ4C!7@3W6S?Tm ziA`IMh{OC}t-8R1&a5V{9eyMhQJ{ar9G@;xJo87}yuM+b=EyO9zDoMJ4vagD>qa!B zamw~q6ocAABSyIK786p`CvbXs5k zs9bTm30<)wrk8j`y@ncVnd0sAFwS)e`B{xxzAvEzkSv; zi>V1tB-Y^JPexcXg^Y5l*feg6tsVD6TbZD=HjE2!^`t8`42E+mv1z|up11dETE!ce zSQw)V>Ry=3gmqD11291a*~Y3uXha2>`sxO;$U2f|(_zySUwVp5NP^d^>wD?v*t-7v-6n7Ns`jDxr9nY@7D-(jfo78& zleY)gk`hwN+okIHbPqCmUQ>FBOQg!Diq}LKE;@&`UgVzU2ipYZLTl{tKi0uWFUHAFjC}7D>G(QE4*KW%FrbqVvEn)}oSp7t$jO~J)Bj1e;dpU{@M)GX zUR7nvuhyO?Xdf?8BYQM5a1zF)71?eSBiNH?Y3D4a7qmP1rreSv=@z%>=uXNO`TH$r z8oWHAwuC$uHf|dK*Gh7wCGYZrGqkr zOTIM!#=kle^SXnJmqcH2Lp!1naAIQ}M;XzH$?0mkz=Wv#T``b}u9OFH|(QaBvX?{u&#t^!U8^hCs9RT`uPbT(ws@6eQ>X~rgwI9Wv$*1}I^%+`QIuSH&Dz)(0cvthcV||c z+#6jl737+9`B!a4KMXwN9eAQPII8>jGNyH{>gUeYH4ZV4s+aV4^cer>sK<~z(I-yP zX`9GW)ZvF)+AAA-5}kYYhX_7NQ~ibJ&NEIy{ant;Mcd*J>~h=K1k8HoarI)iauxUO zBKY*JCC(DTZPOh%8nT@?EB)2_J_L92Q`KAFTSd-p4<))RRo_U-wS6A5W$mFk)6XEF zgf}0dw~@8{fal}0gae-Uc}hXm+tB+^Z+Oiykqs5R(Va_qmv1GQ47}#!P$s9) z{Ph62_{Kbtg~d=ie3y}T>JO^SSaUcbn7U)iYYPpsn0 zNQ!)<9>>C#`|W?Ex&YS^ym;{fg^$oyBP2o9_deWjej<)G2)CgFWDe;%z;g$KPfvrU z>OJSPo}LD%S2o-yL5; zjoJf#2Px}lN(#;B2@AyNgFOR^AUMx=VIc6JL4cc> zP1U*68qPN~bR2OyOuWNEk!qw+tLUxckL#K#fHkm5OEW@0KoRmrweG3ONpis9esO7D zqrk@aE7@4Ir}ml6`iqJ+vFF6yNy3uk`VoxjGD5G~9<|ni;?I5Gl`zV4b*1v=8y)l- z#uT&hNJ9_%rc$u(eSR3ye0a2{Yb<0H+A*|NDtF%%lAFK zvv;XC8jPdm2EHqq@S88!SaVWPjM1bK`HNOTnF3fwQ9l8@WCm$_7#RSQ_Zq#cmMftc z8yy5>CDe$o8*RIT$pYk>Y-~52tCTGBw8@=Y1J`hxDfgmU&NTfbk6UeO^$5ehTj{`o zgkA`iv@zrCVlH`gPvY?6DqE6hc;0PXcj69zQVf#0dJeYS&^}m}*jO?PAqIfxl)B^N z;M=zXXr0g=N`i&Z6XT+<<1gRg+n;>&{e#@A;hEZ{OyQ#v@nhpg zZyFThX=vm=C0kDswuXSmJ0OjVgvgs!SPrF@R7qiLxO^|qh{exD$6xa zMb&&!I%6^a7MZ1ct+%9m6IC&$}2m-oD(IKU7XV0qcM2t_A-46{rO;3fDD z4i4x)0V4=l%Jd-tt^D)%3>ydnw|1 z^yiW9*~vcQ4_$y~*N+yH?hlpUmx0!WJ?wXAQUu+2B?mtM-y+teb2OHs$TFGTAn&y$ z2`v%V%3G_u!l+uQ$342Z%2VCj%z-BKYLs$?1LVH%6iam#^0Zi?Wz)7Dl34M(|B>o< zm;5#tK0*e}yXsv-x^Mcb7AQF&U@+GHqJwl6OAivhe5Uh1m-0(=Y6oxbFTBP8H~B^+ zrlHzw_ERHyp;m6mup1@4HI}OTg9a3Q{r^TVf?NH6XD9uC|FHd4 zq|Bg-FefJmxD{}jmI$iLA9=pRLMmURtQ?PHRZz9WmTLjrgq)rpAKIS)+|RC#73Z$K zE+{bnT&M|2dl>ZQP#`@$J>8&~9j!L~-u5Cj?rXZxS4KPes1et>tpq|*{QC9ldpu~k zViOb`-j#fMDh*B{^U2{u?Gyl~5pLa*mQ+zYr{e=>z{F6(05n_kgug1y$t~FXKz2Wj$D1ANRFM;#GLy+JRE;_eS!)Y5ZLJMM#(oH6RsqS+Cj+Tzu&~@ z`mpE!?ECF0vQEu{?1j6n_wXj4_d)bpTBC~((|0%`F{aIim?~2A&AeP^;X~$ zI0KvjNZeho`~Ou)*VNaK&xpyQ=KCSliZsm*5-jR&tk}^$g;)Q;o~8eQJwl0B z)LsqCz8X%RE*@JY%!-AJ7B)>75t*u$8rRciNV>}dOj!B@_4a^K=Ia3*T>2v(eOLZ} zLvI)`FfbM~QTh(*ypIpIbLTsk5Z4GsnUAzhOX|*l|%rAoN@jw zQ_BDDf?M4BO$BBEy$Fwr;`!g*FBOyHbb|!6rxnL_ipKyat650}SO*2`Agrrel3tL; zhlU<3b>u!Utib;08vo5w#;0fuY=4MkQUA@${uh9Qc0J%BbAO}MDd-cne*bRhX2kZ~ z6q*)ZOBtR+b?$Z|j?;_)LtX{@K>1z&2aE%xg#e)H0pCo}WuZsq6T$&Lz?Ksdv>19p zOrS|53tN+-iDQ+W9t5p!k%)QdF~+HMMkfISqzk%~D2g9B?h7oSIG92@6E6$^a+XI6 z$N)^k%F}wt^&1@NgPnz5lz9Z^lj*y2tK?oq?jJ4{)W*o{U6@)zpRN4^!i;U){=N85 z$_pd;Z-mCL3p}Ws$_*{lDCnFxF^tRbqH+jO8?Zl5hKUyJ6vwUo=GO_EQugg6rxwEL{#cM=FRwd_Vly|koZq|VDugk-0 z*HSG1fgXxu7Mz^2r=QL{8GX2buw2=zrS?Z;>mFbcx__&C(jZhplnnR6?-D2&>=9@Z z63$U;j%;{;abZd=^rr*Y`;`>|3oA^0TjjA@r+z;FAYC$q)A5Sc6=aa-+Q7z-z>V0b zvdA|&;s2PP=a>|pT;EMe8M3y>7GTG!i*j3d&B4acOOU!NvMe-W*3*Oic_J>6(Dh{x zGFsC#vP&te8{s$hj>=KDfU7F--!<%0S!I4uFQ8YMR#Q+nc%a#5q?z2;AAFJf{JZrA z!uE9Y;l3C0SK@wQTS#HqUM6r!_s7(`NnIz=IBoVIp@%{7x?rf~Kv-!w50av9mko^c=)S@G0Neoo4I`_a19-6grq zS677lZy}t0wOQ)Aj0^tu)&wpY7l&%NG?q7rTc>a+$;f)7uVruT1dMzq z2Bh|^Ej?|LL@VMKkJX6vXFGAsbiD#hZYz|Ns;r!5ltY%2=HEodXn zY?w^@LIdO--6c9azL&FnrB$5)05X`}u+q$~k4*opxG=3IFJ}M)d^lun)fSh6Q&eQB zjuqDS&hY0)ZN{Hb#-)@C;Iu5F{bKu9JoAugIKpvOcSE_r`T5E`v-d2KSwOACo&N=b6l$L5een-F9-VG#!ImnTmO`cCDNN z_0NUr>rQ`m!ivi)(#8x|B3=@b6;gAFOC(fn5s12>ciQXt(j6jtL*9&)80Q?m0SR{W zw&jows|_KGjR+@CPuNu%x^Ksf%R8=`_u^vP0;Q>G7ZmOvk5IQ{*LpT(4`Uk4-_GR? zRxA!uG{o0;z>s$RxS^YfIDMk?r&;@$(MuTKp8icg5YrmZW-39Tre0Q~R(^FB1Mkiq z&PKo41!L-;lP5Dv3lUe9%zrKjolfQcgSS`Z6uyZ}r((+?Zj$ux4e)Vr_A&2ivW(JE zXA8)XeG6o?`HhYT&-lrOT_riy@++K#4?34@S!}BOZxGpt`0L^=yT#cOu@2M9zu^v6 zEe=z)_Ak*Od$<=0ld{Y8R4{I}_8gCrZ8-Pt1|PYOLmZ7~rT0R?uWCfN{-F0^Zy z+T#dQQ_BvW8w|Rk_n9zXxGM0Ldq~{!t`e&%S(rT5#j$j6PHu1gNOjz0#;8&|gKo-A zrl_Z@jIW2JRLq~Vfds(%`<=$w>=DP)+eskZQ z^nKH|WV7>4ReBofiqf2K1H4=(j7ylW-+99Oby#p~_9(5p($5@$X3p@GIyNHHA?juo zPo-6)lvFF4lrlpw_*NulvS9FC{(xH=r=)~qIlQDsm)gb~5srXqxo7e>uk5-o5XT77 zGs4>@F#;zk;6KU`#<)IKZBC33OrbnVp%6-~5K5uTm&G|VW(wT`f<_2jF4Kui*26A*paCEL?z=6cp+4LPVI<>kS_<_!3Bkx71 zUteVXJ>b4@k%L9%62)V>v(WOoV`sCCTHK4xThBTNOQ#5}{AgeQbmvPAe&%Dnllsj(zCw^&|@NT935249^3o5ckzvXHPV9W<-&#fR(XoXseLx>{QUFmftvI8pEvx+A%` z3PZM<$(b>2pG9n5P(_!z_g2ScrH8k@7nyOuwP3L26#6}DV-`E|?rN$SqESyDWc;$2 z8i(tW+XX)I25FYxdjW0Z%w-sAGZ(%Rn@qRbEY9IM=7}YcF8=bcW#|rp${4+i_a%Hx zVtsv1RkaX4QJRTc1U>2v5e*4aL;0^;;yma^h^w6Kjbpy7AMY5f?JRU@B&`rG&{ltW zT*R{dCwOw4O#O+R6A^L1OQ*0wH~#)=)k!zb-SwK78VN66CJOb0!F{%td!ozA|j?1VlA9SCmDYmb-8cM(uM9xBMo6%eJtxpGV6^0cDE z2ru<(4!JB3x|%eMuqZ~(&p1|89RBaRzdW?;+8CevA{iYHzIFMhVGi5ZS z8=`J{!{X+)6Hpyrt@hyy1%)UFZ0f5WsYmUEl1zk~(@JJL54;mN7fAF-Iy-+u_?-p2FS zQAd~B^+X<0{*UYD3LUlodGhD(d~n2jkYH(-bk2|HTz_W6{EBy5sxkSA!*H{BeJdEqoh7X1%AuFhSpY&$}>mm%!*n(y<>X zrDMyF<@NP-7U8weW||9pXQma{AhU}@;#A&TGh-W73Y7M&b$(3cNT%%9kh8THc3W0p z5>tNW7Y*_K%l8k&|F#%!41AGfgAN(z<$w~X+i$<*k<-$mM2l;Hbm@U`Vfk_pDkVe5 z#(y0Cm6a8nFC`2p*aXlT79y{p04Oa<TNl_r5mL9bZGjK~)R!)Tt_O}0fVsR@l#nON`>1)bJ4>qDS%YRe9p&R_}_) zg@GZTI)%Ak7&q_Bi2ucDyOd4PaGcuK-ATq9+4ZHODkeM}IZx~lq!lITw4+cllmoyr zXB-|LuJQdVbbNf=|Ix0>0I2uKlP6EUHu*^bfd?Hi)ThZG)1@C%dY?23s-v6-e+;aD z?2s~1=Q%~5dv9BIrzdJl{ywwV+?A+>jVj3J{30Q|1a-G=M5zfEm$gS()CPmiZ;&oL zmW*7|^ZRT1YMx!PZGU2EX8wZzOC{sC_NDA>xo_UpA~p6CLTJ~1zAG9F0d^%WuxHv( z-GJQ}p2{8I;3#-|OFlXJB?d%2Oo0yvi3@9M+}_Pz+YeBB1W@ z2!tF!5*uAlhxJC$WB}g3*1BE>^8faF<=_KgI|GN5c9VjdIv7gjhQB}4^5=n|)ei6q zU?M0h9Qe4i0MPJN(`cZeL9N)3$v@;Z*c^EjWhx+>mFY0~knIwVM1+!*+QlDN2SU|u zhw)5_pZ}6GBm^Jv|ov*n^?D;|Adss^EV`z z#NGOIW}@ry^y?OTL9K=WY>_fS|NoA0@MHpq?ra7Xa{#Fbm9N#*h&SwfCQ`a4;|m4okoQxuf*ANrS!-`i099L&1E_w2=8 z{E(0?OLZ-+oZGkLzc9@o)EzHKfzgPT87INh$=eE?ok>`J3gtD46K}s8XfMX_K9g_A zr-)^5`zoI^B{}gv%RC>IT81yh&jrKzOX@W;z_J*-lxB<30Hjs0+3oL+&8$K~BW}ka z_h|u&JPK)5x&mJ=C@>HcDC21c$1iyeLxIc10!UbiubZ35f{Vlxpgp=|EyB~H<^SB= z+z_xYBQ3vT-jgCer#Ae}{mKv|Gi#8{Obe=~4;AENcnYggUA~xj{N2#yR~_+qZq=H! zvDwyD2j=`OB7av|0qH>b*;2w_m~-C@zuCEaU-&AkUIB%pQ|RBA6GsXS5IYeP$mESUDQIv=pD*w?Qw+Ef|zEbbeqI!x9C0E0H^`x`wT0O^sBB>sdU zn1nccK&B<{y@{!dVU^cmtpT5Vb~p-U)YobCuR}hJs<74kdKQls9FcW zqI^Mrpmm`%Yk**QGe_$^9ewx4^aSXM<5Z%VtbtiAXKI?wd5qBl5~|syr7)0y=^XG_ z52Rz55-00iMe~$_t1;!b)o-Y4VSe^>VB=r8`o5@_Tx(N4H4{fEbTNV|MyY(n?cJQ8 zS%9k86+-Fs?0px!hHJCSYj~EjEJj$VZGFuQzLUp8`8K{8L7($aRrHAV!!AMZ(8~3! zDk>tPHCfPn=+#X!5V4s99}#qwqMrzXT_^%(Q2|OLqy?oFp>$iY29%ywX43c!XuxE^ zwxTf}Hx)32{YWotMa;<9G1dfRbW{|864Iupr%@6&3iX3biX7TCWogg!vIq9VMCr2! z`*~8upW8Fu_guo=c@h0Rd=}E56*T>s$rjFnRXC`_?DnC${BDX-mFn`$JWg#Eb2?@q zY)k6tCN+wg^+@%BrY#LGS*{8Z(LjJ{-n9S3oC&93k4sH`23kUvD_01huh)t4cBvFV z68F${1a1JfTme`0H@|J9$S;Q!cgWILEq)>Q8m^{?)vceH?P+CetRR*qW_jgyanz3NxE6IPAQqIK zLYVLL`1)nN2wz*ENYI2(_pf`rF&} zjx^ft?};8e5r4KGdt*18q~%0ZGS^8SwR{?mo?nA|^{_!RZ1!6 z3jmeQ?F#gJdbPy$v$93aZB5($c@}g7u;s2k zpnDs=CcG-jh|&Ki?9<%oTXb5~jBvZ2*_t!8JaBKM!iR;K;N!zGzx>brQ0Nmuf{Ol* zp%||PJfq$H7cipmk{&MO7TD=PtK~z}goOnQqgodn;48L(V~vK^I;i=k&sD=H-x&t7 zWWRk&?%mkb#2m8fugVb=6r@o4Xw@_kIT(=IG=(4zstz&%NE1f4frt43HYHjgDvE;s z_jz)1ctbB-T2UXqCr)8lZ+|8LDGDrRf9Ls&@Qw1BA-` zG3SYKfqZW_2|KKZ?_rg}f4USc6BD&f%wenH@$pb{GNB0%T!%AJrP$;Lm-9Oya*O*O zyq(zo^}YHPBu`&zaG+&pTH+A08_!F+tuqyIl|;~WKB(3fEXOo)+RqH0sSwl zQfJh^fk0n%lOH4r*ZmGzTk`9KY)z zM&2mb0?pbME$ebb7SnWk|LH4FZswlXH08X@3!KFx=Ym1g^^c2+s=~n!gZ!imbPE*^ zM>&k@+z5bH5DX0?oCcS*SL5a&+_L%h{tDV3USGFwI9x5x6@qR*WZ2MY>434%&dm6O zRuT^+TWu4S){pXO-Zkl8LYg3_Li{cJUZ(hQJXfxHL;@xTdF}49z>;;b(QPE|HJ@z3 zV;}Cjr<*v#PA~PYOTKrQI>+q0g@MfHQvlQYUaiX|m?q#NhoRbM$TXoDqMr9sdICft z&?627YBV-BHiAt1?HdmVkHY?FgBB2^cVZ!9du!w9oC32rJxim*)(3+MoI)ZfXsizZ zf_cKwsjFE2Y)qY(kdT1RA}x?L3}*Mx+zvvJHtpbr!T%gpYDAFO6 zBlos(to1zSg;OLzx6; z2ACAP+xCH3$PFYU~x>HKkE&!DQE0ZkZMCj1=8h(x&{2hHFj=ux#h7>x7Aqy*|)geDqwyD_kE zv%yHv{A3{WS|nKHoXpwZ*ox~)IWEu+2I)sDY%%A9Ei*`R+2ME$$Z9%asS*05*Whc2 zfn0zEGZn%FSH3bbIS{1-1$Oe*=*GgUzdd7jaKbAij_bU)!qq+}4 ziym^|RS-kVQpArhzW1$pH|fH{LN;vMWC1hGY40^ !-SNmga0@RO50J&=1+qly}I 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 AfdBvi literal 0 HcmV?d00001 diff --git a/recognition/dataset.py b/recognition/Flan_T5_s45893623/dataset.py similarity index 88% rename from recognition/dataset.py rename to recognition/Flan_T5_s45893623/dataset.py index 01bf75df0..940f9b5f8 100644 --- a/recognition/dataset.py +++ b/recognition/Flan_T5_s45893623/dataset.py @@ -6,12 +6,12 @@ class BioSummDataset(Dataset): def __init__(self, split="train", do_train_split=False): ds = load_dataset("BioLaySumm/BioLaySumm2025-LaymanRRG-opensource-track") # We optionally split the training data to get a held-out test set. - if do_train_split == True and split in ["train", "test"]: + if do_train_split == True and split in ["train", "test"]: # NOTE: You must construct both train and test using do_train_split=True, otherwise the splits won't be executed for both full_train = ds["train"] split_ds = full_train.train_test_split(test_size=0.1, seed=42) # keep seed set at 42 to keep splits consistent. self.ds = split_ds["train"] if split == "train" else split_ds["test"] - # Otherwise use the default train,validation,test split in BioSumm (NOTE: test does not contain layman summary) + # Otherwise use the default train,validation,test split in BioSumm (NOTE: default test does not contain layman summary) else: self.ds = ds[split] diff --git a/recognition/eval.py b/recognition/Flan_T5_s45893623/eval.py similarity index 100% rename from recognition/eval.py rename to recognition/Flan_T5_s45893623/eval.py diff --git a/recognition/modules.py b/recognition/Flan_T5_s45893623/modules.py similarity index 100% rename from recognition/modules.py rename to recognition/Flan_T5_s45893623/modules.py diff --git a/recognition/predict.py b/recognition/Flan_T5_s45893623/predict.py similarity index 100% rename from recognition/predict.py rename to recognition/Flan_T5_s45893623/predict.py diff --git a/recognition/train.py b/recognition/Flan_T5_s45893623/train.py similarity index 99% rename from recognition/train.py rename to recognition/Flan_T5_s45893623/train.py index c5bfb56c5..fe41a51c3 100644 --- a/recognition/train.py +++ b/recognition/Flan_T5_s45893623/train.py @@ -240,13 +240,13 @@ def _probe(_step): for ep in range(1, a.epochs + 1): print(f"\nepoch {ep}/{a.epochs}") tr_loss = run_one_epoch( - model, train_loader, optim, sched, scaler, dev, a.grad_accum, a.fp16, # training stuff - log_every=50, loss_hist=loss_hist, loss_json_path=loss_json_path, # logging stuff + model, train_loader, optim, sched, scaler, dev, a.grad_accum, a.fp16, # training params + log_every=50, loss_hist=loss_hist, loss_json_path=loss_json_path, # logging params step_hook=_probe # < - model peak here ) print({"train_loss": round(float(tr_loss), 6)}) - # epoch done, time for validation + # one epoch done, time for validation scores = score_rouge(model, tok, val_loader, dev, a.val_max_new_tokens, a.val_beams) if scores: msg = {k: round(v, 4) for k, v in scores.items()} From 9ef1a549a093144c543c104ac26cef41191d0693 Mon Sep 17 00:00:00 2001 From: jac0be Date: Thu, 13 Nov 2025 18:02:01 +1000 Subject: [PATCH 24/31] Added a starting report / README.md --- recognition/Flan_T5_s45893623/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 recognition/Flan_T5_s45893623/README.md diff --git a/recognition/Flan_T5_s45893623/README.md b/recognition/Flan_T5_s45893623/README.md new file mode 100644 index 000000000..f38267b7c --- /dev/null +++ b/recognition/Flan_T5_s45893623/README.md @@ -0,0 +1,19 @@ +# FLAN-T5 + LoRA for Layperson Radiology Summarisation + +This project fine-tunes **FLAN-T5-base** with **LoRA** adapters on the **BioLaySumm 2025 LaymanRRG** dataset. +Given a radiology report, the model generates a 1–3 sentence summary in plain English that replaces medical jargon with basic concepts. + +--- + +## 1. Problem Description + +Radiology reports are written for clinicians and are difficult for patients to understand. +The goal of this project is to: + +- take an **expert radiology report** as input, +- produce a **short layperson-friendly summary**, +- evaluate performance using **ROUGE**, +- and analyse where the model succeeds/fails. + +We use a pretrained FLAN-T5-base model with LoRA adapters to efficiently fine-tune on an RTX 5070 TI (16GB) + From 86014f9a378dded0cf6c3da20e8001d5c0303b4e Mon Sep 17 00:00:00 2001 From: jac0be Date: Thu, 13 Nov 2025 18:20:29 +1000 Subject: [PATCH 25/31] Added a concise background knowledge section to README. --- recognition/Flan_T5_s45893623/README.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/recognition/Flan_T5_s45893623/README.md b/recognition/Flan_T5_s45893623/README.md index f38267b7c..7245926ff 100644 --- a/recognition/Flan_T5_s45893623/README.md +++ b/recognition/Flan_T5_s45893623/README.md @@ -17,3 +17,28 @@ The goal of this project is to: We use a pretrained FLAN-T5-base model with LoRA adapters to efficiently fine-tune on an RTX 5070 TI (16GB) +## 2. Background + +FLAN-T5 is a variant of Google's T5 that has been instruction-tuned on a large number of diverse tasks. Whilst the original T5 was already a strong encoder-decoder transformerm, FLAN-T5 is trained specifically to follow natural language instructions, making it more suitable at tasks phrased like "Rewrite this", "Summarise", or "Explain this". + +### 2.1 Encoder/Decoder Architecture + +FLAN-T5 uses the classic seq2seq structure: +- The encoder reads the input radiology report (plus our instruction prompt) and converts it into hidden representations. +- The decoder takes those representations and generates the summary token by token, handling both: + - the encoder's information (what the report says) + - previous generated tokens (what has already been written by the model) + +FLAN-T5 is also relatively accessible compared to more complex LLMs, which require more VRAM to fine-tune. + +### 2.2: LoRA (Low-Rank Adaptation) + +FLAN-T5-base has ~250M parameters. Fully fine tuning all of them on a single consumer GPU is both slow and unneccesary. + +**LoRA** adds a tiny number of trainable matrices inside the model's attention layers. Only these low-rank matrices are updated during training, which was around **1.7M parameters** in our configuration. + +Effectively, **FLAN-T5** provides general reasoning ability and **LoRA** teaches it the domain-specific phrasing of radiology summaries. + +## + + From bd6cdeb78992c33fdbd6f8ba5d3390c7f39bdff2 Mon Sep 17 00:00:00 2001 From: jac0be Date: Thu, 13 Nov 2025 22:41:50 +1000 Subject: [PATCH 26/31] Finished the README report. --- recognition/Flan_T5_s45893623/README.md | 259 +++++++++++++++++- .../assets/flan_t5_architecture.png | Bin 0 -> 354409 bytes recognition/Flan_T5_s45893623/train.py | 13 +- 3 files changed, 261 insertions(+), 11 deletions(-) create mode 100644 recognition/Flan_T5_s45893623/assets/flan_t5_architecture.png diff --git a/recognition/Flan_T5_s45893623/README.md b/recognition/Flan_T5_s45893623/README.md index 7245926ff..72905e4bf 100644 --- a/recognition/Flan_T5_s45893623/README.md +++ b/recognition/Flan_T5_s45893623/README.md @@ -3,7 +3,6 @@ This project fine-tunes **FLAN-T5-base** with **LoRA** adapters on the **BioLaySumm 2025 LaymanRRG** dataset. Given a radiology report, the model generates a 1–3 sentence summary in plain English that replaces medical jargon with basic concepts. ---- ## 1. Problem Description @@ -19,9 +18,13 @@ We use a pretrained FLAN-T5-base model with LoRA adapters to efficiently fine-tu ## 2. Background -FLAN-T5 is a variant of Google's T5 that has been instruction-tuned on a large number of diverse tasks. Whilst the original T5 was already a strong encoder-decoder transformerm, FLAN-T5 is trained specifically to follow natural language instructions, making it more suitable at tasks phrased like "Rewrite this", "Summarise", or "Explain this". +
+ +
-### 2.1 Encoder/Decoder Architecture +FLAN-T5 is a variant of Google's T5 that has been instruction-tuned on a large number of diverse tasks. Whilst the original T5 was already a strong encoder-decoder transformer, FLAN-T5 is trained specifically to follow natural language instructions, making it more suitable at tasks phrased as "Rewrite this", "Summarise", or "Explain this". + +### Encoder/Decoder Architecture FLAN-T5 uses the classic seq2seq structure: - The encoder reads the input radiology report (plus our instruction prompt) and converts it into hidden representations. @@ -31,14 +34,258 @@ FLAN-T5 uses the classic seq2seq structure: FLAN-T5 is also relatively accessible compared to more complex LLMs, which require more VRAM to fine-tune. -### 2.2: LoRA (Low-Rank Adaptation) +
+
+ +### LoRA (Low-Rank Adaptation) -FLAN-T5-base has ~250M parameters. Fully fine tuning all of them on a single consumer GPU is both slow and unneccesary. +FLAN-T5-base has ~**250M** parameters. Fully fine tuning all of them on a single consumer GPU is both slow and unneccesary. **LoRA** adds a tiny number of trainable matrices inside the model's attention layers. Only these low-rank matrices are updated during training, which was around **1.7M parameters** in our configuration. Effectively, **FLAN-T5** provides general reasoning ability and **LoRA** teaches it the domain-specific phrasing of radiology summaries. -## +### ROUGE Scores + +To evaluate the quality of generated summaries, we use the ROUGE (Recall-Oriented Understudy for Gisting Evaluation) metric suite. ROUGE measures the degree of overlap between our model's output and the gold layman summary. The four relevant variants are: + +- **ROUGE-1** — unigram (word-level) overlap + Reflects whether the model captures the key medical terms and concepts. + +- **ROUGE-2** — bigram (two-word sequence) overlap + Measures phrasing quality and short-range coherence. + +- **ROUGE-L** — longest common subsequence + Rewards structurally similar summaries (e.g. similar sentence ordering). + +- **ROUGE-Lsum** — a variant of ROUGE-L suited to multi-sentence summaries. + This is typically the most representative single metric for summarisation and is used as our primary score for hyperparameter tuning. + + + +## 3. Code Structure + +`dataset.py` – Dataset handler with an optional 90:10 test split +`eval.py` – Produces CSVs & plots using metrics logged from train.py +`modules.py` – Model & tokenizer definition +`predict.py` – Uses best checkpoint to summarise arbitrary reports +`train.py` – Full training algorithm with logged metrics +`runs/` – Stores model checkpoints + loss & validation history +`eval/` – Stores CSVs & plots generated from history in `runs/` + +### Dependencies +- **torch** – `2.9.0` +- **transformers** – `4.57.1` +- **datasets** – `4.4.1` +- **evaluate** – `0.4.6` +- **peft** – `0.17.1` +- **sentencepiece** – `0.2.1` +- **numpy** – `2.3.3` +- **matplotlib** – `3.10.7` +- **tqdm** – `4.67.1` + + + +## 4. Usage +It is quite easy to install and train the model using the given requirements.txt file. + +**NOTE:** This was only tested in WSL, which requires a very specific setup for CUDA & torch. +``` +# Create a conda environment & install +conda create -n COMP3710 python=3.11 +conda activate COMP3710 +pip install -r requirements.txt + +# Run training using default parameters +python train.py --out_dir runs/flan_t5_lora + +# Generate plots & CSVs +python eval.py runs/flan_t5_lora + +# Test the model, optionally specifying the report index in the dataset +python predict.py --ckpt runs/flan_t5_lora --idx [report_index] +``` +## 5. Dataset +### 5.1 Source +**Dataset:** `BioLaySumm/BioLaySumm2025-LaymanRRG-opensource-track` (Hugging Face) + +Each row contains: + +- x: `radiology_report` – the original expert report (input). +- y: `layman_report` – the corresponding layperson summary (target). + +### 5.2 Splits +The dataset provides the following splits by default: +- `train`, +- `validation` +- `test`* + +However, the `test` split is not useful for evaluation as it omits layman summaries. Hence, we optionally compute a `90:10` `train:test` split for hyperparameter tuning. A 10% hold-out is sufficient given the large dataset size, and avoids unneccesary computation during evaluation. + +The final validation uses the default `validation` set, which remains untouched by our splits. This curated set avoids the noise from random partitioning and ensures that final results are comparable and reproducable. + +### 5.3 Prompts & Preprocessing + +Minimal preprocessing was applied. We justify this as directly modifying the text may introduce bias and reduce real-world performance. We let FLAN-T5 handle and model any inconcistencies in language. + +Each input is embedded into a fixed instruction prompt: +``` +You are a helpful medical assistant. Rewrite the radiology report for a layperson +in 1–3 sentences, avoid jargon, use plain language. + +Report: +{radiology_report} + +Layperson summary: +``` +- Inputs are tokenised and truncated to `max_input_len` (default 1024) +- Targets are tokenised and truncated to `max_target_len` (default 256) + +No additional cleaning or filtering is performed. + +## 6. Model & Training + +At a high level, training follows a standard seq2seq fine-tuning loop implemented in PyTorch. Each radiology report is first wrapped in our instruction prompt and tokenised, along with its lay summary as the target. We then run a forward pass through FLAN-T5 with LoRA adapters, compute the cross-entropy loss over the summary tokens, and use gradient accumulation so that several small batches simulate a larger effective batch size. Every `grad_accum` steps we update only the LoRA parameters with AdamW. + + +### 6.1 Base Model & LoRA Config + +- Base model: **google/flan-t5-base** (~249M parameters) +- LoRA applied to: `["q", "k", "v", "o"]` +- LoRA configuration: + - `r = 8` + - `alpha = 16` + - `dropout = 0.05` + + + +Total trainable parameters under LoRA: **~1.7M**. + + +### 6.2 Default Arguments +The training script contains many command line arguments to control model setup, optimisation, and LoRA configuration. +Defaults were chosen to contain VRAM usage to 16GB. + +| Argument | Default | Description | +|---------|---------|-------------| +| `--model_name` | `"google/flan-t5-base"` | Base HuggingFace model to load adapters. | +| `--out_dir` | `"runs/flan_t5_lora"` | Directory where checkpoints, logs, and metrics are saved. | +| `--epochs` | `5` | Total number of epochs. | +| `--lr` | `2e-4` | Learning rate for AdamW | +| `--wd` | `0.01` | Weight decay regularisation| +| `--warmup_steps` | `500` | Gradual warmup for the learning rate scheduler | +| `--batch_size` | `2` | Batch size. Small due to VRAM constraints. | +| `--grad_accum` | `8` | Number of gradient accumulation steps. Effective batch size = `batch_size × grad_accum`. | +| `--max_input_len` | `1024` | Maximum token length for the radiology report + prompt. Inputs are truncated beyond this length. | +| `--max_target_len` | `256` | Maximum token length for model output. | +| `--val_beams` | `4` | Beam search width during validation generation. Improves ROUGE at the cost of speed. | +| `--val_max_new_tokens` | `128` | Maximum generation length for validation summaries. | +| `--lora_r` | `8` | LoRA rank. Controls the size of the low-rank adaptation matrices. | +| `--lora_alpha` | `16` | LoRA scaling factor, effectively adjusting update magnitude. | +| `--lora_dropout` | `0.05` | Dropout applied to LoRA layers to improve generalisation. | +| `--seed` | `1337` | Global seed for reproducibility. | +| `--fp16` | *off by default* | Enables mixed precision training. | + +### 6.3 Hardware + +- `GPU`: RTX 5070 TI +- `VRAM`: 16GB + +VRAM usage generally hovered around 15.4GB during training. + +## 7. Results + +We run training over all 150k rows across 5 epochs, using the default parameters as defined above. As said above, evaluation was executed against the default validation set. + +### 7.1 Training Loss +![Training Loss Curve](assets/train_loss.png) + +The training loss curve shows a steep drop during the first ~2,000 steps, indicating that the model rapidly learns the relationship between reports and their summaries. This is not a suprise, considering the richness of each epoch. After this convergence, however, we begin to see diminishing returns, with loss slowly decreasing. This reflects smaller refinements to phrasing and style. + +Note that the periodic spikes at the start of each epoch are an artefact of gradient accumulation rather than training instability. Because the model accumulates gradients for several batches before performing the first optimiser step, the logged loss during these early batches is divided by the accumulation factor which artificially inflates it. + +### 7.2 Validation + +#### Full-Val: 5 Epochs +![Validation ROUGE Scores](assets/val_rouge.png) + +| Epoch | ROUGE-1 | ROUGE-2 | ROUGE-L | ROUGE-Lsum | +|-------|---------|---------|---------|------------| +| 1 | 0.722 | 0.538 | 0.670 | 0.670 | +| 2 | 0.728 | 0.546 | 0.677 | 0.677 | +| 3 | 0.734 | 0.556 | 0.684 | 0.684 | +| 4 | 0.735 | 0.558 | 0.686 | 0.686 | +| 5 | **0.740** | **0.566** | **0.691** | **0.692** | + +ROUGE scores increase steadily across the five epochs, but the improvements are modest and nearly flat. As suggested by our loss curve, the majority of learning actually happens within the first epoch, and by the time full-epoch validation begins, the model is already close to its optimal performance. The remaining epochs provide incremental refinements rather than substantive gains, indicating that the model has largely converged by the end of epoch 1. + +Although all ROUGE metrics follow the same trajectory, they improve at slightly different rates. ROUGE-1 and ROUGE-L/Lsum rise quickly and stabilise early, indicating that that the model rapidly learns to identify key clinical concepts and sentence structure. ROUGE-2, however improves slightly slower, reflecting that the model continues refining phrasing and short n-gram coherence even after the semantic mapping is learned. + +The best checkpoint achieves: +- `ROUGE-Lsum` ≈ 0.6915 + + +#### Multi-Val: 2 Epochs + + ![Multi-Val Rouge](assets/multi_val.png) + +To make this behaviour clearer, we also trained the model for two epochs while performing four validation checks per epoch. This finer-grained view reveals a sharp jump in ROUGE by the first epoch evaluation (around 25% through epoch 1), confirming that most of the performance gain occurs very early in training. After this point, the curves flatten noticeably, showing that later updates provide only small refinements. + +### 7.3 Training Report + + +This section summarises the key training settings, LoRA configuration, model size, and hardware used for fine-tuning FLAN-T5-base. Training took an average of 2-2.5 hours per epoch. + +### Training Configuration + +| Setting | Value | +|--------|-------| +| **Model** | google/flan-t5-base | +| **Total Params** | 251,116,800 | +| **Trainable (LoRA)** | 1,769,472 | +| **LoRA** | r = 8, α = 16, dropout = 0.05 | +| **GPU** | RTX 5070 Ti (15.9 GB VRAM) | +| **Epochs** | 5 | +| **Batch Size** | 2 | +| **Grad Accum** | 8 | +| **Warmup Steps** | 1000 | +| **Learning Rate** | 2e-4 | +| **Weight Decay** | 0.01 | +| **Total Training Time** | ~39,982 s (~11.1 h) | + + + +## 8. Error Analysis + + +### Error Analysis Samples + +| Analysis | Radiology Report | Gold Summary | Model Prediction | +|---------|------------------|--------------|------------------| +| **Success: Strong match** | The chest shows significant air trapping. Bilateral apical chronic changes are present. Dorsal kyphosis is noted. No evidence of pneumothorax. | The chest shows a large amount of trapped air. There are long-term changes at the top of both lungs. The upper back is curved outward. There is no sign of air in the space around the lungs. | The chest x-ray shows a lot of trapped air in the lungs. There are long-term changes at the top of both lungs. The upper back is curved more than it should be. There's no sign of air in the chest cavity. | +| **Success: Fully correct** | No parenchymal consolidation or peribronchial thickening is observed, with no significant changes in the lower lobe. | There is no sign of lung tissue thickening or thickening around the airways in the lower part of the lung, and there are no major changes in this area. | No signs of lung tissue consolidation or thickening around the airways are seen, and there are no significant changes in the lower part of the lung. | +| **Failure: subtle semantic error (misinterprets “pneumothorax”)** | Comparison with the previous examination dated 20 03 2010 shows slightly greater expansion of the right lung compared to the prior control. Persistent right apical pneumothorax. A pleural drainage tube is present in the right mid-lung field. Subcutaneous emphysema is noted. | Looking at the images from the chest compared to the ones taken on March 20, 2010, we can see that the right lung has expanded a bit more than before. There's still a small amount of air leaking around the lung on the right side. There's a tube in the middle of the right lung to help drain fluid. There's also a bit of air trapped under the skin. | Compared to the previous exam from March 20, 2010, the right lung is a bit larger than it was before. There's still a collapsed lung at the top of the right lung. A tube is in place to drain fluid from the lungs in the middle of the right lung. There's also air under the skin. | +| **Failure: technically correct but too clincial** | Midline sternotomy with cerclage. Hiatal hernia. Chronic parenchymal lung changes. Bilateral chronic pleural thickening. No pulmonary infiltrate suggestive of pneumonia identified. | There is a surgical cut down the middle of the chest with a wire loop used to close it. There is a hernia at the diaphragm opening. The lungs show long-term damage. Both sides of the lungs have chronic thickening of the lining. No signs of pneumonia are seen in the lungs. | A midline sternotomy with cerclage is present. Hiatal hernia is present. There are chronic changes in the lung tissue. There is ongoing thickening of the pleura on both sides. No signs of pneumonia are found. | + +Across the selected examples, two broad failure modes emerge: +1. `Overly Clinical Language` + +In the 4th sample, the model produces a summary that is technically accurate but fails to fully simplify it. Instead of paraphrasing jargon such as “sternotomy”, “cerclage”, and “pleura”, it repeats these clinical terms almost unchanged. This behaviour appears when the input consists of a dense cluster of specialised terms with no surrounding context. Each sentence in the report is essentially a list of named medical findings rather than descriptions of processes or effects. This is not a hallucination issue, it is concept-mapping failure caused by the structure of the input. In general, the model performs well when it can see *why* a clinical entity is mentioned (e.g. "pneumothorax in the upper right lobe"). But when the report is simply a stack of nouns, the model cannot reliably identify which concepts are important and therefore does not rewrite them. + +2. `Semantic Drift on Rare Clinical Patterns` + +We can observe a hallucination issue on the 3rd sample. The model incorrectly describes a 'persistent apical pneumothorax' as a collapsed lung which is somewhat related but not medically equivalent. This suggests that the model occasionally substitutes a more familiar medical concept when faced with highly specific terms. These errors tend to be small, but they directly affect factual correctness. + + +It's worth noting that these failure examples took an effort to find. Despite these issues, the model shows strong reliability across most cases, especially when the input phrasing is common in the training corpus. It rarely invents findings, avoids major hallucinations, and generally preserves clinical meaning. Its failures are not insignificant and are worth noting, but they represent specific edge cases rather than a complete systemic failure. + + + + + + + + + diff --git a/recognition/Flan_T5_s45893623/assets/flan_t5_architecture.png b/recognition/Flan_T5_s45893623/assets/flan_t5_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..2b0498de1667f4bcc9d4219cac451f88f90747ec GIT binary patch literal 354409 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�x71_)hbHqx=hyRsv^eD3!xAAu5vyc};*)fU`ir+{VKQ z{EYF_o3KZw?O{L!9RoIKh%e&m#oy2O3kjmu7tCM->86N?2s0bt%az`5I35H>Bi~U) zW_PFp0>^Fu){~8i!byO>0@GPgc*nz;T&x?U1AK6$<-g>C&4bkXS#Z~B8iAjfy;m5i zHwX5!3HSB1$x729ur2X0Gl!N&TqGH@QABH$yt@RZnB9@=E0X|{*POqdhz#JOJ}E2`W6eMQ zue^-_DRTHrko)?n!~S*v|9)^g)F>_sPr!CT8~;i1pGL;tln;M(_-j0*Q-q6L;d2jP zg1nLjAvAT32dOf4Ee4 zN-6$db;;lV#GS#Pk84dSgn!;dKRq3Q)*8c~UgI0Y=a+x~+`s>)>Myu{{}(iIoc+Il zT}Bk#85kuY^p`fQPKwAi;Nx<_IEsyGs~{8x(h=B^jMIE>PoDzCD){3K1Q`~uCCKTC z%-X>gOUNG#;sPE#cmUW)SC{MQx!G}P4#3yW1TG!$^_=X#+q@XrK(+uG>mGjC60Pa27xO!_5u~WX3!5Pf+HBSO3VZpQAY4N(wSf z=IY(F$?QncEeZ{SBNVKraZr+i$OkI`LIc))ck?r%@TXwcM%@nZr1#4fyXL}v;O_3r zaM>XV2yA3v6SuCJ`vnLEfWM}YEf-;nh_#Qaqp0}S{b?>S{H<=;_Zfopk7y~6)s>te zD|?OapHX$AN3s0k)i>A{Np5ndxd?;QpkpAQ=}=QjGl zBhe%vA6ZUK4LBk*cYn_b__n+=KtxORlf`aTW&9uA?(<;3I_WnoR)O@qzIQhOFY6a; z(>wHoq8Gi(S}@f|5^y>Wlm~IPF;N4-cV^JaUCd~2(FWld!|mz#}J9z8z8oq`v;Ql>WPW%KRK095+Csp8GPXbzNW#BCf)&pZRs0Gk-fa^V=ES^zoIizu#uv8L)^qx*wa&CyCR4s{Egoaz=wx#XfG* zE7ew$p$`s&&NH#tQYEk_!M1uy-V}~=usB$Y#%mz8*`>O1kc4+-%gH?;i#ImdFQpsa zzj+(pfr*8ARPaXhphR?E^gJ~Lk$tremO~DF95WThSkzpn)dx?QaI8L_zzZY~30L7C zbY+tCW#@yf#rXo+D__&o(-RWbuSK8{U)j>^-ZyUX<37JJwMmX<{@(85-B&^Qy19%F z@jz}4`#{%9LC!&BVREF}l+wRlMt6OiEqxS{imvztxP4Y%D@j`+W#pn)(gCv(HUV!o zc}0)`(r`zIn^5^7U%N_Tj=ds1g-=@wCgK z7RlL2&I5+`nJ&6Rf0#ju@8;?H5M5&a``i-zGHW;WtT&y4+Dh5T54rir z#!ueM{5h6WCojrE7<%#a>Oe?WkZ?eF&e{7ZljiSgUGWj0W26tGRc4S9^OIEr6UJxs zOHac*(1067=&_$FErlWG+o$-d=ww@@!0Pk&-~rgyl5GnN!6yL&(S_Uh_Pj5N55@Ey z+ggTy|6tF(6>y%3SBkf3Po?%@{N7XbVYAiv#X2d;DhUaROb8uOwQ0)ZG|tHRH$1_k z=1<+BsIo_5DqM%i=;*jznbtXmaV^J?R)ip$Oyfj5f}0@vstU1%Lw=!n<(jBWxgd zi_CxZws#=;;Ti{2g;;Lv+2l(J*4A_o1hV)fj!Y=JI*``w%>Xi<#NO2Bz67rHv^0!U ze@TMvI_~OrTGI#OS(Y7&<~jr~x3PGo$#|yBLaZ{ApoY!ORIPdb-rCC-+~t7u79v63 zDl>O%7*z7dA}2E`c}3J-(8iM|79()z3q@3%63#0l(ILl(2+V#INu$Dtgl&tm1vbf# z`R&zlyWjdp%YX4FAwZF8UgRS9`&^^=>&p8@YD_xsX_}!3BC%7D21E^(kdPCMr^<0e8`M&?c-niGsS??|Wr(DU>{@ zoQ0kll?^^R7lRnrTTr)PNGQGHpWY*ZWDV`Tx7+Tb9!g|7wgZXoFp3lMeOwr z^fP~aMfG7Z9)Q%b@X?~a5Vj2)7;rPc;ZA<^rbV=X$mdn2Ot30T8)i!!k{uo2h&8WP z_qp^;jG0bW?wkI8!kq}KZ)+E2IM}UPG7h37_H$azya9;f_EFB+>Fl<>=F1 zTsB=;VhO4Cli?!vl(_4i-l7)QG=)f3jhwDTg}l6kzKQWG^2b=!6%3cJo=YVX zBovjcazEJS(k__tqyP_zC&f}#FIOlr$|x41R)7fi`ID@jZ?AA(Njq-0>0XqOy1rNC zNtEU|T;SU~NWV{A3ms`g^FHn<_`!bCuKB`tsWrIiPJmx0uF3s2d1(RHtL)Wv{G^`C z3@4|j*TLS6aHTNsTRM($2+q};*RQLE{KX?THy1>);l>{Ks)@K?Mj&d~C?KnrfB4r;*G`_)|*@KIRTS!a0A} zaeWkmeiDT9uzs*-aXZ2yRJGv+R#a>^ENi=F67H^WF(ZTku)`x>gu(`sYK5Zq0HV)OKNV^H=$byxcO6 z1jkj#{slBgv@H~`p|DM9Zr;{r2fD!wbF7@vy+H-F;HGgSx`DM!GR7oH2 zlcj5@=hadN)}K`rzP6Twq0c^B(}Zt1D$-Z2P?8=cV0-Uwl!vaGi$mCwTSRlx``3AVoH@F&vGR~GUkW|!5e4I-`@RQ zV`oSp2LSyHLC#NJihAQU2zEHzzSnm7>0sM5=GZ-%EqVRnU^vr=)@uVpbkAq@x^be9 zl*o!qLtfr&%5|aPes5-iO~dDUPDSF%>0nY8aB6vvc1y$yCi5-zlN4uaN&Ie@}wCA)}9SIA#cP1~dUCu$$Skb*^dfj2-IyoXcig6K`Rr&dQ z1E9eC*&op>ABigcd-~HYfnTkG|Lz5(!AR}mI8pq?gFw|Hj#Bgu=+{AgTgp(DBJj=E zNSh?tD~=7t2-K$J+G~4_>n%jeMMjB;Ga~_+sTzXw9-GFRT)Guzo6Es25EF~5Ed$N~^C>Kius(SC`I+c(rwPH>{fkzyND zIoRz=aXZd+;)LX+)E!<|=_hb#J2*#D;))+JPP(Mlrjg@52yAJ%=|1dAAKl0T`BO>t z03Lb+go!i`2LxTTuFqK#4Yy#Fkz3IHIvb5;W>a7U1fGxN?O?tDdqJ5HB9*+E)zLmI zh6g2kZZMBeSB6wbNof_u?5I=3kDGxiM^^)V;TvQg$7^9qyNJA02A3JOm1^@XZ}%98*D| z1#a1$HTM`}a<>B@B>A6!72qXiMKO35N2xn$C|Ly?j#*h0c$VTn+{GG&a3JVLnuocisw#iYAh!TCcf4z%w|nE57fDOdafOH zSpKqQVPWfkqF(~uuuG9$+tu13XBCx3r!o{-8yaY~rU(mPGK%l(zC$ z3z`}+?IZEGj?`(7SmAeYR+Q)ZQUAph`bL0cM;(?>vdztHb)^+g+&j>Rg<5PNKYU2- zp;MCk0Lf64MCC@AW1&L4CNGbL3{!69EJSJB=wm~1ilFrj2zs=&R5P5f=6vftBy`yB z@s&-JJ>eA-O}LMw*8ylt*Ps5`*7x3=ZV9{^d<$9MScx%r?b6L17oLC=X%$_>_LOs3Y9Je(eUHA> z+uiMl-LVo=@&H>FDNc(zCQ<9A5DxnlD_U>%PegT(K@**W2 z6`SJnc0)0+>2@>HpJ5~9<4@lvE- z131CRu*{iiN=W2=6h_;sXRh%U%p@gekLeEY**9=w0?#HubFCVEhBrwJ(&-TTSbmo7 zgB_hEH*+%%FBxK?#mn))N@Yx3{Lntmf=H~#g@1~0oK2e>m8N}6$bbKe0-IS)mW5y=Tt%m7mT2+XHJf(P`l=@=q}N}3>Z{=GvxKcZWq@T`v(N5q3Q*SB4;&zc zY}S3?fdrO*&lmT64)`!m-tRF+WD(+v0^VIK z3X=oxpJ%qv1y|xx{2)~znr%vEA=sycH*Km zv6TrW*E=@akA)~T>|eZmlS+|Xz=HST!YZOAuI@|clrs9%AVXV~4Bgrt&qs|7a7zcm z%a;rpHX3_siJ>MN7{yE;3i&R1Pt!t5T5KV65achWW*7pfZ(Bp;HtTSIVg$>OrOKR} z8M}8>o}@uwVyzPy4_^}CH8#_IszMjQ0*&K$lfO8RPsRoTp}jMs6pceq=&d7v8+wTB zn%4qj&!-M71+Vj6H3eGxZu%eWuk*}i&Vb<$jL>=%X=dyp;zidk_b^&c{px;aC*4Y? zIfKk4&&;T@^;c?H&g+bioQ24-UMV4mxBoUq(XX;`!!Fc`Yf}Ve(dK~|}y!QTc zB3yYdb$_-!uI<~OdN#w=bjNFaS;18978EGe7csOfTwP4*!~NkWw3A0TZHcmOod`L& z;!+@Q8gy|r#QwZ4Rjcf97POfvyX#1RCLMt4KKu{q8fA!}<)85ceK&{W_~_^qi0DZe z1D^2CFfyK)U27uG0xr4gmzuAsu+ma3k^7Ey=#AqbZ7x(jH!s6(;)vJWHfgS4_f|Uf9nRu;`q()F6m{)U7Nw4!*R3*WKB=(?roGg zTiPTjh*mZJbPuh!sayNC4bWBM-d9x`#kS^dBgXbxIzN&*ZOuNXr5$%}bN#S&UD>U9 z=X$+6x!~4D47hWB#k-;5_(34+F>SoH_goF z*9IF$6_N@{8&^cm4WmNbv zd56hu+Xmm;=$hJ+YM-^OS*5ptBwnGgKQvQio=#j6mzG2xJrzx}1=~ zYaFs)Rad?%sw*jUTjV$-QfglsdnG=*wz;ArBuo=KDSBHJO6$J0kxk_Lfqk~Gn&_50 zT5lFAXPsLah`q+DB^6R5GtKt#y+N-$kssVr{4dAW{yBO#;<*r#56{@L&e|~*2V$To zabuU@d=E~MK{Garn2Kn=a^s69jYq#NXCO^~a{g%6*tm53(A4!7AH7MYEVc2G?c28P z6gnoSF7}iUtQ;y;&BSzyka*SjYADD6u#kem7P^#(K8w`aBG?|u_4B6ex59%! z!?yE9+Ui{onD+XYvAx}k3qM2#zy`i<3G{Wl`Z*aZ3M-MPWhbjzc@VM`w-qNFTX(%T zsP7}ZbG@JIb=9+od+w6&eZk|^-w(XvHyEcnb8gpa3eZK%J?S5~^*J3l#O!Yj6?6rq zrz!$+pbqDx!H8JvNaX-O5i(_#$Cj0I0Hy(SaSo+i{Nev}hc)mQl~2WO;oZ%d>gnnM z&TUGM0^)R*{_(6snX%EDHQVqhxe+%tJwupfm(jY0=o@v=27NFUd6)UleL>|0L&x3SeJn>s@8^4amWN00veaMH-Z>B9p~wj66CxX0 zZB=4(jx_Q)wej-Hc6CZIgc#x*B%dURy%5CaTfBlI67deae~06P-W(EBmYiQ>2 zhtVYR)^HIoWXN?F-baR-qY_%ap%`F!%=RG%y=(mC3zZvfLKyU-4F=K7HW*g^ z!0qia>6}*O?-y>Ozt#R(eR(@){juGAh5NvU+Cp7PTAn^1$lC-2c`^$NlJ=83dOuxdgBpr{kRUi1ipzw7%e& z{V(+ZzKO;MIoN~1?2zG7kT3^0)jDN3PsV4hQ#{T$@1$~ZOB>H#?$7IvJ-<3}-_MS% zJKZ|9iKVgiy>pL+iZ8SrA9n5M5~EX9U!(2Aj(T6Y&f6b%HF}!Wb-ieXm+_lC(HCD>I$61NyJ=X`; z)7>G(t4YkXK1CohI1Go#j_d!IDu?4~C5-0#}X>y=X^-NG3VAdR6=z1U(HGboUL z&tT&j7zg-aa7r00y``MRqKHTXZ%7NbB!hcE3Xl*Ns60=%oPkUN8P^9vngKwaF62f@ zK>Nh}dSh)7JR?A3!?^zfJDzm_C&C`Y8^BIRUw{;ohUztEe!K$b;TE*9-Dm9iZwi04 zbVvf7MSo9^FksPvIitTaJHC(=(944_#p9@lS+?Qoe18E@S>Nv&v-A#H2DV@Y`X3x+ zoHumivce;r9(r@D$Ac~g$OPN!{Z=olc)~qAn{8&rbx2wC15lYEmcMoYog$6bxEFAg z9_K9J<;sKbhHN-9k_zN2CIFla>zqNNm^&|5^Ti>NbOs>CL7LqZ-Q3+&xbdy3Jlwww zsQ$Ms;TsWB{brGu#tW0@dU^8UzF`iTt!*Hw&f6^cmI@?Nr6vY)X;*vzc%@;iD5kx^vQhRnx4po()?tN2{1a1^{W*R0|5{VQ57*gI60)2TKw{8DxPnZzyXGa!7Q z0(b1vph5J*RPg3|S$6!Fhb{tzKLx5HL?_R(cv^eg6 z3NC!4s`_p*KsVN|Gy%D#(Nw~Ke*YDpx1;XUNhH}?3*h4XpXu{O4SI7GRo5jzrvkCL zY^3F%{v_Xw%Mu5+7fl7BW z*bU4lEP%c5r16vX!$Y=BMR?lfxBnTw?K6}~?mu(f2DvFZbx!&3HL<~O>H+~m(j8yW z_P%37&hDauQf81x1z z555O$|Nl&_cOD@Xq&&!{0MSV=BRP5l{Q)EJ{${sk0ptY>P;*tW`W~PRhwZSVs9WiS zsOdAQZ&ZIjcy(gLDPkFCCQltOOuPcg0iZb&B6-O?)>=iUx8Qq!3&ILEf_T1HS!gGKaxm(Ex(B z<$fM;Q=+3h^#2>eWeTr0j>i%z{{i<90dUW!ktx-397+N3_|V|c%P#62a7Wn*0sAB1 ziHn-_lbz}kG9zKgGJgi*@4wKa(X)}<-IjmWZzOu2ZKNtoZNhuCvck*b^#q{e1J@&< ztFhxIW8_B!e9+%u?5PEUpFtuMI1veSNMgG(El01AXbGedz+ZzH@bBUDy}aKb3DRLe zXv=pX`S1lxE;~k~0MM=gEz|^P2o|+I_*kRAf^AEs04-20?@pBoTGz?SzjeTz9uaiHET>Tuw&I{lWZYTyhnTFCEaPZhRjr2UwDF{bO9UBT4H$Y!($wLvk>5q% z0g5XrwnrJib(l(dp8Q_L|C5RIdeb6e`h)~l_}>o}j?nZUlie;@50!jQ(=_l7zaII`IM?T`JmZG=E_Qf{~(GIOxMKZY5d zQ|lL^rfxkcgw@aW2DZ!%pTisoK~�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 >a0Lo&GtfTcu%zwMwZRtiC04$ZSD!laKo$C^<` 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

c!8HtY2cc-}jovV&9)kM^n$cn=}a6$?h5_m+LU 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%0D{9{a#{la)B~gFx6DbLXaWux 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¨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 L2eaCke93 Date: Thu, 13 Nov 2025 22:42:43 +1000 Subject: [PATCH 27/31] Added requirements.txt. Tested and working on WSL. --- recognition/Flan_T5_s45893623/requirements.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 recognition/Flan_T5_s45893623/requirements.txt diff --git a/recognition/Flan_T5_s45893623/requirements.txt b/recognition/Flan_T5_s45893623/requirements.txt new file mode 100644 index 000000000..e446ee149 --- /dev/null +++ b/recognition/Flan_T5_s45893623/requirements.txt @@ -0,0 +1,9 @@ +torch==2.9.0 +transformers==4.57.1 +datasets==4.4.1 +evaluate==0.4.6 +peft==0.17.1 +sentencepiece==0.2.1 +numpy==2.3.3 +matplotlib==3.10.7 +tqdm==4.67.1 From 5eda2b43b35323e289f58eb9bdc5e5afff3a357d Mon Sep 17 00:00:00 2001 From: jac0be Date: Thu, 13 Nov 2025 23:01:01 +1000 Subject: [PATCH 28/31] Final code cleanup ahead of PR. --- .../{assets => images}/flan_t5_architecture.png | Bin .../{assets => images}/multi_val.png | Bin .../{assets => images}/train_loss.png | Bin .../{assets => images}/val_rouge.png | Bin recognition/Flan_T5_s45893623/predict.py | 4 ++-- recognition/Flan_T5_s45893623/train.py | 4 ++-- 6 files changed, 4 insertions(+), 4 deletions(-) rename recognition/Flan_T5_s45893623/{assets => images}/flan_t5_architecture.png (100%) rename recognition/Flan_T5_s45893623/{assets => images}/multi_val.png (100%) rename recognition/Flan_T5_s45893623/{assets => images}/train_loss.png (100%) rename recognition/Flan_T5_s45893623/{assets => images}/val_rouge.png (100%) diff --git a/recognition/Flan_T5_s45893623/assets/flan_t5_architecture.png b/recognition/Flan_T5_s45893623/images/flan_t5_architecture.png similarity index 100% rename from recognition/Flan_T5_s45893623/assets/flan_t5_architecture.png rename to recognition/Flan_T5_s45893623/images/flan_t5_architecture.png diff --git a/recognition/Flan_T5_s45893623/assets/multi_val.png b/recognition/Flan_T5_s45893623/images/multi_val.png similarity index 100% rename from recognition/Flan_T5_s45893623/assets/multi_val.png rename to recognition/Flan_T5_s45893623/images/multi_val.png diff --git a/recognition/Flan_T5_s45893623/assets/train_loss.png b/recognition/Flan_T5_s45893623/images/train_loss.png similarity index 100% rename from recognition/Flan_T5_s45893623/assets/train_loss.png rename to recognition/Flan_T5_s45893623/images/train_loss.png diff --git a/recognition/Flan_T5_s45893623/assets/val_rouge.png b/recognition/Flan_T5_s45893623/images/val_rouge.png similarity index 100% rename from recognition/Flan_T5_s45893623/assets/val_rouge.png rename to recognition/Flan_T5_s45893623/images/val_rouge.png diff --git a/recognition/Flan_T5_s45893623/predict.py b/recognition/Flan_T5_s45893623/predict.py index 782fe0343..8615e72bb 100644 --- a/recognition/Flan_T5_s45893623/predict.py +++ b/recognition/Flan_T5_s45893623/predict.py @@ -28,13 +28,13 @@ def predict(report_text, ckpt_dir="runs/flan_t5_lora", prompt=None, beams=4, max ) return tok.batch_decode(out, skip_special_tokens=True)[0] -# Loads up an interactive check. Uses same default run dir as train.py. If idx is set, it computes the summary for that report[idx] and exits. +# Loads up an interactive check. Uses same default run dir as train.py. If idx is set, it computes the summary for that val_report[idx] and exits. def main(): p = argparse.ArgumentParser() p.add_argument("--ckpt", type=str, default="runs/flan_t5_lora", help="Checkpoint directory") p.add_argument("--idx", type=int, default=None, - help="Index of test-set report to evaluate") + help="Index of val-set report to evaluate") args = p.parse_args() # If idx is provided: run prediction on that test report diff --git a/recognition/Flan_T5_s45893623/train.py b/recognition/Flan_T5_s45893623/train.py index 001fdd0b4..cb889e749 100644 --- a/recognition/Flan_T5_s45893623/train.py +++ b/recognition/Flan_T5_s45893623/train.py @@ -123,7 +123,7 @@ def run_one_epoch(model, loader, optim, sched, scaler, dev, accum, use_amp, log_ if i % accum == 0: scaler.unscale_(optim) - torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0) # prevents wild spikes + torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0) # prevents spikes scaler.step(optim); scaler.update() optim.zero_grad(set_to_none=True) @@ -192,7 +192,7 @@ def main(): model.config.use_cache = False model.to(dev) - # Datasets (test_ds is unused) + # Datasets train_ds = BioSummDataset(split="train", do_train_split=a.split) val_ds = BioSummDataset(split="validation") test_ds = BioSummDataset(split="test", do_train_split=a.split) From 1296b1a274bc705cfaf5dcb9207c1c636b09caa3 Mon Sep 17 00:00:00 2001 From: jac0be Date: Thu, 13 Nov 2025 23:32:52 +1000 Subject: [PATCH 29/31] Corrected image paths in README following folder renaming. --- recognition/Flan_T5_s45893623/README.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/recognition/Flan_T5_s45893623/README.md b/recognition/Flan_T5_s45893623/README.md index 72905e4bf..9784cc4d3 100644 --- a/recognition/Flan_T5_s45893623/README.md +++ b/recognition/Flan_T5_s45893623/README.md @@ -19,7 +19,7 @@ We use a pretrained FLAN-T5-base model with LoRA adapters to efficiently fine-tu ## 2. Background

FLAN-T5 is a variant of Google's T5 that has been instruction-tuned on a large number of diverse tasks. Whilst the original T5 was already a strong encoder-decoder transformer, FLAN-T5 is trained specifically to follow natural language instructions, making it more suitable at tasks phrased as "Rewrite this", "Summarise", or "Explain this". @@ -34,9 +34,6 @@ FLAN-T5 uses the classic seq2seq structure: FLAN-T5 is also relatively accessible compared to more complex LLMs, which require more VRAM to fine-tune. -
-
- ### LoRA (Low-Rank Adaptation) FLAN-T5-base has ~**250M** parameters. Fully fine tuning all of them on a single consumer GPU is both slow and unneccesary. @@ -198,7 +195,7 @@ VRAM usage generally hovered around 15.4GB during training. We run training over all 150k rows across 5 epochs, using the default parameters as defined above. As said above, evaluation was executed against the default validation set. ### 7.1 Training Loss -![Training Loss Curve](assets/train_loss.png) +![Training Loss Curve](images/train_loss.png) The training loss curve shows a steep drop during the first ~2,000 steps, indicating that the model rapidly learns the relationship between reports and their summaries. This is not a suprise, considering the richness of each epoch. After this convergence, however, we begin to see diminishing returns, with loss slowly decreasing. This reflects smaller refinements to phrasing and style. @@ -207,7 +204,7 @@ Note that the periodic spikes at the start of each epoch are an artefact of grad ### 7.2 Validation #### Full-Val: 5 Epochs -![Validation ROUGE Scores](assets/val_rouge.png) +![Validation ROUGE Scores](images/val_rouge.png) | Epoch | ROUGE-1 | ROUGE-2 | ROUGE-L | ROUGE-Lsum | |-------|---------|---------|---------|------------| @@ -227,7 +224,7 @@ The best checkpoint achieves: #### Multi-Val: 2 Epochs - ![Multi-Val Rouge](assets/multi_val.png) + ![Multi-Val Rouge](images/multi_val.png) To make this behaviour clearer, we also trained the model for two epochs while performing four validation checks per epoch. This finer-grained view reveals a sharp jump in ROUGE by the first epoch evaluation (around 25% through epoch 1), confirming that most of the performance gain occurs very early in training. After this point, the curves flatten noticeably, showing that later updates provide only small refinements. From f9b6c408b6493c5c3478b19e2a20761f891aca03 Mon Sep 17 00:00:00 2001 From: jac0be Date: Fri, 14 Nov 2025 04:33:54 +1000 Subject: [PATCH 30/31] Updated requirements.txt to include rouge score dependencies. --- recognition/Flan_T5_s45893623/requirements.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/recognition/Flan_T5_s45893623/requirements.txt b/recognition/Flan_T5_s45893623/requirements.txt index e446ee149..e4d3c29a1 100644 --- a/recognition/Flan_T5_s45893623/requirements.txt +++ b/recognition/Flan_T5_s45893623/requirements.txt @@ -7,3 +7,6 @@ sentencepiece==0.2.1 numpy==2.3.3 matplotlib==3.10.7 tqdm==4.67.1 +absl-py==2.3.1 +nltk==3.9.2 +rouge_score==0.1.2 From 8da83c488939a498174b3bf67805337a596cb9e8 Mon Sep 17 00:00:00 2001 From: jac0be Date: Fri, 14 Nov 2025 14:14:32 +1000 Subject: [PATCH 31/31] Minor changes to README.md to tighten reasoning. --- recognition/Flan_T5_s45893623/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/recognition/Flan_T5_s45893623/README.md b/recognition/Flan_T5_s45893623/README.md index 9784cc4d3..63e8f980a 100644 --- a/recognition/Flan_T5_s45893623/README.md +++ b/recognition/Flan_T5_s45893623/README.md @@ -22,6 +22,7 @@ We use a pretrained FLAN-T5-base model with LoRA adapters to efficiently fine-tu +
FLAN-T5 is a variant of Google's T5 that has been instruction-tuned on a large number of diverse tasks. Whilst the original T5 was already a strong encoder-decoder transformer, FLAN-T5 is trained specifically to follow natural language instructions, making it more suitable at tasks phrased as "Rewrite this", "Summarise", or "Explain this". ### Encoder/Decoder Architecture @@ -119,11 +120,11 @@ The dataset provides the following splits by default: However, the `test` split is not useful for evaluation as it omits layman summaries. Hence, we optionally compute a `90:10` `train:test` split for hyperparameter tuning. A 10% hold-out is sufficient given the large dataset size, and avoids unneccesary computation during evaluation. -The final validation uses the default `validation` set, which remains untouched by our splits. This curated set avoids the noise from random partitioning and ensures that final results are comparable and reproducable. +The final evaluation uses the `validation` set by default, which remains untouched by our splits. This fixed validation set avoids the noise from random partitioning and ensures that final results are comparable and reproducable. ### 5.3 Prompts & Preprocessing -Minimal preprocessing was applied. We justify this as directly modifying the text may introduce bias and reduce real-world performance. We let FLAN-T5 handle and model any inconcistencies in language. +Minimal preprocessing was applied. We justify this as directly modifying the text may reduce our model's real-world performance, as we want our model to be robust to real clinical noise. We let FLAN-T5 handle and model any inconcistencies in language. Each input is embedded into a fixed instruction prompt: ``` @@ -199,7 +200,7 @@ We run training over all 150k rows across 5 epochs, using the default parameters The training loss curve shows a steep drop during the first ~2,000 steps, indicating that the model rapidly learns the relationship between reports and their summaries. This is not a suprise, considering the richness of each epoch. After this convergence, however, we begin to see diminishing returns, with loss slowly decreasing. This reflects smaller refinements to phrasing and style. -Note that the periodic spikes at the start of each epoch are an artefact of gradient accumulation rather than training instability. Because the model accumulates gradients for several batches before performing the first optimiser step, the logged loss during these early batches is divided by the accumulation factor which artificially inflates it. +Note that the periodic spikes at the start of each epoch are an artefact of gradient accumulation rather than training instability. Because the model accumulates gradients for several batches before performing the first optimiser step, it computes loss using weights that have not yet been updated. As a result, the logged loss appears higher during these early batches and then drops quickly once the first few updates occur. ### 7.2 Validation @@ -267,15 +268,14 @@ This section summarises the key training settings, LoRA configuration, model siz Across the selected examples, two broad failure modes emerge: 1. `Overly Clinical Language` -In the 4th sample, the model produces a summary that is technically accurate but fails to fully simplify it. Instead of paraphrasing jargon such as “sternotomy”, “cerclage”, and “pleura”, it repeats these clinical terms almost unchanged. This behaviour appears when the input consists of a dense cluster of specialised terms with no surrounding context. Each sentence in the report is essentially a list of named medical findings rather than descriptions of processes or effects. This is not a hallucination issue, it is concept-mapping failure caused by the structure of the input. In general, the model performs well when it can see *why* a clinical entity is mentioned (e.g. "pneumothorax in the upper right lobe"). But when the report is simply a stack of nouns, the model cannot reliably identify which concepts are important and therefore does not rewrite them. +In the 4th sample, the model produces a summary that is technically accurate but fails to fully simplify it. Instead of paraphrasing jargon such as “sternotomy”, “cerclage”, and “pleura”, it repeats these clinical terms almost unchanged. This behaviour appears when the input consists of a dense cluster of specialised terms with no surrounding context. Each sentence in the report is essentially a list of named medical findings rather than descriptions of processes or effects. This is a concept-mapping failure caused by the structure of the input. In general, the model performs well when it can see *why* a clinical entity is mentioned (e.g. "pneumothorax in the upper right lobe"). Sequence models rely heavily on context windows, relational cues and patterns, but when the report is simply a stack of nouns, the model struggles under a lack of signal / context needed to rewrite the medical terms. 2. `Semantic Drift on Rare Clinical Patterns` -We can observe a hallucination issue on the 3rd sample. The model incorrectly describes a 'persistent apical pneumothorax' as a collapsed lung which is somewhat related but not medically equivalent. This suggests that the model occasionally substitutes a more familiar medical concept when faced with highly specific terms. These errors tend to be small, but they directly affect factual correctness. +We can observe a hallucination issue on the 3rd sample. The model incorrectly describes a 'persistent apical pneumothorax' as a 'collapsed lung', which is somewhat related but not medically equivalent. This suggests that the model occasionally substitutes a more familiar medical concept when faced with highly specific terms. These errors tend to be small, but they directly affect factual correctness. -It's worth noting that these failure examples took an effort to find. Despite these issues, the model shows strong reliability across most cases, especially when the input phrasing is common in the training corpus. It rarely invents findings, avoids major hallucinations, and generally preserves clinical meaning. Its failures are not insignificant and are worth noting, but they represent specific edge cases rather than a complete systemic failure. - +Despite these issues, the model shows strong reliability across most cases, especially when the input phrasing is common in the training corpus. The model seldom invents findings, avoids major hallucinations, and generally preserves clinical meaning. However, failures do occur when the input consists largely of isolated, highly specific medical terms with no explanatation. For instance, phrases such as "persistent right apical pneumothorax." or "hiatal hernia" provide little contextual structure for the model to interpret. In these cases, the model either repeats the terms verbatim rather than simplifying, or substitutes to a basic concept that may not be medically equivalent.

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