|
--- |
|
license: cc-by-nc-4.0 |
|
datasets: |
|
- visheratin/laion-coco-nllb |
|
--- |
|
|
|
## Model Summary |
|
|
|
NLLB-CLIP is a model that combines a text encoder from the [NLLB model](https://huggingface.co/facebook/nllb-200-distilled-600M) and an image encoder from the |
|
standard [CLIP](https://huggingface.co/openai/clip-vit-base-patch32). This allows us to extend the model capabilities |
|
to 201 languages of the Flores-200. NLLB-CLIP sets state-of-the-art on the [Crossmodal-3600](https://google.github.io/crossmodal-3600/) dataset by performing very |
|
well on low-resource languages. You can find more details about the model in the [paper](https://arxiv.org/abs/2309.01859). |
|
|
|
## How to use |
|
|
|
The model [repo](https://huggingface.co/visheratin/nllb-clip-base/tree/main) contains the model code files that allow the use of NLLB-CLIP as any other model from the hub. |
|
The interface is also compatible with CLIP models. Example code is below: |
|
|
|
``` |
|
from transformers import AutoTokenizer, CLIPProcessor |
|
import requests |
|
from PIL import Image |
|
|
|
from modeling_nllb_clip import NLLBCLIPModel # local file from the repo |
|
|
|
processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32") |
|
processor = processor.image_processor |
|
tokenizer = AutoTokenizer.from_pretrained( |
|
"facebook/nllb-200-distilled-600M" |
|
) |
|
image_path = "https://huggingface.co/spaces/jjourney1125/swin2sr/resolve/main/samples/butterfly.jpg" |
|
image = Image.open(requests.get(image_path, stream=True).raw) |
|
image_inputs = processor(images=image, return_tensors="pt") |
|
text_inputs = tokenizer( |
|
["cat", "dog", "butterfly"], |
|
padding="longest", |
|
return_tensors="pt", |
|
) |
|
|
|
hf_model = NLLBCLIPModel.from_pretrained("visheratin/nllb-clip-base") |
|
|
|
outputs = hf_model(input_ids = text_inputs.input_ids, attention_mask = text_inputs.attention_mask, pixel_values=image_inputs.pixel_values) |
|
``` |
|
|
|
## Acknowledgements |
|
|
|
I thank [Lambda Cloud](https://lambdalabs.com/) for providing compute resources to train the model. |