이 repo에서 우리는 LORA 방법을 사용하여 터키 언어에 대한 OpenAi의 클립 모델을 미세합니다. 클립에 대한 자세한 정보를 얻으려면 다른 리포지어를 확인할 수 있습니다.
Flicker8 데이터 세트는 교육에 사용됩니다. 터키 캡션의 경우 터키어 Flicker8 캡션을위한 데이터 세트 인 Tasviret 데이터 세트가 사용됩니다.
노트북은 필요하지는 않지만 Colab에서 실행하도록 의도된다. 필요한 도서관 설치는 Colab에서 실행하기 위해 노트북으로 수행됩니다.
낮은 순위 적응은 모델을 미세한 기술입니다. 모든 레이어를 미세 조정하는 대신 일부 레이어가 선택되고 미세 조정됩니다. 원래 가중치를 변경하는 대신 일반적인 미세 조정과 비교하여 초기 가중치와 미세 튜닝 중량의 차이가 저장되고 저장됩니다. 또한 가중치를 저장하는 행렬은 모델 가중치의 크기를 줄이고 초기 및 미세한 모델이 유사하게 보장하는 두 개의 행렬로 분해됩니다. 이것은 모델이 Cattropolical Forgetting에 대해 훨씬 더 보호 될 것임을 의미합니다. 이 모든 것들은 또한 모든 모델 크기를 줄입니다. 따라서 전체 결합 버전의 가중치를 저장하는 대신 차이 무게 (또는 로라 중량)를 절약 할 수 있습니다. 이를 통해 각 미세한 버전에 큰 모델을 저장하는 대신 단일 대형 기본 모델과 여러 개의 작은 LORA 가중치를 가질 수 있습니다.
LORA_CLIP_TRAINING_TASVIRET-> LORA와의 클립 코드의 FINETUNING CODE
추론 ->는 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 )
이 저장소 의이 목표는 터키어에 대한 좋은 클립 모델을 얻지 않고 LORA를 사용하여 클립을 미세한 클립으로 사용하는 방법을 보여주는 것입니다. 더 나은 메트릭으로 증강을 추가하고 성능을 측정하여 성능을 향상시킬 수 있습니다. 텍스트 인코더를 Distilbert와 같은 터키 데이터로 전망 한 모델로 교체 할 수도 있습니다. (당신은 이것에 대해 내 다른 repo를 확인할 수 있습니다)
이 프로젝트를 만드는 데 사용한 아래 소스에 감사드립니다.
PEFT 라이브러리를 사용하여 LORA로 이미지 분류기를 미세 조정하십시오 : https://github.com/huggingface/peft/tree/main/examples/image_classification
PEFT 라이브러리 자습서 : https://huggingface.co/docs/transformers/main/en/peft
오리지널 로라 용지 : https://arxiv.org/abs/2106.09685
Tasviret (터키 Flicker8 캡션) : https://www.kaggle.com/datasets/begum302553/tasviret-flickr8k-turkish
tasviret 종이 : https://ieeexplore.ieee.org/document/7496155
오리지널 클립 용지 : https://arxiv.org/abs/2103.00020