Feinabstimmung und Bewertung verwenden, um die Modelleistung zu verbessern

In dieser Anleitung wird gezeigt, wie Sie ein BigQuery ML-Remote-Modell erstellen, das auf ein Vertex AI-gemini-1.0-pro-002-Modell verweist. Anschließend verwenden Sie Überwachte Abstimmung um das Modell mit neuen Trainingsdaten zu optimieren, gefolgt von der Bewertung des Modells mit der ML.EVALUATE Funktion

Dies kann Ihnen bei der Behebung von Szenarien helfen, in denen Sie das gehostete Vertex AI-Modell anpassen müssen, z. B. wenn das erwartete Verhalten des Modells schwierig zu definieren ist in einem Prompt oder wenn Prompts nicht die erwarteten Ergebnisse generieren, d. h. Ergebnisse die konsistent genug sind. Die überwachte Abstimmung wirkt sich auch so auf das Modell aus:

  • Leitet das Modell so, dass bestimmte Antwortstile zurückgegeben werden, z. B. mit prägnanteren oder ausführlicheren Antworten.
  • Bringt dem Modell neue Verhaltensweisen bei, z. B. das Beantworten von Prompts als eine bestimmte Persona.
  • Bewirkt, dass sich das Modell mit neuen Informationen aktualisiert.

Erforderliche Berechtigungen

  • Zum Erstellen einer Verbindung benötigen Sie die folgende Rolle der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM):

    • roles/bigquery.connectionAdmin
  • Zum Erteilen von Berechtigungen für das Dienstkonto der Verbindung benötigen Sie die folgende Berechtigung:

    • resourcemanager.projects.setIamPolicy
  • Zum Erstellen des Modells mit BigQuery ML benötigen Sie die folgenden IAM-Berechtigungen:

    • bigquery.jobs.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
    • bigquery.models.updateMetadata
  • Zum Ausführen von Inferenzen benötigen Sie die folgenden Berechtigungen:

    • bigquery.tables.getData für die Tabelle
    • bigquery.models.getData für das Modell
    • bigquery.jobs.create

Hinweise

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

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the BigQuery, BigQuery Connection, Vertex AI, and Compute Engine APIs.

    Enable the APIs

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von 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 gemini-1.0-pro-002 model.

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Weitere Informationen finden Sie in den folgenden Ressourcen:

Dataset erstellen

Erstellen Sie ein BigQuery-Dataset, um Ihr ML-Modell zu speichern:

  1. Rufen Sie in der Google Cloud Console die Seite „BigQuery“ auf.

    Zur Seite „BigQuery“

  2. Klicken Sie im Bereich Explorer auf den Namen Ihres Projekts.

  3. Klicken Sie auf Aktionen ansehen > Dataset erstellen.

    Dataset erstellen

  4. Führen Sie auf der Seite Dataset erstellen die folgenden Schritte aus:

    • Geben Sie unter Dataset-ID bqml_tutorial ein.

    • Wählen Sie als Standorttyp die Option Mehrere Regionen und dann USA (mehrere Regionen in den USA) aus.

      Die öffentlichen Datasets sind am multiregionalen Standort US gespeichert. Der Einfachheit halber sollten Sie Ihr Dataset am selben Standort speichern.

    • Übernehmen Sie die verbleibenden Standardeinstellungen unverändert und klicken Sie auf Dataset erstellen.

      Seite "Dataset erstellen"

Verbindung herstellen

Erstellen Sie eine Cloud-Ressourcenverbindung und rufen Sie die Dienstkonto-ID der Verbindung ab. Erstellen Sie die Verbindung in demselben Standort wie dem des von Ihnen im vorherigen Schritt erstellten Datasets.

Wählen Sie eine der folgenden Optionen aus:

Console

  1. Rufen Sie die Seite BigQuery auf.

    BigQuery aufrufen

  2. Klicken Sie auf Hinzufügen und dann auf Verbindungen zu externen Datenquellen, um eine Verbindung zu erstellen.

  3. Wählen Sie in der Liste Verbindungstyp die Option Vertex AI-Remote-Modelle, Remote-Funktionen und BigLake (Cloud Resource) aus.

  4. Geben Sie im Feld Verbindungs-ID einen Namen für die Verbindung ein.

  5. Klicken Sie auf Verbindung erstellen.

  6. Klicken Sie auf Zur Verbindung.

  7. Kopieren Sie im Bereich Verbindungsinformationen die Dienstkonto-ID zur Verwendung in einem späteren Schritt.

bq

  1. Erstellen Sie in einer Befehlszeilenumgebung eine Verbindung:

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

    Der Parameter --project_id überschreibt das Standardprojekt.

    Ersetzen Sie dabei Folgendes:

    • REGION: Ihre Verbindungsregion
    • PROJECT_ID: Ihre Google Cloud-Projekt-ID
    • CONNECTION_ID: eine ID für Ihre Verbindung

    Wenn Sie eine Verbindungsressource herstellen, erstellt BigQuery ein eindeutiges Systemdienstkonto und ordnet es der Verbindung zu.

    Fehlerbehebung:Wird der folgende Verbindungsfehler angezeigt, aktualisieren Sie das Google Cloud SDK:

    Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
    
  2. Rufen Sie die Dienstkonto-ID ab und kopieren Sie sie zur Verwendung in einem späteren Schritt:

    bq show --connection PROJECT_ID.REGION.CONNECTION_ID

    Die Ausgabe sieht in etwa so aus:

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

Terraform

Hängen Sie folgenden Abschnitt an Ihre main.tf-Datei an.

 ## 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 {}
}        
Ersetzen Sie Folgendes:

  • CONNECTION_ID: eine ID für Ihre Verbindung
  • PROJECT_ID: Ihre Google Cloud-Projekt-ID
  • REGION: Ihre Verbindungsregion

Dem Dienstkonto der Verbindung Zugriff gewähren

Gewähren Sie Ihrem Dienstkonto die Rolle „Vertex AI Service Agent“, damit das Dienstkonto auf Vertex AI zugreifen kann. Fehlschlag beim Gewähren dieser Rolle führt zu einem Fehler. Wählen Sie eine der folgenden Optionen aus:

Console

  1. Zur Seite IAM & Verwaltung.

    IAM & Verwaltung aufrufen

  2. Klicken Sie auf Zugriff erlauben.

    Das Dialogfeld Principals hinzufügen wird geöffnet.

  3. Geben Sie im Feld Neue Hauptkonten die Dienstkonto-ID ein, die Sie zuvor kopiert haben.

  4. Klicken Sie auf Rolle auswählen.

  5. Geben Sie unter Filter Vertex AI Service Agent ein und wählen Sie dann die Rolle aus.

  6. Klicken Sie auf Speichern.

gcloud

Führen Sie den Befehl gcloud projects add-iam-policy-binding aus:

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

Ersetzen Sie Folgendes:

  • PROJECT_NUMBER: Ihre Projektnummer
  • MEMBER: Die Dienstkonto-ID, die Sie zuvor kopiert haben

Das mit Ihrer Verbindung verknüpfte Dienstkonto ist eine Instanz des Dienst-Agent für BigQuery Connection Delegation, daher ist es akzeptabel, ihm eine Dienst-Agent-Rolle zuzuweisen.

Dem Compute Engine-Standarddienstkonto Zugriff gewähren

Wenn Sie die Compute Engine API aktivieren, wird dem Compute Engine-Standarddienstkonto automatisch die Bearbeiterrolle für das Projekt zugewiesen, es sei denn, Sie haben dieses Verhalten für Ihr Projekt deaktiviert. In diesem Fall müssen Sie die Rolle „Bearbeiter“ noch einmal dem Compute Engine-Standarddienstkonto zuweisen, damit es die Berechtigungen zum Erstellen und Optimieren eines Remote-Modells hat.

Console

  1. Zur Seite IAM & Verwaltung.

    IAM & Verwaltung aufrufen

  2. Klicken Sie auf Zugriff gewähren.

  3. Geben Sie unter Neue Hauptkonten die Dienstkonto-ID ein, diese lautet PROJECT_NUMBER-compute@developer.gserviceaccount.com.

  4. Klicken Sie auf Rolle auswählen.

  5. Wählen Sie unter Rolle auswählen die Option Einfach und dann Bearbeiter aus.

  6. Klicken Sie auf Speichern.

gcloud

Führen Sie den Befehl gcloud projects add-iam-policy-binding aus:

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

Dabei gilt:

  • PROJECT_NUMBER: Ihre Projektnummer.
  • MEMBER: die Dienstkonto-ID (PROJECT_NUMBER-compute@developer.gserviceaccount.com).

Abstimmungsdienst-Agent erstellen

Erstellen Sie eine Instanz des Vertex AI Secure Fine Tuning Service Agent:

  1. Verwenden Sie den gcloud beta services identity create-Befehl, um den Abstimmungsdienst-Agent zu erstellen:

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

    Ersetzen Sie PROJECT_NUMBER durch die Projekt-ID.

  2. Verwenden Sie den gcloud projects add-iam-policy-binding-Befehl, um dem Abstimmungsdienst-Agent die Rolle Vertex AI Tuning Service Agent (roles/aiplatform.tuningServiceAgent) zu gewähren:

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

    Ersetzen Sie PROJECT_NUMBER durch die Projekt-ID.

Testtabellen erstellen

Erstellen Sie Tabellen mit Trainings- und Bewertungsdaten basierend auf dem öffentlichen MTSamples-Dataset mit transkribierten medizinischen Berichten. Dieses Dataset hat eine input_text-Spalte, die das medizinische Transkript enthält und eine output_text-Spalte mit dem Label, das die Kategorie des Transkripts am besten beschreibt, z. B. Allergy/Immunology, Dentistry oder Cardiovascular/Pulmonary. Erstellen Sie außerdem eine Tabelle, die die Prompt-Daten zur Klassifizierung medizinischer Transkripte enthält.

Sie importieren die medizinischen Transkriptdaten aus einem öffentlichen Cloud Storage-Bucket.

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Führen Sie im Query Editor die folgende Anweisung aus, um eine Tabelle mit Bewertungsdaten zu erstellen:

    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. Führen Sie im Query Editor die folgende Anweisung aus, um eine Tabelle mit Trainingsdaten zu erstellen:

    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. Führen Sie im Abfrageeditor die folgende Anweisung aus, um eine Prompt-Tabelle zu erstellen:

    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);

Basismodell erstellen

Erstellen Sie ein Remote-Modell über dem gemini-1.0-pro-002-Modell von Vertex AI, das Sie zum Klassifizieren medizinischer Transkripte verwenden können.

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Führen Sie im Abfrageeditor die folgende Anweisung aus, um ein Remote-Modell zu erstellen:

    CREATE OR REPLACE MODEL `bqml_tutorial.gemini-baseline`
    REMOTE WITH CONNECTION `LOCATION.CONNECTION_ID`
    OPTIONS (ENDPOINT ='gemini-1.0-pro-002');

    Ersetzen Sie Folgendes:

    • LOCATION: Standort der Verbindung
    • CONNECTION_ID ist die ID Ihrer BigQuery-Verbindung.

      Wenn Sie sich Verbindungsdetails in der Google Cloud Console ansehen, ist die Verbindungs-ID der Wert CONNECTION_ID im letzten Abschnitt der voll qualifizierten Verbindungs-ID, der unter Verbindungs-ID angezeigt wird, z. B. projects/myproject/locations/connection_location/connections/myconnection

    Die Abfrage dauert mehrere Sekunden. Anschließend wird das Modell gemini-baseline im bqml_tutorial-Dataset des Bereichs Explorer angezeigt. Da die Abfrage eine CREATE MODEL-Anweisung zum Erstellen eines Modells verwendet, gibt es keine Abfrageergebnisse.

Leistung des Basismodells prüfen

Führen Sie die ML.GENERATE_TEXT-Funktion mit dem Remote-Modell aus, um zu sehen, wie es mit den Bewertungsdaten ohne Feinabstimmung funktioniert.

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Führen Sie im Abfrageeditor folgende Abfrage aus:

    SELECT *
    FROM
    ML.GENERATE_TEXT(
      MODEL `bqml_tutorial.gemini-baseline`,
      (
        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;

    Wenn Sie die Ausgabedaten untersuchen und ml_generate_text_llm_result und label vergleichen, sehen Sie, dass das Basismodell zwar viele Klassifizierungen von Transkripten korrekt vorhersagt, einige Transkripte aber falsch klassifiziert. Hier ein repräsentatives Beispiel für inkorrekte Ausgabe. In diesem Beispiel lautet die korrekte Klassifizierung: Autopsy, nicht Pulmonary Embolism.

    +------------------------------------+---------------------------------+-------------------------------------------------------------------------+--------------+
    | ml_generate_text_llm_result        | ml_generate_text_rai_result     | ml_generate_text_status | prompt                                        | label        |
    +------------------------------------+---------------------------------+-------------------------------------------------------------------------+--------------+
    | ## Label:Pulmonary Embolism        | [{"category":1,"probability":1  |                         | Please assign a label for the given medical   | Autopsy      |
    |                                    | ,"probability_score":0.19433    |                         | transcript from among these labels [Allergy / |              |
    |                                    | "594,"severity":2,...           |                         | 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:                                   |              |
    |                                    |                                 |                         | SUMMARY OF CLINICAL HISTORY:,                 |              |
    |                                    |                                 |                         | OF The patient was a 35-year-old              |              |
    |                                    |                                 |                         | African-American male with no                 |              |
    |                                    |                                 |                         | significant past medical history              |              |
    |                                    |                                 |                         | a who called EMS with shortness of breath     |              |
    |                                    |                                 |                         | had and chest pain.  Upon EMS                 |              |
    |                                    |                                 |                         | arrival, patient was...                       |              |
    +------------------------------------+---------------------------------+-------------------------------------------------------------------------+--------------+
    

Basismodell bewerten

Für eine detailliertere Bewertung der Modellleistung verwenden Sie die ML.EVALUATE-Funktion. Diese Funktion berechnet Modellmesswerte wie Precision, Recall und F1-Wert, um die Modellantworten mit idealen Antworten zu vergleichen.

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Führen Sie im Abfrageeditor folgende Abfrage aus:

    SELECT
     *
    FROM
     ML.EVALUATE(
       MODEL `bqml_tutorial.gemini-baseline`,
       (
         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;

Die Ausgabe sieht dann ungefähr so aus:

   +------------------------------+----------------------------------+-------------------------------------------------------------------------+
   | precision           | recall              | f1_score            | label                      | evaluation_status                          |
   +---------------------+---------------------+---------------------+----------------------------+--------------------------------------------+
   | 0.0                 | 0.0                 | 0.0                 | Allergy / Immunology       | {                                          |
   |                     |                     |                     |                            |  "num_successful_rows": 474,               |
   |                     |                     |                     |                            |  "num_total_rows": 492                     |
   |                     |                     |                     |                            | }                                          |
   +---------------------+---------------------+ --------------------+----------------------------+--------------------------------------------+
   | 0.0                 | 0.0                 | 0.0                 | Autopsy                    | {                                          |
   |                     |                     |                     |                            |  "num_successful_rows": 474,               |
   |                     |                     |                     |                            |  "num_total_rows": 492                     |
   |                     |                     |                     |                            | }                                          |
   +---------------------+---------------------+--------------- -----+----------------------------+--------------------------------------------+
   | 0.0                 | 0.0                 | 0.0                 | Bariatrics                 | {                                          |
   |                     |                     |                     |                            |  "num_successful_rows": 474,               |
   |                     |                     |                     |                            |  "num_total_rows": 492                     |
   |                     |                     |                     |                            | }                                          |
   +---------------------+---------------------+---------------------+----------------------------+--------------------------------------------+
   

Wie Sie sehen, ist die Leistung des Basismodells für diese Daten aufgrund der niedrigen f1-Werte nicht zufriedenstellend. Das bedeutet, dass es sich lohnt, eine überwachte Abstimmung vorzunehmen, um zu sehen, ob sich die Modellleistung für diesen Anwendungsfall verbessern lässt.

Abgestimmtes Modell erstellen

Erstellen Sie ein Remote-Modell, das dem ähnelt, das Sie unter Modell erstellen erstellt haben, aber geben Sie dieses Mal die AS SELECT-Klausel an, um die Trainingsdaten bereitzustellen, damit das Modell optimiert wird. Diese Abfrage kann einige Stunden dauern.

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Führen Sie im Query Editor die folgende Anweisung aus, um eine Remote-Modell zu erstellen:

    CREATE OR REPLACE MODEL `bqml_tutorial.gemini-tuned`
      REMOTE
        WITH CONNECTION `LOCATION.CONNECTION_ID`
      OPTIONS (
        endpoint = 'gemini-1.0-pro-002',
        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`;

    Ersetzen Sie Folgendes:

    • LOCATION: Standort der Verbindung
    • CONNECTION_ID ist die ID Ihrer BigQuery-Verbindung.

      Wenn Sie sich Verbindungsdetails in der Google Cloud Console ansehen, ist die Verbindungs-ID der Wert CONNECTION_ID im letzten Abschnitt der voll qualifizierten Verbindungs-ID, der unter Verbindungs-ID angezeigt wird, z. B. projects/myproject/locations/connection_location/connections/myconnection

    Es kann mehrere Stunden dauern, bis die Abfrage abgeschlossen ist. Das gemini-tuned Modell erscheint danach im bqml_tutorial Dataset im Bereich Explorer. Da die Abfrage eine CREATE MODEL-Anweisung zum Erstellen eines Modells verwendet, gibt es keine Abfrageergebnisse.

Leistung des abgestimmten Modells prüfen

Führen Sie die Funktion ML.GENERATE_TEXT aus, um die Leistung des abgestimmten Modells für die Bewertungsdaten zu sehen.

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Führen Sie im Abfrageeditor folgende Abfrage aus:

    SELECT *
    FROM
      ML.GENERATE_TEXT(
        MODEL `bqml_tutorial.gemini-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;

    Bei der Überprüfung der Ausgabedaten stellen Sie fest, dass das abgestimmte Modell mehr Transkripte korrekt klassifiziert. Das Beispiel, das Sie sich zuvor angeschaut haben, ist jetzt korrekt als Cardiovascular/ Pulmonary klassifiziert.

    +-----------------------------+---------------------------------+-------------------------------------------------------------------------+----------------------------+
    | ml_generate_text_llm_result | ml_generate_text_rai_result     | ml_generate_text_status | prompt                                        | label                      |
    +-----------------------------+---------------------------------+-------------------------------------------------------------------------+----------------------------+
    |  Autopsy                    | [{"category":1,"probability":1  |                         | Please assign a label for the given medical   | Autopsy                    |
    |                             | ,"probability_score":0.19335938 |                         | transcript from among these labels [Allergy / |                            |
    |                             | ,"severity":2,"severity_scor... |                         | 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:                                   |                            |
    |                             |                                 |                         | SUMMARY OF CLINICAL HISTORY:,                 |                            |
    |                             |                                 |                         | The patient was a 35-year-old                 |                            |
    |                             |                                 |                         | African-American male with no                 |                            |
    |                             |                                 |                         | significant past medical history              |                            |
    |                             |                                 |                         | a who called EMS with shortness of breath     |                            |
    |                             |                                 |                         | had and chest pain.  Upon EMS                 |                            |
    |                             |                                 |                         | arrival, patient was...                       |                            |
    +-----------------------------+---------------------------------+-------------------------------------------------------------------------+----------------------------+
    

Abgestimmtes Modell bewerten

Mit der Funktion ML.EVALUATE können Sie die Antworten des abgestimmten Modells mit den idealen Antworten vergleichen.

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Führen Sie im Abfrageeditor folgende Abfrage aus:

    SELECT
     *
    FROM
     ML.EVALUATE(
       MODEL `bqml_tutorial.gemini-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;

Die Ausgabe sieht dann ungefähr so aus:

   +------------------------------+----------------------------------+-------------------------------------------------------------------------+
   | precision           | recall              | f1_score            | label                      | evaluation_status                          |
   +---------------------+---------------------+---------------------+----------------------------+--------------------------------------------+
   | 0.5                 | 0.66666666666666663 | 0.5714285714285714  | Allergy/Immunology         | {                                          |
   |                     |                     |                     |                            |  "num_successful_rows": 439,               |
   |                     |                     |                     |                            |  "num_total_rows": 492                     |
   |                     |                     |                     |                            | }                                          |
   +---------------------+---------------------+ --------------------+----------------------------+--------------------------------------------+
   | 1.0                 | 1.0                 | 1.0                 | Autopsy                    | {                                          |
   |                     |                     |                     |                            |  "num_successful_rows": 439,               |
   |                     |                     |                     |                            |  "num_total_rows": 492                     |
   |                     |                     |                     |                            | }                                          |
   +---------------------+---------------------+--------------- -----+----------------------------+--------------------------------------------+
   | 0.5                 | 1.0                 | 0.66666666666666663 | Bariatrics                 | {                                          |
   |                     |                     |                     |                            |  "num_successful_rows": 439,               |
   |                     |                     |                     |                            |  "num_total_rows": 492                     |
   |                     |                     |                     |                            | }                                          |
   +---------------------+---------------------+---------------------+----------------------------+--------------------------------------------+
   

Obwohl im Trainings-Dataset nur 519 Beispiele verwendet wurden, hat sich die Leistung deutlich verbessert, wie die höheren f1-Werte zeigen.

Bereinigen

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.