# BLIP Image Captioning LoRA A LoRA fine tuned version of **Salesforce/blip-image-captioning-base** for image caption generation using the **Flickr8k** dataset. This project demonstrates parameter efficient fine tuning with PEFT while keeping the base model frozen. ## Model Details * **Model:** `ciphermosaic/blip-image-captioning` * **Task:** Image Captioning * **Base Model:** `Salesforce/blip-image-captioning-base` * **Fine Tuning Method:** LoRA (PEFT) * **License:** Apache-2.0 ## Dataset The model was fine tuned on the **jxie/flickr8k** dataset. Dataset split: | Split | Samples | | ---------- | ------: | | Train | 6,000 | | Validation | 1,000 | | Test | 1,000 | ## Training Configuration * Framework: PyTorch * Transformers * PEFT (LoRA) * Hardware: NVIDIA Tesla T4 (Google Colab) * Epochs: 2 * Batch Size: 4 * Learning Rate: `5e-5` * Optimizer: AdamW ### LoRA Configuration ```python LoraConfig( r=8, lora_alpha=16, lora_dropout=0.1, target_modules=[ "qkv", "projection" ], bias="none" ) ``` ## Evaluation | Metric | Value | | --------------- | ---------: | | Validation Loss | **8.0478** | This checkpoint is intended as an educational fine tuning project and baseline implementation for BLIP image captioning with LoRA. ## Usage ### Load with Transformers and PEFT ```python from transformers import BlipProcessor, BlipForConditionalGeneration from peft import PeftModel base_model = BlipForConditionalGeneration.from_pretrained( "Salesforce/blip-image-captioning-base" ) model = PeftModel.from_pretrained( base_model, "ciphermosaic/blip-image-captioning" ) processor = BlipProcessor.from_pretrained( "Salesforce/blip-image-captioning-base" ) ``` ### Example Inference ```python from PIL import Image import requests image = Image.open(requests.get(image_url, stream=True).raw).convert("RGB") inputs = processor(images=image, return_tensors="pt") outputs = model.generate(**inputs) caption = processor.decode(outputs[0], skip_special_tokens=True) print(caption) ``` The model can also be loaded using standard Hugging Face Transformers workflows together with the PEFT adapter. ## Limitations * Trained only on Flickr8k, therefore generalization to unseen domains may be limited. * Caption quality depends on image content and may not accurately describe complex scenes. * Primarily produces English captions. * Performance may vary for medical, satellite, or highly specialized imagery. ## Intended Uses * Image caption generation * Vision Language Model experimentation * Learning PEFT and LoRA fine tuning * Educational and research purposes * Baseline for further image captioning improvements ## Acknowledgements This work builds upon: * Salesforce BLIP * Hugging Face Transformers * Hugging Face PEFT * Flickr8k Dataset Special thanks to the open source community for making these resources available. ## Author **CipherMosaic** GitHub: https://github.com/ciphermosaic