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ı
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.
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.
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:
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):
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 |
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
- 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,
Not
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,
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 flow
sohbetler ü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.
İlgili içerik
- Windows'da Sorumlu Üretken Yapay Zeka Uygulamaları ve Özellikleri Geliştirme
- AI Toolkit'e genel bakış
- Visual Studio Code için AI Toolkit'i kullanmaya başlama
- Model ince ayar kavramları