在此存储库中,我们使用Lora方法Finetune Openai的土耳其语剪辑模型。要获取有关剪辑的更多信息,您可以查看我的其他回购。
Flicker8数据集用于培训。对于土耳其字幕,使用Tasviret数据集,这是土耳其Flicker8字幕的数据集。
尽管没有必要,但笔记本电脑仍可以在Colab上运行。必须在笔记本上进行必要的库安装,以便在Colab上运行。
低级适应性是一种芬太日模型的技术。选择并予以固定,而不是对所有层进行填充。与常规的登录而不是更改原始权重相比,初始权重和易键式权重之间的差异被存储并保存。同样将存储权重的矩阵分解为两个矩阵,这些矩阵降低了模型权重的大小,并确保初始和易1的模型相似。这意味着该模型将更具保护性,以防止Cathastorapical Messing。所有这些还减少了所有模型大小。因此,您只能节省差异(换句话说),而不是节省整个填充版本的重量。这使能够拥有一个大型基本型号和多个小洛拉重量,而不是为每个填充版本保存大型型号。
lora_clip_training_tasviret->用lora的剪辑代码
推理 - >演示如何加载和使用LORA模型。比较了土耳其语和英语的原始和洛拉芬特剪辑模型的表演。
我已经将模型上传到了拥抱面。该模型可以像以下示例一样使用:
from PIL import Image
from transformers import CLIPProcessor , CLIPModel
model = CLIPModel . from_pretrained ( "openai/clip-vit-base-patch32" )
model . load_adapter ( "kesimeg/lora-turkish-clip" ) # model can be found on Huggingface ?
model . eval ()
processor = CLIPProcessor . from_pretrained ( "openai/clip-vit-base-patch32" )
img = Image . open ( "dog.png" ) # A dog image
inputs = processor ( text = [ "Çimenler içinde bir köpek." , "Bir köpek." , "Çimenler içinde bir kuş." ], images = img , return_tensors = "pt" , padding = True )
outputs = model ( ** inputs )
logits_per_image = outputs . logits_per_image
probs = logits_per_image . softmax ( dim = 1 )
print ( probs )
此存储库的这个目标是展示如何使用洛拉来登录剪辑,而不是为土耳其语言获得良好的剪辑模型。您可以尝试通过添加增强功能并使用更好的指标来衡量性能来提高性能。您也可以尝试用鉴定的土耳其数据(例如Distilbert)概述的模型代替文本编码器。 (您可以检查我的其他存储库)
我要感谢我用来制作该项目的资源:
使用PEFT库使用LORA的图像分类器:https://github.com/huggingface/peft/peft/tree/main/main/examples/image_classification
PEFT库教程:https://huggingface.co/docs/transformers/main/en/en/peft
原始洛拉纸:https://arxiv.org/abs/2106.09685
tasviret(土耳其闪烁8字幕):https://www.kaggle.com/datasets/begum302553/tasviret-flickr8k-turkish
tasviret纸:https://ieeexplore.ieee.org/document/7496155
原始剪贴纸:https://arxiv.org/abs/2103.00020