Các mô hình tạo nguyên mẫu trong Máy tính xách tay nền tảng AI

1. Tổng quan

Phòng thí nghiệm này sẽ hướng dẫn bạn sử dụng nhiều công cụ trong AI Platform Notebooks để khám phá dữ liệu và tạo nguyên mẫu cho các mô hình học máy.

Kiến thức bạn sẽ học được

Bạn sẽ tìm hiểu cách:

  • Tạo và tuỳ chỉnh một phiên bản sổ tay AI Platform
  • Theo dõi mã sổ tay bằng git, được tích hợp trực tiếp vào Nền tảng Trí tuệ nhân tạo Notebooks
  • Sử dụng Công cụ mô phỏng tình huống trong sổ tay

Tổng chi phí để chạy bài tập thực hành này trên Google Cloud là khoảng 1 USD. Bạn có thể xem toàn bộ thông tin chi tiết về giá của Nền tảng Trí tuệ nhân tạo Notebooks tại đây.

2. Tạo một phiên bản AI Platform Notebooks

Bạn cần có một dự án trên Google Cloud Platform đã bật tính năng thanh toán để chạy lớp học lập trình này. Để tạo một dự án, hãy làm theo hướng dẫn tại đây.

Bước 2: Bật Compute Engine API

Chuyển đến Compute Engine rồi chọn Bật nếu bạn chưa bật. Bạn sẽ cần thông tin này để tạo thực thể sổ tay.

Bước 3: Tạo một phiên bản sổ tay

Chuyển đến mục AI Platform Notebooks của Cloud Console rồi nhấp vào New Instance (Phiên bản mới). Sau đó, hãy chọn loại phiên bản TensorFlow 2 Enterprise mới nhất không có GPU:

9f2bb4dec1ba4f4f.png

Đặt tên cho phiên bản của bạn hoặc sử dụng tên mặc định. Sau đó, chúng ta sẽ khám phá các lựa chọn tuỳ chỉnh. Nhấp vào nút Tuỳ chỉnh:

63be602ba45ca7c9.png

AI Platform Notebooks có nhiều lựa chọn tuỳ chỉnh khác nhau, bao gồm: vùng triển khai thực thể, loại hình ảnh, kích thước máy, số lượng GPU, v.v. Chúng ta sẽ sử dụng các giá trị mặc định cho khu vực và môi trường. Đối với cấu hình máy, chúng ta sẽ sử dụng máy n1-standard-8:

27101d232f765a17.png

Chúng tôi sẽ không thêm bất kỳ GPU nào và sẽ sử dụng các giá trị mặc định cho ổ đĩa khởi động, mạng và quyền. Chọn Tạo để tạo thực thể. Quá trình này sẽ mất vài phút để hoàn tất.

Sau khi tạo phiên bản, bạn sẽ thấy dấu kiểm màu xanh lục bên cạnh phiên bản đó trong giao diện người dùng Notebooks. Chọn Mở JupyterLab để mở phiên bản và bắt đầu tạo mẫu:

3598f414887ea9a8.png

Khi bạn mở thực thể, hãy tạo một thư mục mới có tên là codelab. Đây là thư mục mà chúng ta sẽ làm việc trong suốt lớp học này:

c16a821546acd92.png

Nhấp vào thư mục codelab mà bạn vừa tạo bằng cách nhấp đúp vào thư mục đó, rồi chọn sổ tay Python 3 trong trình chạy:

4390b1614ae8eae4.png

Đổi tên sổ tay thành demo.ipynb hoặc bất kỳ tên nào bạn muốn đặt.

Bước 4: Nhập các gói Python

Tạo một ô mới trong sổ tay và nhập các thư viện mà chúng ta sẽ sử dụng trong lớp học lập trình này:

import pandas as pd
import tensorflow as tf
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense

import numpy as np
import json

from sklearn.model_selection import train_test_split
from sklearn.utils import shuffle
from google.cloud import bigquery
from witwidget.notebook.visualization import WitWidget, WitConfigBuilder

3. Kết nối dữ liệu BigQuery với sổ tay của bạn

BigQuery, kho dữ liệu lớn của Google Cloud, đã cung cấp công khai nhiều tập dữ liệu để bạn khám phá. Nền tảng Trí tuệ nhân tạo Notebooks hỗ trợ tích hợp trực tiếp với BigQuery mà không cần xác thực.

Trong lớp học lập trình này, chúng ta sẽ sử dụng tập dữ liệu về tỷ lệ sinh. Tập dữ liệu này chứa thông tin về gần như mọi ca sinh ở Hoa Kỳ trong khoảng thời gian 40 năm, bao gồm cả cân nặng khi sinh của trẻ và thông tin nhân khẩu học về cha mẹ của trẻ. Chúng ta sẽ sử dụng một tập hợp con của các đặc điểm để dự đoán cân nặng của trẻ sơ sinh khi chào đời.

Bước 1: Tải dữ liệu BigQuery xuống sổ tay của chúng tôi

Chúng ta sẽ sử dụng thư viện ứng dụng Python cho BigQuery để tải dữ liệu xuống một Pandas DataFrame. Tập dữ liệu ban đầu có dung lượng 21 GB và chứa 123 triệu hàng. Để đơn giản hoá,chúng ta sẽ chỉ sử dụng 10.000 hàng trong tập dữ liệu.

Tạo truy vấn và xem trước DataFrame kết quả bằng mã sau. Ở đây, chúng ta sẽ lấy 4 đặc điểm từ tập dữ liệu ban đầu, cùng với cân nặng của trẻ sơ sinh (điều mà mô hình của chúng ta sẽ dự đoán). Tập dữ liệu này có từ nhiều năm trước, nhưng đối với mô hình này, chúng ta sẽ chỉ sử dụng dữ liệu từ sau năm 2000:

query="""
SELECT
  weight_pounds,
  is_male,
  mother_age,
  plurality,
  gestation_weeks
FROM
  publicdata.samples.natality
WHERE year > 2000
LIMIT 10000
"""
df = bigquery.Client().query(query).to_dataframe()
df.head()

Để xem thông tin tóm tắt về các đối tượng bằng số trong tập dữ liệu, hãy chạy:

df.describe()

Điều này cho thấy giá trị trung bình, độ lệch chuẩn, giá trị tối thiểu và các chỉ số khác cho các cột số của chúng tôi. Cuối cùng, hãy lấy một số dữ liệu trên cột boolean cho biết giới tính của em bé. Chúng ta có thể thực hiện việc này bằng phương thức value_counts của Pandas:

df['is_male'].value_counts()

Có vẻ như tập dữ liệu gần như cân bằng 50/50 theo giới tính.

Bước 2: Chuẩn bị tập dữ liệu để huấn luyện

Sau khi tải tập dữ liệu xuống sổ tay dưới dạng Pandas DataFrame, chúng ta có thể xử lý trước và chia tập dữ liệu thành tập huấn luyện và tập kiểm thử.

Trước tiên, hãy loại bỏ các hàng có giá trị rỗng khỏi tập dữ liệu và xáo trộn dữ liệu:

df = df.dropna()
df = shuffle(df, random_state=2)

Tiếp theo, hãy trích xuất cột nhãn thành một biến riêng biệt và tạo DataFrame chỉ có các đối tượng của chúng ta. Vì is_male là một giá trị boolean, nên chúng ta sẽ chuyển đổi giá trị này thành một số nguyên để tất cả dữ liệu đầu vào cho mô hình đều là số:

labels = df['weight_pounds']
data = df.drop(columns=['weight_pounds'])
data['is_male'] = data['is_male'].astype(int)

Giờ đây, nếu xem trước tập dữ liệu bằng cách chạy data.head(), bạn sẽ thấy 4 đối tượng mà chúng ta sẽ dùng để huấn luyện.

4. Khởi chạy git

Nền tảng Trí tuệ nhân tạo Notebooks tích hợp trực tiếp với git, nhờ đó bạn có thể quản lý phiên bản ngay trong môi trường sổ tay. Điều này hỗ trợ việc xác nhận mã ngay trong giao diện người dùng của sổ tay hoặc thông qua Terminal có trong JupyterLab. Trong phần này, chúng ta sẽ khởi tạo một kho lưu trữ git trong sổ tay và thực hiện cam kết đầu tiên thông qua giao diện người dùng.

Bước 1: Khởi tạo một kho lưu trữ git

Trong thư mục codelab, hãy chọn Git rồi chọn Init (Khởi tạo) trong thanh trình đơn trên cùng của JupyterLab:

d9f1729358f18e58.png

Khi được hỏi liệu bạn có muốn biến thư mục này thành Git Repo hay không, hãy chọn Yes (Có). Sau đó, hãy chọn biểu tượng Git trên thanh bên trái để xem trạng thái của các tệp và cam kết:

1648d6828f11a6db.png

Bước 2: Thực hiện cam kết đầu tiên

Trong giao diện người dùng này, bạn có thể thêm tệp vào một cam kết, xem các khác biệt về tệp (chúng ta sẽ đề cập đến vấn đề này sau) và cam kết các thay đổi của mình. Hãy bắt đầu bằng cách xác nhận tệp sổ tay mà chúng ta vừa thêm.

Đánh dấu vào hộp bên cạnh tệp sổ tay demo.ipynb để chuẩn bị cho việc xác nhận (bạn có thể bỏ qua thư mục .ipynb_checkpoints/). Nhập thông báo cam kết vào hộp văn bản, rồi nhấp vào dấu đánh dấu để cam kết các thay đổi:

fe7366522a3a268f.png

Nhập tên và email của bạn khi được nhắc. Sau đó, quay lại thẻ History (Nhật ký) để xem cam kết đầu tiên của bạn:

d03567c3592afb77.png

Xin lưu ý rằng ảnh chụp màn hình có thể không hoàn toàn khớp với giao diện người dùng của bạn do các bản cập nhật kể từ khi lớp học lập trình này được xuất bản.

5. Xây dựng và huấn luyện mô hình TensorFlow

Chúng ta sẽ sử dụng tập dữ liệu về tỷ lệ sinh của BigQuery mà chúng ta đã tải xuống sổ tay để xây dựng một mô hình dự đoán cân nặng của trẻ sơ sinh. Trong lớp học lập trình này, chúng ta sẽ tập trung vào công cụ sổ tay, thay vì độ chính xác của chính mô hình.

Bước 1: Chia dữ liệu thành các tập hợp huấn luyện và kiểm thử

Chúng ta sẽ sử dụng tiện ích train_test_split của Scikit Learn để phân chia dữ liệu trước khi tạo mô hình:

x,y = data,labels
x_train,x_test,y_train,y_test = train_test_split(x,y)

Giờ thì chúng ta đã sẵn sàng tạo mô hình TensorFlow!

Bước 2: Xây dựng và huấn luyện mô hình TensorFlow

Chúng ta sẽ tạo mô hình này bằng API mô hình Sequential tf.keras. API này cho phép chúng ta xác định mô hình dưới dạng một ngăn xếp các lớp. Dưới đây là toàn bộ mã chúng ta cần để tạo mô hình:

model = Sequential([
    Dense(64, activation='relu', input_shape=(len(x_train.iloc[0]),)),
    Dense(32, activation='relu'),
    Dense(1)]
)

Sau đó, chúng ta sẽ biên dịch mô hình để có thể huấn luyện mô hình. Ở đây, chúng ta sẽ chọn trình tối ưu hoá, hàm tổn thất và các chỉ số của mô hình mà chúng ta muốn mô hình ghi lại trong quá trình huấn luyện. Vì đây là mô hình hồi quy (dự đoán một giá trị bằng số), nên chúng ta sẽ sử dụng sai số bình phương trung bình thay vì độ chính xác làm chỉ số:

model.compile(optimizer=tf.keras.optimizers.RMSprop(),
              loss=tf.keras.losses.MeanSquaredError(),
              metrics=['mae', 'mse'])

Bạn có thể sử dụng hàm model.summary() tiện dụng của Keras để xem hình dạng và số lượng tham số có thể huấn luyện của mô hình ở mỗi lớp.

Giờ thì chúng ta đã sẵn sàng huấn luyện mô hình. Tất cả những gì chúng ta cần làm là gọi phương thức fit(), truyền cho phương thức này dữ liệu huấn luyện và nhãn của chúng ta. Ở đây, chúng ta sẽ sử dụng tham số validation_split không bắt buộc. Tham số này sẽ giữ lại một phần dữ liệu huấn luyện để xác thực mô hình ở mỗi bước. Lý tưởng nhất là bạn muốn thấy cả tổn thất trong quá trình huấn luyện và xác thực đều giảm. Nhưng hãy nhớ rằng trong ví dụ này, chúng ta tập trung nhiều hơn vào mô hình và công cụ sổ tay thay vì chất lượng mô hình:

model.fit(x_train, y_train, epochs=10, validation_split=0.1)

Bước 3: Tạo các dự đoán về ví dụ kiểm thử

Để xem hiệu suất của mô hình, hãy tạo một số dự đoán thử nghiệm trên 10 ví dụ đầu tiên trong tập dữ liệu thử nghiệm.

num_examples = 10
predictions = model.predict(x_test[:num_examples])

Sau đó, chúng ta sẽ lặp lại các dự đoán của mô hình, so sánh các dự đoán đó với giá trị thực tế:

for i in range(num_examples):
    print('Predicted val: ', predictions[i][0])
    print('Actual val: ',y_test.iloc[i])
    print()

Bước 4: Sử dụng git diff và xác nhận các thay đổi

Giờ đây, sau khi thực hiện một số thay đổi đối với sổ tay, bạn có thể dùng thử tính năng git diff có trong giao diện người dùng git của Sổ tay. Giờ đây, sổ tay demo.ipynb sẽ nằm trong phần "Đã thay đổi" trên giao diện người dùng. Di chuột lên tên tệp rồi nhấp vào biểu tượng chênh lệch:

a370facb3632fb32.png

Khi đó, bạn sẽ thấy sự khác biệt trong các thay đổi của mình, chẳng hạn như sau:

461c502bd3ab910e.png

Lần này, chúng ta sẽ xác nhận các thay đổi thông qua dòng lệnh bằng Terminal. Trong trình đơn Git trên thanh trình đơn trên cùng của JupyterLab, hãy chọn Lệnh Git trong Terminal. Nếu mở thẻ git của thanh bên trái trong khi chạy các lệnh bên dưới, bạn sẽ có thể thấy các thay đổi của mình được phản ánh trong giao diện người dùng git.

Trong phiên bản thiết bị đầu cuối mới, hãy chạy lệnh sau để dàn dựng tệp sổ tay cho cam kết:

git add demo.ipynb

Sau đó, hãy chạy lệnh sau để xác nhận các thay đổi (bạn có thể sử dụng bất kỳ thông báo xác nhận nào bạn muốn):

git commit -m "Build and train TF model"

Sau đó, bạn sẽ thấy cam kết mới nhất của mình trong nhật ký:

a4b44045e97cb7a7.png

6. Sử dụng Công cụ điều gì sẽ xảy ra ngay trong sổ tay

What-If Tool là một giao diện trực quan tương tác được thiết kế để giúp bạn trực quan hoá các tập dữ liệu và hiểu rõ hơn về đầu ra của các mô hình học máy. Đây là một công cụ nguồn mở do nhóm PAIR tại Google tạo ra. Mặc dù hoạt động với mọi loại mô hình, nhưng công cụ này có một số tính năng được xây dựng riêng cho Nền tảng Trí tuệ nhân tạo trên Cloud.

Công cụ What-if được cài đặt sẵn trong các thực thể Notebooks của Nền tảng Trí tuệ nhân tạo trên đám mây có TensorFlow. Ở đây, chúng ta sẽ sử dụng chỉ số này để xem hiệu suất tổng thể của mô hình và kiểm tra hành vi của mô hình trên các điểm dữ liệu trong tập kiểm định.

Bước 1: Chuẩn bị dữ liệu cho Công cụ mô phỏng điều gì sẽ xảy ra

Để khai thác tối đa Công cụ mô phỏng tình huống, chúng tôi sẽ gửi cho công cụ này các ví dụ từ tập kiểm định cùng với nhãn thông tin thực tế cho những ví dụ đó (y_test). Nhờ đó, chúng tôi có thể so sánh kết quả dự đoán của mô hình với thông tin thực tế. Chạy dòng mã bên dưới để tạo một DataFrame mới với các ví dụ kiểm thử và nhãn của chúng:

wit_data = pd.concat([x_test, y_test], axis=1)

Trong lớp học này, chúng ta sẽ kết nối Công cụ phân tích điều gì sẽ xảy ra với mô hình mà chúng ta vừa huấn luyện trong sổ tay. Để làm việc đó, chúng ta cần viết một hàm mà công cụ sẽ dùng để chạy các điểm dữ liệu kiểm thử này cho mô hình của chúng ta:

def custom_predict(examples_to_infer):
    preds = model.predict(examples_to_infer)
    return preds

Bước 2: Khởi tạo Công cụ What-If

Chúng ta sẽ tạo thực thể cho Công cụ phân tích giả định bằng cách truyền 500 ví dụ từ tập dữ liệu kiểm thử được nối + nhãn cơ sở mà chúng ta vừa tạo. Chúng ta tạo một thực thể WitConfigBuilder để thiết lập công cụ, truyền dữ liệu, hàm dự đoán tuỳ chỉnh mà chúng ta đã xác định ở trên, cùng với mục tiêu (nội dung chúng ta đang dự đoán) và loại mô hình:

config_builder = (WitConfigBuilder(wit_data[:500].values.tolist(), data.columns.tolist() + ['weight_pounds'])
  .set_custom_predict_fn(custom_predict)
  .set_target_feature('weight_pounds')
  .set_model_type('regression'))
WitWidget(config_builder, height=800)

Bạn sẽ thấy nội dung như sau khi What-If Tool tải:

fcdc1cb7ed8e364e.png

Trên trục x, bạn có thể thấy các điểm dữ liệu kiểm thử được trải đều theo giá trị trọng số dự đoán của mô hình, weight_pounds.

Bước 3: Khám phá hành vi của mô hình bằng Công cụ mô phỏng điều gì sẽ xảy ra

Bạn có thể làm nhiều việc thú vị bằng Công cụ điều gì sẽ xảy ra. Chúng ta sẽ tìm hiểu một vài trong số đó ở đây. Trước tiên, hãy xem trình chỉnh sửa điểm dữ liệu. Bạn có thể chọn bất kỳ điểm dữ liệu nào để xem các đối tượng của điểm đó và thay đổi giá trị của đối tượng. Bắt đầu bằng cách nhấp vào một điểm dữ liệu bất kỳ:

2ba944f16240ff4b.png

Ở bên trái, bạn sẽ thấy các giá trị của đối tượng cho điểm dữ liệu mà bạn đã chọn. Bạn cũng có thể so sánh nhãn chân lý cơ bản của điểm dữ liệu đó với giá trị mà mô hình dự đoán. Trong thanh bên trái, bạn cũng có thể thay đổi các giá trị của tính năng và chạy lại quy trình dự đoán mô hình để xem mức độ ảnh hưởng của thay đổi này đối với mô hình của bạn. Ví dụ: chúng ta có thể thay đổi gestation_weeks thành 30 cho điểm dữ liệu này bằng cách nhấp đúp vào điểm dữ liệu đó và chạy lại quy trình dự đoán:

aaa6a937c66758cf.png

Khi sử dụng trình đơn thả xuống trong phần biểu đồ của Công cụ mô phỏng, bạn có thể tạo mọi loại hình ảnh trực quan tuỳ chỉnh. Ví dụ: đây là một biểu đồ có trọng lượng dự đoán của các mô hình trên trục x, độ tuổi của người mẹ trên trục y và các điểm được tô màu theo sai số suy luận (màu càng tối thì mức chênh lệch giữa trọng lượng dự đoán và trọng lượng thực tế càng cao). Ở đây, có vẻ như khi trọng số giảm, lỗi của mô hình sẽ tăng nhẹ:

cd2ce527a9044e7b.png

Tiếp theo, hãy đánh dấu vào nút Biểu đồ phụ thuộc một phần ở bên trái. Điều này cho thấy mức độ ảnh hưởng của từng đặc điểm đến dự đoán của mô hình. Ví dụ: khi thời gian mang thai tăng lên, mô hình của chúng tôi cũng dự đoán trọng lượng của em bé sẽ tăng lên:

1fec2a64fb03f432.png

Để biết thêm các ý tưởng khám phá bằng Công cụ điều gì sẽ xảy ra, hãy xem các đường liên kết ở đầu phần này.

7. Không bắt buộc: kết nối kho lưu trữ git cục bộ với GitHub

Cuối cùng, chúng ta sẽ tìm hiểu cách kết nối kho lưu trữ git trong thực thể sổ tay với một kho lưu trữ trong tài khoản GitHub. Nếu muốn thực hiện bước này, bạn cần có tài khoản GitHub.

Bước 1: Tạo một kho lưu trữ mới trên GitHub

Trong tài khoản GitHub của bạn, hãy tạo một kho lưu trữ mới. Đặt tên và nội dung mô tả cho kho lưu trữ, quyết định xem bạn muốn kho lưu trữ đó ở chế độ công khai hay không, rồi chọn Tạo kho lưu trữ (bạn không cần khởi tạo bằng tệp README). Trên trang tiếp theo, bạn sẽ làm theo hướng dẫn để chuyển một kho lưu trữ hiện có qua dòng lệnh.

Mở cửa sổ dòng lệnh rồi thêm kho lưu trữ mới làm kho lưu trữ từ xa. Thay thế username trong URL kho lưu trữ bên dưới bằng tên người dùng GitHub của bạn và your-repo bằng tên của kho lưu trữ bạn vừa tạo:

git remote add origin git@github.com:username/your-repo.git

Bước 2: Xác thực với GitHub trong phiên thể sổ tay của bạn

Tiếp theo, bạn cần xác thực với GitHub trong thực thể sổ tay của mình. Quy trình này sẽ khác nhau tuỳ thuộc vào việc bạn có bật tính năng xác thực hai yếu tố trên GitHub hay không.

Nếu bạn không biết bắt đầu từ đâu, hãy làm theo các bước trong tài liệu trên GitHub để tạo khoá SSH, sau đó thêm khoá mới vào GitHub.

Bước 3: Đảm bảo bạn đã liên kết đúng kho lưu trữ GitHub

Để đảm bảo bạn đã thiết lập đúng cách, hãy chạy git remote -v trong cửa sổ dòng lệnh. Bạn sẽ thấy kho lưu trữ mới của mình được liệt kê dưới dạng một kho lưu trữ từ xa. Sau khi thấy URL của kho lưu trữ GitHub và xác thực với GitHub từ sổ tay, bạn đã sẵn sàng để đẩy trực tiếp lên GitHub từ phiên bản sổ tay.

Để đồng bộ hoá kho lưu trữ git sổ tay cục bộ với kho lưu trữ GitHub mới tạo, hãy nhấp vào nút tải lên đám mây ở đầu thanh bên Git:

eec001587bb9cfb1.png

Làm mới kho lưu trữ GitHub và bạn sẽ thấy mã sổ tay cùng các cam kết trước đó! Nếu người khác có quyền truy cập vào kho lưu trữ GitHub của bạn và bạn muốn kéo những thay đổi mới nhất xuống sổ tay, hãy nhấp vào biểu tượng tải xuống từ đám mây để đồng bộ hoá những thay đổi đó.

Trên thẻ History (Nhật ký) của giao diện người dùng git Notebooks, bạn có thể xem các cam kết cục bộ của mình có được đồng bộ hoá với GitHub hay không. Trong ví dụ này, origin/master tương ứng với kho lưu trữ của chúng tôi trên GitHub:

2c3d1eb7cf95c24e.png

Bất cứ khi nào bạn thực hiện các cam kết mới, chỉ cần nhấp lại vào nút tải lên đám mây để chuyển những thay đổi đó vào kho lưu trữ GitHub của bạn.

8. Xin chúc mừng!

Bạn đã làm được rất nhiều trong phòng thí nghiệm này 👏👏👏

Tóm lại, bạn đã tìm hiểu cách:

  • Tạo và tuỳ chỉnh một phiên bản sổ tay Nền tảng Trí tuệ nhân tạo
  • Khởi tạo một kho lưu trữ git cục bộ trong thực thể đó, thêm các cam kết thông qua giao diện người dùng git hoặc dòng lệnh, xem các khác biệt git trong giao diện người dùng git của Sổ tay
  • Xây dựng và huấn luyện một mô hình TensorFlow 2 đơn giản
  • Sử dụng Công cụ mô phỏng điều gì sẽ xảy ra trong phiên bản Notebook
  • Kết nối kho lưu trữ git của Sổ tay với một kho lưu trữ bên ngoài trên GitHub

9. Dọn dẹp

Nếu muốn tiếp tục sử dụng sổ tay này, bạn nên tắt sổ tay khi không dùng. Trong giao diện người dùng Notebooks của Cloud Console, hãy chọn sổ tay rồi chọn Dừng:

ba727f9a0aefbc30.png

Nếu bạn muốn xoá tất cả tài nguyên đã tạo trong phòng thí nghiệm này, chỉ cần xoá phiên bản sổ tay thay vì dừng phiên bản đó.

Sử dụng trình đơn Điều hướng trong Cloud Console, duyệt tìm Storage rồi xoá cả hai vùng chứa mà bạn đã tạo để lưu trữ các thành phần mô hình.