Ana içeriğe geç

Cihazınızda Alpaca-LoRA Nasıl Çalıştırılır

Bu kapsamlı rehberle Alpaca-LoRA’yı cihazınızda nasıl çalıştıracağınızı öğrenin. Bu açık kaynaklı modelin, güçlü ama verimli bir YZ sohbet botu çözümü sunmak için LoRA teknolojisinden nasıl yararlandığını keşfedin.
· 7 dk. oku

Yapay Zeka ile Keşfedin

Üretken yapay zekâ ivme kazanmaya devam ederken, dünyanın dört bir yanındaki geliştiriciler doğal dili kullanarak heyecan verici uygulamalar geliştirme fırsatını değerlendiriyor. Özellikle bir araç son dönemde oldukça ilgi topladı: ChatGPT.

ChatGPT, OpenAI tarafından geliştirilen bir dil modelidir. Amacı, insan benzeri diyalog kurabilen, yapay zekâ destekli bir sohbet botu olarak hizmet vermektir. Oldukça faydalı bir araç olsa da bazı sorunları vardır. ChatGPT açık kaynaklı değildir; yani kaynak kodu erişilebilir ve değiştirilebilir değildir. Ayrıca son derece kaynak yoğundur; bu da kendi uygulamanızı oluşturmayı kötü bir çözüm hâline getirir.

Bu tür sorunlar, ChatGPT gibi çalışabilen ancak açık kaynak lisansı ve daha düşük kaynak gereksinimleriyle gelen Alpaca-LoRA gibi bir dizi ChatGPT alternatifinin ortaya çıkmasına yol açtı.

Bu eğitimde özellikle Alpaca-LoRA’ya odaklanacağız. Ne olduğunu, cihazınızda çalıştırmak için gereken önkoşulları ve çalıştırma adımlarını ele alacağız.

Alpaca LoRA nedir?

2023 Mart ayının başında Eric J. Wang, Alpaca-LoRA projesini yayımladı. Bu proje, Stanford Alpaca sonuçlarını Parametre Verimli İnce Ayar (PEFT) kullanarak yeniden üretmeye yönelik kodlar içeriyor; bu, geliştiricilerin LoRA kullanarak dönüştürücü tabanlı modelleri ince ayar yapmasına olanak tanıyan bir kütüphanedir.

LoRA’yı anlamak

Büyük Dil Modellerinin Düşük-Rank Uyumlaması (LoRA), büyük modellerin eğitimini hızlandırmak ve daha az bellek tüketmek için kullanılan bir yöntemdir.

Nasıl çalıştığına bakalım:

  • Mevcut ağırlıkların dondurulması. Modeli, birbirine bağlı düğümlerden oluşan karmaşık bir ağ olarak düşünün (bunlar “ağırlıklar”). Normalde modeli iyileştirmek için eğitim sırasında bu düğümlerin tamamını ayarlarsınız. LoRA ise “Bunlara dokunmayalım; oldukları gibi kalsınlar” der.
  • Yeni ağırlıkların eklenmesi. Ardından LoRA bu ağa birkaç yeni, daha basit bağlantı (yeni ağırlıklar) ekler.
  • Yalnızca yeni ağırlıkların eğitilmesi. Tüm karmaşık ağı ayarlamak yerine, yalnızca bu yeni ve daha basit bağlantıları iyileştirmeye odaklanırsınız.

Böylece, modeli görevlerinde daha iyi hâle getirirken hem zaman hem de bellek tasarrufu sağlarsınız.

LoRA’nın avantajları

LoRA’nın avantajları şunlardır:

  • Taşınabilirlik - Rank ayrıştırmalı ağırlık matrisleri, orijinal modele kıyasla çok daha az sayıda eğitilebilir parametre içerir; bu nedenle eğitilmiş LoRA ağırlıkları kolayca taşınabilir ve Rasberry Pi üzerinde dahi çalıştırılabilir.
  • Erişilebilirlik – Geleneksel ince ayara kıyasla LoRA’nın GPU bellek kullanımını önemli ölçüde azalttığı gösterilmiştir; bu da Tesla T4, RTX 3080 veya hatta RTX 2080 Ti gibi tüketici GPU’larında ince ayar yapmayı mümkün kılar.

Alpaca: Açık Kaynaklı Model

Öte yandan Alpaca, Large Language Model Meta AI (LLaMA) tabanlı, talimatla ince ayar yapılmış açık kaynaklı bir yapay zekâ dil modelidir. Stanford Üniversitesi’ndeki bir araştırma ekibi tarafından, büyük dil modellerini (LLM) daha erişilebilir kılmak amacıyla geliştirilmiştir.

Ve bu bizi Alpaca-LoRA’ya getiriyor.

Alpaca-LoRA modeli, LoRA’dan yararlanarak eğitim sürecini hızlandırırken daha az bellek tüketen, Stanford Alpaca modelinin daha az kaynak gerektiren bir sürümüdür.

Alpaca-LoRA Önkoşulları

Alpaca-LoRA modelini yerel olarak çalıştırmak için bir GPU’ya sahip olmalısınız. NVIDIA T4 gibi düşük özellikli bir GPU ya da 4090 gibi tüccar sınıfı bir GPU olabilir. Projenin yaratıcısı Eric J. Wang’a göre, model “çift saatler içinde tek bir RTX 4090'da çalışıyor.”

Not: Bu yazıdaki yönergeler, Eric J. Wang’ın Alpaca-LoRA deposunda sağladıklarını izlemektedir.

Alpaca-LoRA Nasıl Çalıştırılır: 4 Adım

Adım 1: Sanal ortamı oluşturun (Opsiyonel)

Sanal ortamlar, belirli bir proje için gereken Python bağımlılıklarını depolamak için kullanılan yığıtlanmış kapsayıcılardır. Bu, farklı projeler için gereken bağımlılıkları birbirinden ayırı tutmaya yardımcı olur; böylece projeleri paylaşmayı kolaylaştırır ve bağımlılık çatışmalarını azaltır.

Alpaca-LoRA modelini çalıştırmak için bir sanal ortam kullanmak zorunlu değildir, ancak tavsiye edilir.

Windows işletim sisteminde komut istemini kullanarak bir sanal ortam oluşturmak için şunları çalıştırın:

py -m venv venv

Bu, geçerli çalışma dizininizde venv adlı bir sanal ortam oluşturur.

Not: İkinci venv’i tercih ettiğiniz adla değiştirerek sanal ortamınıza istediğiniz adı verebilirsiniz.

Herhangi bir bağımlılığı yüklemeden önce sanal ortamı etkinleştirmeniz gerekir. Sanal ortamınızı etkinleştirmek için aşağıdaki komutu çalıştırın:

venv\Scripts\activate.bat

Sanal ortamı artık kullanmadığınızda, aşağıdaki komutu çalıştırarak devre dışı bırakın:

deactivate

Artık Alpaca-LoRA’yı çalıştırmaya hazırsınız.

Adım 2: Kurulum

Alpaca-LoRA modelini çalıştırmanın ilk adımı, depoyu GitHub’dan klonlamak ve çalıştırma için gereken bağımlılıkları yüklemektir.

GitHub deposunu yüklemek için aşağıdaki komutu kullanın:

git clone https://github.com/tloen/alpaca-lora.git

Ardından, şunu kullanarak az önce yüklediğiniz alpaca-lora deposuna gidin:

cd alpaca-lora

Ve bağımlılıkları yüklemek için aşağıdaki komutu çalıştırın:

pip install -r requirements.txt

Adım 3: Modeli İnce Ayarlama (Opsiyonel)

alpaca-lora deposu, finetune.py adında bir dosya içerir. finetune.py, diğer şeylerin yanı sıra LLaMA modeline uygulanan basit bir Parametre Verimli İnce Ayar (PEFT) örneği barındırır.

Modelin hiperparametrelerini değiştirmek isterseniz çalıştırmanız gereken dosya budur; ancak zorunlu değildir. Depo yazarına göre, “Hiperparametre ayarı yapmadan da LoRA modeli, Stanford Alpaca modeliyle karşılaştırılabilir çıktılar üretir. Daha ileri ayarlar daha iyi performans sağlayabilir [...].”

finetune.py dosyasını nasıl kullanacağa dair bir örnek şöyledir:

python -m finetune.py \
    --base_model 'decapoda-research/llama-7b-hf' \
    --data_path 'yahma/alpaca-cleaned' \
    --output_dir './lora-alpaca' \
    --batch_size 128 \
    --micro_batch_size 4 \
    --num_epochs 3 \
    --learning_rate 1e-4 \
    --cutoff_len 512 \
    --val_set_size 2000 \
    --lora_r 8 \
    --lora_alpha 16 \
    --lora_dropout 0.05 \
    --lora_target_modules '[q_proj,v_proj]' \
    --train_on_inputs \
    --group_by_length

Adım 4: Modeli Çalıştırma / Çıkarım

alpaca-lora deposunda ayrıca generate.py adlı bir dosya bulunur. generate.py dosyasını çalıştırmak şunları gerçekleştirir:

  • Temel modeli Hugging Face model deposundan okur
  • Model ağırlıklarını tloen/alpaca-lora-7b konumundan okur
  • Belirli bir girdi üzerinde çıkarım yapılan bir Gradio arayüzü başlatır.

Bu yazının yazıldığı tarihte, modeli eğitmek için kullanılan en güncel Alpaca-LoRA adaptörü alpaca-lora-7b’dir. Bu, 26 Mart 2023’te aşağıdaki komut kullanılarak gerçekleştirilmiştir:

python finetune.py \
    --base_model='decapoda-research/llama-7b-hf' \
    --num_epochs=10 \
    --cutoff_len=512 \
    --group_by_length \
    --output_dir='./lora-alpaca' \
    --lora_target_modules='[q_proj,k_proj,v_proj,o_proj]' \
    --lora_r=16 \
    --micro_batch_size=8

Farklı bir adaptör kullanmak isterseniz, tercih ettiğiniz adaptörün konumuna bir bağlantıyla generate.py dosyasını çalıştırarak bunu yapabilirsiniz.

python generate.py \
    --load_8bit \
    --base_model 'decapoda-research/llama-7b-hf' \
    --lora_weights 'tloen/alpaca-lora-7b'

Kapanış

Alpaca-LoRA, Stanford Alpaca modelinin daha az kaynak tüketimli bir sürümüdür. Bu amaca, büyük dil modellerinin düşük-rank uyumlaması (LoRA) sayesinde ulaşır; bu sayede eğitim süreci hızlanırken orijinal Alpaca modeline kıyasla çok daha az bellek tüketilir.

Büyük dil modelleri (LLM) ve üretken yapay zekâ hakkında daha fazla bilgi edinmek için şu eğiticileri inceleyin:

Kurtis Pykes

Yazar

Kurtis Pykes

Konular

İlgili