Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede , Açık Sinir Ağı Değişimi'nin (ONNX) makine öğrenmesi modellerinizin çıkarımını iyileştirmeye nasıl yardımcı olabileceği açıklanır. Çıkarım veya model puanlaması, üretim verileriyle ilgili tahminler oluşturmak için dağıtılan modeli kullanma işlemidir.
Çıkarım için makine öğrenmesi modellerini iyileştirme, donanım özelliklerinden en iyi şekilde yararlanmanız için modeli ve çıkarım kitaplığını ayarlamanızı gerektirir. Her platformun farklı özellikleri ve özellikleri olduğundan bulut, uç, CPU veya GPU gibi farklı platformlarda en iyi performansı elde etmek istiyorsanız bu görev karmaşık hale gelir. Farklı platformlarda çeşitli çerçevelerden modelleri çalıştırmanız gerekiyorsa karmaşıklık artar. Çerçevelerin ve donanımın tüm farklı bileşimlerini iyileştirmek zaman alabilir.
Yararlı bir çözüm, modelinizi tercih ettiğiniz çerçevede bir kez eğitmek ve ardından bulutta veya uçta herhangi bir yerde çalışabilmesi için modeli dışarı aktarmak veya ONNX'e dönüştürmektir. Microsoft ve iş ortaklarından oluşan bir topluluk, makine öğrenmesi modellerini temsil etmek için açık bir standart olarak ONNX oluşturdu. Modelleri birçok çerçeveden standart ONNX biçimine dışarı aktarabilir veya dönüştürebilirsiniz. Desteklenen çerçeveler TensorFlow, PyTorch, scikit-learn, Keras, Chainer, MXNet ve MATLAB'dir. Modelleri çeşitli platformlarda ve cihazlarda ONNX biçiminde çalıştırabilirsiniz.
Bu ONNX akış diyagramı kullanılabilir çerçeveleri ve dağıtım seçeneklerini gösterir.
ONNX Çalışma Zamanı
ONNX Çalışma Zamanı , ONNX modellerini üretime dağıtmaya yönelik yüksek performanslı bir çıkarım altyapısıdır. ONNX Çalışma Zamanı hem bulut hem de uç için iyileştirilmiştir ve Linux, Windows ve macOS üzerinde çalışır. ONNX, C++ dilinde yazılır, ancak bu ortamlarda kullanabileceğiniz C, Python, C#, Java ve JavaScript (Node.js) API'lerine sahiptir.
ONNX Runtime hem derin sinir ağlarını (DNN) hem de geleneksel makine öğrenmesi modellerini destekler. NVIDIA GPU'larında TensorRT, Intel işlemcilerde OpenVINO ve Windows üzerinde DirectML gibi farklı donanımlardaki hızlandırıcılarla tümleşir. ONNX Çalışma Zamanı'nı kullanarak, kapsamlı üretim sınıfı iyileştirmeleri, test ve devam eden iyileştirmelerden yararlanabilirsiniz.
Bing, Office ve Azure AI gibi yüksek ölçekli Microsoft hizmetleri ONNX Çalışma Zamanı'nı kullanır. Performans artışları birçok faktöre bağlı olsa da, bu Microsoft hizmetleri ONNX kullandığından CPU'da ortalama 2 kat performans kazancı elde eder. ONNX Runtime, Azure Machine Learning'de ve aşağıdakiler dahil olmak üzere makine öğrenmesi iş yüklerini destekleyen diğer Microsoft ürünlerinde çalışır:
- Windows. ONNX Runtime, Windows Machine Learning'in bir parçası olarak Windows'ta yerleşiktir ve yüz milyonlarca cihazda çalışır.
- Azure SQL. Uç Cihazlar için Azure SQL ve Azure SQL Yönetilen Örneği verilerde yerel puanlama çalıştırmak için ONNX kullanır.
- ML.NET. Örnek için bkz . Öğretici: ML.NET'da ONNX kullanarak nesneleri algılama.
ONNX modellerini edinmenin yolları
ONNX modellerini çeşitli yollarla alabilirsiniz:
- Azure Machine Learning'de yeni bir ONNX modeli eğitin veya otomatik makine öğrenmesi özelliklerini kullanın.
- Var olan bir modeli başka bir biçimden ONNX'e dönüştürün. Daha fazla bilgi için ONNX Öğreticileri'ne bkz.
- ONNX Model Zoo'dan önceden eğitilmiş bir ONNX modeli edinin.
- Azure AI Özel Görüntü İşleme hizmetinden özelleştirilmiş bir ONNX modeli oluşturun.
Görüntü sınıflandırma, nesne algılama ve metin işleme modelleri dahil olmak üzere birçok modeli ONNX olarak temsil edebilirsiniz. Modelinizi başarıyla dönüştüremiyorsanız kullandığınız dönüştürücü deposunda bir GitHub sorunu oluşturun.
Azure'da ONNX modeli dağıtımı
Azure Machine Learning'de ONNX modellerinizi dağıtabilir, yönetebilir ve izleyebilirsiniz. ONNX Runtime ile standart bir MLOps dağıtım iş akışı kullanarak bulutta barındırılan bir REST uç noktası oluşturabilirsiniz.
ONNX Çalışma Zamanı için Python paketleri
CPU ve GPU ONNX Çalışma Zamanı için Python paketleri PyPi.org'da kullanılabilir. Yüklemeden önce sistem gereksinimlerini gözden geçirmeyi unutmayın.
Python için ONNX Çalışma Zamanı'nı yüklemek için aşağıdaki komutlardan birini kullanın:
pip install onnxruntime # CPU build
pip install onnxruntime-gpu # GPU build
Python betiğinizde ONNX Çalışma Zamanı'nı çağırmak için aşağıdaki kodu kullanın:
import onnxruntime
session = onnxruntime.InferenceSession("path to model")
Modele eşlik eden belgeler genellikle modeli kullanmaya yönelik girişleri ve çıkışları bildirir. Modeli görüntülemek için Netron gibi bir görselleştirme aracı da kullanabilirsiniz.
ONNX Çalışma Zamanı model meta verilerini, girişlerini ve çıkışlarını aşağıdaki gibi sorgulamanızı sağlar:
session.get_modelmeta()
first_input_name = session.get_inputs()[0].name
first_output_name = session.get_outputs()[0].name
Modeliniz üzerinde çıkarım yapmak için run kullanın ve döndürülmesini istediğiniz çıktıların listesini ve giriş değerlerini içeren bir eşlemeyi iletin. Tüm çıkışları istiyorsanız çıkış listesini boş bırakın. Sonuç, çıktıların listesidir.
results = session.run(["output1", "output2"], {
"input1": indata1, "input2": indata2})
results = session.run([], {"input1": indata1, "input2": indata2})
ONNX Çalışma Zamanı API'sinin tam başvurusu için Python API belgelerine bakın.