Δημιουργήστε αυτόματα εντυπώσεις από ευρήματα σε αναφορές ακτινολογίας χρησιμοποιώντας γενετική τεχνητή νοημοσύνη στο AWS | Υπηρεσίες Ιστού της Amazon

Δημιουργήστε αυτόματα εντυπώσεις από ευρήματα σε αναφορές ακτινολογίας χρησιμοποιώντας γενετική τεχνητή νοημοσύνη στο AWS | Υπηρεσίες Ιστού της Amazon

Οι ακτινολογικές αναφορές είναι περιεκτικά, μακροσκελή έγγραφα που περιγράφουν και ερμηνεύουν τα αποτελέσματα μιας ακτινολογικής απεικόνισης. Σε μια τυπική ροή εργασίας, ο ακτινολόγος επιβλέπει, διαβάζει και ερμηνεύει τις εικόνες και στη συνέχεια συνοψίζει συνοπτικά τα βασικά ευρήματα. Η περίληψη (ή εντυπώσεις) είναι το πιο σημαντικό μέρος της αναφοράς επειδή βοηθά τους κλινικούς ιατρούς και τους ασθενείς να εστιάσουν στα κρίσιμα περιεχόμενα της αναφοράς που περιέχουν πληροφορίες για τη λήψη κλινικών αποφάσεων. Η δημιουργία μιας σαφούς και εντυπωσιακής εντύπωσης απαιτεί πολύ περισσότερη προσπάθεια από την απλή επαναφορά των ευρημάτων. Η όλη διαδικασία είναι επομένως επίπονη, χρονοβόρα και επιρρεπής σε σφάλματα. Συχνά χρειάζονται χρόνια εκπαίδευση ώστε οι γιατροί να συγκεντρώσουν αρκετή τεχνογνωσία στη σύνταξη συνοπτικών και ενημερωτικών περιλήψεων ακτινολογικών εκθέσεων, υπογραμμίζοντας περαιτέρω τη σημασία της αυτοματοποίησης της διαδικασίας. Επιπλέον, αυτόματη δημιουργία σύνοψης ευρημάτων αναφοράς είναι κρίσιμης σημασίας για την ακτινολογική αναφορά. Επιτρέπει τη μετάφραση των αναφορών σε γλώσσα αναγνώσιμη από τον άνθρωπο, μειώνοντας έτσι το βάρος της ανάγνωσης των ασθενών μέσω μακροσκελής και σκοτεινών αναφορών.

Για να λύσουμε αυτό το πρόβλημα, προτείνουμε τη χρήση γενετικής τεχνητής νοημοσύνης, ενός τύπου τεχνητής νοημοσύνης που μπορεί να δημιουργήσει νέο περιεχόμενο και ιδέες, συμπεριλαμβανομένων συνομιλιών, ιστοριών, εικόνων, βίντεο και μουσικής. Το Generative AI τροφοδοτείται από μοντέλα μηχανικής μάθησης (ML)—πολύ μεγάλα μοντέλα που είναι προεκπαιδευμένα σε τεράστιες ποσότητες δεδομένων και συνήθως αναφέρονται ως μοντέλα θεμελίωσης (FM). Οι πρόσφατες εξελίξεις στην ML (συγκεκριμένα η εφεύρεση της αρχιτεκτονικής νευρωνικών δικτύων που βασίζεται σε μετασχηματιστή) έχουν οδηγήσει στην άνοδο μοντέλων που περιέχουν δισεκατομμύρια παραμέτρους ή μεταβλητές. Η προτεινόμενη λύση σε αυτήν την ανάρτηση χρησιμοποιεί τη βελτίωση των προεκπαιδευμένων μεγάλων γλωσσικών μοντέλων (LLMs) για να βοηθήσει στη δημιουργία συνοψίσεων με βάση τα ευρήματα στις αναφορές ακτινολογίας.

Αυτή η ανάρτηση δείχνει μια στρατηγική για τη βελτίωση των διαθέσιμων στο κοινό LLM για το έργο της σύνοψης αναφορών ακτινολογίας χρησιμοποιώντας υπηρεσίες AWS. Τα LLM έχουν επιδείξει αξιοσημείωτες ικανότητες στην κατανόηση και τη δημιουργία φυσικής γλώσσας, λειτουργώντας ως βασικά μοντέλα που μπορούν να προσαρμοστούν σε διάφορους τομείς και εργασίες. Υπάρχουν σημαντικά οφέλη από τη χρήση ενός προεκπαιδευμένου μοντέλου. Μειώνει το κόστος υπολογισμού, μειώνει τα αποτυπώματα άνθρακα και σας επιτρέπει να χρησιμοποιείτε μοντέλα τελευταίας τεχνολογίας χωρίς να χρειάζεται να εκπαιδεύσετε ένα από την αρχή.

Η λύση μας χρησιμοποιεί το FLAN-T5 XL FM, χρησιμοποιώντας Amazon SageMaker JumpStart, που είναι ένας κόμβος ML που προσφέρει αλγόριθμους, μοντέλα και λύσεις ML. Δείχνουμε πώς να το πετύχετε αυτό χρησιμοποιώντας ένα σημειωματάριο Στούντιο Amazon SageMaker. Η τελειοποίηση ενός προεκπαιδευμένου μοντέλου περιλαμβάνει περαιτέρω εκπαίδευση σε συγκεκριμένα δεδομένα για τη βελτίωση της απόδοσης σε μια διαφορετική αλλά σχετική εργασία. Αυτή η λύση περιλαμβάνει τη βελτίωση του μοντέλου FLAN-T5 XL, το οποίο είναι μια βελτιωμένη έκδοση T5 (Text-to-Text Transformer) LLM γενικής χρήσης. Το T5 επαναπλαισιώνει τις εργασίες επεξεργασίας φυσικής γλώσσας (NLP) σε μια ενοποιημένη μορφή κειμένου σε κείμενο, σε αντίθεση με ΜΠΕΡΤ-Μοντέλα στυλ που μπορούν να παράγουν μόνο μια ετικέτα κλάσης ή ένα εύρος της εισόδου. Είναι προσαρμοσμένο για μια εργασία σύνοψης σε 91,544 ακτινολογικές αναφορές ελεύθερου κειμένου που ελήφθησαν από το Σύνολο δεδομένων MIMIC-CXR.

Επισκόπηση της λύσης

Σε αυτήν την ενότητα, συζητάμε τα βασικά στοιχεία της λύσης μας: επιλογή της στρατηγικής για την εργασία, τελειοποίηση ενός LLM και αξιολόγηση των αποτελεσμάτων. Παρουσιάζουμε επίσης την αρχιτεκτονική λύσης και τα βήματα για την υλοποίηση της λύσης.

Προσδιορίστε τη στρατηγική για την εργασία

Υπάρχουν διάφορες στρατηγικές για την προσέγγιση του έργου της αυτοματοποίησης της σύνοψης κλινικών αναφορών. Για παράδειγμα, θα μπορούσαμε να χρησιμοποιήσουμε ένα εξειδικευμένο γλωσσικό μοντέλο προεκπαιδευμένο σε κλινικές αναφορές από την αρχή. Εναλλακτικά, θα μπορούσαμε να βελτιστοποιήσουμε απευθείας ένα δημοσίως διαθέσιμο γλωσσικό μοντέλο γενικής χρήσης για την εκτέλεση της κλινικής εργασίας. Η χρήση ενός βελτιστοποιημένου μοντέλου αγνωστικού τομέα μπορεί να είναι απαραίτητη σε ρυθμίσεις όπου η εκπαίδευση α μοντέλο γλώσσας από την αρχή είναι πολύ δαπανηρή. Σε αυτή τη λύση, επιδεικνύουμε την τελευταία προσέγγιση της χρήσης ενός μοντέλου FLAN -T5 XL, το οποίο προσαρμόζουμε με ακρίβεια για το κλινικό έργο της περίληψης των αναφορών ακτινολογίας. Το παρακάτω διάγραμμα απεικονίζει τη ροή εργασίας του μοντέλου.

Δημιουργήστε αυτόματα εντυπώσεις από ευρήματα σε αναφορές ακτινολογίας χρησιμοποιώντας γενετική τεχνητή νοημοσύνη στο AWS | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Μια τυπική ακτινολογική αναφορά είναι καλά οργανωμένη και συνοπτική. Τέτοιες αναφορές έχουν συχνά τρεις βασικές ενότητες:

  • Ιστορικό – Παρέχει γενικές πληροφορίες σχετικά με τα δημογραφικά στοιχεία του ασθενούς με βασικές πληροφορίες για τον ασθενή, το κλινικό ιστορικό και το σχετικό ιατρικό ιστορικό και λεπτομέρειες σχετικά με τις διαδικασίες εξέτασης
  • Ευρήματα – Παρουσιάζει λεπτομερή διάγνωση και αποτελέσματα εξετάσεων
  • εκτύπωση – Συνοψίζει συνοπτικά τα πιο σημαντικά ευρήματα ή ερμηνεία των ευρημάτων με αξιολόγηση της σημασίας και της πιθανής διάγνωσης με βάση τις παρατηρούμενες ανωμαλίες

Χρησιμοποιώντας την ενότητα ευρημάτων στις αναφορές ακτινολογίας, η λύση δημιουργεί την ενότητα εντυπώσεων, η οποία αντιστοιχεί στη σύνοψη των γιατρών. Το παρακάτω σχήμα είναι ένα παράδειγμα ακτινολογικής αναφοράς.

Δημιουργήστε αυτόματα εντυπώσεις από ευρήματα σε αναφορές ακτινολογίας χρησιμοποιώντας γενετική τεχνητή νοημοσύνη στο AWS | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Βελτιώστε ένα LLM γενικής χρήσης για μια κλινική εργασία

Σε αυτή τη λύση, ρυθμίζουμε με ακρίβεια ένα μοντέλο FLAN-T5 XL (συντονίζοντας όλες τις παραμέτρους του μοντέλου και βελτιστοποιώντας τις για την εργασία). Προσαρμόζουμε το μοντέλο χρησιμοποιώντας το σύνολο δεδομένων κλινικού τομέα MIMIC-CXR, το οποίο είναι ένα δημοσίως διαθέσιμο σύνολο δεδομένων ακτινογραφιών θώρακος. Για να τελειοποιήσετε αυτό το μοντέλο μέσω του SageMaker Jumpstart, πρέπει να παρέχονται παραδείγματα με ετικέτα με τη μορφή ζευγών {prompt, completion}. Σε αυτήν την περίπτωση, χρησιμοποιούμε ζεύγη {Findings, Impression} από τις αρχικές αναφορές στο σύνολο δεδομένων MIMIC-CXR. Για εξαγωγή συμπερασμάτων, χρησιμοποιούμε μια προτροπή όπως φαίνεται στο ακόλουθο παράδειγμα:

Δημιουργήστε αυτόματα εντυπώσεις από ευρήματα σε αναφορές ακτινολογίας χρησιμοποιώντας γενετική τεχνητή νοημοσύνη στο AWS | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Το μοντέλο είναι τελειοποιημένο σε έναν επιταχυνόμενο υπολογισμό ml.p3.16xlarge παράδειγμα με 64 εικονικούς επεξεργαστές και μνήμη 488 GiB. Για επικύρωση, το 5% του συνόλου δεδομένων επιλέχθηκε τυχαία. Ο χρόνος που πέρασε για την εργασία εκπαίδευσης του SageMaker με τελειοποίηση ήταν 38,468 δευτερόλεπτα (περίπου 11 ώρες).

Αξιολογήστε τα αποτελέσματα

Όταν ολοκληρωθεί η εκπαίδευση, είναι σημαντικό να αξιολογήσετε τα αποτελέσματα. Για μια ποσοτική ανάλυση της δημιουργούμενης εντύπωσης, χρησιμοποιούμε ΚΟΚΚΙΝΟ (Recall-Oriented Understudy for Gisting Evaluation), η πιο συχνά χρησιμοποιούμενη μέτρηση για την αξιολόγηση της σύνοψης. Αυτή η μέτρηση συγκρίνει μια σύνοψη που παράγεται αυτόματα με μια αναφορά ή ένα σύνολο αναφορών (ανθρώπινων παραγόμενων) περίληψη ή μετάφραση. Το ROUGE1 αναφέρεται στην επικάλυψη του μονογραμμάρια (κάθε λέξη) μεταξύ του υποψηφίου (η έξοδος του μοντέλου) και των περιλήψεων αναφοράς. Το ROUGE2 αναφέρεται στην επικάλυψη του διγράμματα (δύο λέξεις) μεταξύ του υποψηφίου και των περιλήψεων αναφοράς. Το ROUGEL είναι μια μέτρηση σε επίπεδο πρότασης και αναφέρεται στη μεγαλύτερη κοινή υποακολουθία (LCS) μεταξύ δύο τμημάτων κειμένου. Αγνοεί τις νέες γραμμές στο κείμενο. Το ROUGELsum είναι μια μέτρηση σε επίπεδο σύνοψης. Για αυτήν τη μέτρηση, οι νέες γραμμές στο κείμενο δεν αγνοούνται, αλλά ερμηνεύονται ως όρια προτάσεων. Στη συνέχεια, το LCS υπολογίζεται μεταξύ κάθε ζεύγους προτάσεων αναφοράς και υποψηφίων προτάσεων και, στη συνέχεια, υπολογίζεται η ένωση-LCS. Για τη συγκέντρωση αυτών των βαθμολογιών σε ένα δεδομένο σύνολο προτάσεων αναφοράς και υποψηφίων, υπολογίζεται ο μέσος όρος.

Περιήγηση και αρχιτεκτονική

Η συνολική αρχιτεκτονική λύσης, όπως φαίνεται στο παρακάτω σχήμα, αποτελείται κυρίως από ένα περιβάλλον ανάπτυξης μοντέλου που χρησιμοποιεί το SageMaker Studio, ανάπτυξη μοντέλου με τελικό σημείο SageMaker και έναν πίνακα ελέγχου αναφορών που χρησιμοποιεί Amazon QuickSight.

Δημιουργήστε αυτόματα εντυπώσεις από ευρήματα σε αναφορές ακτινολογίας χρησιμοποιώντας γενετική τεχνητή νοημοσύνη στο AWS | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Στις επόμενες ενότητες, παρουσιάζουμε τη λεπτομέρεια ενός LLM που είναι διαθέσιμο στο SageMaker JumpStart για τη σύνοψη μιας εργασίας συγκεκριμένου τομέα μέσω του SageMaker Python SDK. Ειδικότερα, συζητάμε τα ακόλουθα θέματα:

  • Βήματα για τη ρύθμιση του περιβάλλοντος ανάπτυξης
  • Μια επισκόπηση των συνόλων δεδομένων αναφοράς ακτινολογίας στα οποία το μοντέλο έχει βελτιστοποιηθεί και αξιολογηθεί
  • Μια επίδειξη τελειοποίησης του μοντέλου FLAN-T5 XL χρησιμοποιώντας το SageMaker JumpStart μέσω προγραμματισμού με το SageMaker Python SDK
  • Εξαγωγή συμπερασμάτων και αξιολόγηση των προεκπαιδευμένων και βελτιστοποιημένων μοντέλων
  • Σύγκριση αποτελεσμάτων από προεκπαιδευμένα μοντέλα και βελτιωμένα μοντέλα

Η λύση είναι διαθέσιμη στο Δημιουργία εντύπωσης αναφοράς ακτινολογίας με χρήση γενετικής τεχνητής νοημοσύνης με μοντέλο μεγάλης γλώσσας στο AWS GitHub repo.

Προϋποθέσεις

Για να ξεκινήσετε, χρειάζεστε ένα Λογαριασμός AWS στο οποίο μπορείτε να χρησιμοποιήσετε το SageMaker Studio. Θα χρειαστεί να δημιουργήσετε ένα προφίλ χρήστη για το SageMaker Studio, εάν δεν το έχετε ήδη.

Ο τύπος παρουσίασης εκπαίδευσης που χρησιμοποιείται σε αυτήν την ανάρτηση είναι ml.p3.16xlarge. Σημειώστε ότι ο τύπος εμφάνισης p3 απαιτεί αύξηση του ορίου ποσόστωσης υπηρεσιών.

Η Σύνολο δεδομένων MIMIC CXR μπορεί να προσπελαστεί μέσω μιας συμφωνίας χρήσης δεδομένων, η οποία απαιτεί εγγραφή χρήστη και ολοκλήρωση διαδικασίας πιστοποίησης.

Ρυθμίστε το περιβάλλον ανάπτυξης

Για να ρυθμίσετε το περιβάλλον ανάπτυξής σας, δημιουργείτε έναν κάδο S3, διαμορφώνετε ένα σημειωματάριο, δημιουργείτε τελικά σημεία και αναπτύσσετε τα μοντέλα και δημιουργείτε έναν πίνακα εργαλείων QuickSight.

Δημιουργήστε έναν κάδο S3

Δημιουργήστε έναν κάδο S3 που ονομάζεται llm-radiology-bucket να φιλοξενήσει τα σύνολα δεδομένων εκπαίδευσης και αξιολόγησης. Αυτό θα χρησιμοποιηθεί επίσης για την αποθήκευση του τεχνουργήματος του μοντέλου κατά την ανάπτυξη του μοντέλου.

Διαμόρφωση ενός σημειωματάριου

Ολοκληρώστε τα παρακάτω βήματα:

  1. Εκκινήστε το SageMaker Studio είτε από την κονσόλα SageMaker είτε από το Διεπαφή γραμμής εντολών AWS (AWS CLI).

Για περισσότερες πληροφορίες σχετικά με την ενσωμάτωση σε έναν τομέα, βλ Ενσωματωμένος στον τομέα Amazon SageMaker.

  1. Δημιουργήστε ένα νέο Σημειωματάριο SageMaker Studio για τον καθαρισμό των δεδομένων αναφοράς και τη λεπτομερή ρύθμιση του μοντέλου. Χρησιμοποιούμε ένα στιγμιότυπο notebook ml.t3.medium 2vCPU+4GiB με πυρήνα Python 3.
  1. Μέσα στο σημειωματάριο εγκαταστήστε τα σχετικά πακέτα όπως π.χ nest-asyncio, IPyWidgets (για διαδραστικά γραφικά στοιχεία για σημειωματάριο Jupyter) και το SageMaker Python SDK:
!pip install nest-asyncio==1.5.5 --quiet !pip install ipywidgets==8.0.4 --quiet !pip install sagemaker==2.148.0 --quiet

Δημιουργήστε τελικά σημεία και αναπτύξτε τα μοντέλα για συμπεράσματα

Για την εξαγωγή συμπερασμάτων των προεκπαιδευμένων και βελτιωμένων μοντέλων, δημιουργήστε ένα τελικό σημείο και αναπτύξτε κάθε μοντέλο στο σημειωματάριο ως εξής:

  1. Δημιουργήστε ένα αντικείμενο μοντέλου από την κλάση Model που μπορεί να αναπτυχθεί σε ένα τελικό σημείο HTTPS.
  2. Δημιουργήστε ένα τελικό σημείο HTTPS με το προκατασκευασμένο αντικείμενο του μοντέλου deploy() μέθοδος:
from sagemaker import model_uris, script_uris
from sagemaker.model import Model
from sagemaker.predictor import Predictor
from sagemaker.utils import name_from_base # Retrieve the URI of the pre-trained model
pre_trained_model_uri =model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="inference") large_model_env = {"SAGEMAKER_MODEL_SERVER_WORKERS": "1", "TS_DEFAULT_WORKERS_PER_MODEL": "1"} pre_trained_name = name_from_base(f"jumpstart-demo-pre-trained-{model_id}") # Create the SageMaker model instance of the pre-trained model
if ("small" in model_id) or ("base" in model_id): deploy_source_uri = script_uris.retrieve( model_id=model_id, model_version=model_version, script_scope="inference" ) pre_trained_model = Model( image_uri=deploy_image_uri, source_dir=deploy_source_uri, entry_point="inference.py", model_data=pre_trained_model_uri, role=aws_role, predictor_cls=Predictor, name=pre_trained_name, )
else: # For those large models, we already repack the inference script and model # artifacts for you, so the `source_dir` argument to Model is not required. pre_trained_model = Model( image_uri=deploy_image_uri, model_data=pre_trained_model_uri, role=aws_role, predictor_cls=Predictor, name=pre_trained_name, env=large_model_env, ) # Deploy the pre-trained model. Note that we need to pass Predictor class when we deploy model
# through Model class, for being able to run inference through the SageMaker API
pre_trained_predictor = pre_trained_model.deploy( initial_instance_count=1, instance_type=inference_instance_type, predictor_cls=Predictor, endpoint_name=pre_trained_name,
)

Δημιουργήστε έναν πίνακα εργαλείων QuickSight

Δημιουργία Πίνακας ελέγχου QuickSight με πηγή δεδομένων Athena με συμπέρασμα αποτελέσματα σε Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) για να συγκρίνετε τα αποτελέσματα συμπερασμάτων με τη βασική αλήθεια. Το παρακάτω στιγμιότυπο οθόνης δείχνει το παράδειγμα του πίνακα ελέγχου μας. Δημιουργήστε αυτόματα εντυπώσεις από ευρήματα σε αναφορές ακτινολογίας χρησιμοποιώντας γενετική τεχνητή νοημοσύνη στο AWS | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Σύνολα δεδομένων αναφοράς ακτινολογίας

Το μοντέλο έχει πλέον βελτιωθεί, όλες οι παράμετροι του μοντέλου έχουν συντονιστεί σε 91,544 αναφορές που έχουν ληφθεί από το Σύνολο δεδομένων MIMIC-CXR v2.0. Επειδή χρησιμοποιήσαμε μόνο τα δεδομένα κειμένου της αναφοράς ακτινολογίας, κατεβάσαμε μόνο ένα συμπιεσμένο αρχείο αναφοράς (mimic-cxr-reports.zip) από τον ιστότοπο MIMIC-CXR. Τώρα αξιολογούμε το τελειοποιημένο μοντέλο σε 2,000 αναφορές (αναφέρεται ως το dev1 σύνολο δεδομένων) από το ξεχωριστό υποσύνολο αυτού του συνόλου δεδομένων. Χρησιμοποιούμε άλλες 2,000 αναφορές ακτινολογίας (αναφέρεται ως dev2) για την αξιολόγηση του βελτιωμένου μοντέλου από τη συλλογή ακτίνων Χ θώρακα από το Δίκτυο νοσοκομείων του Πανεπιστημίου της Ιντιάνα. Όλα τα σύνολα δεδομένων διαβάζονται ως αρχεία JSON και αποστέλλονται στον πρόσφατα δημιουργημένο κάδο S3 llm-radiology-bucket. Σημειώστε ότι όλα τα σύνολα δεδομένων από προεπιλογή δεν περιέχουν προστατευμένες πληροφορίες υγείας (PHI). όλες οι ευαίσθητες πληροφορίες αντικαθίστανται με τρεις διαδοχικές υπογραμμίσεις (___) από τους παρόχους.

Συντονιστείτε με το SageMaker Python SDK

Για τελειοποίηση, το model_id ορίζεται ως huggingface-text2text-flan-t5-xl από τη λίστα των μοντέλων SageMaker JumpStart. ο training_instance_type ορίζεται ως ml.p3.16xlarge και το inference_instance_type ως ml.g5.2xlarge. Τα δεδομένα εκπαίδευσης σε μορφή JSON διαβάζονται από τον κάδο S3. Το επόμενο βήμα είναι να χρησιμοποιήσετε το επιλεγμένο model_id για να εξαγάγετε τα URI πόρων SageMaker JumpStart, συμπεριλαμβανομένων image_uriΜητρώο εμπορευματοκιβωτίων Amazon Elastic (Amazon ECR) URI για την εικόνα Docker), model_uri (το προεκπαιδευμένο μοντέλο τεχνούργημα Amazon S3 URI), και script_uri (το σενάριο εκπαίδευσης):

from sagemaker import image_uris, model_uris, script_uris # Training instance will use this image
train_image_uri = image_uris.retrieve( region=aws_region, framework=None, # automatically inferred from model_id model_id=model_id, model_version=model_version, image_scope="training", instance_type=training_instance_type,
) # Pre-trained model
train_model_uri = model_uris.retrieve( model_id=model_id, model_version=model_version, model_scope="training"
) # Script to execute on the training instance
train_script_uri = script_uris.retrieve( model_id=model_id, model_version=model_version, script_scope="training"
) output_location = f"s3://{output_bucket}/demo-llm-rad-fine-tune-flan-t5/"

Επίσης, μια θέση εξόδου ρυθμίζεται ως φάκελος μέσα στον κάδο S3.

Μόνο μία υπερπαράμετρος, εποχές, αλλάζει σε 3 και οι υπόλοιπες ορίζονται όλες ως προεπιλογές:

from sagemaker import hyperparameters # Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version) # We will override some default hyperparameters with custom values
hyperparameters["epochs"] = "3"
print(hyperparameters)

Οι μετρήσεις εκπαίδευσης όπως eval_loss (για απώλεια επικύρωσης), loss (για απώλεια προπόνησης), και epoch προς παρακολούθηση ορίζονται και παρατίθενται:

from sagemaker.estimator import Estimator
from sagemaker.utils import name_from_base model_name = "-".join(model_id.split("-")[2:]) # get the most informative part of ID
training_job_name = name_from_base(f"js-demo-{model_name}-{hyperparameters['epochs']}")
print(f"{bold}job name:{unbold} {training_job_name}") training_metric_definitions = [ {"Name": "val_loss", "Regex": "'eval_loss': ([0-9.]+)"}, {"Name": "train_loss", "Regex": "'loss': ([0-9.]+)"}, {"Name": "epoch", "Regex": "'epoch': ([0-9.]+)"},
]

Χρησιμοποιούμε τα URI πόρων SageMaker JumpStart (image_uri, model_uri, script_uri) προσδιορίστηκε νωρίτερα για να δημιουργήσετε έναν εκτιμητή και να τον ρυθμίσετε με ακρίβεια στο σύνολο δεδομένων εκπαίδευσης προσδιορίζοντας τη διαδρομή S3 του συνόλου δεδομένων. Η κλάση Εκτιμητής απαιτεί ένα entry_point παράμετρος. Σε αυτήν την περίπτωση, το JumpStart χρησιμοποιεί transfer_learning.py. Η εργασία εκπαίδευσης αποτυγχάνει να εκτελεστεί εάν δεν οριστεί αυτή η τιμή.

# Create SageMaker Estimator instance
sm_estimator = Estimator( role=aws_role, image_uri=train_image_uri, model_uri=train_model_uri, source_dir=train_script_uri, entry_point="transfer_learning.py", instance_count=1, instance_type=training_instance_type, volume_size=300, max_run=360000, hyperparameters=hyperparameters, output_path=output_location, metric_definitions=training_metric_definitions,
) # Launch a SageMaker training job over data located in the given S3 path
# Training jobs can take hours, it is recommended to set wait=False,
# and monitor job status through SageMaker console
sm_estimator.fit({"training": train_data_location}, job_name=training_job_name, wait=True)

Αυτή η εργασία κατάρτισης μπορεί να διαρκέσει ώρες για να ολοκληρωθεί. Επομένως, συνιστάται να ορίσετε την παράμετρο αναμονής σε False και να παρακολουθείτε την κατάσταση της εργασίας εκπαίδευσης στην κονσόλα SageMaker. Χρησιμοποιήστε το TrainingJobAnalytics λειτουργία παρακολούθησης των μετρήσεων εκπαίδευσης σε διάφορες χρονικές σημάνσεις:

from sagemaker import TrainingJobAnalytics # Wait for a couple of minutes for the job to start before running this cell
# This can be called while the job is still running
df = TrainingJobAnalytics(training_job_name=training_job_name).dataframe()

Ανάπτυξη τελικών σημείων συμπερασμάτων

Για να κάνουμε συγκρίσεις, αναπτύσσουμε τελικά σημεία συμπερασμάτων τόσο για τα προεκπαιδευμένα όσο και για τα τελειοποιημένα μοντέλα.

Αρχικά, ανακτήστε το URI εικόνας Docker συμπερασμάτων χρησιμοποιώντας model_idκαι χρησιμοποιήστε αυτό το URI για να δημιουργήσετε μια παρουσία μοντέλου SageMaker του προεκπαιδευμένου μοντέλου. Αναπτύξτε το προεκπαιδευμένο μοντέλο δημιουργώντας ένα τελικό σημείο HTTPS με το προκατασκευασμένο αντικείμενο του μοντέλου deploy() μέθοδος. Για να εκτελέσετε συμπέρασμα μέσω του SageMaker API, φροντίστε να περάσετε την κλάση Predictor.

from sagemaker import image_uris
# Retrieve the inference docker image URI. This is the base HuggingFace container image
deploy_image_uri = image_uris.retrieve( region=aws_region, framework=None, # automatically inferred from model_id model_id=model_id, model_version=model_version, image_scope="inference", instance_type=inference_instance_type,
) # Retrieve the URI of the pre-trained model
pre_trained_model_uri = model_uris.retrieve( model_id=model_id, model_version=model_version, model_scope="inference"
) pre_trained_model = Model( image_uri=deploy_image_uri, model_data=pre_trained_model_uri, role=aws_role, predictor_cls=Predictor, name=pre_trained_name, env=large_model_env, ) # Deploy the pre-trained model. Note that we need to pass Predictor class when we deploy model
# through Model class, for being able to run inference through the SageMaker API
pre_trained_predictor = pre_trained_model.deploy( initial_instance_count=1, instance_type=inference_instance_type, predictor_cls=Predictor, endpoint_name=pre_trained_name,
)

Επαναλάβετε το προηγούμενο βήμα για να δημιουργήσετε μια παρουσία μοντέλου SageMaker του βελτιωμένου μοντέλου και να δημιουργήσετε ένα τελικό σημείο για την ανάπτυξη του μοντέλου.

Αξιολογήστε τα μοντέλα

Αρχικά, ορίστε το μήκος του συνοπτικού κειμένου, τον αριθμό των εξόδων του μοντέλου (θα πρέπει να είναι μεγαλύτερος από 1 εάν χρειάζεται να δημιουργηθούν πολλές περιλήψεις) και τον αριθμό των δεσμών για αναζήτηση δέσμης.

Κατασκευάστε το αίτημα συμπερασμάτων ως ωφέλιμο φορτίο JSON και χρησιμοποιήστε το για να αναζητήσετε τα τελικά σημεία για τα προεκπαιδευμένα και βελτιωμένα μοντέλα.

Υπολογίστε το άθροισμα σκοράρει ο ROUGE (ROUGE1, ROUGE2, ROUGEL, ROUGELsum) όπως περιγράφηκε προηγουμένως.

Συγκρίνετε τα αποτελέσματα

Ο παρακάτω πίνακας απεικονίζει τα αποτελέσματα της αξιολόγησης για το dev1 και dev2 σύνολα δεδομένων. Το αποτέλεσμα της αξιολόγησης στις dev1 (2,000 ευρήματα από την έκθεση ακτινολογίας MIMIC CXR) δείχνει περίπου 38 ποσοστιαίες μονάδες βελτίωση του συγκεντρωτικού μέσου όρου ROUGE1 και ROUGE2 βαθμολογίες σε σύγκριση με το προεκπαιδευμένο μοντέλο. Για το dev2, παρατηρείται βελτίωση 31 ποσοστιαίων μονάδων και 25 ποσοστιαίων μονάδων στις βαθμολογίες ROUGE1 και ROUGE2. Συνολικά, η βελτίωση της ρύθμισης οδήγησε σε βελτίωση κατά 38.2 ποσοστιαίες μονάδες και 31.3 ποσοστιαίες μονάδες στις βαθμολογίες ROUGELsum για το dev1 και dev2 σύνολα δεδομένων, αντίστοιχα.

Εκτίμηση

Σύνολο δεδομένων

Προεκπαιδευμένο μοντέλο Προσαρμοσμένο μοντέλο
ROUGE1 ROUGE2 ΡΟΥΖΕΛ ROUGELsum ROUGE1 ROUGE2 ΡΟΥΖΕΛ ROUGELsum
dev1 0.2239 0.1134 0.1891 0.1891 0.6040 0.4800 0.5705 0.5708
dev2 0.1583 0.0599 0.1391 0.1393 0.4660 0.3125 0.4525 0.4525

Οι παρακάτω γραφικές παραστάσεις απεικονίζουν την κατανομή των βαθμολογιών ROUGE για το dev1 και dev2 σύνολα δεδομένων που αξιολογήθηκαν χρησιμοποιώντας το λεπτομερές μοντέλο.

Δημιουργήστε αυτόματα εντυπώσεις από ευρήματα σε αναφορές ακτινολογίας χρησιμοποιώντας γενετική τεχνητή νοημοσύνη στο AWS | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται. Δημιουργήστε αυτόματα εντυπώσεις από ευρήματα σε αναφορές ακτινολογίας χρησιμοποιώντας γενετική τεχνητή νοημοσύνη στο AWS | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.
(ένα): dev1 (σι): dev2

Ο παρακάτω πίνακας δείχνει ότι οι βαθμολογίες ROUGE για τα σύνολα δεδομένων αξιολόγησης έχουν περίπου την ίδια διάμεσο και μέση τιμή και επομένως είναι συμμετρικά κατανεμημένες.

Δεδομένα Παρτιτούρες Κόμης Μέσο Απόκλιση Std Ελάχιστο 25% εκατοστημόριο 50% εκατοστημόριο 75% εκατοστημόριο Ανώτατο όριο
dev1 ROUGE1 2000.00 0.6038 0.3065 0.0000 0.3653 0.6000 0.9384 1.0000
ΡΟΥΖ 2 2000.00 0.4798 0.3578 0.0000 0.1818 0.4000 0.8571 1.0000
ΡΟΥΖ Λ 2000.00 0.5706 0.3194 0.0000 0.3000 0.5345 0.9101 1.0000
ROUGELsum 2000.00 0.5706 0.3194 0.0000 0.3000 0.5345 0.9101 1.0000
dev2 ΡΟΥΖ 1 2000.00 0.4659 0.2525 0.0000 0.2500 0.5000 0.7500 1.0000
ΡΟΥΖ 2 2000.00 0.3123 0.2645 0.0000 0.0664 0.2857 0.5610 1.0000
ΡΟΥΖ Λ 2000.00 0.4529 0.2554 0.0000 0.2349 0.4615 0.7500 1.0000
ROUGE Lsum 2000.00 0.4529 0.2554 0.0000 0.2349 0.4615 0.7500 1.0000

εκκαθάριση

Για να αποφύγετε μελλοντικές χρεώσεις, διαγράψτε τους πόρους που δημιουργήσατε με τον ακόλουθο κώδικα:

# Delete resources
pre_trained_predictor.delete_model()
pre_trained_predictor.delete_endpoint()
fine_tuned_predictor.delete_model()
fine_tuned_predictor.delete_endpoint()

Συμπέρασμα

Σε αυτήν την ανάρτηση, δείξαμε πώς να τελειοποιήσετε ένα μοντέλο FLAN-T5 XL για μια εργασία σύνοψης για συγκεκριμένο κλινικό τομέα χρησιμοποιώντας το SageMaker Studio. Για να αυξήσουμε την εμπιστοσύνη, συγκρίναμε τις προβλέψεις με τη βασική αλήθεια και αξιολογήσαμε τα αποτελέσματα χρησιμοποιώντας μετρήσεις ROUGE. Δείξαμε ότι ένα μοντέλο που έχει ρυθμιστεί με ακρίβεια για μια συγκεκριμένη εργασία αποδίδει καλύτερα αποτελέσματα από ένα μοντέλο προεκπαιδευμένο σε μια γενική εργασία NLP. Θα θέλαμε να επισημάνουμε ότι η τελειοποίηση ενός LLM γενικής χρήσης εξαλείφει εντελώς το κόστος της προεκπαίδευσης.

Αν και η εργασία που παρουσιάζεται εδώ εστιάζει σε αναφορές ακτίνων Χ θώρακα, έχει τη δυνατότητα να επεκταθεί σε μεγαλύτερα σύνολα δεδομένων με ποικίλες ανατομίες και τρόπους, όπως η μαγνητική τομογραφία και η αξονική τομογραφία, για τις οποίες οι αναφορές ακτινολογίας μπορεί να είναι πιο περίπλοκες με πολλαπλά ευρήματα. Σε τέτοιες περιπτώσεις, οι ακτινολόγοι θα μπορούσαν να δημιουργήσουν εντυπώσεις κατά σειρά κρισιμότητας και να περιλαμβάνουν συστάσεις παρακολούθησης. Επιπλέον, η δημιουργία ενός βρόχου ανάδρασης για αυτήν την εφαρμογή θα επέτρεπε στους ακτινολόγους να βελτιώσουν την απόδοση του μοντέλου με την πάροδο του χρόνου.

Όπως δείξαμε σε αυτήν την ανάρτηση, το βελτιωμένο μοντέλο δημιουργεί εντυπώσεις για αναφορές ακτινολογίας με υψηλές βαθμολογίες ROUGE. Μπορείτε να προσπαθήσετε να προσαρμόσετε με ακρίβεια τα LLM σε άλλες ιατρικές αναφορές για συγκεκριμένους τομείς από διαφορετικά τμήματα.


Σχετικά με τους συγγραφείς

Δημιουργήστε αυτόματα εντυπώσεις από ευρήματα σε αναφορές ακτινολογίας χρησιμοποιώντας γενετική τεχνητή νοημοσύνη στο AWS | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Δρ Adewale Akinfaderin είναι Ανώτερος Επιστήμονας Δεδομένων στις Επιστήμες Υγείας και Ζωής στο AWS. Η τεχνογνωσία του είναι σε αναπαραγώγιμες και από άκρο σε άκρο μεθόδους AI/ML, πρακτικές εφαρμογές και βοήθεια στους παγκόσμιους πελάτες υγειονομικής περίθαλψης να διαμορφώσουν και να αναπτύξουν επεκτάσιμες λύσεις σε διεπιστημονικά προβλήματα. Έχει δύο μεταπτυχιακά στη Φυσική και ένα Διδακτορικό στη Μηχανική.

Δημιουργήστε αυτόματα εντυπώσεις από ευρήματα σε αναφορές ακτινολογίας χρησιμοποιώντας γενετική τεχνητή νοημοσύνη στο AWS | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Priya Padate είναι Senior Partner Solutions Architect με εκτενή τεχνογνωσία στην Υγεία και τις Επιστήμες Ζωής στην AWS. Η Priya οδηγεί σε στρατηγικές μετάβασης στην αγορά με συνεργάτες και οδηγεί στην ανάπτυξη λύσεων για να επιταχύνει την ανάπτυξη που βασίζεται σε AI/ML. Είναι παθιασμένη με τη χρήση της τεχνολογίας για να μεταμορφώσει τον κλάδο της υγειονομικής περίθαλψης για να έχει καλύτερα αποτελέσματα στη φροντίδα των ασθενών.

Δημιουργήστε αυτόματα εντυπώσεις από ευρήματα σε αναφορές ακτινολογίας χρησιμοποιώντας γενετική τεχνητή νοημοσύνη στο AWS | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Ekta Walia Bhullar, PhD, είναι ανώτερος σύμβουλος AI/ML στην επιχειρηματική μονάδα επαγγελματικών υπηρεσιών AWS Healthcare and Life Sciences (HCLS). Έχει μεγάλη εμπειρία στην εφαρμογή της AI/ML στον τομέα της υγειονομικής περίθαλψης, ιδιαίτερα στην ακτινολογία. Εκτός δουλειάς, όταν δεν συζητά την τεχνητή νοημοσύνη στην ακτινολογία, της αρέσει να τρέχει και να πεζοπορεί.

Σφραγίδα ώρας:

Περισσότερα από Μηχανική εκμάθηση AWS