Erőteljes neurális keresés AI/ML csatlakozókkal az Amazon OpenSearch szolgáltatásban | Amazon webszolgáltatások

Erőteljes neurális keresés AI/ML csatlakozókkal az Amazon OpenSearch szolgáltatásban | Amazon webszolgáltatások

Forrás csomópont: 3068091

A neurális keresési funkció elindításával a Amazon OpenSearch szolgáltatás Az OpenSearch 2.9-ben már könnyedén integrálható az AI/ML modellekkel a szemantikus keresés és más felhasználási esetek támogatása érdekében. Az OpenSearch Service a lexikális és a vektoros keresést egyaránt támogatja a k-narest szomszéd (k-NN) funkció 2020-as bevezetése óta; azonban a szemantikus keresés konfigurálásához olyan keretrendszert kellett felépíteni, amely integrálja a gépi tanulási (ML) modelleket a feldolgozáshoz és a kereséshez. A neurális keresési funkció megkönnyíti a szöveg-vektor transzformációt a feldolgozás és a keresés során. Ha neurális lekérdezést használ a keresés során, a lekérdezést a rendszer vektorbeágyazássá fordítja le, és a k-NN a legközelebbi vektorbeágyazások visszaadására szolgál a korpuszból.

A neurális keresés használatához be kell állítania egy ML-modellt. Javasoljuk, hogy konfigurálja az AI/ML csatlakozókat az AWS AI és ML szolgáltatásokhoz (mint pl Amazon SageMaker or Amazon alapkőzet) vagy harmadik féltől származó alternatívák. Az OpenSearch Service 2.9-es verziójától kezdődően az AI/ML-összekötők integrálódnak a neurális keresésbe, hogy egyszerűsítsék és operacionalizálják az adatkorpusz és a lekérdezések vektorbeágyazásokká való fordítását, ezáltal eltávolítva a vektorok hidratálásának és keresésének bonyolultságát.

Ebben a bejegyzésben bemutatjuk, hogyan lehet AI/ML csatlakozókat konfigurálni külső modellekhez az OpenSearch Service konzolon keresztül.

Megoldás áttekintése

Pontosabban, ez a bejegyzés végigvezeti Önt a SageMaker modellhez való csatlakozáson. Ezután végigvezetjük az összekötő használatával a szemantikus keresés konfigurálásához az OpenSearch szolgáltatásban, példaként egy olyan használati esetre, amelyet egy ML-modellhez való kapcsolódás támogat. Az Amazon Bedrock és a SageMaker integrációkat jelenleg támogatja az OpenSearch Service konzol felhasználói felülete, és a felhasználói felület által támogatott első és harmadik féltől származó integrációk listája tovább fog bővülni.

A felhasználói felületen keresztül nem támogatott modellek esetében beállíthatja őket az elérhető API-k és a ML tervrajzok. További információkért lásd: Az OpenSearch modellek bemutatása. Az egyes csatlakozókhoz tervrajzokat találhat a ML Commons GitHub adattár.

Előfeltételek

Mielőtt csatlakoztatná a modellt az OpenSearch Service konzolon keresztül, hozzon létre egy OpenSearch szolgáltatási tartományt. Térkép an AWS Identity and Access Management (IAM) szerepét a név szerint LambdaInvokeOpenSearchMLCommonsRole mint a háttér szerepe a ml_full_access szerepet az OpenSearch irányítópultjai biztonsági beépülő moduljának használatával, ahogy az a következő videóban is látható. Az OpenSearch Service integrációs munkafolyamata előre kitöltve a LambdaInvokeOpenSearchMLCommonsRole IAM szerepkör alapértelmezés szerint az OpenSearch Service tartomány és a SageMakerben telepített modell közötti összekötő létrehozásához. Ha egyéni IAM-szerepkört használ az OpenSearch Service konzolintegrációiban, győződjön meg arról, hogy az egyéni szerepkör háttérszerepként van leképezve ml_full_access engedélyeket a sablon telepítése előtt.

Telepítse a modellt az AWS CloudFormation használatával

A következő videó bemutatja azokat a lépéseket, amelyekkel az OpenSearch Service konzol használatával perceken belül telepíthet egy modellt az Amazon SageMaker rendszeren, és létrehozhatja a modellazonosítót az AI-csatlakozókon keresztül. Az első lépés a választás Integráció az OpenSearch Service AWS-konzol navigációs ablaktáblájában, amely az elérhető integrációk listájához vezet. Az integráció egy felhasználói felületen keresztül történik, amely kéri a szükséges bemeneteket.

Az integráció beállításához csak az OpenSearch Service tartományi végpontját kell megadnia, és egy modellnevet kell megadnia a modellkapcsolat egyedi azonosításához. Alapértelmezés szerint a sablon a Hugging Face mondattranszformátor modellt alkalmazza, djl://ai.djl.huggingface.pytorch/sentence-transformers/all-MiniLM-L6-v2.

Ha úgy dönt Stack létrehozása, Ön a következőre van irányítva: AWS felhőképződés konzol. A CloudFormation-sablon a következő diagramban részletezett architektúrát telepíti.

A CloudFormation verem létrehoz egy AWS Lambda alkalmazás, amelyből telepít egy modellt Amazon egyszerű tárolási szolgáltatás (Amazon S3), létrehozza a csatlakozót, és a kimenetben generálja a modellazonosítót. Ezt a modellazonosítót ezután szemantikai index létrehozásához használhatja.

Ha az alapértelmezett all-MiniLM-L6-v2 modell nem szolgálja a célt, bármely választott szövegbeágyazási modellt telepíthet a kiválasztott modellgazdagépen (SageMaker vagy Amazon Bedrock), ha elérhető S3 objektumként adja meg a modell melléktermékeit. Alternatív megoldásként az alábbiak közül választhat előre betanított nyelvi modellek és telepítse a SageMakerbe. A végpont és a modellek beállításához lásd: Elérhető Amazon SageMaker képek.

A SageMaker egy teljesen felügyelt szolgáltatás, amely eszközök széles skáláját egyesíti a nagy teljesítményű, alacsony költségű ML lehetővé tételéhez bármilyen felhasználási esetre, olyan kulcsfontosságú előnyöket biztosítva, mint a modellfigyelés, a szerver nélküli tárhely és a munkafolyamatok automatizálása a folyamatos képzéshez és telepítéshez. A SageMaker lehetővé teszi a szövegbeágyazási modellek üzemeltetését és életciklusának kezelését, valamint a szemantikus keresési lekérdezések végrehajtását az OpenSearch szolgáltatásban. Amikor csatlakoztatva van, a SageMaker tárolja a modelljeit, és az OpenSearch szolgáltatást használják a SageMaker következtetési eredményein alapuló lekérdezéshez.

Tekintse meg a telepített modellt az OpenSearch irányítópultjain keresztül

Ha ellenőrizni szeretné, hogy a CloudFormation-sablon sikeresen telepítette-e a modellt az OpenSearch Service-tartományban, és megkapja a modellazonosítót, használhatja az ML Commons REST GET API-t az OpenSearch Dashboards Dev Tools-on keresztül.

A GET _plugins REST API mostantól további API-kat biztosít a modell állapotának megtekintéséhez. A következő paranccsal megtekintheti egy távoli modell állapotát:

GET _plugins/_ml/models/<modelid>

Ahogy a következő képernyőképen látható, a DEPLOYED A válasz állapota azt jelzi, hogy a modell sikeresen telepítve van az OpenSearch Service-fürtön.

Alternatív megoldásként megtekintheti az OpenSearch Service tartományában telepített modellt a következő használatával Gépi tanulás az OpenSearch irányítópultok oldala.

Ez az oldal felsorolja a modellinformációkat és az összes telepített modell állapotát.

Hozza létre a neurális csővezetéket a modellazonosító segítségével

Amikor a modell állapota a következőként jelenik meg: vagy DEPLOYED a Dev Toolsban vagy a zöld és Reagálás Az OpenSearch irányítópultjaiban a modellazonosító segítségével felállíthatja a neurális adatfeldolgozási folyamatot. A következő feldolgozási folyamat fut a domainje OpenSearch Dashboards Dev Tools programjában. Ügyeljen arra, hogy cserélje ki a modellazonosítót a tartományban telepített modellhez létrehozott egyedi azonosítóra.

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"
        }
      }
    }
  ]
}

Hozza létre a szemantikai keresési indexet a neurális csővezeték alapértelmezett csővezetékének használatával

Most már meghatározhatja az indexleképezést az előző lépésben létrehozott új neurális folyamat használatára konfigurált alapértelmezett folyamattal. Győződjön meg arról, hogy a vektormezők a következőképpen vannak deklarálva knn_vector és a méretek megfelelnek a SageMakerben telepített modellnek. Ha megtartotta az alapértelmezett konfigurációt az all-MiniLM-L6-v2 modell SageMaker rendszerben történő üzembe helyezéséhez, tartsa meg a következő beállításokat, és futtassa a parancsot a Fejlesztői eszközökben.

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" 
      } 
    }
  }
}

A vektorok generálásához vegyen be mintadokumentumokat

Ehhez a demóhoz bekebelezheti a minta kiskereskedelmi demostore termékkatalógus az újhoz semantic_demostore index. Cserélje le a felhasználónevet, a jelszót és a tartomány végpontját a domain információira, és töltse be a nyers adatokat az OpenSearch szolgáltatásba:

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

Érvényesítse az új szemantic_demostore indexet

Most, hogy feldolgozta adatkészletét az OpenSearch Service tartományába, ellenőrizze, hogy a szükséges vektorok létrejöttek-e egy egyszerű kereséssel az összes mező lekéréséhez. Érvényesítse, hogy a mezők definíciója: knn_vectors rendelkezik a szükséges vektorokkal.

Hasonlítsa össze a lexikális keresést és a neurális keresésen alapuló szemantikus keresést a Keresési eredmények összehasonlítása eszközzel

A Keresési eredmények összehasonlítása eszköz az OpenSearch irányítópultjain elérhető az éles munkaterhelésekhez. Navigálhat a Hasonlítsa össze a keresési eredményeket oldalt, és hasonlítsa össze a lexikális keresés és a korábban generált modellazonosító használatára konfigurált neurális keresés lekérdezési eredményeit.

Tisztítsuk meg

A CloudFormation verem törlésével törölheti az ebben a bejegyzésben található utasításokat követve létrehozott erőforrásokat. Ezzel törli a SageMakerben telepített modellt tartalmazó Lambda-erőforrásokat és S3-tárolót. Hajtsa végre a következő lépéseket:

  1. Az AWS CloudFormation konzolon navigáljon a verem részleteinek oldalára.
  2. A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a töröl.

  1. A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a töröl megerősítéséhez.

Az AWS CloudFormation konzolon nyomon követheti a veremtörlés folyamatát.

Vegye figyelembe, hogy a CloudFormation-verem törlése nem törli a SageMaker-tartományon telepített modellt és a létrehozott AI/ML-összekötőt. Ennek az az oka, hogy ezek a modellek és az összekötő több indexhez is társíthatók a tartományon belül. Egy modell és a hozzá tartozó összekötő konkrét törléséhez használja a modell API-kat a következő képernyőképeken látható módon.

Először is, undeploy a modell az OpenSearch Service tartománymemóriájából:

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

Ezután törölheti a modellt a modellindexből:

DELETE /_plugins/_ml/models/<model_id>

Végül törölje a csatlakozót a csatlakozóindexből:

DELETE /_plugins/_ml/connectors/<connector_id>

Következtetés

Ebben a bejegyzésben megtanulta, hogyan telepíthet modellt a SageMakerben, hogyan hozhatja létre az AI/ML-összekötőt az OpenSearch Service konzol segítségével, és hogyan építheti fel a neurális keresési indexet. Az AI/ML-összekötők konfigurálásának lehetősége az OpenSearch szolgáltatásban leegyszerűsíti a vektorhidratálási folyamatot azáltal, hogy a külső modellekhez való integrációt natívvá teszi. Percek alatt létrehozhat egy neurális keresési indexet a neurális beviteli folyamat és a neurális keresés segítségével, amelyek a modellazonosítót használják a vektorbeágyazás létrehozásához a feldolgozás és a keresés során.

Ha többet szeretne megtudni ezekről az AI/ML csatlakozókról, lásd: Amazon OpenSearch Service AI-csatlakozók az AWS-szolgáltatásokhoz, AWS CloudFormation sablonintegrációk a szemantikus kereséshezés Csatlakozók létrehozása harmadik féltől származó ML platformokhoz.


A szerzőkről

Aruna Govindaraju az Amazon OpenSearch Specialist Solutions Architect, és számos kereskedelmi és nyílt forráskódú keresőmotorral dolgozott együtt. Szenvedélye a keresés, a relevancia és a felhasználói élmény. A végfelhasználói jelzések és a keresőmotorok viselkedésének összefüggésében szerzett szakértelme sok ügyfélnek segített a keresési élmény javításában.

Dagney Braun az AWS fő termékmenedzsere, aki az OpenSearch-re összpontosít.

Időbélyeg:

Még több AWS Big Data