Le piattaforme di social media forniscono ai consumatori un canale di comunicazione per parlare di vari prodotti, compresi i farmaci che assumono. Per le aziende farmaceutiche, il monitoraggio e il monitoraggio efficace delle prestazioni del prodotto forniscono il feedback dei clienti sul prodotto, che è vitale per mantenere e migliorare la sicurezza del paziente. Tuttavia, quando si verifica un evento medico imprevisto derivante dalla somministrazione di un prodotto farmaceutico, viene classificato come evento avverso (AE). Ciò include errori terapeutici, reazioni avverse ai farmaci, reazioni allergiche e overdose. Gli eventi avversi possono verificarsi ovunque: negli ospedali, nelle strutture di assistenza a lungo termine e nelle strutture ambulatoriali.
L'obiettivo di questo post è fornire un esempio che mostri come utilizzare Amazon Sage Maker e modelli di trasformatore pre-addestrati per rilevare gli eventi avversi menzionati sui social media. Il modello viene messo a punto su dati specifici del dominio per eseguire un'attività di classificazione del testo. Usiamo anche Amazon QuickSight per creare un dashboard di monitoraggio. È importante sottolineare che questo post richiede un account sviluppatore Twitter per ottenere tweet. Ai fini di questa dimostrazione, utilizziamo solo tweet pubblicamente disponibili. Sebbene la privacy e la governance dei dati non siano discusse esplicitamente in questo post, gli utenti dovrebbero considerare questi processi e risorse utili possono essere trovate in Mercato AWS e attraverso in primo piano Soluzioni dei partner AWS per la governance dei dati. A seguito di questa dimostrazione, abbiamo cancellato tutti i dati utilizzati.
Questo post ha lo scopo di supportare le attività globali di farmacovigilanza per i clienti farmaceutici e delle scienze della vita a livello globale, sebbene l'architettura di riferimento possa essere implementata per qualsiasi cliente. Il modello è addestrato all'identificazione di eventi avversi e può essere applicato ai domini delle biotecnologie, della sanità e delle scienze della vita.
Panoramica della soluzione
Il seguente diagramma dell'architettura illustra il flusso di lavoro della soluzione.
Il flusso di lavoro include i seguenti passaggi:
- Addestra un modello di classificazione utilizzando l'addestramento di SageMaker e distribuisci il modello addestrato a un endpoint utilizzando l'inferenza in tempo reale di SageMaker.
- Creare un AWS Cloud9 ascoltatore di streaming.
- Memorizza i tweet dal vivo in Amazon DynamoDB.
- Utilizza DynamoDB Streams per l'attivazione AWS Lambda per richiamare l'endpoint SageMaker per la classificazione e la chiamata AE Amazon comprende medica per rilevare i sintomi e fornire ICD-10 descrizioni.
- Salva i tweet con la loro classificazione AE e i sintomi in Servizio di archiviazione semplice Amazon (Amazon S3) e utilizzare il Colla AWS Catalogo dati per creare viste tabella.
- Analizza i dati da Amazon S3 utilizzando Amazzone Atena.
- Crea una dashboard QuickSight per monitorare i tweet e il loro stato AE.
Configurare l'ambiente e implementare la soluzione
Abbiamo creato un modello per l'app di rilevamento degli eventi avversi utilizzando il file Kit di sviluppo cloud AWS (AWS CDK), un framework di sviluppo software open source per definire le risorse dell'applicazione cloud. Completare i seguenti passaggi per eseguire la soluzione end-to-end:
- Clona il file Repository GitHub alla tua macchina locale configurata con il tuo account AWS e dotata di Interfaccia della riga di comando di AWS (AWS CLI) installato o in un ambiente AWS Cloud9 all'interno del tuo account AWS:
Dopo aver clonato il repository di codice, puoi avviare il processo di distribuzione.
- Passare alla directory del progetto e creare un ambiente virtuale all'interno di questo progetto archiviato in
.venv
directory. Per creare manualmente un ambiente virtuale su macOS o Linux, utilizza il seguente codice: - Dopo aver creato l'ambiente virtuale, attivare l'ambiente virtuale:
- Dopo aver attivato l'ambiente virtuale, installare le dipendenze richieste:
- A questo punto, ora puoi sintetizzare il file AWS CloudFormazione modello:
cdk synth
genera il modello CloudFormation in formato JSON e altri file di asset necessari per la rotazione delle risorse. Questi file sono memorizzati nel formato cdk.out
directory. Il cdk deploy
comando quindi distribuisce lo stack nel tuo account AWS. Distribuisci due stack: uno è uno stack di bucket S3 e l'altro è lo stack principale dell'app per eventi avversi. Lo stack dell'app principale deve essere distribuito dopo che lo stack Amazon S3 è stato distribuito correttamente. In caso di problemi durante il processo di distribuzione, fare riferimento a Risoluzione dei problemi comuni di AWS CDK.
Dopo che AWS CDK è stato distribuito correttamente, è necessario addestrare e distribuire un modello. Sul Notebook pagina della console SageMaker, dovresti trovare un'istanza notebook denominata AdverseEventDetectionModeling
. Quando esegui l'intero notebook (AE_model_train_deploy.ipynb), viene avviato un processo di addestramento SageMaker e il modello viene distribuito a un endpoint SageMaker. I dati di addestramento del modello in questa esercitazione si basano su Reazione avversa al farmaco set di dati da Abbracciare il viso ma può essere sostituito con qualsiasi altro set di dati.
Addestra e distribuisci un modello di trasformatore per la classificazione degli eventi avversi
Perfezioniamo i modelli di trasformatore all'interno del Libreria Hugging Face per la classificazione degli eventi avversi (AE). Il lavoro di addestramento viene creato utilizzando lo stimatore PyTorch di SageMaker. Per la distribuzione del modello, utilizziamo PyTorch Model Server. In questa sezione, esaminiamo i passaggi principali per l'addestramento e la distribuzione del modello.
Preparazione dei dati
Utilizziamo i dati sulle reazioni avverse ai farmaci (ade_corpus_v2) all'interno del set di dati Hugging Face come dati di addestramento e convalida. La struttura dei dati richiesta per l'addestramento e l'inferenza del nostro modello ha due colonne:
- Una colonna per il contenuto di testo come dati di input del modello.
- Un'altra colonna per la classe etichetta. Abbiamo due possibili classi per un testo: la
Not_AE
classe e ilAdverse_Event
classe.
Scarichiamo il set di dati non elaborato e lo suddividiamo in set di dati di addestramento (80%) e di convalida (20%), rinominiamo le colonne di input e di destinazione in text
ed label
rispettivamente, e caricali su Amazon S3:
Il nostro modello accetta anche la classificazione multiclasse, quindi puoi portare il tuo set di dati per l'addestramento del modello.
Allenamento modello
Utilizziamo lo stimatore PyTorch integrato di SageMaker per mettere a punto i modelli di trasformatore. Lo script del punto di ingresso ./src/hf_train_deploy.py
ha la train()
funzione per l'addestramento del modello.
Abbiamo aggiunto un requirements.txt
file all'interno della cartella di origine dello script ./src
per un elenco dei pacchetti richiesti. Quando avvii i processi di addestramento di SageMaker, il contenitore SageMaker PyTorch cerca automaticamente un file requirements.txt
file nella cartella di origine dello script e utilizza pip install
per installare i pacchetti elencati in quel file.
Oltre alla dimensione del batch, alla lunghezza della sequenza, al tasso di apprendimento, puoi anche specificare il file model_name
per scegliere qualsiasi modello di trasformatore supportato nell'elenco dei modelli preaddestrati di Hugging Face AutoModelForSequenceClassification
. Anche i nomi delle colonne per il testo e l'etichetta devono essere specificati tramite il file text_column
ed label_column
parametri.
Il codice seguente è un esempio di impostazione degli iperparametri per l'addestramento del modello:
Quindi lanciamo il lavoro di formazione:
Distribuzione del modello
Possiamo distribuire direttamente il modello addestrato PyTorch utilizzando l'inferenza in tempo reale di SageMaker su un endpoint purché le seguenti funzioni prerequisite siano fornite all'interno dello script del punto di ingresso hf_train_deploy.py
:
model_fn(model_dir)
per caricare un oggetto modelloinput_fn(request_body, request_content_type)
per caricare un testo di input e tokenizzare il testopredict_fn(input_data, model)
per la previsione del modello che restituisce il valore di probabilità per ogni classe
Distribuiamo il modello su un endpoint SageMaker per l'inferenza in tempo reale con il seguente codice:
Modello che serve
Dopo aver creato l'endpoint SageMaker, possiamo invocare l'endpoint per l'inferenza del modello in tempo reale tramite servizi come Lambda:
Imposta il listener di streaming dell'API di Twitter per lo streaming di dati in tempo reale
Durante l'iniziale cdk deploy
processo, AWS CDK dovrebbe aver creato un ambiente AWS Cloud9 nel tuo account e clonato il repository di codice nell'ambiente. Utilizziamo AWS Cloud9 per ospitare il listener di streaming dell'API di Twitter per lo streaming di dati in tempo reale.
Il listener di flusso dell'API di Twitter è composto da quanto segue:
- stream_config.py – Parametri che autenticano l'API di Twitter e un elenco predeterminato di nomi di farmaci da cercare
- flusso.py – Utilizzato principalmente per mantenere attivo il flusso, ma affronta anche altre funzionalità, come l'elaborazione degli attributi condivisi dagli utenti e la valutazione se le menzioni dei farmaci corrispondono a quelle fornite in
stream_config.py
Il passaggio successivo consiste nell'impostare il listener di flusso dell'API di Twitter. Dopo aver ottenuto le chiavi consumer e i token di autenticazione dal portale per sviluppatori di Twitter, accedi ad AWS Cloud9 in stream_config.py e fornisci le seguenti informazioni:
- Inserisci le credenziali dell'API di Twitter.
- Aggiungi nomi di farmaci e regole di interesse per ottenere tweet associati; abbiamo fornito un esempio di nomi di farmaci nel codice.
- entrare
aws_access_key_id
edaws_secret_access_key
, Rispettivamente. - Tornando al terminale AWS Cloud9, esegui i seguenti comandi per installare i pacchetti necessari e scaricarli
en_core_web_sm
: - Per attivare il listener del flusso API, esegui il seguente comando (assicurati di essere nel file
ae-blog-cdk
cartella):
Eseguire l'inferenza e la scansione dei risultati della previsione del modello
Quando lo stream listener è attivo, i dati dei tweet in entrata vengono archiviati nella tabella DynamoDB ae_tweets_ddb
.
La funzione Lambda è attivata da Stream di Amazon DynamoDB e richiama l'endpoint del modello distribuito dalla fase SageMaker. La funzione fornisce l'inferenza attraverso l'endpoint distribuito di SageMaker HF-BERT-AE-model
classificare i tweet in arrivo come eventi avversi o meno.
Per tutti i tweet classificati come eventi avversi, viene utilizzata l'API Amazon Comprehend Medical per ottenere entità che rilevano segni, sintomi e diagnosi di condizioni mediche, insieme all'elenco dei codici e delle descrizioni ICD-10. Per semplicità, estraiamo le entità in base al punteggio massimo. Il codice e la descrizione dell'ICD-10 ci permettono di raggruppare i sintomi in un concetto più normalizzato (per maggiori informazioni, vedi Collegamento ICD-10-CM). Vedi il seguente codice:
La funzione Lambda elabora i tweet e invia previsioni, entità associate e codici ICD-10 alla cartella del bucket S3 lambda_predictions
.
Il Crawler di AWS Glue s3_tweets_crawler
viene creato per eseguire la scansione delle previsioni in Amazon S3 e popolare il Data Catalog, dove il file database s3_tweets_db
e tavolo lambda_predictions
sono creati.
Visualizza i dati elaborati in forma tabellare utilizzando Amazon Athena
Per fornire alle parti interessate una visione olistica dei tweet, puoi utilizzare Athena per interrogare i risultati da Amazon S3 (collegato dal catalogo dati di AWS Glue) ed espandere per creare dashboard personalizzati utilizzando QuickSight.
- Se è la prima volta che utilizzi Athena, imposta una posizione per salvare le query in una posizione Amazon S3.
- Altrimenti, configura a
s3_tweets_db
come mostrato nel modello di formazione. - Scegliere il
lambda_predictions
tavolo e scegli Anteprima tabella per generare una parte dei tuoi tweet elaborati.
Lo screenshot seguente è un comando SQL personalizzato per visualizzare in anteprima i tweet associati a un particolare concetto.
Crea una dashboard con Amazon QuickSight
La creazione del dashboard QuickSight ti consente di completare completamente una pipeline end-to-end che pubblica le analisi e le inferenze dai nostri modelli. Ad alto livello in QuickSight, importi i dati utilizzando Athena e individui il database e la tabella Athena che sono collegati al tuo bucket S3. Assicurati che l'account dell'utente abbia Gestione dell'identità e dell'accesso di AWS (IAM) per accedere ad Athena e Amazon S3 quando si utilizza QuickSight.
- Sulla console QuickSight, selezionare Dataset nel pannello di navigazione.
- Scegli Nuovo set di dati.
- Scegli Athena come origine dati.
- Nel Nome dell'origine dati, inserisci un nome.
- Quando richiesto, scegli il database e la tabella che contengono i tweet elaborati tramite la funzione Lambda.
- Scegli Usa SQL personalizzato.
- Cambiare il Nuovo SQL personalizzato nome a
TweetsData
(o la tua scelta del nome). - Immettere la seguente query SQL:
- Scegli Modifica/Anteprima dati.
- Seleziona Importa SPICE per un'analisi più rapida.
Si consiglia di importare i dati utilizzando SPICE (Super-fast, Parallel, In-memory Calculation Engine). Al momento dell'importazione, puoi modificare e visualizzare i dati, nonché modificare il tipo di colonna di dati o rinominare le colonne in base alle tue immagini. Inoltre, il set di dati SPICE può essere aggiornato su un programma, e garantire abbastanza Capacità SPEZIE è in atto per incorrere in addebiti per l'aggiornamento dei dati.
Dopo che i dati sono stati importati, puoi iniziare a sviluppare l'analisi sotto forma di elementi visivi insieme a azioni personalizzate per il filtraggio e la navigazione per rendere i pannelli più interattivi. Infine, puoi pubblicare la dashboard sviluppata da condividere. Lo screenshot seguente mostra visualizzazioni personalizzate di esempio.
ripulire
Tornando allo stack AWS CDK, puoi eseguire il file cdk destroy --all
comando per ripulire tutte le risorse utilizzate durante questo tutorial. Se per qualsiasi motivo il comando non viene eseguito correttamente, puoi accedere alla console AWS CloudFormation ed eliminare manualmente lo stack. Inoltre, se hai creato una dashboard utilizzando i dati di questo post, elimina manualmente l'origine dati e la dashboard associata all'interno di QuickSight.
Conclusione
Con l'espansione dello sviluppo di nuovi farmaci aumenta il numero di eventi avversi associati, eventi che devono essere monitorati e segnalati in modo responsabile ed efficiente. Questo post ha dettagliato una soluzione end-to-end che utilizza SageMaker per creare e distribuire un modello di classificazione, Amazon Comprehend Medical per dedurre i tweet e Quicksight per rilevare possibili eventi avversi dai prodotti farmaceutici. Questa soluzione aiuta a sostituire la laboriosa revisione manuale con un processo di machine learning automatizzato. Per saperne di più su Amazon SageMaker, per favore visita la pagina web.
Informazioni sugli autori
Prithiviraj Jothikumar, PhD, è Data Scientist presso AWS Professional Services, dove aiuta i clienti a creare soluzioni utilizzando il machine learning. Gli piace guardare film e sport e passare il tempo a meditare.
JasonZhu è un Sr. Data Scientist con AWS Professional Services, dove guida la creazione di applicazioni di machine learning a livello aziendale per i clienti. Nel tempo libero ama stare all'aria aperta e accrescere le sue capacità di cuoco.
Rosa Sole è un consulente per i servizi professionali presso Amazon Web Services. Al di fuori del lavoro, le piace passeggiare sotto la pioggia, dipingere ritratti e abbracciare il suo cane.
Sai Sharanya Nalla è un Data Scientist presso AWS Professional Services. Lavora con i clienti per sviluppare e implementare soluzioni AI e ML su AWS. Nel tempo libero le piace ascoltare podcast e audiolibri, fare lunghe passeggiate e impegnarsi in attività di sensibilizzazione.
Shuai Cao è un Data Scientist nel team dei servizi professionali di Amazon Web Services. La sua esperienza consiste nella creazione di applicazioni di apprendimento automatico su larga scala per i clienti del settore sanitario e delle scienze biologiche. Al di fuori del lavoro, ama viaggiare per il mondo e suonare decine di strumenti diversi.
- '
- "
- &
- 100
- 11
- 7
- 9
- accesso
- Il mio account
- attivo
- attività
- AES
- AI
- Tutti
- Amazon
- Amazon Comprehend
- Amazon Sage Maker
- Amazon Web Services
- .
- api
- App
- Applicazioni
- applicazioni
- architettura
- in giro
- attività
- Autenticazione
- Automatizzata
- apprendimento automatico automatizzato
- AWS
- biotech
- stile di vita
- costruire
- Costruzione
- chiamata
- che
- oneri
- classificazione
- Cloud
- codice
- Colonna
- Uncommon
- Comunicazione
- Aziende
- fiducia
- consulente
- Consumer
- Consumatori
- Contenitore
- contenuto
- Credenziali
- Clienti
- cruscotto
- dati
- scienziato di dati
- Banca Dati
- distruggere
- rivelazione
- sviluppare
- Costruttori
- Mercato
- domini
- droga
- farmaci
- endpoint
- Ambiente
- Evento
- eventi
- Espandere
- espansione
- Faccia
- In primo piano
- Nome
- prima volta
- Per i consumatori
- modulo
- formato
- Contesto
- function
- Idiota
- la governance
- Crescita
- assistenza sanitaria
- qui
- Alta
- ospedali
- Come
- Tutorial
- HTTPS
- IAM
- Identità
- importazione
- Compreso
- informazioni
- interattivo
- interesse
- sicurezza
- IT
- Lavoro
- Offerte di lavoro
- Tasti
- grandi
- lanciare
- IMPARARE
- apprendimento
- Livello
- Life Sciences
- linea
- linux
- Lista
- Ascolto
- elenchi
- locale
- località
- Lunghi
- machine learning
- macos
- maggiore
- partita
- Media
- medicale
- medicazione
- menziona
- ML
- modello
- monitoraggio
- Film
- nomi
- Navigazione
- Altro
- all'aperto
- pittura
- partner
- performance
- Pharmaceutical
- Piattaforme
- Podcast
- Portale
- predizione
- Previsioni
- Anteprima
- Privacy
- Prodotto
- Prodotti
- progetto
- Python
- pytorch
- Crudo
- reazione
- reazioni
- tempo reale
- Requisiti
- Risorse
- risposta
- Risultati
- norme
- Correre
- Sicurezza
- sagemaker
- Scala
- SCIENZE
- Cerca
- Servizi
- set
- regolazione
- condiviso
- Segni
- Un'espansione
- Taglia
- So
- Social
- Social Media
- Software
- lo sviluppo del software
- Soluzioni
- Spendere
- dividere
- Sports
- SQL
- inizia a
- Stato dei servizi
- conservazione
- Streaming
- supporto
- supportato
- sistema
- Target
- il mondo
- tempo
- Tokens
- Tracking
- Training
- lezione
- Tweet
- us
- utenti
- APPREZZIAMO
- Visualizza
- virtuale
- sito web
- servizi web
- entro
- Lavora
- flusso di lavoro
- lavori
- mondo