v0.19.0
Highlights
This PEFT release contains no less than nine new PEFT methods, described below. It also contains numerous enhancements that should make PEFT more useful to many users.
<img width="1248" height="560" alt="peft-v0 19 0" src="https://github.com/user-attachments/assets/f2878d0d-b1a1-46d0-9b61-55ab6097694c" />New Methods
GraLoRA
@yeonjoon-jung01 added "GraLoRA: Granular Low-Rank Adaptation for Parameter-Efficient Fine-Tuning" to PEFT (#2851). This method subdivides the base weight into smaller blocks and applies LoRA to those. This more granular adaptation promises to increase expressiveness and improve performance, especially at higher ranks (64+), closing the gap to full fine-tuning.
BD-LoRA
@Conzel contributed BD-LoRA: "Block-Diagonal LoRA for Eliminating Communication Overhead in Tensor Parallel LoRA Serving" (#2895). With BD-LoRA, the LoRA weights are implemented in a block-diagonal way. This allows to reduce communication overhead when using tensor parallelism (TP) and thus faster serving.
There is an experiment branch for BD-LoRA support in vLLM: vllm-project/vllm#28136.
Cartridges
Thanks to @kashif, PEFT now also supports Cartridges (#2953). The main purpose of this method is to train a prefix to compress a long context to a short size and thus save on tokens. On a low level, this is similar to prefix tuning. The PR also added an example recipe to quickly get started.
PVeRA
"PVeRA: Probabilistic Vector-Based Random Matrix Adaptation" was added to PEFT by @leofillioux in #2952. It is an extension of VeRA, a PEFT method that uses weight sharing between layers to be especially parameter efficient. PVeRA builds on top of that by adding a probabilistic element, sampling from the shared parameters and promising better performance overall.
PSOFT
@fei407 added PSOFT, "Efficient Orthogonal Fine-Tuning with Principal Subspace Adaptation", to PEFT in #3037. Orthogonal fine-tuning techniques like OFT and BOFT are good at preserving the structure and thus capabilities of the underlying base model. PSOFT improves efficiency of this technique by constraining the adaptation to low-rank principal subspace.
Lily
@yibozhong added Lily: "Low-Rank Interconnected Adaptation across Layers" to PEFT in #2563. Lily is on the surface similar to LoRA but has a sophisticated parameter sharing scheme. The A parameters are shared blockwise (e.g. 4 consecutive q_proj layers share the same A). There is a pool of B parameters that is shared globally, the actual B's are chosen in a data-dependent way through a router. This allows Lily to use higher ranks than LoRA while maintaining a low trainable parameter count.
PEANuT
In #3084, "PEANuT: Parameter-Efficient Adaptation with Weight-aware Neural Tweakers" was added to PEFT, again by @yibozhong. PEANuT adds a small, neural net (so called weight-aware neural tweakers) to the base model. Compared to LoRA, this increases expressivity for the same trainable parameter count or allows to greatly lower the parameter count without sacrificing expressivity. This comes at the expensive of a higher memory requirement for the same parameter count and decreased speed.
TinyLoRA
We have another serial contributor in @kashif, who also contributed TinyLoRA: "Learning to Reason in 13 Parameters" in #3024. This is a PEFT method that allows to train an extremely small number of parameters, much lower than what could be achieved even with LoRA rank 1. The paper shows that in particular with reinforcement learning, it can often be enough to train just a few parameters to achieve good results.
AdaMSS
@LonglongaaaGo added "AdaMSS: Adaptive Multi-Subspace Approach for Parameter-Efficient Fine-Tuning" to PEFT. This method segments the base weights of the model into smaller subspaces that are targeted for fine-tuning. Moreover, it's possible to dynamically assign a lower parameter budget to less important subspaces during training, similar to what AdaLoRA does. This promises to provide higher expressiveness and better generalization than similar PEFT methods.
Enhancements
Convert non-LoRA adapters to LoRA
In #2939, we added functions to PEFT to allow converting checkpoints of many non-LoRA methods into LoRA checkpoints. This can be useful because many other packages support only LoRA but not other PEFT methods, e.g. Diffusers and vLLM. With the new conversions tools, more PEFT methods than just LoRA can thus be used with those packages. Conversion is lossy but empirical testing showed that with a sufficiently high LoRA rank, the error can be quite low.
LoRA-GA
@sambhavnoobcoder added a new way to initialize LoRA weights with "LoRA-GA: Low-Rank Adaptation with Gradient Approximation" (#2926). This allows you to initialize the LoRA weights in a way that aligns the gradients with full fine-tuning and should lead to faster training convergence.
Reducing intruder dimensions
In "LoRA vs Full Fine-tuning: An Illusion of Equivalence", the authors showed that LoRA fine-tuning can introduce so-called "intruder dimensions" which contribute to forgetting. We now have a utility function to remove intruder dimension in PEFT, reduce_intruder_dimension. When calling this on a fine-tuned LoRA model, forgetting should be reduced while the fine-tuned task performance should remain almost the same.
Transformer Engine
In #3048, @balvisio added support for Transformer Engine, a quantization method by NVIDIA, to PEFT.
Tensor Parallel Support
In a series of PRs (#3079, #3091, #3096), @michaelbenayoun added support for Tensor Parallelism to LoRA.
Weight tying improvements
In many LLMs, the embedding and the LM head have tied weights to save on parameter count. This can, however, lead to tricky situations when trying to fine-tune those layers. Through a series of PRs (#2803, #2922, #2870, #2879, #3126), we improved the user experience when doing so. Most notably, users can now pass ensure_weight_tying=True to their PEFT config to force weight tying to be upheld. Please check the PEFT weight tying docs for how weight tying is now being handled. Thanks to @romitjain, @sambhavnoobcoder, and @Cursx for their contributions.
Low precsion floating type support
#3055 makes LoRA work with base models that use very low precision floats like torch.float8_e4m3fn. An example of that would be MiniMax-M2.5.
Zero init for PrefixTuning
#3128 introduces zero init to Prefix Tuning which, according to our benchmarks, reduced the result variance significantly and yielded good task accuracy without the need for prompt engineering.
LoftQ + int8 quantization
With #3088 the LoftQ implementation now supports correcting errors for int8 quantization without utilizing activation thresholding alongside the already existing nf4 quantization.
Changes
Removal of Bone
The Bone PEFT method was removed in #3115. Users are directed to use MiSS instead, which is the improved replacement for Bone. Use this Bone-to-MiSS conversion script if you want to port old Bone checkpoints.
AutoGPTQ and AutoAWQ
These two quantization methods now use GPTQModel as their backend (#2932) thanks to @ZX-ModelCloud.
Handling of requires_grad in modules_to_save
Previously, PEFT would enable requires_grad on the original module if the corresponding modules_to_save was disabled. This is almost never desirable and was thus fixed. Although this change is technically backwards-incompatible, it's an extreme niche case, so we don't expect any user to be negatively affected by it.
All Changes
- FIX SFT example (8bit quant, trl) by @BenjaminBossan in https://github.com/huggingface/peft/pull/2857
- TST Add GPU training tests for p-tuning & prefix tuning by @BenjaminBossan in https://github.com/huggingface/peft/pull/2844
- CHORE: Bump Python version in pyproject.toml by @BenjaminBossan in https://github.com/huggingface/peft/pull/2865
- MNT: Clean up unused method set_auxiliary_adapters by @BenjaminBossan in https://github.com/huggingface/peft/pull/2876
- ENH: Improve MetaMath training script runtime by @BenjaminBossan in https://github.com/huggingface/peft/pull/2894
- CI: Install fbgemm package needed by torchao, update test by @BenjaminBossan in https://github.com/huggingface/peft/pull/2887
- Resolve #2431: Remove macos-13 from tests by @githubnemo in https://github.com/huggingface/peft/pull/2906
- FEAT add GraLoRA by @yeonjoon-jung01 in https://github.com/huggingface/peft/pull/2851
- TST FIX: Issue with pickle models and caching by @BenjaminBossan in https://github.com/huggingface/peft/pull/2913
- Bump version to 0.18.1.dev0 after release by @BenjaminBossan in https://github.com/huggingface/peft/pull/2910
- FIX Move further models to safetensors by @BenjaminBossan in https://github.com/huggingface/peft/pull/2920
- Add Marian to author list by @BenjaminBossan in https://github.com/huggingface/peft/pull/2909
- FIX Load quantized weights with PEFT mixed model by @BenjaminBossan in https://github.com/huggingface/peft/pull/2915
- FIX Bug when merging negatively weighted adapters by @BenjaminBossan in https://github.com/huggingface/peft/pull/2918
- FIX Beam search w/ mixed adapter batches & encoder by @BenjaminBossan in https://github.com/huggingface/peft/pull/2921
- Deal with weight tying in transformers >=5 by @githubnemo in https://github.com/huggingface/peft/pull/2922
- Fix caching for LoRA parametrizations on nn.Parameter by @jonnyli1125 in https://github.com/huggingface/peft/pull/2912
- MetaMath: Add forgetting metric by @BenjaminBossan in https://github.com/huggingface/peft/pull/2925
- Fix EETQ GPU Docker image build by @githubnemo in https://github.com/huggingface/peft/pull/2935
- FIX Transformers v5 fixes by @BenjaminBossan in https://github.com/huggingface/peft/pull/2934
- ENH: Improve torch.compile support in MetaMath by @BenjaminBossan in https://github.com/huggingface/peft/pull/2900
- TST: Clean up testing by @BenjaminBossan in https://github.com/huggingface/peft/pull/2846
- FIX: Some GPU tests failing due to transformers v5 by @BenjaminBossan in https://github.com/huggingface/peft/pull/2937
- FIX Don't set requires_grad on original module by @BenjaminBossan in https://github.com/huggingface/peft/pull/2936
- [FEAT] Integrate BD-LoRA into PEFT by @Conzel in https://github.com/huggingface/peft/pull/2895
- Test cleaning pytest caches by @githubnemo in https://github.com/huggingface/peft/pull/2938
- FIX Migrate method comparison space to Gradio 6 by @BenjaminBossan in https://github.com/huggingface/peft/pull/2947
- TST Remove unnecessary PREFIXES constant by @BenjaminBossan in https://github.com/huggingface/peft/pull/2942
- TST: Remove unnecessary prefix tuning dtype test by @BenjaminBossan in https://github.com/huggingface/peft/pull/2955
- detect if torch.distributed is available by @vladmandic in https://github.com/huggingface/peft/pull/2963
- FIX: Inject from state dict into compiled model by @BenjaminBossan in https://github.com/huggingface/peft/pull/2962
- FIX: Correct adapter dtype with bnb weights by @BenjaminBossan in https://github.com/huggingface/peft/pull/2893
- CI For transformers main tests, clear disk space by @BenjaminBossan in https://github.com/huggingface/peft/pull/2956
- Add cartridges to PEFT by @kashif in https://github.com/huggingface/peft/pull/2953
- fix oft gptq forward by @jiqing-feng in https://github.com/huggingface/peft/pull/2978
- FIX Don't implicitly require transformers v4.52 by @BenjaminBossan in https://github.com/huggingface/peft/pull/2976
- FEAT Add function to convert non-LoRA PEFT adapters to LoRA by @BenjaminBossan in https://github.com/huggingface/peft/pull/2939
- FIX Bug in how forgetting metric treats padding by @BenjaminBossan in https://github.com/huggingface/peft/pull/2986
- Upgrade GitHub Actions to latest versions by @salmanmkc in https://github.com/huggingface/peft/pull/2966
- Implement ensure_weight_tying for trainable_token_indices (#2864) by @sambhavnoobcoder in https://github.com/huggingface/peft/pull/2870
- fix device map check by @jiqing-feng in https://github.com/huggingface/peft/pull/2979
- Updated MetaMathQA results by @githubnemo in https://github.com/huggingface/peft/pull/2984
- add Intel XPU platform support for cartridge_self_study example by @kaixuanliu in https://github.com/huggingface/peft/pull/2990
- Add Conv1D support to CoRDA for GPT-2 compatibility #2991 by @sambhavnoobcoder in https://github.com/huggingface/peft/pull/2992
- Update prompt_based_methods.md - remove eval_preds by @maerory in https://github.com/huggingface/peft/pull/2994
- Bump version to 0.18.2.dev0 after release by @BenjaminBossan in https://github.com/huggingface/peft/pull/2985
- DOC Prefix tuning for encoder-decoder models by @BenjaminBossan in https://github.com/huggingface/peft/pull/2989
- TST Remove tests that are completely skipped by @BenjaminBossan in https://github.com/huggingface/peft/pull/2965
- TST Fix tolerance issue with GPT-OSS and transformers v5 by @BenjaminBossan in https://github.com/huggingface/peft/pull/2982
- TST Small clean up regarding weight initialization by @BenjaminBossan in https://github.com/huggingface/peft/pull/2961
- ENH Cache DoRA weight norm for inference by @BenjaminBossan in https://github.com/huggingface/peft/pull/2661
- Add OSF continual learning example by @NikhilNayak-debug in https://github.com/huggingface/peft/pull/2897
- LoRA-GA Integration by @sambhavnoobcoder in https://github.com/huggingface/peft/pull/2926
- FIX Don't warn about unknown layer type when using target parameters by @BenjaminBossan in https://github.com/huggingface/peft/pull/2997
- lower tol for specific test by @jiqing-feng in https://github.com/huggingface/peft/pull/2996
- Refactor layer initialization to use PEFT config directly by @BenjaminBossan in https://github.com/huggingface/peft/pull/2960
- CI: Add FSDP tests on multi GPU machine by @BenjaminBossan in https://github.com/huggingface/peft/pull/2856
- Bugfix turned into restructuring by @githubnemo in https://github.com/huggingface/peft/pull/3003
- Intruder dimension reduction for LoRA by @githubnemo in https://github.com/huggingface/peft/pull/2999
- [LoRA] Document support for effective rank for LoRA on MOE experts by @kashif in https://github.com/huggingface/peft/pull/3007
- Fix fbgemm exception in nightly CI by @githubnemo in https://github.com/huggingface/peft/pull/3010
- Ignore BPE errors in tests by @githubnemo in https://github.com/huggingface/peft/pull/3011
- Fix initialization bug introduced in #2960 by @githubnemo in https://github.com/huggingface/peft/pull/3006
- Fully deprecate AutoGPTQ and AutoAWQ for GPT-QModel by @ZX-ModelCloud in https://github.com/huggingface/peft/pull/2932
- Fix two issues introduced in AutoGPTQ deprecation by @githubnemo in https://github.com/huggingface/peft/pull/3014
- Fix docker GPU build for gptqmodel by @githubnemo in https://github.com/huggingface/peft/pull/3018
- Fix docker CPU build by @githubnemo in https://github.com/huggingface/peft/pull/3023
- nightly-gpu: Make sure that all steps are run by @githubnemo in https://github.com/huggingface/peft/pull/3030
- Fix various test errors in the single GPU case by @githubnemo in https://github.com/huggingface/peft/pull/3031
- FIX: warmup_ratio deprecated (fixes #2949) by @shantanugupta2004 in https://github.com/huggingface/peft/pull/2950
- Upgrade GitHub Actions for Node 24 compatibility by @salmanmkc in https://github.com/huggingface/peft/pull/3008
- Improve LoftQ documentation by @githubnemo in https://github.com/huggingface/peft/pull/3041
no_split_modulesnow captures values recursively by @githubnemo in https://github.com/huggingface/peft/pull/3032- FIX Issue with disable adapter test by @BenjaminBossan in https://github.com/huggingface/peft/pull/3045
- Fix error of PEFT with disable adapters and FSDP by @Isalia20 in https://github.com/huggingface/peft/pull/3001
- Add Dependabot configuration for GitHub Actions by @salmanmkc in https://github.com/huggingface/peft/pull/3040
- Bump the ci-actions group with 2 updates by @dependabot[bot] in https://github.com/huggingface/peft/pull/3060
- Bump the third-party-actions group with 7 updates by @dependabot[bot] in https://github.com/huggingface/peft/pull/3061
- Integration of PVeRA by @leofillioux in https://github.com/huggingface/peft/pull/2952
- FIX OPT regression test after dtype change from v5 by @BenjaminBossan in https://github.com/huggingface/peft/pull/3053
- CI: Dependabot PRs don't trigger unit tests by @BenjaminBossan in https://github.com/huggingface/peft/pull/3062
- CHORE: Remove deprecated Bone method by @BenjaminBossan in https://github.com/huggingface/peft/pull/3051
- FIX Multiple failing nightly GPU tests by @BenjaminBossan in https://github.com/huggingface/peft/pull/3052
- TST Improve speed of X-LoRA, Eva, and Poly tests by @BenjaminBossan in https://github.com/huggingface/peft/pull/3046
- FIX Syntax error in test workflow file by @BenjaminBossan in https://github.com/huggingface/peft/pull/3065
- ENH: Tie weights for target_modules in Lora (#2864) by @romitjain in https://github.com/huggingface/peft/pull/2879
- FIX Two transformers warnings when generating in MetaMath train script by @BenjaminBossan in https://github.com/huggingface/peft/pull/3064
- FIX Flaky X-LoRA test after adding caching by @BenjaminBossan in https://github.com/huggingface/peft/pull/3068
- fix: clean up peft_config from model on unload() and merge_and_unload() by @zamal-db in https://github.com/huggingface/peft/pull/3067
- Add PSOFT tuner implementation by @fei407 in https://github.com/huggingface/peft/pull/3037
- FEAT: add more generic device support for pvera by @kaixuanliu in https://github.com/huggingface/peft/pull/3074
- Add support for LoRA with Transformer Engine by @balvisio in https://github.com/huggingface/peft/pull/3048
- Fix adalora layer init refactor 2960 by @BenjaminBossan in https://github.com/huggingface/peft/pull/3070
- CHORE: Bump 3rd party GH actions by @BenjaminBossan in https://github.com/huggingface/peft/pull/3076
- Fix: Respect
inference_modewhen setting adapters withmodules_to_save(Issue #2928) by @ada-ggf25 in https://github.com/huggingface/peft/pull/2931 - [Lily] implementations for peft integration by @yibozhong in https://github.com/huggingface/peft/pull/3036
- [feature] Tiny modification to enable OFT for finetuning embedding layers by @zqiu24 in https://github.com/huggingface/peft/pull/3005
- FIX Error with PSOFT fp16/bf16 on GPU by @BenjaminBossan in https://github.com/huggingface/peft/pull/3087
- Ensure that te.pytorch exists by @githubnemo in https://github.com/huggingface/peft/pull/3081
- FIX Add guard when detecting the optimum version by @BenjaminBossan in https://github.com/huggingface/peft/pull/3042
- Partial fix for LoftQ + int8 quantization by @githubnemo in https://github.com/huggingface/peft/pull/3088
- Update contributing guidelines regarding typos by @githubnemo in https://github.com/huggingface/peft/pull/3094
- FIX Distributed training tests and extend them by @BenjaminBossan in https://github.com/huggingface/peft/pull/3092
- [AdaLoRA] fix update_layer api by @kashif in https://github.com/huggingface/peft/pull/3099
- [FEAT] Add PEANuT to peft by @yibozhong in https://github.com/huggingface/peft/pull/3084
- FIX GraLoRA: Use its own target module mapping by @BenjaminBossan in https://github.com/huggingface/peft/pull/3105
- docs: replace deprecated financial_phrasebank dataset in IA3 tutorial by @dhruvildarji in https://github.com/huggingface/peft/pull/3058
- LoRA and Transformers TP by @michaelbenayoun in https://github.com/huggingface/peft/pull/3079
- CHORE Remove deprecated Bone experiments by @BenjaminBossan in https://github.com/huggingface/peft/pull/3115
- Embeddings LoRA & TP by @michaelbenayoun in https://github.com/huggingface/peft/pull/3091
- Improve DeloRA: add config validation, dedicated tests, and fix typos by @joshuaswanson in https://github.com/huggingface/peft/pull/3097
- DOC Improve LoRA conversion docs by @BenjaminBossan in https://github.com/huggingface/peft/pull/3118
- FIX Deal with missing attribute on model config by @BenjaminBossan in https://github.com/huggingface/peft/pull/3109
- CHORE Zizmor: branch protection for GH workflows by @BenjaminBossan in https://github.com/huggingface/peft/pull/3103
- miss update by @Joluck in https://github.com/huggingface/peft/pull/3122
- FIX Broken tests with torchao >= 0.15 by @BenjaminBossan in https://github.com/huggingface/peft/pull/3101
- Bump actions/cache from 5.0.3 to 5.0.4 in the ci-actions group by @dependabot[bot] in https://github.com/huggingface/peft/pull/3124
- Changes for transformers 5 weight conversion by @BenjaminBossan in https://github.com/huggingface/peft/pull/3083
- [TinyLoRA]tinylora implementation by @kashif in https://github.com/huggingface/peft/pull/3024
- FIX Cache position is None with transformers v5.4 by @BenjaminBossan in https://github.com/huggingface/peft/pull/3120
- FIX Issues with transformer weight conversion code by @BenjaminBossan in https://github.com/huggingface/peft/pull/3127
- Add AdaMSS tuner with Adaptive Subspace Allocation (ASA) by @LonglongaaaGo in https://github.com/huggingface/peft/pull/2987
- CI FIX Some tests require torchvision by @BenjaminBossan in https://github.com/huggingface/peft/pull/3135
- Add zero init support in Prefix Tuning by @githubnemo in https://github.com/huggingface/peft/pull/3128
- DOC Update contribution guidelines by @BenjaminBossan in https://github.com/huggingface/peft/pull/3119
- Fix save_pretrained writing incorrect tie_word_embeddings=True config after PEFT merge by @Cursx in https://github.com/huggingface/peft/pull/3126
- Enable XPU support for GPTQ tests in PEFT by @jiqing-feng in https://github.com/huggingface/peft/pull/3137
- DOC: Info about runtime performance of LoRA on MoE by @BenjaminBossan in https://github.com/huggingface/peft/pull/3138
- Remove references to torchao's AffineQuantizedTensor by @andrewor14 in https://github.com/huggingface/peft/pull/3140
- Enh add default target modules for gemma4 and tests by @BenjaminBossan in https://github.com/huggingface/peft/pull/3136
- DOC: Section on weight tying with LoRA by @BenjaminBossan in https://github.com/huggingface/peft/pull/3066
- FIX CI Remove invalid arg in nightly GPU test call by @BenjaminBossan in https://github.com/huggingface/peft/pull/3104
- CI Move slow EVA tests to nightly GPU CI by @BenjaminBossan in https://github.com/huggingface/peft/pull/3108
- enable arrow xpu tests by @jiqing-feng in https://github.com/huggingface/peft/pull/3145
- Save checkpoint with TP by @michaelbenayoun in https://github.com/huggingface/peft/pull/3096
- Bump the third-party-actions group with 8 updates by @dependabot[bot] in https://github.com/huggingface/peft/pull/3125
- Fix DARE rescaling no-op in random_pruning by @Chessing234 in https://github.com/huggingface/peft/pull/3152
- ENH Support models with low precision float dtypes by @BenjaminBossan in https://github.com/huggingface/peft/pull/3055
- FIX Explicit weight conversion map for Mixtral by @BenjaminBossan in https://github.com/huggingface/peft/pull/3146
- Release 0.19.0 by @BenjaminBossan in https://github.com/huggingface/peft/pull/3155
New Contributors
- @yeonjoon-jung01 made their first contribution in https://github.com/huggingface/peft/pull/2851
- @jonnyli1125 made their first contribution in https://github.com/huggingface/peft/pull/2912
- @Conzel made their first contribution in https://github.com/huggingface/peft/pull/2895
- @vladmandic made their first contribution in https://github.com/huggingface/peft/pull/2963
- @salmanmkc made their first contribution in https://github.com/huggingface/peft/pull/2966
- @maerory made their first contribution in https://github.com/huggingface/peft/pull/2994
- @ZX-ModelCloud made their first contribution in https://github.com/huggingface/peft/pull/2932
- @Isalia20 made their first contribution in https://github.com/huggingface/peft/pull/3001
- @dependabot[bot] made their first contribution in https://github.com/huggingface/peft/pull/3060
- @leofillioux made their first contribution in https://github.com/huggingface/peft/pull/2952
- @zamal-db made their first contribution in https://github.com/huggingface/peft/pull/3067
- @fei407 made their first contribution in https://github.com/huggingface/peft/pull/3037
- @balvisio made their first contribution in https://github.com/huggingface/peft/pull/3048
- @ada-ggf25 made their first contribution in https://github.com/huggingface/peft/pull/2931
- @yibozhong made their first contribution in https://github.com/huggingface/peft/pull/3036
- @dhruvildarji made their first contribution in https://github.com/huggingface/peft/pull/3058
- @michaelbenayoun made their first contribution in https://github.com/huggingface/peft/pull/3079
- @joshuaswanson made their first contribution in https://github.com/huggingface/peft/pull/3097
- @LonglongaaaGo made their first contribution in https://github.com/huggingface/peft/pull/2987
- @Cursx made their first contribution in https://github.com/huggingface/peft/pull/3126
- @andrewor14 made their first contribution in https://github.com/huggingface/peft/pull/3140
- @Chessing234 made their first contribution in https://github.com/huggingface/peft/pull/3152
Full Changelog: https://github.com/huggingface/peft/compare/v0.18.1...v0.19.0
Fetched April 14, 2026
