Hub documentation

Usando OpenCLIP no Hugging Face

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Usando OpenCLIP no Hugging Face

OpenCLIP é uma implementação de código aberto do CLIP da OpenAI.

Explorando o OpenCLIP no Hub

Você pode encontrar modelos OpenCLIP filtrando à esquerda na página de modelos.

Os modelos OpenCLIP hospedados no Hub possuem um model card com informações úteis sobre os modelos. Graças à integração do OpenCLIP com o Hugging Face Hub, você pode carregar modelos OpenCLIP com poucas linhas de código. Você também pode implantar esses modelos usando Inference Endpoints.

Instalação

Para começar, você pode seguir o guia de instalação do OpenCLIP. Você também pode usar a seguinte instalação em uma linha através do pip:

$ pip install open_clip_torch

Usando modelos existentes

Todos os modelos OpenCLIP podem ser carregados facilmente do 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')

Uma vez carregado, você pode codificar a imagem e o texto para realizar classificação de imagem zero-shot:

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) 

Ele exibe a probabilidade de cada classe possível:

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

Se você deseja carregar um modelo específico do OpenCLIP, pode clicar em Use in OpenCLIP no cartão do modelo e receber um trecho de código funcional!

Recursos adicionais

Update on GitHub