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 phòng thí nghiệm này, bạn sẽ dùng Công cụ What-if để phân tích mô hình XGBoost đã được huấn luyện về 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 XGTăng trên tập dữ liệu về 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 phòng thí nghiệm này trên Google Cloud là khoảng 1 đô la.

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 giải pháp 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, các mô hình được huấn luyện bằng AutoML và mô hình tuỳ chỉnh có thể truy cập được thông qua các dịch vụ riêng biệt. Dịch vụ 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 có nhiều sản phẩm nhằm hỗ trợ quy trình học máy toàn diện. 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 máy học sử dụng cây quyết định và tính năng tăng độ dốc để tạo các 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ơ đồ dưới đây là hình ảnh trực quan của 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 dựa trên thông tin dự báo thời tiết hay không:

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 đối với dữ liệu phi 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ả đối với dữ liệu có cấu trúc như tập dữ liệu về 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 một dự án, hãy làm theo hướng dẫn tại đây.

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

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

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

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

Trang tổng quan Vertex

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

Trong mục Vertex của Cloud Console, hãy nhấp vào Notebooks:

Chọn sổ tay

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

Thực thể TFE

Sử dụng các tuỳ chọn mặc định rồi nhấp vào Tạo. Sau khi tạo phiên bản, hãy chọn Open JupyterLab.

Bước 4: Cài đặt XGTăng

Sau khi phiên bản JupyterLab của bạn mở ra, bạn cần thêm gói XGTăng.

Để thực hiện việc này, hãy chọn Cửa sổ dòng lệnh từ 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 phiên bản Sổ tay Python 3 từ trình chạy. Bạn đã sẵn sàng bắt đầu sử dụng 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 đây 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 xuống và xử lý dữ liệu

Chúng tôi sẽ sử dụng tập dữ liệu về thế chấp từ ffiec.gov để huấn luyện một mô hình XGTăng. Chúng tôi đã xử lý trước một số tập dữ liệu gốc và tạo một phiên bản nhỏ hơn để bạn sử dụng cho việc huấn luyện mô hình. Mô hình này sẽ dự đoán liệu một đơn đăng ký vay 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 đã tạo một phiên bản của tập dữ liệu cho bạn 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 Gấu trúc

Trước khi tạo Khung dữ liệu của Gấu trúc, chúng ta sẽ tạo một dict cho mỗi loại dữ liệu của cột để Gấu trúc đọc chính xác tập dữ liệu của mình:

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. Bạn cần xáo trộn dữ liệu 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 là shuffle để thực hiện việc này. Tiện ích này đã được nhập 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 Gấu trúc. Bạn sẽ thấy như sau sau khi chạy ô ở trên:

Xem trước tập dữ liệu 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 ta đang dự đoán. Giá trị 1 cho biết một đơn đăng ký cụ thể đã được phê duyệt và 0 cho biết đơn đăng ký đó đã 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 này 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 sự kết hợp giữa giá trị phân loại và giá trị số, nhưng XGboost yêu cầu tất cả các đối tượng đều phải là số. Thay vì biểu thị các giá trị phân loại bằng phương thức mã hoá một nóng, đối với mô hình XGTăng, chúng ta sẽ tận dụng hàm get_dummies của Gấu trúc.

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 chuỗi các cột, mỗi cột chỉ có 0 và 1. Ví dụ: nếu chúng tôi có cột "màu" bằng các giá trị có thể có là "xanh dương" và "đỏ" get_dummies sẽ chuyển đổi thành 2 cột có tên là "color_blue" và "color_red" với tất cả các giá trị boolean 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ả hình gấu trúc

Bước 4: Chia dữ liệu thành các nhóm huấn luyện và nhóm thử nghiệm

Một khái niệm quan trọng trong công nghệ học máy là phân tách thử nghiệm / thử nghiệm. 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 chia dữ liệu:

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. Tạo, huấn luyện và đánh giá mô hình XGTăng

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

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 nhiệm 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 này bằng một dòng mã, gọi phương thức fit() rồi truyền vào đó dữ liệu và nhãn huấn luyện.

model.fit(x_train, y_train)

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

Giờ đây, chúng ta có thể sử dụng mô hình đã huấn luyện để tạo thông tin 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 dựa trên dữ liệu kiểm thử. Chúng ta sẽ truyền cho nó các giá trị thực tế cùng với các giá trị dự đoán của mô hình cho từng 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 vào khoảng 87%, nhưng độ chính xác của bạn sẽ chênh lệch 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 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 cho Công cụ What-if

Để kết nối Công cụ What-if với mô hình cục bộ, bạn cần truyền cho công cụ đó một tập hợp con các ví dụ kiểm thử cùng với các 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 thực thể cho Công cụ What-if cũng đơn giản như việc tạo đối tượng WitConfigBuilder và truyền đối tượng đó vào mô hình mà chúng ta muốn phân tích.

Vì Công cụ What-if yêu cầu danh sách điểm số cho từng lớp trong mô hình của chúng ta (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 cùng với Công cụ What-If:

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 quá trình tải hình ảnh sẽ mất một phút. Khi tải, bạn sẽ thấy như sau:

Chế độ xem ban đầu của Công cụ What-If

Trục y cho thấy dự đoán của mô hình, với 1 là dự đoán approved có độ tin cậy cao và 0 là dự đoán denied có độ tin cậy cao. Trục x chỉ là độ 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ụ What-if là thẻ Datapoint Editor (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 ta đã thay đổi tính năng đó thành 0 cũng như 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 ở phần dưới cùng bên trái của Công cụ What-if, việc thay đổi tính năng này đã làm giảm đáng kể khả năng dự đoán approved của mô hình xuống 32%. Điều này có thể cho thấy rằng công ty quảng cáo cho vay có tác động mạnh mẽ đến kết quả của mô hình, nhưng chúng tôi 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ể xem giá trị thực tế của từng điểm dữ liệu và so sánh giá trị đó với thông tin dự đoán của mô hình:

Bước 3: Phân tích phản thực tế

Tiếp theo, nhấp vào điểm dữ liệu bất kỳ và di chuyển thanh trượt Hiển thị điểm dữ liệu phản thực gần nhất sang bên phải:

Khi chọn giá trị này, bạn sẽ thấy điểm dữ liệu có giá trị tính năng gần giống nhất với giá trị ban đầu mà bạn đã chọn, nhưng kết quả dự đoán ngược lại. Sau đó, bạn có thể di chuyển qua các giá trị của tính năng để xem hai điểm dữ liệu khác nhau ở điểm nào (sự khác biệt được đánh dấu bằng màu xanh lục và in đậm).

Bước 4: Xem đồ thị phụ thuộc một phần

Để 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 chọn Biểu đồ phụ thuộc một phần toàn cục:

Ở đâ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ể chính xác là 0 hoặc 1.

applicant_income_thousands là một tính năng bằng số và trong biểu đồ sự phụ thuộc một phần, chúng ta có thể thấy rằng thu nhập cao hơn sẽ làm tăng một chút khả năng đơn đăng ký được chấp thuận, 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: Tìm hiểu 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à Thẻ Công bằng. Biểu đồ này hiển thị số liệu thống kê tổng thể về hiệu suất về kết quả của mô hình trên tập dữ liệu được cung cấp, bao gồm 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ế thực để xem ma trận nhầm lẫn:

Ma trận nhầm lẫn này hiển thị các dự đoán chính xác và không chính xác của mô hình của chúng tôi dưới dạng phần trăm tổng số. Nếu bạn cộng các ô vuông Có thực tế / Có dự đoán cóKhông thực tế / Không dự đoán, thì độ chính xác của mô hình sẽ giống 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 đôi chút vì có yếu tố ngẫu nhiên trong việc huấn luyện các 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 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 độ thay đổi của độ chính xác, cảnh báo dương tính giả (FN) và âm tính giả (FN). Trong trường hợp này, độ chính xác cao nhất ở ngưỡng 0,55.

Tiếp theo, trên trình đơn thả xuống Slice by (Lát theo) bên trái, 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 của dữ liệu: "0" lát cắt hiển thị khi nào khoản vay không dùng để mua nhà và "1" lát cắt dùng để chỉ trường hợp khoản vay là để mua nhà. Kiểm tra mức độ chính xác, tỷ lệ sai lệch và tỷ lệ âm tính giả giữa hai phần này để tìm ra 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 mô hình dự đoán "đã phê duyệt" đối với khoản vay gần 70% để mua nhà và chỉ 46% khoản 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 Điểm tương đồng về thông tin nhân khẩu học trong các nút chọn ở bên trái, thì 2 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ười đăng ký tương tự ở cả hai nhóm. Việc này ảnh hưởng như thế nào đến tính chính xác, dương tính giả và âm tính giả cho từng lát cắt?

Bước 6: Tìm hiểu việc phân phối tính năng

Cuối cùng, điều hướng đến tab Tính năng trong Công cụ điều gì xảy ra. Biểu đồ này hiển thị cho bạn mức phân phối giá trị cho từng đối tượng trong tập dữ liệu của bạn:

Bạn có thể sử dụng thẻ này để đảm bảo tập dữ liệu đượ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 số ý tưởng khám phá Công cụ giả định tại đây. Bạn cứ thoải mái dùng công cụ này vì còn rất nhiều khu vực khác để 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 tính, nhưng sẽ thật tuyệt nếu chúng ta có thể đưa ra dự đoán về mô hình đó từ bất cứ đâu (không chỉ sổ tay này!). Ở bước này, chúng tôi sẽ triển khai ứng dụng lên đám mây.

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

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 của bạn vào các giá trị bên dưới, tên bộ chứa bộ nhớ trên đám mây mà bạn muốn tạo (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 lưu trữ để lưu trữ tệp mô hình XGTăng. Chúng ta sẽ trỏ Vertex AI vào tệp này khi triển khai.

Chạy lệnh gsutil này từ trong sổ tay của bạn để tạo một bộ chứa lưu trữ 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 XGboost vào Cloud Storage. Chạy lệnh YT 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 cho điểm cuối

Chúng tôi gần như đã 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 trữ 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 của bạn:

!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ớ mà bạn đã lưu mô hình XGTăng. 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 trong bảng điều khiển Vertex để lấy mã của mô hình mới. Bạn có thể tìm thấy ở đây:

Nhận mã kiểu máy 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 này:

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

Khi quá trình này 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ả sổ tay của chúng tôi. 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 đã tạo ở trên:

ENDPOINT_ID = "your_endpoint_id"

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

!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-10 phút để hoàn tất. Trong khi triển khai điểm cuối, hãy chuyển đến phần mô hình trong bảng điều khiển của bạn. Nhấp vào mô hình của bạn và bạn sẽ thấy nhân viên triển khai của mình:

Khi quá trình triển khai hoàn tất thành công, bạn sẽ thấy 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 mà bạn triển khai đang hoạt động, hãy kiểm thử bằng gcloud để đưa ra thông tin dự đoán. Trước tiên, hãy lưu tệp JSON bằng một ví dụ từ tập hợ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 của bạn bằng cách chạy lệnh gcloud này:

!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 bằng 1.

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 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 phòng thí nghiệm này, bạn chỉ cần xoá phiên bản của sổ tay thay vì dừng phiên bản đó.

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

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