Zephyrnet-logo

Knowledge Bases voor Amazon Bedrock ondersteunt nu hybride zoeken | Amazon-webservices

Datum:

At AWS re: Invent In 2023 hebben we de algemene beschikbaarheid aangekondigd van Kennisbanken voor Amazon Bedrock. Met een kennisbank kunt u funderingsmodellen (FM's) veilig aansluiten Amazonebodem naar uw bedrijfsgegevens voor volledig beheerde Retrieval Augmented Generation (RAG).

In een vorige posthebben we beschreven hoe Knowledge Bases voor Amazon Bedrock de end-to-end RAG-workflow voor u beheert en hebben we details gedeeld over enkele van de recente functielanceringen.

Voor op RAG gebaseerde toepassingen is de nauwkeurigheid van de gegenereerde respons van grote taalmodellen (LLM's) afhankelijk van de context die aan het model wordt gegeven. Context wordt opgehaald uit de vectordatabase op basis van de gebruikersquery. Semantisch zoeken wordt veel gebruikt omdat het meer mensachtige vragen kan begrijpen: de zoekopdracht van een gebruiker is niet altijd direct gerelateerd aan de exacte trefwoorden in de inhoud die deze beantwoordt. Semantisch zoeken helpt bij het geven van antwoorden op basis van de betekenis van de tekst. Het heeft echter beperkingen bij het vastleggen van alle relevante zoekwoorden. De prestaties ervan zijn afhankelijk van de kwaliteit van de woordinsluitingen die worden gebruikt om de betekenis van de tekst weer te geven. Om dergelijke beperkingen te overwinnen, zal het combineren van semantisch zoeken met zoeken op trefwoorden (hybride) betere resultaten opleveren.

In dit bericht bespreken we de nieuwe functie van hybride zoeken, die je naast semantisch zoeken als zoekoptie kunt selecteren.

Hybride zoekoverzicht

Hybride zoeken maakt gebruik van de sterke punten van meerdere zoekalgoritmen en integreert hun unieke mogelijkheden om de relevantie van de geretourneerde zoekresultaten te vergroten. Voor op RAG gebaseerde toepassingen worden semantische zoekmogelijkheden vaak gecombineerd met traditioneel zoeken op trefwoorden om de relevantie van zoekresultaten te verbeteren. Het maakt het mogelijk om zowel de inhoud van documenten als hun onderliggende betekenis te doorzoeken. Neem bijvoorbeeld de volgende vraag:

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

Bij deze zoekopdracht naar een boeknaam en websitenaam zal een zoekopdracht op trefwoord betere resultaten opleveren, omdat we de kosten van het specifieke boek willen weten. De term 'kosten' kan echter synoniemen hebben zoals 'prijs', dus het is beter om semantisch zoeken te gebruiken, dat de betekenis van de tekst begrijpt. Hybride zoeken brengt het beste van beide benaderingen: precisie van semantisch zoeken en dekking van trefwoorden. Het werkt uitstekend voor op RAG gebaseerde toepassingen waarbij de retriever een breed scala aan natuurlijke taalquery's moet verwerken. De trefwoorden helpen specifieke entiteiten in de zoekopdracht te dekken, zoals productnaam, kleur en prijs, terwijl de semantiek de betekenis en bedoeling van de zoekopdracht beter begrijpt. Als u bijvoorbeeld een chatbot voor een e-commerce website wilt bouwen om vragen van klanten, zoals het retourbeleid of details van het product, af te handelen, is het gebruik van hybride zoeken het meest geschikt.

Gebruiksscenario's voor hybride zoeken

Hieronder volgen enkele veelvoorkomende gebruiksscenario's voor hybride zoeken:

  • Open domein vraag beantwoorden – Dit omvat het beantwoorden van vragen over een breed scala aan onderwerpen. Dit vereist het doorzoeken van grote verzamelingen documenten met uiteenlopende inhoud, zoals websitegegevens, die verschillende onderwerpen kunnen omvatten, zoals duurzaamheid, leiderschap, financiële resultaten en meer. Semantisch zoeken alleen kan voor deze taak niet goed worden gegeneraliseerd, omdat het de capaciteit ontbeert voor lexicale matching van onzichtbare entiteiten, wat belangrijk is voor het verwerken van voorbeelden buiten het domein. Daarom kan het combineren van op trefwoorden gebaseerd zoeken met semantisch zoeken de reikwijdte verkleinen en betere resultaten opleveren voor het beantwoorden van open domeinvragen.
  • Contextueel gebaseerde chatbots – Gesprekken kunnen snel van richting veranderen en onvoorspelbare onderwerpen behandelen. Hybride zoeken kan dergelijke open dialogen beter verwerken.
  • Gepersonaliseerd zoeken – Zoeken op webschaal over heterogene inhoud profiteert van een hybride aanpak. Semantisch zoeken verwerkt populaire hoofdquery's, terwijl trefwoorden zeldzame long-tail-query's bestrijken.

Hoewel hybride zoeken een bredere dekking biedt door twee benaderingen te combineren, heeft semantisch zoeken precisievoordelen wanneer het domein smal is en de semantiek goed gedefinieerd is, of wanneer er weinig ruimte is voor verkeerde interpretatie, zoals systemen voor het beantwoorden van factoïde vragen.

Voordelen van hybride zoeken

Zowel zoekwoorden als semantische zoekopdrachten leveren een afzonderlijke reeks resultaten op, samen met hun relevantiescores, die vervolgens worden gecombineerd om de meest relevante resultaten te retourneren. Knowledge Bases voor Amazon Bedrock ondersteunt momenteel vier vectorwinkels: Amazon OpenSearch Serverloos, Amazon Aurora PostgreSQL-compatibele editie, pinecone en Redis Enterprise Cloud. Op het moment van schrijven is de hybride zoekfunctie beschikbaar voor OpenSearch Serverless, en binnenkort komt er ondersteuning voor andere vectorwinkels.

Hier volgen enkele voordelen van het gebruik van hybride zoeken:

  • Verbeterde nauwkeurigheid – De nauwkeurigheid van de gegenereerde reactie van de FM is direct afhankelijk van de relevantie van de opgehaalde resultaten. Op basis van uw gegevens kan het een uitdaging zijn om de nauwkeurigheid van uw applicatie te verbeteren, alleen met behulp van semantisch zoeken. Het belangrijkste voordeel van het gebruik van hybride zoeken is dat de kwaliteit van de opgehaalde resultaten wordt verbeterd, waardoor de FM op zijn beurt nauwkeurigere antwoorden kan genereren.
  • Uitgebreide zoekmogelijkheden – Zoeken op trefwoorden werpt een breder net op en vindt documenten die mogelijk relevant zijn, maar mogelijk geen semantische structuur in het hele document bevatten. Hiermee kunt u zowel op trefwoorden als op de semantische betekenis van de tekst zoeken, waardoor de zoekmogelijkheden worden uitgebreid.

In de volgende secties laten we zien hoe u hybride zoeken kunt gebruiken met Knowledge Bases voor Amazon Bedrock.

Gebruik hybride zoek- en semantische zoekopties via SDK

Wanneer u de Retrieve API aanroept, selecteert Knowledge Bases voor Amazon Bedrock de juiste zoekstrategie voor u om u de meest relevante resultaten te geven. U heeft de mogelijkheid om dit te overschrijven en hybride of semantisch zoeken in de API te gebruiken.

API ophalen

De Retrieve API is ontworpen om relevante zoekresultaten op te halen door de gebruikersquery, de kennisbank-ID en het aantal resultaten op te geven dat u door de API wilt retourneren. Deze API zet gebruikersquery's om in insluitingen, doorzoekt de kennisbank met behulp van hybride zoekopdrachten of semantische (vector) zoekopdrachten en retourneert de relevante resultaten, waardoor u meer controle krijgt om aangepaste workflows bovenop de zoekresultaten te bouwen. U kunt bijvoorbeeld naverwerkingslogica aan de opgehaalde resultaten toevoegen of uw eigen prompt toevoegen en verbinding maken met elke FM van Amazon Bedrock om antwoorden te genereren.

Om u een voorbeeld te laten zien van het schakelen tussen hybride en semantische (vector) zoekopties, hebben we een kennisbank gemaakt met behulp van de Amazon 10K-document voor 2023. Voor meer details over het creëren van een kennisbank, zie Bouw een contextuele chatbot-applicatie met behulp van Knowledge Bases voor Amazon Bedrock.

Om de waarde van hybride zoeken aan te tonen, gebruiken we de volgende zoekopdracht:

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

Het antwoord op de voorgaande vraag omvat een paar trefwoorden, zoals de date, physical stores en North America. Het juiste antwoord luidt 22,871 thousand square feet. Laten we eens kijken naar het verschil in de zoekresultaten voor zowel hybride als semantische zoekopdrachten.

De volgende code laat zien hoe u hybride of semantische (vector) zoekopdrachten kunt gebruiken met behulp van de Retrieve API met 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"]

De overrideSearchType optie retrievalConfiguration biedt de keuze om beide te gebruiken HYBRID or SEMANTIC. Standaard selecteert het de juiste strategie om u de meest relevante resultaten te geven. Als u de standaardoptie om hybride of semantisch zoeken te gebruiken wilt overschrijven, kunt u de waarde instellen op HYBRID/SEMANTIC. De uitvoer van de Retrieve API omvat de opgehaalde tekstfragmenten, het locatietype en de URI van de brongegevens, en de relevantiescores van de opgehaalde gegevens. De scores helpen bepalen welke chunks het beste overeenkomen met het antwoord op de query.

Hieronder volgen de resultaten voor de voorgaande zoekopdracht met behulp van hybride zoeken (waarbij een deel van de uitvoer kortheidshalve is geredigeerd):

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

Hieronder volgen de resultaten voor semantisch zoeken (waarbij een deel van de uitvoer kortheidshalve is geredigeerd):

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

Zoals u in de resultaten kunt zien, kon hybride zoeken het zoekresultaat ophalen met de gehuurde vierkante meters voor fysieke winkels in Noord-Amerika, zoals vermeld in de gebruikersquery. De belangrijkste reden was dat hybride zoeken de resultaten van trefwoorden zoals date, physical stores en North America in de zoekopdracht, terwijl semantisch zoeken dat niet deed. Wanneer de zoekresultaten worden aangevuld met de gebruikersquery en de prompt, kan de FM daarom niet het juiste antwoord geven in het geval van semantisch zoeken.

Laten we nu eens kijken naar de RetrieveAndGenerate API met hybride zoekfunctie om het uiteindelijke antwoord van de FM te begrijpen.

API ophalen en genereren

De RetrieveAndGenerate API vraagt ​​een kennisbank op en genereert een antwoord op basis van de opgehaalde resultaten. U specificeert zowel de kennisbank-ID als de FM om een ​​reactie te genereren op basis van de resultaten. Amazon Bedrock zet de zoekopdrachten om in insluitingen, doorzoekt de kennisbank op basis van het zoektype en vult vervolgens de FM-prompt aan met de zoekresultaten als contextinformatie en retourneert het door FM gegenereerde antwoord.

Laten we de vraag gebruiken: 'Wat zijn per 31 december 2023 de gehuurde vierkante meters voor fysieke winkels in Noord-Amerika?' en vraag het RetrieveAndGenerate API om het antwoord te genereren met behulp van onze query:

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

Hier volgen de resultaten met behulp van hybride zoeken:

22,871 thousand leased square feet

Hier volgen de resultaten met behulp van semantisch zoeken:

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

Het eigenlijke antwoord op de vraag is 22,871 thousand leased square feet, die wordt gegenereerd door de hybride zoekopdracht. De opgehaalde zoekresultaten voor hybride zoeken bevatten informatie over de gehuurde vierkante meters voor fysieke winkels in Noord-Amerika, terwijl semantisch zoeken niet in staat was om de juiste informatie uit de vectorwinkel op te halen vanwege de vertaling van de insluitingen. Daarom kon de FM niet het juiste antwoord geven, omdat deze niet over de juiste en meest relevante zoekresultaten beschikte.

Voor meer algemene vragen waarbij geen entiteiten betrokken zijn, zoals physical stores or North America, geven zowel hybride als semantische zoekopdrachten vergelijkbare resultaten.

Hieronder volgen voorbeeldreacties van enkele zoekopdrachten die gevallen demonstreren waarin zowel hybride als semantische zoekopdrachten vergelijkbare resultaten opleveren.

Vraag Semantisch zoeken: RAG API Hybride zoeken: RAG API
Hoe bedient Amazon de ontwikkelaars en ondernemingen? We bedienen ontwikkelaars en ondernemingen van elke omvang, inclusief start-ups, overheidsinstanties en academische instellingen, via AWS, dat een breed scala aan on-demand technologiediensten biedt, waaronder rekenkracht, opslag, database, analyse en machinaal leren, en andere diensten We bedienen ontwikkelaars en ondernemingen van elke omvang, inclusief start-ups, overheidsinstanties en academische instellingen, via AWS, dat een breed scala aan on-demand technologiediensten biedt, waaronder rekenkracht, opslag, database, analyse en machinaal leren, en andere diensten.
Wie zijn de uitvoerende functionarissen en directeuren van Amazon vanaf 24 januari 2024? Tot de uitvoerende functionarissen van Amazon vanaf 2024 behoren Andrew R. Jassy als President en Chief Executive Officer, Douglas J. Herrington als CEO Worldwide Amazon Stores, Brian T. Olsavsky als Senior Vice President en Chief Financial Officer, Shelley L. Reynolds als Vice President , Worldwide Controller en Principal Accounting Officer, Adam N. Selipsky als CEO Amazon Web Services, en David A. Zapolsky als Senior Vice President, Global Public Policy en General Counsel. Vanaf 2024 is Jeffrey P. Bezos uitvoerend voorzitter van Amazon.com. Andrew R. Jassy is President en Chief Executive Officer. Andere leidinggevende functionarissen zijn onder meer Douglas J. Herrington als CEO Worldwide Amazon Stores, Brian T. Olsavsky als Senior Vice President en Chief Financial Officer, Shelley L. Reynolds als Vice President, Worldwide Controller en Principal Accounting Officer, en Adam N. Selipsky als CEO Amazon-webservices. David A. Zapolsky is Senior Vice President, Global Public Policy en General Counsel

Gebruik hybride zoek- en semantische zoekopties via de Amazon Bedrock-console

Om hybride en semantische zoekopties op de Amazon Bedrock-console te gebruiken, voert u de volgende stappen uit:

  1. Kies op de Amazon Bedrock-console Kennisbank in het navigatievenster.
  2. Kies de kennisbank die u heeft gemaakt.
  3. Kies Kennisbank testen.
  4. Kies het configuratiepictogram.
  5. Voor Zoektype¸ selecteren Hybride zoeken (semantisch en tekst).

Standaard kunt u een FM kiezen om een ​​gegenereerd antwoord op uw vraag te krijgen. Als u alleen de opgehaalde resultaten wilt zien, kunt u schakelen Reactie genereren uit om alleen opgehaalde resultaten te krijgen.

Conclusie

In dit bericht hebben we de nieuwe zoekfunctie in Knowledge Bases voor Amazon Bedrock besproken, die hybride zoeken mogelijk maakt. We hebben geleerd hoe we de hybride zoekoptie in de SDK en de Amazon Bedrock-console kunnen configureren. Dit helpt een aantal van de beperkingen te overwinnen die gepaard gaan met uitsluitend semantisch zoeken, vooral bij het zoeken in grote verzamelingen documenten met uiteenlopende inhoud. Het gebruik van hybride zoeken is afhankelijk van het documenttype en de use case die u probeert te implementeren.

Voor aanvullende bronnen raadpleegt u het volgende:

Referenties

Verbetering van de ophaalprestaties in RAG-pijplijnen met hybride zoeken


Over de auteurs

Mani Khanuja is een Tech Lead – Generative AI Specialists, auteur van het boek Applied Machine Learning and High Performance Computing on AWS, en lid van de Raad van Bestuur van Women in Manufacturing Education Foundation Board. Ze leidt machine learning-projecten in verschillende domeinen, zoals computer vision, natuurlijke taalverwerking en generatieve AI. Ze spreekt op interne en externe conferenties zoals AWS re:Invent, Women in Manufacturing West, YouTube-webinars en GHC 23. In haar vrije tijd maakt ze graag lange runs langs het strand.

Pallavi Nargund is een Principal Solutions Architect bij AWS. In haar rol als cloudtechnologie-enabler werkt ze samen met klanten om hun doelen en uitdagingen te begrijpen en geeft ze voorgeschreven begeleiding om hun doel te bereiken met AWS-aanbiedingen. Ze heeft een passie voor vrouwen in de technologie en is kernlid van Women in AI/ML bij Amazon. Ze spreekt op interne en externe conferenties zoals AWS re:Invent, AWS Summits en webinars. Buiten haar werk doet ze graag vrijwilligerswerk, tuinieren, fietsen en wandelen.

spot_img

Laatste intelligentie

spot_img