Utilizzare l'ottimizzazione e la valutazione per migliorare le prestazioni degli LLM

.

Questo documento mostra come creare un modello remoto di BigQuery ML che fa riferimento a un text-bison modello di base di Vertex AI. Potrai quindi utilizzare l'ottimizzazione supervisionata per ottimizzare il modello con nuovi dati di addestramento e poi valutarlo con la funzione ML.EVALUATE.

Ciò può aiutarti ad affrontare gli scenari in cui è necessario personalizzare il modello Vertex AI ospitato, ad esempio quando il comportamento previsto del modello è difficile da definire in modo conciso in un prompt o quando i prompt non producono risultati previsti in modo sufficiente. Anche l'ottimizzazione supervisionata influisce sul modello nei seguenti modi:

  • Guida il modello per restituire stili di risposta specifici, ad esempio essere più conciso o più dettagliato.
  • Insegna al modello nuovi comportamenti, ad esempio rispondendo a prompt come utente tipo specifico.
  • Determina l'aggiornamento del modello con nuove informazioni.

Autorizzazioni obbligatorie

  • Per creare una connessione, devi disporre del seguente ruolo di Identity and Access Management (IAM):

    • roles/bigquery.connectionAdmin
  • Per concedere le autorizzazioni all'account di servizio della connessione, devi disporre della seguente autorizzazione:

    • resourcemanager.projects.setIamPolicy
  • Per creare il modello utilizzando BigQuery ML, devi disporre delle seguenti autorizzazioni IAM:

    • bigquery.jobs.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
    • bigquery.models.updateMetadata
  • Per eseguire l'inferenza, devi disporre delle seguenti autorizzazioni:

    • bigquery.tables.getData in tavola
    • bigquery.models.getData sul modello
    • bigquery.jobs.create

Prima di iniziare

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  3. Abilita le API BigQuery, BigQuery Connection, Vertex AI, and Compute Engine.

    Abilita le API

Costi

In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

  • BigQuery: You incur costs for the queries that you run in BigQuery.
  • BigQuery ML: You incur costs for the model that you create and the processing that you perform in BigQuery ML.
  • Vertex AI: You incur costs for calls to and supervised tuning of the text-bison model.

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud possono essere idonei a una prova senza costi aggiuntivi.

Per maggiori informazioni, consulta le seguenti risorse:

crea un set di dati

Crea un set di dati BigQuery per archiviare il tuo modello ML:

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai alla pagina di BigQuery

  2. Nel riquadro Explorer, fai clic sul nome del tuo progetto.

  3. Fai clic su Visualizza azioni > Crea set di dati.

    Crea il set di dati.

  4. Nella pagina Crea set di dati, segui questi passaggi:

    • In ID set di dati, inserisci bqml_tutorial.

    • Per Tipo di località, seleziona Più regioni e poi Stati Uniti (più regioni negli Stati Uniti).

      I set di dati pubblici vengono archiviati in US più regioni. Per semplicità, archivia il tuo set di dati nella stessa località.

    • Lascia invariate le restanti impostazioni predefinite e fai clic su Crea set di dati.

      Pagina Crea set di dati.

Crea una connessione

Crea una connessione alle risorse Cloud e recupera l'ID dell'account di servizio della connessione. Crea la connessione nella stessa località del set di dati che hai creato nel passaggio precedente.

Seleziona una delle seguenti opzioni:

Console

  1. Vai alla pagina BigQuery.

    Vai a BigQuery

  2. Per creare una connessione, fai clic su Aggiungi e poi su Connessioni a origini dati esterne.

  3. Nell'elenco Tipo di connessione, seleziona Modelli remoti Vertex AI, funzioni remote e BigLake (risorsa Cloud).

  4. Nel campo ID connessione, inserisci un nome per la connessione.

  5. Fai clic su Crea connessione.

  6. Fai clic su Vai alla connessione.

  7. Nel riquadro Informazioni sulla connessione, copia l'ID account di servizio per utilizzarlo in un passaggio successivo.

bq

  1. In un ambiente a riga di comando, crea una connessione:

    bq mk --connection --location=REGION --project_id=PROJECT_ID \
        --connection_type=CLOUD_RESOURCE CONNECTION_ID
    

    Il parametro --project_id sostituisce il progetto predefinito.

    Sostituisci quanto segue:

    • REGION: la tua regione di connessione
    • PROJECT_ID: l'ID del tuo progetto Google Cloud
    • CONNECTION_ID: un ID per la tua connessione

    Quando crei una risorsa di connessione, BigQuery crea un account di servizio di sistema univoco e lo associa alla connessione.

    Risoluzione dei problemi: se viene visualizzato il seguente errore di connessione, aggiorna Google Cloud SDK:

    Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
    
  2. Recupera e copia l'ID account di servizio per utilizzarlo in un passaggio successivo:

    bq show --connection PROJECT_ID.REGION.CONNECTION_ID
    

    L'output è simile al seguente:

    name                          properties
    1234.REGION.CONNECTION_ID     {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
    

Terraform

Aggiungi la seguente sezione al tuo file main.tf.

 ## This creates a cloud resource connection.
 ## Note: The cloud resource nested object has only one output only field - serviceAccountId.
 resource "google_bigquery_connection" "connection" {
    connection_id = "CONNECTION_ID"
    project = "PROJECT_ID"
    location = "REGION"
    cloud_resource {}
}        
Sostituisci quanto segue:

  • CONNECTION_ID: un ID per la tua connessione
  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • REGION: la tua regione di connessione

Concedi all'account di servizio l'accesso

Concedi al tuo account di servizio il ruolo Agente di servizio Vertex AI in modo che l'account di servizio possa accedere a Vertex AI. La mancata concessione di questo ruolo genera un errore. Seleziona una delle seguenti opzioni:

Console

  1. Vai alla pagina IAM e amministrazione.

    Vai a IAM e amministrazione

  2. Fai clic su Concedi l'accesso.

    Viene visualizzata la finestra di dialogo Aggiungi entità.

  3. Nel campo Nuove entità, inserisci l'ID account di servizio che hai copiato in precedenza.

  4. Fai clic su Seleziona un ruolo.

  5. In Filtro, digita Vertex AI Service Agent e seleziona quel ruolo.

  6. Fai clic su Salva.

gcloud

Usa il comando gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/aiplatform.serviceAgent' --condition=None

Sostituisci quanto segue:

  • PROJECT_NUMBER: il numero del tuo progetto
  • MEMBER: l'ID account di servizio che hai copiato in precedenza

L'account di servizio associato alla connessione è un'istanza dell'agente di servizio per la delega della connessione BigQuery, quindi è accettabile assegnargli un ruolo di agente di servizio.

Concedi all'account di servizio predefinito di Compute Engine l'accesso

Quando abiliti l'API Compute Engine, all'account di servizio predefinito di Compute Engine viene concesso automaticamente il ruolo Editor sul progetto, a meno che tu non abbia disattivato questo comportamento per il tuo progetto. In questo caso, devi concedere nuovamente il ruolo Editor all'accesso all'account di servizio predefinito di Compute Engine, in modo che abbia autorizzazioni sufficienti per creare e ottimizzare un modello remoto.

Console

  1. Vai alla pagina IAM e amministrazione.

    Vai a IAM e amministrazione

  2. Fai clic su Concedi l'accesso.

  3. In Nuove entità, inserisci l'ID account di servizio, ovvero PROJECT_NUMBER-compute@developer.gserviceaccount.com.

  4. Fai clic su Seleziona un ruolo.

  5. In Seleziona un ruolo, scegli Di base e poi seleziona Editor.

  6. Fai clic su Salva.

gcloud

Usa il comando gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/editor' --condition=None

Sostituisci quanto segue:

  • PROJECT_NUMBER: il numero del progetto.
  • MEMBER: l'ID dell'account di servizio, che è PROJECT_NUMBER-compute@developer.gserviceaccount.com.

Crea l'agente di servizio di ottimizzazione

Per creare un'istanza dell'agente di servizio Ottimizzazione di AI Platform, segui questi passaggi:

  1. Usa il comando gcloud beta services identity create per creare l'agente di servizio di ottimizzazione:

    gcloud beta services identity create --service=aiplatform.googleapis.com --project=PROJECT_NUMBER
    

    Sostituisci PROJECT_NUMBER con il numero del tuo progetto.

  2. Utilizza il comando gcloud projects add-iam-policy-binding per concedere all'agente di servizio di ottimizzazione il ruolo Agente di servizio Vertex AI (roles/aiplatform.serviceAgent):

    gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-aiplatform-ft.iam.gserviceaccount.com' --role='roles/aiplatform.serviceAgent'
    

    Sostituisci PROJECT_NUMBER con il numero del tuo progetto.

Crea tabelle di test

Crea tabelle di dati di addestramento e valutazione basati sul set di dati pubblico MTSamples dei referti medici trascritti. Questo set di dati ha una colonna input_text che contiene la trascrizione medica e una colonna output_text contenente l'etichetta che descrive meglio la categoria della trascrizione, ad esempio Allergy/Immunology, Dentistry o Cardiovascular/Pulmonary. Crea anche una tabella con i dati dei prompt per la classificazione della trascrizione medica.

Importerai i dati della trascrizione medica da un bucket Cloud Storage pubblico.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor query, esegui la seguente istruzione per creare una tabella di dati di valutazione:

    LOAD DATA INTO
     `bqml_tutorial.medical_transcript_eval`
    FROM FILES(format='NEWLINE_DELIMITED_JSON',
      uris = ['gs://cloud-samples-data/vertex-ai/model-evaluation/peft_eval_sample.jsonl']);
    
  3. Nell'editor query, esegui questa istruzione per creare una tabella di dati di addestramento:

    LOAD DATA INTO
    `bqml_tutorial.medical_transcript_train`
    FROM FILES(format='NEWLINE_DELIMITED_JSON',
      uris = ['gs://cloud-samples-data/vertex-ai/model-evaluation/peft_train_sample.jsonl']);
    
  4. Nell'editor query, esegui questa istruzione per creare una tabella di prompt:

    CREATE OR REPLACE TABLE `bqml_tutorial.transcript_classification` AS
    (SELECT 'Please assign a label for the given medical transcript from among these labels [Allergy / Immunology, Autopsy, Bariatrics, Cardiovascular / Pulmonary, Chiropractic, Consult - History and Phy., Cosmetic / Plastic Surgery, Dentistry, Dermatology, Diets and Nutritions, Discharge Summary, ENT - Otolaryngology, Emergency Room Reports, Endocrinology, Gastroenterology, General Medicine, Hematology - Oncology, Hospice - Palliative Care, IME-QME-Work Comp etc., Lab Medicine - Pathology, Letters, Nephrology, Neurology, Neurosurgery, Obstetrics / Gynecology, Office Notes, Ophthalmology, Orthopedic, Pain Management, Pediatrics - Neonatal, Physical Medicine - Rehab, Podiatry, Psychiatry / Psychology, Radiology, Rheumatology, SOAP / Chart / Progress Notes, Sleep Medicine, Speech - Language, Surgery, Urology].' AS prompt);
    

crea un modello di riferimento

Crea un modello remoto sul modello Vertex AI text-bison da utilizzare per classificare le trascrizioni mediche.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor query, esegui la seguente istruzione per creare un modello remoto:

    CREATE OR REPLACE MODEL `bqml_tutorial.text_bison_001`
    REMOTE WITH CONNECTION `LOCATION.CONNECTION_ID`
    OPTIONS (ENDPOINT ='text-bison@001');
    

    Sostituisci quanto segue:

    • LOCATION: posizione della connessione.
    • CONNECTION_ID: l'ID della tua connessione BigQuery.

      Quando visualizza i dettagli della connessione nella console Google Cloud, CONNECTION_ID è il valore nell'ultima sezione dell'ID connessione completo mostrato in ID connessione, ad esempio projects/myproject/locations/connection_location/connections/myconnection.

    Il completamento della query richiede diversi secondi, dopodiché il modello text_bison_001 viene visualizzato nel set di dati bqml_tutorial nel riquadro Explorer. Poiché la query utilizza un'istruzione CREATE MODEL per creare un modello, non ci sono risultati della query.

Controlla le prestazioni del modello di riferimento

Esegui la funzione ML.GENERATE_TEXT con il modello remoto per vedere come si comporta sui dati di valutazione senza alcuna ottimizzazione.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Esegui la seguente istruzione nell'editor query:

    SELECT *
    FROM
    ML.GENERATE_TEXT(
      MODEL `bqml_tutorial.text_bison_001`,
      (
        SELECT
          CONCAT(
            (SELECT prompt from `bqml_tutorial.transcript_classification`), ' ',
            input_text) AS prompt,
            output_text AS label
        FROM
            `bqml_tutorial.medical_transcript_eval`
      ),
      STRUCT(TRUE AS flatten_json_output))
    ORDER BY ml_generate_text_llm_result;
    

    Se esamini i dati di output e confronti i valori ml_generate_text_llm_result e label, noti che, sebbene il modello di base preveda correttamente molte classificazioni delle trascrizioni, alcune classificazioni in modo errato. Di seguito è riportato un esempio rappresentativo di output non corretto. In questo esempio, la classificazione corretta è Cardiovascular / Pulmonary, non Radiology.

    +-----------------------------+---------------------------------+-------------------------------------------------------------------------+----------------------------+
    | ml_generate_text_llm_result | ml_generate_text_rai_result     | ml_generate_text_status | prompt                                        | label                      |
    +-----------------------------+---------------------------------+-------------------------------------------------------------------------+----------------------------+
    |   Radiology                 | {"blocked":false,"categories":  |                         | Please assign a label for the given medical   | Cardiovascular / Pulmonary |
    |                             | ["Derogatory","Health",         |                         | transcript from among these labels [Allergy / |                            |
    |                             | "Insult","Public Safety",...    |                         | Immunology, Autopsy, Bariatrics,              |                            |
    |                             |                                 |                         | Cardiovascular / Pulmonary, Chiropractic,     |                            |
    |                             |                                 |                         | Consult - History and Phy., Cosmetic /        |                            |
    |                             |                                 |                         | Plastic Surgery, Dentistry, Dermatology,      |                            |
    |                             |                                 |                         | Diets and Nutritions, Discharge Summary, ENT  |                            |
    |                             |                                 |                         | - Otolaryngology, Emergency Room Reports,     |                            |
    |                             |                                 |                         | Endocrinology, Gastroenterology, General      |                            |
    |                             |                                 |                         | Medicine, Hematology - Oncology, Hospice -    |                            |
    |                             |                                 |                         | Palliative Care, IME-QME-Work Comp etc.,      |                            |
    |                             |                                 |                         | Lab Medicine - Pathology, Letters,            |                            |
    |                             |                                 |                         | Nephrology, Neurology, Neurosurgery,          |                            |
    |                             |                                 |                         | Obstetrics / Gynecology, Office Notes,        |                            |
    |                             |                                 |                         | Ophthalmology, Orthopedic, Pain Management,   |                            |
    |                             |                                 |                         | Pediatrics - Neonatal, Physical Medicine -    |                            |
    |                             |                                 |                         | Rehab, Podiatry, Psychiatry / Psychology,     |                            |
    |                             |                                 |                         | Radiology, Rheumatology, SOAP / Chart /       |                            |
    |                             |                                 |                         | Progress Notes, Sleep Medicine, Speech -      |                            |
    |                             |                                 |                         | Language, Surgery, Urology].                  |                            |
    |                             |                                 |                         | TRANSCRIPT:                                   |                            |
    |                             |                                 |                         | INDICATIONS FOR PROCEDURE:, The patient has   |                            |
    |                             |                                 |                         | presented with atypical type right arm        |                            |
    |                             |                                 |                         | discomfort and neck discomfort. She had       |                            |
    |                             |                                 |                         | noninvasive vascular imaging demonstrating    |                            |
    |                             |                                 |                         | suspected right subclavian stenosis. Of note, |                            |
    |                             |                                 |                         | there was bidirectional flow in the right     |                            |
    |                             |                                 |                         | vertebral artery, as well as 250 cm...        |                            |
    +-----------------------------+---------------------------------+-------------------------------------------------------------------------+----------------------------+
    

valuta il modello di riferimento

Per eseguire una valutazione più dettagliata delle prestazioni del modello, utilizza la funzione ML.EVALUATE. Questa funzione calcola le metriche del modello, come precisione, richiamo e punteggio F1, per confrontare le risposte del modello con quelle ideali.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Esegui la seguente istruzione nell'editor query:

    SELECT
     *
    FROM
     ML.EVALUATE(
       MODEL `bqml_tutorial.text_bison_001`,
       (
         SELECT
           CONCAT(
             (SELECT prompt FROM `bqml_tutorial.transcript_classification`), ' ',
             input_text) AS input_text,
             output_text
         FROM
           `bqml_tutorial.medical_transcript_eval`
       ),
       STRUCT('classification' AS task_type))
    ORDER BY label;
    

L'output è simile al seguente:

   +------------------------------+----------------------------------+-------------------------------------------------------------------------+
   | precision           | recall              | f1_score            | label                      | evaluation_status                          |
   +---------------------+---------------------+---------------------+----------------------------+--------------------------------------------+
   | 1.0                 | 0.66666666666666663 | 0.8                 | Allergy / Immunology       | {                                          |
   |                     |                     |                     |                            |  "num_successful_rows": 164,               |
   |                     |                     |                     |                            |  "num_total_rows": 164                     |
   |                     |                     |                     |                            | }                                          |
   +---------------------+---------------------+ --------------------+----------------------------+--------------------------------------------+
   | 1.0                 | 1.0                 | 1.0                 | Autopsy                    | {                                          |
   |                     |                     |                     |                            |  "num_successful_rows": 164,               |
   |                     |                     |                     |                            |  "num_total_rows": 164                     |
   |                     |                     |                     |                            | }                                          |
   +---------------------+---------------------+--------------- -----+----------------------------+--------------------------------------------+
   | 1.0                 | 0.66666666666666663 | 0.8                 | Bariatrics                 | {                                          |
   |                     |                     |                     |                            |  "num_successful_rows": 164,               |
   |                     |                     |                     |                            |  "num_total_rows": 164                     |
   |                     |                     |                     |                            | }                                          |
   +---------------------+---------------------+---------------------+----------------------------+--------------------------------------------+
   

Se esamini i risultati nella colonna f1_score, puoi vedere che le prestazioni del modello variano tra le classi di trascrizione. Valori più alti per il punteggio F1 indicano prestazioni migliori. Il modello di base ha un buon rendimento per la maggior parte delle classi, ma ha prestazioni scarse per altri, ad esempio le classi Cardiovascular / Pulmonary e Chiropractic. In base a ciò, puoi vedere che vale la pena eseguire un'ottimizzazione supervisionata per vedere se è possibile migliorare le prestazioni del modello per questo caso d'uso.

Crea un modello ottimizzato

Crea un modello remoto molto simile a quello creato in Crea un modello, ma questa volta specificando la clausola AS SELECT per fornire i dati di addestramento al fine di ottimizzare il modello. Il completamento di questa query potrebbe richiedere un paio d'ore.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor query, esegui la seguente istruzione per creare un modello remoto:

    CREATE OR REPLACE MODEL `bqml_tutorial.text_bison_001_medical_transcript_tuned`
      REMOTE
        WITH CONNECTION `LOCATION.CONNECTION_ID`
      OPTIONS (
        endpoint = 'text-bison@001',
        max_iterations = 300,
        data_split_method = 'no_split')
    AS
    SELECT
      CONCAT(
        (SELECT prompt FROM `bqml_tutorial.transcript_classification`), ' ',
        input_text) AS prompt,
        output_text AS label
    FROM
      `bqml_tutorial.medical_transcript_train`;
    

    Sostituisci quanto segue:

    • LOCATION: posizione della connessione.
    • CONNECTION_ID: l'ID della tua connessione BigQuery.

      Quando visualizza i dettagli della connessione nella console Google Cloud, CONNECTION_ID è il valore nell'ultima sezione dell'ID connessione completo mostrato in ID connessione, ad esempio projects/myproject/locations/connection_location/connections/myconnection.

    Il completamento della query potrebbe richiedere diverse ore, dopodiché il modello text_bison_001_medical_transcript_tuned viene visualizzato nel set di dati bqml_tutorial nel riquadro Explorer. Poiché la query utilizza un'istruzione CREATE MODEL per creare un modello, non ci sono risultati della query.

Controlla le prestazioni del modello ottimizzato

Esegui la funzione ML.GENERATE_TEXT per vedere le prestazioni del modello ottimizzato sui dati di valutazione.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Esegui la seguente istruzione nell'editor query:

    SELECT *
    FROM
      ML.GENERATE_TEXT(
        MODEL `bqml_tutorial.text_bison_001_medical_transcript_tuned`,
        (
          SELECT
            CONCAT(
              (SELECT prompt from `bqml_tutorial.transcript_classification`), ' ',
              input_text) AS prompt,
              output_text AS label
          FROM
            `bqml_tutorial.medical_transcript_eval`
        ),
        STRUCT(TRUE AS flatten_json_output))
    ORDER BY ml_generate_text_llm_result;
    

    Se esamini i dati di output, noterai che il modello ottimizzato classifica correttamente più trascrizioni. L'esempio esaminato in precedenza è classificato correttamente come Cardiovascular/ Pulmonary.

    +-----------------------------+---------------------------------+-------------------------------------------------------------------------+----------------------------+
    | ml_generate_text_llm_result | ml_generate_text_rai_result     | ml_generate_text_status | prompt                                        | label                      |
    +-----------------------------+---------------------------------+-------------------------------------------------------------------------+----------------------------+
    |  Cardiovascular/Pulmonary   | {"blocked":false,"categories":  |                         | Please assign a label for the given medical   | Cardiovascular / Pulmonary |
    |                             | ["Derogatory","Health",         |                         | transcript from among these labels [Allergy / |                            |
    |                             | "Insult","Public Safety",...    |                         | Immunology, Autopsy, Bariatrics,              |                            |
    |                             |                                 |                         | Cardiovascular / Pulmonary, Chiropractic,     |                            |
    |                             |                                 |                         | Consult - History and Phy., Cosmetic /        |                            |
    |                             |                                 |                         | Plastic Surgery, Dentistry, Dermatology,      |                            |
    |                             |                                 |                         | Diets and Nutritions, Discharge Summary, ENT  |                            |
    |                             |                                 |                         | - Otolaryngology, Emergency Room Reports,     |                            |
    |                             |                                 |                         | Endocrinology, Gastroenterology, General      |                            |
    |                             |                                 |                         | Medicine, Hematology - Oncology, Hospice -    |                            |
    |                             |                                 |                         | Palliative Care, IME-QME-Work Comp etc.,      |                            |
    |                             |                                 |                         | Lab Medicine - Pathology, Letters,            |                            |
    |                             |                                 |                         | Nephrology, Neurology, Neurosurgery,          |                            |
    |                             |                                 |                         | Obstetrics / Gynecology, Office Notes,        |                            |
    |                             |                                 |                         | Ophthalmology, Orthopedic, Pain Management,   |                            |
    |                             |                                 |                         | Pediatrics - Neonatal, Physical Medicine -    |                            |
    |                             |                                 |                         | Rehab, Podiatry, Psychiatry / Psychology,     |                            |
    |                             |                                 |                         | Radiology, Rheumatology, SOAP / Chart /       |                            |
    |                             |                                 |                         | Progress Notes, Sleep Medicine, Speech -      |                            |
    |                             |                                 |                         | Language, Surgery, Urology].                  |                            |
    |                             |                                 |                         | TRANSCRIPT:                                   |                            |
    |                             |                                 |                         | INDICATIONS FOR PROCEDURE:, The patient has   |                            |
    |                             |                                 |                         | presented with atypical type right arm        |                            |
    |                             |                                 |                         | discomfort and neck discomfort. She had       |                            |
    |                             |                                 |                         | noninvasive vascular imaging demonstrating    |                            |
    |                             |                                 |                         | suspected right subclavian stenosis. Of note, |                            |
    |                             |                                 |                         | there was bidirectional flow in the right     |                            |
    |                             |                                 |                         | vertebral artery, as well as 250 cm...        |                            |
    +-----------------------------+---------------------------------+-------------------------------------------------------------------------+----------------------------+
    

valuta il modello ottimizzato

Utilizza la funzione ML.EVALUATE per confrontare le risposte del modello ottimizzato con le risposte ideali.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Esegui la seguente istruzione nell'editor query:

    SELECT
     *
    FROM
     ML.EVALUATE(
       MODEL `bqml_tutorial.text_bison_001_medical_transcript_tuned`,
       (
         SELECT
           CONCAT(
             (SELECT prompt from `bqml_tutorial.transcript_classification`), ' ',
               input_text) AS prompt,
               output_text AS label
         FROM
           `bqml_tutorial.medical_transcript_eval`
       ),
       STRUCT('classification' AS task_type))
       ORDER BY label;
    

L'output è simile al seguente:

   +------------------------------+----------------------------------+-------------------------------------------------------------------------+
   | precision           | recall              | f1_score            | label                      | evaluation_status                          |
   +---------------------+---------------------+---------------------+----------------------------+--------------------------------------------+
   | 0.8571428571428571  | 0.66666666666666663 | 0.75                | Dermatology                | {                                          |
   |                     |                     |                     |                            |  "num_successful_rows": 164,               |
   |                     |                     |                     |                            |  "num_total_rows": 164                     |
   |                     |                     |                     |                            | }                                          |
   +---------------------+---------------------+ --------------------+----------------------------+--------------------------------------------+
   | 0.54545454545454541 | 0.4                 | 0.46153846153846156 | Discharge Summary          | {                                          |
   |                     |                     |                     |                            |  "num_successful_rows": 164,               |
   |                     |                     |                     |                            |  "num_total_rows": 164                     |
   |                     |                     |                     |                            | }                                          |
   +---------------------+---------------------+--------------- -----+----------------------------+--------------------------------------------+
   | 1.0                 | 1.0                 | 1.0                 | Diets and Nutritions       | {                                          |
   |                     |                     |                     |                            |  "num_successful_rows": 164,               |
   |                     |                     |                     |                            |  "num_total_rows": 164                     |
   |                     |                     |                     |                            | }                                          |
   +---------------------+---------------------+---------------------+----------------------------+--------------------------------------------+
   

Puoi notare che, anche se il set di dati di addestramento ha utilizzato solo 519 esempi, c'è un netto miglioramento delle prestazioni. I punteggi F1 sulle etichette in cui il modello di base non ha funzionato altrettanto bene sono migliorati, con la media dei punteggi F1 in tutte le etichette che è aumentata da 0,54 a 0,63.

Esegui la pulizia

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.