Bazy wiedzy dla Amazon Bedrock obsługują teraz wyszukiwanie hybrydowe | Usługi internetowe Amazona

Bazy wiedzy dla Amazon Bedrock obsługują teraz wyszukiwanie hybrydowe | Usługi internetowe Amazona

At AWS re: Invent 2023, ogłosiliśmy ogólną dostępność Bazy wiedzy na temat Amazon Bedrock. Dzięki bazie wiedzy możesz bezpiecznie łączyć modele fundamentów (FM). Amazońska skała macierzysta do danych Twojej firmy w celu w pełni zarządzanego odzyskiwania rozszerzonego generowania (RAG).

W poprzedni post, opisaliśmy, w jaki sposób Bazy wiedzy dla Amazon Bedrock zarządzają dla Ciebie kompleksowym przepływem pracy RAG i udostępniliśmy szczegółowe informacje na temat niektórych najnowszych funkcji.

W przypadku aplikacji opartych na RAG dokładność wygenerowanej odpowiedzi z dużych modeli językowych (LLM) zależy od kontekstu dostarczonego do modelu. Kontekst jest pobierany z bazy wektorów na podstawie zapytania użytkownika. Wyszukiwanie semantyczne jest szeroko stosowane, ponieważ umożliwia zrozumienie pytań bardziej przypominających ludzkie — zapytanie użytkownika nie zawsze jest bezpośrednio powiązane z dokładnymi słowami kluczowymi w treści, która na nie odpowiada. Wyszukiwanie semantyczne pomaga w udzielaniu odpowiedzi na podstawie znaczenia tekstu. Ma jednak ograniczenia w przechwytywaniu wszystkich odpowiednich słów kluczowych. Jego działanie zależy od jakości osadzania słów używanych do przedstawienia znaczenia tekstu. Aby pokonać takie ograniczenia, lepsze wyniki da połączenie wyszukiwania semantycznego z wyszukiwaniem słów kluczowych (hybrydowym).

W tym poście omawiamy nową funkcję wyszukiwania hybrydowego, którą możesz wybrać jako opcję zapytania obok wyszukiwania semantycznego.

Omówienie wyszukiwania hybrydowego

Wyszukiwanie hybrydowe wykorzystuje zalety wielu algorytmów wyszukiwania, integrując ich unikalne możliwości w celu zwiększenia trafności zwracanych wyników wyszukiwania. W przypadku aplikacji opartych na RAG możliwości wyszukiwania semantycznego są często łączone z tradycyjnym wyszukiwaniem opartym na słowach kluczowych, aby poprawić trafność wyników wyszukiwania. Umożliwia przeszukiwanie zarówno treści dokumentów, jak i ich znaczenia. Rozważmy na przykład następujące zapytanie:

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

W tym zapytaniu o tytuł książki i nazwę strony internetowej wyszukiwanie według słów kluczowych da lepsze wyniki, ponieważ chcemy poznać koszt konkretnej książki. Jednak termin „koszt” może mieć synonimy takie jak „cena”, dlatego lepiej będzie skorzystać z wyszukiwania semantycznego, które rozumie znaczenie tekstu. Wyszukiwanie hybrydowe przynosi to, co najlepsze z obu podejść: precyzję wyszukiwania semantycznego i zasięg słów kluczowych. Działa świetnie w aplikacjach opartych na RAG, gdzie pies myśliwski musi obsługiwać szeroką gamę zapytań w języku naturalnym. Słowa kluczowe pomagają uwzględnić w zapytaniu określone elementy, takie jak nazwa produktu, kolor i cena, a semantyka lepiej rozumie znaczenie i intencje zapytania. Na przykład, jeśli chcesz zbudować chatbota dla witryny e-commerce, który będzie obsługiwał zapytania klientów, takie jak zasady zwrotów lub szczegóły produktu, najbardziej odpowiednie będzie skorzystanie z wyszukiwania hybrydowego.

Przypadki użycia wyszukiwania hybrydowego

Poniżej przedstawiono kilka typowych przypadków użycia wyszukiwania hybrydowego:

  • Odpowiadanie na pytania z domeny otwartej – Polega to na odpowiadaniu na pytania dotyczące różnorodnych tematów. Wymaga to przeszukiwania dużych zbiorów dokumentów o zróżnicowanej treści, takich jak dane witryn internetowych, które mogą obejmować różne tematy, takie jak zrównoważony rozwój, przywództwo, wyniki finansowe i inne. Samo wyszukiwanie semantyczne nie jest w stanie dobrze uogólniać tego zadania, ponieważ nie ma możliwości dopasowywania leksykalnego niewidocznych jednostek, co jest ważne w przypadku obsługi przykładów spoza domeny. Dlatego połączenie wyszukiwania opartego na słowach kluczowych z wyszukiwaniem semantycznym może pomóc zawęzić zakres i zapewnić lepsze wyniki w przypadku odpowiedzi na pytania z domeny otwartej.
  • Chatboty kontekstowe – Rozmowy mogą szybko zmienić kierunek i obejmować nieprzewidywalne tematy. Wyszukiwanie hybrydowe lepiej radzi sobie z takimi otwartymi oknami dialogowymi.
  • Wyszukiwanie spersonalizowane – Wyszukiwanie na skalę internetową w oparciu o heterogeniczne treści przynosi korzyści dzięki podejściu hybrydowemu. Wyszukiwanie semantyczne obsługuje popularne zapytania typu head, natomiast słowa kluczowe obejmują rzadkie zapytania z długim ogonem.

Chociaż wyszukiwanie hybrydowe zapewnia szerszy zasięg dzięki połączeniu dwóch podejść, wyszukiwanie semantyczne ma przewagę w zakresie precyzji, gdy dziedzina jest wąska, a semantyka jest dobrze zdefiniowana lub gdy jest niewiele miejsca na błędną interpretację, jak w przypadku systemów odpowiadania na pytania oparte na faktach.

Korzyści z wyszukiwania hybrydowego

Zarówno wyszukiwanie słów kluczowych, jak i wyszukiwanie semantyczne zwróci oddzielny zestaw wyników wraz z wynikami trafności, które następnie zostaną połączone w celu uzyskania najtrafniejszych wyników. Bazy wiedzy dla Amazon Bedrock obsługują obecnie cztery sklepy wektorowe: Amazon OpenSearch bez serwera, Wersja zgodna z Amazon Aurora PostgreSQL, szyszka, Redis Enterprise Chmura. W chwili pisania tego tekstu funkcja wyszukiwania hybrydowego jest dostępna dla OpenSearch Serverless, a wkrótce będzie dostępna obsługa innych sklepów wektorowych.

Oto niektóre zalety korzystania z wyszukiwania hybrydowego:

  • Poprawiona dokładność – Dokładność wygenerowanej odpowiedzi z FM zależy bezpośrednio od trafności uzyskanych wyników. Na podstawie Twoich danych zwiększenie dokładności aplikacji wyłącznie za pomocą wyszukiwania semantycznego może być trudne. Kluczową zaletą korzystania z wyszukiwania hybrydowego jest poprawa jakości uzyskiwanych wyników, co z kolei pomaga FM generować dokładniejsze odpowiedzi.
  • Rozszerzone możliwości wyszukiwania – Wyszukiwanie słów kluczowych rzuca szerszą sieć i znajduje dokumenty, które mogą być istotne, ale mogą nie zawierać struktury semantycznej w całym dokumencie. Umożliwia wyszukiwanie słów kluczowych oraz znaczenia semantycznego tekstu, poszerzając w ten sposób możliwości wyszukiwania.

W poniższych sekcjach pokazujemy, jak korzystać z wyszukiwania hybrydowego w bazach wiedzy dla Amazon Bedrock.

Korzystaj z opcji wyszukiwania hybrydowego i semantycznego za pośrednictwem pakietu SDK

Gdy wywołasz interfejs Retrieve API, baza wiedzy dla Amazon Bedrock wybierze dla Ciebie odpowiednią strategię wyszukiwania, aby zapewnić najbardziej trafne wyniki. Możesz to zmienić, aby używać wyszukiwania hybrydowego lub semantycznego w interfejsie API.

Pobierz API

Interfejs Retrieve API ma na celu pobieranie odpowiednich wyników wyszukiwania poprzez podanie zapytania użytkownika, identyfikatora bazy wiedzy i liczby wyników, które mają zostać zwrócone przez interfejs API. Ten interfejs API konwertuje zapytania użytkowników na osadzanie, przeszukuje bazę wiedzy za pomocą wyszukiwania hybrydowego lub wyszukiwania semantycznego (wektorowego) i zwraca odpowiednie wyniki, zapewniając większą kontrolę nad tworzeniem niestandardowych przepływów pracy na podstawie wyników wyszukiwania. Na przykład możesz dodać logikę przetwarzania końcowego do pobranych wyników lub dodać własny monit i połączyć się z dowolnym FM dostarczonym przez Amazon Bedrock w celu wygenerowania odpowiedzi.

Aby pokazać Państwu przykład przełączania pomiędzy opcjami wyszukiwania hybrydowego i semantycznego (wektorowego), stworzyliśmy bazę wiedzy wykorzystując Dokument Amazona 10 tys. na rok 2023. Więcej szczegółów na temat tworzenia bazy wiedzy można znaleźć w artykule Zbuduj kontekstową aplikację chatbota, korzystając z baz wiedzy dla Amazon Bedrock.

Aby zademonstrować wartość wyszukiwania hybrydowego, używamy następującego zapytania:

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

Odpowiedź na poprzednie zapytanie obejmuje kilka słów kluczowych, takich jak date, physical stores, North America. Prawidłowa odpowiedź to 22,871 thousand square feet. Zaobserwujmy różnicę w wynikach wyszukiwania zarówno w przypadku wyszukiwania hybrydowego, jak i semantycznego.

Poniższy kod pokazuje, jak używać wyszukiwania hybrydowego lub semantycznego (wektorowego) przy użyciu interfejsu Retrieve API z 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"]

Połączenia overrideSearchType opcja w retrievalConfiguration oferuje możliwość użycia dowolnego z nich HYBRID or SEMANTIC. Domyślnie wybierze odpowiednią strategię, aby zapewnić najtrafniejsze wyniki, a jeśli chcesz zastąpić domyślną opcję korzystania z wyszukiwania hybrydowego lub semantycznego, możesz ustawić wartość HYBRID/SEMANTIC. Wyjście Retrieve Interfejs API obejmuje pobrane fragmenty tekstu, typ lokalizacji i identyfikator URI danych źródłowych oraz ocenę trafności pobrań. Wyniki pomagają określić, które fragmenty najlepiej pasują do odpowiedzi na zapytanie.

Poniżej znajdują się wyniki poprzedniego zapytania przy użyciu wyszukiwania hybrydowego (niektóre wyniki zostały zredagowane dla zwięzłości):

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

Poniżej znajdują się wyniki wyszukiwania semantycznego (niektóre wyniki zostały zredagowane dla zwięzłości):

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

Jak widać w wynikach, wyszukiwaniu hybrydowemu udało się uzyskać wynik wyszukiwania zawierający powierzchnię wynajętą ​​dla sklepów fizycznych w Ameryce Północnej, jak wspomniano w zapytaniu użytkownika. Głównym powodem było to, że wyszukiwanie hybrydowe było w stanie połączyć wyniki ze słów kluczowych takich jak date, physical stores, North America w zapytaniu, podczas gdy wyszukiwanie semantyczne nie. Dlatego też, jeśli wyniki wyszukiwania zostaną uzupełnione o zapytanie użytkownika i monit, FM nie będzie w stanie zapewnić prawidłowej odpowiedzi w przypadku wyszukiwania semantycznego.

Teraz spójrzmy na RetrieveAndGenerate API z wyszukiwaniem hybrydowym w celu zrozumienia ostatecznej odpowiedzi wygenerowanej przez FM.

API RetrieveAndGenerate

Połączenia RetrieveAndGenerate API wysyła zapytanie do bazy wiedzy i generuje odpowiedź na podstawie pobranych wyników. Określasz identyfikator bazy wiedzy oraz FM, aby wygenerować odpowiedź na podstawie wyników. Amazon Bedrock konwertuje zapytania na osadzanie, wysyła zapytania do bazy wiedzy na podstawie typu wyszukiwania, a następnie uzupełnia monit FM o wyniki wyszukiwania jako informacje kontekstowe i zwraca odpowiedź wygenerowaną przez FM.

Użyjmy zapytania „Jaka jest powierzchnia wynajmowana sklepów stacjonarnych w Ameryce Północnej na dzień 31 grudnia 2023 r.?” i zapytaj RetrieveAndGenerate API umożliwiające wygenerowanie odpowiedzi na podstawie naszego zapytania:

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

Oto wyniki uzyskane przy użyciu wyszukiwania hybrydowego:

22,871 thousand leased square feet

Poniżej znajdują się wyniki wyszukiwania semantycznego:

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

Rzeczywista odpowiedź na zapytanie brzmi 22,871 thousand leased square feet, który jest generowany przez wyszukiwanie hybrydowe. Pobrane wyniki wyszukiwania dla wyszukiwania hybrydowego zawierały informacje o wynajętej powierzchni sklepów fizycznych w Ameryce Północnej, podczas gdy wyszukiwanie semantyczne nie było w stanie uzyskać odpowiednich informacji ze sklepu wektorowego ze względu na tłumaczenie osadzania. W związku z tym FM nie mógł udzielić prawidłowej odpowiedzi, ponieważ nie miał prawidłowych i najtrafniejszych wyników wyszukiwania.

Jednak w przypadku bardziej ogólnych pytań, które nie dotyczą podmiotów takich jak physical stores or North America, zarówno wyszukiwanie hybrydowe, jak i semantyczne dają podobne wyniki.

Poniżej znajdują się przykładowe odpowiedzi z kilku zapytań pokazujące przypadki, gdy zarówno wyszukiwanie hybrydowe, jak i semantyczne daje podobne wyniki.

Question Wyszukiwanie semantyczne: RAG API Wyszukiwanie hybrydowe: RAG API
W jaki sposób Amazon służy programistom i przedsiębiorstwom? Obsługujemy programistów i przedsiębiorstwa każdej wielkości, w tym start-upy, agencje rządowe i instytucje akademickie, za pośrednictwem platformy AWS, która oferuje szeroki zestaw usług technologicznych na żądanie, w tym obliczenia, przechowywanie, bazy danych, analizy i uczenie maszynowe oraz inne usługi Obsługujemy programistów i przedsiębiorstwa każdej wielkości, w tym start-upy, agencje rządowe i instytucje akademickie, za pośrednictwem platformy AWS, która oferuje szeroki zestaw usług technologicznych na żądanie, w tym obliczenia, przechowywanie, bazy danych, analizy i uczenie maszynowe oraz inne usługi.
Kim są dyrektorzy wykonawczy i dyrektorzy Amazon na dzień 24 stycznia 2024 r.? Członkowie kadry kierowniczej Amazon od 2024 r. to Andrew R. Jassy jako prezes i dyrektor generalny, Douglas J. Herrington jako dyrektor generalny Worldwide Amazon Stores, Brian T. Olsavsky jako starszy wiceprezes i dyrektor finansowy, Shelley L. Reynolds jako wiceprezes , ogólnoświatowy kontroler i główny księgowy, Adam N. Selipsky jako dyrektor generalny Amazon Web Services i David A. Zapolsky jako starszy wiceprezes ds. globalnej polityki publicznej i główny radca prawny. Od 2024 r. Jeffrey P. Bezos pełni funkcję prezesa wykonawczego Amazon.com. Andrew R. Jassy pełni funkcję prezesa i dyrektora generalnego. Pozostali członkowie kadry kierowniczej to Douglas J. Herrington jako dyrektor generalny Worldwide Amazon Stores, Brian T. Olsavsky jako starszy wiceprezes i dyrektor finansowy, Shelley L. Reynolds jako wiceprezes, ogólnoświatowy kontroler i główny księgowy oraz Adam N. Selipsky jako dyrektor generalny Usługi internetowe Amazona. David A. Zapolsky pełni funkcję starszego wiceprezesa ds. globalnej polityki publicznej i głównego radcy prawnego

Korzystaj z opcji wyszukiwania hybrydowego i semantycznego za pośrednictwem konsoli Amazon Bedrock

Aby skorzystać z opcji wyszukiwania hybrydowego i semantycznego na konsoli Amazon Bedrock, wykonaj następujące kroki:

  1. Na konsoli Amazon Bedrock wybierz Blog w okienku nawigacji.
  2. Wybierz utworzoną bazę wiedzy.
  3. Dodaj Testowa baza wiedzy.
  4. Wybierz ikonę konfiguracji.
    Bazy wiedzy dla Amazon Bedrock obsługują teraz wyszukiwanie hybrydowe | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
  5. W razie zamówieenia projektu Typ wyszukiwaniaWybierz Wyszukiwanie hybrydowe (semantyczne i tekstowe).
    Bazy wiedzy dla Amazon Bedrock obsługują teraz wyszukiwanie hybrydowe | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Domyślnie możesz wybrać FM, aby uzyskać wygenerowaną odpowiedź na swoje zapytanie. Jeśli chcesz zobaczyć tylko pobrane wyniki, możesz przełączyć Wygeneruj odpowiedź wyłączony, aby uzyskać tylko pobrane wyniki.

Bazy wiedzy dla Amazon Bedrock obsługują teraz wyszukiwanie hybrydowe | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Wnioski

W tym poście omówiliśmy nową funkcję zapytań w Bazach wiedzy dla Amazon Bedrock, która umożliwia wyszukiwanie hybrydowe. Dowiedzieliśmy się jak skonfigurować opcję wyszukiwania hybrydowego w SDK i konsoli Amazon Bedrock. Pomaga to przezwyciężyć niektóre ograniczenia polegające wyłącznie na wyszukiwaniu semantycznym, szczególnie w przypadku przeszukiwania dużych zbiorów dokumentów o zróżnicowanej treści. Zastosowanie wyszukiwania hybrydowego zależy od typu dokumentu i przypadku użycia, który próbujesz wdrożyć.

Aby zapoznać się z dodatkowymi zasobami, zobacz:

Referencje

Poprawa wydajności wyszukiwania w rurociągach RAG dzięki wyszukiwaniu hybrydowemu


O autorach

Bazy wiedzy dla Amazon Bedrock obsługują teraz wyszukiwanie hybrydowe | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Mani Chanuja jest Tech Lead – Generatative AI Specialists, autorką książki Applied Machine Learning and High Performance Computing on AWS oraz członkinią Rady Dyrektorów Fundacji ds. Kobiet w Edukacji Produkcyjnej. Prowadzi projekty uczenia maszynowego w różnych dziedzinach, takich jak widzenie komputerowe, przetwarzanie języka naturalnego i generatywna sztuczna inteligencja. Występuje na konferencjach wewnętrznych i zewnętrznych, takich jak AWS re:Invent, Women in Manufacturing West, webinary na YouTube i GHC 23. W wolnym czasie lubi długie biegi po plaży.

Bazy wiedzy dla Amazon Bedrock obsługują teraz wyszukiwanie hybrydowe | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Pallavi Nargund jest głównym architektem rozwiązań w AWS. Pełniąc rolę osoby wspierającej technologię chmury, współpracuje z klientami, aby zrozumieć ich cele i wyzwania, a także udziela wskazówek, jak osiągnąć swoje cele dzięki ofertom AWS. Jej pasją są kobiety w technologii i jest główną członkinią Women in AI/ML w Amazon. Występuje na konferencjach wewnętrznych i zewnętrznych, takich jak AWS re:Invent, AWS Summits i webinariach. Poza pracą lubi wolontariat, prace w ogrodzie, jazdę na rowerze i piesze wędrówki.

Znak czasu:

Więcej z Uczenie maszynowe AWS