Dosya yükleme ve backend bağlama

Özet

  • Bir dosya, bir component'in çalışma zamanında tükettiği tipli bir workspace artefaktıdır. Her yükleme tiplidir (onnx, mar, gguf, weights, csv, image, parquet, …), file_id ile adreslenebilir ve birçok backend boyunca yeniden kullanılabilir.
  • Bir component, component.yml'sinde (file_schema) dosya slotları deklare eder. Bir backend, ppl backend add-file ile belirli bir yüklenmiş dosyayı belirli bir vertex üzerindeki belirli bir slota bağlar. Bağlama, backend grafının bir parçasıdır — yeniden üretilebilir, geri alınabilir, yeniden deploy edilebilir.
  • Dosya ve bağlama ayrıdır. Bir model yüklemek bir workspace artefaktı üretir; artefakt yalnızca bir backend vertex'ine bağlandıktan ve backend deploy edildikten sonra çalışır. Aynı dosya aynı anda birçok backend'e ve birçok vertex'e bağlanabilir.
  • Bir dosyanın isteğe bağlı config metadata'sı, bağlama anında vertex parametre varsayılanları ayarlayabilir. Bu, kendi güven eşiğini, label'larını veya ön işleme config'ini taşıyan bir artefakt için kalıptır: dosya kendi kendini tanımlar hâle gelir ve backend grafı bu varsayılanları otomatik olarak alır.
  • Akış, yükleme başarılı olduğunda değil, bağlı dosya runtime'da çalıştığında tamamlanır. Bağlamayı bir fixture run izler ve fixture run, davranışı doğrulayan kısımdır.

Bir dosya nedir

Bir dosya, bir component'in çalışma zamanında tükettiği tipli, adlandırılmış bir workspace artefaktıdır — bir kez yüklenir, referansla bir backend vertex'ine bağlanır, backend'ler boyunca yeniden kullanılır. Primitive, zihinsel model ve dosyaların neden component'lerden ayrı olduğu Files içinde yaşar. Bu sayfa uygulamalı yoldur: yükle, config ekle, bağla, kanıtla.

Yükleme

Dosya henüz workspace'te değilken bu adımı kullanın.

Yükleme, yerel bir dosyayı (veya dizini) workspace dosya deposuna iter ve onu bir tip, bir görünen ad ve bir README ile kaydeder. Etkileşimsiz form, script'lerde ve agent akışlarında kullanılacak olandır:

ppl file upload <path> --type <type> --name "<display>" --readme @./README.mdppl file upload <path> --type <type> --name "<display>" --readme @./README.md --config ./file.config.yml

--type yük taşıyan bayraktır: yüklemenin ne tür bir artefakt olduğunu ve hangi file_schema slotlarının ortaya çıkan dosyayı kabul edeceğini belirler. Yüklemede yanlış bir tip, bind adımının onu daha sonra reddetmesi veya bind'in başarılı olması ve runtime'ın uyumsuz bir yükleyiciye ulaşması anlamına gelir. Platform geniş bir tip kelime dağarcığı sunar: model artefaktları (triton_model, onnx, safetensors, checkpoint, weights, tokenizer, lora, gguf, mar), veri fixture'ları (csv, json, jsonl, image, audio, video, parquet, arrow, numpy, bundle, binary) ve config/doc tipleri (yaml, toml, text, markdown, openapi, jsonschema, config).

Triton durumu vurgulamaya değer çünkü en yaygın yükleme hatasıdır. --type triton_model, önceden tar'lanmış bir arşivi değil, bir dizin yolu olarak geçilen bir Triton model repository dizini bekler — düzen ve dizin-değil-arşiv kuralı için /file-api/file-types bölümüne bakın. Bind doğrular ve hata yalnızca runtime modeli yüklediğinde ortaya çıkar.

Yüklemede bir açıklama gereklidir: onu --readme ile inline veya --readme @<path> ile bir dosyadan geçin. Görünen ad --name'den gelir. Her ikisini de komut satırında geçmek akışı etkileşimsiz tutar — açıklamayı atlayan bir agent akışı, yanıtlayamadığı bir editör isteminde takılır.

Bir dosyaya config ekleme

Artefakt kendi çalışma zamanı varsayılanlarını taşımalıysa bunu kullanın.

Bir dosyanın yüklemede eklenmiş bir --config <yaml> belgesi olabilir. Config'in iki etkisi vardır: tags'i workspace dosya listesinde aranabilir metadata'dır ve config_schema varsayılanları, dosya daha sonra bir backend vertex'ine bağlandığında eşleşen vertex parametrelerine akar.

tags:  - detector  - warehouseconfig_schema:  confidence_threshold:    type: Double    default: 0.35  labels:    type: String    default: warehouse_labels

config_schema varsayılanları ada göre eşleşir: adı tüketen component'in vertex'indeki bir parametreyle eşleşen her girdi, bağlama anında o vertex parametresinin değerini değiştirir. Bir model artefaktını kendi kendini tanımlar yapan budur — artefakt ve tercih edilen çalışma zamanı ayarları birlikte seyahat eder ve backend grafı onları otomatik olarak alır. Config'i confidence=0.35 ayarlayan bir dosyayı bağlamak, ayrı bir parametre adımı olmadan backend'i 0.35'te çalışır bırakır.

Yan etki de yük taşır. Daha önce ppl backend change-parameter ile ayarlanmış bir vertex parametresi, eşleşen bir config_schema girdisine sahip bir dosya bağlandığında değiştirilir. Artefaktın sahip olduğu parametreler için artefaktın değeri kazanır. Kural: config_schema'daki her şey dosyaya aittir ve geri kalan her şey grafta change-parameter kontrolü altında kalır.

Bir vertex'e bağlama

Dosya workspace'te olduğunda ve backend vertex'i onun için bir slot deklare ettiğinde bu adımı kullanın.

Bağlama, bir file_id'yi belirli bir backend'in belirli bir vertex'indeki belirli bir file_schema slotuna ekler:

ppl backend add-file <backend_id> --vertex <vertex_id> --key <file_schema_key> --file <file_id>

--key, tüketen component tarafından deklare edilen slot adıdır (örneğin bir file_schema.model deklarasyonu için --key model). Platform, dosya tipinin slotun kabul ettiğiyle eşleştiğini doğrular, böylece eşleşmeyen bir tip çalışma zamanı yerine bağlama anında reddedilir.

Bind, event-sourced backend logunda tek bir graf operasyonudur: bir girdi ekler, dosyayla gelen tüm config_schema varsayılanlarını uygular ve backend'in yeniden üretilebilir geçmişinin bir parçası olur. Bir sonraki deploy veya redeploy yeni bağlamayı alır. Bağlı bir dosyayı bir başkasıyla değiştirmek, farklı bir file_id'ye yöneltilmiş aynı operasyondur ve önceki bağlama backend operasyon logu aracılığıyla geri alınabilir.

Bunun operasyon logunda nasıl yer aldığı için Backend operasyonları bölümüne ve bir bağlama değişikliğinden sonra neyin yeniden deploy edildiği için Deploy et ve izle bölümüne bakın.

Bağlamayı kanıtlama

Bu adımı her seferinde kullanın. Runtime davranışı doğrulayana kadar bağlama tamamlanmış değildir.

Bağlı bir dosya, platformun artefaktın tipinin slot için kabul edilebilir olduğunu doğruladığı anlamına gelir. Artefaktın doğru çıktı ürettiği anlamına gelmez. Bir detektör bağlanabilir ve sonra yanlış label setini yükleyebilir; bir tokenizer bağlanabilir ve sonra modelin beklenen kelime dağarcığıyla uyuşmayabilir; bir Triton repository'si bağlanabilir ve sonra container'ın yüklü olmadığı bir backend'e başvurabilir. Bu hataların her biri yalnızca runtime dosyayı yükleyip çalıştırdığında ortaya çıkar.

Kanıt adımı, deploy edilmiş backend üzerinden bir fixture run'dır. Ucuz form, küçük temsili bir girdiye karşı bir canlı backend testidir; ayrıntılı form, Davranışı kanıtla içinde tanımlanan version karşılaştırma kanıt döngüsüdür. Önemli olan, bağlı dosyanın beklenen semantik çıktıyı üretmesidir, bind çağrısının başarılı olması değil.

İlgili

Bu sayfa yardımcı oldu mu?