Views
No views yet
1import requests
2from PIL import Image
3import torch
4from transformers import AutoModelForCausalLM, AutoConfig, AutoProcessor, AutoTokenizer
5
6
7device = "cuda:0" if torch.cuda.is_available() else "cpu"
8torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32
9model = AutoModelForCausalLM.from_pretrained("Spravil/caption-via-translation-1_0B", torch_dtype=torch_dtype, trust_remote_code=True).to(device)
10tokenizer = AutoTokenizer.from_pretrained(
11 "google/gemma-2-2b",
12 add_bos_token=True,
13 add_eos_token=True,
14 padding_side="right",
15 truncation_side="right",
16)
17processor = AutoProcessor.from_pretrained("Spravil/caption-via-translation-1_0B", trust_remote_code=True, new_tokenizer=tokenizer, use_encoder_tokenizer=True)
18task = "<MORE_DETAILED_CAPTION>"
19lang = "de"
20prompt = f"<LANG_{lang.upper()}>{task}"
21url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/car.jpg?download=true"
22image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
23inputs = processor(prompt, images=image, return_tensors="pt").to(device, torch_dtype)
24generated_ids = model.generate(
25 **inputs,
26 max_new_tokens=128,
27 num_beams=4,
28 do_sample=False,
29 use_cache=False,
30 )
31generated_text = processor.batch_decode(generated_ids, skip_special_tokens=False)[0]
32parsed_answer = processor.post_process_generation(generated_text, task=task, image_size=(image.width, image.height))
33print(parsed_answer)@inproceedings{spravil2026scaling,
title={Scaling Laws for Conditional Emergence of Multilingual Image Captioning via Generalization from Translation},
author={Spravil, Julian and Houben, Sebastian and Behnke, Sven},
booktitle={Proceedings of the 40th AAAI Conference on Artificial Intelligence},
year={2026}
}