Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
L'algorithme SageMaker k-nearest neighbors (k-NN) d'Amazon AI est un algorithme basé sur un index. Il utilise une méthode non paramétrique pour la classification ou la régression. Pour les problèmes de classification, l'algorithme interroge les k points qui sont les plus proches de l'exemple de point et renvoie l'étiquette la plus fréquemment utilisée de leur classe comme étiquette prédite. Pour les problèmes de régression, l'algorithme interroge les k points les plus proches de l'exemple de point et renvoie la moyenne de leurs valeurs de caractéristique comme valeur prédite.
L'apprentissage avec l'algorithme k-NN possède trois étapes : l'échantillonnage, la réduction de dimension et la création d'index. L'échantillonnage réduit la taille du jeu de données initial afin qu'il puisse entrer en mémoire. Pour la réduction de dimension, l'algorithme diminue la dimension de caractéristique des données afin de réduire l'empreinte du modèle k-NN en mémoire et la latence de l'inférence. Nous fournissons deux méthodes de réduction des dimensions : méthode par projection aléatoire et méthode FJLT (Fast Johnson-Lindenstrauss Transform). En général, vous utilisez une réduction de dimension pour les jeux de données à dimension élevée (d > 1000) afin d'éviter la « malédiction de dimension » qui perturbe l'analyse statistique des données, lesquelles deviennent de plus en plus clairsemées au fur et à mesure que les dimensions augmentent. L'objectif principal de l'apprentissage de l'algorithme k-NN est de construire l'index. L'index permet les recherches efficaces de distances entre les points dont les valeurs ou les étiquettes de classe n'ont pas encore été déterminées et les k points les plus proches à utiliser pour l'inférence.
Rubriques
Interface d'entrée/sortie pour l'algorithme k-NN
SageMaker AI K-nn prend en charge les canaux de données de train et de test.
-
Utilisez un canal formation (train) pour les données que vous souhaitez échantillonner et construire dans l'index k-NN.
-
Utilisez un canal test pour émettre les scores dans les fichiers journaux. Les scores sont répertoriés sous la forme d'une ligne par mini-lot : précision pour
classifier
, erreur quadratique moyenne (mse, mean-squared error) pourregressor
pour le score
Pour les entrées d'apprentissage, k-NN prend en charge les formats de données text/csv
et application/x-recordio-protobuf
. Pour le type d'entrée text/csv
, les premières colonnes label_size
sont interprétées comme vecteur d'étiquette de cette ligne. Vous pouvez utiliser le mode File (Fichier) ou le mode Pipe (Tube) pour entraîner les modèles sur les données obéissant au format recordIO-wrapped-protobuf
ou au format CSV
.
Pour les entrées d'inférence, k-NN prend en charge les formats de données application/json
, application/x-recordio-protobuf
et text/csv
. Le format text/csv
accepte un champ label_size
et un paramètre d'encodage. Il suppose un champ label_size
égal à 0 et un encodage UTF-8.
Pour les sorties d'inférence, k-NN prend en charge les formats de données application/json
et application/x-recordio-protobuf
. Ces deux formats de données prennent également en charge un mode de sortie détaillé. En mode de sortie détaillé, l'API fournit les résultats de recherche avec le vecteur des distances triées de la plus petite à la plus grande, et les éléments correspondants dans le vecteur des étiquettes.
Pour la transformation par lots, l'algorithme k-NN prend en charge le format de données application/jsonlines
aussi bien pour l'entrée que pour la sortie. Voici un exemple d'entrée :
content-type: application/jsonlines
{"features": [1.5, 16.0, 14.0, 23.0]}
{"data": {"features": {"values": [1.5, 16.0, 14.0, 23.0]}}
Voici un exemple de sortie :
accept: application/jsonlines
{"predicted_label": 0.0}
{"predicted_label": 2.0}
Pour plus d'informations sur les formats de fichier en entrée et en sortie, consultez Formats de données pour les entrées de formation k-NN pour l'apprentissage, Formats de demande et de réponse k-NN pour l'inférence, ainsi que la rubrique Exemples de blocs-notes k-NN.
Exemples de blocs-notes k-NN
Pour un exemple de carnet utilisant l'algorithme SageMaker AI K-Nearest Neighbor pour prédire les types de couverture sauvage à partir des données géologiques et du service forestier, voir le K-Nearest Neighbor
Utilisez une instance de bloc-notes Jupyter pour exécuter l'exemple dans SageMaker AI. Pour savoir comment créer et ouvrir une instance de bloc-notes Jupyter dans SageMaker AI, consultez. Instances Amazon SageMaker Notebook Une fois que vous avez créé une instance de bloc-notes et que vous l'avez ouverte, sélectionnez l'onglet Exemples d'SageMaker IA pour voir la liste de tous les blocs-notes d'exemples d' SageMaker IA. Recherchez les blocs-notes K-Nearest Neighbor dans la section Introduction aux algorithmes Amazon. Pour ouvrir un bloc-notes, cliquez sur son onglet Use (Utiliser) et sélectionnez Create copy (Créer une copie).
EC2 Recommandation d'instance pour l'algorithme k-NN
Nous vous recommandons d'effectuer l'entraînement sur une instance de CPU (telle que ml.m5.2xlarge) ou sur une instance de GPU. L'algorithme k-NN prend en charge les familles d'instances de GPU P2, P3, G4dn et G5 pour l'entraînement et l'inférence.
Les demandes d'inférence ont CPUs généralement une latence moyenne inférieure à celle des demandes provenant de, GPUs car les communications sont soumises à une taxe sur les CPU-to-GPU communications lorsque vous utilisez du matériel GPU. Cependant, ils ont GPUs généralement un débit plus élevé pour les lots plus importants.