Tehohermohaku AI/ML-liittimillä Amazon OpenSearch Servicessä | Amazon Web Services

Tehohermohaku AI/ML-liittimillä Amazon OpenSearch Servicessä | Amazon Web Services

Lähdesolmu: 3068091

Kun hermohakutoiminto käynnistettiin Amazon OpenSearch-palvelu OpenSearch 2.9:ssä on nyt vaivatonta integroida AI/ML-malleihin semanttisen haun ja muiden käyttötapausten tehostamiseksi. OpenSearch Service on tukenut sekä leksikaalista että vektorihakua siitä lähtien, kun sen k-lähin naapuri (k-NN) otettiin käyttöön vuonna 2020; semanttisen haun määrittäminen edellytti kuitenkin kehyksen rakentamista koneoppimismallien (ML) integroimiseksi hakuun ja hakuun. Hermohakuominaisuus helpottaa tekstin muuntamista vektoriksi haun ja haun aikana. Kun käytät hermokyselyä haun aikana, kysely käännetään vektoriupotukseksi ja k-NN:tä käytetään palauttamaan lähimmät vektoriupotukset korpusesta.

Jotta voit käyttää hermohakua, sinun on määritettävä ML-malli. Suosittelemme AI/ML-liittimien määrittämistä AWS AI- ja ML-palveluihin (esim Amazon Sage Maker or Amazonin kallioperä) tai kolmannen osapuolen vaihtoehtoja. OpenSearch-palvelun versiosta 2.9 alkaen AI/ML-liittimet integroituvat hermohakuun, mikä yksinkertaistaa ja mahdollistaa tietokorpusi ja kyselyjen kääntämisen vektoriupotuksiksi, mikä poistaa suuren osan vektorin hydratoinnin ja haun monimutkaisuudesta.

Tässä viestissä näytämme, kuinka AI/ML-liittimet määritetään ulkoisiin malleihin OpenSearch Service -konsolin kautta.

Ratkaisun yleiskatsaus

Erityisesti tämä viesti opastaa sinut yhdistämään malliin SageMakerissa. Tämän jälkeen opastamme sinut liittimen avulla määrittämään semanttinen haku OpenSearch Servicessä esimerkkinä käyttötapauksesta, jota tuetaan yhteyden kautta ML-malliin. Amazon Bedrock- ja SageMaker-integraatioita tuetaan tällä hetkellä OpenSearch Service -konsolin käyttöliittymässä, ja käyttöliittymän tukemien ensimmäisen ja kolmannen osapuolen integraatioiden luettelo kasvaa edelleen.

Kaikki mallit, joita ei tueta käyttöliittymän kautta, voit sen sijaan määrittää ne käyttämällä saatavilla olevia sovellusliittymiä ja ML piirustuksia. Lisätietoja on kohdassa Johdatus OpenSearch-malleihin. Löydät piirustukset jokaisesta liittimestä kohdasta ML Commons GitHub -arkisto.

Edellytykset

Ennen kuin yhdistät mallin OpenSearch Service -konsolin kautta, luo OpenSearch Service -toimialue. Kartta an AWS-henkilöllisyyden ja käyttöoikeuksien hallinta (IAM) roolin nimen mukaan LambdaInvokeOpenSearchMLCommonsRole taustaroolina ml_full_access rooli käyttämällä OpenSearch-hallintapaneelien suojauslaajennusta, kuten seuraavassa videossa näkyy. OpenSearch-palvelun integrointityönkulku on esitäytetty, jotta voit käyttää LambdaInvokeOpenSearchMLCommonsRole IAM-rooli oletuksena luo liittimen OpenSearch Service -toimialueen ja SageMakerissa käyttöön otetun mallin välille. Jos käytät mukautettua IAM-roolia OpenSearch Service -konsoliintegraatioissa, varmista, että mukautettu rooli on kartoitettu taustarooliksi ml_full_access käyttöoikeudet ennen mallin käyttöönottoa.

Ota malli käyttöön AWS CloudFormationin avulla

Seuraava video näyttää vaiheet OpenSearch Service -konsolin avulla mallin käyttöönottoon muutamassa minuutissa Amazon SageMakerissa ja mallitunnuksen luomiseen AI-liittimien kautta. Ensimmäinen askel on valita Integraatiot OpenSearch Service AWS -konsolin navigointiruudussa, joka ohjaa käytettävissä olevien integraatioiden luetteloon. Integrointi määritetään käyttöliittymän kautta, joka pyytää sinua syöttämään tarvittavat tiedot.

Integroinnin määrittäminen edellyttää vain OpenSearch Service -toimialueen päätepisteen ja mallin nimen antamista malliyhteyden yksilöimiseksi. Oletusarvoisesti malli käyttää Hugging Face lausemuuntajamallia, djl://ai.djl.huggingface.pytorch/sentence-transformers/all-MiniLM-L6-v2.

Kun valitset Luo pino, sinut ohjataan osoitteeseen AWS-pilven muodostuminen konsoli. CloudFormation-malli ottaa käyttöön seuraavassa kaaviossa kuvatun arkkitehtuurin.

CloudFormation-pino luo AWS Lambda sovellus, joka ottaa käyttöön mallin Amazonin yksinkertainen tallennuspalvelu (Amazon S3), luo liittimen ja luo mallin tunnuksen ulostuloon. Voit sitten käyttää tätä mallitunnusta semanttisen indeksin luomiseen.

Jos oletusarvoinen all-MiniLM-L6-v2-malli ei palvele tarkoitustasi, voit ottaa käyttöön minkä tahansa valitsemasi tekstin upotusmallin valitulle malliisännälle (SageMaker tai Amazon Bedrock) tarjoamalla malliesi artefaktit saavutettavana S3-objektina. Vaihtoehtoisesti voit valita jonkin seuraavista valmiiksi koulutetut kielimallit ja ota se käyttöön SageMakerissa. Katso ohjeet päätepisteen ja mallien määrittämiseen Saatavilla Amazon SageMaker -kuvat.

SageMaker on täysin hallittu palvelu, joka kokoaa yhteen laajan joukon työkaluja, jotka mahdollistavat tehokkaan ja edullisen ML:n kaikissa käyttötapauksissa. Se tarjoaa keskeisiä etuja, kuten mallin valvonnan, palvelimettoman isännöinnin ja työnkulun automatisoinnin jatkuvaa koulutusta ja käyttöönottoa varten. SageMakerin avulla voit isännöidä ja hallita tekstin upotusmallien elinkaarta ja käyttää niitä semanttisten hakukyselyiden tehostamiseen OpenSearch Servicessä. Kun yhteys on muodostettu, SageMaker isännöi mallejasi ja OpenSearch-palvelua käytetään kyselyihin SageMakerin johtopäätöstulosten perusteella.

Tarkastele käyttöön otettua mallia OpenSearch-hallintapaneelien kautta

Voit varmistaa, että CloudFormation-malli on ottanut mallin käyttöön OpenSearch Service -verkkotunnuksessa ja saada mallitunnuksen, käyttämällä ML Commons REST GET -sovellusliittymää OpenSearch Dashboards Dev Toolsin kautta.

GET _plugins REST API tarjoaa nyt lisäsovellusliittymiä mallin tilan tarkasteluun. Seuraavan komennon avulla voit nähdä etämallin tilan:

GET _plugins/_ml/models/<modelid>

Kuten seuraavassa kuvakaappauksessa näkyy, a DEPLOYED vastauksen tila osoittaa, että malli on otettu käyttöön OpenSearch-palveluklusterissa.

Vaihtoehtoisesti voit tarkastella OpenSearch Service -verkkotunnuksessasi käyttöön otettua mallia käyttämällä Koneen oppiminen OpenSearch Dashboards -sivulla.

Tällä sivulla luetellaan mallin tiedot ja kaikkien käyttöön otettujen mallien tilat.

Luo hermoputki käyttämällä mallitunnusta

Kun mallin tila näkyy joko DEPLOYED Dev Toolsissa tai vihreällä ja vastaaminen OpenSearch Dashboardsissa voit käyttää mallitunnusta hermoston käsittelyputken rakentamiseen. Verkkotunnuksesi OpenSearch Dashboards Dev Tools -työkaluissa suoritetaan seuraava käsittelyputki. Varmista, että korvaat mallitunnuksen yksilöllisellä tunnuksella, joka on luotu verkkotunnuksessasi käyttöönotetulle mallille.

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

Luo semanttinen hakuindeksi käyttämällä hermoputkia oletusliukuhihnana

Voit nyt määrittää indeksikartoituksen oletusliukuhihnalla, joka on määritetty käyttämään uutta hermoputkilinjaa, jonka loit edellisessä vaiheessa. Varmista, että vektorikentät on ilmoitettu muodossa knn_vector ja mitat sopivat SageMakerissa käytettävään malliin. Jos olet säilyttänyt oletusasetukset all-MiniLM-L6-v2-mallin käyttöönottamiseksi SageMakerissa, säilytä seuraavat asetukset ennallaan ja suorita komento Dev Toolsissa.

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

Ota malliasiakirjoja vektoreiden luomiseksi

Tätä demoa varten voit käyttää näyte vähittäiskaupan demokaupan tuoteluettelosta uuteen semantic_demostore indeksi. Korvaa käyttäjänimi, salasana ja verkkotunnuksen päätepiste verkkotunnuksesi tiedoilla ja syötä raakadata OpenSearch-palveluun:

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

Vahvista uusi semantic_demostore-indeksi

Nyt kun olet syöttänyt tietojoukkosi OpenSearch Service -verkkotunnukseen, tarkista, onko vaaditut vektorit luotu yksinkertaisella haulla kaikkien kenttien hakemiseksi. Tarkista, onko kentät määritetty muodossa knn_vectors niillä on tarvittavat vektorit.

Vertaa leksikaalista hakua ja semanttista hakua hermohaun avulla käyttämällä Vertaa hakutuloksia -työkalua

- Vertaa hakutuloksia -työkalu OpenSearch Dashboardsissa on saatavilla tuotantotyökuormille. Voit navigoida kohteeseen Vertaa hakutuloksia sivua ja vertailla kyselyn tuloksia leksikaalisen haun ja hermohaun välillä, jotka on määritetty käyttämään aiemmin luotua mallitunnusta.

Puhdistaa

Voit poistaa luomasi resurssit noudattamalla tämän viestin ohjeita poistamalla CloudFormation-pinon. Tämä poistaa Lambda-resurssit ja S3-alueen, jotka sisältävät SageMakerissa käyttöön otetun mallin. Suorita seuraavat vaiheet:

  1. Siirry AWS CloudFormation -konsolissa pinon tietosivulle.
  2. Valita Poista.

  1. Valita Poista vahvistaa.

Voit seurata pinon poistamisen edistymistä AWS CloudFormation -konsolissa.

Huomaa, että CloudFormation-pinon poistaminen ei poista SageMaker-verkkotunnuksessa käyttöön otettua mallia ja luotua AI/ML-liitintä. Tämä johtuu siitä, että nämä mallit ja liitin voidaan liittää useisiin indekseihin toimialueen sisällä. Jos haluat poistaa mallin ja siihen liittyvän liittimen, käytä mallin sovellusliittymiä seuraavien kuvakaappausten mukaisesti.

Ensimmäinen, undeploy malli OpenSearch-palvelun toimialueen muistista:

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

Sitten voit poistaa mallin mallihakemistosta:

DELETE /_plugins/_ml/models/<model_id>

Poista lopuksi liitin liitinhakemistosta:

DELETE /_plugins/_ml/connectors/<connector_id>

Yhteenveto

Tässä viestissä opit ottamaan mallin käyttöön SageMakerissa, luomaan AI/ML-liittimen OpenSearch Service -konsolin avulla ja rakentamaan hermohakuindeksin. Mahdollisuus määrittää AI/ML-liittimiä OpenSearch-palvelussa yksinkertaistaa vektorin hydratointiprosessia tekemällä integroinnista ulkoisiin malleihin natiivia. Voit luoda hermohakuindeksin minuuteissa käyttämällä hermohakua ja hermohakua, jotka käyttävät mallitunnusta vektorin upotuksen luomiseen lennossa käsittelyn ja haun aikana.

Lisätietoja näistä AI/ML-liittimistä on kohdassa Amazon OpenSearch Servicen AI-liittimet AWS-palveluille, AWS CloudFormation -malliintegraatiot semanttista hakua vartenja Liittimien luominen kolmannen osapuolen ML-alustoille.


Tietoja Tekijät

Aruna Govindaraju on Amazon OpenSearch Specialist Solutions Architect ja on työskennellyt monien kaupallisten ja avoimen lähdekoodin hakukoneiden kanssa. Hän on intohimoinen hakuun, osuvuuteen ja käyttökokemukseen. Hänen asiantuntemuksensa loppukäyttäjien signaalien korreloinnista hakukoneiden käyttäytymiseen on auttanut monia asiakkaita parantamaan hakukokemustaan.

Dagney Braun on AWS:n päätuotepäällikkö, joka keskittyy OpenSearchiin.

Aikaleima:

Lisää aiheesta AWS Big Data