Büyük dil modellerinin (LLM) hızla gelişen alanında, prompt tuning gibi son teknoloji yaklaşımları takip etmek kritik öneme sahiptir. Halihazırda eğitilmiş temel modellere uygulanan bu teknik, geleneksel model eğitiminin yüksek hesaplama maliyetleri olmadan performansı artırır.
Bu yazıda, prompt tuning'in temellerini keşfedecek, onu fine-tuning ve prompt engineering ile karşılaştıracak ve önemli faydalarını tartışacağız. Ayrıca HuggingFace platformunu kullanarak pratik bir örnek sunacak, bir bloomz-560m modelini Prompt tune edeceğiz. Bu rehber, prompt tuning'i daha iyi anlamanıza ve projelerinize entegre etmeniz için ilham vermeye yöneliktir.
Prompt Tuning Nedir?
Prompt tuning, önceden eğitilmiş bir dil modelinin çekirdek mimarisini değiştirmeden performansını artırmak üzere tasarlanmış bir tekniktir. Modelin derin yapısal ağırlıklarını değiştirmek yerine, prompt tuning modelin yanıtını yönlendiren istemleri ayarlar. Bu yöntem, giriş dizisinin başına eklenen ayarlanabilir parametreler kümesi olan "yumuşak istemlerin" (soft prompts) eklenmesine dayanır.
Diyagram, geleneksel model ayarlama yaklaşımı ile prompt tuning'i karşılaştırır. Model ayarlamada her görevin ayrı bir modele ihtiyaç duyduğuna dikkat edin. Öte yandan, prompt tuning görev özelinde istemleri ayarlayarak aynı temel modeli birden çok görevde kullanır.
Prompt tuning nasıl çalışır?
1. Yumuşak istemlerin başlatılması
Yumuşak istemler, modelin giriş dizisine eklenen yapay olarak oluşturulmuş belirteçlerdir. Bu istemler çeşitli şekillerde başlatılabilir. Rastgele başlatma yaygındır, ancak belirli sezgisel yöntemlere göre de başlatılabilirler. Başlatıldıktan sonra yumuşak istemler, giriş verilerinin başına eklenir. Model bu veriyi işlerken hem yumuşak istemleri hem de gerçek girişi dikkate alır.
2. İleri geçiş ve kayıp değerlendirmesi
Eğitim süreci genellikle standart bir derin sinir ağının (DNN) eğitimine benzer. Bir ileri geçişle başlar; model, bir çıktı üretmek için birleşik girişi katmanlarından geçirir. Bu çıktı daha sonra bir kayıp fonksiyonu kullanılarak hedeflenen sonuçla karşılaştırılır; bu fonksiyon, model çıktısı ile beklenen gerçek değer arasındaki farkı ölçer.
Geri yayılım
Geri yayılım sırasında hatalar ağ üzerinden geriye doğru yayılır. Ancak ağın ağırlıklarını ayarlamak yerine yalnızca yumuşak istem parametrelerini değiştiririz. Bu süreç, verilen görev için hatayı en aza indirecek şekilde modelin girdileri işlemesini şekillendirmeyi yavaş yavaş öğrenen yumuşak istemlerle, birden çok epok boyunca tekrarlanır.
Yineleme
İleri geçiş, kayıp değerlendirmesi ve geri yayılım süreci birden çok epok boyunca tekrarlanır. Zamanla bu yumuşak istemler, kayıp skorunu tutarlı biçimde düşürecek şekillerde girdiyi şekillendirmeyi öğrenir; böylece modelin görev özelindeki performansı, temel yeteneklerini zedelemeden iyileşir.
Prompt Tuning VS Fine-Tuning VS Prompt Engineering
Prompt tuning, fine-tuning ve prompt engineering, önceden eğitilmiş LLM'lere belirli bir görevdeki performanslarını artırmak için uygulanan üç farklı yöntemdir. Bu yöntemler birbirini dışlamaz ve her biri belirli bir kullanım senaryosuna uygundur.
Fine-tuning
Fine-tuning en fazla kaynağı gerektirir; belirli bir amaç için modelin belirli bir veri kümesi üzerinde kapsamlı şekilde yeniden eğitilmesini içerir. Bu, önceden eğitilmiş modelin ağırlıklarını ayarlayarak onu verinin ayrıntılı inceliklerine göre optimize eder; ancak önemli ölçüde hesaplama kaynağı gerektirir ve aşırı uyum riskini artırır. Chat GPT gibi pek çok LLM, bir sonraki kelime tahmini görevindeki ilk genel eğitimlerinden sonra fine-tuning'den geçer. Fine-tuning, bu modellere dijital asistan olarak nasıl çalışacaklarını öğretir ve onları genel olarak eğitilmiş bir modele kıyasla çok daha kullanışlı kılar.
Prompt tuning
Prompt tuning, modelin giriş işlemesine entegre edilen "yumuşak istemler" olarak bilinen ek bir dizi parametreyi ayarlar. Bu yöntem, modelin istemleri nasıl yorumladığını, ağırlıkları tamamen elden geçirmeden değiştirerek performans artışı ile kaynak verimliliği arasında denge sunar. Özellikle hesaplama kaynaklarının sınırlı olduğu durumlarda veya birden fazla görevde esneklik gerektiğinde değerlidir; çünkü teknik uygulandıktan sonra orijinal model ağırlıkları değişmeden kalır.
Prompt engineering
Prompt engineering ise hiç eğitim veya yeniden eğitim içermez. Tamamen kullanıcının model için istemler tasarlamasına dayanır. Modelin işleme yeteneklerinin incelikli bir şekilde anlaşılmasını gerektirir ve modelde gömülü içsel bilgiyi kullanır. Prompt engineering, yalnızca sonuç almak için stratejik girdi formülasyonuna dayandığından herhangi bir hesaplama kaynağı gerektirmez. Daha fazla bilgi edinmek için DataCamp'in geliştiriciler için prompt engineering kursuna göz atın.
Karşılaştırma
Bu tekniklerin her biri, önceden eğitilmiş modellerin yeteneklerinden yararlanmak için farklı bir yaklaşım sunar. Aralarındaki seçim, hesaplama kaynaklarının mevcudiyeti, model özelleştirme gereksinimi ve modelin öğrenme parametreleriyle etkileşim düzeyi gibi uygulamanın özel ihtiyaçlarına bağlıdır.
Yöntem
Kaynak Yoğunluğu
Eğitim Gerekli mi
En Uygun Olduğu Durum
Fine-Tuning
Yüksek
Evet
Derin model özelleştirmesi gerektiren görevler
Prompt Tuning
Düşük
Evet
Görevler arasında model bütünlüğünü koruma
Prompt Engineering
Yok
Hayır
Hesaplama maliyeti olmadan hızlı uyarlamalar.
Her yöntemin, projenizin özel ihtiyaçlarına bağlı olarak yeri vardır.
Prompt Tuning'in Faydaları
Prompt tuning, büyük dil modellerini optimize etmek için vazgeçilmez kılan birkaç temel fayda sunar.
Kaynak verimliliği
Prompt tuning, önceden eğitilmiş modelin parametrelerini değiştirmeden koruyarak gereken hesaplama gücünü büyük ölçüde azaltır. Bu verimlilik, kaynakların kısıtlı olduğu ortamlarda özellikle kritiktir; yüksek maliyet olmadan gelişmiş model kullanımına olanak tanır. Temel modellerin ortalama boyutu arttıkça, model parametrelerini "dondurmak" daha da cazip hale gelir; çünkü her görev için ayrı bir modelin devreye alınmasına gerek kalmaz.
Hızlı devreye alma
Kapsamlı fine-tuning'in aksine, prompt tuning yalnızca küçük bir yumuşak istem parametreleri kümesinde ayarlamalar gerektirir. Bu, uyarlama sürecini hızlandırır; farklı görevler arasında daha hızlı geçişlere ve daha az kesinti süresine olanak verir.
Model bütünlüğü ve bilgi muhafazası
Modelin çekirdek mimarisini ve ağırlıklarını sağlam tutarak, prompt tuning önceden eğitilmiş modelde gömülü özgün yetenekleri ve bilgiyi korur. Bu, modelin çeşitli uygulamalardaki güvenilirliğini ve genellenebilirliğini sürdürmek açısından kritiktir.
Görev esnekliği
Prompt tuning, yalnızca yumuşak istemleri değiştirerek tek bir temel modelin birden çok görev için kullanılmasını kolaylaştırır. Bu yaklaşım, her bir özel görev için ayrı modelleri eğitme ve sürdürme ihtiyacını azaltır; ölçeklenebilirliği ve model yönetiminde sadeliği artırır.
Azaltılmış insan müdahalesi
Prompt tuning, belirli bir göreve uygun istemler hazırlamanın hataya açık ve zaman alıcı olabildiği prompt engineering'e kıyasla önemli ölçüde daha az insan müdahalesi gerektirir. Bunun yerine, eğitim sırasında yumuşak istemlerin otomatik olarak optimize edilmesi, insan hatasını en aza indirir ve verimliliği en üst düzeye çıkarır.
Rekabetçi performans
Araştırmalar, büyük modellerde prompt tuning'in fine-tuning ile karşılaştırılabilir performans seviyelerine ulaşabildiğini göstermektedir. Model boyutları büyüdükçe bu fayda daha da önemli hale gelir; yüksek verimlilikle güçlü sonuçları birleştirir.
Prompt Tuning'e Adım Adım Yaklaşım
Bu rehber için, BigScience'ın bloomz-560m modeline prompt tuning uygulayacağız. Hugging Face ekosistemi içinde PEFT (Parameter-Efficient Fine-Tuning) kütüphanesini kullanacağız.
Burada nedensel dil modelleme görevine odaklanacak olsak da, PEFT kütüphanesi çeşitli görevleri, modelleri ve ayarlama tekniklerini destekler. Diğer model ve görevler için uyumlu PEFT yöntemlerini PEFT dokümantasyon sayfasında bulabilirsiniz.
1. Modelin ve belirteçleyicinin yüklenmesi
Başlamak için, BigScience bloomz-560m modelinden modeli ve belirteçleyiciyi (tokenizer) yüklüyoruz. Belirteçleyici metin girdilerini işlerken, temel model nedensel dil modelleme görevlerini yürütür. trust_remote_code=True parametresi, modelin sorumluları tarafından belirli mimariler için sağlanan özel kodu kullanmanıza olanak tanır.
Bu, tam işlevsellik kazanmak için yararlı olsa da, yalnızca saygın bir kaynaktan ise modelin koduna güvenin. Bilinmeyen veya doğrulanmamış üreticilerden gelen modeller için güvenilmeyen kodu kullanmaktan kaçının; güvenlik veya kararlılık riski oluşturabilir.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name ="bigscience/bloomz-560m"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
trust_remote_code=True)Altyapı:
2. Temel modelle çıkarım
Herhangi bir ayarlamadan önce, ayarlanmamış temel modelle çıkarım çalıştırarak bir başlangıç seviyesi belirlemek önemlidir. "I want you to act as a logistician" gibi bir istem kullanarak, modelin daha fazla ayarlama olmadan nasıl yanıtlar ürettiğini gözlemleyebiliriz. İstemin sonuna fazladan bir boşluk eklediğinizden emin olun; aksi halde model hiçbir şey üretmeyebilir.
Bu, ayarlama sonrasındaki iyileştirmeleri karşılaştırmak için bir referans görevi görür.
İşlerimizi kolaylaştırmak için özel bir generate_text işlevi kullanacağız.
defgenerate_text(model, tokenizer, prompt_text, max_tokens):
prompt_text = tokenizer(prompt_text, return_tensors="pt")
outputs = model.generate(
input_ids=prompt_text["input_ids"],
attention_mask=prompt_text["attention_mask"],
max_length=max_tokens,
repetition_penalty=1.5,
eos_token_id=tokenizer.eos_token_id
)return tokenizer.batch_decode(outputs, skip_special_tokens=True)
initial_output = generate_text(model, tokenizer,"I want you to act as a logistician. ",100)print("Initial model output:", initial_output)Altyapı:
Model çıktısı şu şekilde:
['I want you to act as a logistician. You will be able to: Analyze the data']
Gördüğünüz gibi model bağlamdan pek emin değil.
3. Veri kümesi
Veri kümesi, prompt tuning'in kritik bir unsurudur. Ayarlama için `awesome-chatgpt-prompts` veri kümesini kullanıyoruz. Bu veri kümesi, modelin yanıtlarını buna göre uyarlamasını sağlayan motive edici içerik sunar.
Veri kümesini belirteçliyor ve eğitim için küçük bir alt küme hazırlıyoruz.
4. Ayarlama
Şimdi en ilginç kısım; PEFT kütüphanesindeki PromptTuningConfig sınıfını kullanarak prompt tuning'i yapılandırıyoruz.
from peft import get_peft_model, PromptTuningConfig, TaskType, PromptTuningInit
tuning_config = PromptTuningConfig(
task_type=TaskType.CAUSAL_LM, #This type indicates the model will generate text.
prompt_tuning_init=PromptTuningInit.RANDOM, #The added virtual tokens are initializad with random numbers
num_virtual_tokens=4, #Number of virtual tokens to be added and trained.
tokenizer_name_or_path=model_name
)
peft_model = get_peft_model(model, tuning_config)Altyapı:
Eğitim argümanları TrainingArguments sınıfı kullanılarak belirtilir.
from transformers import TrainingArguments
training_args = TrainingArguments(
use_cpu=True,# This is necessary for CPU clusters.
output_dir ="./",
auto_find_batch_size=True,# Find a suitable batch size that will fit into memory automatically, you can also use a custom batch size
learning_rate=0.005,
num_train_epochs=5)Altyapı:
Trainer nesnesi eğitim sürecini yönetir. DataCollatorForLanguageModeling ile veri birleştirici, eğitim örneklerinin uygun biçimde düzenlenmesini sağlar. train yöntemiyle başlatılan eğitim aşaması, bloomz-560m modelini belirli istem görevleri için hassas biçimde ayarlar.
from transformers import Trainer, DataCollatorForLanguageModeling
trainer = Trainer(
model=peft_model,# We pass in the PEFT version of the foundation model, bloomz-560M
args=training_args,#The args for the training.
train_dataset=train_prompts,#The dataset used to train the model.
data_collator=DataCollatorForLanguageModeling(tokenizer, mlm=False)# mlm=False indicates not to use masked language modeling)
trainer.train()Altyapı:
5. Ayarlanmış modelle çıkarım
Ayarlanmış model trainer nesnesinde saklanır; ona erişmek için trainer.model'i kullanabiliriz. Ayarlanmış modelle çıkarım çalıştırmak için generate_text işlevini kullanıyoruz!
tuned_output = generate_text(trainer.model, tokenizer,"I want you to act as a logistician. ",100)print("Tuned model output:", tuned_output)Altyapı:
Ayarlanmış modelin çıktısı şöyle:
['I want you to act as a logistician. You will be responsible for the logistics of your business.']
Gördüğünüz gibi artık model, lojistiğin ne yaptığını biliyor. Farklı istemler, modeller ve veri kümeleriyle denemeler yapmaktan çekinmeyin!
Üretken Yapay Zekâda Derine Dalın
Prompt tuning, büyük dil modellerini belirli bir görevde daha verimli hale getirmek için güçlü bir araçtır. Önce ne olduğunu ve nasıl çalıştığını açıklayarak prompt tuning'i inceledik. Ardından onu benzer diğer tekniklerle karşılaştırdık: fine-tuning ve prompt engineering. Son olarak faydalarını tartıştık ve önceden eğitilmiş bir modele prompt tuning uygulamak için adım adım bir rehber sunduk.
Üretken yapay zekâ alanı gelişmeyi sürdürürken, en son gelişmeleri takip etmek önemlidir. Becerilerinizi ve yapay zekâ anlayışınızı daha da geliştirmek için Datacamp çeşitli derinlemesine kaynaklar sunuyor. Şu kapsamlı eğitimleri keşfetmenizi öneririm:
Ben Dimitri Didmanidze. Makine Öğrenmesi odaklı Matematik yüksek lisansı yapıyorum. Akademik yolculuğum, dönüştürücü tabanlı modellerin yetenekleri üzerine araştırmaları ve üniversite düzeyinde ders vermeyi de kapsadı; bu deneyimler, karmaşık kuramsal kavrayışımı güçlendirdi. Ayrıca bankacılık sektöründe çalışarak bu ilkeleri gerçek dünyadaki veri sorunlarını çözmek için uyguladım.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Yapay zekanın temellerini keşfedin, yapay zekayı işinizde etkili bir şekilde kullanmayı öğrenin ve dinamik yapay zeka dünyasında yolunuzu bulmak için ChatGPT gibi modellere dalın.
Büyük dil modellerinin (LLM) hızla gelişen alanında, prompt tuning gibi son teknoloji yaklaşımları takip etmek kritik öneme sahiptir. Halihazırda eğitilmiş temel modellere uygulanan bu teknik, geleneksel model eğitiminin yüksek hesaplama maliyetleri olmadan performansı artırır.
Bu yazıda, prompt tuning'in temellerini keşfedecek, onu fine-tuning ve prompt engineering ile karşılaştıracak ve önemli faydalarını tartışacağız. Ayrıca HuggingFace platformunu kullanarak pratik bir örnek sunacak, bir bloomz-560m modelini Prompt tune edeceğiz. Bu rehber, prompt tuning'i daha iyi anlamanıza ve projelerinize entegre etmeniz için ilham vermeye yöneliktir.
Prompt Tuning Nedir?
Prompt tuning, önceden eğitilmiş bir dil modelinin çekirdek mimarisini değiştirmeden performansını artırmak üzere tasarlanmış bir tekniktir. Modelin derin yapısal ağırlıklarını değiştirmek yerine, prompt tuning modelin yanıtını yönlendiren istemleri ayarlar. Bu yöntem, giriş dizisinin başına eklenen ayarlanabilir parametreler kümesi olan "yumuşak istemlerin" (soft prompts) eklenmesine dayanır.
Görsel kaynağı
Diyagram, geleneksel model ayarlama yaklaşımı ile prompt tuning'i karşılaştırır. Model ayarlamada her görevin ayrı bir modele ihtiyaç duyduğuna dikkat edin. Öte yandan, prompt tuning görev özelinde istemleri ayarlayarak aynı temel modeli birden çok görevde kullanır.
Prompt tuning nasıl çalışır?
1. Yumuşak istemlerin başlatılması
Yumuşak istemler, modelin giriş dizisine eklenen yapay olarak oluşturulmuş belirteçlerdir. Bu istemler çeşitli şekillerde başlatılabilir. Rastgele başlatma yaygındır, ancak belirli sezgisel yöntemlere göre de başlatılabilirler. Başlatıldıktan sonra yumuşak istemler, giriş verilerinin başına eklenir. Model bu veriyi işlerken hem yumuşak istemleri hem de gerçek girişi dikkate alır.
2. İleri geçiş ve kayıp değerlendirmesi
Eğitim süreci genellikle standart bir derin sinir ağının (DNN) eğitimine benzer. Bir ileri geçişle başlar; model, bir çıktı üretmek için birleşik girişi katmanlarından geçirir. Bu çıktı daha sonra bir kayıp fonksiyonu kullanılarak hedeflenen sonuçla karşılaştırılır; bu fonksiyon, model çıktısı ile beklenen gerçek değer arasındaki farkı ölçer.
Geri yayılım
Geri yayılım sırasında hatalar ağ üzerinden geriye doğru yayılır. Ancak ağın ağırlıklarını ayarlamak yerine yalnızca yumuşak istem parametrelerini değiştiririz. Bu süreç, verilen görev için hatayı en aza indirecek şekilde modelin girdileri işlemesini şekillendirmeyi yavaş yavaş öğrenen yumuşak istemlerle, birden çok epok boyunca tekrarlanır.
Yineleme
İleri geçiş, kayıp değerlendirmesi ve geri yayılım süreci birden çok epok boyunca tekrarlanır. Zamanla bu yumuşak istemler, kayıp skorunu tutarlı biçimde düşürecek şekillerde girdiyi şekillendirmeyi öğrenir; böylece modelin görev özelindeki performansı, temel yeteneklerini zedelemeden iyileşir.
Prompt Tuning VS Fine-Tuning VS Prompt Engineering
Prompt tuning, fine-tuning ve prompt engineering, önceden eğitilmiş LLM'lere belirli bir görevdeki performanslarını artırmak için uygulanan üç farklı yöntemdir. Bu yöntemler birbirini dışlamaz ve her biri belirli bir kullanım senaryosuna uygundur.
Fine-tuning
Fine-tuning en fazla kaynağı gerektirir; belirli bir amaç için modelin belirli bir veri kümesi üzerinde kapsamlı şekilde yeniden eğitilmesini içerir. Bu, önceden eğitilmiş modelin ağırlıklarını ayarlayarak onu verinin ayrıntılı inceliklerine göre optimize eder; ancak önemli ölçüde hesaplama kaynağı gerektirir ve aşırı uyum riskini artırır. Chat GPT gibi pek çok LLM, bir sonraki kelime tahmini görevindeki ilk genel eğitimlerinden sonra fine-tuning'den geçer. Fine-tuning, bu modellere dijital asistan olarak nasıl çalışacaklarını öğretir ve onları genel olarak eğitilmiş bir modele kıyasla çok daha kullanışlı kılar.
Prompt tuning
Prompt tuning, modelin giriş işlemesine entegre edilen "yumuşak istemler" olarak bilinen ek bir dizi parametreyi ayarlar. Bu yöntem, modelin istemleri nasıl yorumladığını, ağırlıkları tamamen elden geçirmeden değiştirerek performans artışı ile kaynak verimliliği arasında denge sunar. Özellikle hesaplama kaynaklarının sınırlı olduğu durumlarda veya birden fazla görevde esneklik gerektiğinde değerlidir; çünkü teknik uygulandıktan sonra orijinal model ağırlıkları değişmeden kalır.
Prompt engineering
Prompt engineering ise hiç eğitim veya yeniden eğitim içermez. Tamamen kullanıcının model için istemler tasarlamasına dayanır. Modelin işleme yeteneklerinin incelikli bir şekilde anlaşılmasını gerektirir ve modelde gömülü içsel bilgiyi kullanır. Prompt engineering, yalnızca sonuç almak için stratejik girdi formülasyonuna dayandığından herhangi bir hesaplama kaynağı gerektirmez. Daha fazla bilgi edinmek için DataCamp'in geliştiriciler için prompt engineering kursuna göz atın.
Karşılaştırma
Bu tekniklerin her biri, önceden eğitilmiş modellerin yeteneklerinden yararlanmak için farklı bir yaklaşım sunar. Aralarındaki seçim, hesaplama kaynaklarının mevcudiyeti, model özelleştirme gereksinimi ve modelin öğrenme parametreleriyle etkileşim düzeyi gibi uygulamanın özel ihtiyaçlarına bağlıdır.
Yöntem
Kaynak Yoğunluğu
Eğitim Gerekli mi
En Uygun Olduğu Durum
Fine-Tuning
Yüksek
Evet
Derin model özelleştirmesi gerektiren görevler
Prompt Tuning
Düşük
Evet
Görevler arasında model bütünlüğünü koruma
Prompt Engineering
Yok
Hayır
Hesaplama maliyeti olmadan hızlı uyarlamalar.
Her yöntemin, projenizin özel ihtiyaçlarına bağlı olarak yeri vardır.
Prompt Tuning'in Faydaları
Prompt tuning, büyük dil modellerini optimize etmek için vazgeçilmez kılan birkaç temel fayda sunar.
Kaynak verimliliği
Prompt tuning, önceden eğitilmiş modelin parametrelerini değiştirmeden koruyarak gereken hesaplama gücünü büyük ölçüde azaltır. Bu verimlilik, kaynakların kısıtlı olduğu ortamlarda özellikle kritiktir; yüksek maliyet olmadan gelişmiş model kullanımına olanak tanır. Temel modellerin ortalama boyutu arttıkça, model parametrelerini "dondurmak" daha da cazip hale gelir; çünkü her görev için ayrı bir modelin devreye alınmasına gerek kalmaz.
Hızlı devreye alma
Kapsamlı fine-tuning'in aksine, prompt tuning yalnızca küçük bir yumuşak istem parametreleri kümesinde ayarlamalar gerektirir. Bu, uyarlama sürecini hızlandırır; farklı görevler arasında daha hızlı geçişlere ve daha az kesinti süresine olanak verir.
Model bütünlüğü ve bilgi muhafazası
Modelin çekirdek mimarisini ve ağırlıklarını sağlam tutarak, prompt tuning önceden eğitilmiş modelde gömülü özgün yetenekleri ve bilgiyi korur. Bu, modelin çeşitli uygulamalardaki güvenilirliğini ve genellenebilirliğini sürdürmek açısından kritiktir.
Görev esnekliği
Prompt tuning, yalnızca yumuşak istemleri değiştirerek tek bir temel modelin birden çok görev için kullanılmasını kolaylaştırır. Bu yaklaşım, her bir özel görev için ayrı modelleri eğitme ve sürdürme ihtiyacını azaltır; ölçeklenebilirliği ve model yönetiminde sadeliği artırır.
Azaltılmış insan müdahalesi
Prompt tuning, belirli bir göreve uygun istemler hazırlamanın hataya açık ve zaman alıcı olabildiği prompt engineering'e kıyasla önemli ölçüde daha az insan müdahalesi gerektirir. Bunun yerine, eğitim sırasında yumuşak istemlerin otomatik olarak optimize edilmesi, insan hatasını en aza indirir ve verimliliği en üst düzeye çıkarır.
Rekabetçi performans
Araştırmalar, büyük modellerde prompt tuning'in fine-tuning ile karşılaştırılabilir performans seviyelerine ulaşabildiğini göstermektedir. Model boyutları büyüdükçe bu fayda daha da önemli hale gelir; yüksek verimlilikle güçlü sonuçları birleştirir.
Prompt Tuning'e Adım Adım Yaklaşım
Bu rehber için, BigScience'ın bloomz-560m modeline prompt tuning uygulayacağız. Hugging Face ekosistemi içinde PEFT (Parameter-Efficient Fine-Tuning) kütüphanesini kullanacağız.
Burada nedensel dil modelleme görevine odaklanacak olsak da, PEFT kütüphanesi çeşitli görevleri, modelleri ve ayarlama tekniklerini destekler. Diğer model ve görevler için uyumlu PEFT yöntemlerini PEFT dokümantasyon sayfasında bulabilirsiniz.
1. Modelin ve belirteçleyicinin yüklenmesi
Başlamak için, BigScience bloomz-560m modelinden modeli ve belirteçleyiciyi (tokenizer) yüklüyoruz. Belirteçleyici metin girdilerini işlerken, temel model nedensel dil modelleme görevlerini yürütür.
trust_remote_code=Trueparametresi, modelin sorumluları tarafından belirli mimariler için sağlanan özel kodu kullanmanıza olanak tanır.Bu, tam işlevsellik kazanmak için yararlı olsa da, yalnızca saygın bir kaynaktan ise modelin koduna güvenin. Bilinmeyen veya doğrulanmamış üreticilerden gelen modeller için güvenilmeyen kodu kullanmaktan kaçının; güvenlik veya kararlılık riski oluşturabilir.
2. Temel modelle çıkarım
Herhangi bir ayarlamadan önce, ayarlanmamış temel modelle çıkarım çalıştırarak bir başlangıç seviyesi belirlemek önemlidir. "I want you to act as a logistician" gibi bir istem kullanarak, modelin daha fazla ayarlama olmadan nasıl yanıtlar ürettiğini gözlemleyebiliriz. İstemin sonuna fazladan bir boşluk eklediğinizden emin olun; aksi halde model hiçbir şey üretmeyebilir.
Bu, ayarlama sonrasındaki iyileştirmeleri karşılaştırmak için bir referans görevi görür.
İşlerimizi kolaylaştırmak için özel bir
generate_textişlevi kullanacağız.Model çıktısı şu şekilde:
['I want you to act as a logistician. You will be able to: Analyze the data']Gördüğünüz gibi model bağlamdan pek emin değil.
3. Veri kümesi
Veri kümesi, prompt tuning'in kritik bir unsurudur. Ayarlama için `awesome-chatgpt-prompts` veri kümesini kullanıyoruz. Bu veri kümesi, modelin yanıtlarını buna göre uyarlamasını sağlayan motive edici içerik sunar.
Veri kümesini belirteçliyor ve eğitim için küçük bir alt küme hazırlıyoruz.
4. Ayarlama
Şimdi en ilginç kısım;
PEFTkütüphanesindekiPromptTuningConfigsınıfını kullanarak prompt tuning'i yapılandırıyoruz.Eğitim argümanları
TrainingArgumentssınıfı kullanılarak belirtilir.Trainernesnesi eğitim sürecini yönetir.DataCollatorForLanguageModelingile veri birleştirici, eğitim örneklerinin uygun biçimde düzenlenmesini sağlar.trainyöntemiyle başlatılan eğitim aşaması,bloomz-560mmodelini belirli istem görevleri için hassas biçimde ayarlar.5. Ayarlanmış modelle çıkarım
Ayarlanmış model trainer nesnesinde saklanır; ona erişmek için
trainer.model'i kullanabiliriz. Ayarlanmış modelle çıkarım çalıştırmak içingenerate_textişlevini kullanıyoruz!Ayarlanmış modelin çıktısı şöyle:
['I want you to act as a logistician. You will be responsible for the logistics of your business.']Gördüğünüz gibi artık model, lojistiğin ne yaptığını biliyor. Farklı istemler, modeller ve veri kümeleriyle denemeler yapmaktan çekinmeyin!
Üretken Yapay Zekâda Derine Dalın
Prompt tuning, büyük dil modellerini belirli bir görevde daha verimli hale getirmek için güçlü bir araçtır. Önce ne olduğunu ve nasıl çalıştığını açıklayarak prompt tuning'i inceledik. Ardından onu benzer diğer tekniklerle karşılaştırdık: fine-tuning ve prompt engineering. Son olarak faydalarını tartıştık ve önceden eğitilmiş bir modele prompt tuning uygulamak için adım adım bir rehber sunduk.
Üretken yapay zekâ alanı gelişmeyi sürdürürken, en son gelişmeleri takip etmek önemlidir. Becerilerinizi ve yapay zekâ anlayışınızı daha da geliştirmek için Datacamp çeşitli derinlemesine kaynaklar sunuyor. Şu kapsamlı eğitimleri keşfetmenizi öneririm: