LoRA CLIP
1.0.0
画像またはテキストエンコーダー、または両方のエンコーダーにおける動的なロラ層挿入。
事前に訓練されたOpenAIクリップの重みを安全にロラ化したモデルにロードします。
正しく凍結していないpositional_embedding 、 logit_scale 、および投影により、微調整対象モデルをロードします。
注:現在、画像エンコーダーのロラ化においてビジョントランスモデルのみをサポートしています。 ResNetモデルはまもなく追加されます。
重要: loraclipをインストールする前に、クリップがあることを確認してください。これは単純に行うことができます
pip install regex ftfy
pip install git+https://github.com/openai/CLIP.gitその後、このパッケージをコマンドpip install loraclipを介してpipを使用して直接インストールできます。または、ソースからこれをブイドリングすることを検討することもできます
git clone https://github.com/jaisidhsingh/LoRA-CLIP.git
cd LoRA-CLIP
pip install -e . import loraclip
import argparse
def test_loraclip ( args ):
# Easy-to-use with standard CLIP syntax.
# 1. Dynamic LoRA rank specification
# 2. Specify which encoder(s) to LoRA-ify
model , preprocess = loraclip . load ( args . clip_model_name , device = args . device , r = args . lora_rank , lora_mode = args . lora_mode )
# Utility to preview no. of trainable params along with their % with total params.
loraclip . print_trainable_parameters ( model )
def setup_args ():
parser = argparse . ArgumentParser ()
parser . add_argument ( "--clip-model-name" , type = str , default = "ViT-B/16" )
parser . add_argument ( "--device" , type = str , default = "cuda" )
parser . add_argument ( "--lora-rank" , type = int , default = 4 )
parser . add_argument ( "--lora-mode" , type = str , default = "vision+text" , choices = [ "vision" , "text" , "vision+text" ])
args = parser . parse_args ()
return args
if __name__ == "__main__" :
args = setup_args ()
test_loraclip ( args )https://github.com/openai/clip
https://github.com/sivandoveh/tsvlc