Edit model card

PaliGemma-3B-Chat-v0.1

An improved version can be find at BUAADreamer/PaliGemma-3B-Chat-v0.2.

This model is fine-tuned from google/paligemma-3b-mix-448 for multiturn chat completions.

example_en example_zh example_ja

Usage

import requests
import torch
from PIL import Image
from transformers import AutoModelForVision2Seq, AutoProcessor, AutoTokenizer, TextStreamer

model_id = "hiyouga/PaliGemma-3B-Chat-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_id)
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForVision2Seq.from_pretrained(model_id, torch_dtype="auto", device_map="auto")
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)

url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/car.jpg?download=true"
image = Image.open(requests.get(url, stream=True).raw)
pixel_values = processor(images=[image], return_tensors="pt").to(model.device)["pixel_values"]

messages = [
    {"role": "user", "content": "What is in this image?"}
]
input_ids = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")
image_token_id = tokenizer.convert_tokens_to_ids("<image>")
image_prefix = torch.empty((1, getattr(processor, "image_seq_length")), dtype=input_ids.dtype).fill_(image_token_id)
input_ids = torch.cat((image_prefix, input_ids), dim=-1).to(model.device)

generate_ids = model.generate(input_ids, pixel_values=pixel_values, streamer=streamer, max_new_tokens=50)

Training procedure

We used LLaMA Factory to fine-tune this model. During fine-tuning, we freezed the vision tower and adjusted the parameters in the language model and projector layer.

Training hyperparameters

The following hyperparameters were used during training:

  • learning_rate: 0.00001
  • num_train_epochs: 3.0
  • train_batch_size: 1
  • gradient_accumulation_steps: 8
  • total_train_batch_size: 16
  • seed: 42
  • lr_scheduler_type: cosine
  • mixed_precision_training: bf16
Show Llama Factory Config [CLICK TO EXPAND]
### model
model_name_or_path: google/paligemma-3b-mix-448
visual_inputs: true

### method
stage: sft
do_train: true
finetuning_type: full

### ddp
ddp_timeout: 180000000
deepspeed: examples/deepspeed/ds_z3_config.json

### dataset
dataset: identity,llava_1k_en,llava_1k_zh
template: gemma
cutoff_len: 1536
overwrite_cache: true
preprocessing_num_workers: 16

### output
output_dir: saves/paligemma-chat
logging_steps: 10
save_steps: 100
plot_loss: true

### train
per_device_train_batch_size: 1
gradient_accumulation_steps: 8
learning_rate: 0.00001
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_steps: 50
bf16: true

Framework versions

  • Pytorch 2.3.0
  • Transformers 4.41.0
Downloads last month
343
Safetensors
Model size
2.92B params
Tensor type
BF16
·
Inference Examples
Inference API (serverless) has been turned off for this model.

Model tree for hiyouga/PaliGemma-3B-Chat-v0.1

Finetuned
(12)
this model

Dataset used to train hiyouga/PaliGemma-3B-Chat-v0.1