Machine Learning et IA avec ONNX dans SQL Edge
Important
Azure SQL Edge ne prend plus en charge la plateforme ARM64.
Dans Azure SQL Edge, l’apprentissage automatique prend en charge les modèles au format ONNX (Open Neural Network Exchange). ONNX est un format ouvert que vous pouvez utiliser pour échanger des modèles entre plusieurs infrastructures et outils de Machine Learning.
Vue d’ensemble
Pour déduire des modèles Machine Learning dans Azure SQL Edge, vous devez d’abord obtenir un modèle. Il peut s’agir d’un modèle préentraîné ou d’un modèle personnalisé entraîné avec votre infrastructure de choix. Azure SQL Edge prend en charge le format ONNX et vous devez convertir le modèle en ce format. Il ne doit pas y avoir d’effet sur la précision du modèle et une fois que vous avez le modèle ONNX, vous pouvez déployer le modèle dans Azure SQL Edge et utiliser le scoring natif avec la fonction PREDICT T-SQL.
Obtenir des modèles ONNX
Pour obtenir un modèle au format ONNX :
Services de génération de modèles : les services tels que la fonctionnalité de machine automatisée Apprentissage dans Azure Machine Apprentissage et Azure Custom Vision Service prennent en charge l’exportation directe du modèle entraîné au format ONNX.
Convertir et/ou exporter des modèles existants : plusieurs infrastructures d’entraînement (par exemple, PyTorch, Chainer et Caffe2) prennent en charge la fonctionnalité d’exportation native vers ONNX, ce qui vous permet d’enregistrer votre modèle entraîné dans une version spécifique du format ONNX. Pour les frameworks qui ne prennent pas en charge l’exportation native, il existe des packages installables ONNX Converter autonomes qui vous permettent de convertir des modèles entraînés à partir de différents frameworks Machine Learning au format ONNX.
Infrastructures prises en charge
-
Pour obtenir la liste complète des infrastructures prises en charge ainsi que des exemples, consultez Conversion au format ONNX.
Limites
Actuellement, tous les modèles ONNX ne sont pas pris en charge par Azure SQL Edge. La prise en charge est limitée aux modèles avec des types de données numériques :
Les autres types numériques peuvent être convertis vers des types pris en charge avec CAST et CONVERT.
Les entrées de modèle doivent être structurées afin que chaque entrée du modèle corresponde à une colonne unique dans une table. Par exemple, si vous utilisez un dataframe pandas pour entraîner un modèle, chaque entrée doit être une colonne distincte du modèle.