İçeriğe geç

Uyum testi#

istemci/uyum_testi.py, koordinatörünüzün protokol v1'e uyup uymadığını denetler. Yalnızca Python standart kütüphanesine dayanır (PyTorch gerekmez); herhangi bir dilde yazılmış koordinatörü uzaktan test eder.

python istemci/uyum_testi.py --url https://koordinator.ornek.org
python istemci/uyum_testi.py --url http://127.0.0.1:8750 --anahtar GIZLI --json
BayrakAnlamı
--urlKoordinatör adresi (zorunlu)
--anahtarKoordinatör X-Anahtar istiyorsa
--isciDeneme işçi adı (varsayılan uyum-testi)
--jsonMakine okunur çıktı

Çıkış kodu: tüm zorunlu maddeler geçerse 0, bir FAIL varsa 1.

Dikkat

Test, koordinatörünüzde uyum-testi adlı bir işçi kaydı oluşturur (/gorev çağrısı) ve /sonuc'a bilerek geçersiz veri gönderir (reddedilmesi beklenir). Canlı bir eğitimin ortasında çalıştırırsanız deneme işçisi veri dilimi atamasını etkileyebilir; ayrı bir deneme örneğinde çalıştırmanız önerilir.

Örnek çıktı#

  tamam  TLS                        https
  tamam  /bilgi                     protokol 1, taban_model=Qwen/Qwen3-0.6B-Base
  tamam  /durum                     tur 0/6 (4 ms)
  tamam  /gorev (işçi adı yok)      HTTP 400
  tamam  /gorev                     tur 0, parça 0/4, 20 adım
  tamam  /agirlik sha256            başlık gövdeyle eşleşiyor
  tamam  /agirlik X-Tur             0
  tamam  /agirlik safetensors       392 tensör, dtype ['F32'], LoRA: 392 (40.4 MB, 0.3 sn)
  tamam  /sonuc (bozuk veri)        HTTP 400
  tamam  /sonuc (eski/yanlış tur)   HTTP 409
  tamam  /sonuc (boş gövde)         HTTP 413
  tamam  bilinmeyen yol             HTTP 404

12 geçti, 0 uyarı, 0 hata -> UYUMLU

Maddeler#

MaddeDurumNe denetlenir
TLSuyarıYerel olmayan http:// adresi uyarı verir
/bilgiuyarıprotokol: "1" içeren JSON; yoksa uyarı
/durumzorunlutur, toplam_tur (tamsayı), bekleyen_sonuc (liste), isciler (nesne), trafik (nesne)
/gorev (işçi adı yok)uyarıisci yoksa 400
/gorevzorunlubekle/bitti ya da tüm görev alanları (tipleriyle) + 64 haneli agirlik_sha256
/agirlik sha256zorunluX-Sha256 başlığı gövdenin gerçek özetiyle aynı
/agirlik X-TurzorunluTamsayı
görev-ağırlıkzorunluAynı turda gorev.agirlik_sha256 indirilen ağırlığın özetiyle aynı
/agirlik safetensorszorunluGeçerli safetensors: başlık JSON, aralıklar dosya içinde, pickle değil
/agirlik dtypeuyarıF32 dışı tür uyarı verir
/sonuc (bozuk veri)zorunlu400 ya da 422 (asla 200/500)
/sonuc (eski/yanlış tur)zorunlu400, 409 ya da 422
/sonuc (boş gövde)zorunlu400, 413 ya da 422
bilinmeyen yoluyarı404
kimlikzorunlu401 dönerse --anahtar gerekir
bağlantızorunluAdrese bağlanılabilmeli (sertifika dahil)

CI'da kullanmak#

GitHub Actions ile her değişiklikte denetleyin:

name: Modelen uyum
on: [push]
jobs:
  uyum:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4          # Modelen deposundan uyum_testi.py'yi alın
        with: { repository: macbyclp/modelen-tr }
      - name: Koordinatörünüzü başlatın
        run: ./sizin-kodunuz --port 8750 &
      - name: Uyum testi
        run: python istemci/uyum_testi.py --url http://127.0.0.1:8750 --json

Araç kendisi nasıl test edilir?#

istemci/test_uyum.py, uyumlu ve bilerek bozulmuş sahte koordinatörlerle aracı sınar (yanlış X-Sha256, 500 dönen /sonuc, geçersizi 200 ile kabul eden /sonuc, eksik /durum alanı, pickle benzeri ağırlık…) ve mevcutsa gerçek referans koordinatörün geçtiğini doğrular.