Generatywna analiza danych

Bazy wiedzy dla Amazon Bedrock obsługują teraz filtrowanie metadanych w celu poprawy dokładności wyszukiwania | Usługi internetowe Amazona

Data:

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

W przypadku aplikacji opartych na RAG dokładność wygenerowanych odpowiedzi z FM zależy od kontekstu dostarczonego modelowi. Konteksty są pobierane ze sklepów wektorowych na podstawie zapytań użytkowników. W niedawno wydanej funkcji Baz wiedzy dla Amazon Bedrock, wyszukiwanie hybrydowe, możesz połączyć wyszukiwanie semantyczne z wyszukiwaniem słów kluczowych. Jednak w wielu sytuacjach może zaistnieć potrzeba odzyskania dokumentów utworzonych w określonym czasie lub oznaczonych określonymi kategoriami. Aby zawęzić wyniki wyszukiwania, możesz filtrować na podstawie metadanych dokumentu, aby poprawić dokładność wyszukiwania, co z kolei prowadzi do trafniejszych generacji FM dostosowanych do Twoich zainteresowań.

W tym poście omawiamy nową funkcję niestandardowego filtrowania metadanych w Bazach wiedzy dla Amazon Bedrock, której możesz użyć do poprawy wyników wyszukiwania poprzez wstępne filtrowanie pobrań ze sklepów wektorowych.

Przegląd filtrowania metadanych

Przed udostępnieniem filtrowania metadanych wszystkie istotne semantycznie fragmenty aż do wcześniej ustawionego maksimum będą zwracane jako kontekst dla FM do wykorzystania w celu wygenerowania odpowiedzi. Teraz dzięki filtrom metadanych możesz odzyskać nie tylko semantycznie istotne fragmenty, ale także dobrze zdefiniowany podzbiór odpowiednich uchwytów w oparciu o zastosowane filtry metadanych i powiązane wartości.

Dzięki tej funkcji możesz teraz dostarczyć niestandardowy plik metadanych (każdy do 10 KB) dla każdego dokumentu w bazie wiedzy. Możesz zastosować filtry do swoich pobrań, instruując sklep wektorowy, aby wstępnie filtrował na podstawie metadanych dokumentu, a następnie wyszukiwał odpowiednie dokumenty. W ten sposób masz kontrolę nad odzyskanymi dokumentami, szczególnie jeśli Twoje zapytania są niejednoznaczne. Można na przykład używać dokumentów prawnych zawierających podobne terminy w różnych kontekstach lub filmów o podobnej fabule, które ukazały się w różnych latach. Ponadto, zmniejszając liczbę przeszukiwanych fragmentów, można osiągnąć korzyści w zakresie wydajności, takie jak redukcja cykli procesora i kosztów zapytań do magazynu wektorów, a także poprawić dokładność.

Aby skorzystać z funkcji filtrowania metadanych, obok źródłowych plików danych należy dostarczyć pliki metadanych o tej samej nazwie co źródłowy plik danych i .metadata.json przyrostek. Metadane mogą mieć postać ciągu, liczby lub wartości logicznej. Poniżej przedstawiono przykładową zawartość pliku metadanych:

{
    "metadataAttributes" : { 
        "tag" : "project EVE",
        "year" :  2016,
        "team": "ninjas"
    }
}

Funkcja filtrowania metadanych w Bazach wiedzy dla Amazon Bedrock jest dostępna w regionach AWS: Wschodnie stany USA (N. Wirginia) i Zachodnie stany USA (Oregon).

Poniżej przedstawiono typowe przypadki użycia filtrowania metadanych:

  • Chatbot dokumentacyjny dla firmy programistycznej – Dzięki temu użytkownicy mogą znaleźć informacje o produkcie i instrukcje dotyczące rozwiązywania problemów. Na przykład filtry systemu operacyjnego lub wersji aplikacji mogą pomóc uniknąć pobierania przestarzałych lub nieistotnych dokumentów.
  • Wyszukiwanie konwersacyjne aplikacji organizacji – Umożliwia to użytkownikom przeszukiwanie dokumentów, kart Kanban, transkrypcji nagrań spotkań i innych zasobów. Używając filtrów metadanych w grupach roboczych, jednostkach biznesowych lub identyfikatorach projektów, możesz spersonalizować czat i usprawnić współpracę. Przykładem może być pytanie „Jaki jest status projektu Sphinx i podniesione ryzyko”, w którym użytkownicy mogą filtrować dokumenty pod kątem konkretnego projektu lub typu źródła (np. wiadomości e-mail lub dokumenty ze spotkań).
  • Inteligentne wyszukiwanie programistów – Umożliwia to programistom wyszukiwanie informacji o konkretnej wersji. Filtry według wersji wydania, typu dokumentu (takiego jak kod, odwołanie do interfejsu API lub problem) mogą pomóc w zlokalizowaniu odpowiednich dokumentów.

Omówienie rozwiązania

W poniższych sekcjach pokażemy, jak przygotować zbiór danych do wykorzystania jako baza wiedzy, a następnie wykonać zapytanie z filtrowaniem metadanych. Możesz wysyłać zapytania za pomocą metody Konsola zarządzania AWS lub SDK.

Przygotuj zbiór danych dla baz wiedzy dla Amazon Bedrock

W tym poście używamy pliku przykładowy zbiór danych o fikcyjnych grach wideo, aby zilustrować, jak przyjmować i odzyskiwać metadane za pomocą baz wiedzy dla Amazon Bedrock. Jeśli chcesz śledzić dalej na swoim własnym koncie AWS, pobierz plik.

Jeśli chcesz dodać metadane do swoich dokumentów w istniejącej bazie wiedzy, utwórz pliki metadanych z oczekiwaną nazwą pliku i schematem, a następnie przejdź do kroku synchronizacji danych z bazą wiedzy, aby rozpocząć pozyskiwanie przyrostowe.

W naszym przykładowym zbiorze danych dokument każdej gry jest oddzielnym plikiem CSV (na przykład s3://$bucket_name/video_game/$game_id.csv) z następującymi kolumnami:

title, description, genres, year, publisher, score

Metadane każdej gry mają przyrostek .metadata.json (na przykład, s3://$bucket_name/video_game/$game_id.csv.metadata.json) według następującego schematu:

{
  "metadataAttributes": {
    "id": number, 
    "genres": string,
    "year": number,
    "publisher": string,
    "score": number
  }
}

Utwórz bazę wiedzy dla Amazon Bedrock

Aby uzyskać instrukcje dotyczące tworzenia nowej bazy wiedzy, zobacz Utwórz bazę wiedzy. W tym przykładzie używamy następujących ustawień:

  • Na Skonfiguruj źródło danych strona, pod Strategia fragmentowania, Wybierz Żadnego fragmentowania, ponieważ dokumenty zostały już wstępnie przetworzone w poprzednim kroku.
  • W Model osadzania Sekcja, wybierz Osadzenia Titan G1 – tekst.
  • W Baza danych wektorowych Sekcja, wybierz Szybko utwórz nowy sklep wektorowy. Funkcja filtrowania metadanych jest dostępna dla wszystkich obsługiwanych sklepów wektorowych.

Synchronizuj zbiór danych z bazą wiedzy

Po utworzeniu bazy wiedzy i umieszczeniu plików danych i metadanych w pliku Usługa Amazon Simple Storage (Amazon S3), możesz rozpocząć przetwarzanie przyrostowe. Aby uzyskać instrukcje, zobacz Synchronizuj, aby pozyskać źródła danych z bazy wiedzy.

Zapytanie z filtrowaniem metadanych na konsoli Amazon Bedrock

Aby skorzystać z opcji filtrowania metadanych w konsoli Amazon Bedrock, wykonaj następujące kroki:

  1. Na konsoli Amazon Bedrock wybierz Bazy wiedzy w okienku nawigacji.
  2. Wybierz utworzoną bazę wiedzy.
  3. Dodaj Testowa baza wiedzy.
  4. Wybierz Konfiguracje ikonę, a następnie rozwiń filtry.
  5. Wprowadź warunek w formacie: klucz = wartość (na przykład gatunki = strategia) i naciśnij Wchodzę.
  6. Aby zmienić klucz, wartość lub operator, wybierz warunek.
  7. Kontynuuj pozostałe warunki (na przykład (gatunki = strategia ORAZ rok >= 2023) LUB (ocena >= 9))
  8. Po zakończeniu wpisz zapytanie w polu wiadomości, a następnie wybierz run.

W tym poście wpisujemy zapytanie „Gra strategiczna z fajną grafiką wydana po 2023 roku”.

Zapytanie z filtrowaniem metadanych przy użyciu SDK

Aby użyć zestawu SDK, najpierw utwórz klienta dla Agenci Amazon Bedrock czas pracy:

import boto3

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

Następnie skonstruuj filtr (poniżej przedstawiono kilka przykładów):

# genres = Strategy
single_filter= {
    "equals": {
        "key": "genres",
        "value": "Strategy"
    }
}

# genres = Strategy AND year >= 2023
one_group_filter= {
    "andAll": [
        {
            "equals": {
                "key": "genres",
                "value": "Strategy"
            }
        },
        {
            "GreaterThanOrEquals": {
                "key": "year",
                "value": 2023
            }
        }
    ]
}

# (genres = Strategy AND year >=2023) OR score >= 9
two_group_filter = {
    "orAll": [
        {
            "andAll": [
                {
                    "equals": {
                        "key": "genres",
                        "value": "Strategy"
                    }
                },
                {
                    "GreaterThanOrEquals": {
                        "key": "year",
                        "value": 2023
                    }
                }
            ]
        },
        {
            "GreaterThanOrEquals": {
                "key": "score",
                "value": "9"
            }
        }
    ]
}

Przekaż filtr do retrievalConfiguration ukończenia API pobierania or Pobierz i wygeneruj OGIEŃ:

retrievalConfiguration={
        "vectorSearchConfiguration": {
            "filter": metadata_filter
        }
    }

W poniższej tabeli wymieniono kilka odpowiedzi z różnymi warunkami filtrowania metadanych.

Pytanie Filtrowanie metadanych Odzyskane dokumenty Komentarze
„Gra strategiczna z fajną grafiką, wydana po 2023 roku” poza

* Saga Wikingów: The Sea Raider, rok:2023, gatunki: Strategia

* Średniowieczny zamek: Oblężenie i podbój, rok:2022, gatunki: Strategia
* Fantasy Kingdoms: Chronicles of Eldoria, rok: 2023, gatunki: Strategia

* Rewolucja cybernetyczna: Bunt maszyn, rok:2022, gatunki: Strategia
* Kroniki Steampunk: Mechaniczne Imperia, rok:2021, gatunki: Budowa miasta

Warunek spełnia 2/5 gier (gatunki = Strategia i rok >= 2023)
On * Saga Wikingów: The Sea Raider, rok:2023, gatunki: Strategia
* Fantasy Kingdoms: Chronicles of Eldoria, rok: 2023, gatunki: Strategia
Warunek spełnia 2/2 gier (gatunki = Strategia i rok >= 2023)

Oprócz niestandardowych metadanych możesz także filtrować za pomocą przedrostków S3 (które są wbudowanymi metadanymi, więc nie musisz dostarczać żadnych plików metadanych). Na przykład, jeśli uporządkujesz dokumenty gry według przedrostków według wydawcy (np. s3://$bucket_name/video_game/$publisher/$game_id.csv), możesz filtrować według konkretnego wydawcy (np. neo_tokyo_games) przy użyciu następującej składni:

publisher_filter = {
    "startsWith": {
                    "key": "x-amz-bedrock-kb-source-uri",
                    "value": "s3://$bucket_name/video_game/neo_tokyo_games/"
                }
}

Sprzątać

Aby wyczyścić zasoby, wykonaj następujące kroki:

  1. Usuń bazę wiedzy:
    1. Na konsoli Amazon Bedrock wybierz Bazy wiedzy dla orkiestracja w okienku nawigacji.
    2. Wybierz utworzoną bazę wiedzy.
    3. Zwróć uwagę na AWS Zarządzanie tożsamością i dostępem (IAM) nazwa roli usługi w pliku Przegląd bazy wiedzy
    4. W Baza danych wektorowych sekcji, zwróć uwagę na kolekcję ARN.
    5. Dodaj Usuń, a następnie wpisz usuń, aby potwierdzić.
  2. Usuń bazę wektorów:
    1. Na Usługa Amazon OpenSearch konsola, wybierz Kategorie dla Bezserwerowe w okienku nawigacji.
    2. Wpisz zapisaną kolekcję ARN w pasku wyszukiwania.
    3. Wybierz kolekcję i wybierz Usuń.
    4. Wprowadź potwierdzenie w wierszu potwierdzenia, a następnie wybierz Usuń.
  3. Usuń rolę usługi IAM:
    1. W konsoli IAM wybierz role w okienku nawigacji.
    2. Wyszukaj nazwę roli, którą zanotowałeś wcześniej.
    3. Wybierz rolę i wybierz Usuń.
    4. Wprowadź nazwę roli w monicie o potwierdzenie i usuń rolę.
  4. Usuń przykładowy zbiór danych:
    1. Na konsoli Amazon S3 przejdź do używanego segmentu S3.
    2. Wybierz przedrostek i pliki, a następnie wybierz Usuń.
    3. Wpisz trwale usuń w oknie potwierdzenia, aby usunąć.

Wnioski

W tym poście omówiliśmy funkcję filtrowania metadanych w Bazach wiedzy dla Amazon Bedrock. Nauczyłeś się, jak dodawać niestandardowe metadane do dokumentów i używać ich jako filtrów podczas pobierania dokumentów i wysyłania zapytań za pomocą konsoli Amazon Bedrock i pakietu SDK. Pomaga to poprawić dokładność kontekstu, czyniąc odpowiedzi na zapytania jeszcze bardziej trafnymi, jednocześnie osiągając zmniejszenie kosztów zapytań do bazy danych wektorowych.

Aby zapoznać się z dodatkowymi zasobami, zobacz:


O autorach

Corvusa Lee jest starszym architektem rozwiązań GenAI Labs z siedzibą w Londynie. Jego pasją jest projektowanie i opracowywanie prototypów wykorzystujących generatywną sztuczną inteligencję do rozwiązywania problemów klientów. Śledzi także najnowsze osiągnięcia w dziedzinie generatywnej sztucznej inteligencji i technik wyszukiwania, stosując je w rzeczywistych scenariuszach.

Ahmeda Ewisa jest starszym architektem rozwiązań w AWS GenAI Labs, pomagając klientom budować prototypy generatywnej sztucznej inteligencji w celu rozwiązywania problemów biznesowych. Kiedy nie współpracuje z klientami, lubi bawić się z dziećmi i gotować.

Chrisa Pecorę jest analitykiem danych zajmującym się generatywną sztuczną inteligencją w Amazon Web Services. Jego pasją jest budowanie innowacyjnych produktów i rozwiązań, jednocześnie skupiając się na nauce zorientowanej na klienta. Kiedy nie prowadzi eksperymentów i nie śledzi najnowszych osiągnięć w GenAI, uwielbia spędzać czas ze swoimi dziećmi.

spot_img

Najnowsza inteligencja

spot_img