🚀 BLIP图像描述 - 阿拉伯语(Flickr8K阿拉伯语数据集)
本模型是基于Salesforce/blip-image-captioning-large
微调而来,使用Flickr8K阿拉伯语数据集进行了适配,可用于阿拉伯语的图像描述任务。它能接收一张输入图像,并生成与之相关的阿拉伯语描述,精准描绘图像内容。
🚀 快速开始
以下是使用该模型的示例代码:
from transformers import BlipProcessor, BlipForConditionalGeneration
from PIL import Image
import torch
import matplotlib.pyplot as plt
processor = BlipProcessor.from_pretrained("omarsabri8756/blip-Arabic-flickr-8k")
model = BlipForConditionalGeneration.from_pretrained("omarsabri8756/blip-Arabic-flickr-8k")
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device)
image_path = "path/to/your/image.jpg"
image = Image.open(image_path).convert("RGB")
plt.imshow(image)
plt.axis('off')
plt.title("输入图像")
plt.show()
model.eval()
with torch.no_grad():
pixel_values = processor(images=image, return_tensors="pt").pixel_values.to(device)
generated_output = model.generate(
pixel_values=pixel_values,
max_length=75,
min_length=20,
num_beams=5,
repetition_penalty=1.5,
length_penalty=1.0,
no_repeat_ngram_size=3,
early_stopping=True
)
caption = processor.batch_decode(generated_output, skip_special_tokens=True)[0]
print(caption)
📚 详细文档
模型来源
🔧 技术细节
训练数据
该模型在Flickr8k阿拉伯语数据集上进行了微调,该数据集包含8000张图像,每张图像配有4条参考阿拉伯语描述。数据集以现代标准阿拉伯语描述了各种日常场景和活动。
属性 |
详情 |
数据集 |
Flickr8k阿拉伯语 |
规模 |
8000张图像和32000条描述 |
训练过程
该模型从原始的BLIP模型微调而来,将其语言生成能力适配到阿拉伯语文本上。
训练超参数
- 训练机制:fp16混合精度
- 优化器:AdamW
- 学习率:5e - 5
- 每个设备的训练批次大小:2
- 每个设备的评估批次大小:16
- 梯度累积步数:14
- 总训练批次大小:28
- 训练轮数:5
- 学习率调度器:带热身的Cosine调度器
- 权重衰减:0.01
评估
测试数据和指标
- 测试数据:模型在Flickr8k阿拉伯语测试集上进行评估,该测试集包含1000张图像,每张图像有4条参考描述。
- 指标:
- BLEU - 1:65.80
- BLEU - 2:51.33
- BLEU - 3:38.72
- BLEU - 4:28.75
- METEOR:46.29
结果
该模型在常见场景和活动上表现良好,能生成语法正确且上下文合适的阿拉伯语描述。但对于不常见场景或训练数据中未充分体现的特定文化背景,性能会略有下降。
⚠️ 注意事项
偏差、风险和局限性
- 模型在Flickr8k阿拉伯语数据集上训练,可能无法涵盖阿拉伯语地区图像和语言表达的全部多样性。
- 可能会产生刻板印象或文化上不敏感的描述。
- 在不同阿拉伯语方言和地区表达上,性能可能有所差异。
- 对特定文化物品、事件或背景的描述能力有限。
- 处理复杂场景或不寻常视觉元素时可能存在困难。
使用建议
- 用户在敏感场景中使用生成的描述前应进行审核。
- 对于面向公众的应用,可考虑进行后处理或人工审核。
- 在与使用场景相关的各种图像类型上进行测试。
- 注意模型可能反映训练数据中的偏差。
- 评估描述质量时,考虑地区和方言差异。
📄 许可证
本项目采用MIT许可证。