Views
No views yet
git clone https://github.com/swapUniba/MAMMa
cd MAMMa1from src.mmeb_src.model import MMEBModel
2from src.mmeb_src.arguments import ModelArguments
3
4from PIL import Image
5from transformers import AutoProcessor
6
7import torch
8import requests
9
10model_args = ModelArguments(
11 model_name='microsoft/Phi-3.5-vision-instruct',
12 checkpoint_path="swap-uniba/MAMMa_image_loss",
13 pooling='last',
14 normalize=True,
15 lora=False,
16)
17
18processor = AutoProcessor.from_pretrained(
19 "microsoft/Phi-3.5-vision-instruct",
20 trust_remote_code=True,
21 num_crops=4,
22)
23
24model = MMEBModel.load(model_args)
25model.eval()
26model = model.to('cuda', dtype=torch.bfloat16)
27
28with torch.no_grad():
29 inputs = processor("<|image_1|>\nTrova una didascalia che descriva l'immagine di tutti i giorni", [Image.open(requests.get("http://images.cocodataset.org/train2017/000000514915.jpg", stream=True).raw)])
30 inputs = {key: value.to('cuda') for key, value in inputs.items()}
31 qry_output = model(qry=inputs)["qry_reps"]
32
33 strings = ['Un cane steso sul pavimento', 'Un gatto steso sul pavimento']
34 inputs = processor(strings)
35 inputs = {key: value.to('cuda') for key, value in inputs.items()}
36 tgt_output = model(tgt=inputs)["tgt_reps"]
37 cos_sim = model.compute_similarity(qry_output, tgt_output).squeeze()
38
39 for string_, sim_ in zip(strings, cos_sim):
40 print(string_, '=', sim_)1@article{Musacchio2026,
2 title = {MAMMa: adaptation of multimodal LLM embeddings to multilinguality},
3 volume = {38},
4 ISSN = {1433-3058},
5 url = {http://dx.doi.org/10.1007/s00521-026-12339-x},
6 DOI = {10.1007/s00521-026-12339-x},
7 number = {15},
8 journal = {Neural Computing and Applications},
9 publisher = {Springer Science and Business Media LLC},
10 author = {Musacchio, Elio and Siciliani, Lucia and Basile, Pierpaolo and Semeraro, Giovanni},
11 year = {2026},
12 month = Aug
13}