在此存儲庫中,我們使用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