Ισχυρή νευρωνική αναζήτηση με υποδοχές AI/ML στην Υπηρεσία OpenSearch της Amazon | Υπηρεσίες Ιστού της Amazon

Ισχυρή νευρωνική αναζήτηση με υποδοχές AI/ML στην Υπηρεσία OpenSearch της Amazon | Υπηρεσίες Ιστού της Amazon

Κόμβος πηγής: 3068091

Με την έναρξη της λειτουργίας νευρωνικής αναζήτησης για Amazon OpenSearch Service στο OpenSearch 2.9, είναι πλέον εύκολη η ενσωμάτωση με μοντέλα AI/ML για την ενίσχυση της σημασιολογικής αναζήτησης και άλλων περιπτώσεων χρήσης. Η Υπηρεσία OpenSearch έχει υποστηρίξει τόσο τη λεξιλογική όσο και τη διανυσματική αναζήτηση από την εισαγωγή της δυνατότητας k-πλησιέστερου γείτονα (k-NN) το 2020. Ωστόσο, η διαμόρφωση της σημασιολογικής αναζήτησης απαιτούσε τη δημιουργία ενός πλαισίου για την ενσωμάτωση μοντέλων μηχανικής μάθησης (ML) για λήψη και αναζήτηση. Η λειτουργία νευρωνικής αναζήτησης διευκολύνει τον μετασχηματισμό κειμένου σε διάνυσμα κατά την κατάποση και την αναζήτηση. Όταν χρησιμοποιείτε ένα νευρικό ερώτημα κατά την αναζήτηση, το ερώτημα μεταφράζεται σε διανυσματική ενσωμάτωση και το k-NN χρησιμοποιείται για την επιστροφή των πλησιέστερων διανυσματικών ενσωματώσεων από το σώμα.

Για να χρησιμοποιήσετε τη νευρωνική αναζήτηση, πρέπει να ρυθμίσετε ένα μοντέλο ML. Συνιστούμε να διαμορφώσετε τις υποδοχές AI/ML σε υπηρεσίες AWS AI και ML (όπως π Amazon Sage Maker or Θεμέλιο του Αμαζονίου) ή εναλλακτικές λύσεις τρίτων. Ξεκινώντας με την έκδοση 2.9 στην Υπηρεσία OpenSearch, οι υποδοχές AI/ML ενσωματώνονται στη νευρωνική αναζήτηση για να απλοποιήσουν και να λειτουργήσουν τη μετάφραση του σώματος δεδομένων και των ερωτημάτων σας σε ενσωματώσεις διανυσμάτων, αφαιρώντας έτσι μεγάλο μέρος της πολυπλοκότητας της ενυδάτωσης και αναζήτησης διανύσματος.

Σε αυτήν την ανάρτηση, δείχνουμε πώς να ρυθμίσετε τις υποδοχές AI/ML σε εξωτερικά μοντέλα μέσω της κονσόλας OpenSearch Service.

Επισκόπηση λύσεων

Συγκεκριμένα, αυτή η ανάρτηση σας καθοδηγεί στη σύνδεση με ένα μοντέλο στο SageMaker. Στη συνέχεια, σας καθοδηγούμε στη χρήση της εφαρμογής σύνδεσης για τη διαμόρφωση της σημασιολογικής αναζήτησης στην Υπηρεσία OpenSearch ως παράδειγμα περίπτωσης χρήσης που υποστηρίζεται μέσω σύνδεσης με ένα μοντέλο ML. Οι ενσωματώσεις Amazon Bedrock και SageMaker υποστηρίζονται επί του παρόντος στη διεπαφή χρήστη της κονσόλας OpenSearch Service και η λίστα των ενσωματώσεων πρώτου και τρίτων κατασκευαστών που υποστηρίζονται από το περιβάλλον χρήστη θα συνεχίσει να αυξάνεται.

Για οποιαδήποτε μοντέλα που δεν υποστηρίζονται μέσω της διεπαφής χρήστη, μπορείτε να τα ρυθμίσετε χρησιμοποιώντας τα διαθέσιμα API και το Σχεδιαγράμματα ML. Για περισσότερες πληροφορίες, ανατρέξτε στο Εισαγωγή στα μοντέλα OpenSearch. Μπορείτε να βρείτε σχεδιαγράμματα για κάθε σύνδεσμο στο Αποθετήριο ML Commons GitHub.

Προϋποθέσεις

Πριν συνδέσετε το μοντέλο μέσω της κονσόλας OpenSearch Service, δημιουργήστε έναν τομέα OpenSearch Service. Χάρτης an Διαχείριση ταυτότητας και πρόσβασης AWS (IAM) ρόλος με το όνομα LambdaInvokeOpenSearchMLCommonsRole ως ρόλος υποστήριξης στο ml_full_access ρόλο χρησιμοποιώντας την προσθήκη ασφαλείας στους πίνακες ελέγχου OpenSearch, όπως φαίνεται στο παρακάτω βίντεο. Η ροή εργασίας ενσωματώσεων της υπηρεσίας OpenSearch είναι προσυμπληρωμένη για χρήση του LambdaInvokeOpenSearchMLCommonsRole Ο ρόλος IAM από προεπιλογή για τη δημιουργία της σύνδεσης μεταξύ του τομέα της υπηρεσίας OpenSearch και του μοντέλου που έχει αναπτυχθεί στο SageMaker. Εάν χρησιμοποιείτε έναν προσαρμοσμένο ρόλο IAM στις ενσωματώσεις της κονσόλας της υπηρεσίας OpenSearch, βεβαιωθείτε ότι ο προσαρμοσμένος ρόλος έχει αντιστοιχιστεί ως ρόλος υποστήριξης με ml_full_access δικαιώματα πριν από την ανάπτυξη του προτύπου.

Αναπτύξτε το μοντέλο χρησιμοποιώντας το AWS CloudFormation

Το παρακάτω βίντεο δείχνει τα βήματα για τη χρήση της κονσόλας OpenSearch Service για την ανάπτυξη ενός μοντέλου μέσα σε λίγα λεπτά στο Amazon SageMaker και τη δημιουργία του αναγνωριστικού μοντέλου μέσω των υποδοχών AI. Το πρώτο βήμα είναι η επιλογή Ενσωματώσεις στο παράθυρο πλοήγησης στην κονσόλα AWS της υπηρεσίας OpenSearch, το οποίο οδηγεί σε μια λίστα διαθέσιμων ενσωματώσεων. Η ενοποίηση ρυθμίζεται μέσω ενός UI, το οποίο θα σας ζητήσει τις απαραίτητες εισόδους.

Για να ρυθμίσετε την ενοποίηση, χρειάζεται μόνο να παρέχετε το τελικό σημείο του τομέα της υπηρεσίας OpenSearch και να δώσετε ένα όνομα μοντέλου για να προσδιορίσετε μοναδικά τη σύνδεση μοντέλου. Από προεπιλογή, το πρότυπο αναπτύσσει το μοντέλο μετασχηματιστών προτάσεων Hugging Face, djl://ai.djl.huggingface.pytorch/sentence-transformers/all-MiniLM-L6-v2.

Όταν επιλέγετε Δημιουργία στοίβας, δρομολογείστε στο AWS CloudFormation κονσόλα. Το πρότυπο CloudFormation αναπτύσσει την αρχιτεκτονική που περιγράφεται στο παρακάτω διάγραμμα.

Η στοίβα CloudFormation δημιουργεί ένα AWS Lambda εφαρμογή που αναπτύσσει ένα μοντέλο από Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3), δημιουργεί την υποδοχή σύνδεσης και δημιουργεί το αναγνωριστικό μοντέλου στην έξοδο. Στη συνέχεια, μπορείτε να χρησιμοποιήσετε αυτό το αναγνωριστικό μοντέλου για να δημιουργήσετε ένα σημασιολογικό ευρετήριο.

Εάν το προεπιλεγμένο μοντέλο all-MiniLM-L6-v2 δεν εξυπηρετεί τον σκοπό σας, μπορείτε να αναπτύξετε οποιοδήποτε μοντέλο ενσωμάτωσης κειμένου της επιλογής σας στον επιλεγμένο κεντρικό υπολογιστή μοντέλου (SageMaker ή Amazon Bedrock) παρέχοντας τα τεχνουργήματα του μοντέλου σας ως προσβάσιμο αντικείμενο S3. Εναλλακτικά, μπορείτε να επιλέξετε ένα από τα παρακάτω προεκπαιδευμένα γλωσσικά μοντέλα και αναπτύξτε το στο SageMaker. Για οδηγίες σχετικά με τη ρύθμιση του τελικού σημείου και των μοντέλων σας, ανατρέξτε στο Διαθέσιμες εικόνες Amazon SageMaker.

Το SageMaker είναι μια πλήρως διαχειριζόμενη υπηρεσία που συγκεντρώνει ένα ευρύ σύνολο εργαλείων για τη δυνατότητα ML υψηλής απόδοσης και χαμηλού κόστους για κάθε περίπτωση χρήσης, παρέχοντας βασικά οφέλη όπως παρακολούθηση μοντέλου, φιλοξενία χωρίς διακομιστή και αυτοματοποίηση ροής εργασιών για συνεχή εκπαίδευση και ανάπτυξη. Το SageMaker σάς επιτρέπει να φιλοξενείτε και να διαχειρίζεστε τον κύκλο ζωής των μοντέλων ενσωμάτωσης κειμένου και να τα χρησιμοποιείτε για να τροφοδοτείτε ερωτήματα σημασιολογικής αναζήτησης στην Υπηρεσία OpenSearch. Όταν είναι συνδεδεμένο, το SageMaker φιλοξενεί τα μοντέλα σας και η Υπηρεσία OpenSearch χρησιμοποιείται για ερωτήματα με βάση τα αποτελέσματα συμπερασμάτων από το SageMaker.

Προβάλετε το αναπτυγμένο μοντέλο μέσω των πινάκων ελέγχου OpenSearch

Για να επαληθεύσετε ότι το πρότυπο CloudFormation ανέπτυξε επιτυχώς το μοντέλο στον τομέα της Υπηρεσίας OpenSearch και να λάβετε το αναγνωριστικό μοντέλου, μπορείτε να χρησιμοποιήσετε το ML Commons REST GET API μέσω του OpenSearch Dashboards Dev Tools.

Το GET _plugins REST API παρέχει πλέον πρόσθετα API για την προβολή της κατάστασης του μοντέλου. Η ακόλουθη εντολή σάς επιτρέπει να δείτε την κατάσταση ενός απομακρυσμένου μοντέλου:

GET _plugins/_ml/models/<modelid>

Όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης, α DEPLOYED Η κατάσταση στην απόκριση υποδεικνύει ότι το μοντέλο έχει αναπτυχθεί με επιτυχία στο σύμπλεγμα OpenSearch Service.

Εναλλακτικά, μπορείτε να προβάλετε το μοντέλο που έχει αναπτυχθεί στον τομέα σας OpenSearch Service χρησιμοποιώντας το Μηχανική μάθηση σελίδα των πινάκων ελέγχου OpenSearch.

Αυτή η σελίδα παραθέτει τις πληροφορίες μοντέλου και τις καταστάσεις όλων των μοντέλων που έχουν αναπτυχθεί.

Δημιουργήστε τον νευρωνικό αγωγό χρησιμοποιώντας το αναγνωριστικό μοντέλου

Όταν η κατάσταση του μοντέλου εμφανίζεται ως είτε DEPLOYED στο Dev Tools ή πράσινο και Απάντηση στους πίνακες ελέγχου OpenSearch, μπορείτε να χρησιμοποιήσετε το αναγνωριστικό μοντέλου για να δημιουργήσετε τη διοχέτευση νευρικής απορρόφησης. Η ακόλουθη διοχέτευση απορρόφησης εκτελείται στα Εργαλεία προγραμματιστών OpenSearch Dashboards του τομέα σας. Βεβαιωθείτε ότι έχετε αντικαταστήσει το αναγνωριστικό μοντέλου με το μοναδικό αναγνωριστικό που δημιουργήθηκε για το μοντέλο που έχει αναπτυχθεί στον τομέα σας.

PUT _ingest/pipeline/neural-pipeline
{
  "description": "Semantic Search for retail product catalog ",
  "processors" : [
    {
      "text_embedding": {
        "model_id": "sfG4zosBIsICJFsINo3X",
        "field_map": {
           "description": "desc_v",
           "name": "name_v"
        }
      }
    }
  ]
}

Δημιουργήστε το ευρετήριο σημασιολογικής αναζήτησης χρησιμοποιώντας τον νευρωνικό αγωγό ως προεπιλεγμένη γραμμή

Τώρα μπορείτε να ορίσετε την αντιστοίχιση ευρετηρίου σας με την προεπιλεγμένη διοχέτευση που έχει ρυθμιστεί να χρησιμοποιεί τη νέα νευρωνική σωλήνωση που δημιουργήσατε στο προηγούμενο βήμα. Βεβαιωθείτε ότι τα διανυσματικά πεδία έχουν δηλωθεί ως knn_vector και οι διαστάσεις είναι κατάλληλες για το μοντέλο που έχει αναπτυχθεί στο SageMaker. Εάν έχετε διατηρήσει την προεπιλεγμένη διαμόρφωση για την ανάπτυξη του μοντέλου all-MiniLM-L6-v2 στο SageMaker, διατηρήστε τις ακόλουθες ρυθμίσεις ως έχουν και εκτελέστε την εντολή στο Dev Tools.

PUT semantic_demostore
{
  "settings": {
    "index.knn": true,  
    "default_pipeline": "neural-pipeline",
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "desc_v": {
        "type": "knn_vector",
        "dimension": 384,
        "method": {
          "name": "hnsw",
          "engine": "nmslib",
          "space_type": "cosinesimil"
        }
      },
      "name_v": {
        "type": "knn_vector",
        "dimension": 384,
        "method": {
          "name": "hnsw",
          "engine": "nmslib",
          "space_type": "cosinesimil"
        }
      },
      "description": {
        "type": "text" 
      },
      "name": {
        "type": "text" 
      } 
    }
  }
}

Απορροφήστε δείγματα εγγράφων για να δημιουργήσετε διανύσματα

Για αυτήν την επίδειξη, μπορείτε να καταναλώσετε το δείγμα καταλόγου προϊόντων demostore λιανικής στο νέο semantic_demostore δείκτης. Αντικαταστήστε το όνομα χρήστη, τον κωδικό πρόσβασης και το τελικό σημείο του τομέα σας με τις πληροφορίες του τομέα σας και εισαγάγετε ακατέργαστα δεδομένα στην Υπηρεσία OpenSearch:

curl -XPOST -u 'username:password' 'https://domain-end-point/_bulk' --data-binary @semantic_demostore.json -H 'Content-Type: application/json'

Επικυρώστε το νέο ευρετήριο semantic_demostore

Τώρα που έχετε απορροφήσει το σύνολο δεδομένων σας στον τομέα OpenSearch Service, επικυρώστε εάν δημιουργούνται τα απαιτούμενα διανύσματα χρησιμοποιώντας μια απλή αναζήτηση για την ανάκτηση όλων των πεδίων. Επικύρωση εάν τα πεδία ορίζονται ως knn_vectors έχουν τα απαιτούμενα διανύσματα.

Συγκρίνετε τη λεξιλογική αναζήτηση και τη σημασιολογική αναζήτηση που υποστηρίζεται από νευρωνική αναζήτηση χρησιμοποιώντας το εργαλείο Σύγκριση αποτελεσμάτων αναζήτησης

Η Εργαλείο σύγκρισης αποτελεσμάτων αναζήτησης στους Πίνακες ελέγχου OpenSearch είναι διαθέσιμος για φόρτους εργασίας παραγωγής. Μπορείτε να πλοηγηθείτε στο Συγκρίνετε τα αποτελέσματα αναζήτησης σελίδα και συγκρίνετε τα αποτελέσματα ερωτημάτων μεταξύ λεξιλογικής αναζήτησης και νευρικής αναζήτησης που έχουν διαμορφωθεί να χρησιμοποιούν το αναγνωριστικό μοντέλου που δημιουργήθηκε νωρίτερα.

εκκαθάριση

Μπορείτε να διαγράψετε τους πόρους που δημιουργήσατε ακολουθώντας τις οδηγίες σε αυτήν την ανάρτηση διαγράφοντας τη στοίβα CloudFormation. Αυτό θα διαγράψει τους πόρους Lambda και τον κάδο S3 που περιέχουν το μοντέλο που αναπτύχθηκε στο SageMaker. Ολοκληρώστε τα παρακάτω βήματα:

  1. Στην κονσόλα AWS CloudFormation, μεταβείτε στη σελίδα λεπτομερειών στοίβας.
  2. Επιλέξτε Διαγραφή.

  1. Επιλέξτε Διαγραφή για να επιβεβαιώσετε.

Μπορείτε να παρακολουθείτε την πρόοδο διαγραφής στοίβας στην κονσόλα AWS CloudFormation.

Σημειώστε ότι, η διαγραφή της στοίβας CloudFormation δεν διαγράφει το μοντέλο που έχει αναπτυχθεί στον τομέα SageMaker και τη σύνδεση AI/ML που δημιουργήθηκε. Αυτό συμβαίνει επειδή αυτά τα μοντέλα και η εφαρμογή σύνδεσης μπορούν να συσχετιστούν με πολλαπλά ευρετήρια εντός του τομέα. Για να διαγράψετε συγκεκριμένα ένα μοντέλο και τη σχετική σύνδεση, χρησιμοποιήστε τα μοντέλα API όπως φαίνεται στα παρακάτω στιγμιότυπα οθόνης.

Πρώτον, undeploy το μοντέλο από τη μνήμη τομέα της υπηρεσίας OpenSearch:

POST /_plugins/_ml/models/<model_id>/_undeploy

Στη συνέχεια, μπορείτε να διαγράψετε το μοντέλο από το ευρετήριο μοντέλου:

DELETE /_plugins/_ml/models/<model_id>

Τέλος, διαγράψτε τον σύνδεσμο από το ευρετήριο του συνδέσμου:

DELETE /_plugins/_ml/connectors/<connector_id>

Συμπέρασμα

Σε αυτήν την ανάρτηση, μάθατε πώς να αναπτύσσετε ένα μοντέλο στο SageMaker, να δημιουργείτε τη σύνδεση AI/ML χρησιμοποιώντας την κονσόλα OpenSearch Service και να δημιουργείτε το ευρετήριο νευρωνικής αναζήτησης. Η δυνατότητα διαμόρφωσης υποδοχών AI/ML στην Υπηρεσία OpenSearch απλοποιεί τη διαδικασία ενυδάτωσης φορέα καθιστώντας τις ενσωματώσεις σε εξωτερικά μοντέλα εγγενείς. Μπορείτε να δημιουργήσετε ένα ευρετήριο νευρικής αναζήτησης μέσα σε λίγα λεπτά χρησιμοποιώντας τη διοχέτευση νευρικής κατάποσης και τη νευρωνική αναζήτηση που χρησιμοποιούν το αναγνωριστικό μοντέλου για να δημιουργήσουν την ενσωμάτωση διανύσματος κατά τη διάρκεια της λήψης και της αναζήτησης.

Για να μάθετε περισσότερα σχετικά με αυτές τις υποδοχές AI/ML, ανατρέξτε στο Υποδοχές AI της υπηρεσίας OpenSearch της Amazon για υπηρεσίες AWS, Ενσωματώσεις προτύπων AWS CloudFormation για σημασιολογική αναζήτηση, να Δημιουργία υποδοχών για πλατφόρμες ML τρίτων.


Σχετικά με τους Συγγραφείς

Aruna Govindaraju είναι Αρχιτέκτονας Ειδικών Λύσεων OpenSearch της Amazon και έχει συνεργαστεί με πολλές εμπορικές και ανοιχτού κώδικα μηχανές αναζήτησης. Είναι παθιασμένη με την αναζήτηση, τη συνάφεια και την εμπειρία χρήστη. Η τεχνογνωσία της στη συσχέτιση των σημάτων τελικού χρήστη με τη συμπεριφορά των μηχανών αναζήτησης έχει βοηθήσει πολλούς πελάτες να βελτιώσουν την εμπειρία αναζήτησής τους.

Ντάγκνεϊ Μπράουν είναι Κύριος Διαχειριστής Προϊόντων στο AWS που επικεντρώνεται στην OpenSearch.

Σφραγίδα ώρας:

Περισσότερα από Μεγάλα δεδομένα AWS

Η Convoy χρησιμοποιεί το Amazon QuickSight για να βοηθήσει τους αποστολείς και τους μεταφορείς να βελτιώσουν την αποτελεσματικότητα και να εξοικονομήσουν χρήματα με αποφάσεις που βασίζονται σε δεδομένα

Κόμβος πηγής: 1895768
Σφραγίδα ώρας: 4 Ιανουαρίου 2023