Views
No views yet
google/gemma-4-e4b-it for action recognition on a Kinetics-3K style dataset.google/gemma-4-e4b-itadapter_model.safetensors)r=16lora_alpha=32lora_dropout=0.05q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj./dataset/kinetics_3k/kinetic_3K.json./dataset/kinetics_3k1{
2 "messages": [
3 {
4 "role": "user",
5 "content": [
6 {"type": "image", "image": "frames/<clip_id>/frame_1.jpg"},
7 {"type": "image", "image": "frames/<clip_id>/frame_2.jpg"},
8 {"type": "image", "image": "frames/<clip_id>/frame_3.jpg"},
9 {"type": "image", "image": "frames/<clip_id>/frame_4.jpg"},
10 {
11 "type": "text",
12 "text": "Please analyze the sequence of frames from this video. What specific action or event is happening?"
13 }
14 ]
15 },
16 {
17 "role": "assistant",
18 "content": [
19 {"type": "text", "text": "<action description>"}
20 ]
21 }
22 ]
23}transformerspeftdeepspeedbitsandbytes optimizer (paged_adamw_8bit)bf163117018paged_adamw_8bit2e-40.00.03cosine200 steps2 checkpoints14.44655026.56 seconds1.8590.2331MODEL_NAME=google/gemma-4-e4b-it \
2DATA_PATH=./dataset/kinetics_3k/kinetic_3K.json \
3IMAGE_FOLDER=./dataset/kinetics_3k \
4OUTPUT_DIR=./output/gemma4_e4b_lora_only \
5RUN_NAME=gemma4-e4b-lora-only \
6uv run deepspeed \
7 --num_gpus 1 \
8 --master_port 29500 \
9 stage1/train.py \
10 --deepspeed deepspeed_config/stage1.json \
11 --model_id google/gemma-4-e4b-it \
12 --data_path ./dataset/kinetics_3k/kinetic_3K.json \
13 --image_folder ./dataset/kinetics_3k \
14 --output_dir ./output/gemma4_e4b_lora_only \
15 --run_name gemma4-e4b-lora-only \
16 --bf16 True \
17 --use_lora True \
18 --lora_r 16 \
19 --lora_alpha 32 \
20 --num_train_epochs 3 \
21 --per_device_train_batch_size 1 \
22 --gradient_accumulation_steps 8 \
23 --optim paged_adamw_8bit \
24 --learning_rate 2e-4 \
25 --image_encoder_lr 0.0 \
26 --projector_lr 0.0 \
27 --weight_decay 0.0 \
28 --warmup_ratio 0.03 \
29 --lr_scheduler_type cosine \
30 --save_strategy steps \
31 --save_steps 200 \
32 --save_total_limit 2 \
33 --gradient_checkpointing True \
34 --logging_steps 10 \
35 --dataloader_num_workers 4 \
36 --report_to none1{
2 "train_batch_size": "auto",
3 "train_micro_batch_size_per_gpu": "auto",
4 "gradient_accumulation_steps": "auto",
5 "gradient_clipping": 1.0,
6 "zero_optimization": {
7 "stage": 2,
8 "overlap_comm": true,
9 "contiguous_gradients": true,
10 "reduce_bucket_size": 5e7
11 },
12 "bf16": {
13 "enabled": true
14 }
15}1from transformers import AutoProcessor, Gemma4ForConditionalGeneration
2from peft import PeftModel
3
4base_model = Gemma4ForConditionalGeneration.from_pretrained(
5 "google/gemma-4-e4b-it",
6 torch_dtype="auto",
7 device_map="auto",
8)
9model = PeftModel.from_pretrained(
10 base_model,
11 "bear7011/gemma4-e4b-kinetic3K_FT",
12)
13processor = AutoProcessor.from_pretrained("google/gemma-4-e4b-it")