Downloads · 30 days
50
3% of all-time downloads
unum-cloud/uform3-image-text-english-base
uform3-image-text-english-base is a feature extraction model from unum-cloud. Use it when you need embeddings to search or compare text. It is set up for transformers. The card lists the license as apache-2.0.
<h1 align="center"UForm</h1 <h3 align="center" Pocket-Sized Multimodal AI<br/ For Content Understanding and Generation<br/ In Python, JavaScript, and Swift<br/ </h3
Downloads · 30 days
50
3% of all-time downloads
All-time downloads
1.6K
Public
Repo size
1.3 GB
Likes
3
Public
Click a slice to open those files.
.bin620 MB · 47%
From the Hugging Face model README
The uform3-image-text-english-base UForm model is a tiny vision and English language encoder, mapping them into a shared vector space.
This model produces up to 256-dimensional embeddings and is made of:
Unlike most CLIP-like multomodal models, this model shares 2 layers between the text and visual encoder to allow for more data- and parameter-efficient training. Also unlike most models, UForm provides checkpoints compatible with PyTorch, ONNX, and CoreML, covering the absolute majority of AI-capable devices, with pre-quantized weights and inference code. If you need a larger, more accurate, or multilingual model, check our HuggingFace Hub. For more details on running the model, check out the UForm GitHub repository.
On text-to-image retrieval it reaches 94% Recall@10 for Flickr:
| Dataset | Recall@1 | Recall@5 | Recall@10 |
|---|---|---|---|
| Zero-Shot Flickr | 0.727 | 0.915 | 0.949 |
| MS-COCO ¹ | 0.510 | 0.761 | 0.838 |
¹ It's important to note, that the MS-COCO train split was present in the training data.
pip install "uform[torch,onnx]"
To load the model:
from uform import get_model, Modality
import requests
from io import BytesIO
from PIL import Image
model_name = 'unum-cloud/uform3-image-text-english-base'
modalities = [Modality.TEXT_ENCODER, Modality.IMAGE_ENCODER]
processors, models = get_model(model_name, modalities=modalities)
model_text = models[Modality.TEXT_ENCODER]
model_image = models[Modality.IMAGE_ENCODER]
processor_text = processors[Modality.TEXT_ENCODER]
processor_image = processors[Modality.IMAGE_ENCODER]
To encode the content:
text = 'a cityscape bathed in the warm glow of the sun, with varied architecture and a towering, snow-capped mountain rising majestically in the background'
image_url = 'https://media-cdn.tripadvisor.com/media/photo-s/1b/28/6b/53/lovely-armenia.jpg'
image_url = Image.open(BytesIO(requests.get(image_url).content))
image_data = processor_image(image)
text_data = processor_text(text)
image_features, image_embedding = model_image.encode(image_data, return_features=True)
text_features, text_embedding = model_text.encode(text_data, return_features=True)