# Utiliser _Adapters_ sur Hugging Face

> Note : _Adapters_ a remplacé la bibliothèque `adapter-transformers` et est entièrement compatible en termes de poids de modèle. Voir [ici](https://docs.adapterhub.ml/transitioning.html) pour plus de détails.

[_Adapters_](https://github.com/adapter-hub/adapters) est une bibliothèque complémentaire de 🤗 `transformers` permettant d’affiner efficacement des modèles de langage pré-entraînés à l’aide d’adapters et d’autres méthodes à efficacité paramétrique. _Adapters_ fournit également diverses méthodes pour la composition de modules d’adapter pendant l’entraînement et l’inférence. Vous pouvez en savoir plus à ce sujet dans l’article [_Adapters_](https://arxiv.org/abs/2311.11077).

## Explorer les _Adapters_ sur le Hub

Vous pouvez trouver des modèles _Adapters_ en filtrant à gauche de la [page des modèles](https://huggingface.co/models?library=adapter-transformers&sort=downloads). Certains modèles d'adaptateurs sont disponibles dans le [dépôt](https://github.com/adapter-hub/hub) Adapter Hub. Les modèles des deux sources sont agrégés sur le [site web AdapterHub](https://adapterhub.ml/explore/).

## Installation

Pour commencer, vous pouvez consulter le [guide d'installation d'AdapterHub](https://docs.adapterhub.ml/installation.html). Vous pouvez également utiliser l'installation en une ligne suivante via pip :

```
pip install adapters
```

## Utilisation de modèles existants

Pour un guide complet sur le chargement d'adapteurs pré-entraînés, nous vous recommandons de consulter le [guide officiel](https://docs.adapterhub.ml/loading.html).

En résumé, une configuration complète se déroule en trois étapes :

1. Chargez un modèle de base `transformers` avec la classe `AutoAdapterModel` fournie par _Adapters_.
2. Utilisez la méthode `load_adapter()` pour charger et ajouter un adaptateur.
3. Activez l’adaptateur via `active_adapters` (pour l’inférence) ou activez-le et définissez-le comme entraînable via `train_adapter()` (pour l’entraînement). Assurez-vous également de consulter [la composition des adaptateurs](https://docs.adapterhub.ml/adapter_composition.html).

```py
from adapters import AutoAdapterModel

# 1.
model = AutoAdapterModel.from_pretrained("FacebookAI/roberta-base")
# 2.
adapter_name = model.load_adapter("AdapterHub/roberta-base-pf-imdb")
# 3.
model.active_adapters = adapter_name
# or model.train_adapter(adapter_name)
```

Vous pouvez également utiliser `list_adapters` pour trouver tous les modèles d'adaptateurs de manière programmatique :

```py
from adapters import list_adapters

# source can be "ah" (AdapterHub), "hf" (hf.co) or None (for both, default)
adapter_infos = list_adapters(source="hf", model_name="FacebookAI/roberta-base")
```

Si vous souhaitez voir comment charger un modèle spécifique, vous pouvez cliquer sur `Use in Adapters` et un extrait de code fonctionnel vous sera fourni pour le charger !

## Partager vos modèles

Pour un guide complet sur le partage de modèles avec _Adapters_, nous vous recommandons de consulter le [guide officiel](https://docs.adapterhub.ml/huggingface_hub.html#uploading-to-the-hub).

Vous pouvez partager votre adaptateur en utilisant la méthode `push_adapter_to_hub` depuis un modèle qui contient déjà un adaptateur.

```py
model.push_adapter_to_hub(
    "my-awesome-adapter",
    "awesome_adapter",
    adapterhub_tag="sentiment/imdb",
    datasets_tag="imdb"
)
```

Cette commande crée un dépôt avec une carte de modèle générée automatiquement et toutes les métadonnées nécessaires.

## Ressources supplémentaires

* _Adaptateurs_ [dépôt](https://github.com/adapter-hub/adapters)
* _Adaptateurs_ [documentation](https://docs.adapterhub.ml)
* _Adaptateurs_ [article](https://arxiv.org/abs/2311.11077)
* Intégration avec la documentation du [Hub](https://docs.adapterhub.ml/huggingface_hub.html)

