Uno dei modelli applicativi più utili per i carichi di lavoro di intelligenza artificiale generativa è il Retrieval Augmented Generation (RAG). Nel modello RAG, troviamo pezzi di contenuto di riferimento relativi a un prompt di input eseguendo ricerche di somiglianza sugli incorporamenti. Gli incorporamenti catturano il contenuto informativo nei corpi di testo, consentendo ai modelli di elaborazione del linguaggio naturale (NLP) di funzionare con il linguaggio in forma numerica. Gli incorporamenti sono solo vettori di numeri in virgola mobile, quindi possiamo analizzarli per rispondere a tre domande importanti: i nostri dati di riferimento cambiano nel tempo? Le domande che gli utenti pongono cambiano nel tempo? E infine, quanto bene i nostri dati di riferimento coprono le domande poste?
In questo post imparerai alcune considerazioni sull'incorporamento dell'analisi vettoriale e sul rilevamento dei segnali di incorporamento della deriva. Poiché gli incorporamenti sono un'importante fonte di dati per i modelli PNL in generale e per le soluzioni di intelligenza artificiale generativa in particolare, abbiamo bisogno di un modo per misurare se i nostri incorporamenti cambiano nel tempo (deriva). In questo post vedrai un esempio di esecuzione del rilevamento della deriva sui vettori incorporati utilizzando una tecnica di clustering con modelli linguistici di grandi dimensioni (LLMS) distribuiti da JumpStart di Amazon SageMaker. Potrai anche esplorare questi concetti attraverso due esempi forniti, inclusa un'applicazione di esempio end-to-end o, facoltativamente, un sottoinsieme dell'applicazione.
Panoramica di RAG
Il Modello RAG ti consente di recuperare conoscenza da fonti esterne, come documenti PDF, articoli wiki o trascrizioni di chiamate, e quindi utilizzare tale conoscenza per aumentare la richiesta di istruzioni inviata a LLM. Ciò consente al LLM di fare riferimento a informazioni più rilevanti durante la generazione di una risposta. Ad esempio, se chiedi a un LLM come preparare i biscotti con gocce di cioccolato, puoi includere informazioni dalla tua libreria di ricette. In questo modello, il testo della ricetta viene convertito in vettori di incorporamento utilizzando un modello di incorporamento e archiviato in un database di vettori. Le domande in arrivo vengono convertite in incorporamenti e quindi il database vettoriale esegue una ricerca di somiglianza per trovare contenuti correlati. La domanda e i dati di riferimento vengono quindi inseriti nel prompt per il LLM.
Diamo uno sguardo più da vicino ai vettori di incorporamento che vengono creati e a come eseguire l'analisi della deriva su tali vettori.
Analisi sui vettori di incorporamento
I vettori di incorporamento sono rappresentazioni numeriche dei nostri dati, quindi l'analisi di questi vettori può fornire informazioni sui nostri dati di riferimento che possono essere successivamente utilizzati per rilevare potenziali segnali di deriva. I vettori di incorporamento rappresentano un elemento nello spazio n-dimensionale, dove n è spesso grande. Ad esempio, il modello GPT-J 6B, utilizzato in questo post, crea vettori di dimensione 4096. Per misurare la deriva, supponiamo che la nostra applicazione acquisisca i vettori di incorporamento sia per i dati di riferimento che per i prompt in entrata.
Iniziamo eseguendo la riduzione delle dimensioni utilizzando l'analisi delle componenti principali (PCA). PCA tenta di ridurre il numero di dimensioni preservando la maggior parte della varianza nei dati. In questo caso, proviamo a trovare il numero di dimensioni che preservi il 95% della varianza, che dovrebbe catturare qualsiasi cosa entro due deviazioni standard.
Quindi utilizziamo K-Means per identificare un insieme di centri di cluster. K-Means cerca di raggruppare i punti insieme in cluster in modo tale che ciascun cluster sia relativamente compatto e i cluster siano il più distanti possibile l'uno dall'altro.
Calcoliamo le seguenti informazioni in base all'output del clustering mostrato nella figura seguente:
- Il numero di dimensioni nella PCA che spiegano il 95% della varianza
- La posizione di ciascun centro del cluster, o baricentro
Inoltre, esaminiamo la proporzione (maggiore o minore) di campioni in ciascun cluster, come mostrato nella figura seguente.
Infine, utilizziamo questa analisi per calcolare quanto segue:
- Inerzia – L'inerzia è la somma delle distanze quadrate rispetto ai centroidi del cluster, che misura quanto bene i dati sono stati raggruppati utilizzando le medie K.
- Punteggio della sagoma – Il punteggio silhouette è una misura per la validazione della coerenza all'interno dei cluster e varia da -1 a 1. Un valore vicino a 1 significa che i punti in un cluster sono vicini agli altri punti nello stesso cluster e lontani dal punti degli altri cluster. Una rappresentazione visiva del punteggio della silhouette può essere vista nella figura seguente.
Possiamo acquisire periodicamente queste informazioni per istantanee degli incorporamenti sia per i dati di riferimento di origine che per i prompt. L'acquisizione di questi dati ci consente di analizzare potenziali segnali di deriva da incorporamento.
Rilevamento della deriva dell'incorporamento
Periodicamente, possiamo confrontare le informazioni del clustering tramite istantanee dei dati, che includono gli incorporamenti dei dati di riferimento e gli incorporamenti dei prompt. Innanzitutto, possiamo confrontare il numero di dimensioni necessarie per spiegare il 95% della variazione nei dati di incorporamento, nell'inerzia e nel punteggio della silhouette del lavoro di clustering. Come puoi vedere nella tabella seguente, rispetto a una linea di base, l'ultima istantanea degli incorporamenti richiede 39 dimensioni in più per spiegare la varianza, indicando che i nostri dati sono più dispersi. L’inerzia è aumentata, indicando che i campioni sono complessivamente più lontani dai centri dei cluster. Inoltre, il punteggio della silhouette è diminuito, indicando che i cluster non sono così ben definiti. Per i dati tempestivi, ciò potrebbe indicare che i tipi di domande che entrano nel sistema coprono più argomenti.
Successivamente, nella figura seguente, possiamo vedere come la proporzione dei campioni in ciascun cluster è cambiata nel tempo. Questo può mostrarci se i nostri dati di riferimento più recenti sono sostanzialmente simili al set precedente o coprono nuove aree.
Infine, possiamo vedere se i centri dei cluster si stanno muovendo, il che mostrerebbe una deriva nelle informazioni nei cluster, come mostrato nella tabella seguente.
Copertura dei dati di riferimento per le domande in arrivo
Possiamo anche valutare quanto bene i nostri dati di riferimento si allineano alle domande in arrivo. Per fare ciò, assegniamo ogni incorporamento di prompt a un cluster di dati di riferimento. Calcoliamo la distanza da ciascun prompt al centro corrispondente e osserviamo la media, la mediana e la deviazione standard di tali distanze. Possiamo memorizzare tali informazioni e vedere come cambiano nel tempo.
La figura seguente mostra un esempio di analisi della distanza tra l'incorporamento del prompt e i data center di riferimento nel tempo.
Come puoi vedere, le statistiche sulla distanza media, mediana e deviazione standard tra gli incorporamenti dei prompt e i data center di riferimento diminuiscono tra la linea di base iniziale e lo snapshot più recente. Sebbene il valore assoluto della distanza sia difficile da interpretare, possiamo utilizzare le tendenze per determinare se la sovrapposizione semantica tra i dati di riferimento e le domande in arrivo migliora o peggiora nel tempo.
Applicazione di esempio
Per raccogliere i risultati sperimentali discussi nella sezione precedente, abbiamo creato un'applicazione di esempio che implementa il modello RAG utilizzando modelli di incorporamento e generazione distribuiti tramite SageMaker JumpStart e ospitati su Amazon Sage Maker endpoint in tempo reale.
L'applicazione ha tre componenti principali:
- Utilizziamo un flusso interattivo, che include un'interfaccia utente per l'acquisizione di prompt, combinato con un livello di orchestrazione RAG, utilizzando LangChain.
- Il flusso di elaborazione dei dati estrae i dati dai documenti PDF e crea incorporamenti in cui vengono archiviati Servizio Amazon OpenSearch. Li utilizziamo anche nel componente finale di analisi della deriva di incorporamento dell'applicazione.
- Gli incorporamenti vengono catturati Servizio di archiviazione semplice Amazon (Amazon S3) tramite Firehose dati Amazon Kinesis, ed eseguiamo una combinazione di Colla AWS processi di estrazione, trasformazione e caricamento (ETL) e notebook Jupyter per eseguire l'analisi di incorporamento.
Il diagramma seguente illustra l'architettura end-to-end.
Il codice di esempio completo è disponibile su GitHub. Il codice fornito è disponibile in due diversi modelli:
- Esempio di applicazione full-stack con un frontend Streamlit – Fornisce un'applicazione end-to-end, inclusa un'interfaccia utente che utilizza Streamlit per acquisire prompt, combinata con il livello di orchestrazione RAG, utilizzando LangChain in esecuzione su Servizio di container elastici Amazon (Amazon ECS) con AWS Fargate
- Applicazione di back-end – Per coloro che non desiderano distribuire l'intero stack dell'applicazione, è possibile scegliere facoltativamente di distribuire solo il backend Kit di sviluppo cloud AWS (AWS CDK), quindi utilizzare il notebook Jupyter fornito per eseguire l'orchestrazione RAG utilizzando LangChain
Per creare i modelli forniti, sono necessari diversi prerequisiti dettagliati nelle sezioni seguenti, a partire dalla distribuzione dei modelli generativi e di incorporamento del testo per poi passare ai prerequisiti aggiuntivi.
Distribuisci modelli tramite SageMaker JumpStart
Entrambi i modelli presuppongono l'implementazione di un modello di incorporamento e di un modello generativo. Per questo, distribuirai due modelli da SageMaker JumpStart. Il primo modello, GPT-J 6B, viene utilizzato come modello di incorporamento e il secondo modello, Falcon-40b, viene utilizzato per la generazione del testo.
Puoi distribuire ciascuno di questi modelli tramite SageMaker JumpStart da Console di gestione AWS, Amazon Sage Maker Studioo a livello di codice. Per ulteriori informazioni, fare riferimento a Come utilizzare i modelli di fondazione JumpStart. Per semplificare la distribuzione, è possibile utilizzare il file taccuino fornito derivato da taccuini creati automaticamente da SageMaker JumpStart. Questo notebook estrae i modelli dall'hub SageMaker JumpStart ML e li distribuisce su due endpoint in tempo reale SageMaker separati.
Il notebook di esempio dispone anche di una sezione di pulizia. Non eseguire ancora quella sezione perché eliminerà gli endpoint appena distribuiti. Completerai la pulizia alla fine della procedura dettagliata.
Dopo aver confermato la corretta distribuzione degli endpoint, sei pronto per distribuire l'applicazione di esempio completa. Tuttavia, se sei più interessato a esplorare solo il backend e i notebook di analisi, puoi facoltativamente distribuire solo quelli, come illustrato nella sezione successiva.
Opzione 1: distribuire solo l'applicazione backend
Questo modello consente di distribuire solo la soluzione back-end e di interagire con la soluzione utilizzando un notebook Jupyter. Utilizza questo modello se non vuoi creare l'interfaccia frontend completa.
Prerequisiti
Dovresti avere i seguenti prerequisiti:
- Un endpoint del modello SageMaker JumpStart distribuito – Distribuisci i modelli agli endpoint in tempo reale SageMaker utilizzando SageMaker JumpStart, come descritto in precedenza
- Parametri di distribuzione – Registrare quanto segue:
- Nome dell'endpoint del modello di testo – Il nome dell'endpoint del modello di generazione del testo distribuito con SageMaker JumpStart
- Nome dell'endpoint del modello di incorporamento – Il nome dell'endpoint del modello di incorporamento distribuito con SageMaker JumpStart
Distribuisci le risorse utilizzando AWS CDK
Utilizza i parametri di distribuzione annotati nella sezione precedente per distribuire lo stack AWS CDK. Per ulteriori informazioni sull'installazione di AWS CDK, fare riferimento a Nozioni di base su AWS CDK.
Assicurati che Docker sia installato e in esecuzione sulla workstation che verrà utilizzata per la distribuzione di AWS CDK. Fare riferimento a Ottieni Docker per ulteriori indicazioni.
In alternativa, è possibile immettere i valori di contesto in un file chiamato cdk.context.json
nel pattern1-rag/cdk
directory ed eseguire cdk deploy BackendStack --exclusively
.
La distribuzione stamperà gli output, alcuni dei quali saranno necessari per eseguire il notebook. Prima di iniziare a fare domande e rispondere, incorporare i documenti di riferimento, come mostrato nella sezione successiva.
Incorpora documenti di riferimento
Per questo approccio RAG, i documenti di riferimento vengono prima incorporati con un modello di incorporamento del testo e archiviati in un database vettoriale. In questa soluzione è stata creata una pipeline di ingestione che accetta documenti PDF.
An Cloud di calcolo elastico di Amazon (Amazon EC2) è stata creata un'istanza per l'acquisizione di documenti PDF e un file File system elastico Amazon (Amazon EFS) è montato sull'istanza EC2 per salvare i documenti PDF. UN Sincronizzazione dati AWS l'attività viene eseguita ogni ora per recuperare i documenti PDF trovati nel percorso del file system EFS e caricarli su un bucket S3 per avviare il processo di incorporamento del testo. Questo processo incorpora i documenti di riferimento e salva gli incorporamenti nel servizio OpenSearch. Inoltre, salva un archivio di incorporamento in un bucket S3 tramite Kinesis Data Firehose per un'analisi successiva.
Per importare i documenti di riferimento, completare i seguenti passaggi:
- Recupera l'ID dell'istanza EC2 di esempio creata (vedi l'output di AWS CDK
JumpHostId
) e connettersi utilizzando Session Manager, una capacità di Gestore di sistemi AWS. Per istruzioni, fare riferimento a Connettiti alla tua istanza Linux con AWS Systems Manager Session Manager. - Vai alla directory
/mnt/efs/fs1
, che è il punto in cui è montato il file system EFS, e crea una cartella denominataingest
: - Aggiungi i tuoi documenti PDF di riferimento al file
ingest
directory.
L'attività DataSync è configurata per caricare tutti i file trovati in questa directory su Amazon S3 per avviare il processo di incorporamento.
L'attività DataSync viene eseguita secondo una pianificazione oraria; puoi facoltativamente avviare l'attività manualmente per avviare immediatamente il processo di incorporamento per i documenti PDF aggiunti.
- Per avviare l'attività, individua l'ID dell'attività dall'output di AWS CDK
DataSyncTaskID
ed iniziare l'attività con valori predefiniti.
Dopo aver creato gli incorporamenti, è possibile avviare la domanda RAG e la risposta tramite un notebook Jupyter, come mostrato nella sezione successiva.
Domande e risposte utilizzando un notebook Jupyter
Completa i seguenti passi:
- Recupera il nome dell'istanza del notebook SageMaker dall'output di AWS CDK
NotebookInstanceName
e connettiti a JupyterLab dalla console SageMaker. - Vai alla directory
fmops/full-stack/pattern1-rag/notebooks/
. - Apri ed esegui il notebook
query-llm.ipynb
nell'istanza del notebook per eseguire domande e risposte utilizzando RAG.
Assicurati di usare il conda_python3
kernel per il notebook.
Questo modello è utile per esplorare la soluzione backend senza la necessità di fornire prerequisiti aggiuntivi richiesti per l'applicazione full-stack. La sezione successiva riguarda l'implementazione di un'applicazione full-stack, inclusi sia i componenti frontend che backend, per fornire un'interfaccia utente per interagire con la tua applicazione di intelligenza artificiale generativa.
Opzione 2: distribuire l'applicazione di esempio full-stack con un frontend Streamlit
Questo modello consente di distribuire la soluzione con un'interfaccia frontend utente per domande e risposte.
Prerequisiti
Per distribuire l'applicazione di esempio, è necessario disporre dei seguenti prerequisiti:
- Endpoint del modello SageMaker JumpStart distribuito – Distribuisci i modelli ai tuoi endpoint in tempo reale SageMaker utilizzando SageMaker JumpStart, come descritto nella sezione precedente, utilizzando i notebook forniti.
- Zona ospitata di Amazon Route 53 - Creare un Amazon percorso 53 zona ospitata pubblica da utilizzare per questa soluzione. Puoi anche utilizzare una zona ospitata pubblica Route 53 esistente, ad esempio
example.com
. - Certificato di gestione certificati AWS – Disposizione an Gestore certificati AWS (ACM) Certificato TLS per il nome di dominio della zona ospitata Route 53 e i relativi sottodomini applicabili, ad esempio
example.com
ed*.example.com
per tutti i sottodomini. Per istruzioni, fare riferimento a Richiesta di un certificato pubblico. Questo certificato viene utilizzato per configurare HTTPS Amazon CloudFront e il bilanciatore del carico di origine. - Parametri di distribuzione – Registrare quanto segue:
- Nome di dominio personalizzato dell'applicazione frontend – Un nome di dominio personalizzato utilizzato per accedere all'applicazione di esempio frontend. Il nome di dominio fornito viene utilizzato per creare un record DNS Route 53 che punta alla distribuzione CloudFront frontend; Per esempio,
app.example.com
. - Nome di dominio personalizzato dell'origine del bilanciatore del carico – Un nome di dominio personalizzato utilizzato per l'origine del sistema di bilanciamento del carico della distribuzione CloudFront. Il nome di dominio fornito viene utilizzato per creare un record DNS Route 53 che punta al bilanciatore del carico di origine; Per esempio,
app-lb.example.com
. - ID zona ospitata Route 53 – L'ID della zona ospitata Route 53 per ospitare i nomi di dominio personalizzati forniti; Per esempio,
ZXXXXXXXXYYYYYYYYY
. - Nome della zona ospitata Route 53 – Il nome della zona ospitata Route 53 per ospitare i nomi di dominio personalizzati forniti; Per esempio,
example.com
. - Certificato ACM ARN – L'ARN del certificato ACM da utilizzare con il dominio personalizzato fornito.
- Nome dell'endpoint del modello di testo – Il nome dell'endpoint del modello di generazione del testo distribuito con SageMaker JumpStart.
- Nome dell'endpoint del modello di incorporamento – Il nome dell'endpoint del modello di incorporamento distribuito con SageMaker JumpStart.
- Nome di dominio personalizzato dell'applicazione frontend – Un nome di dominio personalizzato utilizzato per accedere all'applicazione di esempio frontend. Il nome di dominio fornito viene utilizzato per creare un record DNS Route 53 che punta alla distribuzione CloudFront frontend; Per esempio,
Distribuisci le risorse utilizzando AWS CDK
Utilizza i parametri di distribuzione annotati nei prerequisiti per distribuire lo stack AWS CDK. Per ulteriori informazioni, fare riferimento a Nozioni di base su AWS CDK.
Assicurati che Docker sia installato e in esecuzione sulla workstation che verrà utilizzata per la distribuzione di AWS CDK.
Nel codice precedente, -c rappresenta un valore di contesto, sotto forma di prerequisiti richiesti, forniti in input. In alternativa, è possibile immettere i valori di contesto in un file chiamato cdk.context.json
nel pattern1-rag/cdk
directory ed eseguire cdk deploy --all
.
Tieni presente che specifichiamo la regione nel file bin/cdk.ts
. La configurazione dei log di accesso ALB richiede una regione specifica. Puoi modificare questa regione prima della distribuzione.
La distribuzione stamperà l'URL per accedere all'applicazione Streamlit. Prima di poter avviare domande e risposte, è necessario incorporare i documenti di riferimento, come mostrato nella sezione successiva.
Incorpora i documenti di riferimento
Per un approccio RAG, i documenti di riferimento vengono prima incorporati con un modello di incorporamento del testo e archiviati in un database vettoriale. In questa soluzione è stata creata una pipeline di ingestione che accetta documenti PDF.
Come discusso nella prima opzione di distribuzione, è stata creata un'istanza EC2 di esempio per l'acquisizione di documenti PDF e un file system EFS è montato sull'istanza EC2 per salvare i documenti PDF. Ogni ora viene eseguita un'attività DataSync per recuperare i documenti PDF trovati nel percorso del file system EFS e caricarli su un bucket S3 per avviare il processo di incorporamento del testo. Questo processo incorpora i documenti di riferimento e salva gli incorporamenti nel servizio OpenSearch. Inoltre, salva un archivio di incorporamento in un bucket S3 tramite Kinesis Data Firehose per un'analisi successiva.
Per importare i documenti di riferimento, completare i seguenti passaggi:
- Recupera l'ID dell'istanza EC2 di esempio creata (vedi l'output di AWS CDK
JumpHostId
) e connettersi utilizzando Session Manager. - Vai alla directory
/mnt/efs/fs1
, che è il punto in cui è montato il file system EFS, e crea una cartella denominataingest
: - Aggiungi i tuoi documenti PDF di riferimento al file
ingest
directory.
L'attività DataSync è configurata per caricare tutti i file trovati in questa directory su Amazon S3 per avviare il processo di incorporamento.
L'attività DataSync viene eseguita secondo una pianificazione oraria. Facoltativamente, puoi avviare l'attività manualmente per avviare immediatamente il processo di incorporamento per i documenti PDF aggiunti.
- Per avviare l'attività, individua l'ID dell'attività dall'output di AWS CDK
DataSyncTaskID
ed iniziare l'attività con valori predefiniti.
Domanda e risposta
Dopo aver incorporato i documenti di riferimento, è possibile avviare la domanda e la risposta RAG visitando l'URL per accedere all'applicazione Streamlit. UN Amazzonia Cognito viene utilizzato il livello di autenticazione, pertanto è necessario creare un account utente nel pool di utenti Amazon Cognito distribuito tramite AWS CDK (vedere l'output di AWS CDK per il nome del pool di utenti) per il primo accesso all'applicazione. Per istruzioni sulla creazione di un utente Amazon Cognito, fare riferimento a Creazione di un nuovo utente nella Console di gestione AWS.
Incorpora l'analisi della deriva
In questa sezione viene mostrato come eseguire l'analisi della deriva creando innanzitutto una baseline degli incorporamenti dei dati di riferimento e dei prompt, quindi creando uno snapshot degli incorporamenti nel tempo. Ciò consente di confrontare gli incorporamenti della linea di base con gli incorporamenti degli snapshot.
Creare una base di incorporamento per i dati di riferimento e il prompt
Per creare una base di incorporamento dei dati di riferimento, apri la console AWS Glue e seleziona il processo ETL embedding-drift-analysis
. Impostare i parametri per il lavoro ETL come segue ed eseguire il lavoro:
- Impostato
--job_type
aBASELINE
. - Impostato
--out_table
Vai all’email Amazon DynamoDB tabella per i dati di incorporamento di riferimento. (Vedi l'output di AWS CDKDriftTableReference
per il nome della tabella.) - Impostato
--centroid_table
alla tabella DynamoDB per i dati del centroide di riferimento. (Vedi l'output di AWS CDKCentroidTableReference
per il nome della tabella.) - Impostato
--data_path
al bucket S3 con il prefisso; Per esempio,s3://
/embeddingarchive/
. (Vedi l'output di AWS CDKBucketName
per il nome del bucket.)
Allo stesso modo, utilizzando il lavoro ETL embedding-drift-analysis
, creare una linea di base di incorporamento dei prompt. Impostare i parametri per il lavoro ETL come segue ed eseguire il lavoro:
- Impostato
--job_type
aBASELINE
- Impostato
--out_table
alla tabella DynamoDB per richiedere l'incorporamento dei dati. (Vedi l'output di AWS CDKDriftTablePromptsName
per il nome della tabella.) - Impostato
--centroid_table
alla tabella DynamoDB per i dati del centroide del prompt. (Vedi l'output di AWS CDKCentroidTablePrompts
per il nome della tabella.) - Impostato
--data_path
al bucket S3 con il prefisso; Per esempio,s3://
/promptarchive/
. (Vedi l'output di AWS CDKBucketName
per il nome del bucket.)
Creare uno snapshot di incorporamento per i dati di riferimento e il prompt
Dopo aver inserito ulteriori informazioni nel servizio OpenSearch, esegui il processo ETL embedding-drift-analysis
di nuovo per eseguire lo snapshot degli incorporamenti dei dati di riferimento. I parametri saranno gli stessi del lavoro ETL eseguito per creare la base di incorporamento dei dati di riferimento come mostrato nella sezione precedente, ad eccezione dell'impostazione di --job_type
parametro SNAPSHOT
.
Allo stesso modo, per eseguire lo snapshot degli incorporamenti dei prompt, eseguire il lavoro ETL embedding-drift-analysis
Ancora. I parametri saranno gli stessi del lavoro ETL eseguito per creare la linea di base di incorporamento per i prompt come mostrato nella sezione precedente, ad eccezione dell'impostazione di --job_type
parametro SNAPSHOT
.
Confronta la linea di base con l'istantanea
Per confrontare la baseline di incorporamento e lo snapshot per i dati di riferimento e i prompt, utilizzare il notebook fornito pattern1-rag/notebooks/drift-analysis.ipynb
.
Per esaminare il confronto di incorporamento per dati di riferimento o prompt, modificare le variabili del nome della tabella DynamoDB (tbl
ed c_tbl
) nel notebook nella tabella DynamoDB appropriata per ogni esecuzione del notebook.
La variabile del taccuino tbl
dovrebbe essere cambiato con il nome appropriato della tabella di deriva. Di seguito è riportato un esempio di dove configurare la variabile nel notebook.
I nomi delle tabelle possono essere recuperati come segue:
- Per i dati di incorporamento di riferimento, recupera il nome della tabella di deriva dall'output di AWS CDK
DriftTableReference
- Per la richiesta di incorporamento dei dati, recupera il nome della tabella di deriva dall'output di AWS CDK
DriftTablePromptsName
Inoltre, la variabile notebook c_tbl
dovrebbe essere cambiato nel nome della tabella del centroide appropriato. Di seguito è riportato un esempio di dove configurare la variabile nel notebook.
I nomi delle tabelle possono essere recuperati come segue:
- Per i dati di incorporamento di riferimento, recupera il nome della tabella del centroide dall'output di AWS CDK
CentroidTableReference
- Per la richiesta di incorporamento dei dati, recupera il nome della tabella del centroide dall'output di AWS CDK
CentroidTablePrompts
Analizzare la distanza del prompt dai dati di riferimento
Innanzitutto, esegui il lavoro AWS Glue embedding-distance-analysis
. Questo lavoro scoprirà a quale cluster, dalla valutazione K-Means degli incorporamenti di dati di riferimento, appartiene ciascun prompt. Quindi calcola la media, la mediana e la deviazione standard della distanza da ciascun prompt al centro del cluster corrispondente.
È possibile eseguire il notebook pattern1-rag/notebooks/distance-analysis.ipynb
per vedere le tendenze delle metriche di distanza nel tempo. Questo ti darà un'idea della tendenza generale nella distribuzione delle distanze di incorporamento immediato.
Il notebook pattern1-rag/notebooks/prompt-distance-outliers.ipynb
è un notebook AWS Glue che cerca valori anomali, che possono aiutarti a identificare se stai ricevendo più richieste non correlate ai dati di riferimento.
Monitorare i punteggi di somiglianza
Tutti i punteggi di somiglianza del servizio OpenSearch sono registrati Amazon Cloud Watch sotto il rag
spazio dei nomi. Il cruscotto RAG_Scores
mostra il punteggio medio e il numero totale di punteggi acquisiti.
ripulire
Per evitare di incorrere in addebiti futuri, elimina tutte le risorse che hai creato.
Elimina i modelli SageMaker distribuiti
Fare riferimento alla sezione di pulizia del file taccuino di esempio fornito per eliminare i modelli SageMaker JumpStart distribuiti oppure puoi farlo eliminare i modelli sulla console SageMaker.
Elimina le risorse AWS CDK
Se hai inserito i tuoi parametri in a cdk.context.json
file, ripulirlo come segue:
Se hai inserito i parametri nella riga di comando e hai distribuito solo l'applicazione backend (lo stack AWS CDK backend), pulisci come segue:
Se hai immesso i parametri sulla riga di comando e hai distribuito la soluzione completa (stack AWS CDK frontend e backend), pulisci come segue:
Conclusione
In questo post, abbiamo fornito un esempio funzionante di un'applicazione che cattura i vettori di incorporamento sia per i dati di riferimento che per i prompt nel modello RAG per l'intelligenza artificiale generativa. Abbiamo mostrato come eseguire l'analisi di clustering per determinare se i dati di riferimento o quelli di richiesta variano nel tempo e in che misura i dati di riferimento coprono i tipi di domande poste dagli utenti. Se rilevi una deriva, può fornire un segnale che l'ambiente è cambiato e che il tuo modello sta ricevendo nuovi input che potrebbe non essere ottimizzato per gestire. Ciò consente una valutazione proattiva del modello attuale rispetto al cambiamento degli input.
Informazioni sugli autori
Abdullahi Olaoye è Senior Solutions Architect presso Amazon Web Services (AWS). Abdullahi ha conseguito un MSC in Computer Networking presso la Wichita State University ed è un autore pubblicato che ha ricoperto ruoli in vari settori tecnologici come DevOps, modernizzazione delle infrastrutture e intelligenza artificiale. Attualmente si concentra sull'intelligenza artificiale generativa e svolge un ruolo chiave nell'assistere le aziende a progettare e costruire soluzioni all'avanguardia basate sull'intelligenza artificiale generativa. Al di là del regno della tecnologia, trova gioia nell'arte dell'esplorazione. Quando non crea soluzioni di intelligenza artificiale, gli piace viaggiare con la sua famiglia per esplorare nuovi posti.
Randy De Fauw è Senior Principal Solutions Architect presso AWS. Ha conseguito un MSEE presso l'Università del Michigan, dove ha lavorato alla visione artificiale per veicoli autonomi. Ha conseguito anche un MBA presso la Colorado State University. Randy ha ricoperto diverse posizioni nel settore tecnologico, dall'ingegneria del software alla gestione dei prodotti. In è entrato nello spazio dei Big Data nel 2013 e continua a esplorare quell'area. Sta lavorando attivamente a progetti nello spazio ML e ha presentato a numerose conferenze tra cui Strata e GlueCon.
Shelbee Eigenbrode è Principal AI and Machine Learning Specialist Solutions Architect presso Amazon Web Services (AWS). Si occupa di tecnologia da 24 anni coprendo diversi settori, tecnologie e ruoli. Attualmente si sta concentrando sulla combinazione del suo background DevOps e ML nel dominio di MLOps per aiutare i clienti a fornire e gestire carichi di lavoro ML su larga scala. Con oltre 35 brevetti concessi in vari domini tecnologici, ha una passione per l'innovazione continua e l'utilizzo dei dati per ottenere risultati aziendali. Shelbee è un co-creatore e istruttore della specializzazione Practical Data Science su Coursera. È anche co-direttore di Women In Big Data (WiBD), capitolo di Denver. Nel tempo libero le piace passare il tempo con la sua famiglia, gli amici e i cani iperattivi.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoData.Network Generativo verticale Ai. Potenzia te stesso. Accedi qui.
- PlatoAiStream. Intelligenza Web3. Conoscenza amplificata. Accedi qui.
- PlatoneESG. Carbonio, Tecnologia pulita, Energia, Ambiente, Solare, Gestione dei rifiuti. Accedi qui.
- Platone Salute. Intelligence sulle biotecnologie e sulle sperimentazioni cliniche. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/monitor-embedding-drift-for-llms-deployed-from-amazon-sagemaker-jumpstart/
- :ha
- :È
- :non
- :Dove
- $ SU
- 1
- 10
- 100
- 2013
- 24
- 35%
- 39
- 7
- 9
- 95%
- a
- capace
- WRI
- Assoluta
- accesso
- Il mio account
- ACM
- operanti in
- attivamente
- aggiunto
- aggiunta
- aggiuntivo
- Informazioni aggiuntive
- Inoltre
- ancora
- contro
- aggregato
- AI
- Allinea
- Tutti
- Consentire
- consente
- anche
- Sebbene il
- Amazon
- Amazzonia Cognito
- Amazon EC2
- Amazon Sage Maker
- JumpStart di Amazon SageMaker
- Amazon Web Services
- Amazon Web Services (AWS)
- an
- .
- analizzare
- l'analisi
- ed
- rispondere
- rispondere
- nulla
- applicabile
- Applicazioni
- approccio
- opportuno
- architettura
- Archivio
- SONO
- RISERVATA
- aree
- Arte
- news
- AS
- chiedere
- chiedendo
- assistere
- assumere
- At
- aumentare
- aumentata
- Autenticazione
- autore
- automaticamente
- autonomo
- veicoli autonomi
- disponibile
- media
- evitare
- lontano
- AWS
- Colla AWS
- BACKEND
- sfondo
- equilibratore
- basato
- Linea di base
- BE
- perché
- stato
- prima
- essendo
- appartiene
- Meglio
- fra
- Al di là di
- Big
- Big Data
- corpi
- entrambi
- in linea di massima
- costruire
- costruito
- affari
- by
- calcolare
- calcola
- chiamata
- detto
- Materiale
- capacità
- catturare
- catturato
- cattura
- Catturare
- Custodie
- CD
- centro
- centri
- a livello internazionale
- il cambiamento
- cambiato
- Modifiche
- cambiando
- Capitolo
- oneri
- patata fritta
- Cioccolato
- Scegli
- cavedano
- Chiudi
- più vicino
- Cloud
- Cluster
- il clustering
- codice
- Colorado
- combinazione
- combinato
- combinando
- arrivo
- compatto
- confrontare
- rispetto
- confronto
- completamento di una
- componente
- componenti
- Calcolare
- computer
- Visione computerizzata
- concetti
- conferenze
- configurato
- configurazione
- Connettiti
- Considerazioni
- consolle
- Contenitore
- contenuto
- contesto
- continua
- continuo
- convertito
- Cookies
- Nucleo
- Corrispondente
- copertura
- coperto
- copertura
- Copertine
- creare
- creato
- crea
- Creazione
- Corrente
- Attualmente
- costume
- Clienti
- bordo tagliente
- cruscotto
- dati
- data center
- elaborazione dati
- scienza dei dati
- Banca Dati
- defaults
- definito
- consegnare
- Denver
- schierare
- schierato
- distribuzione
- deployment
- Distribuisce
- derivato
- distruggere
- dettagliati
- individuare
- rivelazione
- Determinare
- Mercato
- deviazione
- diagramma
- diverso
- difficile
- Dimensioni
- dimensioni
- discusso
- dispersi
- distanza
- lontano
- distribuzione
- dns
- do
- docker
- documento
- documenti
- dominio
- Domain Name
- NOMI DI DOMINIO
- domini
- Dont
- giù
- guidare
- ogni
- incastrare
- incorporato
- incorporamento
- fine
- da un capo all'altro
- endpoint
- Ingegneria
- entrare
- inserito
- aziende
- Ambiente
- valutare
- valutazione
- Ogni
- esempio
- Esempi
- eccezione
- esistente
- sperimentale
- Spiegare
- esplorazione
- esplora
- Esplorare
- esterno
- estratto
- estratti
- famiglia
- lontano
- figura
- Compila il
- File
- finale
- Infine
- Trovate
- trova
- Nome
- galleggiante
- flusso
- concentrato
- messa a fuoco
- i seguenti
- segue
- Nel
- modulo
- essere trovato
- Fondazione
- amici
- da
- Frontend
- pieno
- futuro
- raccogliere
- Generale
- la generazione di
- ELETTRICA
- generativo
- AI generativa
- ottenere
- ottenere
- Dare
- Go
- andato
- concesso
- Gruppo
- guida
- maniglia
- Avere
- he
- Eroe
- Aiuto
- suo
- superiore
- il suo
- detiene
- host
- ospitato
- ora
- Come
- Tutorial
- Tuttavia
- HTML
- http
- HTTPS
- Hub
- ID
- identificare
- if
- illustra
- subito
- implementazione
- attrezzi
- importante
- in
- includere
- inclusi
- Compreso
- In arrivo
- indicare
- industrie
- inerzia
- informazioni
- Infrastruttura
- inizialmente
- Innovazione
- ingresso
- Ingressi
- intuizione
- installazione
- installato
- esempio
- istruzioni
- interagire
- si interagisce
- interattivo
- interessato
- Interfaccia
- ai miglioramenti
- IT
- SUO
- Lavoro
- Offerte di lavoro
- gioia
- jpg
- ad appena
- Le
- Kinesis Data Firehose
- conoscenze
- Lingua
- grandi
- dopo
- con i più recenti
- strato
- IMPARARE
- apprendimento
- Consente di
- Biblioteca
- piace
- linea
- linux
- LLM
- caricare
- località
- registrati
- Guarda
- SEMBRA
- inferiore
- macchina
- machine learning
- make
- gestire
- gestione
- direttore
- manualmente
- Maggio..
- significare
- si intende
- misurare
- analisi
- Metrica
- Michigan
- forza
- ML
- MLOp
- modello
- modelli
- Monitorare
- Scopri di più
- maggior parte
- in movimento
- multiplo
- devono obbligatoriamente:
- Nome
- nomi
- Naturale
- Elaborazione del linguaggio naturale
- Bisogno
- di applicazione
- che necessitano di
- internazionale
- New
- più nuovo
- GENERAZIONE
- nlp
- taccuino
- noto
- numero
- numeri
- numerose
- of
- di frequente
- on
- esclusivamente
- aprire
- ottimizzati
- Opzione
- or
- orchestrazione
- minimo
- origine
- Altro
- nostro
- su
- risultati
- delineato
- produzione
- uscite
- ancora
- complessivo
- sovrapposizione
- proprio
- parametro
- parametri
- particolare
- passione
- Brevetti
- sentiero
- Cartamodello
- modelli
- Eseguire
- esecuzione
- pezzi
- conduttura
- Partner
- Platone
- Platone Data Intelligence
- PlatoneDati
- gioca
- punto
- punti
- pool
- posizioni
- possibile
- Post
- potenziale
- alimentato
- Pratico
- precedente
- prerequisiti
- presentata
- preservare
- precedente
- in precedenza
- Direttore
- Stampa
- Proactive
- processi
- lavorazione
- Prodotto
- gestione del prodotto
- progetti
- istruzioni
- proporzione
- fornire
- purché
- fornisce
- fornitura
- la percezione
- pubblicato
- Maglioni
- domanda
- Domande
- straccio
- gamme
- che vanno
- pronto
- tempo reale
- regno
- ricetta
- record
- ridurre
- riduzione
- riferimento
- riferimento
- regione
- relazionato
- relativamente
- pertinente
- rappresentare
- rappresentazione
- rappresenta
- necessario
- richiede
- Risorse
- risposta
- Risultati
- richiamo
- Ruolo
- ruoli
- strada
- Correre
- running
- corre
- sagemaker
- stesso
- Risparmi
- Scala
- programma
- Scienze
- Punto
- Cerca
- Ricerche
- Secondo
- Sezione
- sezioni
- vedere
- visto
- select
- semantico
- anziano
- senso
- inviato
- separato
- servizio
- Servizi
- Sessione
- set
- regolazione
- alcuni
- lei
- dovrebbero
- mostrare attraverso le sue creazioni
- ha mostrato
- mostrato
- Spettacoli
- Signal
- Segnali
- simile
- Un'espansione
- semplificare
- Taglia
- Istantanea
- So
- Software
- Ingegneria del software
- soluzione
- Soluzioni
- alcuni
- Fonte
- fonti
- lo spazio
- tensione
- specialista
- specificato
- spendere
- Squared
- pila
- Stacks
- Standard
- inizia a
- iniziato
- Di partenza
- Regione / Stato
- statistica
- Passi
- conservazione
- Tornare al suo account
- memorizzati
- di successo
- tale
- sicuro
- sistema
- SISTEMI DI TRATTAMENTO
- tavolo
- Fai
- Task
- per l'esame
- Tecnologie
- Tecnologia
- testo
- che
- Il
- le informazioni
- L’ORIGINE
- loro
- Li
- poi
- Là.
- Strumenti Bowman per analizzare le seguenti finiture:
- questo
- quelli
- tre
- Attraverso
- tempo
- a
- insieme
- Argomenti
- Totale
- Trasformare
- Di viaggio
- Trend
- tendenze
- prova
- seconda
- Tipi di
- per
- Università
- URL
- us
- uso
- utilizzato
- utile
- Utente
- Interfaccia utente
- utenti
- utilizzando
- convalida
- APPREZZIAMO
- Valori
- variabile
- varietà
- vario
- Veicoli
- via
- visione
- visivo
- walkthrough
- volere
- Prima
- Modo..
- we
- sito web
- servizi web
- WELL
- quando
- se
- quale
- while
- volere
- con
- entro
- senza
- Donna
- Lavora
- lavorato
- lavoro
- stazione di lavoro
- peggio
- sarebbe
- anni
- ancora
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro
- zona