Platone Data Intelligence.
Ricerca verticale e intelligenza artificiale.

Le basi di conoscenza per Amazon Bedrock ora supportano il filtraggio dei metadati per migliorare la precisione del recupero | Servizi Web di Amazon

Data:

At AWS re: Invent 2023, abbiamo annunciato la disponibilità generale di Basi di conoscenza per Amazon Bedrock. Con le Knowledge Base per Amazon Bedrock, puoi connettere in modo sicuro i modelli di fondazione (FM) in Roccia Amazzonica ai dati della tua azienda utilizzando un modello RAG (Retrieval Augmented Generation) completamente gestito.

Per le applicazioni basate su RAG, l'accuratezza delle risposte generate dai FM dipende dal contesto fornito al modello. I contesti vengono recuperati dagli archivi di vettori in base alle query dell'utente. Nella funzionalità recentemente rilasciata per le Knowledge Base per Amazon Bedrock, ricerca ibrida, puoi combinare la ricerca semantica con la ricerca per parole chiave. Tuttavia, in molte situazioni, potrebbe essere necessario recuperare documenti creati in un periodo definito o contrassegnati con determinate categorie. Per perfezionare i risultati della ricerca, puoi filtrare in base ai metadati del documento per migliorare la precisione del recupero, che a sua volta porta a generazioni FM più pertinenti in linea con i tuoi interessi.

In questo post, discutiamo della nuova funzionalità di filtraggio dei metadati personalizzata nelle Knowledge Base per Amazon Bedrock, che puoi utilizzare per migliorare i risultati della ricerca prefiltrando i tuoi recuperi dagli archivi di vettori.

Panoramica del filtraggio dei metadati

Prima del rilascio del filtraggio dei metadati, tutti i blocchi semanticamente rilevanti fino al massimo preimpostato verrebbero restituiti come contesto affinché FM potesse utilizzarli per generare una risposta. Ora, con i filtri dei metadati, puoi recuperare non solo blocchi semanticamente rilevanti, ma un sottoinsieme ben definito di quei mandrini rilevanti in base ai filtri dei metadati applicati e ai valori associati.

Con questa funzionalità ora puoi fornire un file di metadati personalizzato (ciascuno fino a 10 KB) per ciascun documento nella knowledge base. Puoi applicare filtri ai tuoi recuperi, indicando all'archivio vettoriale di pre-filtrare in base ai metadati del documento e quindi cercare i documenti pertinenti. In questo modo hai il controllo sui documenti recuperati, soprattutto se le tue domande sono ambigue. Ad esempio, puoi utilizzare documenti legali con termini simili per contesti diversi o film con una trama simile pubblicati in anni diversi. Inoltre, riducendo il numero di blocchi su cui viene effettuata la ricerca, si ottengono vantaggi in termini di prestazioni come una riduzione dei cicli della CPU e dei costi di interrogazione dell'archivio vettoriale, oltre a un miglioramento della precisione.

Per utilizzare la funzione di filtro dei metadati, è necessario fornire file di metadati insieme ai file di dati di origine con lo stesso nome del file di dati di origine e .metadata.json suffisso. I metadati possono essere stringhe, numeri o booleani. Di seguito è riportato un esempio del contenuto del file di metadati:

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

La funzionalità di filtro dei metadati delle Knowledge Base per Amazon Bedrock è disponibile nelle regioni AWS Stati Uniti orientali (Virginia settentrionale) e Stati Uniti occidentali (Oregon).

Di seguito sono riportati i casi d'uso comuni per il filtraggio dei metadati:

  • Chatbot per documenti per un'azienda di software – Ciò consente agli utenti di trovare informazioni sul prodotto e guide per la risoluzione dei problemi. I filtri sul sistema operativo o sulla versione dell'applicazione, ad esempio, possono aiutare a evitare il recupero di documenti obsoleti o irrilevanti.
  • Ricerca conversazionale dell'applicazione di un'organizzazione – Ciò consente agli utenti di effettuare ricerche tra documenti, kanban, trascrizioni di registrazioni di riunioni e altre risorse. Utilizzando i filtri dei metadati su gruppi di lavoro, unità aziendali o ID progetto, puoi personalizzare l'esperienza di chat e migliorare la collaborazione. Un esempio potrebbe essere "Qual è lo stato del progetto Sphinx e i rischi sollevati", in cui gli utenti possono filtrare i documenti per un progetto specifico o un tipo di origine (come e-mail o documenti di riunione).
  • Ricerca intelligente per sviluppatori di software – Ciò consente agli sviluppatori di cercare informazioni su una versione specifica. I filtri sulla versione di rilascio, sul tipo di documento (come codice, riferimento API o problema) possono aiutare a individuare i documenti rilevanti.

Panoramica della soluzione

Nelle sezioni seguenti viene illustrato come preparare un set di dati da utilizzare come base di conoscenza e quindi eseguire query con il filtro dei metadati. Puoi eseguire query utilizzando il file Console di gestione AWS o SDK.

Preparare un set di dati per le knowledge base per Amazon Bedrock

Per questo post, usiamo un file set di dati di esempio sui videogiochi di fantasia per illustrare come importare e recuperare metadati utilizzando le Knowledge Base per Amazon Bedrock. Se desideri seguire l'operazione nel tuo account AWS, scarica il file.

Se desideri aggiungere metadati ai tuoi documenti in una knowledge base esistente, crea i file di metadati con il nome file e lo schema previsti, quindi vai al passaggio per sincronizzare i dati con la knowledge base per avviare l'importazione incrementale.

Nel nostro set di dati di esempio, il documento di ogni gioco è un file CSV separato (ad esempio, s3://$bucket_name/video_game/$game_id.csv) con le seguenti colonne:

title, description, genres, year, publisher, score

I metadati di ogni gioco hanno il suffisso .metadata.json (per esempio, s3://$bucket_name/video_game/$game_id.csv.metadata.json) con il seguente schema:

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

Crea una knowledge base per Amazon Bedrock

Per istruzioni su come creare una nuova knowledge base, vedere Crea una base di conoscenza. Per questo esempio utilizziamo le seguenti impostazioni:

  • Sulla Configura origine dati pagina, sotto Strategia di suddivisione in blocchi, selezionare Nessun spezzettamento, perché hai già preelaborato i documenti nel passaggio precedente.
  • Nel Modello degli incastri sezione, scegliere Incorporamenti Titan G1 – Testo.
  • Nel Banca dati vettoriale sezione, scegliere Crea rapidamente un nuovo archivio vettoriale. La funzionalità di filtro dei metadati è disponibile per tutti gli archivi vettoriali supportati.

Sincronizzare il set di dati con la knowledge base

Dopo aver creato la knowledge base e i file di dati e di metadati si trovano in un file Servizio di archiviazione semplice Amazon (Amazon S3), puoi avviare l'acquisizione incrementale. Per istruzioni, vedere Sincronizza per inserire le tue origini dati nella knowledge base.

Query con filtro dei metadati sulla console Amazon Bedrock

Per utilizzare le opzioni di filtraggio dei metadati sulla console Amazon Bedrock, completa i seguenti passaggi:

  1. Sulla console Amazon Bedrock, scegli Basi di conoscenza nel pannello di navigazione.
  2. Scegli la base di conoscenza che hai creato.
  3. Scegli Testare la base di conoscenza.
  4. Scegliere il Configurazioni icona, quindi espandere Filtri.
  5. Inserisci una condizione utilizzando il formato: chiave = valore (ad esempio, generi = Strategia) e premi entrare.
  6. Per modificare la chiave, il valore o l'operatore, scegli la condizione.
  7. Continuare con le restanti condizioni (ad esempio, (generi = Strategia AND anno >= 2023) OPPURE (voto >= 9))
  8. Al termine, inserisci la tua query nella casella di messaggio, quindi scegli Correre.

Per questo post, inseriamo la query "Un gioco di strategia con una grafica accattivante pubblicato dopo il 2023".

Query con filtro dei metadati utilizzando l'SDK

Per utilizzare l'SDK, crea prima il client per Agenti per Amazon Bedrock tempo di esecuzione:

import boto3

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

Quindi costruisci il filtro (di seguito sono riportati alcuni esempi):

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

Passa il filtro a retrievalConfiguration della API di recupero or Recupera e genera API:

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

La tabella seguente elenca alcune risposte con diverse condizioni di filtro dei metadati.

domanda Filtraggio dei metadati Documenti recuperati Osservazioni
“Un gioco di strategia con una grafica accattivante pubblicato dopo il 2023” sconto

* Viking Saga: The Sea Raider, anno: 2023, generi: Strategia

* Castello Medievale: Assedio e Conquista, anno:2022, generi: Strategia
* Fantasy Kingdoms: Chronicles of Eldoria, anno: 2023, generi: Strategia

* Rivoluzione cibernetica: L'ascesa delle macchine, anno:2022, generi: Strategia
* Cronache Steampunk: Clockwork Empires, anno:2021, generi: Costruzione della città

2/5 giochi soddisfano la condizione (generi = Strategia e anno >= 2023)
On * Viking Saga: The Sea Raider, anno: 2023, generi: Strategia
* Fantasy Kingdoms: Chronicles of Eldoria, anno: 2023, generi: Strategia
2/2 giochi soddisfano la condizione (generi = Strategia e anno >= 2023)

Oltre ai metadati personalizzati, puoi anche filtrare utilizzando i prefissi S3 (che sono metadati integrati, quindi non è necessario fornire alcun file di metadati). Ad esempio, se organizzi i documenti del gioco in prefissi per editore (ad esempio, s3://$bucket_name/video_game/$publisher/$game_id.csv), puoi filtrare in base all'editore specifico (ad esempio, neo_tokyo_games) utilizzando la seguente sintassi:

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

ripulire

Per ripulire le tue risorse, completa i seguenti passaggi:

  1. Elimina la base di conoscenza:
    1. Sulla console Amazon Bedrock, scegli Basi di conoscenza per Orchestrazione nel pannello di navigazione.
    2. Scegli la base di conoscenza che hai creato.
    3. Prendi nota del Gestione dell'identità e dell'accesso di AWS (IAM) nome del ruolo del servizio nel file Panoramica della base di conoscenza .
    4. Nel Banca dati vettoriale sezione, prendere nota della raccolta ARN.
    5. Scegli Elimina, quindi inserisci Elimina per confermare.
  2. Elimina il database dei vettori:
    1. Sulla Servizio Amazon OpenSearch console, scegli Collezioni per serverless nel pannello di navigazione.
    2. Inserisci l'ARN della raccolta che hai salvato nella barra di ricerca.
    3. Seleziona la collezione e scegli Elimina.
    4. Inserisci conferma nella richiesta di conferma, quindi scegli Elimina.
  3. Elimina il ruolo del servizio IAM:
    1. Sulla console IAM, scegli Ruoli nel pannello di navigazione.
    2. Cerca il nome del ruolo che hai annotato in precedenza.
    3. Seleziona il ruolo e scegli Elimina.
    4. Immettere il nome del ruolo nella richiesta di conferma ed eliminare il ruolo.
  4. Elimina il set di dati di esempio:
    1. Nella console Amazon S3, vai al bucket S3 che hai utilizzato.
    2. Seleziona il prefisso e i file, quindi scegli Elimina.
    3. Immettere Elimina definitivamente nella richiesta di conferma per eliminare.

Conclusione

In questo post abbiamo trattato la funzionalità di filtraggio dei metadati nelle Knowledge Base per Amazon Bedrock. Hai imparato come aggiungere metadati personalizzati ai documenti e utilizzarli come filtri durante il recupero e l'esecuzione di query sui documenti utilizzando la console Amazon Bedrock e l'SDK. Ciò aiuta a migliorare l'accuratezza del contesto, rendendo le risposte alle query ancora più pertinenti e ottenendo allo stesso tempo una riduzione dei costi di interrogazione del database vettoriale.

Per ulteriori risorse, fare riferimento a quanto segue:


Informazioni sugli autori

Corvo Lee è un Senior GenAI Labs Solutions Architect con sede a Londra. La sua passione è la progettazione e lo sviluppo di prototipi che utilizzano l'intelligenza artificiale generativa per risolvere i problemi dei clienti. Si tiene inoltre aggiornato sugli ultimi sviluppi nell'intelligenza artificiale generativa e nelle tecniche di recupero applicandole a scenari del mondo reale.

Ahmed Ewis è un Senior Solutions Architect presso AWS GenAI Labs e aiuta i clienti a creare prototipi di intelligenza artificiale generativa per risolvere problemi aziendali. Quando non collabora con i clienti, gli piace giocare con i suoi figli e cucinare.

Chris Pecora è un generative AI Data Scientist presso Amazon Web Services. La sua passione è creare prodotti e soluzioni innovativi, concentrandosi anche sulla scienza ossessionata dal cliente. Quando non esegue esperimenti e non si tiene aggiornato sugli ultimi sviluppi di GenAI, ama passare il tempo con i suoi figli.

spot_img

L'ultima intelligenza

spot_img

Parla con noi

Ciao! Come posso aiutarla?