Fairness-Aware Test-Time Prompt Tuning
Organizations: University of Cambridge · Risk and Security AI Lab, Visa Inc. · University of Manchester
Abstract
Vision-language models have displayed remarkable capabilities in multi-modal understanding and are increasingly used in critical applications where economic and practical deployment constraints prohibit re-training or fine-tuning. However, these models can also exhibit systematic biases that disproportionately affect protected demographic groups and existing approaches to addressing these biases require extensive model retraining and access to demographic attributes. There is a clear need to develop test-time adaptation (TTA) approaches that improve the fairness characteristics of pretrained models under distributional shift. In this paper, we evaluate how episodic TTA affects fairness in CLIP classification under subpopulation shifts and develop FairTPT, a novel fairness-aware episodic TTA method that jointly minimizes target marginal entropy while maximizing spurious marginal entropy through soft-prompt tuning. We find that standard episodic TTA generally exacerbates disparities between majority and minority groups, that blinding a model to spurious attributes without degrading target performance is inherently challenging, and that excessive blinding can lead to catastrophic forgetting. This model collapse can be prevented by monitoring test-time changes in target loss within the linear regime, while still achieving fairness improvements on reactive data and preserving overall performance. FairTPT outperforms all state-of-the-art episodic test-time debiasing methods and establishes a foundation for robust TTA, which is essential for achieving fairness in practice.
Figures & tables
| Method | FairFace | CelebA | WaterBirds | UTKFace | Average Results | |||||||||||||||||||||||
| A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | |
| Zero-Shot | 95.7 | 90.0 | 5.7 | 9.4 | 86.4 | 67.8 | 18.6 | 22.3 | 75.8 | 53.7 | 22.1 | 8.0 | 83.8 | 40.2 | 43.7 | 25.0 | 80.3 | 45.7 | 34.5 | 23.2 | 97.1 | 90.1 | 7.0 | 9.1 | 86.5 | 64.6 | 21.9 | 16.2 |
| Episodic test-time adaptation methods | ||||||||||||||||||||||||||||
| TPT | 93.6 | 85.0 | 8.6 | 12.4 | 92.0 | 42.6 | 49.4 | 37.6 | 59.4 | 20.0 | 39.4 | 5.0 | 84.0 | 40.8 | 43.1 | 37.1 | 87.5 | 57.7 | 29.8 | 26.3 | 94.3 | 86.4 | 7.9 | 8.0 | 85.1 | 55.4 | 29.7 | 21.1 |
| Zero | 91.2 | 78.6 | 12.6 | 11.9 | 90.4 | 56.3 | 34.0 | 23.8 | 69.9 | 38.0 | 31.9 | 11.1 | 83.1 | 40.0 | 43.2 | 29.0 | 86.2 | 53.8 | 32.4 | 28.7 | 93.5 | 77.8 | 15.7 | 13.4 | 85.7 | 57.4 | 28.3 | 19.6 |
Appendix figures & tables16 assets
Supplementary material from the paper’s appendix.
Appendix
| Method | Explicit debiasing | Unsupervised | Episodic | Difference from our setup |
| OrthCali [ 11 ] | ✓ | ✓ | ✓ | — |
| SEraser [ 30 ] | ✓ | ✓ | ✓ | — |
| BendVLM [ 13 ] | ✓ | Requires a reference dataset of images with spurious labels. | ||
| RoboSHOT [ 1 ] | ✓ | ✓ | Spurious attributes suggested by an LLM. | |
| TIE [ 29 ] | ✓ | Supervised with respect to the spurious attribute for each batch. | ||
| TIE ∗ [ 29 ] | ✓ | ✓ | Scale coefficient computed as the batch average. |
| Method | Optimizer | |||||||
| TPT | AdamW | |||||||
| Zero | ||||||||
| OrthCali | ||||||||
| FairTPT | SGD | Any | 0.01 | 1 | ||||
| FairTPT (MO) | UPGrad | Any | 0.01 | 1 | ||||
| FairTPT w/o ELRA | AdamW | 1 |
| Dataset | Loss Term | Initial Prompt Template |
|---|---|---|
| FairFace [ 20 ] | A photo of a [T-CLS] person. | |
| A photo of a [S-CLS] person. | ||
| A photo of a [S-CLS] [T-CLS] person. | ||
| CelebA [ 27 ] | A photo of a celebrity [T-CLS]. | |
| A photo of a [S-CLS] celebrity. | ||
| A photo of a [S-CLS] celebrity [T-CLS]. |
| Dataset | Target Attribute ( [T-CLS] String) | Spurious Attribute ( [S-CLS] String) |
|---|---|---|
| FairFace | Gender ( male , female ) | Race ( White , Southeast Asian , Middle Eastern , |
| Black , Indian , Latino Hispanic , East Asian ) | ||
| CelebA | Hair color ( with dark hair , with blond hair ) | Gender ( male , female ) |
| Smile ( smiling , not smiling ) | ||
| WaterBirds | Bird type ( of a water bird , of a land bird ) | Background ( on water , on land ) |
| UTKFace | Age ( young , old ) | Race ( White , Black , Asian , Indian ) |
| Method | FairFace | CelebA | WaterBirds | UTKFace | Average Results | |||||||||||||||||||||||
| A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | |
| Zero Shot | 95.7 | 90.0 | 5.7 | 9.4 | 86.4 | 67.8 | 18.6 | 22.3 | 75.8 | 53.7 | 22.1 | 8.0 | 83.8 | 40.2 | 43.7 | 25.0 | 80.3 | 45.7 | 34.5 | 23.2 | 97.1 | 90.1 | 7.0 | 9.1 | 86.5 | 64.6 | 21.9 | 16.2 |
| 95.7 | 90.5 | 5.2 | 8.9 | 86.5 | 67.8 | 18.8 | 22.3 | 75.5 | 52.9 | 22.6 | 8.3 | 83.8 | 40.2 | 43.7 | 25.0 | 80.3 | 45.6 | 34.6 | 23.3 | 97.1 | 90.3 | 6.8 | 8.9 | 86.5 | 64.5 | 21.9 | 16.1 | |
| 95.7 | 90.3 | 5.4 | 9.1 | 86.5 | 67.8 | 18.8 | 22.3 | 75.5 | 52.9 | 22.6 | 8.3 | 83.9 | 40.2 | 43.7 | 25.2 | 80.3 | 45.6 | 34.6 | 23.3 | 97.1 | 90.3 | 6.8 | 8.9 | 86.5 | 64.5 | 22.0 | 16.2 | |
| Method | FairFace | CelebA | WaterBirds | UTKFace | Average Results | |||||||||||||||||||||||
| A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | |
| Zero Shot | 95.7 | 90.0 | 5.7 | 9.4 | 86.4 | 67.8 | 18.6 | 22.3 | 75.8 | 53.7 | 22.1 | 8.0 | 83.8 | 40.2 | 43.7 | 25.0 | 80.3 | 45.7 | 34.5 | 23.2 | 97.1 | 90.1 | 7.0 | 9.1 | 86.5 | 64.6 | 21.9 | 16.2 |
| 91.2 | 78.6 | 12.6 | 11.9 | 90.4 | 56.3 | 34.0 | 23.8 | 69.9 | 38.0 | 31.9 | 11.1 | 83.1 | 40.0 | 43.2 | 29.0 | 86.2 | 53.8 | 32.4 | 28.7 | 93.5 | 77.8 | 15.7 | 13.4 | 85.7 | 57.4 | 28.3 | 19.6 | |
| 93.4 | 83.3 | 10.1 | 11.4 | 90.4 | 56.3 | 34.1 | 27.1 | 68.7 | 34.3 | 34.4 | 12.6 | 83.9 | 41.9 | 42.0 | 31.0 | 86.6 | 56.0 | 30.5 | 30.3 | 94.8 | 81.4 | 13.4 | 12.9 | 86.3 | 58.9 | 27.4 | 20.9 | |
| 94.1 | 86.2 | 7.8 | 9.3 | 90.3 | 56.3 | 34.0 | 28.0 | 68.2 | 33.1 | 35.1 | 13.2 | 84.1 | 42.1 | 42.0 | 31.1 | 87.0 | 58.3 | 28.7 | 28.1 | 94.9 | 80.2 | 14.7 | 14.2 | 86.4 | 59.4 | 27.1 | 20.6 | |
| Method | FairFace | CelebA | WaterBirds | UTKFace | Average Results | |||||||||||||||||||||||
| A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | |
| Zero Shot | 95.7 | 90.0 | 5.7 | 9.4 | 86.4 | 67.8 | 18.6 | 22.3 | 75.8 | 53.7 | 22.1 | 8.0 | 83.8 | 40.2 | 43.7 | 25.0 | 80.3 | 45.7 | 34.5 | 23.2 | 97.1 | 90.1 | 7.0 | 9.1 | 86.5 | 64.6 | 21.9 | 16.2 |
| 96.2 | 90.9 | 5.3 | 8.5 | 86.2 | 70.7 | 15.5 | 22.7 | 71.8 | 40.1 | 31.7 | 24.4 | 85.5 | 55.7 | 29.9 | 4.3 | 81.1 | 45.2 | 36.0 | 18.9 | 96.9 | 89.6 | 7.3 | 9.4 | 86.3 | 65.4 | 20.9 | 14.7 | |
| 96.2 | 90.9 | 5.3 | 8.5 | 86.2 | 70.7 | 15.5 | 22.7 | 71.7 | 39.9 | 31.8 | 24.5 | 86.0 | 58.5 | 27.5 | 3.6 | 81.1 | 45.2 | 36.0 | 18.2 | 96.9 | 89.6 | 7.3 | 9.4 | 86.4 | 65.8 | 20.6 | 14.5 | |
| 96.1 | 90.6 | 5.5 | 8.8 | 86.1 | 70.7 | 15.4 | 22.5 | 71.5 | 38.3 | 33.2 | 27.6 | 86.5 | 63.1 | 23.4 | 8.5 | 81.1 | 45.2 | 36.0 | 18.6 | 97.0 | 89.6 | 7.3 | 9.4 | 86.4 | 66.3 | 20.1 | 15.9 | |
| Method | FairFace | CelebA | WaterBirds | UTKFace | Average Results | |||||||||||||||||||||||
| A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | |
| Zero Shot | 95.7 | 90.0 | 5.7 | 9.4 | 86.4 | 67.8 | 18.6 | 22.3 | 75.8 | 53.7 | 22.1 | 8.0 | 83.8 | 40.2 | 43.7 | 25.0 | 80.3 | 45.7 | 34.5 | 23.2 | 97.1 | 90.1 | 7.0 | 9.1 | 86.5 | 64.6 | 21.9 | 16.2 |
| FairTPT | ||||||||||||||||||||||||||||
| 95.5 | 90.5 | 5.0 | 8.8 | 86.2 | 67.7 | 18.5 | 22.0 | 75.3 | 52.6 | 22.7 | 8.1 | 83.9 | 41.0 | 42.8 | 26.2 | 80.3 | 46.5 | 33.8 | 22.5 | 97.0 | 90.6 | 6.5 | 8.7 | 86.4 | 64.8 | 21.6 | 16.1 | |
| 95.5 | 90.7 | 4.8 | 8.1 | 85.6 | 67.7 | 17.9 | 21.9 | 75.9 | 56.1 | 19.8 | 6.2 | 83.2 | 42.4 | 40.8 | 23.5 | 81.0 | 51.5 | 29.5 | 23.4 | 96.7 | 90.6 | 6.1 | 8.6 | 86.3 | 66.5 | 19.8 | 15.3 | |
| Method | FairFace | CelebA | WaterBirds | UTKFace | Average Results | |||||||||||||||||||||||
| A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | |
| Zero Shot | 95.7 | 90.0 | 5.7 | 9.4 | 86.4 | 67.8 | 18.6 | 22.3 | 75.8 | 53.7 | 22.1 | 8.0 | 83.8 | 40.2 | 43.7 | 25.0 | 80.3 | 45.7 | 34.5 | 23.2 | 97.1 | 90.1 | 7.0 | 9.1 | 86.5 | 64.6 | 21.9 | 16.2 |
| FairTPT and FairTPT (MO) with S loss | ||||||||||||||||||||||||||||
| 95.5 | 90.5 | 5.0 | 8.8 | 86.2 | 67.7 | 18.5 | 22.0 | 75.3 | 52.6 | 22.7 | 8.1 | 83.9 | 41.0 | 42.8 | 26.2 | 80.3 | 46.5 | 33.8 | 22.5 | 97.0 | 90.6 | 6.5 | 8.7 | 86.4 | 64.8 | 21.6 | 16.1 | |
| 95.5 | 90.7 | 4.8 | 8.1 | 85.6 | 67.7 | 17.9 | 21.9 | 75.9 | 56.1 | 19.8 | 6.2 | 83.2 | 42.4 | 40.8 | 23.5 | 81.0 | 51.5 | 29.5 | 23.4 | 96.7 | 90.6 | 6.1 | 8.6 | 86.3 | 66.5 | 19.8 | 15.3 | |
| Method | FairFace | CelebA | WaterBirds | UTKFace | Average Results | |||||||||||||||||||||||
| A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | |
| Zero-Shot | 95.7 | 90.0 | 5.7 | 9.4 | 86.4 | 67.8 | 18.6 | 22.3 | 75.8 | 53.7 | 22.1 | 8.0 | 83.8 | 40.2 | 43.7 | 25.0 | 80.3 | 45.7 | 34.5 | 23.2 | 97.1 | 90.1 | 7.0 | 9.1 | 86.5 | 64.6 | 21.9 | 16.2 |
| Episodic test-time debiasing methods | ||||||||||||||||||||||||||||
| OrthCali | 95.9 | 87.8 | 8.1 | 11.3 | 85.1 | 71.6 | 13.5 | 22.0 | 71.4 | 36.8 | 34.6 | 30.6 | 83.3 | 62.0 | 21.4 | 16.2 | 79.8 | 47.0 | 32.8 | 14.4 | 96.8 | 88.9 | 7.9 | 10.1 | 85.4 | 65.7 | 19.7 | 17.4 |
| Our methods | ||||||||||||||||||||||||||||
| Method | FairFace | CelebA | UTKFace | Average Results | ||||||||||||||||||||||||||||
| A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | |
| Zero Shot | 83.3 | 40.1 | 43.2 | 34.2 | 83.3 | 52.8 | 30.5 | 8.0 | 57.6 | 2.5 | 55.1 | 7.1 | 66.1 | 26.7 | 39.4 | 38.6 | 94.5 | 78.8 | 15.7 | 7.9 | 80.3 | 45.3 | 35.0 | 12.3 | 62.3 | 14.3 | 47.9 | 14.0 | 75.3 | 37.2 | 38.1 | 17.4 |
| Episodic test-time adaptation methods | ||||||||||||||||||||||||||||||||
| TPT | 86.6 | 54.9 | 31.7 | 27.8 | 86.6 | 61.3 | 25.3 | 12.7 | 64.9 | 27.3 | 37.6 | 6.5 | 51.3 | 13.9 | 37.4 | 26.6 | 95.0 | 23.9 | 71.1 | 14.4 | 87.5 | 60.7 | 26.8 | 20.2 | 73.9 | 42.9 | 31.0 | 10.5 | 78.0 | 40.7 | 37.3 | 17.0 |
| TPT with ELRA | 83.5 | 41.8 | 41.7 | 33.5 | 83.5 | 53.5 | 30.0 | 8.4 | 57.8 | 2.7 | 55.1 | 7.2 | 65.8 | 26.3 | 39.5 | 38.1 | 95.0 | 75.0 | 20.0 | 6.3 | 80.3 | 45.2 | 35.1 | 12.6 | 62.5 | 14.6 | 47.9 | 14.3 | 75.5 | 37.0 | 38.5 | 17.2 |
| Dataset | Before Update | FairTPT | FairTPT (MO) | TPT |
|---|---|---|---|---|
| FairFace (Gender Race) | 42.1 | 53.9 | 57.4 | 39.5 |
| CelebA (Hair color Gender) | 15.3 | 41.4 | 46.4 | 14.3 |
| CelebA (Smiling Gender) | 15.3 | 40.1 | 50.9 | 11.9 |
| WaterBirds (Type Background) | 56.0 | 70.9 | 71.1 | 51.2 |
| UTKFace (Age Race) | 45.4 | 53.3 | 56.1 | 35.3 |
| UTKFace (Gender Race) | 45.4 | 55.6 | 57.2 | 29.9 |
| Dataset | Before Update | FairTPT | FairTPT (MO) | TPT |
|---|---|---|---|---|
| FairFace (Gender Race) | 66.4 | 65.0 | 64.4 | 88.4 |
| CelebA (Hair color Gender) | 57.5 | 53.9 | 55.1 | 96.0 |
| CelebA (Smiling Gender) | 45.2 | 44.2 | 43.4 | 80.2 |
| WaterBirds (Type Background) | 62.1 | 59.7 | 60.7 | 80.0 |
| UTKFace (Age Race) | 46.1 | 45.2 | 44.8 | 85.0 |
| UTKFace (Gender Race) | 71.6 | 70.6 | 69.3 | 91.4 |
| Method | TPT | Zero | FairTPT | FairTPT (MO) |
|---|---|---|---|---|
| Runtime (sec) | 0.43 | 0.04 | 1.03 | 1.71 |
| Method | FairFace | CelebA | WaterBirds | UTKFace | Average Results | |||||||||||||||||||||||
| A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | A | WGA | B | EOD | |
| Zero-Shot | 93.3 | 82.0 | 11.4 | 17.3 | 80.3 | 72.1 | 8.2 | 17.6 | 85.4 | 75.8 | 9.6 | 6.6 | 73.6 | 50.9 | 22.7 | 40.1 | 81.5 | 62.6 | 18.9 | 32.6 | 95.3 | 85.0 | 10.3 | 12.5 | 84.9 | 71.4 | 13.5 | 21.1 |
| Episodic test-time adaptation methods | ||||||||||||||||||||||||||||
| TPT | 93.1 | 84.8 | 8.3 | 13.9 | 77.5 | 69.9 | 7.6 | 9.5 | 86.7 | 79.2 | 7.5 | 3.8 | 71.2 | 44.1 | 27.0 | 48.8 | 61.9 | 33.6 | 28.2 | 20.5 | 95.4 | 88.8 | 6.6 | 9.0 | 81.0 | 66.8 | 14.2 | 17.6 |
| Zero | 88.5 | 74.3 | 14.2 | 19.2 | 80.8 | 72.4 | 8.3 | 13.9 | 83.7 | 71.6 | 12.1 | 5.6 | 75.3 | 54.2 | 21.1 | 41.5 | 72.8 | 52.9 | 19.9 | 20.3 | 92.5 | 85.7 | 6.8 | 11.6 | 82.3 | 68.5 | 13.7 | 18.7 |
Test-Time Adaptation of VLMs
Test-time adaptation of vision-language models uses unlabeled deployment data to improve predictions under domain shifts without retraining.
See all 79 papers