İçeriğe geç

Referans koordinatör#

istemci/koordinator.py, protokol v1'in tam ve gerçek eğitimle denenmiş uygulamasıdır (Python standart HTTP sunucusu + PyTorch). Kendi koordinatörünüzü yazmadan başlamak için en kısa yol budur.

Gereksinimler#

  • Python 3.10+, torch, safetensors, transformers, peft (başlangıç adaptörünü üretmek için)
  • Taban model: models/qwen3-0.6b-base (Qwen/Qwen3-0.6B-Base, Apache-2.0). Koordinatör yalnızca adaptör ağırlıklarını işler; ama başlangıç adaptörünü üreten betik modele ihtiyaç duyar. GPU gerekmez.
  • RAM: birkaç yüz MB (adaptör 40 MB, işçi sayısıyla çarpılır).

Çalıştırma#

python istemci/baslat.py                                   # tur-0 adaptörünü üretir
python istemci/koordinator.py \
    --baslangic istemci/calisma/tur-0.safetensors \
    --tur 20 --en-az 2 --ic-adim 20 --port 8750

Durum paneli: http://127.0.0.1:8750/ (JSON: /durum).

Bayraklar#

BayrakVarsayılanAnlamı
--baslangic(zorunlu)Başlangıç adaptörü (baslat.py çıktısı)
--host127.0.0.1Dinlenecek adres. Genel ağda doğrudan 0.0.0.0 yapmayın; ters vekil kullanın
--port8750Port
--tur6Toplam tur sayısı
--en-az2Turu kapatmak için gereken en az sonuç
--zaman-asimi900Saniye; dolunca eldeki (≥1) sonuçla tur kapanır
--parca4Veri dilimi sayısı (n_parca); işçilere dönüşümlü atanır
--ic-adim20H: işçinin yerel adım sayısı
--bs4Yığın büyüklüğü
--seq512Dizi uzunluğu
--lr2e-4Tepe öğrenme oranı (işçide kosinüs çizelgesi)
--dis-lr1.0Dış adım öğrenme oranı
--dis-mom0.5Dış adım momentumu
--aykiri-kat5.0Delta normu medyanın bu katını aşan sonucu ele (≥3 sonuçta)
--anahtar(boş)Doluysa tüm istekler X-Anahtar başlığı taşımalı
--calismaistemci/calismaÇıktı klasörü
--tohum0Başlangıç adaptörü tohumu

Çıktı dosyaları#

--calisma klasöründe:

Dosyaİçerik
tur-N.safetensorsN. turun sonunda global adaptör (tur-0 başlangıçtır)
gunluk.jsonTur günlüğü (kullanılan/elenen işçiler, delta normları, süre) ve trafik
sorular.jsonl/soru ile gelen topluluk soruları (python istemci/sorular.py ile okunur)

Genel ağda yayınlama#

koordinator.ornek.org {
    reverse_proxy 127.0.0.1:8750
}

Sonra uyum testini çalıştırın ve adresinizi doğrulayın. Systemd ile kalıcı çalıştırma:

[Unit]
Description=Modelen koordinatoru
After=network.target

[Service]
User=modelen
WorkingDirectory=/opt/modelen
ExecStart=/opt/modelen/.venv/bin/python istemci/koordinator.py --baslangic istemci/calisma/tur-0.safetensors --tur 50 --en-az 3
Restart=always

[Install]
WantedBy=multi-user.target

Bilinen sınırlar#

Dikkat

Referans koordinatör bir prototiptir:

  • Dış adım momentum tamponu bellekte durur; yeniden başlatınca sıfırlanır (turlar diske yazılır).
  • Kimlik doğrulama yalnızca isteğe bağlı tek paylaşılan anahtardır; hesap/hız sınırı yoktur. Sybil saldırısına açıktır.
  • Zehirlenme koruması yalnızca basit aykırı norm elemesidir (≥3 sonuçta). Kararlı bir saldırgana karşı yetmez; tekrarlı doğrulama (aynı görevi iki işçiye verip karşılaştırma) yapılmaz.
  • TLS yoktur; ters vekil gerekir.
  • Tüm işçiler aynı adım sayısını yapar; yavaş bir GPU turu geciktirir (zaman aşımı eldekilerle kapatır).

Ayrıntılı liste: istemci/ISTEMCI.md.