조정 및 평가로 모델 성능 향상
이 문서에서는 Vertex AI gemini-1.0-pro-002
모델을 참조하는 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
- 테이블에 대한
시작하기 전에
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, BigQuery Connection, Vertex AI, and Compute Engine APIs.
비용
이 문서에서는 비용이 청구될 수 있는 다음과 같은 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.
프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요.
자세한 내용은 다음 리소스를 참조하세요.
데이터 세트 만들기
ML 모델을 저장할 BigQuery 데이터 세트를 만듭니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
탐색기 창에서 프로젝트 이름을 클릭합니다.
작업 보기 > 데이터 세트 만들기를 클릭합니다.
데이터 세트 만들기 페이지에서 다음을 수행합니다.
데이터 세트 ID에
bqml_tutorial
를 입력합니다.위치 유형에 대해 멀티 리전을 선택한 다음 US(미국 내 여러 리전)를 선택합니다.
공개 데이터 세트는
US
멀티 리전에 저장됩니다. 편의상 같은 위치에 데이터 세트를 저장합니다.나머지 기본 설정은 그대로 두고 데이터 세트 만들기를 클릭합니다.
연결 만들기
클라우드 리소스 연결을 만들고 연결의 서비스 계정 ID를 가져옵니다. 이전 단계에서 만든 데이터 세트와 동일한 위치에 연결을 만듭니다.
다음 옵션 중 하나를 선택합니다.
콘솔
BigQuery 페이지로 이동합니다.
연결을 만들려면
추가를 클릭한 다음 외부 데이터 소스에 연결을 클릭합니다.연결 유형 목록에서 Vertex AI 원격 모델, 원격 함수, BigLake(Cloud 리소스)를 선택합니다.
연결 ID 필드에 연결 이름을 입력합니다.
연결 만들기를 클릭합니다.
연결로 이동을 클릭합니다.
연결 정보 창에서 나중의 단계에 사용할 서비스 계정 ID를 복사합니다.
bq
명령줄 환경에서 연결을 만듭니다.
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
--project_id
매개변수는 기본 프로젝트를 재정의합니다.다음을 바꿉니다.
REGION
: 연결 리전PROJECT_ID
: Google Cloud 프로젝트 IDCONNECTION_ID
: 연결의 ID
연결 리소스를 만들면 BigQuery가 고유한 시스템 서비스 계정을 만들고 이를 연결에 연계합니다.
문제 해결: 다음 연결 오류가 발생하면 Google Cloud SDK를 업데이트하세요.
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
이후 단계에서 사용할 수 있도록 서비스 계정 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 {} }
CONNECTION_ID
: 연결의 IDPROJECT_ID
: Google Cloud 프로젝트 IDREGION
: 연결 리전
연결의 서비스 계정에 액세스 권한 부여
서비스 계정이 Vertex AI에 액세스할 수 있도록 서비스 계정에 Vertex AI 서비스 에이전트 역할을 부여합니다. 이 역할을 부여하지 않으면 오류가 발생합니다. 다음 옵션 중 하나를 선택합니다.
콘솔
IAM 및 관리자 페이지로 이동합니다.
액세스 권한 부여를 클릭합니다.
주 구성원 추가 대화상자가 열립니다.
새 주 구성원 필드에 앞에서 복사한 서비스 계정 ID를 입력합니다.
역할 선택을 클릭합니다.
필터에
Vertex AI Service Agent
를 입력한 다음 해당 역할을 선택합니다.저장을 클릭합니다.
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 연결 위임 서비스 에이전트의 인스턴스이므로, 서비스 에이전트 역할을 할당할 수 있습니다.
Compute Engine 기본 서비스 계정에 액세스 권한 부여
Compute Engine API를 사용 설정하면 프로젝트에서 동작을 사용 중지하지 않은 한 Compute Engine 기본 서비스 계정에 프로젝트에 대한 편집자 역할이 자동으로 부여됩니다. 사용 중지한 경우에는 원격 모델을 만들고 조정할 수 있는 충분한 권한을 갖도록 Compute Engine 기본 서비스 계정에 편집자 역할을 다시 부여해야 합니다.
콘솔
IAM 및 관리자 페이지로 이동합니다.
액세스 권한 부여를 클릭합니다.
새 주 구성원에 서비스 계정 ID(
PROJECT_NUMBER-compute@developer.gserviceaccount.com
)를 입력합니다.역할 선택을 클릭합니다.
역할 선택에서 기본을 선택한 다음 편집자를 선택합니다.
저장을 클릭합니다.
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
)입니다.
조정 서비스 에이전트 만들기
Vertex AI 보안 미세 조정 서비스 에이전트 인스턴스를 만듭니다.
gcloud beta services identity create
명령어을 사용하여 조정 서비스 에이전트를 만듭니다.gcloud beta services identity create --service=aiplatform.googleapis.com --project=PROJECT_NUMBER
여기에서
PROJECT_NUMBER
를 프로젝트 번호로 바꿉니다.gcloud projects add-iam-policy-binding
명령어를 사용하여 조정 서비스 에이전트에 Vertex AI 조정 서비스 에이전트(roles/aiplatform.tuningServiceAgent
) 역할을 부여합니다.gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-vertex-tune.iam.gserviceaccount.com' --role='roles/aiplatform.tuningServiceAgent'
여기에서
PROJECT_NUMBER
를 프로젝트 번호로 바꿉니다.
테스트 테이블 만들기
텍스트로 변환된 의료 보고서의 공개 MTSamples 데이터 세트를 기반으로 학습 및 평가 데이터 테이블을 만듭니다.
이 데이터 세트에는 의료 스크립트가 포함된 input_text
열과 Allergy/Immunology
, Dentistry
, Cardiovascular/Pulmonary
와 같은 스크립트의 카테고리를 가장 잘 설명하는 라벨이 포함된 output_text
열이 있습니다. 또한 의료 스크립트 분류를 위한 프롬프트 데이터가 포함된 테이블을 만듭니다.
공개 Cloud Storage 버킷에서 의료 스크립트 작성 데이터를 가져옵니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 문을 실행하여 평가 데이터 테이블을 만듭니다.
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']);
쿼리 편집기에서 다음 문을 실행하여 학습 데이터 테이블을 만듭니다.
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']);
쿼리 편집기에서 다음 문을 실행하여 프롬프트 테이블을 만듭니다.
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 gemini-1.0-pro-002
모델을 통해 원격 모델을 만듭니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 문을 실행하여 원격 모델을 만듭니다.
CREATE OR REPLACE MODEL `bqml_tutorial.gemini-baseline` REMOTE WITH CONNECTION `LOCATION.CONNECTION_ID` OPTIONS (ENDPOINT ='gemini-1.0-pro-002');
다음을 바꿉니다.
LOCATION
: 연결 위치CONNECTION_ID
: BigQuery 연결의 IDGoogle Cloud 콘솔에서 연결 세부정보를 열람할 때
CONNECTION_ID
는 연결 ID에 표시되는 정규화된 연결 ID의 마지막 섹션에 있는 값입니다(예:projects/myproject/locations/connection_location/connections/myconnection
).
쿼리가 완료되는 데 몇 초 정도 걸리며 그 이후에는
gemini-baseline
모델이 탐색기 창의bqml_tutorial
데이터 세트에 표시됩니다. 이 쿼리에서는CREATE MODEL
문을 사용하여 모델을 만들므로 쿼리 결과가 없습니다.
기준 모델 성능 확인
원격 모델로 ML.GENERATE_TEXT
함수를 실행하여 조정 없이 평가 데이터에서 성능을 확인합니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 쿼리를 실행합니다.
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;
출력 데이터를 검사하고
ml_generate_text_llm_result
값과label
값을 비교하면 기준 모델이 많은 스크립트 분류를 올바르게 예측하지만 일부 스크립트를 잘못 분류하는 것을 확인할 수 있습니다. 다음은 잘못된 출력의 대표적인 예시입니다. 이 예시에서 올바른 분류는Pulmonary Embolism
이 아니라Autopsy
입니다.+------------------------------------+---------------------------------+-------------------------------------------------------------------------+--------------+ | 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... | | +------------------------------------+---------------------------------+-------------------------------------------------------------------------+--------------+
기준 모델 평가
모델 성능에 대한 자세한 평가를 수행하려면 ML.EVALUATE
함수를 사용합니다.
이 함수는 정밀도, 재현율, F1 점수와 같은 모델 측정항목을 계산하여 모델의 응답과 이상적인 응답의 비교 방법을 보여줍니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 쿼리를 실행합니다.
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;
결과는 다음과 유사합니다.
+------------------------------+----------------------------------+-------------------------------------------------------------------------+ | 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 | | | | | | } | +---------------------+---------------------+---------------------+----------------------------+--------------------------------------------+
낮은 f1
점수를 보면 기준 모델이 이 데이터에 잘 맞지 않는 것을 알 수 있습니다. 따라서 지도 조정을 수행하여 이 사용 사례에서 모델 성능을 개선할 수 있는지 확인할 가치가 있습니다.
조정된 모델 만들기
모델 만들기에서 만든 것과 매우 비슷한 원격 모델을 만들지만 이번에는 AS SELECT
절을 지정하여 모델을 조정하기 위한 학습 데이터를 제공합니다.
이 쿼리를 완료하려면 몇 시간 정도 걸릴 수 있습니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 문을 실행하여 원격 모델을 만듭니다.
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`;
다음을 바꿉니다.
LOCATION
: 연결 위치CONNECTION_ID
: BigQuery 연결의 IDGoogle Cloud 콘솔에서 연결 세부정보를 열람할 때
CONNECTION_ID
는 연결 ID에 표시되는 정규화된 연결 ID의 마지막 섹션에 있는 값입니다(예:projects/myproject/locations/connection_location/connections/myconnection
).
쿼리가 완료되는 데 몇 시간이 걸릴 수 있으며 이후에는
gemini-tuned
모델이 탐색기 창의bqml_tutorial
데이터 세트에 표시됩니다. 이 쿼리에서는CREATE MODEL
문을 사용하여 모델을 만들므로 쿼리 결과가 없습니다.
조정된 모델 성능 확인
ML.GENERATE_TEXT
함수를 실행하여 조정된 모델이 평가 데이터에서 수행되는 방법을 확인합니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 쿼리를 실행합니다.
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;
출력 데이터를 검토하면 조정된 모델에서 더 많은 스크립트를 올바르게 분류하는 것을 확인할 수 있습니다. 이전에 살펴본 예시는 이제
Cardiovascular/ Pulmonary
로 올바르게 분류됩니다.+-----------------------------+---------------------------------+-------------------------------------------------------------------------+----------------------------+ | 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... | | +-----------------------------+---------------------------------+-------------------------------------------------------------------------+----------------------------+
조정된 모델 평가
ML.EVALUATE
함수를 사용하여 조정된 모델의 응답을 이상적인 응답과 비교하는 방법을 확인하세요.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 쿼리를 실행합니다.
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;
결과는 다음과 유사합니다.
+------------------------------+----------------------------------+-------------------------------------------------------------------------+ | 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 | | | | | | } | +---------------------+---------------------+---------------------+----------------------------+--------------------------------------------+
학습 데이터 세트에서 519개의 예만 사용했음에도 불구하고 성능이 눈에 띄게 향상된 것을 알 수 있습니다(f1
점수가 더 높음).
삭제
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.