Generativ dataintelligens

Kunskapsbaser för Amazon Bedrock stöder nu hybridsökning | Amazon webbtjänster

Datum:

At AWS re: Invent 2023 meddelade vi den allmänna tillgängligheten av Kunskapsbaser för Amazon Bedrock. Med en kunskapsbas kan du säkert ansluta grundmodeller (FM) in Amazonas berggrund till din företagsdata för fullständigt hanterad Retrieval Augmented Generation (RAG).

I en tidigare inlägg, beskrev vi hur Knowledge Bases for Amazon Bedrock hanterar RAG-arbetsflödet från slut till slut åt dig och delade detaljer om några av de senaste funktionslanseringarna.

För RAG-baserade applikationer är noggrannheten hos det genererade svaret från stora språkmodeller (LLM) beroende av det sammanhang som modellen tillhandahåller. Kontext hämtas från vektordatabasen baserat på användarfrågan. Semantisk sökning används ofta eftersom den kan förstå mer mänskliga frågor – en användares fråga är inte alltid direkt relaterad till de exakta sökorden i innehållet som besvarar den. Semantisk sökning hjälper till att ge svar baserat på textens betydelse. Det har dock begränsningar när det gäller att fånga alla relevanta sökord. Dess prestanda är beroende av kvaliteten på ordet inbäddningar som används för att representera textens betydelse. För att övervinna sådana begränsningar kommer en kombination av semantisk sökning med nyckelordssökning (hybrid) ge bättre resultat.

I det här inlägget diskuterar vi den nya funktionen i hybridsökning, som du kan välja som ett frågealternativ vid sidan av semantisk sökning.

Hybrid sököversikt

Hybridsökning drar fördel av styrkorna hos flera sökalgoritmer och integrerar deras unika möjligheter för att förbättra relevansen av returnerade sökresultat. För RAG-baserade applikationer kombineras semantiska sökfunktioner vanligtvis med traditionell nyckelordsbaserad sökning för att förbättra sökresultatens relevans. Det gör det möjligt att söka över både innehållet i dokument och deras underliggande betydelse. Tänk till exempel på följande fråga:

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

I den här frågan om ett boknamn och webbplatsnamn kommer en nyckelordssökning att ge bättre resultat, eftersom vi vill ha kostnaden för den specifika boken. Men termen "kostnad" kan ha synonymer som "pris", så det är bättre att använda semantisk sökning, som förstår innebörden av texten. Hybridsökning ger det bästa av båda metoderna: precision i semantisk sökning och täckning av sökord. Det fungerar utmärkt för RAG-baserade applikationer där retrievern måste hantera en mängd olika naturliga språkfrågor. Nyckelorden hjälper till att täcka specifika entiteter i frågan som produktnamn, färg och pris, medan semantiken bättre förstår innebörden och avsikten i frågan. Om du till exempel vill bygga en chatbot för en e-handelswebbplats för att hantera kundfrågor såsom returpolicy eller information om produkten, är det mest lämpligt att använda hybridsökning.

Användningsfall för hybridsökning

Följande är några vanliga användningsfall för hybridsökning:

  • Svara på öppen domänfråga – Det handlar om att svara på frågor om en mängd olika ämnen. Detta kräver sökning i stora samlingar av dokument med varierat innehåll, som webbplatsdata, som kan innehålla olika ämnen som hållbarhet, ledarskap, ekonomiska resultat och mer. Semantisk sökning ensam kan inte generalisera bra för denna uppgift, eftersom den saknar kapacitet för lexikal matchning av osynliga enheter, vilket är viktigt för att hantera exempel utanför domänen. Därför kan en kombination av nyckelordsbaserad sökning med semantisk sökning hjälpa till att begränsa omfattningen och ge bättre resultat för svar på öppen domänfråga.
  • Kontextbaserade chatbots – Konversationer kan snabbt ändra riktning och täcka oförutsägbara ämnen. Hybridsökning kan bättre hantera sådana öppna dialoger.
  • Personlig sökning – Sök i webbskala över heterogent innehåll drar nytta av en hybridmetod. Semantisk sökning hanterar populära huvudfrågor, medan nyckelord täcker sällsynta long-tail-frågor.

Även om hybridsökning erbjuder bredare täckning genom att kombinera två tillvägagångssätt, har semantisk sökning precisionsfördelar när domänen är smal och semantiken är väldefinierad, eller när det finns lite utrymme för misstolkningar, som faktabaserade frågesvarssystem.

Fördelar med hybridsökning

Både nyckelord och semantisk sökning kommer att returnera en separat uppsättning resultat tillsammans med deras relevanspoäng, som sedan kombineras för att ge de mest relevanta resultaten. Kunskapsbaser för Amazon Bedrock stöder för närvarande fyra vektorbutiker: Amazon OpenSearch Serverlös, Amazon Aurora PostgreSQL-kompatibel utgåva, Pineconeoch Redis Enterprise Cloud. När detta skrivs är hybridsökfunktionen tillgänglig för OpenSearch Serverless, med stöd för andra vektorbutiker som kommer snart.

Följande är några av fördelarna med att använda hybridsökning:

  • Förbättrad noggrannhet – Noggrannheten hos det genererade svaret från FM är direkt beroende av relevansen av hämtade resultat. Baserat på dina data kan det vara utmanande att förbättra noggrannheten i din applikation endast med hjälp av semantisk sökning. Den viktigaste fördelen med att använda hybridsökning är att få förbättrad kvalitet på hämtade resultat, vilket i sin tur hjälper FM att generera mer exakta svar.
  • Utökade sökmöjligheter – Sökordssökning kastar ett bredare nät och hittar dokument som kan vara relevanta men kanske inte innehåller semantisk struktur i hela dokumentet. Det låter dig söka på nyckelord såväl som textens semantiska innebörd, och utökar därmed sökmöjligheterna.

I följande avsnitt visar vi hur man använder hybridsökning med kunskapsbaser för Amazon Bedrock.

Använd hybridsökning och semantiska sökalternativ via SDK

När du anropar Retrieve API väljer Knowledge Bases for Amazon Bedrock rätt sökstrategi för dig för att ge dig de mest relevanta resultaten. Du har möjlighet att åsidosätta den för att använda antingen hybrid eller semantisk sökning i API:et.

Hämta API

Retrieve API är utformat för att hämta relevanta sökresultat genom att tillhandahålla användarfrågan, kunskapsbas-ID och antalet resultat som du vill att API:et ska returnera. Detta API konverterar användarfrågor till inbäddningar, söker i kunskapsbasen med antingen hybridsökning eller semantisk (vektor)sökning och returnerar relevanta resultat, vilket ger dig mer kontroll över att bygga anpassade arbetsflöden ovanpå sökresultaten. Till exempel kan du lägga till efterbearbetningslogik till de hämtade resultaten eller lägga till din egen prompt och ansluta till valfri FM som tillhandahålls av Amazon Bedrock för att generera svar.

För att visa dig ett exempel på att växla mellan hybrid och semantiska (vektor) sökalternativ har vi skapat en kunskapsbas med hjälp av Amazon 10K-dokument för 2023. För mer information om hur du skapar en kunskapsbas, se Bygg en kontextuell chatbot-applikation med kunskapsbaser för Amazon Bedrock.

För att visa värdet av hybridsökning använder vi följande fråga:

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

Svaret på den föregående frågan involverar några nyckelord, såsom date, physical storesoch North America. Rätt svar är 22,871 thousand square feet. Låt oss observera skillnaden i sökresultaten för både hybrid och semantisk sökning.

Följande kod visar hur man använder hybrid eller semantisk (vektor) sökning med hjälp av Retrieve API med 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"]

Smakämnen overrideSearchType alternativet i retrievalConfiguration erbjuder valet att använda antingen HYBRID or SEMANTIC. Som standard kommer den att välja rätt strategi för att ge dig de mest relevanta resultaten, och om du vill åsidosätta standardalternativet för att använda antingen hybrid eller semantisk sökning kan du ställa in värdet till HYBRID/SEMANTIC. Utgången av Retrieve API inkluderar de hämtade textbitarna, platstypen och URI för källdata och relevanspoängen för hämtningarna. Poängen hjälper till att avgöra vilka bitar som bäst matchar svaret på frågan.

Följande är resultaten för den föregående frågan med hybridsökning (med en del av utdata redigerad för korthetens skull):

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

Följande är resultaten för semantisk sökning (med en del av utdata redigerad för korthets skull):

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

Som du kan se i resultaten kunde hybridsökning hämta sökresultatet med de hyrda kvadratmeterna för fysiska butiker i Nordamerika som nämnts i användarfrågan. Den främsta anledningen var att hybridsökning kunde kombinera resultaten från sökord som t.ex date, physical storesoch North America i frågan, medan semantisk sökning inte gjorde det. Därför, när sökresultaten utökas med användarfrågan och prompten, kommer FM inte att kunna ge det korrekta svaret vid semantisk sökning.

Låt oss nu titta på RetrieveAndGenerate API med hybridsökning för att förstå det slutliga svaret som genereras av FM.

RetrieveAndGenerate API

Smakämnen RetrieveAndGenerate API frågar efter en kunskapsbas och genererar ett svar baserat på de hämtade resultaten. Du anger kunskapsbas-ID samt FM för att generera ett svar från resultaten. Amazon Bedrock konverterar frågorna till inbäddningar, frågar kunskapsbasen baserat på söktypen och utökar sedan FM-prompten med sökresultaten som kontextinformation och returnerar det FM-genererade svaret.

Låt oss använda frågan "Från och med den 31 december 2023, vad är det hyrda kvadratmeterantalet för fysiska butiker i Nordamerika?" och fråga RetrieveAndGenerate API för att generera svaret med hjälp av vår fråga:

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

Följande är resultaten med hybridsökning:

22,871 thousand leased square feet

Följande är resultaten med semantisk sökning:

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

Det faktiska svaret på frågan är 22,871 thousand leased square feet, som genereras av hybridsökningen. De hämtade sökresultaten för hybridsökning inkluderade information om hyrda kvadratmeter för fysiska butiker i Nordamerika, medan semantisk sökning inte kunde hämta rätt information från vektorbutiken på grund av inbäddningsöversättning. Därför kunde FM inte ge rätt svar eftersom den inte hade de korrekta och mest relevanta sökresultaten.

Men för mer generiska frågor som inte involverar enheter som t.ex physical stores or North America, både hybrid och semantisk sökning ger liknande resultat.

Följande är exempelsvar från några få frågor som visar fall då både hybrid och semantisk sökning ger liknande resultat.

Fråga Semantisk sökning: RAG API Hybridsökning: RAG API
Hur betjänar Amazon utvecklarna och företagen? Vi betjänar utvecklare och företag av alla storlekar, inklusive nystartade företag, statliga myndigheter och akademiska institutioner, genom AWS, som erbjuder en bred uppsättning on-demand-teknologitjänster, inklusive beräkning, lagring, databas, analys och maskininlärning, och andra tjänster Vi betjänar utvecklare och företag av alla storlekar, inklusive nystartade företag, statliga myndigheter och akademiska institutioner, genom AWS, som erbjuder en bred uppsättning on-demand-teknologitjänster, inklusive beräkning, lagring, databas, analys och maskininlärning, och andra tjänster.
Vilka är verkställande tjänstemän och direktörer för Amazon från och med den 24 januari 2024? Amazons verkställande tjänstemän från och med 2024 inkluderar Andrew R. Jassy som VD och koncernchef, Douglas J. Herrington som VD Worldwide Amazon Stores, Brian T. Olsavsky som Senior Vice President och Chief Financial Officer, Shelley L. Reynolds som Vice President. , Worldwide Controller och Principal Accounting Officer, Adam N. Selipsky som VD för Amazon Web Services och David A. Zapolsky som Senior Vice President, Global Public Policy och General Counsel. Från och med 2024 fungerar Jeffrey P. Bezos som verkställande ordförande för Amazon.com. Andrew R. Jassy fungerar som VD och verkställande direktör. Andra verkställande tjänstemän inkluderar Douglas J. Herrington som VD Worldwide Amazon Stores, Brian T. Olsavsky som Senior Vice President och Chief Financial Officer, Shelley L. Reynolds som Vice President, Worldwide Controller och Principal Accounting Officer, och Adam N. Selipsky som VD Amazon webbtjänster. David A. Zapolsky fungerar som Senior Vice President, Global Public Policy och General Counsel

Använd hybridsökning och semantiska sökalternativ via Amazon Bedrock-konsolen

För att använda hybrid- och semantiska sökalternativ på Amazon Bedrock-konsolen, utför följande steg:

  1. Välj på Amazon Bedrock-konsolen Kunskapsbas i navigeringsfönstret.
  2. Välj den kunskapsbas du skapade.
  3. Välja Testa kunskapsbas.
  4. Välj konfigurationsikonen.
  5. För SöktypVälj Hybridsökning (semantisk och text).

Som standard kan du välja en FM för att få ett genererat svar på din fråga. Om du bara vill se de hämtade resultaten kan du växla Generera svar av för att bara få hämtade resultat.

Slutsats

I det här inlägget täckte vi den nya frågefunktionen i Knowledge Bases for Amazon Bedrock, som möjliggör hybridsökning. Vi lärde oss hur man konfigurerar hybridsökningsalternativet i SDK:n och Amazon Bedrock-konsolen. Detta hjälper till att övervinna några av begränsningarna med att enbart förlita sig på semantisk sökning, särskilt för att söka i stora samlingar av dokument med varierande innehåll. Användningen av hybridsökning beror på dokumenttypen och användningsfallet som du försöker implementera.

För ytterligare resurser, se följande:

Referensprojekt

Förbättra hämtningsprestanda i RAG-rörledningar med hybridsökning


Om författarna

Mani Khanuja är en Tech Lead – Generative AI Specialists, författare till boken Applied Machine Learning and High Performance Computing på AWS, och medlem i styrelsen för Women in Manufacturing Education Foundation Board. Hon leder maskininlärningsprojekt inom olika domäner som datorseende, naturlig språkbehandling och generativ AI. Hon talar på interna och externa konferenser som AWS re:Invent, Women in Manufacturing West, YouTube-webinarier och GHC 23. På fritiden gillar hon att gå långa löpturer längs stranden.

Pallavi Nargund är en Principal Solutions Architect på AWS. I sin roll som möjliggörare av molnteknik arbetar hon med kunder för att förstå deras mål och utmaningar och ge föreskrivande vägledning för att uppnå deras mål med AWS-erbjudanden. Hon brinner för kvinnor inom teknik och är en kärnmedlem i Women in AI/ML på Amazon. Hon talar på interna och externa konferenser som AWS re:Invent, AWS Summits och webbseminarier. Utanför jobbet tycker hon om volontärarbete, trädgårdsarbete, cykling och vandring.

plats_img

Senaste intelligens

plats_img