Core ML modeli göndermeden önce kontrol etmen gerekenler

Core ML modelleri sadece ağırlık ve katmanlardan ibaret değil. Bazı alanlar modelin app kodunuza erişmesini sağlıyor ve bu da bir güvenlik riski oluşturabiliyor.

Eğer dışarıdan gelen bir.mlmodel ya da.mlpackage dosyasını uygulamanıza gömmek üzereseniz, MV2 tarafından hazırlanan coreml_model_scan.py aracını CI/CD pipeline'ınıza ekleyin. Bu açık kaynak tarayıcı, Python standart kütüphanesiyle çalışıyor; coremltools, protobuf veya macOS'a ihtiyacı yok.

Dört ana noktaya bakmalısın. Birincisi, custom layer'lar. Bir custom layer className alanıyla app sınıfını adlandırıyor ve Core ML onu çalıştırıyor. Bu sadece üst seviyede değil, branch ve loop katmanlarının içinde gizlenmiş olabilir. İkincisi, linked model'ler. Başka bir derlenmiş modeli dosya adı ve iki nokta üstüste ayrılmış bir arama yoluyla yükleyebiliyor. Üçüncüsü, ML Program ağırlık yolları. @model_path/weights/weight.bin gibi yollarla dış dosyalara işaret edebiliyor. Dördüncüsü,.mlpackage içindeki Manifest.json. Her öğeyi Data/ altındaki bir yola eşleştiriyor.

Bu kontroller özellikle önemli çünkü bir model kötü niyetli kod çalıştırabilir ya da uygulamanızın içinde bulunmaması gereken dosyalara erişebilir. keras-model-scan toolkit'in parçası olan coreml_model_scan.py, bu dört alanı otomatik olarak tarayıp raporlayıyor. Dış kaynaktan gelen her modeli bundle'lamadan önce bu tarama geçişini atlama.

konu hakkında tepkinizi verebilirsiniz