Hub documentation

Utiliser OpenCLIP sur Hugging Face

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Utiliser OpenCLIP sur Hugging Face

OpenCLIP est une implémentation open source de CLIP d’OpenAI.

Explorer OpenCLIP sur le Hub

Vous pouvez trouver les modèles OpenCLIP en filtrant à gauche de la page des modèles.

Les modèles OpenCLIP hébergés sur le Hub disposent d’une fiche modèle contenant des informations utiles à leur sujet. Grâce à l’intégration d’OpenCLIP avec le Hugging Face Hub, vous pouvez charger des modèles OpenCLIP en quelques lignes de code. Vous pouvez également déployer ces modèles à l’aide de Inference Endpoints.

Installation

Pour commencer, vous pouvez suivre le guide d'installation d'OpenCLIP. Vous pouvez également utiliser l'installation en une ligne suivante via pip :

$ pip install open_clip_torch

Utilisation de modèles existants

Tous les modèles OpenCLIP peuvent être chargés facilement depuis le Hub :

import open_clip

model, preprocess = open_clip.create_model_from_pretrained('hf-hub:laion/CLIP-ViT-g-14-laion2B-s12B-b42K')
tokenizer = open_clip.get_tokenizer('hf-hub:laion/CLIP-ViT-g-14-laion2B-s12B-b42K')

Une fois chargés, vous pouvez encoder l’image et le texte pour effectuer une classification d’images en zéro tirage :

import torch
from PIL import Image
import requests

url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
image = preprocess(image).unsqueeze(0)
text = tokenizer(["a diagram", "a dog", "a cat"])

with torch.no_grad(), torch.cuda.amp.autocast():
    image_features = model.encode_image(image)
    text_features = model.encode_text(text)
    image_features /= image_features.norm(dim=-1, keepdim=True)
    text_features /= text_features.norm(dim=-1, keepdim=True)

    text_probs = (100.0 * image_features @ text_features.T).softmax(dim=-1)

print("Label probs:", text_probs) 

Il renvoie la probabilité de chaque classe possible :

Label probs: tensor([[0.0020, 0.0034, 0.9946]])

Si vous souhaitez charger un modèle OpenCLIP spécifique, vous pouvez cliquer sur Use in OpenCLIP dans la fiche du modèle et un extrait de code fonctionnel vous sera fourni !

Ressources supplémentaires

Update on GitHub