Xây dựng mô hình học máy tài chính bằng công cụ What-If và Vertex AI

1. Tổng quan

Trong lớp học lập trình này, bạn sẽ sử dụng Công cụ giả định để phân tích mô hình XGBoost được huấn luyện trên dữ liệu tài chính. Sau khi phân tích mô hình, bạn sẽ triển khai mô hình đó cho Vertex AI mới của Cloud.

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

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

  • Huấn luyện mô hình XGBoost trên một tập dữ liệu thế chấp công khai trong một sổ tay được lưu trữ
  • Phân tích mô hình bằng Công cụ What-if
  • Triển khai mô hình XGBoost cho Vertex AI

Tổng chi phí để chạy lớp học này trên Google Cloud là khoảng 1 USD.

2. Giới thiệu về Vertex AI

Phòng thí nghiệm này sử dụng sản phẩm AI mới nhất có trên Google Cloud. Vertex AI tích hợp các dịch vụ học máy trên Google Cloud vào một trải nghiệm phát triển liền mạch. Trước đây, bạn có thể truy cập vào các mô hình được huấn luyện bằng AutoML và mô hình tuỳ chỉnh thông qua các dịch vụ riêng biệt. Sản phẩm mới kết hợp cả hai thành một API duy nhất, cùng với các sản phẩm mới khác. Bạn cũng có thể di chuyển các dự án hiện có sang Vertex AI. Nếu bạn có ý kiến phản hồi, vui lòng xem trang hỗ trợ.

Vertex AI bao gồm nhiều sản phẩm để hỗ trợ quy trình làm việc toàn diện về máy học. Phòng thí nghiệm này sẽ tập trung vào các sản phẩm được làm nổi bật dưới đây: Dự đoán và Sổ tay.

Tổng quan về sản phẩm Vertex

3. Giới thiệu nhanh về XGTăng

XGBoost là một khung học máy sử dụng cây quyết địnhcông nghệ tăng cường độ dốc để xây dựng mô hình dự đoán. Công cụ này hoạt động bằng cách tập hợp nhiều cây quyết định với nhau dựa trên điểm số liên quan đến các nút lá trong một cây.

Sơ đồ bên dưới là hình ảnh trực quan của một mô hình cây quyết định đơn giản giúp đánh giá xem có nên chơi một trận đấu thể thao hay không dựa trên thông tin dự báo thời tiết:

Ví dụ về mô hình cây

Tại sao chúng tôi sử dụng XGboost cho mô hình này? Mặc dù mạng nơron truyền thống được chứng minh là hoạt động hiệu quả nhất trên dữ liệu không có cấu trúc như hình ảnh và văn bản, nhưng cây quyết định thường hoạt động cực kỳ hiệu quả trên dữ liệu có cấu trúc như tập dữ liệu thế chấp mà chúng ta sẽ sử dụng trong lớp học lập trình này.

4. Thiết lập môi trường

Bạn cần một dự á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 dự án, hãy làm theo hướng dẫn tại đây.

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

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

Bước 2: Bật API Vertex AI

Chuyển đến mục Vertex trong Cloud Console rồi nhấp vào Bật API Vertex AI.

Trang tổng quan về Vertex

Bước 3: Tạo một thực thể Sổ tay

Trong phần Vertex của Cloud Console, hãy nhấp vào Sổ tay:

Chọn sổ tay

Tại đây, hãy chọn New Instance (Thực thể mới). Sau đó, chọn loại thực thể TensorFlow Enterprise 2.3 không có GPU:

Phiên bản TFE

Sử dụng các chế độ mặc định rồi nhấp vào Tạo. Sau khi tạo thực thể, hãy chọn Open JupyterLab (Mở JupyterLab).

Bước 4: Cài đặt XGBoost

Sau khi phiên bản JupyterLab mở ra, bạn cần thêm gói XGBoost.

Để làm việc này, hãy chọn Terminal (Cổng) trên trình chạy:

Sau đó, hãy chạy lệnh sau để cài đặt phiên bản XGboost mới nhất mà Vertex AI hỗ trợ:

pip3 install xgboost==1.2

Sau khi hoàn tất, hãy mở một thực thể Notebook Python 3 từ trình chạy. Bạn đã sẵn sàng bắt đầu trong sổ tay!

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

Trong ô đầu tiên của sổ tay, hãy thêm các lệnh nhập sau và chạy ô đó. Bạn có thể chạy trình đơn này bằng cách nhấn nút mũi tên phải trong trình đơn trên cùng hoặc nhấn Command-Enter:

import pandas as pd
import xgboost as xgb
import numpy as np
import collections
import witwidget

from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, confusion_matrix
from sklearn.utils import shuffle
from witwidget.notebook.visualization import WitWidget, WitConfigBuilder

5. Tải và xử lý dữ liệu

Chúng ta sẽ sử dụng tập dữ liệu thế chấp từ ffiec.gov để huấn luyện mô hình XGBoost. Chúng tôi đã thực hiện một số bước xử lý trước trên tập dữ liệu ban đầu và tạo một phiên bản nhỏ hơn để bạn sử dụng nhằm huấn luyện mô hình. Mô hình này sẽ dự đoán liệu một đơn đăng ký thế chấp cụ thể có được phê duyệt hay không.

Bước 1: Tải tập dữ liệu đã xử lý trước xuống

Chúng tôi đã cung cấp cho bạn một phiên bản của tập dữ liệu này trong Google Cloud Storage. Bạn có thể tải Gemini xuống bằng cách chạy lệnh gsutil sau trong sổ tay Jupyter của mình:

!gsutil cp 'gs://mortgage_dataset_files/mortgage-small.csv' .

Bước 2: Đọc tập dữ liệu bằng Pandas

Trước khi tạo DataFrame Pandas, chúng ta sẽ tạo một dict của từng loại dữ liệu của cột để Pandas đọc chính xác tập dữ liệu của chúng ta:

COLUMN_NAMES = collections.OrderedDict({
 'as_of_year': np.int16,
 'agency_code': 'category',
 'loan_type': 'category',
 'property_type': 'category',
 'loan_purpose': 'category',
 'occupancy': np.int8,
 'loan_amt_thousands': np.float64,
 'preapproval': 'category',
 'county_code': np.float64,
 'applicant_income_thousands': np.float64,
 'purchaser_type': 'category',
 'hoepa_status': 'category',
 'lien_status': 'category',
 'population': np.float64,
 'ffiec_median_fam_income': np.float64,
 'tract_to_msa_income_pct': np.float64,
 'num_owner_occupied_units': np.float64,
 'num_1_to_4_family_units': np.float64,
 'approved': np.int8
})

Tiếp theo, chúng ta sẽ tạo một DataFrame, truyền vào đó các kiểu dữ liệu đã chỉ định ở trên. Điều quan trọng là phải xáo trộn dữ liệu của chúng ta trong trường hợp tập dữ liệu ban đầu được sắp xếp theo một cách cụ thể. Chúng ta sử dụng tiện ích sklearn có tên shuffle để thực hiện việc này. Chúng ta đã nhập tiện ích này vào ô đầu tiên:

data = pd.read_csv(
 'mortgage-small.csv',
 index_col=False,
 dtype=COLUMN_NAMES
)
data = data.dropna()
data = shuffle(data, random_state=2)
data.head()

data.head() cho phép chúng ta xem trước 5 hàng đầu tiên của tập dữ liệu trong Pandas. Bạn sẽ thấy nội dung như sau sau khi chạy ô ở trên:

Bản xem trước tập dữ liệu về khoản vay thế chấp

Đây là những tính năng mà chúng tôi sẽ sử dụng để huấn luyện mô hình của mình. Nếu di chuyển đến cuối trang, bạn sẽ thấy cột cuối cùng approved, đây là điều mà chúng tôi đang dự đoán. Giá trị 1 cho biết một ứng dụng cụ thể đã được phê duyệt và 0 cho biết ứng dụng đó đã bị từ chối.

Để xem phân phối của các giá trị được phê duyệt / bị từ chối trong tập dữ liệu và tạo một mảng nhãn, hãy chạy lệnh sau:

# Class labels - 0: denied, 1: approved
print(data['approved'].value_counts())

labels = data['approved'].values
data = data.drop(columns=['approved'])

Khoảng 66% tập dữ liệu chứa các ứng dụng đã được phê duyệt.

Bước 3: Tạo cột giả cho các giá trị phân loại

Tập dữ liệu này chứa cả giá trị dạng số và dạng danh mục, nhưng XGBoost yêu cầu tất cả các đặc điểm phải là dạng số. Thay vì biểu thị các giá trị danh mục bằng mã hoá một nóng, đối với mô hình XGBoost, chúng ta sẽ tận dụng hàm get_dummies của Pandas.

get_dummies lấy một cột có nhiều giá trị có thể có và chuyển đổi cột đó thành một loạt cột, mỗi cột chỉ có các giá trị 0 và 1. Ví dụ: nếu chúng ta có cột "color" (màu) với các giá trị có thể là "blue" (xanh dương) và "red" (đỏ), thì get_dummies sẽ chuyển đổi cột này thành 2 cột có tên là "color_blue" và "color_red" với tất cả giá trị boolean là 0 và 1.

Để tạo cột giả cho các đối tượng phân loại của chúng tôi, hãy chạy mã sau:

dummy_columns = list(data.dtypes[data.dtypes == 'category'].index)
data = pd.get_dummies(data, columns=dummy_columns)

data.head()

Khi xem trước dữ liệu lần này, bạn sẽ thấy các tính năng đơn lẻ (như purchaser_type trong hình bên dưới) được chia thành nhiều cột:

Cột giả lập Pandas

Bước 4: Phân tách dữ liệu thành tập huấn luyện và tập kiểm thử

Một khái niệm quan trọng trong học máy là phân tách dữ liệu huấn luyện / dữ liệu kiểm thử. Chúng tôi sẽ lấy và sử dụng phần lớn dữ liệu của mình để huấn luyện mô hình, đồng thời sẽ dành phần còn lại để thử nghiệm mô hình trên dữ liệu chưa từng thấy trước đây.

Thêm mã sau vào sổ tay của bạn. Mã này sử dụng hàm Scikit-learn train_test_split để phân tách dữ liệu của chúng ta:

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

Bây giờ, bạn đã sẵn sàng xây dựng và huấn luyện mô hình của mình!

6. Xây dựng, huấn luyện và đánh giá mô hình XGBoost

Bước 1: Xác định và huấn luyện mô hình XGBoost

Việc tạo mô hình trong XGTăng rất đơn giản. Chúng ta sẽ sử dụng lớp XGBClassifier để tạo mô hình và chỉ cần truyền tham số objective phù hợp cho tác vụ phân loại cụ thể của mình. Trong trường hợp này, chúng ta sử dụng reg:logistic vì gặp vấn đề phân loại nhị phân và chúng ta muốn mô hình đưa ra một giá trị duy nhất trong phạm vi (0,1): 0 nếu không được phê duyệt và 1 nếu đã phê duyệt.

Đoạn mã sau đây sẽ tạo một mô hình XGTăng:

model = xgb.XGBClassifier(
    objective='reg:logistic'
)

Bạn có thể huấn luyện mô hình bằng một dòng mã, gọi phương thức fit() và truyền dữ liệu huấn luyện và nhãn vào phương thức đó.

model.fit(x_train, y_train)

Bước 2: Đánh giá độ chính xác của mô hình

Bây giờ, chúng ta có thể sử dụng mô hình đã huấn luyện để tạo dự đoán về dữ liệu kiểm thử bằng hàm predict().

Sau đó, chúng ta sẽ sử dụng hàm accuracy_score() của Scikit-learn để tính toán độ chính xác của mô hình dựa trên hiệu suất của mô hình đó trên dữ liệu kiểm thử. Chúng ta sẽ truyền vào hàm này các giá trị thực tế cùng với giá trị dự đoán của mô hình cho mỗi ví dụ trong tập kiểm thử:

y_pred = model.predict(x_test)
acc = accuracy_score(y_test, y_pred.round())
print(acc, '\n')

Bạn sẽ thấy độ chính xác khoảng 87%, nhưng độ chính xác của bạn sẽ thay đổi một chút vì luôn có yếu tố ngẫu nhiên trong công nghệ học máy.

Bước 3: Lưu mô hình

Để triển khai mô hình, hãy chạy mã sau để lưu mô hình vào tệp cục bộ:

model.save_model('model.bst')

7. Sử dụng Công cụ What-if để diễn giải mô hình

Bước 1: Tạo hình ảnh trực quan của Công cụ giả định

Để kết nối Công cụ giả định với mô hình cục bộ, bạn cần truyền cho công cụ này một tập hợp con các ví dụ kiểm thử cùng với giá trị thực tế cho các ví dụ đó. Hãy tạo một mảng Numpy gồm 500 ví dụ kiểm thử cùng với nhãn thông tin thực tế của chúng:

num_wit_examples = 500
test_examples = np.hstack((x_test[:num_wit_examples],y_test[:num_wit_examples].reshape(-1,1)))

Việc tạo bản sao Công cụ giả định cũng đơn giản như tạo đối tượng WitConfigBuilder và truyền cho đối tượng đó mô hình mà chúng ta muốn phân tích.

Vì Công cụ giả định yêu cầu danh sách điểm số cho mỗi lớp trong mô hình (trong trường hợp này là 2), nên chúng ta sẽ sử dụng phương thức predict_proba của XGBoost với Công cụ giả định:

config_builder = (WitConfigBuilder(test_examples.tolist(), data.columns.tolist() + ['mortgage_status'])
  .set_custom_predict_fn(model.predict_proba)
  .set_target_feature('mortgage_status')
  .set_label_vocab(['denied', 'approved']))
WitWidget(config_builder, height=800)

Xin lưu ý rằng sẽ mất một phút để tải hình ảnh. Khi tải xong, bạn sẽ thấy nội dung sau:

Chế độ xem ban đầu của Công cụ giả định

Trục y cho chúng ta thấy kết quả dự đoán của mô hình, trong đó 1 là kết quả dự đoán approved có độ tin cậy cao và 0 là kết quả dự đoán denied có độ tin cậy cao. Trục x chỉ là sự phân tán của tất cả các điểm dữ liệu đã tải.

Bước 2: Khám phá từng điểm dữ liệu

Chế độ xem mặc định trên Công cụ giả định là thẻ Trình chỉnh sửa điểm dữ liệu. Tại đây, bạn có thể nhấp vào từng điểm dữ liệu riêng lẻ để xem các tính năng của điểm dữ liệu đó, thay đổi giá trị của tính năng và xem thay đổi đó ảnh hưởng như thế nào đến thông tin dự đoán của mô hình về từng điểm dữ liệu riêng lẻ.

Trong ví dụ bên dưới, chúng tôi đã chọn một điểm dữ liệu gần với ngưỡng 0,5. Đơn đăng ký thế chấp được liên kết với điểm dữ liệu cụ thể này bắt nguồn từ CFPB. Chúng tôi đã thay đổi đặc điểm đó thành 0 và cũng thay đổi giá trị của agency_code_Department of Housing and Urban Development (HUD) thành 1 để xem điều gì sẽ xảy ra với dự đoán của mô hình nếu khoản vay này bắt nguồn từ HUD:

Như chúng ta có thể thấy trong phần dưới cùng bên trái của Công cụ giả định, việc thay đổi tính năng này đã làm giảm đáng kể 32% mức dự đoán approved của mô hình. Điều này có thể cho thấy rằng công ty cho vay ban đầu có tác động mạnh mẽ đến kết quả của mô hình, nhưng chúng ta cần phân tích thêm để chắc chắn.

Ở phần dưới cùng bên trái của giao diện người dùng, chúng ta cũng có thể thấy giá trị thực tế cho mỗi điểm dữ liệu và so sánh giá trị đó với giá trị dự đoán của mô hình:

Bước 3: Phân tích đối chứng

Tiếp theo, hãy nhấp vào bất kỳ điểm dữ liệu nào rồi di chuyển thanh trượt Hiển thị điểm dữ liệu đối chứng gần nhất sang phải:

Khi chọn mục này, bạn sẽ thấy điểm dữ liệu có giá trị đặc điểm tương tự nhất với điểm dữ liệu ban đầu mà bạn đã chọn, nhưng dự đoán lại ngược lại. Sau đó, bạn có thể cuộn qua các giá trị đặc điểm để xem hai điểm dữ liệu khác nhau ở điểm nào (sự khác biệt được làm nổi bật bằng màu xanh lục và in đậm).

Bước 4: Xem biểu đồ phần phụ thuộc

Để xem mức độ ảnh hưởng của mỗi tính năng đến các dự đoán tổng thể của mô hình, hãy chọn hộp Đồ thị phụ thuộc một phần và đảm bảo Biểu đồ phụ thuộc một phần toàn cục được chọn:

Ở đây, chúng ta có thể thấy rằng các khoản vay bắt nguồn từ HUD có khả năng bị từ chối cao hơn một chút. Biểu đồ có hình dạng này vì mã đại lý là một tính năng boolean, do đó, các giá trị chỉ có thể là chính xác 0 hoặc 1.

applicant_income_thousands là một đặc điểm số và trong biểu đồ phần phụ thuộc, chúng ta có thể thấy rằng thu nhập cao hơn làm tăng nhẹ khả năng một đơn đăng ký được phê duyệt, nhưng chỉ lên đến khoảng 200.000 đô la. Sau 200.000 đô la Mỹ, tính năng này không ảnh hưởng đến thông tin dự đoán của mô hình.

Bước 5: Khám phá hiệu suất tổng thể và tính công bằng

Tiếp theo, hãy chuyển đến thẻ Hiệu suất và tính công bằng. Thẻ này cho thấy số liệu thống kê về hiệu suất tổng thể của kết quả của mô hình trên tập dữ liệu được cung cấp, bao gồm cả ma trận nhầm lẫn, đường cong PR và đường cong ROC.

Chọn mortgage_status làm Tính năng thực tế để xem ma trận nhầm lẫn:

Ma trận nhầm lẫn này cho thấy các dự đoán chính xác và không chính xác của mô hình dưới dạng tỷ lệ phần trăm trên tổng số. Nếu bạn cộng các ô Thực tế là có / Đã dự đoán là cóThực tế là không / Đã dự đoán là không, thì kết quả sẽ có độ chính xác tương tự như mô hình của bạn (trong trường hợp này là khoảng 87%, mặc dù mô hình của bạn có thể thay đổi một chút vì có yếu tố ngẫu nhiên trong quá trình huấn luyện mô hình học máy).

Bạn cũng có thể thử nghiệm với thanh trượt ngưỡng, tăng và giảm điểm phân loại dương tính mà mô hình cần trả về trước khi quyết định dự đoán approved cho khoản vay, đồng thời xem mức độ chính xác, số dương tính giả và số âm tính giả thay đổi như thế nào. Trong trường hợp này, độ chính xác cao nhất ở ngưỡng .55.

Tiếp theo, trên trình đơn thả xuống Slice by (Phân đoạn theo), hãy chọn loan_purpose_Home_purchase:

Bây giờ, bạn sẽ thấy hiệu suất trên hai tập hợp con dữ liệu: lát cắt "0" cho biết khi khoản vay không phải để mua nhà và lát cắt "1" cho biết khi khoản vay là để mua nhà. Hãy kiểm tra độ chính xác, tỷ lệ dương tính giả và tỷ lệ âm tính giả giữa hai lát cắt để tìm sự khác biệt về hiệu suất.

Nếu mở rộng các hàng để xem ma trận nhầm lẫn, bạn có thể thấy rằng mô hình dự đoán "được phê duyệt" cho khoảng 70% đơn đăng ký vay mua nhà và chỉ 46% đơn đăng ký vay không phải để mua nhà (tỷ lệ phần trăm chính xác sẽ khác nhau tuỳ theo mô hình của bạn):

Nếu bạn chọn Tính tương đồng về nhân khẩu học trong các nút chọn bên trái, thì hai ngưỡng này sẽ được điều chỉnh để mô hình dự đoán approved cho tỷ lệ phần trăm ứng viên tương tự nhau trong cả hai lát cắt. Điều này ảnh hưởng như thế nào đến độ chính xác, kết quả dương tính giả và kết quả âm tính giả của từng lát cắt?

Bước 6: Khám phá việc phân phối tính năng

Cuối cùng, hãy chuyển đến thẻ Tính năng trong Công cụ giả định. Biểu đồ này cho bạn biết mức phân phối giá trị cho từng đặc điểm trong tập dữ liệu:

Bạn có thể sử dụng thẻ này để đảm bảo tập dữ liệu của mình được cân bằng. Ví dụ: có vẻ như có rất ít khoản vay trong tập dữ liệu này do Cơ quan dịch vụ nông trại cung cấp. Để cải thiện độ chính xác của mô hình, chúng tôi có thể xem xét thêm các khoản vay từ đại lý đó nếu có dữ liệu.

Chúng tôi chỉ mô tả một vài ý tưởng khám phá Công cụ giả định tại đây. Hãy tiếp tục khám phá công cụ này, còn rất nhiều khía cạnh khác để bạn khám phá!

8. Triển khai mô hình cho Vertex AI

Chúng ta đã có mô hình hoạt động trên máy, nhưng sẽ rất tuyệt nếu chúng ta có thể đưa ra dự đoán về mô hình đó ở bất cứ đâu (không chỉ trên máy tính xách tay này!). Trong bước này, chúng ta sẽ triển khai ứng dụng này lên đám mây.

Bước 1: Tạo bộ chứa Cloud Storage cho mô hình của chúng ta

Trước tiên, hãy xác định một số biến môi trường mà chúng ta sẽ sử dụng trong suốt phần còn lại của lớp học lập trình này. Điền tên dự án Google Cloud, tên bộ chứa bộ nhớ trên đám mây mà bạn muốn tạo vào các giá trị bên dưới (phải là duy nhất trên toàn hệ thống) và tên phiên bản của phiên bản đầu tiên của mô hình:

# Update the variables below to your own Google Cloud project ID and GCS bucket name. You can leave the model name we've specified below:
GCP_PROJECT = 'your-gcp-project'
MODEL_BUCKET = 'gs://storage_bucket_name'
MODEL_NAME = 'xgb_mortgage'

Bây giờ, chúng ta đã sẵn sàng tạo một bộ chứa bộ nhớ để lưu trữ tệp mô hình XGBoost. Chúng ta sẽ trỏ Vertex AI đến tệp này khi triển khai.

Chạy lệnh gsutil này trong sổ tay để tạo một bộ nhớ theo khu vực:

!gsutil mb -l us-central1 $MODEL_BUCKET

Bước 2: Sao chép tệp mô hình vào Cloud Storage

Tiếp theo, chúng ta sẽ sao chép tệp mô hình đã lưu của XGBoost vào Cloud Storage. Chạy lệnh gsutil sau:

!gsutil cp ./model.bst $MODEL_BUCKET

Chuyển đến trình duyệt lưu trữ trong Cloud Console để xác nhận tệp đã được sao chép:

Bước 3: Tạo mô hình và triển khai mô hình đó đến một điểm cuối

Chúng ta sắp sẵn sàng triển khai mô hình lên đám mây! Trong Vertex AI, một mô hình có thể lưu giữ nhiều điểm cuối. Trước tiên, chúng ta sẽ tạo mô hình, sau đó sẽ tạo điểm cuối trong mô hình đó và triển khai mô hình.

Trước tiên, hãy sử dụng CLI gcloud để tạo mô hình:

!gcloud beta ai models upload \
--display-name=$MODEL_NAME \
--artifact-uri=$MODEL_BUCKET \
--container-image-uri=us-docker.pkg.dev/cloud-aiplatform/prediction/xgboost-cpu.1-2:latest \
--region=us-central1

Tham số artifact-uri sẽ trỏ đến vị trí Bộ nhớ nơi bạn đã lưu mô hình XGBoost. Tham số container-image-uri giúp Vertex AI biết nên dùng vùng chứa tạo sẵn nào để phân phát. Sau khi lệnh này hoàn tất, hãy chuyển đến phần mô hình của bảng điều khiển Vertex để lấy mã nhận dạng của mô hình mới. Bạn có thể tìm thấy thông tin đó tại đây:

Lấy mã mô hình từ bảng điều khiển

Sao chép mã nhận dạng đó rồi lưu vào một biến:

MODEL_ID = "your_model_id"

Đã đến lúc tạo điểm cuối trong mô hình này. Chúng ta có thể thực hiện việc đó bằng lệnh gcloud sau:

!gcloud beta ai endpoints create \
--display-name=xgb_mortgage_v1 \
--region=us-central1

Khi quá trình đó hoàn tất, bạn sẽ thấy vị trí của điểm cuối được ghi lại trong kết quả của sổ tay. Tìm dòng cho biết điểm cuối đã được tạo bằng một đường dẫn có dạng như sau: projects/project_ID/locations/us-central1/endpoints/endpoint_ID. Sau đó, thay thế các giá trị bên dưới bằng mã nhận dạng của điểm cuối mà bạn đã tạo ở trên:

ENDPOINT_ID = "your_endpoint_id"

Để triển khai điểm cuối, hãy chạy lệnh gcloud bên dưới:

!gcloud beta ai endpoints deploy-model $ENDPOINT_ID \
--region=us-central1 \
--model=$MODEL_ID \
--display-name=xgb_mortgage_v1 \
--machine-type=n1-standard-2 \
--traffic-split=0=100

Quá trình triển khai điểm cuối sẽ mất khoảng 5 đến 10 phút để hoàn tất. Trong khi điểm cuối đang triển khai, hãy chuyển đến phần mô hình của bảng điều khiển. Nhấp vào mô hình của bạn và bạn sẽ thấy điểm cuối đang triển khai:

Khi quá trình triển khai hoàn tất, bạn sẽ thấy một dấu kiểm màu xanh lục ở vị trí của vòng quay đang tải.

Bước 4: Kiểm thử mô hình đã triển khai

Để đảm bảo mô hình đã triển khai của bạn đang hoạt động, hãy kiểm thử mô hình đó bằng gcloud để đưa ra dự đoán. Trước tiên, hãy lưu một tệp JSON có ví dụ trong tập kiểm thử của chúng ta:

%%writefile predictions.json
{
  "instances": [
    [2016.0, 1.0, 346.0, 27.0, 211.0, 4530.0, 86700.0, 132.13, 1289.0, 1408.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0]
  ]
}

Kiểm thử mô hình bằng cách chạy lệnh gcloud sau:

!gcloud beta ai endpoints predict $ENDPOINT_ID \
--json-request=predictions.json \
--region=us-central1

Bạn sẽ thấy thông tin dự đoán cho mô hình trong dữ liệu đầu ra. Ví dụ cụ thể này đã được phê duyệt, vì vậy, bạn sẽ thấy một giá trị gần với 1.

9. Dọn dẹp

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

Nếu muốn xoá tất cả tài nguyên bạn đã tạo trong lớp học này, bạn chỉ cần xoá thực thể sổ tay thay vì dừng thực thể đó.

Để xoá điểm cuối mà bạn đã triển khai, hãy chuyển đến mục Điểm cuối của bảng điều khiển Vertex rồi nhấp vào biểu tượng xoá:

Để xoá Bộ nhớ, hãy sử dụng trình đơn Điều hướng trong Cloud Console, chuyển đến Bộ nhớ, chọn bộ nhớ của bạn rồi nhấp vào Xoá: