チューニングと評価を使用して LLM のパフォーマンスを改善する

このドキュメントでは、Vertex AI の text-bison 基盤モデルを参照する BigQuery ML リモートモデルを作成する方法について説明します。次に、教師ありチューニングを使用して新しいトレーニング データでモデルを調整してから、ML.EVALUATE 関数でモデルを評価します。

これにより、ホストされた Vertex AI モデルをカスタマイズする必要があるシナリオ(モデルの想定される動作をプロンプトで簡潔に定義できない場合や、プロンプトで想定される結果が一貫して得られない場合など)に対処できます。教師ありチューニングは、モデルにも次のような影響を与えます。

  • モデルが特定のレスポンスの種類(簡潔なレスポンスや詳細なレスポンスなど)を返すようにガイドします。
  • モデルに新しい動作を教えます(特定のペルソナとしてプロンプトに応答するなど)。
  • モデルが新しい情報で更新されるようにします。

必要な権限

  • 接続を作成するには、次の Identity and Access Management(IAM)ロールが必要です。

    • roles/bigquery.connectionAdmin
  • 接続のサービス アカウントに権限を付与するには、次の権限が必要です。

    • resourcemanager.projects.setIamPolicy
  • BigQuery ML を使用してモデルを作成するには、次の IAM 権限が必要です。

    • bigquery.jobs.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
    • bigquery.models.updateMetadata
  • 推論を実行するには、次の権限が必要です。

    • テーブルに対する bigquery.tables.getData
    • モデルに対する bigquery.models.getData
    • bigquery.jobs.create

始める前に

  1. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  2. Google Cloud プロジェクトで課金が有効になっていることを確認します

  3. BigQuery, BigQuery Connection, Vertex AI, and Compute Engine API を有効にします。

    API を有効にする

費用

このドキュメントでは、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.

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。 新しい Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

詳しくは、次のリソースをご覧ください。

データセットを作成する

ML モデルを保存する BigQuery データセットを作成します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] ページに移動

  2. [エクスプローラ] ペインで、プロジェクト名をクリックします。

  3. 「アクションを表示」> [データセットを作成] をクリックします。

    データセットを作成する。

  4. [データセットを作成する] ページで、次の操作を行います。

    • [データセット ID] に「bqml_tutorial」と入力します。

    • [ロケーション タイプ] で [マルチリージョン] を選択してから、[US (米国の複数のリージョン)] を選択します。

      一般公開データセットは US マルチリージョンに保存されています。わかりやすくするため、データセットを同じロケーションに保存します。

    • 残りのデフォルトの設定は変更せず、[データセットを作成] をクリックします。

      データセットの作成ページ。

接続を作成する

クラウド リソース接続を作成し、接続のサービス アカウントを取得します。前の手順で作成したデータセットと同じロケーションに接続を作成します。

次のオプションのいずれかを選択します。

コンソール

  1. [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. 接続を作成するには、[追加] をクリックし、続いて [外部データソースへの接続] をクリックします。

  3. [接続タイプ] リストで、[Vertex AI リモートモデル、リモート関数、BigLake(Cloud リソース)] を選択します。

  4. [接続 ID] フィールドに接続の名前を入力します。

  5. [接続を作成] をクリックします。

  6. [接続へ移動] をクリックします。

  7. [接続情報] ペインで、次の手順で使用するサービス アカウント ID をコピーします。

bq

  1. コマンドライン環境で接続を作成します。

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

    --project_id パラメータは、デフォルト プロジェクトをオーバーライドします。

    次のように置き換えます。

    接続リソースを作成すると、BigQuery は、一意のシステム サービス アカウントを作成し、それを接続に関連付けます。

    トラブルシューティング: 次の接続エラーが発生した場合は、Google Cloud SDK を更新します。

    Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
    
  2. 後の手順で使用するため、サービス アカウント ID を取得してコピーします。

    bq show --connection PROJECT_ID.REGION.CONNECTION_ID
    

    出力は次のようになります。

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

Terraform

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 {}
}        
次のように置き換えます。

サービス アカウントにアクセス権を付与する

サービス アカウントが Vertex AI にアクセスできるよう、サービス アカウントに Vertex AI サービス エージェント ロールを付与します。このロールを付与しないと、エラーが発生します。次のオプションのいずれかを選択します。

コンソール

  1. [IAM と管理] ページに移動します。

    [IAM と管理] に移動

  2. [アクセスを許可] をクリックします。

    [プリンシパルを追加] ダイアログが開きます。

  3. [新しいプリンシパル] フィールドに、前の手順でコピーしたサービス アカウント ID を入力します。

  4. [ロールを選択] をクリックします。

  5. [フィルタ] に「Vertex AI Service Agent」と入力して、そのロールを選択します。

  6. [保存] をクリックします。

gcloud

gcloud projects add-iam-policy-binding コマンドを実行します。

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

次のように置き換えます。

  • PROJECT_NUMBER: プロジェクトの番号
  • MEMBER: 先ほどコピーしたサービス アカウント ID

接続に関連付けられたサービス アカウントは BigQuery Connection Delegation サービス エージェントのインスタンスであるため、サービス エージェントのロールを割り当てることができます。

Compute Engine のデフォルト サービス アカウントにアクセス権を付与する

Compute Engine API を有効にすると、Compute Engine のデフォルト サービス アカウントにプロジェクトの編集者ロールが自動的に付与されます。ただし、プロジェクトでこの動作を無効にしている場合は除きます。その場合は、Compute Engine のデフォルト サービス アカウントに編集者ロールを再度付与して、リモートモデルを作成してチューニングするための十分な権限を付与する必要があります。

コンソール

  1. [IAM と管理] ページに移動します。

    [IAM と管理] に移動

  2. [アクセス権を付与] をクリックします。

  3. [新しいプリンシパル] に、サービス アカウント ID(PROJECT_NUMBER-compute@developer.gserviceaccount.com)を入力します。

  4. [ロールを選択] をクリックします。

  5. [ロールを選択] で [基本] を選択し、[編集者] を選択します。

  6. [保存] をクリックします。

gcloud

gcloud projects add-iam-policy-binding コマンドを実行します。

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

次のように置き換えます。

  • PROJECT_NUMBER: プロジェクトの番号。
  • MEMBER: サービス アカウント ID(PROJECT_NUMBER-compute@developer.gserviceaccount.com)。

チューニング サービス エージェントを作成する

AI Platform のファイン チューニング サービス エージェントのインスタンスを作成する手順は次のとおりです。

  1. gcloud beta services identity create コマンドを使用して、チューニング サービス エージェントを作成します。

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

    PROJECT_NUMBER は、使用するプロジェクト番号に置き換えます。

  2. gcloud projects add-iam-policy-binding コマンドを使用して、チューニング サービス エージェントに 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'
    

    PROJECT_NUMBER は、使用するプロジェクト番号に置き換えます。

テストテーブルを作成する

音声文字変換された医療レポートである一般公開 MTSamples データセットに基づいて、トレーニング データと評価データのテーブルを作成します。このデータセットには、医療記録が含まれる input_text 列と、音声文字変換のカテゴリを最もよく表すラベル(Allergy/ImmunologyDentistryCardiovascular/Pulmonary など)が含まれる output_text 列があります。また、医療関係の音声文字変換の分類用プロンプト データを含むテーブルを作成します。

一般公開された Cloud Storage バケットから医療関係の音声文字変換データをインポートします。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで次のステートメントを実行して、評価データのテーブルを作成します。

    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. クエリエディタで次のステートメントを実行して、トレーニング データのテーブルを作成します。

    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. クエリエディタで次のステートメントを実行して、プロンプト テーブルを作成します。

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

ベースライン モデルを作成する

Vertex AI text-bison モデルにリモートモデルを作成します。このモデルは、医療関係の音声文字変換の分類に使用できます。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで次のステートメントを実行して、リモートモデルを作成します。

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

    次のように置き換えます。

    • LOCATION: 接続のロケーション。
    • CONNECTION_ID: BigQuery 接続の ID。

      Google Cloud コンソールで接続の詳細を表示する場合、CONNECTION_ID は、[接続 ID] に表示される完全修飾接続 ID の最後のセクションの値になります(例: projects/myproject/locations/connection_location/connections/myconnection)。

    クエリが完了するまでに数秒かかります。完了後、text_bison_001 モデルが [エクスプローラ] ペインの bqml_tutorial データセットに表示されます。このクエリでは CREATE MODEL ステートメントを使用してモデルを作成するため、クエリの結果はありません。

ベースライン モデルのパフォーマンスを確認する

リモートモデルで ML.GENERATE_TEXT 関数を実行し、チューニングされていない評価データでどのように動作するかを確認します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで、次のステートメントを実行します。

    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;
    

    出力データを調べて ml_generate_text_llm_resultlabel の値を比較すると、ベースライン モデルは多くの音声文字変換の分類を正しく予測していますが、一部の音声文字変換を誤って分類していることがわかります。以下は、誤った出力の代表的な例です。この例では、正しい分類は Cardiovascular / Pulmonary であり、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...        |                            |
    +-----------------------------+---------------------------------+-------------------------------------------------------------------------+----------------------------+
    

ベースライン モデルを評価する

モデルのパフォーマンスをより詳細に評価するには、ML.EVALUATE 関数を使用します。この関数は、モデルのレスポンスと理想的なレスポンスとの比較を確認するために、適合率再現率F1 スコアなどのモデル指標を計算します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで、次のステートメントを実行します。

    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;
    

出力は次のようになります。

   +------------------------------+----------------------------------+-------------------------------------------------------------------------+
   | 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                     |
   |                     |                     |                     |                            | }                                          |
   +---------------------+---------------------+---------------------+----------------------------+--------------------------------------------+
   

f1_score 列の結果を見ると、モデルのパフォーマンスが音声文字変換のクラスによって異なることがわかります。F1 スコア値が高いほど、パフォーマンスは優れています。ベースライン モデルは、ほとんどのクラスでパフォーマンスが良好ですが、Cardiovascular / Pulmonary クラスや Chiropractic クラスなど、他のクラスではパフォーマンスが低下します。この結果に基づいて、このユースケースのモデル パフォーマンスを改善できるかどうかを確認するために、教師ありチューニングを行う価値があることがわかります。

チューニング済みモデルの作成

モデルの作成で作成したものと非常によく似たリモートモデルを作成しますが、今回は、モデルをチューニングするトレーニング データを提供するために AS SELECTを指定します。このクエリの完了には数時間かかることがあります。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで次のステートメントを実行して、リモートモデルを作成します。

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

    次のように置き換えます。

    • LOCATION: 接続のロケーション。
    • CONNECTION_ID: BigQuery 接続の ID。

      Google Cloud コンソールで接続の詳細を表示する場合、CONNECTION_ID は、[接続 ID] に表示される完全修飾接続 ID の最後のセクションの値になります(例: projects/myproject/locations/connection_location/connections/myconnection)。

    クエリが完了するまでに数時間かかることがあります。完了後、text_bison_001_medical_transcript_tuned モデルが [エクスプローラ] ペインの bqml_tutorial データセットに表示されます。このクエリでは CREATE MODEL ステートメントを使用してモデルを作成するため、クエリの結果はありません。

チューニング済みモデルのパフォーマンスを確認する

ML.GENERATE_TEXT 関数を実行して、評価データに対するチューニング済みモデルのパフォーマンスを確認します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで、次のステートメントを実行します。

    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;
    

    出力データを調べると、チューニング済みモデルがより多くの音声文字変換を正しく分類していることがわかります。先ほど見た例は、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...        |                            |
    +-----------------------------+---------------------------------+-------------------------------------------------------------------------+----------------------------+
    

チューニング済みモデルを評価する

ML.EVALUATE 関数を使用して、チューニング済みモデルのレスポンスと理想的なレスポンスの比較を確認します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで、次のステートメントを実行します。

    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;
    

出力は次のようになります。

   +------------------------------+----------------------------------+-------------------------------------------------------------------------+
   | 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                     |
   |                     |                     |                     |                            | }                                          |
   +---------------------+---------------------+---------------------+----------------------------+--------------------------------------------+
   

トレーニング データセットで使用された例は 519 個のみですが、パフォーマンスが大幅に向上していることがわかります。ベースライン モデルのパフォーマンスが低かったラベルも F1 スコアが改善され、すべてのラベルの平均 F1 スコアが 0.54 から 0.63 に向上しました。

クリーンアップ

  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.