PEFT adapts a model by training a tiny fraction of its parameters — newly added adapter weights, or a small selected subset — which keeps optimizer state and memory low while matching full fine-tuning on many tasks. Shortening a full run, working layer by layer, or training on self-generated data all still update the whole model, so none of them is parameter-efficient.
Official docs