In diesem Repo findepune OpenAs Clip -Modell für die türkische Sprache mithilfe der LORA -Methode. Um weitere Informationen zu Clip zu erhalten, können Sie mein anderes Repo überprüfen.
Der Flicker8 -Datensatz wird für das Training verwendet. Für türkische Bildunterschriften wird ein Tasviret -Datensatz verwendet, der ein Datensatz für türkische Flicker8 -Bildunterschriften ist.
Die Notizbücher sollen auf Colab ausgeführt werden, obwohl dies nicht erforderlich ist. Die erforderlichen Bibliotheksinstallationen werden in Notizbüchern durchgeführt, um auf Colab ausgeführt zu werden.
Anpassung mit niedriger Rang ist eine Technik für Finetune-Modelle. Anstelle von Finatunen werden alle Schichten einige Schichten ausgewählt und beendet. Im Vergleich zu regelmäßigen Finetunen, anstatt die ursprünglichen Gewichte zu ändern, werden die Differenz zwischen den anfänglichen Gewichten und den Finetuned -Gewichten gespeichert und gespeichert. Außerdem werden Matrizen, die die Gewichte speichern, in zwei Matrizen zerlegt, die die Größe der Modellgewichte verringern und sicherstellen, dass das anfängliche und feines Modell ähnlich ist. Dies bedeutet, dass das Modell viel schützender gegen kathastropisches Vergessen sein wird. All dies verringert auch die gesamte Modellgröße. Sie können also einfach das Differenzgewicht (oder das Lora -Gewicht mit anderen Worten) speichern, anstatt die Gewichte der gesamten Fundunenversion zu sparen. Dies gibt die Möglichkeit, ein einzelnes großes Basismodell und mehrere kleine Lora -Gewichte zu haben, anstatt große Modelle für jede finationspolitische Version zu sparen.
Lora_clip_training_tasviret -> feinetuning cip mit lora
Inferenz -> zeigt, wie das Lora -Modell geladen und verwendet wird. Vergleicht die Darbietungen von Original- und Lora -Finetuned -Clip -Modellen sowohl in türkisch als auch in englischer Sprache.
Ich habe das Modell auf das Umarmungsgesicht hochgeladen. Das Modell kann wie das folgende Beispiel verwendet werden:
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 )
Dieses Ziel dieses Repo ist es zu zeigen, wie man Lora verwendet, um Clips zu finanzieren, anstatt ein gutes Clip -Modell für die türkische Sprache zu erhalten. Sie können versuchen, die Leistung zu steigern, indem Sie Augmentationen hinzufügen und die Leistung mit besseren Metriken messen. Sie können auch versuchen, den Textcodierer durch ein Modell zu ersetzen, das mit türkischen Daten wie Distilbert vorbereitet ist. (Sie können mein anderes Repo dafür überprüfen)
Ich möchte mich bei Quellen danken, die ich dieses Projekt gemacht habe:
Finetuning eines Bildklassifizierers mit Lora mit der PEFT -Bibliothek: https://github.com/huggingface/peft/tree/main/examples/image_classification
PEFT Library Tutorial: https://huggingface.co/docs/transformers/main/en/peft
Original Lora Paper: https://arxiv.org/abs/2106.09685
Tasviret (türkische Flicker8-Bildunterschriften): https://www.kaggle.com/datasets/begum302553/tasviret-flickr8k-turkish
Tasviret Paper: https://ieeexplore.ieee.org/document/7496155
Original -Clippapier: https://arxiv.org/abs/2103.00020