Model Reprogramming Outperforms Fine-tuning on Out-of-distribution Data in Text-Image Encoders

Andrew Geng, Pin-Yu Chen
3/16/2024
cs.LG

No official code found. Best implementation: IBM/reprogrammer (0 stars, Apache-2.0, last commit 2025-09-18).

Abstract

When evaluating the performance of a pre-trained model transferred to a downstream task, it is imperative to assess not only the in-distribution (ID) accuracy of the downstream model but also its capacity to generalize and identify out-of-distribution (OOD) samples. In this paper, we unveil the hidden costs associated with intrusive fine-tuning techniques. Specifically, we demonstrate that commonly used fine-tuning methods not only distort the representations necessary for generalizing to covariate-shifted OOD samples (OOD generalization) but also distort the representations necessary for detecting semantically-shifted OOD samples (OOD detection). To address these challenges, we introduce a new model reprogramming approach for fine-tuning, which we name Reprogrammer. Reprogrammer aims to improve the holistic performance of the downstream model across ID, OOD generalization, and OOD detection tasks. Our empirical evidence reveals that Reprogrammer is less intrusive and yields superior downstream models. Furthermore, we demonstrate that by appending an additional representation residual connection to Reprogrammer, we can further preserve pre-training representations, resulting in an even more safe and robust downstream model capable of excelling in many ID classification, OOD generalization, and OOD detection settings.

View on arXivView PDF

Code Implementations(1)

IBM/reprogrammerCommunity100%
Apache-2.0

this is for fun, ain't it grand!

01PythonFeb 23, 20241 years agoApache-2.0

Similar Papers

Cite this paper

@article{geng2024model,
  title  = {Model Reprogramming Outperforms Fine-tuning on Out-of-distribution Data in Text-Image Encoders},
  author = {Andrew Geng and Pin-Yu Chen},
  year   = {2024},
  eprint = {2403.10800},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2403.10800v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2403.10800.svg)](https://codeofpaper.com/paper/2403.10800)

Discussion