Bazele de cunoștințe pentru Amazon Bedrock acceptă acum căutarea hibridă | Amazon Web Services

Bazele de cunoștințe pentru Amazon Bedrock acceptă acum căutarea hibridă | Amazon Web Services

Nodul sursă: 2501518

At AWS re: Inventează 2023, am anunțat disponibilitatea generală a Baze de cunoștințe pentru Amazon Bedrock. Cu o bază de cunoștințe, puteți conecta în siguranță modele de fundație (FM-uri). Amazon Bedrock la datele companiei dvs. pentru a gestiona complet Retrieval Augmented Generation (RAG).

Într-o anterior mesaj, am descris modul în care bazele de cunoștințe pentru Amazon Bedrock gestionează fluxul de lucru RAG end-to-end pentru dvs. și am împărtășit detalii despre unele dintre lansările recente de funcții.

Pentru aplicațiile bazate pe RAG, acuratețea răspunsului generat din modelele de limbaj mari (LLM) depinde de contextul oferit modelului. Contextul este preluat din baza de date vectorială pe baza interogării utilizatorului. Căutarea semantică este utilizată pe scară largă deoarece este capabilă să înțeleagă mai multe întrebări asemănătoare oamenilor — interogarea unui utilizator nu este întotdeauna direct legată de cuvintele cheie exacte din conținutul care îi răspunde. Căutarea semantică ajută la furnizarea de răspunsuri bazate pe sensul textului. Cu toate acestea, are limitări în capturarea tuturor cuvintelor cheie relevante. Performanța sa se bazează pe calitatea înglobărilor de cuvinte folosite pentru a reprezenta sensul textului. Pentru a depăși astfel de limitări, combinarea căutării semantice cu căutarea prin cuvinte cheie (hibridă) va da rezultate mai bune.

În această postare, discutăm despre noua caracteristică a căutării hibride, pe care o puteți selecta ca opțiune de interogare alături de căutarea semantică.

Prezentare generală a căutării hibride

Căutarea hibridă profită de punctele forte ale mai multor algoritmi de căutare, integrându-le capacitățile unice pentru a spori relevanța rezultatelor căutării returnate. Pentru aplicațiile bazate pe RAG, capabilitățile de căutare semantică sunt de obicei combinate cu căutarea tradițională bazată pe cuvinte cheie pentru a îmbunătăți relevanța rezultatelor căutării. Permite căutarea atât a conținutului documentelor, cât și a semnificației lor subiacente. De exemplu, luați în considerare următoarea interogare:

What is the cost of the book "<book_name>" on <website_name>?

În această interogare pentru numele unei cărți și numele site-ului, o căutare cu cuvinte cheie va oferi rezultate mai bune, deoarece dorim costul cărții specifice. Cu toate acestea, termenul „cost” poate avea sinonime precum „preț”, așa că va fi mai bine să folosiți căutarea semantică, care înțelege sensul textului. Căutarea hibridă aduce cele mai bune dintre ambele abordări: precizia căutării semantice și acoperirea cuvintelor cheie. Funcționează excelent pentru aplicațiile bazate pe RAG, unde retriever-ul trebuie să gestioneze o mare varietate de interogări în limbaj natural. Cuvintele cheie ajută la acoperirea anumitor entități din interogare, cum ar fi numele produsului, culoarea și prețul, în timp ce semantica înțelege mai bine sensul și intenția din interogare. De exemplu, dacă doriți să construiți un chatbot pentru un site de comerț electronic pentru a gestiona întrebările clienților, cum ar fi politica de returnare sau detaliile produsului, utilizarea căutării hibride va fi cea mai potrivită.

Cazuri de utilizare pentru căutare hibridă

Următoarele sunt câteva cazuri comune de utilizare pentru căutarea hibridă:

  • Răspunsuri la întrebarea domeniului deschis – Aceasta implică răspunsul la întrebări pe o mare varietate de subiecte. Acest lucru necesită căutarea în colecții mari de documente cu conținut divers, cum ar fi datele site-ului web, care pot include diverse subiecte, cum ar fi sustenabilitatea, conducerea, rezultatele financiare și multe altele. Căutarea semantică singură nu se poate generaliza bine pentru această sarcină, deoarece îi lipsește capacitatea de potrivire lexicală a entităților nevăzute, ceea ce este important pentru gestionarea exemplelor din afara domeniului. Prin urmare, combinarea căutării bazate pe cuvinte cheie cu căutarea semantică poate ajuta la restrângerea domeniului de aplicare și poate oferi rezultate mai bune pentru răspunsul la întrebările de domeniu deschis.
  • Chatbot-uri bazate pe context – Conversațiile pot schimba rapid direcția și pot acoperi subiecte imprevizibile. Căutarea hibridă poate gestiona mai bine astfel de dialoguri deschise.
  • Căutare personalizată – Căutarea la scară web pe conținut eterogen beneficiază de o abordare hibridă. Căutarea semantică se ocupă de interogări principale populare, în timp ce cuvintele cheie acoperă interogări rare cu coadă lungă.

Deși căutarea hibridă oferă o acoperire mai largă prin combinarea a două abordări, căutarea semantică are avantaje de precizie atunci când domeniul este îngust și semantica este bine definită sau când există puțin spațiu pentru interpretare greșită, cum ar fi sistemele factoide de răspuns la întrebări.

Beneficiile căutării hibride

Atât căutarea prin cuvinte cheie, cât și căutarea semantică vor returna un set separat de rezultate împreună cu scorurile lor de relevanță, care sunt apoi combinate pentru a returna cele mai relevante rezultate. Bazele de cunoștințe pentru Amazon Bedrock acceptă în prezent patru magazine vectoriale: Amazon OpenSearch Serverless, Ediție compatibilă cu Amazon Aurora PostgreSQL, pinecone, și Redis Enterprise Cloud. În momentul scrierii acestui articol, caracteristica de căutare hibridă este disponibilă pentru OpenSearch Serverless, iar suportul pentru alte magazine de vectori va veni în curând.

Următoarele sunt câteva dintre beneficiile utilizării căutării hibride:

  • Precizie îmbunătățită – Precizia răspunsului generat de la FM depinde direct de relevanța rezultatelor obținute. Pe baza datelor dvs., poate fi dificil să îmbunătățiți acuratețea aplicației dvs. numai folosind căutarea semantică. Beneficiul cheie al utilizării căutării hibride este acela de a obține o calitate îmbunătățită a rezultatelor preluate, ceea ce, la rândul său, ajută FM să genereze răspunsuri mai precise.
  • Capacități de căutare extinse – Căutarea prin cuvinte cheie creează o rețea mai largă și găsește documente care pot fi relevante, dar care ar putea să nu conțină structură semantică în întregul document. Vă permite să căutați cuvinte cheie, precum și semnificația semantică a textului, extinzând astfel capacitățile de căutare.

În secțiunile următoare, demonstrăm cum să utilizați căutarea hibridă cu bazele de cunoștințe pentru Amazon Bedrock.

Utilizați căutare hibridă și opțiuni de căutare semantică prin SDK

Când apelați Retrieve API, Knowledge Bases pentru Amazon Bedrock selectează strategia de căutare potrivită pentru a vă oferi cele mai relevante rezultate. Aveți opțiunea de a o înlocui pentru a utiliza fie căutarea hibridă, fie semantică în API.

Preluați API

API-ul Retrieve este conceput pentru a obține rezultate relevante de căutare, oferind interogarea utilizatorului, ID-ul bazei de cunoștințe și numărul de rezultate pe care doriți să le returneze API-ul. Acest API convertește interogările utilizatorilor în înglobări, caută în baza de cunoștințe folosind fie căutare hibridă, fie căutare semantică (vectorală) și returnează rezultatele relevante, oferindu-vă mai mult control pentru a crea fluxuri de lucru personalizate pe deasupra rezultatelor căutării. De exemplu, puteți adăuga logica de postprocesare la rezultatele preluate sau puteți adăuga propriul prompt și vă puteți conecta la orice FM furnizat de Amazon Bedrock pentru a genera răspunsuri.

Pentru a vă arăta un exemplu de comutare între opțiunile de căutare hibride și semantice (vectorale), am creat o bază de cunoștințe folosind Document Amazon 10K pentru 2023. Pentru mai multe detalii despre crearea unei baze de cunoștințe, consultați Creați o aplicație de chatbot contextuală folosind baze de cunoștințe pentru Amazon Bedrock.

Pentru a demonstra valoarea căutării hibride, folosim următoarea interogare:

As of December 31st 2023, what is the leased square footage for physical stores in North America?

Răspunsul la interogarea precedentă implică câteva cuvinte cheie, cum ar fi date, physical stores, și North America. Răspunsul corect este 22,871 thousand square feet. Să observăm diferența dintre rezultatele căutării atât pentru căutarea hibridă, cât și pentru cea semantică.

Următorul cod arată cum să utilizați căutarea hibridă sau semantică (vectorală) folosind API-ul Retrieve cu Boto3:

import boto3

bedrock_agent_runtime = boto3.client(
    service_name = "bedrock-agent-runtime"
)

def retrieve(query, kbId, numberOfResults=5):
    return bedrock_agent_runtime.retrieve(
        retrievalQuery= {
            'text': query
        },
        knowledgeBaseId=kbId,
        retrievalConfiguration= {
            'vectorSearchConfiguration': {
                'numberOfResults': numberOfResults,
                'overrideSearchType': "HYBRID/SEMANTIC", # optional
            }
        }
    )
response = retrieve("As of December 31st 2023, what is the leased square footage for physical stores in North America?", "<knowledge base id>")["retrievalResults"]

overrideSearchType opțiune în retrievalConfiguration oferă posibilitatea de a utiliza fie HYBRID or SEMANTIC. În mod implicit, va selecta strategia potrivită pentru a vă oferi cele mai relevante rezultate și, dacă doriți să înlocuiți opțiunea implicită pentru a utiliza fie căutarea hibridă, fie semantică, puteți seta valoarea la HYBRID/SEMANTIC. Ieșirea lui Retrieve API include fragmentele de text preluate, tipul de locație și URI-ul datelor sursă și scorurile de relevanță ale recuperărilor. Scorurile ajută la determinarea care fragmente se potrivesc cel mai bine cu răspunsul la interogare.

Următoarele sunt rezultatele pentru interogarea anterioară folosind căutarea hibridă (cu o parte din rezultate redactate pentru concizie):

[
  {
    "content": {
      "text": "... Description of Use Leased Square Footage (1).... Physical stores (2) 22,871  ..."
    },
    "location": {
      "type": "S3",
      "s3Location": {
        "uri": "s3://<bucket_name>/amazon-10k-2023.pdf"
      }
    },
    "score": 0.6389407
  },
  {
    "content": {
      "text": "Property and equipment, net by segment is as follows (in millions): December 31, 2021 2022 2023 North America $ 83,640 $ 90,076 $ 93,632 International 21,718 23,347 24,357 AWS 43,245 60,324 72,701 Corporate 1.."
    },
    "location": {
      "type": "S3",
      "s3Location": {
        "uri": "s3://<bucket_name>/amazon-10k-2023.pdf"
      }
    },
    "score": 0.6389407
  },
  {
    "content": {
      "text": "..amortization of property and equipment acquired under finance leases of $9.9 billion, $6.1 billion, and $5.9 billion for 2021, 2022, and 2023. 54 Table of Contents Note 4 — LEASES We have entered into non-cancellable operating and finance leases for fulfillment network, data center, office, and physical store facilities as well as server and networking equipment, aircraft, and vehicles. Gross assets acquired under finance leases, ..."
    },
    "location": {
      "type": "S3",
      "s3Location": {
        "uri": "s3://<bucket_name>/amazon-10k-2023.pdf"
      }
    },
    "score": 0.61908984
  }
]

Următoarele sunt rezultatele căutării semantice (cu unele dintre rezultate redactate pentru concizie):

[
  {
    "content": {
      "text": "Property and equipment, net by segment is as follows (in millions):    December 31,    2021 2022 2023   North America $ 83,640 $ 90,076 $ 93,632  International 21,718 23,347 24,357  AWS 43,245 60,324 72,701.."
    },
    "location": {
      "type": "S3",
      "s3Location": {
        "uri": "s3://<bucket_name>/amazon-10k-2023.pdf"
      }
    },
    "score": 0.6389407
  },
  {
    "content": {
      "text": "Depreciation and amortization expense on property and equipment was $22.9 billion, $24.9 billion, and $30.2 billion which includes amortization of property and equipment acquired under finance leases of $9.9 billion, $6.1 billion, and $5.9 billion for 2021, 2022, and 2023.   54        Table of Contents   Note 4 — LEASES We have entered into non-cancellable operating and finance leases for fulfillment network, data center, office, and physical store facilities as well a..."
    },
    "location": {
      "type": "S3",
      "s3Location": {
        "uri": "s3://<bucket_name>/amazon-10k-2023.pdf"
      }
    },
    "score": 0.61908984
  },
  {
    "content": {
      "text": "Incentives that we receive from property and equipment   vendors are recorded as a reduction to our costs. Property includes buildings and land that we own, along with property we have acquired under build-to-suit lease arrangements when we have control over the building during the construction period and finance lease arrangements..."
    },
    "location": {
      "type": "S3",
      "s3Location": {
        "uri": "s3://<bucket_name>/amazon-10k-2023.pdf"
      }
    },
    "score": 0.61353767
  }
]

După cum puteți vedea în rezultate, căutarea hibridă a reușit să preia rezultatul căutării cu suprafața închiriată pentru magazinele fizice din America de Nord, așa cum este menționat în interogarea utilizatorului. Motivul principal a fost că căutarea hibridă a putut combina rezultatele de la cuvinte cheie precum date, physical stores, și North America în interogare, în timp ce căutarea semantică nu a făcut-o. Prin urmare, atunci când rezultatele căutării sunt sporite cu interogarea utilizatorului și promptul, FM nu va putea oferi răspunsul corect în cazul căutării semantice.

Acum să ne uităm la RetrieveAndGenerate API cu căutare hibridă pentru a înțelege răspunsul final generat de FM.

RetrieveAndGenerate API

RetrieveAndGenerate API interogează o bază de cunoștințe și generează un răspuns bazat pe rezultatele obținute. Specificați ID-ul bazei de cunoștințe precum și FM pentru a genera un răspuns din rezultate. Amazon Bedrock convertește interogările în înglobări, interogează baza de cunoștințe pe baza tipului de căutare și apoi mărește promptul FM cu rezultatele căutării ca informații de context și returnează răspunsul generat de FM.

Să folosim interogarea „Începând cu 31 decembrie 2023, care este suprafața închiriată pentru magazinele fizice din America de Nord?” si intreaba-l pe RetrieveAndGenerate API pentru a genera răspunsul folosind interogarea noastră:

def retrieveAndGenerate(input, kbId):
    return bedrock_agent_runtime.retrieve_and_generate(
        input={
            'text': input
        },
        retrieveAndGenerateConfiguration={
            'type': 'KNOWLEDGE_BASE',
            'knowledgeBaseConfiguration': {
                'knowledgeBaseId': kbId,
                'modelArn': 'arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-instant-v1'
                'retrievalConfiguration': {
                'overrideSearchType': 'HYBRID/SEMANTIC',
                }
                }
            }
        )
response = retrieveAndGenerate("As of December 31st 2023, what is the leased square footage for physical stores in North America?", "<knowledge base id>")["output"]["text"]

Următoarele sunt rezultatele folosind căutarea hibridă:

22,871 thousand leased square feet

Următoarele sunt rezultatele folosind căutarea semantică:

The search results do not contain any information about the leased square footage for physical stores in North America for 2023.

Răspunsul real la întrebare este 22,871 thousand leased square feet, care este generată de căutarea hibridă. Rezultatele căutării preluate pentru căutare hibridă au inclus informații despre suprafața închiriată pentru magazinele fizice din America de Nord, în timp ce căutarea semantică nu a reușit să preia informațiile corecte din magazinul de vectori din cauza traducerii înglobărilor. Prin urmare, FM nu a putut oferi răspunsul corect, deoarece nu avea rezultatele căutării corecte și cele mai relevante.

Cu toate acestea, pentru întrebări mai generice care nu implică entități precum physical stores or North America, atât căutarea hibridă, cât și cea semantică dau rezultate similare.

Următoarele sunt exemple de răspunsuri de la câteva interogări care demonstrează cazuri în care atât căutarea hibridă, cât și cea semantică dau rezultate similare.

Întrebare Căutare semantică: RAG API Căutare hibridă: RAG API
Cum servește Amazon dezvoltatorilor și întreprinderilor? Servim dezvoltatori și întreprinderi de toate dimensiunile, inclusiv start-up-uri, agenții guvernamentale și instituții academice, prin AWS, care oferă un set larg de servicii tehnologice la cerere, inclusiv calcul, stocare, baze de date, analiză și învățare automată și alte servicii Servim dezvoltatori și întreprinderi de toate dimensiunile, inclusiv start-up-uri, agenții guvernamentale și instituții academice, prin AWS, care oferă un set larg de servicii tehnologice la cerere, inclusiv calcul, stocare, baze de date, analiză și învățare automată și alte servicii.
Cine sunt directorii și directorii pentru Amazon începând cu 24 ianuarie 2024? Ofițerii executivi ai Amazon începând cu 2024 includ Andrew R. Jassy ca președinte și director executiv, Douglas J. Herrington ca CEO Worldwide Amazon Stores, Brian T. Olsavsky ca vicepreședinte principal și director financiar, Shelley L. Reynolds ca vicepreședinte , Controller la nivel mondial și Ofițer Principal de Contabilitate, Adam N. Selipsky în calitate de CEO Amazon Web Services și David A. Zapolsky în calitate de Vicepreședinte Senior, Politici Publice Globale și Consilier General. Din 2024, Jeffrey P. Bezos este președinte executiv al Amazon.com. Andrew R. Jassy este președinte și director executiv. Alți ofițeri executivi includ Douglas J. Herrington ca CEO Worldwide Amazon Stores, Brian T. Olsavsky ca vicepreședinte principal și director financiar, Shelley L. Reynolds ca vicepreședinte, controlor mondial și director contabil principal și Adam N. Selipsky ca CEO Amazon Web Services. David A. Zapolsky este Senior Vice President, Global Public Policy și General Counsel

Utilizați căutare hibridă și opțiuni de căutare semantică prin consola Amazon Bedrock

Pentru a utiliza opțiunile de căutare hibridă și semantică pe consola Amazon Bedrock, parcurgeți următorii pași:

  1. Pe consola Amazon Bedrock, alegeți Bază de cunoștințe în panoul de navigare.
  2. Alegeți baza de cunoștințe pe care ați creat-o.
  3. Alege Testați baza de cunoștințe.
  4. Alegeți pictograma de configurare.
  5. Pentru Tipul de căutareSelectați Căutare hibridă (semantică și text).

În mod implicit, puteți alege un FM pentru a obține un răspuns generat pentru interogarea dvs. Dacă doriți să vedeți numai rezultatele preluate, puteți comuta Generați răspuns oprit pentru a obține doar rezultatele preluate.

Concluzie

În această postare, am acoperit noua funcție de interogare din bazele de cunoștințe pentru Amazon Bedrock, care permite căutarea hibridă. Am învățat cum să configuram opțiunea de căutare hibridă în SDK și consola Amazon Bedrock. Acest lucru ajută la depășirea unora dintre limitările de a se baza exclusiv pe căutarea semantică, în special pentru căutarea pe colecții mari de documente cu conținut divers. Utilizarea căutării hibride depinde de tipul de document și de cazul de utilizare pe care încercați să îl implementați.

Pentru resurse suplimentare, consultați următoarele:

Referinte

Îmbunătățirea performanței de recuperare în conductele RAG cu căutare hibridă


Despre Autori

Mani Khanuja este Tehnic Lead – Generative AI Specialists, autoarea cărții Applied Machine Learning and High Performance Computing on AWS și membru al Consiliului de Administrație pentru Women in Manufacturing Education Foundation Board. Ea conduce proiecte de învățare automată în diverse domenii, cum ar fi viziunea computerizată, procesarea limbajului natural și AI generativă. Vorbește la conferințe interne și externe, cum ar fi AWS re:Invent, Women in Manufacturing West, webinarii YouTube și GHC 23. În timpul liber, îi place să facă alergări lungi de-a lungul plajei.

Pallavi Nargund este arhitect principal de soluții la AWS. În rolul său de facilitator al tehnologiei cloud, ea lucrează cu clienții pentru a le înțelege obiectivele și provocările și pentru a oferi îndrumări prescriptive pentru a-și atinge obiectivul cu ofertele AWS. Este pasionată de femeile din tehnologie și este un membru principal al Women in AI/ML la Amazon. Ea vorbește la conferințe interne și externe, cum ar fi AWS re:Invent, AWS Summits și webinarii. În afara serviciului, îi place să facă voluntariat, grădinărit, ciclism și drumeții.

Timestamp-ul:

Mai mult de la Învățare automată AWS