Views
No views yet



1import requests
2import torch
3from PIL import Image
4from transformers import AutoModelForVision2Seq, AutoProcessor, AutoTokenizer, TextStreamer
5
6model_id = "hiyouga/PaliGemma-3B-Chat-v0.1"
7tokenizer = AutoTokenizer.from_pretrained(model_id)
8processor = AutoProcessor.from_pretrained(model_id)
9model = AutoModelForVision2Seq.from_pretrained(model_id, torch_dtype="auto", device_map="auto")
10streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
11
12url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/car.jpg?download=true"
13image = Image.open(requests.get(url, stream=True).raw)
14pixel_values = processor(images=[image], return_tensors="pt").to(model.device)["pixel_values"]
15
16messages = [
17 {"role": "user", "content": "What is in this image?"}
18]
19input_ids = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")
20image_token_id = tokenizer.convert_tokens_to_ids("<image>")
21image_prefix = torch.empty((1, getattr(processor, "image_seq_length")), dtype=input_ids.dtype).fill_(image_token_id)
22input_ids = torch.cat((image_prefix, input_ids), dim=-1).to(model.device)
23
24generate_ids = model.generate(input_ids, pixel_values=pixel_values, streamer=streamer, max_new_tokens=50)1### model
2model_name_or_path: google/paligemma-3b-mix-448
3visual_inputs: true
4
5### method
6stage: sft
7do_train: true
8finetuning_type: full
9
10### ddp
11ddp_timeout: 180000000
12deepspeed: examples/deepspeed/ds_z3_config.json
13
14### dataset
15dataset: identity,llava_1k_en,llava_1k_zh
16template: gemma
17cutoff_len: 1536
18overwrite_cache: true
19preprocessing_num_workers: 16
20
21### output
22output_dir: saves/paligemma-chat
23logging_steps: 10
24save_steps: 100
25plot_loss: true
26
27### train
28per_device_train_batch_size: 1
29gradient_accumulation_steps: 8
30learning_rate: 0.00001
31num_train_epochs: 3.0
32lr_scheduler_type: cosine
33warmup_steps: 50
34bf16: true