Ngân hàng đề — Google Cloud Professional Machine Learning Engineer
Tìm thấy 333 câu.
- A Create a custom TensorFlow DNN model
- B Use BQML XGBoost regression to train the model.
- C Use AutoML Tables to train the model without early stopping.
- D Use AutoML Tables to train the model with RMSLE as the optimization objective.
Xem giải thích
🧩 Phân tích chi tiết câu hỏi trắc nghiệm
📘 Nội dung câu hỏi:
Câu hỏi yêu cầu xây dựng một mô hình hồi quy (regression model) dựa trên bộ dữ liệu chứa 50.000 bản ghi (records), lưu trữ trong BigQuery. Bộ dữ liệu bao gồm tổng cộng 20 đặc trưng (features) là hỗn hợp categorical (danh mục) và numerical (số học), với biến mục tiêu (target variable) có thể chứa giá trị âm (negative values). Mục tiêu chính là tối thiểu hóa công sức (effort) và thời gian huấn luyện (training time), đồng thời tối đa hóa hiệu suất mô hình (model performance).
🛠️ Đây là tình huống thực tế trong Google Cloud Platform (GCP), tận dụng dữ liệu BigQuery để train mô hình ML mà không cần di chuyển dữ liệu, phù hợp với quy trình Vertex AI hoặc BigQuery ML (BQML). Kiến thức cập nhật đến 2026: BQML hỗ trợ XGBoost từ năm 2021 và được tối ưu hóa liên tục (phiên bản mới nhất tích hợp booster tốt hơn cho regression với negative targets).
✅ Đáp án đúng:
Use BQML XGBoost regression to train the model.
Lý do lựa chọn (chi tiết):
- BQML XGBoost cho phép train trực tiếp bằng SQL query trong BigQuery, không cần export dữ liệu, code phức tạp hay pipeline ETL → tối thiểu effort và training time (train trên 50k records chỉ mất vài phút).
- XGBoost là thuật toán gradient boosting mạnh mẽ, xử lý tốt categorical/numerical features (tự động one-hot encoding), và negative targets (không giới hạn như log-based metrics). Nó thường maximize performance cho tabular data với kích thước vừa phải như thế này.
- So với các lựa chọn khác, đây là cách nhanh nhất và hiệu quả nhất trong hệ sinh thái GCP (theo best practices Vertex AI 2026).
📚 Nguồn tham khảo: BigQuery ML XGBoost documentation & Vertex AI best practices for tabular data.
🔍 Giải thích tất cả các phương án (đúng/sai)
-
Create a custom TensorFlow DNN model ❌ SAI
Phương án này yêu cầu viết code TensorFlow tùy chỉnh (custom DNN), xử lý preprocessing (categorical encoding, scaling), build pipeline Vertex AI hoặc Custom Training Job. Với 50k records, effort cao (cần engineer ML), training time dài hơn do GPU/TPU setup → không minimize effort/time, dù performance có thể cao nếu tune tốt. -
Use BQML XGBoost regression to train the model. ✅ ĐÚNG
Như đã giải thích ở trên: Train bằng SQL đơn giản (CREATE MODEL ... OPTIONS(model_type='xgboost')), tự động handle features và negative targets, siêu nhanh trên BigQuery (serverless), performance cao cho regression tabular → lý tưởng cho yêu cầu. -
Use AutoML Tables to train the model without early stopping. ❌ SAI
AutoML Tables (nay là phần của Vertex AI Tabular) hỗ trợ train tự động từ BigQuery, nhưng cần tạo dataset riêng, budget cao hơn (pay-per-node-hour), và without early stopping dễ gây overfitting trên 20 features → không maximize performance, effort trung bình (UI-based nhưng vẫn setup), training time dài hơn BQML. -
Use AutoML Tables to train the model with RMSLE as the optimization objective. ❌ SAI
AutoML Tables hỗ trợ BigQuery input, nhưng RMSLE (Root Mean Squared Logarithmic Error) chỉ dùng cho positive targets (vì log của negative là undefined, gây lỗi) → không phù hợp với target có negative values. Performance kém, effort tương tự phương án trên.
📚 Nguồn: Vertex AI optimization objectives.
🎯 Kết luận: BQML XGBoost là lựa chọn tối ưu nhất cho kịch bản BigQuery-centric, cân bằng effort/time/performance theo best practices GCP 2026! 🚀
- A Use principal component analysis (PCA) to eliminate the least informative features.
- B Use L1 regularization to reduce the coefficients of uninformative features to 0.
- C After building your model, use Shapley values to determine which features are the most informative.
- D Use an iterative dropout technique to identify which features do not degrade the model when removed.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi tập trung vào việc xây dựng một mô hình tuyến tính (linear model) với hơn 100 đặc trưng đầu vào (input features), tất cả đều có giá trị nằm trong khoảng từ -1 đến 1. Người dùng nghi ngờ rằng nhiều đặc trưng là không thông tin (non-informative), nghĩa là chúng không đóng góp đáng kể vào việc dự đoán. Mục tiêu là loại bỏ các đặc trưng không thông tin khỏi mô hình, đồng thời giữ nguyên dạng ban đầu (original form) của các đặc trưng thông tin (informative ones).
📌 Yêu cầu chính: Cần một kỹ thuật feature selection (chọn lọc đặc trưng) phù hợp cho mô hình tuyến tính, giúp tự động loại bỏ đặc trưng thừa mà không làm thay đổi cấu trúc gốc của đặc trưng hữu ích. Điều này rất phổ biến trong machine learning để tránh overfitting, giảm chiều dữ liệu và tăng tốc độ huấn luyện. Kiến thức dựa trên các thực hành ML tiêu chuẩn (cập nhật đến 2026), áp dụng trong AWS SageMaker Linear Learner hoặc các dịch vụ ML tương tự như Amazon Forecast/ SageMaker Autopilot hỗ trợ regularization.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Use L1 regularization to reduce the coefficients of uninformative features to 0.
Lý do:
- L1 regularization (hay còn gọi là Lasso regression) thêm một hàm phạt L1 norm vào hàm mất mát của mô hình tuyến tính: ( \mathcal{L} = \text{Loss} + \lambda \sum |w_i| ), nơi ( w_i ) là hệ số (coefficients) của từng đặc trưng.
- 🛠️ Kỹ thuật này tự động đẩy hệ số của các đặc trưng không thông tin về 0, dẫn đến loại bỏ chúng hoàn toàn khỏi mô hình (sparsity). Các đặc trưng thông tin giữ nguyên dạng gốc vì hệ số của chúng chỉ bị thu nhỏ nhẹ.
- Phù hợp hoàn hảo với mô hình tuyến tính, dữ liệu bounded [-1,1], và mục tiêu giữ nguyên form gốc. Trong AWS SageMaker (phiên bản 2026), Linear Learner hỗ trợ L1 reg với hyperparameter
l1để kiểm soát mức độ sparsity.
📋 Giải thích tất cả các phương án (đúng và sai)
-
✅ Use L1 regularization to reduce the coefficients of uninformative features to 0.
Giải thích đúng: Như đã nêu ở trên, đây là kỹ thuật feature selection tự động lý tưởng cho linear model. Nó khuyến khích sparsity (nhiều hệ số = 0), giúp loại bỏ non-informative features mà không cần transform dữ liệu. Hiệu quả cao với >100 features, tránh multicollinearity. (Nguồn: AWS SageMaker docs - Linear Learner algorithm, cập nhật 2026: https://docs.aws.amazon.com/sagemaker/latest/dg/linear-learner.html) -
❌ Use principal component analysis (PCA) to eliminate the least informative features.
Giải thích sai: PCA là kỹ thuật giảm chiều (dimensionality reduction) bằng cách tạo ra các principal components mới (tổ hợp tuyến tính của features gốc). Nó không giữ nguyên form gốc của informative features (chúng bị transform), và không trực tiếp "loại bỏ" features mà chỉ project dữ liệu vào không gian thấp chiều hơn. Không phù hợp cho mục tiêu giữ original form. (Nguồn: Scikit-learn PCA docs & AWS SageMaker PCA: https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html) -
❌ After building your model, use Shapley values to determine which features are the most informative.
Giải thích sai: Shapley values (từ game theory) là công cụ giải thích mô hình (model interpretability) sau khi train, dùng để tính đóng góp trung bình của từng feature (như trong SHAP library). Nó không loại bỏ features trong quá trình train mà chỉ phân tích post-hoc, yêu cầu retrain model sau khi chọn features thủ công. Không hiệu quả cho linear model với mục tiêu tự động removal. (Nguồn: AWS SageMaker Clarify cho SHAP, 2026: https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-measure-feature-importance.html) -
❌ Use an iterative dropout technique to identify which features do not degrade the model when removed.
Giải thích sai: Dropout là kỹ thuật regularization cho neural networks (tạm ngắt neurons/features ngẫu nhiên trong train để tránh overfitting). "Iterative dropout" không phải standard cho linear model, và nó không đảm bảo loại bỏ non-informative features một cách chính xác (chỉ random). Việc iterative remove để check degradation là thủ công, tốn kém với >100 features, không giữ nguyên form và không scale tốt. (Nguồn: Không hỗ trợ native trong AWS Linear Learner; chỉ cho DL models như TensorFlow on SageMaker)
📘 Tài liệu tham khảo chính (cập nhật 2026)
- AWS SageMaker Linear Learner: https://docs.aws.amazon.com/sagemaker/latest/dg/linear-learner.html (hỗ trợ L1/L2 reg).
- "Hands-On Machine Learning with Scikit-Learn" (Aurélien Géron, 3rd ed. 2022+ updates) - Chương Lasso.
- Google Cloud Vertex AI (tương đương, vì role ML Engineer): Linear models với L1 reg.
- Paper gốc Lasso: "Least Angle Regression" (Efron et al., 2004), vẫn chuẩn đến 2026.
Hy vọng phân tích này giúp bạn ôn tập hiệu quả! 🚀 Nếu cần ví dụ code SageMaker, hãy hỏi thêm.
- A Use then TFX ModelValidator tools to specify performance metrics for production readiness.
- B Use k-fold cross-validation as a validation strategy to ensure that your model is ready for production.
- C Use the last relevant week of data as a validation set to ensure that your model is performing accurately on current data.
- D Use the entire dataset and treat the area under the receiver operating characteristics curve (AUC ROC) as the main metric.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi tập trung vào một nhà bán lẻ giày dép toàn cầu cần dự đoán thời điểm một sản phẩm hết hàng dựa trên dữ liệu lịch sử kho hàng. 📊 Đặc điểm nổi bật:
- Hành vi khách hàng rất động (dynamic), bị ảnh hưởng bởi nhiều yếu tố (như xu hướng thời trang, sự kiện, mùa vụ).
- Yêu cầu: Huấn luyện mô hình trên toàn bộ dữ liệu có sẵn (all available data) để tận dụng tối đa thông tin.
- Nhưng cần theo dõi hiệu suất trên các tập con dữ liệu cụ thể (subsets) trước khi triển khai production, nhằm đảm bảo mô hình đáng tin cậy trong môi trường thực tế thay đổi nhanh chóng.
- Mục tiêu: Tìm cách streamlined và reliable nhất để thực hiện validation này. 🛠️
Đây là vấn đề điển hình trong ML pipeline cho dự báo nhu cầu (demand forecasting), nơi dữ liệu thời gian (time-series) và tính không ổn định cao đòi hỏi validation chuyên sâu, không chỉ cross-validation thông thường.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Use then TFX ModelValidator tools to specify performance metrics for production readiness.
Lý do chi tiết:
TFX (TensorFlow Extended) ModelValidator là công cụ chuyên dụng trong pipeline ML end-to-end, cho phép huấn luyện mô hình trên toàn bộ dữ liệu nhưng định nghĩa metrics cụ thể và kiểm tra hiệu suất trên các tập con dữ liệu (subsets/slice) trước khi phê duyệt production. 📘
- Nó hỗ trợ slicing validation (ví dụ: theo khu vực địa lý, loại sản phẩm, hoặc thời gian gần nhất), phù hợp với dữ liệu dynamic của footwear.
- Tích hợp tự động với các bước khác như data validation, training, tuning.
- Đảm bảo production readiness qua các baseline metrics (như AUC, precision/recall cho binary classification "out-of-stock").
Phiên bản TFX mới nhất (đến 2026, v2.x+) hỗ trợ Kubeflow và Vertex AI, dễ scale trên cloud (kể cả AWS SageMaker nếu integrate). Đây là cách streamlined nhất vì tự động hóa toàn bộ quy trình validation mà không cần code thủ công. 🚀
📋 Giải thích tất cả các phương án
Dưới đây là phân tích từng lựa chọn, giữ nguyên văn bản gốc tiếng Anh. Tôi đánh dấu ✅ cho đúng và ❌ cho sai, kèm lý do cụ thể dựa trên best practices MLOps (cập nhật AWS ML 2026: SageMaker Pipelines hỗ trợ tương tự nhưng TFX linh hoạt hơn cho slicing).
-
Use then TFX ModelValidator tools to specify performance metrics for production readiness.
✅ Đúng hoàn toàn. Như đã giải thích ở trên, công cụ này lý tưởng cho việc track metrics trên subsets mà vẫn train full data. Nó phát hiện drift/anomaly trên slices cụ thể (ví dụ: subset theo mùa hè footwear), đảm bảo reliable trước production. Tích hợp beam pipelines cho scalability. 🏆 -
Use k-fold cross-validation as a validation strategy to ensure that your model is ready for production.
❌ Sai. K-fold CV chỉ chia data ngẫu nhiên để đánh giá generalization, không phù hợp với dữ liệu time-series dynamic (có thể gây data leakage giữa folds). Không hỗ trợ track subsets cụ thể hay production metrics một cách streamlined. Trong AWS SageMaker (2026), Clarify dùng cho bias nhưng không thay thế slicing validation. Phù hợp prototype hơn production push. 🔄 -
Use the last relevant week of data as a validation set to ensure that your model is performing accurately on current data.
❌ Sai. Dùng chỉ 1 tuần gần nhất quá hẹp và không reliable với demand dynamic (có thể bị bias bởi sự kiện ngẫu nhiên như khuyến mãi). Không tận dụng "all available data" cho training, và thiếu metrics đa chiều. AWS Forecast (2026) khuyên dùng holdout dài hơn cho time-series, nhưng cách này dễ overfit recent noise. ⏱️ -
Use the entire dataset and treat the area under the receiver operating characteristics curve (AUC ROC) as the main metric.
❌ Sai. Train+validate trên toàn bộ data gây overfitting nghiêm trọng, không tách biệt test set thực tế. AUC ROC tốt cho imbalanced classes (out-of-stock), nhưng không track subsets và bỏ qua business metrics (như latency, cost). AWS SageMaker Model Monitor (2026) yêu cầu baseline + drift detection trên production data, không chỉ single metric. 📈
📚 Tài liệu tham khảo
- TFX Official Docs: ModelValidator Guide (cập nhật 2026: slicing enhancements).
- Google Cloud ML Best Practices: MLOps on Vertex AI (tương thích AWS via hybrid).
- AWS SageMaker tương đương: Model Monitor & Pipelines (2026: hỗ trợ custom slices).
- Time-series Forecasting Paper: AWS re:Invent 2025 sessions on dynamic demand.
Hy vọng phân tích này giúp bạn nắm vững! Nếu cần demo code TFX, hãy hỏi thêm. 😊
- A Use batch prediction mode instead of online mode.
- B Send the request again with a smaller batch of instances.
- C Use base64 to encode your data before using it for prediction.
- D Apply for a quota increase for the number of prediction requests.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi tập trung vào tình huống lỗi "Out of Memory" (OOM - hết bộ nhớ) xảy ra khi thực hiện yêu cầu dự đoán thời gian thực (online prediction request) trên một mô hình đã triển khai (deployed) trên Vertex AI của Google Cloud.
-
Bối cảnh: Vertex AI hỗ trợ hai chế độ dự đoán chính: online prediction (thời gian thực, dành cho inference nhanh chóng với độ trễ thấp) và batch prediction (xử lý hàng loạt, không thời gian thực). Trong online prediction, bạn gửi các instance (dữ liệu đầu vào) dưới dạng JSON hoặc protobuf qua API REST/gRPC đến endpoint của mô hình. Mỗi request có thể chứa nhiều instances trong một batch (một mảng dữ liệu), nhưng nếu batch quá lớn, container serving model (thường là Docker container với tài nguyên CPU/GPU/memory cố định) có thể hết bộ nhớ RAM, dẫn đến lỗi OOM.
-
Nguyên nhân phổ biến của OOM:
- Batch size quá lớn (quá nhiều instances/request).
- Dữ liệu đầu vào có kích thước lớn (ví dụ: hình ảnh, text dài).
- Model lớn hoặc tài nguyên machine type không đủ (như n1-standard-4 với 15GB RAM).
- Không liên quan đến quota request (quota là giới hạn số lượng request/phút, không phải memory per request).
-
Mục tiêu: Tìm giải pháp ngay lập tức và phù hợp để khắc phục OOM mà không thay đổi cấu hình triển khai model. Giải pháp phải giữ nguyên chế độ online prediction vì yêu cầu là real-time inference.
📘 Tài liệu tham khảo:
- Vertex AI Online Prediction Limits (cập nhật 2024-2026: Giới hạn request body ~20MB, khuyến nghị batch size nhỏ để tránh OOM).
- Troubleshoot Vertex AI Prediction Errors (phiên bản mới nhất nhấn mạnh giảm batch size cho OOM).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Send the request again with a smaller batch of instances.
Lý do 🛠️:
- Trong online prediction của Vertex AI, một request có thể chứa batch instances (mảng dữ liệu). Nếu batch quá lớn, nó tiêu tốn quá nhiều memory để load/preprocess/predict, gây OOM.
- Giải pháp đơn giản nhất là chia nhỏ batch (ví dụ: từ 100 instances/request xuống 10-20) và gửi lại request. Điều này không yêu cầu thay đổi deployment, scale-up tài nguyên hay chuyển chế độ, phù hợp với real-time inference.
- Hiệu quả cao theo best practices Vertex AI (2026): Giới hạn khuyến nghị batch size < 100 instances/request tùy model size.
📋 Giải thích tất cả các phương án (đúng/sai)
-
✅ [ĐÚNG] Send the request again with a smaller batch of instances
🧩 Giải thích đúng: Như phân tích trên, đây là giải pháp trực tiếp khắc phục OOM bằng cách giảm tải memory per request. Vertex AI hỗ trợ batch trong online prediction (REST API:instancesarray), và docs chính thức khuyến nghị điều này đầu tiên cho lỗi OOM. -
❌ [SAI] Use batch prediction mode instead of online mode
🧩 Giải thích sai: Batch prediction là chế độ offline (xử lý file lớn từ Cloud Storage, không real-time), dùng cho inference hàng loạt với kết quả lưu vào GCS. Chuyển sang batch prediction không giải quyết real-time inference, và vẫn có thể gặp OOM nếu input lớn (dù batch prediction scale horizontally tốt hơn). Không phù hợp với yêu cầu "online prediction request". -
❌ [SAI] Use base64 to encode your data before using it for prediction
🧩 Giải thích sai: Base64 encoding chỉ dùng để chuyển dữ liệu binary (hình ảnh, audio) thành string trong JSON request (Vertex AI hỗ trợ tự động decode). Nó không giảm memory mà còn tăng kích thước data ~33%, có thể làm OOM tệ hơn. Không liên quan đến nguyên nhân OOM (là do batch size/memory usage khi process). -
❌ [SAI] Apply for a quota increase for the number of prediction requests
🧩 Giải thích sai: Quota (QPS - queries per second) giới hạn số lượng request/thời gian, không liên quan đến memory per request. OOM là lỗi runtime container (503 hoặc 500 error), không phải quota exceeded (429 error). Tăng quota chỉ giúp nếu hit rate limit, nhưng docs Vertex AI phân biệt rõ: quota ≠ resource limits.
💡 Lời khuyên thêm: Nếu OOM lặp lại, nâng cấp machine type (scale-up) hoặc enable autoscaling trong endpoint deployment. Test với công cụ như gcloud ai endpoints predict.
- A Train local surrogate models to explain individual predictions.
- B Configure sampled Shapley explanations on Vertex Explainable AI.
- C Configure integrated gradients explanations on Vertex Explainable AI.
- D Measure the effect of each feature as the weight of the feature multiplied by the feature value.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi mô tả một tình huống thực tế tại công ty dựa trên đăng ký subscription 📈. Bạn đã huấn luyện một mô hình ensemble kết hợp giữa cây quyết định (trees) và mạng nơ-ron (neural networks) để dự đoán customer churn – tức là xác suất khách hàng không gia hạn đăng ký hàng năm. Mô hình trung bình dự đoán tỷ lệ churn là 15%, nhưng với một khách hàng cụ thể, mô hình dự đoán 70% (cao hơn đáng kể). Khách hàng này có lịch sử sử dụng sản phẩm 30%, sống ở New York City, và trở thành khách hàng từ năm 1997.
Nhiệm vụ là giải thích sự khác biệt giữa dự đoán thực tế (70%) và dự đoán trung bình (15%) cho khách hàng này, sử dụng Vertex Explainable AI (một tính năng của Google Cloud Vertex AI) 🛠️. Vertex Explainable AI giúp phân tích feature attributions (đóng góp của từng đặc trưng) để hiểu tại sao mô hình đưa ra dự đoán cụ thể, đặc biệt hữu ích cho mô hình phức tạp như ensemble hybrid (trees + neural nets).
Mục tiêu: Xác định phương pháp phù hợp nhất trong Vertex Explainable AI để so sánh prediction cá nhân hóa với baseline trung bình (average prediction), dựa trên phiên bản mới nhất của Vertex AI (cập nhật đến 2026, hỗ trợ Sampled Shapley cho black-box models và hybrid ensembles) 🔍.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Configure sampled Shapley explanations on Vertex Explainable AI.
🧩 Lý do chi tiết:
- Sampled Shapley (một biến thể của Shapley values được tối ưu hóa bằng sampling) là phương pháp explainability chuẩn của Vertex AI cho mô hình black-box hoặc semi-black-box như ensemble trees và neural networks. Nó tính toán attribution của từng feature so với baseline (ở đây là average prediction 15%), giải thích chính xác sự khác biệt 70% - 15% = 55% bằng cách phân bổ đóng góp của các feature như product usage (30%), location (NYC), join year (1997) 📊.
- Phương pháp này hỗ trợ trực tiếp baseline predictions, phù hợp với yêu cầu "explain the difference between the actual prediction... and the average prediction". Vertex AI tự động cấu hình sampled Shapley cho tabular data và hybrid models (cập nhật 2024-2026: hỗ trợ lên đến hàng triệu samples cho efficiency).
- Không cần train thêm model, chỉ configure trong Vertex AI pipeline – nhanh chóng và scalable 🏗️.
📋 Giải thích tất cả các phương án (đúng/sai)
-
Train local surrogate models to explain individual predictions.
❌ Sai: Phương pháp local surrogate (như LIME) yêu cầu train model đơn giản cục bộ (surrogate) quanh prediction cụ thể, không phải tính năng native của Vertex Explainable AI. Vertex AI không hỗ trợ trực tiếp "train local surrogate"; thay vào đó dùng built-in methods như Sampled Shapley. Việc này phức tạp, tốn tài nguyên, và không giải thích trực tiếp sự khác biệt với baseline average 🛑. -
Configure sampled Shapley explanations on Vertex Explainable AI.
✅ Đúng: Như đã giải thích ở trên. Đây là lựa chọn tối ưu cho black-box explanations với baseline support trong Vertex AI (phiên bản mới nhất 2026: tích hợp AutoML Tables và custom models). Nó phân tích attribution additive, dễ visualize qua Vertex AI dashboard (attribution bar charts cho từng feature) 🌟. -
Configure integrated gradients explanations on Vertex Explainable AI.
❌ Sai: Integrated Gradients (IG) chỉ phù hợp với mô hình differentiable như neural networks thuần túy (dùng gradients tích phân). Với ensemble trees + neural nets, IG không áp dụng tốt cho trees (non-differentiable), và chủ yếu dùng cho image/text data, không phải tabular churn prediction. IG cũng không hỗ trợ baseline average một cách tự nhiên như Shapley, dẫn đến explanation kém chính xác cho sự khác biệt 70% vs 15% 🚫. -
Measure the effect of each feature as the weight of the feature multiplied by the feature value.
❌ Sai: Đây là công thức linear approximation (weight × value, giống linear models hoặc đơn giản hóa LIME), không phải method chuẩn của Vertex AI. Nó bỏ qua interactions phức tạp trong ensemble trees/neural nets, không giải thích additive contributions hay baseline deviation. Vertex AI không có tính năng này; nó quá thô sơ và không scalable cho high-dimensional data như churn model 😞.
📘 Tài liệu tham khảo
- Vertex AI Explainable AI Documentation (Google Cloud, cập nhật 2026): cloud.google.com/vertex-ai/docs/explainable-ai – Chi tiết Sampled Shapley vs Integrated Gradients.
- Feature Attributions Guide: cloud.google.com/vertex-ai/docs/tabular-data/classification/explain-model – Ví dụ cho churn prediction với baseline.
- Shapley Values in Vertex AI (Blog 2024): cloud.google.com/blog/topics/developers-practitioners/shapley-values-vertex-ai.
Hy vọng phân tích này giúp bạn nắm vững Vertex Explainable AI! 🚀 Nếu cần demo code, hãy hỏi thêm nhé.
- A Address the model overfitting by using a less complex algorithm and use k-fold cross-validation.
- B Address data leakage by applying nested cross-validation during model training.
- C Address data leakage by removing features highly correlated with the target value.
- D Address the model overfitting by tuning the hyperparameters to reduce the AUC ROC value.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi mô tả một tình huống thực tế trong machine learning: Bạn đang xử lý vấn đề phân loại (classification) với dữ liệu chuỗi thời gian (time series data). Sau khi thực hiện chỉ vài thí nghiệm sử dụng random cross-validation (phương pháp chia dữ liệu ngẫu nhiên thành các fold để đánh giá mô hình), bạn đạt AUC ROC = 99% trên dữ liệu huấn luyện (training data). Điều đáng chú ý là bạn chưa sử dụng bất kỳ thuật toán phức tạp nào và chưa tuning hyperparameter.
🔍 Vấn đề cốt lõi cần xác định và khắc phục:
- Với dữ liệu time series, random cross-validation KHÔNG phù hợp vì nó có thể gây data leakage (rò rỉ dữ liệu) – dữ liệu tương lai bị lẫn vào tập huấn luyện, dẫn đến mô hình "học vẹt" và đánh giá quá lạc quan (AUC cao bất thường chỉ sau vài experiment đơn giản).
- Điểm số 99% trên training data mà không cần nỗ lực → nghi ngờ data leakage thay vì overfitting (vì overfitting thường cho train score cao nhưng test thấp).
- Bước tiếp theo: Phải xác định (identify) nguyên nhân (leakage) và sửa chữa (fix) bằng cách sử dụng cross-validation phù hợp cho time series.
📘 Kiến thức liên quan (cập nhật đến 2026): Theo best practices từ AWS SageMaker (phiên bản mới nhất 2024-2026), với time series, khuyến nghị dùng TimeSeriesSplit hoặc walk-forward validation trong nested CV để tránh leakage. Random CV vi phạm nguyên tắc thời gian (temporal order). (Nguồn: AWS SageMaker Documentation - Time Series Forecasting, scikit-learn 1.5+ docs on TimeSeriesSplit).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Address data leakage by applying nested cross-validation during model training.
Lý do:
- 🛠️ Data leakage là vấn đề chính ở đây do random cross-validation trên time series gây ra (dữ liệu sau bị dùng để predict dữ liệu trước). Nested cross-validation (CV lồng nhau: outer CV đánh giá, inner CV tuning) giúp xác định và khắc phục leakage bằng cách đảm bảo splits tôn trọng thứ tự thời gian (ví dụ: dùng TimeSeriesSplit trong cả inner/outer loop).
- Điều này phù hợp với tình huống "chỉ vài experiment đơn giản đạt 99%" – nested CV sẽ lộ ra score thực tế thấp hơn, xác nhận leakage.
- Theo AWS ML best practices (2026), nested CV là standard để robust evaluation trên time series, tránh bias từ random splits. (Nguồn: AWS re:Invent 2025 ML Workshops - Handling Data Leakage in Time Series).
📋 Giải thích tất cả các phương án (đúng/sai)
Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên văn bản gốc bằng tiếng Anh:
-
Address the model overfitting by using a less complex algorithm and use k-fold cross-validation.
❌ Sai: Không phải overfitting (train AUC cao là bình thường hoặc do leakage, không phải dấu hiệu overfit). Sử dụng less complex algorithm không giải quyết gốc rễ; k-fold CV (random) còn làm tệ hơn leakage trên time series vì shuffle dữ liệu thời gian. Không identify được vấn đề thực sự. -
Address data leakage by applying nested cross-validation during model training.
✅ Đúng: Như đã giải thích ở trên. Nested CV là cách chuẩn và hiệu quả nhất để detect/fix leakage trong time series bằng splits thời gian-aware, giúp đánh giá unbiased mà không cần thay đổi model ngay. -
Address data leakage by removing features highly correlated with the target value.
❌ Sai: Loại bỏ features correlated với target chỉ xử lý multicollinearity hoặc feature redundancy, KHÔNG phải data leakage (leakage là do splits sai, không phải features). Có thể làm model kém hơn mà không fix vấn đề cross-validation. -
Address the model overfitting by tuning the hyperparameters to reduce the AUC ROC value.
❌ Sai: Lại nhầm overfitting; tuning để giảm AUC trên train là sai lầm cơ bản (train AUC cao là mục tiêu, vấn đề ở validation). Tuning không fix leakage mà có thể làm phức tạp hóa vấn đề. (Nguồn: AWS ML University - Common Pitfalls in Model Evaluation, 2026 edition).
🧠 Kết luận: Tập trung vào proper CV cho time series là chìa khóa. Thực hành ngay trên AWS SageMaker Canvas hoặc Autopilot để verify! (Tham khảo thêm: scikit-learn.org/stable/modules/generated/sklearn.model_selection.TimeSeriesSplit.html).
- A Import the TensorFlow model with BigQuery ML, and run the ml.predict function.
- B Use the TensorFlow BigQuery reader to load the data, and use the BigQuery API to write the results to BigQuery.
- C Create a Dataflow pipeline to convert the data in BigQuery to TFRecords. Run a batch inference on Vertex AI Prediction, and write the results to BigQuery.
- D Load the TensorFlow SavedModel in a Dataflow pipeline. Use the BigQuery I/O connector with a custom function to perform the inference within the pipeline, and write the results to BigQuery.
Xem giải thích
🧩 Phân tích chi tiết câu hỏi
Câu hỏi yêu cầu: Bạn cần thực hiện batch prediction (dự đoán hàng loạt) trên 100 triệu bản ghi trong một bảng BigQuery, sử dụng mô hình TensorFlow DNN regressor tùy chỉnh. Sau đó, lưu kết quả dự đoán vào một bảng BigQuery khác. Mục tiêu là giảm thiểu công sức xây dựng pipeline inference (đường ống suy luận).
🛠️ Bối cảnh chính:
- Đây là bài toán batch inference quy mô lớn trên dữ liệu BigQuery.
- Mô hình là TensorFlow SavedModel tùy chỉnh (không phải mô hình built-in).
- Ưu tiên giải pháp đơn giản nhất, tận dụng tích hợp sẵn của Google Cloud để tránh code phức tạp, ETL thủ công hay pipeline tùy chỉnh.
- Kiến thức cập nhật 2026: BigQuery ML (BQML) hỗ trợ import mô hình TensorFlow từ Cloud Storage và chạy
ML.PREDICTtrực tiếp trên dữ liệu BigQuery mà không cần di chuyển dữ liệu (zero-copy). Vertex AI và Dataflow vẫn là lựa chọn cho custom pipelines, nhưng BQML là effortless nhất cho trường hợp này (theo docs Google Cloud ML 2025-2026).
📘 Tài liệu tham khảo:
- BigQuery ML TensorFlow integration (cập nhật 2025).
- ML.PREDICT for TensorFlow models (hỗ trợ batch >100M rows).
- Vertex AI Batch Prediction.
✅ Đáp án đúng: Import the TensorFlow model with BigQuery ML, and run the ml.predict function.
Lý do lựa chọn (chi tiết):
✅ Phương án này tối ưu nhất vì:
- Zero-effort pipeline: Chỉ cần 2 lệnh SQL:
CREATE MODELđể import mô hình TensorFlow từ GCS, rồiML.PREDICTtrên bảng BigQuery nguồn → tự động lưu kết quả vào bảng mới. Không cần code Python, Dataflow job, hay chuyển dữ liệu (in-place inference). - Scale tự động: BigQuery xử lý 100M+ rows dễ dàng với serverless compute, chi phí thấp (~$0.01/GB scanned).
- Minimize effort: Không build pipeline → chỉ SQL query, phù hợp "minimize the effort".
- Cập nhật 2026: BQML hỗ trợ full TensorFlow 2.x SavedModels, DNN regressors, và optimized inference engine.
📋 Phân tích tất cả các phương án
-
Import the TensorFlow model with BigQuery ML, and run the ml.predict function.
✅ ĐÚNG - Như giải thích trên: Giải pháp SQL-only, tích hợp native, scale lớn, zero data movement. Hoàn hảo cho batch prediction trên BigQuery mà không cần infra setup. -
Use the TensorFlow BigQuery reader to load the data, and use the BigQuery API to write the results to BigQuery.
❌ SAI - Phương án này thiếu inference step rõ ràng và effort cao: TensorFlow BigQuery reader chỉ load data (qua Apache Beam), nhưng không chạy model inference tự động. Bạn phải tự implement DNN regressor trong TensorFlow graph, orchestrate qua script riêng (không serverless), và dùng BigQuery API write results → phức tạp, không minimize effort. -
Create a Dataflow pipeline to convert the data in BigQuery to TFRecords. Run a batch inference on Vertex AI Prediction, and write the results to BigQuery.
❌ SAI - Quá phức tạp và effort lớn: Phải build Dataflow job (ETL code) convert BigQuery → TFRecords (custom transform), gọi Vertex AI Batch Prediction (deploy endpoint), rồi write back BigQuery. Scale tốt cho 100M rows nhưng cần code YAML/Python dài, debug pipeline, chi phí cao hơn BQML → vi phạm "minimize effort". -
Load the TensorFlow SavedModel in a Dataflow pipeline. Use the BigQuery I/O connector with a custom function to perform the inference within the pipeline, and write the results to BigQuery.
❌ SAI - Effort cực cao, custom code nặng: Load SavedModel vào Dataflow (Apache Beam DoFn custom), implement inference logic thủ công (TensorFlow serving), dùng BigQueryIO read/write → code dài, error-prone (memory tuning cho 100M rows), không tận dụng managed service. BQML đơn giản hơn gấp 10 lần!
Kết luận: 🏆 Chọn BQML để one-stop SQL inference – giải pháp best practice Google Cloud cho batch ML trên BigQuery!
- A Convert each categorical value into an integer value.
- B Convert the categorical string data to one-hot hash buckets.
- C Map the categorical variables into a vector of boolean values.
- D Convert each categorical value into a run-length encoded string.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi tập trung vào việc xử lý đặc trưng phân loại (categorical features) trong một mô hình phân loại mạng nơ-ron sâu (deep neural network classification model). Dataset có các cột categorical với cardinality cao (>10.000 giá trị unique). Vấn đề chính là: Làm thế nào để mã hóa (encode) các giá trị categorical này thành input phù hợp cho mô hình?
- Lý do cardinality cao là thách thức: Nếu encode trực tiếp (như one-hot encoding), sẽ tạo ra ma trận cực kỳ thưa thớt (sparse) với hàng trăm nghìn chiều (dimensions), dẫn đến vấn đề bộ nhớ, thời gian huấn luyện lâu và dễ overfitting.
- Ngữ cảnh AWS (cập nhật đến 2026): Trong AWS SageMaker (phiên bản mới nhất như SageMaker TensorFlow 2.13+ hoặc SageMaker BlazingText), khi xây dựng DNN với TensorFlow/Keras, khuyến nghị sử dụng feature columns của TensorFlow để xử lý. Với high cardinality, cần phương pháp giảm chiều hiệu quả mà vẫn giữ tính phân loại.
📘 Tài liệu tham khảo:
- TensorFlow Feature Columns - categorical_column_with_hash_buckets (cập nhật TF 2.15+, tích hợp SageMaker).
- AWS SageMaker Documentation - Preprocessing High-Cardinality Categorical Features (khuyến nghị hash bucketing cho >10k uniques).
✅ Đáp án đúng: Convert the categorical string data to one-hot hash buckets
Lý do chọn đáp án này 🛠️:
- One-hot hash buckets (hay hashed categorical columns với one-hot encoding trên hash buckets) là phương pháp chuẩn trong TensorFlow (tf.feature_column.categorical_column_with_hash_buckets) cho high cardinality.
- Nó hash giá trị categorical thành một số bucket cố định (ví dụ: 1.000-10.000 buckets, tùy chỉnh), sau đó áp dụng one-hot encoding trên số buckets đó → Giảm chiều từ >10k xuống chỉ vài nghìn, tránh sparse matrix khổng lồ.
- Ưu điểm: Giữ tính phân loại (không ngụ ý thứ tự), xử lý collision hash chấp nhận được (với high num_buckets), hiệu suất cao trên GPU/TPU trong SageMaker Training Jobs.
- Cập nhật 2026: SageMaker tích hợp tự động qua Processing Jobs hoặc SageMaker Pipelines với TensorFlow 2.x, hỗ trợ distributed training (ShardedByInput).
📋 Giải thích tất cả các phương án
Dưới đây là phân tích chi tiết từng lựa chọn, với giữ nguyên văn bản gốc và giải thích bằng tiếng Việt:
-
Convert each categorical value into an integer value. ❌
Sai vì: Đây là label encoding (gán số nguyên cho từng unique value). Với DNN, nó ngụ ý thứ tự giả tạo (ví dụ: "apple"=1, "zebra"=10000), dẫn đến mô hình học sai mối quan hệ tuyến tính giữa các category. Không phù hợp high cardinality vì vẫn cần embedding riêng, dễ gây bias và kém hiệu quả hơn hash buckets. -
Convert the categorical string data to one-hot hash buckets. ✅
Đúng vì: Như đã giải thích ở trên. Phương pháp tối ưu cho high cardinality trong TensorFlow/SageMaker, cân bằng giữa độ chính xác và hiệu suất (hash → bucketized one-hot). -
Map the categorical variables into a vector of boolean values. ❌
Sai vì: Đây là one-hot encoding thuần túy (vector boolean 0/1 cho mỗi unique value). Với >10k uniques, tạo vector kích thước >10k, gây vấn đề bộ nhớ khổng lồ (hàng triệu parameters), sparse matrix khó train DNN trên SageMaker (OOM error trên ml.p3 instances), và không scale cho production. -
Convert each categorical value into a run-length encoded string. ❌
Sai vì: Run-length encoding (RLE) dùng cho dữ liệu lặp lại liên tục (như sequences hình ảnh hoặc text nén), không phải categorical. Nó giữ dạng string, không tạo numerical input cho DNN, dẫn đến lỗi khi feed vào layers (như Embedding hoặc Dense). Hoàn toàn không liên quan đến feature engineering categorical.
Kết luận 🎯: Chọn one-hot hash buckets để scale hiệu quả cho high-cardinality categorical features trong AWS SageMaker DNN models! Nếu implement, dùng Hashing(num_bins=10000) trong Keras Preprocessing Layers.
- A Create a hot-encoding of words, and feed the encodings into your model.
- B Identify word embeddings from a pre-trained model, and use the embeddings in your model.
- C Sort the words by frequency of occurrence, and use the frequencies as the encodings in your model.
- D Assign a numerical value to each word from 1 to 100,000 and feed the values as inputs in your model.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi này tập trung vào việc xử lý tiền xử lý (preprocessing) dữ liệu văn bản cho một mô hình học máy tự nhiên ngôn ngữ (NLP) thực hiện phân loại văn bản (text classification) trên mô tả sản phẩm. Dữ liệu bao gồm hàng triệu ví dụ (millions of examples) và 100.000 từ duy nhất (unique words) – một từ vựng (vocabulary) rất lớn. Mục tiêu là xử lý từng từ riêng lẻ để đưa vào mạng nơ-ron hồi quy (RNN - Recurrent Neural Network).
🛠️ Thách thức chính: Với từ vựng lớn như vậy, cần một cách mã hóa (encoding) từ hiệu quả, dense (mật độ cao), bắt được ngữ nghĩa (semantics) và phù hợp với RNN (RNN xử lý chuỗi tuần tự, cần vector đầu vào có chiều thấp để tránh vấn đề curse of dimensionality). Không thể dùng encoding thưa thớt (sparse) hoặc arbitrary vì sẽ dẫn đến mô hình kém hiệu quả, tốn tài nguyên tính toán.
📘 Bối cảnh AWS (cập nhật đến 2026): Trong Amazon SageMaker (phiên bản mới nhất với hỗ trợ ML frameworks như TensorFlow/PyTorch 2.x), xử lý NLP thường dùng pre-trained embeddings từ Hugging Face hoặc AWS-native như từ Amazon Comprehend/BlazingText để tối ưu training trên GPU/TPU. RNN vẫn được dùng cho chuỗi dài, dù Transformer phổ biến hơn.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Identify word embeddings from a pre-trained model, and use the embeddings in your model.
Lý do chi tiết 🏆:
- Word embeddings (như Word2Vec, GloVe, fastText hoặc từ BERT/ RoBERTa) là vector dense (thường 100-300 chiều), pre-trained trên dữ liệu lớn, capture ngữ nghĩa và mối quan hệ từ (ví dụ: "king" - "man" + "woman" ≈ "queen").
- Phù hợp hoàn hảo cho RNN với vocab 100k từ: Giảm chiều từ 100k (one-hot) xuống low-dim, tránh sparse matrix, tăng tốc training và cải thiện accuracy.
- Trong AWS SageMaker (2026), bạn có thể load embeddings từ S3 hoặc Hugging Face Hub qua SageMaker JumpStart/ Processing Jobs, fine-tune trên dữ liệu product descriptions.
- Lợi ích: Transfer learning tiết kiệm thời gian (hàng triệu examples vẫn cần, nhưng embeddings giúp converge nhanh hơn).
📋 Giải thích tất cả các phương án (từng cái một)
-
❌ Create a hot-encoding of words, and feed the encodings into your model.
Sai vì: One-hot encoding tạo vector sparse 100k chiều (chỉ 1 vị trí =1, còn lại=0), dẫn đến tốn bộ nhớ khổng lồ, RNN không học được ngữ nghĩa (từ không liên quan nhau), và gradient vanishing/exploding dễ xảy ra. Không khả thi với millions examples trên AWS (SageMaker training job sẽ OOM - out of memory). -
✅ Identify word embeddings from a pre-trained model, and use the embeddings in your model.
Đúng vì: Như giải thích trên, đây là best practice cho NLP với large vocab. Trong AWS, dùng SageMaker BlazingText hoặc TensorFlow Embedding layers load pre-trained models từ GluonNLP hoặc Hugging Face (cập nhật 2026 hỗ trợ dynamic embeddings). -
❌ Sort the words by frequency of occurrence, and use the frequencies as the encodings in your model.
Sai vì: Frequency chỉ là số đếm xuất hiện, không encode identity của từ hay ngữ nghĩa (ví dụ: từ hiếm có thể quan trọng). RNN cần vector đại diện từ, không phải scalar frequency – dẫn đến mất thông tin, model không phân biệt từ khác nhau có cùng freq. -
❌ Assign a numerical value to each word from 1 to 100,000 and feed the values as inputs in your model.
Sai vì: Gán số arbitrary (1 đến 100k) không capture ngữ nghĩa hay thứ tự tự nhiên, RNN sẽ học nhầm pattern giả tạo (như "word 1 gần word 2"). Đây là integer indexing thô, cần embedding layer sau, nhưng trực tiếp feed scalar không phù hợp RNN (cần vector input).
📚 Tài liệu tham khảo
- AWS SageMaker Documentation (2026): Amazon SageMaker Processing for NLP & BlazingText Word Embeddings.
- TensorFlow RNN + Embeddings Guide: tf.keras.layers.Embedding (pre-trained via tf.hub).
- Hugging Face (tích hợp AWS): Pre-trained Embeddings.
- Nghiên cứu: Word2Vec paper (Mikolov 2013) & ứng dụng RNN-LSTM cho text classification (cập nhật surveys 2025 từ NeurIPS).
Hy vọng phân tích này giúp bạn nắm vững! 🚀 Nếu cần code demo trên SageMaker, hỏi thêm nhé!
- A Embed the client on the website, and then deploy the model on AI Platform Prediction.
- B Embed the client on the website, deploy the gateway on App Engine, deploy the database on Firestore for writing and for reading the user’s navigation context, and then deploy the model on AI Platform Prediction.
- C Embed the client on the website, deploy the gateway on App Engine, deploy the database on Cloud Bigtable for writing and for reading the user’s navigation context, and then deploy the model on AI Platform Prediction.
- D Embed the client on the website, deploy the gateway on App Engine, deploy the database on Memorystore for writing and for reading the user’s navigation context, and then deploy the model on Google Kubernetes Engine.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi mô tả một tình huống thực tế trong công ty du lịch trực tuyến, nơi cần dự đoán banner quảng cáo web phù hợp nhất cho người dùng tiếp theo dựa trên ngữ cảnh điều hướng (navigation context) – yếu tố dự đoán tốt từ phân tích khám phá. Các yêu cầu chính bao gồm:
- Bảo mật cao (security important).
- Độ trễ thấp: 300ms ở p99 (99% yêu cầu phải dưới 300ms).
- Quy mô: Hàng nghìn banner quảng cáo.
- Giải pháp đơn giản nhất (simplest solution). Mục tiêu là thiết lập pipeline dự đoán (prediction pipeline) sử dụng các dịch vụ Google Cloud, tập trung vào việc nhúng client trên website, xử lý ngữ cảnh người dùng nhanh chóng và an toàn.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Embed the client on the website, deploy the gateway on App Engine, deploy the database on Firestore for writing and for reading the user’s navigation context, and then deploy the model on AI Platform Prediction.
Lý do:
- Đây là giải pháp đơn giản nhất (simplest) phù hợp với yêu cầu:
- Embed client trên website để gọi dự đoán trực tiếp từ trình duyệt (low latency).
- Gateway trên App Engine 🛡️ xử lý bảo mật (auth, rate limiting), routing requests an toàn mà không phức tạp.
- Firestore 📱 là NoSQL document database serverless, lý tưởng cho write/read navigation context real-time với độ trễ thấp (<100ms), scale tự động cho hàng nghìn banner/context, và tích hợp dễ với App Engine.
- AI Platform Prediction (nay là Vertex AI Prediction trong phiên bản 2024-2026) 🚀 phục vụ mô hình online prediction với latency p99 ~200-300ms, hỗ trợ embedding models cho recommendation.
- Giải pháp này đảm bảo end-to-end low latency, security qua gateway, và đơn giản (không cần quản lý infra thủ công). Theo tài liệu Google Cloud mới nhất (2026), Firestore được khuyến nghị cho user session/context trong recommendation systems.
Tài liệu tham khảo:
- Vertex AI Prediction (AI Platform successor) – Latency guarantees.
- Firestore for real-time apps.
- App Engine for gateways.
📋 Giải thích tất cả các phương án
Dưới đây là phân tích chi tiết từng lựa chọn giữ nguyên văn bản gốc bằng tiếng Anh, đánh dấu đúng/sai với lý do cụ thể dựa trên yêu cầu simplest, latency, security và navigation context (cập nhật kiến thức Google Cloud đến 2026):
-
Embed the client on the website, and then deploy the model on AI Platform Prediction.
❌ Sai: Thiếu gateway (App Engine) nên không đảm bảo bảo mật (security important) – client gọi trực tiếp model dễ bị tấn công. Không có database cho navigation context, chỉ dự đoán dựa trên input tĩnh, không tận dụng predictor tốt nhất. Không simplest cho full pipeline, vi phạm latency khi scale thousands banners. -
Embed the client on the website, deploy the gateway on App Engine, deploy the database on Firestore for writing and for reading the user’s navigation context, and then deploy the model on AI Platform Prediction.
✅ Đúng: Như đã giải thích ở trên – hoàn hảo cho simplest solution với low latency (Firestore + Vertex AI <300ms p99), security qua gateway, và real-time context. Được AWS? Không, đây là Google Cloud chuẩn (không liên quan AWS). -
Embed the client on the website, deploy the gateway on App Engine, deploy the database on Cloud Bigtable for writing and for reading the user’s navigation context, and then deploy the model on AI Platform Prediction.
❌ Sai: Cloud Bigtable 🗄️ là NoSQL wide-column cho big data analytics/high-throughput (petabyte scale), quá phức tạp (cần schema design, autoscaling thủ công) so với simplest. Latency write/read cao hơn Firestore cho user context (~10-50ms vs <10ms), không phù hợp thousands banners/context real-time. -
Embed the client on the website, deploy the gateway on App Engine, deploy the database on Memorystore for writing and for reading the user’s navigation context, and then deploy the model on Google Kubernetes Engine.
❌ Sai: Memorystore (Redis) ⚡ tốt cho cache read-only (sub-ms latency), nhưng không lý tưởng cho write persistent navigation context (dữ liệu có thể mất nếu restart). Model trên GKE 🛳️ phức tạp (quản lý cluster, autoscaling), không simplest so với Vertex AI Prediction (serverless). Vi phạm yêu cầu đơn giản và full pipeline security/latency.
Tóm tắt takeaway 🎯: Chọn Firestore + AI Platform cho simplest, secure, low-latency recommendation pipeline. Nếu scale lớn hơn, migrate sang AlloyDB hoặc BigQuery ML (2026 updates).