Esplorazione delle opzioni di sintesi per il settore sanitario con Amazon SageMaker
Esplorazione opzioni sintesi per settore sanitario con Amazon SageMaker
Nel panorama sanitario in continua evoluzione di oggi, i medici si trovano di fronte a una vasta quantità di dati clinici provenienti da varie fonti, come appunti degli operatori sanitari, cartelle cliniche e referti di imaging. Questa ricchezza di informazioni, sebbene essenziale per la cura dei pazienti, può essere anche travolgente e richiedere molto tempo per i professionisti medici per selezionare e analizzare. Riassumere ed estrarre informazioni da questi dati in modo efficiente è fondamentale per una migliore cura del paziente e per prendere decisioni consapevoli. Le informazioni riassunte sui pazienti possono essere utili per una serie di processi successivi, come l’aggregazione dei dati, la codifica efficace dei pazienti o la raggruppamento dei pazienti con diagnosi simili per la revisione.
L’intelligenza artificiale (AI) e i modelli di Machine Learning (ML) hanno dimostrato un grande potenziale nel affrontare queste sfide. I modelli possono essere addestrati per analizzare e interpretare grandi volumi di dati testuali, condensando efficacemente le informazioni in riassunti concisi. Automatizzando il processo di riassunto, i medici possono accedere rapidamente alle informazioni pertinenti, consentendo loro di concentrarsi sulla cura dei pazienti e prendere decisioni più informate. Leggi lo studio di caso seguente per saperne di più su un caso reale.
Amazon SageMaker, un servizio di ML completamente gestito, fornisce una piattaforma ideale per ospitare e implementare vari modelli e approcci di riassunto basati su AI/ML. In questo post, esploreremo diverse opzioni per implementare tecniche di riassunto su SageMaker, inclusi l’uso dei modelli fondamentali di Amazon SageMaker JumpStart, il fine-tuning dei modelli pre-addestrati di Hugging Face e la creazione di modelli di riassunto personalizzati. Discuteremo anche i pro e i contro di ciascun approccio, consentendo ai professionisti sanitari di scegliere la soluzione più adatta per generare riassunti concisi e accurati di complessi dati clinici.
Due termini importanti da conoscere prima di iniziare: pre-addestramento e fine-tuning. Un modello pre-addestrato o fondamentale è un modello che è stato costruito e addestrato su un ampio corpus di dati, tipicamente per conoscenze generali del linguaggio. Il fine-tuning è il processo mediante il quale un modello pre-addestrato viene fornito con un altro dataset più specifico del dominio al fine di migliorare le sue prestazioni su un compito specifico. In un contesto sanitario, ciò significherebbe fornire al modello alcuni dati che includono frasi e terminologia specifica della cura dei pazienti.
- Open-sourcing del codice di Knowledge Distillation e dei pesi di SD-Small e SD-Tiny
- Generazione pratica di asset 3D Una guida passo passo
- Misurare la creatività dell’IA
Costruire modelli di riassunto personalizzati su SageMaker
Anche se è l’approccio più impegnativo, alcune organizzazioni potrebbero preferire di costruire modelli di riassunto personalizzati su SageMaker da zero. Questo approccio richiede una conoscenza più approfondita dei modelli di AI/ML e potrebbe comportare la creazione di un’architettura di modello da zero o l’adattamento di modelli esistenti per soddisfare esigenze specifiche. La creazione di modelli personalizzati può offrire una maggiore flessibilità e controllo sul processo di riassunto, ma richiede anche più tempo e risorse rispetto agli approcci che partono da modelli pre-addestrati. È essenziale valutare attentamente i vantaggi e gli svantaggi di questa opzione prima di procedere, poiché potrebbe non essere adatta a tutti i casi d’uso.
Modelli fondamentali JumpStart di SageMaker
Un’ottima opzione per implementare il riassunto su SageMaker è utilizzare i modelli fondamentali JumpStart. Questi modelli, sviluppati da importanti organizzazioni di ricerca sull’IA, offrono una serie di modelli di linguaggio pre-addestrati ottimizzati per varie attività, tra cui il riassunto del testo. SageMaker JumpStart fornisce due tipi di modelli fondamentali: modelli proprietari e modelli open-source. SageMaker JumpStart offre anche l’eleggibilità HIPAA, rendendolo utile per i carichi di lavoro sanitari. Alla fine spetta al cliente garantire la conformità, quindi assicurati di prendere le misure appropriate. Per ulteriori dettagli, consulta la documentazione “Architettura per la sicurezza e la conformità HIPAA su Amazon Web Services”.
Modelli fondamentali proprietari
I modelli proprietari, come i modelli Jurassic di AI21 e il modello Cohere Generate di Cohere, possono essere scoperti tramite SageMaker JumpStart sulla Console di Gestione di AWS e sono attualmente in anteprima. Utilizzare modelli proprietari per il riassunto è ideale quando non è necessario il fine-tuning del modello su dati personalizzati. Questo offre una soluzione pronta all’uso che può soddisfare i requisiti di riassunto con una configurazione minima. Utilizzando le capacità di questi modelli pre-addestrati, è possibile risparmiare tempo e risorse che altrimenti sarebbero stati impiegati per l’addestramento e il fine-tuning di un modello personalizzato. Inoltre, i modelli proprietari di solito sono dotati di API e SDK facili da usare, semplificando il processo di integrazione con i sistemi e le applicazioni esistenti. Se le tue esigenze di riassunto possono essere soddisfatte da modelli proprietari pre-addestrati senza richiedere personalizzazioni o fine-tuning specifici, offrono una soluzione comoda, conveniente ed efficiente per i tuoi compiti di riassunto del testo. Poiché questi modelli non sono addestrati specificamente per casi d’uso sanitari, la qualità non può essere garantita per il linguaggio medico senza il fine-tuning.
Jurassic-2 Grande Instruct è un grande modello di linguaggio (LLM) sviluppato da AI21 Labs, ottimizzato per le istruzioni in linguaggio naturale e applicabile a varie attività linguistiche. Offre un’API e un SDK facili da usare, bilanciando qualità e convenienza. I suoi utilizzi popolari includono la generazione di testi di marketing, l’alimentazione di chatbot e il riassunto del testo.
Nella console di SageMaker, vai su SageMaker JumpStart, trova il modello AI21 Jurassic-2 Grande Instruct e scegli Prova il modello.
Se desideri distribuire il modello su un endpoint di SageMaker che gestisci, puoi seguire i passaggi di questo notebook di esempio, che mostra come distribuire Jurassic-2 Large usando SageMaker.
Modelli di base open-source
I modelli open-source includono i modelli FLAN T5, Bloom e GPT-2 che possono essere scoperti tramite SageMaker JumpStart nell’interfaccia utente di Amazon SageMaker Studio, SageMaker JumpStart nella console di SageMaker e le API di SageMaker JumpStart. Questi modelli possono essere messi a punto e distribuiti su endpoint nel tuo account AWS, garantendoti la piena proprietà dei pesi del modello e dei codici di script.
Flan-T5 XL è un modello potente e versatile progettato per una vasta gamma di compiti linguistici. Ottimizzando le prestazioni del modello per il tuo caso d’uso specifico, ad esempio la sintesi del testo o qualunque altro compito di elaborazione del linguaggio naturale (NLP), puoi ottimizzare le prestazioni del modello con i tuoi dati specifici del dominio. Per informazioni su come ottimizzare Flan-T5 XL utilizzando l’interfaccia utente di SageMaker Studio, consulta l’istruzione sull’ottimizzazione dei modelli FLAN T5 XL con Amazon SageMaker Jumpstart.
Ottimizzazione dei modelli pre-addestrati con Hugging Face su SageMaker
Una delle opzioni più popolari per implementare la sintesi su SageMaker è l’ottimizzazione dei modelli pre-addestrati utilizzando la libreria Hugging Face Transformers. Hugging Face fornisce una vasta gamma di modelli di trasformazione pre-addestrati progettati appositamente per vari compiti di elaborazione del linguaggio naturale (NLP), inclusa la sintesi del testo. Con la libreria Hugging Face Transformers, puoi facilmente ottimizzare questi modelli pre-addestrati utilizzando i tuoi dati specifici del dominio tramite SageMaker. Questo approccio presenta diversi vantaggi, come tempi di addestramento più rapidi, migliori prestazioni su domini specifici e un’imballaggio e distribuzione del modello più semplice utilizzando gli strumenti e i servizi integrati di SageMaker. Se non riesci a trovare un modello adatto su SageMaker JumpStart, puoi scegliere qualsiasi modello offerto da Hugging Face e ottimizzarlo tramite SageMaker.
Per iniziare a lavorare con un modello per conoscere le capacità di ML, tutto ciò che devi fare è aprire SageMaker Studio, trovare un modello pre-addestrato che desideri utilizzare nell’Hugging Face Model Hub e scegliere SageMaker come metodo di distribuzione. Hugging Face ti fornirà il codice da copiare, incollare ed eseguire nel tuo notebook. È semplice come quello! Non è richiesta alcuna esperienza di ingegneria di ML.
La libreria Hugging Face Transformers consente agli sviluppatori di operare sui modelli pre-addestrati e svolgere attività avanzate come l’ottimizzazione, che esploreremo nelle sezioni seguenti.
Fornitura di risorse
Prima di iniziare, è necessario fornire un notebook. Per le istruzioni, consulta i passaggi 1 e 2 in Costruisci e addestra un modello di machine learning localmente. Per questo esempio, abbiamo utilizzato le impostazioni mostrate nella seguente schermata.
È inoltre necessario creare un bucket di Amazon Simple Storage Service (Amazon S3) per archiviare i dati di addestramento e gli artefatti di addestramento. Per le istruzioni, consulta la creazione di un bucket.
Preparare il dataset
Per ottimizzare il nostro modello con una migliore conoscenza del dominio, è necessario ottenere dati adatti al compito. Quando si addestra per un caso d’uso aziendale, è necessario eseguire una serie di attività di ingegneria dei dati per preparare i propri dati per l’addestramento. Queste attività sono al di fuori dello scopo di questo post. Per questo esempio, abbiamo generato alcuni dati sintetici per emulare le note infermieristiche e li abbiamo archiviati in Amazon S3. Archiviando i nostri dati in Amazon S3, siamo in grado di progettare i nostri carichi di lavoro in conformità a HIPAA. Iniziamo ottenendo quelle note e caricandole nell’istanza in cui viene eseguito il nostro notebook:
from datasets import load_dataset
dataset = load_dataset("csv", data_files={
"train": "s3://" + bucket_name + train_data_path,
"validation": "s3://" + bucket_name + test_data_path
})
Le note sono composte da una colonna che contiene l’intera voce, note, e una colonna che contiene una versione abbreviata che esemplifica quale dovrebbe essere il nostro output desiderato, riassunto. Lo scopo di utilizzare questo dataset è quello di migliorare il vocabolario biologico e medico del nostro modello in modo che sia più attento a riassumere in un contesto sanitario, chiamato raffinamento di dominio, e mostrare al nostro modello come strutturare il suo output riassunto. In alcuni casi di riassunto, potremmo voler creare un abstract di un articolo o una sinossi di una recensione, ma in questo caso stiamo cercando di ottenere che il nostro modello produca una versione abbreviata dei sintomi e delle azioni intraprese finora per un paziente.
Carica il modello
Il modello che usiamo come base è una versione di Google’s Pegasus, resa disponibile nell’Hugging Face Hub, chiamata pegasus-xsum. È già pre-addestrato per il riassunto, quindi il nostro processo di raffinamento può concentrarsi sull’estensione delle sue conoscenze di dominio. La libreria Transformer ci fornisce una classe per caricare la definizione del modello dal nostro model_checkpoint: google/pegasus-xsum
. Questo caricherà il modello dal hub e lo istanzierà nel nostro notebook in modo da poterlo utilizzare in seguito. Poiché pegasus-xsum
è un modello di sequenza-a-sequenza, vogliamo utilizzare il tipo Seq2Seq della classe AutoModel:
from transformers import AutoModelForSeq2SeqLM
model = AutoModelForSeq2SeqLM.from_pretrained(model_checkpoint)
Ora che abbiamo il nostro modello, è tempo di concentrarci sugli altri componenti che ci permetteranno di eseguire il nostro ciclo di addestramento.
Crea un tokenizer
Il primo di questi componenti è il tokenizer. La tokenizzazione è il processo mediante il quale le parole dei dati di input vengono trasformate in rappresentazioni numeriche che il nostro modello può comprendere. Ancora una volta, la libreria Transformer fornisce una classe per caricare una definizione di tokenizer dallo stesso checkpoint che abbiamo utilizzato per istanziare il modello:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(model_checkpoint)
Con questo oggetto tokenizer, possiamo creare una funzione di pre-elaborazione e mapparla sul nostro dataset per ottenere i token pronti per essere alimentati al modello. Infine, formattiamo l’output tokenizzato e rimuoviamo le colonne contenenti il nostro testo originale, perché il modello non sarà in grado di interpretarle. Ora ci ritroviamo con un input tokenizzato pronto per essere alimentato al modello. Vedere il seguente codice:
tokenized_datasets = dataset.map(preprocess_function, batched=True)
tokenized_datasets.set_format("torch")
tokenized_datasets = tokenized_datasets.remove_columns(
dataset["train"].column_names
)
Crea un data collator e un optimizer
Con i nostri dati tokenizzati e il nostro modello istanziato, siamo quasi pronti per eseguire un ciclo di addestramento. I prossimi componenti che vogliamo creare sono il data collator e l’optimizer. Il data collator è un’altra classe fornita da Hugging Face attraverso la libreria Transformers, che utilizziamo per creare batch dei nostri dati tokenizzati per l’addestramento. Possiamo costruirlo facilmente utilizzando gli oggetti tokenizer e modello che abbiamo già, semplicemente trovando la classe corrispondente che abbiamo utilizzato in precedenza per il nostro modello (Seq2Seq) per la classe del collator. La funzione dell’optimizer è mantenere lo stato di addestramento e aggiornare i parametri in base alla nostra perdita di addestramento mentre lavoriamo nel ciclo. Per creare un optimizer, possiamo importare il pacchetto optim dal modulo torch, dove sono disponibili diversi algoritmi di ottimizzazione. Alcuni comuni che potresti aver incontrato in precedenza sono la discesa del gradiente stocastico e Adam, quest’ultimo viene applicato nel nostro esempio. Il costruttore di Adam prende in input i parametri del modello e il tasso di apprendimento parametrizzato per l’esecuzione di addestramento specifica. Vedere il seguente codice:
from transformers import DataCollatorForSeq2Seq
from torch.optim import Adam
data_collator = DataCollatorForSeq2Seq(tokenizer, model=model)
optimizer = Adam(model.parameters(), lr=learning_rate)
Costruisci l’acceleratore e il scheduler del tasso di apprendimento
Gli ultimi passaggi prima di poter iniziare l’addestramento consistono nel costruire l’acceleratore e il scheduler del tasso di apprendimento. L’acceleratore proviene da una libreria diversa (abbiamo principalmente utilizzato Transformers) prodotta da Hugging Face, chiamata Accelerate, e astrarrà la logica necessaria per gestire i dispositivi durante l’addestramento (ad esempio, utilizzando più GPU). Per l’ultimo componente, torniamo all’utile libreria Transformers per implementare il nostro scheduler del tasso di apprendimento. Specificando il tipo di scheduler, il numero totale di passaggi di addestramento nel nostro ciclo e l’optimizer creato in precedenza, la funzione get_scheduler
restituisce un oggetto che ci permette di regolare il nostro tasso di apprendimento iniziale durante il processo di addestramento:
from accelerate import Accelerator
from transformers import get_scheduler
accelerator = Accelerator()
model, optimizer = accelerator.prepare(
model, optimizer
)
lr_scheduler = get_scheduler(
"linear",
optimizer=optimizer,
num_warmup_steps=0,
num_training_steps=num_training_steps,
)
Configurare un lavoro di addestramento
Ora siamo completamente pronti per l’addestramento! Configuriamo un lavoro di addestramento, iniziando istanziando training_args utilizzando la libreria Transformers e scegliendo i valori dei parametri. Possiamo passare questi, insieme agli altri componenti e al dataset preparati, direttamente al trainer e iniziare l’addestramento, come mostrato nel codice seguente. A seconda delle dimensioni del tuo dataset e dei parametri scelti, potrebbe richiedere un tempo significativo.
from transformers import Seq2SeqTrainer
from transformers import Seq2SeqTrainingArguments
training_args = Seq2SeqTrainingArguments(
output_dir="output/",
save_total_limit=1,
num_train_epochs=num_train_epochs,
per_device_train_batch_size=batch_size,
per_device_eval_batch_size=batch_size,
evaluation_strategy="epoch",
logging_dir="output/",
load_best_model_at_end=True,
disable_tqdm=True,
logging_first_step=True,
logging_steps=1,
save_strategy="epoch",
predict_with_generate=True
)
trainer = Seq2SeqTrainer(
model=model,
tokenizer=tokenizer,
args=training_args,
train_dataset=tokenized_datasets["train"],
eval_dataset=tokenized_datasets["validation"],
data_collator=data_collator,
optimizers=(optimizer, lr_scheduler)
)
trainer.train()
Per operazionalizzare questo codice, possiamo confezionarlo come un file di punto di accesso e chiamarlo attraverso un lavoro di addestramento SageMaker. Ciò ci consente di separare la logica appena costruita dalla chiamata di addestramento e consente a SageMaker di eseguire l’addestramento su un’istanza separata.
Confezionare il modello per l’infereza
Dopo aver eseguito l’addestramento, l’oggetto del modello è pronto per essere utilizzato per l’infereza. Come pratica consigliata, salviamo il nostro lavoro per utilizzi futuri. Dobbiamo creare i nostri artefatti del modello, comprimerli insieme e caricare il nostro tarball su Amazon S3 per lo storage. Per preparare il nostro modello per la compressione, dobbiamo decomporre il modello ora tarato, quindi salvare il binario del modello e i file di configurazione associati. Dobbiamo anche salvare il nostro tokenizer nella stessa directory in cui abbiamo salvato gli artefatti del modello in modo che sia disponibile quando utilizziamo il modello per l’infereza. La nostra cartella model_dir
dovrebbe avere un aspetto simile al seguente codice:
config.json pytorch_model.bin tokenizer_config.json
generation_config.json special_tokens_map.json tokenizer.json
Tutto ciò che resta è eseguire un comando tar per comprimere la nostra directory e caricare il file tar.gz su Amazon S3:
unwrapped_model = accelerator.unwrap_model(trainer.model)
unwrapped_model.save_pretrained('model_dir', save_function=accelerator.save)
tokenizer.save_pretrained('model_dir')
!cd model_dir/ && tar -czvf model.tar.gz *
!mv model_dir/model.tar.gz ./
with open("model.tar.gz", "rb") as f:
s3.upload_fileobj(f, bucket_name, artifact_path + "model/model.tar.gz")
Il nostro modello appena tarato è ora pronto e disponibile per essere utilizzato per l’infereza.
Eseguire l’infereza
Per utilizzare questo artefatto del modello per l’infereza, apri un nuovo file e utilizza il seguente codice, modificando il parametro model_data
per adattarlo alla posizione di salvataggio dell’artefatto in Amazon S3. Il costruttore HuggingFaceModel
ricostruirà il nostro modello dal checkpoint che abbiamo salvato in model.tar.gz
, che possiamo quindi distribuire per l’infereza utilizzando il metodo deploy. Il deploy dell’endpoint richiederà alcuni minuti.
from sagemaker.huggingface import HuggingFaceModel
from sagemaker import get_execution_role
role = get_execution_role()
huggingface_model = HuggingFaceModel(
model_data=”s3://{bucket_name}/{artifact_path}/model/model.tar.gz”,
role=role,
transformers_version=”4.26”,
pytorch_version=”1.13”,
py_version=”py39”
)
predictor = huggingface_model.deploy(
initial_instance_count=1,
instance_type=”ml.m5.xlarge”
)
Dopo che l’endpoint è stato distribuito, possiamo utilizzare il predictor che abbiamo creato per testarlo. Passa il metodo predict
un payload di dati ed esegui la cella, otterrai la risposta dal tuo modello appena tarato:
data = {
"inputs": "Testo da riassumere"
}
predictor.predict(data)
Risultati
Per vedere i benefici del fine-tuning di un modello, facciamo un test rapido. La tabella seguente include un prompt e i risultati ottenuti passando quel prompt al modello prima e dopo il fine-tuning.
Prompt | Risposta senza Fine-Tuning | Risposta con Fine-Tuning |
Riassumere i sintomi che il paziente sta sperimentando. Il paziente è un uomo di 45 anni con lamentele di dolore toracico retrosternale che si irradia al braccio sinistro. Il dolore è insorto improvvisamente mentre faceva lavori in giardino, associato a lieve dispnea e diaforesi. All’arrivo la frequenza cardiaca del paziente era di 120, la frequenza respiratoria di 24, la pressione arteriosa di 170/95. Elettrocardiogramma a 12 derivazioni effettuato all’arrivo al pronto soccorso e somministrazione di tre nitroglicerine sublinguali senza sollievo dal dolore toracico. L’elettrocardiogramma mostra elevazione del tratto ST nelle derivazioni anteriori che indica un infarto miocardico acuto anteriore. Abbiamo contattato il laboratorio di cateterismo cardiaco e ci stiamo preparando per il cateterismo cardiaco da parte del cardiologo. | Presentiamo un caso di infarto miocardico acuto. | Dolore toracico, infarto miocardico anteriore, PCI. |
Come puoi vedere, il nostro modello con il fine-tuning utilizza la terminologia medica in modo diverso e siamo riusciti a cambiare la struttura della risposta per adattarla alle nostre esigenze. Nota che i risultati dipendono dal tuo dataset e dalle scelte di progettazione effettuate durante l’addestramento. La tua versione del modello potrebbe offrire risultati molto diversi.
Pulizia
Quando hai finito con il tuo notebook SageMaker, assicurati di spegnerlo per evitare costi derivanti da risorse in esecuzione prolungata. Nota che spegnere l’istanza comporterà la perdita di tutti i dati memorizzati nella memoria effimera dell’istanza, quindi dovresti salvare tutto il tuo lavoro in uno storage persistente prima di procedere alla pulizia. Dovrai anche andare alla pagina Endpoint sulla console di SageMaker e eliminare tutti gli endpoint implementati per l’elaborazione. Per rimuovere tutti gli artefatti, dovrai anche andare alla console di Amazon S3 per eliminare i file caricati nel tuo bucket.
Conclusioni
In questo post, abbiamo esplorato varie opzioni per implementare tecniche di riassunto del testo su SageMaker per aiutare i professionisti sanitari a elaborare ed estrarre informazioni da grandi quantità di dati clinici in modo efficiente. Abbiamo discusso dell’utilizzo dei modelli di base di SageMaker Jumpstart, del fine-tuning di modelli pre-addestrati di Hugging Face e della costruzione di modelli personalizzati di riassunto. Ogni approccio ha i suoi vantaggi e svantaggi, adattandosi a diverse esigenze e requisiti.
La costruzione di modelli personalizzati di riassunto su SageMaker consente molta flessibilità e controllo, ma richiede più tempo e risorse rispetto all’utilizzo di modelli pre-addestrati. I modelli di base di SageMaker Jumpstart offrono una soluzione facile da usare e conveniente per le organizzazioni che non richiedono personalizzazioni specifiche o fine-tuning, oltre a alcune opzioni per il fine-tuning semplificato. Il fine-tuning di modelli pre-addestrati di Hugging Face offre tempi di addestramento più veloci, migliori prestazioni specifiche del dominio e integrazione senza soluzione di continuità con gli strumenti e i servizi di SageMaker in un’ampia gamma di modelli, ma richiede un certo sforzo di implementazione. Al momento della scrittura di questo post, Amazon ha annunciato un’altra opzione, Amazon Bedrock, che offrirà funzionalità di riassunto in un ambiente ancora più gestito.
Comprendendo i pro e i contro di ciascun approccio, i professionisti sanitari e le organizzazioni possono prendere decisioni informate sulla soluzione più adatta per generare riassunti concisi e accurati di complessi dati clinici. Alla fine, l’utilizzo di modelli di riassunto basati su AI/ML su SageMaker può migliorare significativamente l’assistenza ai pazienti e la presa di decisioni, consentendo ai professionisti medici di accedere rapidamente a informazioni rilevanti e concentrarsi sulla fornitura di cure di qualità.
Risorse
Per lo script completo discusso in questo post e alcuni dati di esempio, fare riferimento al repository GitHub. Per ulteriori informazioni su come eseguire carichi di lavoro di apprendimento automatico su AWS, consultare le seguenti risorse:
- Workshop di Hugging Face su Amazon SageMaker
- Esempi di Hugging Face Transformers su Amazon SageMaker
- Technology Innovation Institute addestra il modello di base Falcon LLM 40B all’avanguardia su Amazon SageMaker
- Addestramento di modelli di linguaggio di grandi dimensioni su Amazon SageMaker: Best practice
- Come Forethought risparmia oltre il 66% dei costi per modelli di AI generativi usando Amazon SageMaker