Split Learning
Gizlilik risklerini, eğitim iş akışlarını, uygulamaları ve tasarım tercihlerini incelerken bölünmüş öğrenmenin, işbirlikçi yapay zekayı desteklemek için sinir ağlarını cihazlar arasında nasıl böldüğünü öğren.
Bölünmüş öğrenme, bir sinir ağını iki veya daha fazla bilgi işlem konumu arasında bölen dağıtık bir makine öğrenimi yaklaşımıdır. Bir istemci, özel giriş verilerini modelin erken katmanları üzerinden işler, sunucuya yalnızca ara aktivasyonları gönderir ve yerel katmanlarını eğitmeye devam etmek için gereken gradyanları alır. Bu, kuruluşların veya cihazların ham eğitim verilerini doğrudan aktarmadan işbirliği yapmasına olanak tanır.
Bu yaklaşım, özellikle makine öğrenimi gizlilik, sahiplik, bant genişliği veya donanım sınırları arasında çalışması gerektiğinde önem kazanır. Örneğin bir hastane, daha güçlü bir sunucu modelin hesaplama açısından yoğun kısmını çalıştırırken tıbbi görüntüleri yerel olarak tutabilir. Ancak ham verileri yerel tutmak, ara temsiller hassas bilgileri açığa çıkarabileceğinden otomatik olarak veri gizliliği garantisi vermez.
Bölünmüş Öğrenme Nasıl Çalışır#
Bir sinir ağı seçilen bir kesme katmanında bölünür. Kesmeden önceki katmanlar istemcide çalışırken, sonrakiler sunucuda çalışır. İstemci tarafındaki ağın çıktısı genellikle aktivasyon, ara temsil veya parçalanmış veri olarak adlandırılır.
Bir eğitim adımı şu sırayı takip eder:
- İstemci, ham girdiden kesme katmanına kadar ileri yönlü bir geçiş çalıştırır.
- Elde edilen aktivasyonu sunucuya gönderir.
- Sunucu, ileri yönlü geçişi tamamlar ve kaybı hesaplar.
- Geri yayılım sırasında sunucu, kesme katmanı aktivasyonu için bir gradyan hesaplar ve bunu geri döndürür.
- İstemci, yerel katmanlarını güncellemek için bu gradyanı kullanır.
Bu süreç, PyTorch otomatik türevlendirme gibi sistemler tarafından uygulanan aynı zincir kuralına dayanır. Aradaki fark, eğitim sırasında aktivasyonların ve gradyanların bir ağ sınırını geçmesidir.
Aşağıdaki tek süreçli örnek bu sınırı simüle eder:
import torch
from torch import nn
client_model = nn.Sequential(nn.Linear(8, 16), nn.ReLU())
server_model = nn.Sequential(nn.Linear(16, 2))
client_optimizer = torch.optim.SGD(client_model.parameters(), lr=0.01)
server_optimizer = torch.optim.SGD(server_model.parameters(), lr=0.01)
inputs = torch.randn(4, 8)
targets = torch.tensor([0, 1, 0, 1])
client_optimizer.zero_grad()
server_optimizer.zero_grad()
client_activations = client_model(inputs)
sent_activations = client_activations.detach().requires_grad_()
predictions = server_model(sent_activations)
loss = nn.CrossEntropyLoss()(predictions, targets)
loss.backward()
client_activations.backward(sent_activations.grad)
server_optimizer.step()
client_optimizer.step()
print(loss.item())client_activations değerini ayırmak, bunların başka bir sisteme gönderilmesini temsil eder. Geri döndürülen aktivasyon gradyanı, optimizasyon için iki yarıyı yeniden birbirine bağlar. Bir üretim uygulaması ağ iletişimi, kimlik doğrulama, şifreleme, hata yönetimi ve gizlilik kontrolleri eklemelidir.
Bölünmüş Öğrenme ve İlgili Yaklaşımlar#
Bölünmüş öğrenme, daha geniş dağıtık eğitim alanına aittir, ancak hesaplamayı farklı şekilde bölümlere ayırır.
- Federatif öğrenme: Her katılımcı normalde eksiksiz bir yerel model eğitir ve birleştirme için model güncellemeleri gönderir. Bölünmüş öğrenme ise her katılımcıya modelin yalnızca bir kısmını verir ve ara aktivasyonlar ile gradyanları takas eder.
- Boru hattı paralelliği: Her iki yaklaşım da farklı katmanları farklı cihazlara yerleştirir. Boru hattı paralelliği öncelikle güvenilir bir ortamlarda ölçeği veya donanım kullanımını iyileştirirken, bölünmüş öğrenme genellikle veri sahiplerini hesaplama sağlayıcılarından ayırır.
- Veri paralelliği eğitimi: PyTorch DistributedDataParallel ve TensorFlow dağıtık eğitim gibi çerçeveler bir modeli çoğaltır ve güncellemeleri senkronize eder. Bunlar normalde erken katmanları yalnızca orijinal verilerin yanında tutmaz.
Bölünmüş öğrenme, kuruluşların eşleşen kayıtlar için farklı özellikler tuttuğu dikey olarak bölümlenmiş verileri de destekleyebilir. SecretFlow bölünmüş öğrenme iş akışı bu düzenlemeyi gösterir.
Gerçek Dünya Uygulamaları#
-
Ortak tıbbi görüntüleme: Hastaneler, röntgenleri veya taramaları kendi altyapılarında tutarken paylaşılan bir bilgisayarlı görü sistemi eğitebilir. Her hastane ilk katmanları yerel olarak çalıştırır ve merkezi bir sunucu eğitimi ara özelliklerden tamamlar. MIT bölünmüş öğrenme genel bakışı bu mimariyi açıklamak için radyoloji merkezlerini kullanır.
-
Kaynak kısıtlı endüstriyel kameralar: Fabrika kameraları veya ağ geçitleri, bir sunucu nesne tespiti için kalan katmanları eğitirken yerel olarak kompakt bir özellik çıkarıcı çalıştırabilir. Bu, ham video aktarımını ve istemci hesaplamasını azaltarak yaklaşımı birden fazla tesiste çalışan uç yapay zeka sistemleri için uygun hale getirebilir.
Avantajlar, Riskler ve Tasarım Seçimleri#
Kesme katmanı, istemci iş yükü, sunucu iş yükü, iletişim hacmi ve bilgi maruziyeti arasındaki dengesini belirler. Erken bir kesme, istemci hesaplamasını azaltır ancak büyük, giriş benzeri aktivasyonlar üretebilir. Daha geç bir kesme ise daha soyut özellikler oluşturabilir ancak daha güçlü istemci donanımı gerektirir.
Ara aktivasyonlar ve gradyanlar yeniden oluşturmaya, çıkarıma veya manipülasyona karşı savunmasız kalabilir. Bu nedenle ekipler, bölünmüş öğrenmeyi eksiksiz bir gizlilik çözümü olarak ele almak yerine erişim kontrollerini, şifreli aktarımı, aktivasyon korumasını, denetim günlüğünü ve katılımcı güvenini değerlendirmelidir. NIST Gizlilik Çerçevesi ve NIST AI Risk Yönetimi Çerçevesi bu riskleri değerlendirmek için daha geniş süreçler sunar.
Her eğitim adımı iki yönlü iletişim gerektirebileceğinden bant genişliği ve gecikme de önemlidir. Yavaş veya güvenilmez istemciler tüm sistemi geciktirebilirken, tutarsız veri dağılımları yakınsamayı etkileyebilir.
Ultralytics YOLO, anahtar teslimi bölünmüş öğrenme düzenlemesi sağlamaz. Bunu uygulamak, YOLO mimarisini dikkatlice bölümlere ayırmayı, uzaktaki ileri ve geri geçişleri koordine etmeyi ve belgelenmiş özel eğitmen iş akışını potansiyel olarak genişletmeyi gerektirir. Yalnızca verilerin sahip olunan donanımda kalmasını gerektiren projeler için Ultralytics Platform model eğitimi, akış metrikleriyle yerel eğitimi destekler, ancak modelin kendisi katılımcılar arasında bölünmediği için yerel eğitim bölünmüş öğrenme değildir.






