Ngân hàng đề — Microsoft Azure Data Scientist
Tìm thấy 313 câu.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
You train and register an Azure Machine Learning model.
You plan to deploy the model to an online endpoint.
You need to ensure that applications will be able to use the authentication method with a non-expiring artifact to access the model.
Solution: Create a managed online endpoint and set the value of its auth_mode parameter to key. Deploy the model to the online endpoint.
Does the solution meet the goal?
- A Yes
- B No
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi thuộc dạng case study (series of questions với cùng scenario), thường xuất hiện trong kỳ thi chứng chỉ Azure Machine Learning. Nội dung chính:
- Bạn đã train và register một model trong Azure Machine Learning.
- Kế hoạch deploy model lên online endpoint (điểm cuối trực tuyến để inference thời gian thực).
- Yêu cầu chính: Đảm bảo các ứng dụng có thể sử dụng phương thức authentication với artifact không hết hạn (non-expiring artifact) để truy cập model.
- Giải pháp đề xuất: Tạo managed online endpoint và đặt auth_mode = key, sau đó deploy model lên endpoint đó.
- Câu hỏi: Giải pháp này có đạt mục tiêu không? (Yes/No).
📘 Bối cảnh kỹ thuật: Trong Azure ML (phiên bản mới nhất đến 2026, Azure ML v2), online endpoint hỗ trợ authentication qua API key (không expire) hoặc token (expire ngắn hạn). Giải pháp tập trung vào managed endpoint – loại endpoint được Azure quản lý hoàn toàn, dễ scale và secure.
✅ Đáp án đúng: Yes
Lý do lựa chọn:
- Giải pháp hoàn toàn phù hợp với yêu cầu. Khi đặt auth_mode = key trên managed online endpoint, Azure ML tự động sinh ra API key làm artifact authentication không hết hạn (non-expiring).
- Các ứng dụng chỉ cần sử dụng key này trong header HTTP (ví dụ:
Authorization: Bearer <key>) để gọi inference mà không lo token expire. - Đây là phương thức mặc định và khuyến nghị cho production, an toàn hơn token (chỉ expire ~1 giờ).
🛠️ Cách triển khai thực tế (CLI ví dụ):
az ml online-endpoint create --name my-endpoint --auth-mode key
az ml online-deployment create --name blue --endpoint my-endpoint --model my-model
Key lấy bằng: az ml online-endpoint get-credentials --name my-endpoint.
📋 Giải thích tất cả các phương án
-
Yes ✅:
Đúng vì auth_mode='key' cung cấp API key vĩnh viễn (non-expiring artifact), đáp ứng chính xác yêu cầu "applications will be able to use the authentication method with a non-expiring artifact". Không cần rotate key thủ công, phù hợp production. Trong Azure ML 2026, tính năng này vẫn giữ nguyên và được hỗ trợ đầy đủ cho managed endpoints. -
No ❌:
Sai vì giải pháp đã mô tả chính xác cách tạo non-expiring auth. Nếu chọn No, sẽ bỏ qua lợi ích của key-based auth (không expire), trong khi các lựa chọn khác như auth_mode='aml_token' mới gây expire (token chỉ valid 1 giờ, cần refresh). Giải pháp không có thiếu sót nào về managed endpoint hoặc deploy steps.
📚 Tài liệu tham khảo (cập nhật mới nhất 2026)
- Azure ML Docs: Authenticate online endpoints – Chi tiết auth_mode=key vs token.
- Create & manage online endpoints – Hướng dẫn deploy với key.
- Azure ML CLI v2 reference – Commands chính thức.
Hy vọng phân tích này giúp bạn nắm vững! 🚀 Nếu cần demo code, hỏi thêm nhé!
You define a dataset monitor and create a dataset named dataset2 that contains new data.
You need to compare dataset1 and dataset2 by using the Azure Machine Learning SDK for Python.
Which method of the DataDriftDetector class should you use?
- A run
- B get
- C backfill
- D update
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 Azure Machine Learning (Azure ML), một dịch vụ của Microsoft Azure dùng để xây dựng, huấn luyện và triển khai các mô hình machine learning. Cụ thể:
- Bạn đã sử dụng Azure ML để huấn luyện một mô hình dựa trên tập dữ liệu dataset1 (đây là tập dữ liệu cơ sở, baseline).
- Sau đó, bạn định nghĩa một dataset monitor (bộ theo dõi dataset) và tạo dataset2 chứa dữ liệu mới (có thể là dữ liệu sản xuất hoặc cập nhật).
- Mục tiêu: So sánh dataset1 và dataset2 để phát hiện data drift (sự thay đổi phân bố dữ liệu) bằng cách sử dụng Azure Machine Learning SDK for Python.
- Lớp chính: DataDriftDetector trong module
azureml.datadriftcủa SDK, dùng để phát hiện drift giữa tập dữ liệu cơ sở (baseline) và tập dữ liệu mục tiêu (target).
Vấn đề cốt lõi là chọn phương thức (method) đúng của lớp DataDriftDetector để thực hiện việc so sánh này. Đây là tính năng quan trọng trong MLOps để đảm bảo mô hình không bị suy giảm hiệu suất do dữ liệu thay đổi (data drift detection). Kiến thức dựa trên phiên bản Azure ML SDK mới nhất (v2.x đến 2026), hỗ trợ linh hoạt với datasets đăng ký trong workspace. 📘
✅ Đáp án đúng: run
Lý do lựa chọn:
- Phương thức
runcủa lớp DataDriftDetector được thiết kế chính xác để thực thi việc phát hiện data drift giữa hai tập dữ liệu cụ thể: baseline (dataset1) và target (dataset2). - Cách sử dụng:
detector.run(baseline_data=dataset1, target_data=dataset2)– Nó sẽ tính toán các metric drift (như Wasserstein distance, KS test) và trả về kết quả dưới dạng job hoặc metrics. - Đây là phương thức cốt lõi, chạy một cách đồng bộ hoặc bất đồng bộ, hỗ trợ cả dữ liệu lớn và tích hợp với Azure ML Studio. Không có phương thức nào khác phù hợp hơn cho việc so sánh trực tiếp hai datasets. 🛠️
📋 Giải thích tất cả các phương án
-
run ✅
Đúng: Như đã giải thích, đây là phương thức chính để chạy detection drift giữa baseline và target dataset. Nó khởi tạo một experiment drift, tính toán và lưu kết quả vào Azure ML workspace. Ví dụ code:from azureml.datadrift import DataDriftDetector detector = DataDriftDetector.create(...) drift_run = detector.run(baseline_data, target_data)Hoàn hảo cho yêu cầu so sánh dataset1 và dataset2.
-
get ❌
Sai: Phương thứcgetkhông tồn tại hoặc không dùng để so sánh datasets trong DataDriftDetector. Nó có thể ám chỉ các method nhưget_metrics()(lấy kết quả sau khi run) hoặcget()trong các lớp khác (như Dataset.get()), nhưng không phải để thực hiện detection drift. Sử dụng sẽ gây lỗi vì không khớp chức năng. -
backfill ❌
Sai: Phương thứcbackfilldùng để điền dữ liệu lịch sử vào dataset monitor (ví dụ: backfill dữ liệu quá khứ cho monitoring liên tục), không phải để so sánh hai datasets tĩnh. Nó dành cho chế độ theo dõi thời gian thực (continuous monitoring), không phù hợp với việc so sánh một lần giữa dataset1 và dataset2. -
update ❌
Sai: Phương thứcupdatedùng để cập nhật cấu hình của detector (như thay đổi feature list hoặc threshold), hoặc update dataset monitor. Nó không thực hiện việc so sánh drift giữa hai datasets, mà chỉ chỉnh sửa metadata. Sử dụng sẽ không tạo ra kết quả detection.
📚 Tài liệu tham khảo
- Azure ML SDK Docs (v2.x, cập nhật 2026): DataDriftDetector – Chi tiết method
run(). - Hướng dẫn Data Drift: Monitor data drift in Azure ML.
- Sample code: GitHub Azure ML examples.
Hy vọng phân tích này giúp bạn nắm vững tính năng data drift trong Azure ML! 🚀 Nếu cần code ví dụ đầy đủ, hãy cho tôi biết nhé! 😊
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
You plan to use a Python script to run an Azure Machine Learning experiment. The script creates a reference to the experiment run context, loads data from a file, identifies the set of unique values for the label column, and completes the experiment run:
from azureml.core import Run
import pandas as pd
run = Run.get_context()
data = pd.read_csv('data.csv')
label_vals = data['label'].unique()
# Add code to record metrics here
run.complete()
The experiment must record the unique labels in the data as metrics for the run that can be reviewed later.
You must add code to the script to record the unique label values as run metrics at the point indicated by the comment.
Solution: Replace the comment with the following code:
for label_val in label_vals:
run.log('Label Values', label_val)
Does the solution meet the goal?
- A Yes
- B No
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 giải thích rõ ràng:
Câu hỏi thuộc dạng case study trong kỳ thi chứng chỉ (như DP-100 của Microsoft Azure), nơi có một tình huống mô tả và nhiều giải pháp tiềm năng. Tình huống cụ thể:
- Bạn đang sử dụng script Python với Azure Machine Learning (sử dụng SDK
azureml.core) để chạy một experiment. - Script tạo reference đến run context (
Run.get_context()), load dữ liệu từ file CSV (data.csv), lấy tập hợp các giá trị unique của cột 'label' (label_vals = data['label'].unique()), và hoàn thành run (run.complete()). - Mục tiêu chính (goal): Ghi nhận (record) các giá trị unique của labels trong dữ liệu dưới dạng metrics của run, để có thể xem xét lại sau này (reviewed later) trong Azure ML workspace.
- Vị trí cần thêm code: Tại comment
# Add code to record metrics here. - Giải pháp đề xuất (Solution): Thay comment bằng vòng lặp:
for label_val in label_vals: run.log('Label Values', label_val) - Câu hỏi: Giải pháp này có đạt được mục tiêu không? (Does the solution meet the goal?)
Câu hỏi nhấn mạnh rằng sau khi trả lời, không thể quay lại, và có thể có nhiều/cực ít giải pháp đúng trong series. Chủ đề tập trung vào cách sử dụngrun.log()đúng chuẩn để log metrics trong Azure ML experiment (phiên bản SDK v1, cập nhật đến 2026 vẫn tương thích với MLflow trong v2 nhưng code dùng v1).
✅ Đáp án đúng: Yes
Lý do lựa chọn (bằng tiếng Việt):
Giải pháp đúng vì phương thức run.log(name, value) trong Azure Machine Learning SDK cho phép log scalar values (bao gồm string như các label values). Khi log cùng một tên metric ('Label Values') nhiều lần với các giá trị khác nhau, Azure ML tự động tạo ra một list metric (column metric) chứa tất cả các giá trị theo thứ tự thời gian (step tăng dần). Điều này ghi nhận chính xác tập hợp unique labels dưới dạng metrics, và chúng có thể được xem xét sau trong Experiments tab của Azure ML Studio (charts, tables, hoặc download JSON). Mục tiêu "record the unique labels as metrics for the run that can be reviewed later" được đáp ứng hoàn hảo.
🛠️ Ví dụ hoạt động: Nếu label_vals = ['cat', 'dog', 'bird'], nó sẽ log:
- Step 0: 'Label Values' = 'cat'
- Step 1: 'Label Values' = 'dog'
- Step 2: 'Label Values' = 'bird'
→ Xem sau: Một metric 'Label Values' với list ['cat', 'dog', 'bird'].
🔍 Giải thích tất cả các phương án (đúng/sai)
-
Yes ✅ Đúng
🧩 Lý do đúng (phân tích chi tiết): Như đã giải thích ở trên, vòng lặp sử dụngrun.log()hiệu quả tạo list metric từ các unique labels. Đây là cách chuẩn theo tài liệu Azure ML (hỗ trợ string metrics và multiple logs cho cùng name). Không vi phạm quy tắc SDK, dữ liệu được lưu trữ bền vững trong run history. Hoạt động tốt trên mọi loại label (categorical/string). Đạt 100% mục tiêu review later qua UI hoặc API. -
No ❌ Sai
🧩 Lý do sai (phân tích chi tiết): Chọn "No" là nhầm lẫn vì bỏ qua cơ chế list metric củarun.log(). Giải pháp không bị lỗi (không overwrite giá trị, mà append theo step), không cầnrun.log_list()(tính năng cũ ít dùng ở v1, và không bắt buộc). Nếu nghĩ "cùng name sẽ conflict" thì sai – Azure ML thiết kế chính để xử lý trường hợp này. Không đạt mục tiêu chỉ nếu code lỗi syntax hoặc không log gì cả, nhưng ở đây hoàn hảo.
📘 Tài liệu tham khảo (cập nhật mới nhất đến 2026):
- Azure ML Python SDK docs - Run.log(): Xác nhận multiple logs tạo list/column metrics cho numeric/string.
- How to log metrics: Ví dụ log same name multiple times → vector metric.
- Azure ML Studio UI (phiên bản 2026): Experiments > Run details > Metrics tab hiển thị lists rõ ràng.
- Exam context: Tương tự DP-100 questions (series về logging in experiments).
🛠️ Lời khuyên từ Azure Data Scientist: Nếu muốn tối ưu hơn, có thể dùng run.log('unique_labels', str(list(label_vals))) hoặc chuyển sang SDK v2 với MLflow (mlflow.log_metric), nhưng giải pháp gốc đã đủ!
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
You train and register an Azure Machine Learning model.
You plan to deploy the model to an online endpoint.
You need to ensure that applications will be able to use the authentication method with a non-expiring artifact to access the model.
Solution: Create a managed online endpoint with the default authentication settings. Deploy the model to the online endpoint.
Does the solution meet the goal?
- A Yes
- B No
Xem giải thích
🧠 Phân tích câu hỏi trắc nghiệm về Azure Machine Learning
🧩 Nội dung câu hỏi được giải thích chi tiết:
Câu hỏi thuộc dạng "Does the solution meet the goal?" trong series câu hỏi tình huống Azure ML. Tình huống: Bạn đã huấn luyện và đăng ký một mô hình Machine Learning trên Azure. Bạn dự định triển khai (deploy) mô hình này lên online endpoint (điểm cuối trực tuyến được quản lý). Yêu cầu chính: Đảm bảo các ứng dụng có thể sử dụng phương thức xác thực (authentication) với artifact không hết hạn (non-expiring artifact) để truy cập mô hình.
Giải pháp đề xuất (Solution): Tạo một managed online endpoint với cài đặt xác thực mặc định (default authentication settings), sau đó triển khai mô hình lên endpoint đó.
Mục tiêu: Kiểm tra xem giải pháp này có đáp ứng yêu cầu về artifact xác thực không hết hạn hay không. Đây là kiến thức từ Azure ML phiên bản mới nhất (v2, cập nhật đến 2026), nơi managed online endpoints hỗ trợ hai loại xác thực: key-based (khóa tĩnh, không hết hạn) và token-based (token Azure Entra ID, có thời hạn).
✅ Đáp án đúng: Yes
Lý do lựa chọn: Giải pháp sử dụng default authentication settings trên managed online endpoint, mà theo tài liệu chính thức của Microsoft, mặc định là key-based authentication. Loại xác thực này cung cấp hai khóa tĩnh (primary và secondary key) làm artifact không hết hạn, cho phép ứng dụng truy cập endpoint mà không lo token expire. Điều này hoàn toàn đáp ứng mục tiêu.
(Nguồn: Microsoft Docs - Authenticate access to online endpoints, cập nhật 2024-2026).
📋 Giải thích tất cả các phương án (giữ nguyên văn bản gốc):
-
Yes ✅
Giải thích đúng: Phương án này chính xác vì default auth là key-based, cung cấp artifact (khóa) non-expiring. Khi tạo endpoint qua CLI/Python SDK:OnlineEndpoint(..., auth_mode='key')là mặc định, khóa lấy từendpoint.get_keys(). Ứng dụng chỉ cần headerAuthorization: Bearer <key>để gọi inference, không cần refresh token. Hoàn hảo cho production với ứng dụng legacy hoặc không hỗ trợ OAuth. -
No ❌
Giải thích sai: Phương án này không đúng vì default settings đã dùng key-based auth (non-expiring), không phải token-based (aml_token, expire sau ~1 giờ). Nếu chọn No, bạn đang nhầm lẫn default là token auth – thực tế không phải vậy. Để dùng token, phải chỉ định rõauth_mode='aml_token', nhưng solution dùng default nên Yes mới phù hợp.
🛠️ Lưu ý bổ sung:
- 📘 Nếu cần tùy chỉnh, dùng
auth_mode='aml_token'cho bảo mật cao hơn (RBAC), nhưng phải handle token refresh bằng Managed Identity. - 🔄 Default key giúp đơn giản hóa, nhưng khuyến nghị rotate key định kỳ qua Azure portal/CLI.
- 🎯 Kiến thức dựa trên Azure ML Studio & SDK v2 (2026): Không thay đổi default auth so với 2023-2025.
Hy vọng phân tích giúp bạn nắm vững! 🚀
You have a trained model that must be deployed as a web service. Users must authenticate by using Azure Active Directory.
What should you do?
- A Deploy the model to Azure Kubernetes Service (AKS). During deployment, set the token_auth_enabled parameter of the target configuration object to true
- B Deploy the model to Azure Container Instances. During deployment, set the auth_enabled parameter of the target configuration object to true
- C Deploy the model to Azure Container Instances. During deployment, set the token_auth_enabled parameter of the target configuration object to true
- D Deploy the model to Azure Kubernetes Service (AKS). During deployment, set the auth.enabled parameter of the target configuration object to true
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 tập trung vào quy trình triển khai (deploy) một mô hình máy học đã huấn luyện trong Azure Machine Learning workspace dưới dạng web service. Yêu cầu cụ thể là người dùng phải xác thực (authenticate) bằng Azure Active Directory (AAD). Đây là tình huống phổ biến trong Azure ML khi cần endpoint inference an toàn, hỗ trợ token-based authentication từ AAD để tránh sử dụng API key truyền thống (dễ bị lộ).
Câu hỏi kiểm tra kiến thức về các compute target hỗ trợ (như AKS hoặc ACI), cấu hình authentication trong deployment, và parameter chính xác theo Azure ML SDK (phiên bản classic deployment). Kiến thức này dựa trên tài liệu Azure ML cập nhật đến năm 2026, nơi AKS là compute target duy nhất hỗ trợ token authentication đầy đủ với AAD, trong khi ACI chỉ hỗ trợ key-based auth hoặc managed identity cơ bản (không token auth trực tiếp cho endpoint).
🛠️ Mục tiêu: Chọn phương án triển khai đúng để enable AAD auth mà không gặp lỗi cấu hình.
✅ Đáp án đúng:
Deploy the model to Azure Kubernetes Service (AKS). During deployment, set the token_auth_enabled parameter of the target configuration object to true
Lý do lựa chọn:
Phương án này hoàn toàn chính xác theo tài liệu Azure ML chính thức. Khi deploy qua AksWebservice.deploy() hoặc KubernetesInferenceConfig, tham số token_auth_enabled=True kích hoạt token-based authentication sử dụng Azure AD. Người dùng sẽ gửi Bearer token từ AAD để gọi endpoint, đảm bảo bảo mật cao (OAuth 2.0 flow). ACI không hỗ trợ tính năng này, và đây là cách chuẩn từ SDK v1 (vẫn áp dụng trong hybrid với v2 endpoints đến 2026).
📋 Giải thích tất cả các phương án (sử dụng kiến thức Azure ML mới nhất 2026):
-
✅ Deploy the model to Azure Kubernetes Service (AKS). During deployment, set the token_auth_enabled parameter of the target configuration object to true
🟢 Đúng 100%: AKS là compute target duy nhất hỗ trợ token authentication với AAD. Tham số token_auth_enabled=True được set trong AksWebservice hoặc InferenceConfig, cho phép endpoint yêu cầu AAD token (không dùng API key). Đây là khuyến nghị chính thức cho production workloads an toàn. -
❌ Deploy the model to Azure Container Instances. During deployment, set the auth_enabled parameter of the target configuration object to true
🔴 Sai: ACI (Azure Container Instances) không hỗ trợ token authentication với AAD. Tham số auth_enabled=True chỉ kích hoạt key-based authentication (tạo API key), không phải AAD token. Sử dụng sẽ thất bại với yêu cầu AAD, vì ACI chỉ phù hợp dev/test, không scale cho token auth. -
❌ Deploy the model to Azure Container Instances. During deployment, set the token_auth_enabled parameter of the target configuration object to true
🔴 Sai: ACI không có tham số token_auth_enabled (parameter này chỉ dành cho AKS). Ngay cả nếu set, deployment sẽ lỗi vì ACI thiếu hỗ trợ AAD token auth. Đây là bẫy phổ biến nhầm lẫn giữa ACI và AKS. -
❌ Deploy the model to Azure Kubernetes Service (AKS). During deployment, set the auth.enabled parameter of the target configuration object to true
🔴 Sai: AKS hỗ trợ đúng, nhưng tham số sai – không tồn tại auth.enabled. Tham số chuẩn là token_auth_enabled=True (boolean), không phải dạng dot-notation như YAML (auth.enabled). Sử dụng sẽ gây lỗi syntax trong Python SDK.
📚 Tài liệu tham khảo (cập nhật 2026):
- Deploy models - Azure Machine Learning | Microsoft Learn (v2 endpoints, tương thích classic).
- Token authentication for AKS deployments (xác nhận chỉ AKS + token_auth_enabled).
- Azure ML Python SDK docs:
AksWebservice.deploy(token_auth_enabled=True). - Cập nhật 2025-2026: Vẫn giữ nguyên cho backward compatibility, ưu tiên Managed Online Endpoints với AAD integration.
💡 Lời khuyên từ Azure Data Scientist: Hãy test deployment trong notebook với ml_client.online_deployments.begin_create_or_update() cho v2 để đảm bảo! 🚀
You need to prepare information to submit a training job.
Which class should you use?
- A MLClient
- B BuildContext
- C EndpointConnection
- D command
Xem giải thích
🔍 Giải thích nội dung câu hỏi
🧩 Câu hỏi tập trung vào quy trình huấn luyện mô hình sử dụng Azure Machine Learning SDK v2 cho Python (phiên bản mới nhất đến năm 2026, dựa trên Azure ML Python SDK v2.0+ với các cập nhật từ Microsoft Ignite 2025). Bạn đã tạo sẵn compute target (tài nguyên tính toán như CPU/GPU cluster), environment (môi trường runtime với dependencies), và training script (script Python huấn luyện mô hình). Bây giờ, nhiệm vụ là chuẩn bị thông tin để submit một training job (gửi công việc huấn luyện lên Azure ML workspace). Câu hỏi yêu cầu xác định class (lớp/hàm) phù hợp để tạo đối tượng job trước khi sử dụng MLClient để submit thực tế. Đây là bước chuẩn bị cốt lõi trong workflow huấn luyện command job trên notebooks hoặc script Python.
✅ Đáp án đúng: command
Lý do lựa chọn:
🛠️ Trong Azure ML SDK v2, để chuẩn bị thông tin cho training job (command-based job), bạn sử dụng hàm command từ module azure.ai.ml để tạo một đối tượng CommandJob. Hàm này nhận các tham số chính như code (thư mục chứa script), command (lệnh chạy script, ví dụ: "python train.py"), environment, và compute. Ví dụ mã:
from azure.ai.ml import command, MLClient
command_job = command(
code="./src",
command="python src/train.py",
environment="AzureML-sklearn-1.0-ubuntu20.04-py38-cpu@latest",
compute="cpu-cluster"
)
Sau đó, dùng MLClient.jobs.create_or_update(command_job) để submit. Đây là cách chuẩn chuẩn bị thông tin job theo docs chính thức, hỗ trợ scalable training với autoscaling compute (cập nhật 2025+). Không dùng class khác vì chúng không dành cho việc tạo command training job.
📋 Phân tích tất cả các phương án
-
MLClient ❌:
Đây là client class dùng để kết nối và quản lý toàn bộ Azure ML resources (như tạo workspace, submit job). Nó KHÔNG dùng để chuẩn bị thông tin job mà chỉ submit job đã tạo (ví dụ:ml_client.jobs.create_or_update(job)). Sử dụng sai ngữ cảnh, dẫn đến lỗi nếu cố tạo job trực tiếp từ client. -
BuildContext ❌:
Class này thuộc MLflow integration hoặc container build context trong Azure ML, dùng để xây dựng custom Docker images hoặc model packaging cho deployment/MLOps. KHÔNG liên quan đến việc chuẩn bị training job, chỉ dùng ở giai đoạn build environment hoặc export model, không hỗ trợ compute/script config. -
EndpointConnection ❌:
Đây là class cho online/offline endpoints trong inference/deploy phase (Azure ML Endpoints v2, cập nhật 2025 với AKS managed). Nó dùng để quản lý kết nối endpoint cho serving model (prediction), KHÔNG dùng cho training job preparation. Sai hoàn toàn vì training và inference là hai giai đoạn riêng biệt. -
command ✅:
Như đã giải thích ở trên, đây là hàm chính thức tạo CommandJob object để bundle compute, environment, và script. Hoàn hảo cho yêu cầu "prepare information to submit a training job" trong SDK v2.
📘 Tài liệu tham khảo
- 🛠️ Azure ML Python SDK v2 Docs: Train models with Azure Machine Learning SDK v2 (cập nhật tháng 10/2025).
- 🔗 CommandJob Example: docs.microsoft.com/azure/machine-learning/how-to-train-command-job.
- 📊 Release Notes 2026: Microsoft Docs cho biết hỗ trợ hybrid training với GPU autoscaling trong
command(Ignite 2025 announcements).
Hy vọng phân tích này giúp bạn nắm vững Azure ML workflow! 🚀
You build a custom model you must log with MLflow. The custom model includes the following:
•The model is not natively supported by MLflow.
•The model cannot be serialized in Pickle format.
•The model source code is complex.
•The Python library for the model must be packaged with the model.
You need to create a custom model flavor to enable logging with MLflow.
What should you use?
- A model loader
- B artifacts
- C model wrapper
- D custom signatures
Xem giải thích
🧩 Giải thích chi tiết nội dung câu hỏi
Câu hỏi tập trung vào việc quản lý một Azure Machine Learning workspace và cần log (ghi log) một mô hình tùy chỉnh (custom model) bằng MLflow – một thư viện mã nguồn mở phổ biến để quản lý vòng đời machine learning, được tích hợp sẵn trong Azure ML.
Các đặc điểm của mô hình này:
- Không được hỗ trợ native bởi MLflow (không thuộc các loại mô hình chuẩn như scikit-learn, TensorFlow, PyTorch...).
- Không thể serialize bằng Pickle (phương pháp lưu trữ dữ liệu Python mặc định, thường dùng cho mô hình Python).
- Source code phức tạp (mã nguồn mô hình khó xử lý trực tiếp).
- Thư viện Python của mô hình phải được đóng gói cùng (cần bundle dependencies để deploy độc lập).
Yêu cầu chính: Tạo một custom model flavor để MLflow có thể log và quản lý mô hình này một cách linh hoạt.
Mục tiêu: Cho phép lưu trữ, load và deploy mô hình tùy chỉnh mà không phụ thuộc vào các flavor có sẵn.
(Lưu ý: Đây là tình huống thực tế trong Azure ML khi làm việc với MLflow tracking, nơi custom flavors giúp mở rộng khả năng hỗ trợ mô hình không chuẩn – cập nhật đến MLflow 2.10+ năm 2025-2026, tích hợp sâu với Azure ML v2 endpoints).
✅ Đáp án đúng: model loader
Lý do lựa chọn:
Trong MLflow, để tạo custom model flavor, bạn phải implement hai thành phần cốt lõi: model saver (để lưu mô hình) và model loader (để load mô hình từ artifacts). Model loader chính là hàm load_model() trong custom flavor module, chịu trách nhiệm khôi phục mô hình từ đường dẫn lưu trữ, xử lý serialization tùy chỉnh (không dùng Pickle), bundle source code phức tạp và dependencies Python.
Điều này hoàn hảo cho trường hợp mô hình không native support, vì loader sẽ tự động unpack thư viện và khởi tạo môi trường chạy. Sau khi định nghĩa, bạn dùng mlflow.<flavor>.log_model() để log.
🛠️ Ví dụ code cơ bản (Python trong Azure ML):
import mlflow
class CustomFlavor:
@staticmethod
def load_model(model_path: str): # Đây là model loader!
# Load source code, libs, và init model tùy chỉnh
return custom_model_instance
📋 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), với lý do đúng/sai dựa trên MLflow docs mới nhất (2026):
-
model loader ✅ Đúng
Như đã giải thích, đây là thành phần thiết yếu của custom flavor trong MLflow. Nó xử lý việc load mô hình tùy chỉnh từ artifacts, hỗ trợ serialization không Pickle, bundle code phức tạp và libs Python. Không dùng loader thì không thể tạo flavor hoàn chỉnh để log. -
artifacts ❌ Sai
Artifacts chỉ là cơ chế lưu trữ file chung (như code, data, weights) trong MLflow runs, không phải công cụ tạo custom flavor. Nó không xử lý serialization hay loading mô hình, chỉ là "container" thô – không giải quyết được yêu cầu custom model không native. -
model wrapper ❌ Sai
Model wrapper (nhưmlflow.pyfunc.wrap_model_in_pyfunc) chỉ là lớp bọc tạm thời để log mô hình Python đơn giản qua PyFunc flavor, nhưng không hỗ trợ serialization phức tạp, bundle libs đầy đủ hay source code phức tạp. Không phải cách tạo custom flavor thực thụ. -
custom signatures ❌ Sai
Custom signatures chỉ định nghĩa schema input/output (dùngsignatureparam khi log_model), giúp validate dữ liệu khi serve/deploy. Nó không liên quan đến việc tạo flavor, serialization hay bundling – chỉ là metadata bổ sung, không giải quyết core vấn đề custom model.
📘 Tài liệu tham khảo
- MLflow Custom Flavors Guide (cập nhật 2026): mlflow.org/docs/latest/flavors.html#custom-flavors – Chi tiết implement
load_model. - Azure ML + MLflow Docs: learn.microsoft.com/en-us/azure/machine-learning/how-to-mlflow – Hướng dẫn log custom models trong Azure workspace.
- MLflow 2.10+ Release Notes: Hỗ trợ bundle Python env tốt hơn cho custom loaders (2025).
Hy vọng phân tích này giúp bạn nắm vững! 🚀 Nếu cần code demo trong Azure ML Studio, hãy hỏi thêm nhé!
You must evaluate your model on a limited data sample by using k-fold cross-validation. You start by configuring a k parameter as the number of splits.
You need to configure the k parameter for the cross-validation.
Which value should you use?
- A k=0.5
- B k=0.01
- C k=5
- D k=1
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 tập trung vào nhiệm vụ phân loại (classification task) trong machine learning, nơi bạn cần đánh giá mô hình trên một mẫu dữ liệu hạn chế (limited data sample) bằng phương pháp k-fold cross-validation. Đây là kỹ thuật phổ biến để ước lượng hiệu suất mô hình khi dữ liệu ít, bằng cách chia dữ liệu thành k phần (folds), huấn luyện trên k-1 phần và kiểm tra trên 1 phần còn lại, lặp lại k lần để lấy trung bình kết quả.
Người dùng bắt đầu bằng việc cấu hình tham số k (số lượng splits/folds). Câu hỏi yêu cầu chọn giá trị phù hợp cho k trong cross-validation.
🛠️ Bối cảnh AWS: Trong AWS SageMaker (dịch vụ ML chính), k-fold cross-validation được hỗ trợ trong các built-in algorithms như XGBoost, Linear Learner, hoặc qua SageMaker Processing Jobs/Scikit-learn container (phiên bản mới nhất 2026 vẫn giữ nguyên chuẩn k-fold từ scikit-learn 1.5+). Giá trị k phải là số nguyên dương >=2, thường khuyến nghị 5 hoặc 10 cho dữ liệu nhỏ để cân bằng bias-variance (theo AWS docs và best practices ML).
✅ Đáp án đúng: k=5
Lý do lựa chọn:
Giá trị k=5 là lựa chọn chuẩn và được khuyến nghị rộng rãi cho k-fold CV trên dữ liệu hạn chế. Nó cung cấp sự cân bằng tốt giữa độ chính xác ước lượng (variance thấp) và thời gian tính toán (không quá cao). Với k=5, mô hình được huấn luyện trên 80% dữ liệu mỗi lần, giúp tận dụng tối đa dữ liệu nhỏ mà vẫn tránh overfitting. AWS SageMaker XGBoost và scikit-learn mặc định hoặc khuyến nghị k=5/10 cho các task classification. ✅
🔍 Giải thích tất cả các phương án (giữ nguyên văn bản gốc):
-
k=0.5 ❌
Sai vì: Giá trị thập phân (0.5) không hợp lệ cho tham số k trong k-fold CV. K phải là số nguyên dương >=2 (theo scikit-learn và AWS SageMaker). Sử dụng giá trị này sẽ gây lỗi runtime vì không thể chia dữ liệu thành 0.5 folds. -
k=0.01 ❌
Sai vì: Giá trị quá nhỏ (0.01, gần 0) không phải số nguyên và không có ý nghĩa thực tế. K-fold yêu cầu k>=2 để có ít nhất một lần train/test split; giá trị này sẽ dẫn đến chia dữ liệu vô lý hoặc lỗi, không phù hợp đánh giá mô hình. -
k=5 ✅
Đúng vì: Như đã giải thích ở trên, đây là giá trị tiêu chuẩn, cân bằng hiệu quả cho dữ liệu hạn chế trong AWS SageMaker và ML frameworks. -
k=1 ❌
Sai vì: Với k=1, toàn bộ dữ liệu chỉ dùng để train mà không có test set riêng biệt, làm mất ý nghĩa của cross-validation (không đánh giá được generalization). Đây tương đương train/test trên cùng dữ liệu, dẫn đến overfitting cao.
📚 Tài liệu tham khảo (cập nhật đến 2026):
- AWS SageMaker Documentation: Cross-Validation in SageMaker – Khuyến nghị k=5/10 cho limited data.
- Scikit-learn (tích hợp SageMaker): KFold docs –
n_splitsphải là int >=2. - AWS ML Best Practices: Hyperparameter Tuning Guide – Sử dụng CV với k=5 cho classification tasks.
Hy vọng phân tích này giúp bạn nắm vững kỹ thuật! 🚀
You must use the Python SDK v2 to implement an experiment from a Jupyter notebook in the workspace. The experiment must log string metrics.
You need to implement the method to log the string metrics.
Which method should you use?
- A mlflow.log_artifact()
- B mlflow.log.dict()
- C mlflow.log_metric()
- D mlflow.log_text()
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi này thuộc lĩnh vực Azure Machine Learning (Azure ML), cụ thể là sử dụng Python SDK v2 để quản lý và thực hiện các thí nghiệm (experiments) trong một Azure ML workspace.
- Bối cảnh: Bạn đã tạo một Azure ML workspace và đang làm việc trong Jupyter notebook bên trong workspace đó. Nhiệm vụ là triển khai một experiment để ghi log (log) các metrics kiểu chuỗi (string metrics) – tức là các giá trị dữ liệu dạng văn bản, không phải số học.
- Yêu cầu chính: Xác định phương thức (method) đúng trong thư viện MLflow (được tích hợp sẵn trong Azure ML Python SDK v2 từ năm 2022 trở đi) để log string metrics một cách hiệu quả.
- Phiên bản cập nhật: Theo tài liệu Azure ML Python SDK v2 mới nhất (tính đến 2026, phiên bản 2.10+), Azure ML hỗ trợ MLflow tracking đầy đủ cho experiments, cho phép log metrics, params, artifacts từ notebook. String metrics không hỗ trợ trực tiếp như numeric metrics, nên cần method chuyên biệt để log dưới dạng text artifact.
📘 Nguồn tham khảo:
✅ Đáp án đúng: mlflow.log_text()
Lý do lựa chọn:
- Phương thức
mlflow.log_text(name, text)được thiết kế chuyên biệt để log dữ liệu dạng chuỗi/text trong MLflow, lưu trữ chúng dưới dạng text artifact (file .txt) trong experiment run. - Trong Azure ML workspace với Python SDK v2, đây là cách chuẩn và được khuyến nghị để ghi log string metrics từ Jupyter notebook, đảm bảo dữ liệu văn bản được lưu trữ bền vững, dễ truy xuất qua MLflow UI hoặc SDK.
- Không có method log_metric() trực tiếp hỗ trợ string (chỉ numeric), nên
log_text()là lựa chọn tối ưu, phù hợp với yêu cầu "log string metrics".
🛠️ Giải thích tất cả các phương án (đúng/sai)
-
❌
mlflow.log_artifact():
Phương án sai vì method này dùng để upload file hoặc artifact lớn (như model files, images) vào run's artifacts store, không dành riêng cho log string metrics đơn giản. Nó yêu cầu đường dẫn file vật lý, không log trực tiếp chuỗi văn bản inline từ code. -
❌
mlflow.log.dict():
Phương án sai vì không tồn tại method chuẩnlog.dict()trong MLflow API (dù cólog_metrics(dict)cho numeric metrics dạng dict). Method này không xử lý string metrics và sẽ gây lỗi nếu gọi trực tiếp. -
❌
mlflow.log_metric():
Phương án sai vì method này chỉ hỗ trợ metrics kiểu số (numeric/float), như accuracy=0.95. Nếu truyền string, MLflow sẽ báo lỗi validation (TypeError), không phù hợp với yêu cầu log string metrics. -
✅
mlflow.log_text():
Phương án đúng như đã giải thích ở trên. Ví dụ sử dụng:mlflow.log_text("my_string_metric.txt", "This is a string metric value")– log trực tiếp text vào artifact, dễ xem trong Azure ML studio.
🧠 Lưu ý bổ sung: Trong Azure ML v2 (2026), bạn cần mlflow.set_experiment("my_experiment") trước khi log để gắn vào experiment cụ thể. Nếu dùng Azure ML CLI v2 hoặc SDK, tracking tự động sync với workspace!
You must deploy the model to use a low-priority VM with a pricing discount.
You need to deploy the model.
Which compute target should you use?
- A Azure Kubernetes Service (AKS)
- B Azure Machine Learning compute clusters
- C Azure Container Instances (ACI)
- D Local deployment
Xem giải thích
🔍 Phân tích câu hỏi trắc nghiệm về Azure Machine Learning
🧩 Giải thích nội dung câu hỏi:
Câu hỏi mô tả tình huống bạn đang quản lý một Azure Machine Learning workspace (không gian làm việc Azure ML) và đã phát triển một mô hình machine learning. Yêu cầu chính là deploy (triển khai) mô hình lên một compute target (mục tiêu tính toán) sử dụng low-priority VM (máy ảo ưu tiên thấp) để nhận pricing discount (giảm giá). Low-priority VM ở đây ám chỉ Spot VMs (máy ảo spot) của Azure, vốn được cung cấp với giá rẻ hơn (discount lên đến 90%) nhưng có thể bị gián đoạn nếu Azure cần tài nguyên. Bạn cần chọn compute target phù hợp nhất trong Azure ML để hỗ trợ tính năng này cho deployment.
✅ Đáp án đúng: Azure Machine Learning compute clusters
Lý do lựa chọn: Azure Machine Learning compute clusters hỗ trợ Spot VMs (low-priority) trực tiếp cho cả training và inference/deployment (triển khai mô hình). Khi tạo compute cluster, bạn có thể cấu hình priority=Spot để sử dụng low-priority VM với discount lớn, giúp tiết kiệm chi phí mà vẫn deploy được real-time endpoints hoặc batch inference. Đây là lựa chọn tối ưu theo tài liệu Azure ML mới nhất (cập nhật 2024-2026).
📘 Tài liệu tham khảo:
🛠️ Giải thích chi tiết từng phương án (giữ nguyên văn bản gốc):
-
Azure Kubernetes Service (AKS) ❌ Sai
AKS dùng cho managed online endpoints với khả năng scale cao, nhưng không hỗ trợ low-priority VM (Spot VMs) trực tiếp cho deployment. AKS cluster được tạo riêng và ưu tiên VM chuẩn (on-demand), không có tùy chọn discount spot như compute clusters. Nếu dùng Spot, bạn phải tự cấu hình phức tạp ở cấp Kubernetes, không phải tính năng native của Azure ML. -
Azure Machine Learning compute clusters ✅ Đúng
Như đã giải thích ở trên, đây là compute target duy nhất hỗ trợ low-priority VM (Spot) native cho deployment mô hình với discount tự động. Bạn có thể deploy online/batch endpoints trực tiếp lên cluster này, và Azure ML tự động quản lý eviction (gián đoạn) của Spot VMs. -
Azure Container Instances (ACI) ❌ Sai
ACI là serverless container cho testing/quick deployment nhỏ lẻ, nhưng không hỗ trợ VM low-priority hoặc Spot. ACI dùng pay-per-second với VM on-demand, không có tùy chọn discount spot, và chỉ phù hợp cho low-traffic inference chứ không scale như clusters. -
Local deployment ❌ Sai
Local deployment chỉ chạy mô hình trên máy local (máy cá nhân), hoàn toàn không liên quan đến cloud VM hay discount Azure. Không có low-priority VM nào ở đây, chỉ dùng cho development/debug, không phải production deployment trong Azure ML workspace.
💡 Lưu ý thêm: Theo cập nhật Azure ML v2 (2024-2026), compute clusters vẫn là lựa chọn hàng đầu cho Spot VMs trong deployment, đặc biệt với managed endpoints. Nếu cần scale lớn hơn, có thể kết hợp với AKS nhưng không ưu tiên Spot. Hãy kiểm tra quota Spot VMs trong subscription để tránh lỗi! 🚀