Aracılığıyla paylaş


VS Code için AI Toolkit ile modelde ince ayar yapma

AI Toolkit for VS Code (AI Toolkit), uygulamalarınızla veya bulutla yapay zeka modellerini indirmenize, test edip ince ayar yapmanızı ve dağıtmanızı sağlayan VS Code bir uzantıdır. Daha fazla bilgi için bkz. AI Toolkit'e genel bakış.

Not

VS Code için AI Toolkit'e yönelik ek belgeler ve öğreticiler GitHub deposunda mevcuttur: microsoft/vscode-ai-toolkit. Playground, yapay zeka modelleriyle çalışma, yerel ve bulut tabanlı modellerde ince ayarlama ve daha fazlası hakkında yönergeler bulacaksınız.

Bu makalede şunları nasıl yapacağınızı öğreneceksiniz:

  • Hassas ayarlamalar yapmak için yerel bir ortam ayarlayın.
  • Bir ince ayar görevini yürüt.

Önkoşullar

  • tamamlandı Visual Studio Codeiçin AI Toolkit'i kullanmaya başlama.
  • Hassas ayarlamalar yapmak için bir Windows bilgisayar kullanıyorsanız Windows Subsystem for Linux (WSL)yükleyin. WSL ve varsayılan Linux dağıtımının yüklenmesini sağlamak için bkz. WSL ile Windows'a Linux yükleme. WSL Ubuntu dağıtım 18.04 veya üzeri yüklenmelidir ve VS Codeiçin AI Toolkit'i kullanmadan önce varsayılan dağıtım olarak ayarlanmalıdır. varsayılan dağıtımıdeğiştirmeyi öğrenin.
  • Bir Linux bilgisayar kullanıyorsanız, bu bir Ubuntu dağıtımı 18.04 veya üzeri olmalıdır.
  • Bu öğreticide modeli kullanmak için, ince ayar amacıyla NVIDIA GPU'ları gerekir. Katalogda CPU'lar veya NPU'lar kullanılarak Windows cihazlarına yüklenebilen başka modeller de vardır.

Öneri

Bilgisayarınızda en son NVIDIA sürücüleri yüklü olduğundan emin olun. Game Ready Driver veya Studio Driverarasında seçim yaparsanız, Studio Driverindirin.

Doğru sürücüleri indirmek için GPU'nuzun modelini bilmeniz gerekir. Hangi GPU'ya sahip olduğunuzu öğrenmek için GPU'nuzu nasıl kontrol edeceğinizi ve neden önemli olduğunu ve'ye bakabilirsiniz.

Ortam kurulumu

Yerel cihazınızda veya bulut VM'nizde ince ayar işlerini çalıştırmak için gerekli tüm önkoşullara sahip olup olmadığınızı denetlemek için komut paletini açın (Shift+Control+P) ve AI Araç Seti: Ortamı Doğrulama önkoşullarınıarayın.

Yerel cihazınız doğrulama denetimlerinden geçerse, sizin seçim yapmanız için WSL Ortamı Kur düğmesi etkinleştirilir. Bu işlem, ince ayar işlerini çalıştırmak için gereken tüm bağımlılıkları yükler.

Bulut VM

Yerel bilgisayarınızda Nvidia GPU cihazı yoksa, Nvidia GPU ile (kotanız varsa) hem Windows hem de Linux olmak üzere bir bulut VM'de ince ayar yapmak mümkündür. Azure'da aşağıdaki VM serisiyle ince ayar yapabilirsiniz:

  • NCasT4_v3 serisi
  • NC A100 v4 serisi
  • ND A100 v4 serisi
  • NCads H100 v5 serisi
  • NCv3 serisi
  • NVadsA10 v5 serisi

Öneri

VS Code, bulut VM'nize uzaktan bağlanmanızı sağlar. Bu özelliği bilmiyorsanız SSH üzerinden uzaktan geliştirme öğreticisini okuyun

Modelde ince ayar yapma

AI Toolkit, modellerde kendi verilerinizle ince ayar yapmak için niceleme ve düşük dereceli uyarlamayı (LoRA) birleştiren QLoRAadlı bir yöntem kullanır. QLoRA hakkında daha fazla bilgi için bkz. QLoRA:Nicelenmiş LLM'ler için Verimli İyiLeştirme.

1. Adım: Projeyi yapılandırma

QLoRA kullanarak yeni bir ince ayar oturumu başlatmak için AI Toolkit sol panelindeki Araçları bölümünde İnce ayar öğesini seçin.

  1. Benzersiz bir Proje Adı ve Proje Konumugirerek başlayın. Proje dosyalarını depolamak için seçtiğiniz konumda belirtilen proje adına sahip yeni bir klasör oluşturulur.

  2. Ardından, Model Kataloğu içinden bir model - örneğin Phi-3-mini-4k-instruct - seçin ve ardından Projeyi Yapılandırseçin:

    Proje kurulumunda ince ayarlama

  3. Ardından, ince ayar proje ayarlarınızı yapılandırmanız istenir. Yerel olarak ince ayar onay kutusunun işaretlendiğinden emin olun (gelecekte VS Code uzantısı, ince ayarları buluta boşaltmanıza olanak sağlayacaktır):

    Ayarları ince ayar yap

Model çıkarımı ayarları

Model çıkarımı bölümünde iki ayar vardır:

Ayar Açıklama
conda ortamı adı Etkinleştirilecek ve ince ayar işlemi için kullanılacak conda ortamının adı. Bu ad conda yüklemenizde benzersiz olmalıdır.
Çıkarım sorgu şablonu Çıkarım zamanında kullanılacak istem şablonu. Bunun ince ayarlı sürümle eşleştiğinden emin olun.

Veri ayarları

Veri kümesi bilgilerini yapılandırmak için Veri bölümünde aşağıdaki ayarlar kullanılabilir:

Ayar Açıklama
veri kümesi adı Modelde ince ayar yapmak için kullanılacak veri kümesinin adı.
Eğitimi bölme Veri kümenizin eğitim bölme adı.
Veri kümesi türü Kullanılacak veri kümesinin türü.
Metin sütunları Eğitim istemini doldurmak için veri kümesindeki sütunların adları.
Metin şablonu Modelde ince ayar yapmak için kullanılacak istem şablonu. Bu, Metin sütununda bulunandeğiştirme belirteçlerini kullanır.
Corpus stratejisi Örnekleri birleştirmek mi yoksasatır satır işlemek mi istediğinizi gösterir.
Kaynak maksimum uzunluk Eğitim örneği başına maksimum belirteç sayısı.
Maksimum uzunluğa kadar dolgu Eğitim örneğine, maksimum belirteç sayısına ulaşana kadar bir PAD belirteci ekleyin.

Ayarlarda ince ayar yapma

aşağıdaki ayarlar, ince ayarlama işlemini daha fazla yapılandırmak için İnce ayar bölümünde bulunur:

Ayarlar Veri tipi Varsayılan değer Açıklama
İşlem Dtype Dize bfloat16 Model ağırlıkları ve bağdaştırıcı ağırlıkları için veri türü. 4 bitlik bir nicelenmiş model için, aynı zamanda nicelenmiş modüllerin hesaplama veri türüdür. Geçerli değerler: bfloat16, float16 veya float32.
Miktar türü Dize nf4 Kullanılacak niceleme veri türü. Geçerli değerler: fp4 veya nf4.
Çifte kuantum Boolean evet İlk nicelemedeki niceleme sabitlerinin yeniden ölçüldüğü iç içe niceleme kullanılıp kullanılmayacağı.
Lora r Tam sayı 64 Lora'nın dikkat boyutu.
Lora alfa Yüzmek 16 Lora ölçeklendirme için alfa parametresi.
Lora kopması Yüzmek 0.1 Lora katmanları için dropout olasılığı.
Değerlendirme veri kümesi boyutu Yüzmek 1024 Doğrulama veri kümesinin boyutu.
Tohum Tam sayı 0 Başlatma için rastgele bir tohum.
Veri Tohumu Tam sayı 42 Veri örnekleyicilerle kullanılacak rastgele bir tohum.
Cihaz başına eğitme toplu işlem boyutu Tam sayı 1 Eğitim için GPU başına toplu iş boyutu.
Cihaz başına değerlendirme küme boyutu Tam sayı 1 Değerlendirme için her GPU'ya düşen küme boyutu.
Gradyan birikimi adımları Tam sayı 4 Geriye doğru/güncelleme geçişini gerçekleştirmeden önce gradyanların birikmesi için gereken güncelleme adımlarının sayısı.
Gradyan denetim noktasını etkinleştirme Boolean evet Gradyan kontrol noktası kullanın. bellek tasarrufu için önerilir.
Öğrenme oranı Yüzmek 0.0002 AdamW için başlangıç öğrenme oranı.
En fazla adım Tam sayı -1 Pozitif bir sayıya ayarlanırsa, gerçekleştirilecek eğitim adımlarının toplam sayısı. Bu, num_train_epochs'un yerine geçer. Sınırlı bir yinelenebilir veri kümesi kullanılması durumunda, tüm veriler tükendiğinde ayarlanan adım sayısına ulaşmadan önce eğitim durdurulabilir.

2. Adım: Proje oluşturma

Tüm parametreler ayarlandıktan sonra Proje Oluşturöğesine tıklayın. Bu işlem aşağıdaki eylemleri gerçekleştirir:

  • Model indirme işlemini başlatın.
  • Tüm önkoşulları ve bağımlılıkları yükleyin.
  • VS Code çalışma alanı oluşturun.

Model indirildiğinde ve ortam hazır olduğunda, Adım 3 - Proje oluşturma sayfasında Çalışma Alanı Pencereyi Yeniden Başlat'ı seçerek projeyi AI Toolkit'ten başlatabilirsiniz. Bu işlem ortamınıza bağlı yeni bir VS Code örneği başlatır.

Not

için İstem akışı gibi ek uzantılar yüklemeniz istenebilir. En iyi ince ayarlama deneyimi için devam etmek için bunları yükleyin.

Yeniden başlatılan pencerenin çalışma alanında aşağıdaki klasörler bulunur:

Klasör Adı Açıklama
veri seti Bu klasör, şablonu (dataset-classification.json - tümcecikler ve tonlar içeren bir JSON satır dosyası) için veri kümesini içerir. Projenizi yerel bir dosya veya Hugging Face veri kümesi kullanacak şekilde ayarlarsanız, bu klasörü yoksayabilirsiniz.
ince ayar Olive yapılandırma dosyaları, hassas ayarlama işini yürütmek için. Olive, model sıkıştırma, iyileştirme ve derleme genelinde sektör lideri teknikler oluşturan, kullanımı kolay bir donanım kullanan model iyileştirme aracıdır. Model ve hedefli donanım göz önünde bulundurulduğunda Olive, doğruluk ve gecikme süresi gibi bir dizi kısıtlamayı göz önünde bulundurarak bulut veya uçta çıkarım için en verimli modellerin çıkışını yapmak için en uygun iyileştirme tekniklerini oluşturur.
Çıkarım hassas bir modelle çıkarım için kod örnekleri.
altyapı Azure Container App Service kullanılarak ince ayar ve tahmin için (yakında geliyor). Bu klasör, Azure Container App Service'i sağlamaya ilişkin Bicep ve yapılandırma dosyalarını içerir.
Kurulum Conda ortamını ayarlamak için kullanılan dosyalar. Örneğin pip gereksinimleri.

3. Adım: hassas ayarlama işini yürütme

Artık aşağıdakileri kullanarak modelde ince ayar yapabilirsiniz:

# replace {conda-env-name} with the name of the environment you set
conda activate {conda-env-name}
python finetuning/invoke_olive.py 

Önemli

İnce ayar yapmak için gereken süre GPU türüne, GPU sayısına, adım sayısına ve dönem sayısına bağlıdır. Bu işlem zaman alabilir (örneğin, birkaç saatsürebilir).

Yalnızca hızlı bir test yapmak istiyorsanız, dosyanızda en fazla adım sayısını azaltmayı göz önünde bulundurun. Denetim noktaları kullanıldığından, sonraki ince ayar işlemi son denetim noktasından devam edecektir.

Denetim noktaları ve son model projenizin models klasörüne kaydedilir.

4. Adım: İyi ayarlanmış modeli uygulamanızla tümleştirme

Bir sonraki çalışmada, console, web browser veya prompt flowsohbetler üzerinden ince ayarlı modelle çıkarım yapın.

cd inference

# Console interface.
python console_chat.py

# Web browser interface allows to adjust a few parameters like max new token length, temperature and so on.
# User has to manually open the link (e.g. http://127.0.0.1:7860) in a browser after gradio initiates the connections.
python gradio_chat.py

Öneri

Yönergeler, proje klasöründe bulunabilen README.md sayfasında da bulunur.