Views
No views yet
1import torch
2import requests
3
4from PIL import Image
5from transformers import LlavaNextProcessor, LlavaNextForConditionalGeneration, set_seed
6
7model_name = "swap-uniba/LLaVA-NDiNO_short_long"
8
9processor = LlavaNextProcessor.from_pretrained(model_name)
10model = LlavaNextForConditionalGeneration.from_pretrained(model_name, torch_dtype=torch.bfloat16, low_cpu_mem_usage=True, device_map="auto")
11
12url = "https://www.barnorama.com/wp-content/uploads/2016/12/03-Confusing-Pictures.jpg"
13image = Image.open(requests.get(url, stream=True).raw)
14
15chat_template = "{% set loop_messages = messages %}{% for message in loop_messages %}{% set content = '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' %}{% if loop.index0 == 0 %}{% set content = bos_token + content %}{% endif %}{{ content }}{% endfor %}{% if add_generation_prompt %}{{ '<|start_header_id|>assistant<|end_header_id|>\n\n' }}{% endif %}"
16
17conversation = [
18 {
19 "role": "user",
20 "content": "<image>\nCosa c'è di strano in questa immagine?"
21 },
22]
23
24prompt = processor.apply_chat_template(conversation, chat_template, add_generation_prompt=True)
25inputs = processor(prompt, image, return_tensors="pt")
26
27set_seed(42)
28output = model.generate(**inputs, max_new_tokens=4096)
29
30print(processor.decode(output[0][inputs.input_ids.shape[1]:]))@inproceedings{musacchioLLaVANDiNO,
title={LLaVA-NDiNO: Empowering LLMs with Multimodality for the Italian Language},
author={Musacchio, Elio and Siciliani, Lucia and Basile, Pierpaolo and Semeraro, Giovanni},
booktitle={Proceedings of the Eighth Workshop on Natural Language for Artificial Intelligence (NL4AI 2024) co-located with 23th International Conference of the Italian Association for Artificial Intelligence (AI*IA 2024)},
year={2024}
}