Görev vektörlerinin model birleştirme ve davranış yönlendirmeyi nasıl verimli hale getirdiğini öğrenin. Sıfır denemeli çoklu görev için Ultralytics ağırlıklarını nasıl kullanabileceğinizi keşfedin.
Görev vektörleri, yeni bir yetkinlik elde etmek amacıyla ince ayar sırasında bir sinir ağının ağırlıklarında yapılan spesifik değişiklikleri temsil eder. Araştırmacılar, ince ayar yapılmış bir modelin parametrelerinden temel modelin parametre lerini çıkararak, ağırlık uzayında o belirli görev için öğrenilen davranışı özetleyen bir yön vektörünü izole edebilirler. Bu yaklaşım, geliştiricilerin model parametreleri üzerindebasit aritmetik işlemleruygulayarak, ek eğitim hesaplaması gerektirmeden model davranışlarını yönlendirmelerine, değiştirmelerine veya birleştirmelerine olanak tanır.
Transfer öğrenme kavramı, mevcut bilgisini uyarlamak üzere bir modelin yeni bir veri kümesinde sırayla eğitilmesini içerirken, görev vektörleri doğrudan eğitim sonrası modelin yapısal ağırlıkları üzerinde işlem yapar. Yeni bir alanı öğrenmek için gradyanları yeniden eğitmek yerine, görev vektörlerini kullanan ağırlık uzayı enterpolasyonu, uygulayıcıların birbirinden bağımsız olarak eğitilmiş birden fazla modelden gelen ağırlık farklarını doğrusal olarak birleştirmesine olanak tanır. Bu, sıfır atışlı model birleştirmeyi mümkün kılar ve tek bir modelin, eğitim sırasında tipik hesaplama yükü olmadan birden fazla yeteneği aynı anda devralmasını sağlar.
Derin öğrenme modellerini cebirsel olarak işleme yeteneği, modern yapay zeka iş akışlarında birçok etkili uygulamaya yol açmıştır:
Bir görev vektörünün oluşturulması ve uygulanması, PyTorch sözlüğüne erişilmesini ve bu sözlüğün işlenmesini gerektirir. Aşağıdaki örnek, ince ayarlanmış bir YOLO26 modelinden bir görev vektörünün nasıl çıkarılacağını ve bunun belirli bir ölçeklendirme faktörüyle temel modele nasıl geri uygulanacağını göstermektedir.
from ultralytics import YOLO
# Load the state dictionaries for the base and fine-tuned models
base_weights = YOLO("yolo26n.pt").model.state_dict()
tuned_weights = YOLO("yolo26n-custom.pt").model.state_dict()
# Calculate the task vector (tuned weights minus base weights)
task_vector = {k: tuned_weights[k] - base_weights[k] for k in base_weights.keys()}
# Apply the task vector to the base model using a 0.5 scaling factor
for k in base_weights.keys():
base_weights[k] += 0.5 * task_vector[k]
Büyük dil modelleri ve devasa görsel transformatörler gibi mimarilerin parametre sayısı arttıkça, her küçük ayarlama için bunları yeniden eğitmek ekonomik açıdan imkansız hale geliyor. Görev vektörleri, eğitim sonrası model optimizasyonu için matematiksel olarak zarif bir alternatif sunar. AI topluluğu, gigabaytlarca büyüklüğündeki modellerin tamamı yerine hafif görev vektörlerini paylaşarak, AI alanında açık kaynak işbirliğini hızlandırabilir. Özel görev vektörleriniz rafine edildikten sonra, Ultralytics kullanmak, sonraki model dağıtım ve izleme süreçlerini basitleştirir ve optimize edilmiş ağırlıklarınızın doğrudan üretime hazır uç noktalara aktarılmasını sağlar.
Makine öğreniminin geleceği ile yolculuğunuza başlayın