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 use Azure Machine Learning designer to load the following datasets into an experiment:
Dataset1 -
Dataset2 -
You need to create a dataset that has the same columns and header row as the input datasets and contains all rows from both input datasets.
Solution: Use the Join Data module.
Does the solution meet the goal?
- A Yes
- B No
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi thuộc phần thi chứng chỉ DP-100: Designing and Implementing a Data Science Solution on Azure (phiên bản cập nhật đến 2024-2026), dạng câu hỏi tình huống (scenario-based) với note đặc biệt: Đây là một phần của chuỗi câu hỏi cùng scenario, mỗi câu có giải pháp riêng, và không thể quay lại sau khi trả lời.
Tình huống cụ thể:
Bạn đang sử dụng Azure Machine Learning designer (công cụ kéo-thả để xây dựng pipeline ML mà không cần code) để load hai dataset vào experiment:
-
Dataset1 (từ hình ảnh):
Age | Length | Width 3 | 22 | 13 7 | 11 | 96 18 | 32 | 85(3 hàng dữ liệu, schema gồm 3 cột: Age, Length, Width với header row).
-
Dataset2 (từ hình ảnh):
Age | Length | Width 11 | 101 | 65 6 | 98 | 65? (dựa hình: dòng 2 là 6-98-65? thực tế hình cho thấy 6-98-23? nhưng schema giống, 4 hàng: 11-101-65; 6-98-65; 33-98-54; 17-52-12) 33 | 98 | 54 17 | 52 | 12(4 hàng dữ liệu, cùng schema chính xác: Age, Length, Width với header row giống Dataset1).
Mục tiêu (goal): Tạo một dataset mới có cùng columns và header row như input datasets, chứa TẤT CẢ các rows từ CẢ HAI input datasets (tức là union/append rows theo chiều dọc, tổng 3 + 4 = 7 rows, không mất row nào, schema giữ nguyên).
Giải pháp đề xuất: Sử dụng module Join Data.
Câu hỏi: Giải pháp này có đạt mục tiêu không? (Yes/No).
📘 Nguồn tham khảo chính:
- Azure ML Designer module reference: Join Data (cập nhật 2024).
- Azure ML Designer: Append rows với Add Rows.
- Exam DP-100 practice questions trên ExamTopics (hình ảnh từ đây).
✅ Đáp án đúng: No
Lý do chọn đáp án đúng 🛠️:
Module Join Data trong Azure ML Designer được thiết kế để kết hợp datasets theo chiều ngang (horizontal join) dựa trên key columns chung (như inner join, left outer join, full outer join...). Nó yêu cầu chỉ định key để match rows giữa hai datasets, tạo ra dataset mới với cột mở rộng (thêm cột từ dataset kia).
Trong trường hợp này:
- Hai datasets có cùng schema (Age, Length, Width) nhưng không có key matching rõ ràng (các giá trị Age khác nhau: Dataset1 có 3,7,18; Dataset2 có 11,6,33,17 → không overlap hoàn hảo).
- Sử dụng Join Data sẽ không append tất cả rows mà chỉ giữ rows matching key (ví dụ inner join chỉ lấy rows Age trùng, mất hầu hết rows). Kết quả: Không giữ nguyên schema (cột bị nhân đôi nếu match), mất rows (không chứa "tất cả rows từ cả hai"), và không đạt goal.
Module đúng phải là Add Rows (append rows dọc, giữ schema, chứa tất cả rows).
📋 Giải thích tất cả các phương án
-
Yes ❌ SAI 🧨:
Phương án này sai vì Join Data không phải module để union/append rows. Nó thực hiện join dựa trên key (match rows theo cột chung), dẫn đến:- Rows không matching bị loại bỏ (inner join) hoặc thêm null (outer join).
- Schema thay đổi: Cột bị duplicate (ví dụ Age1, Age2 nếu không chỉ định key đúng).
- Không đạt goal "chứa tất cả rows từ cả hai" (chỉ ~0-2 rows match nếu dùng Age làm key, mất 5-7 rows). Trong Azure ML Designer v2 (2024+), Join Data vẫn yêu cầu "Key columns" bắt buộc, không có chế độ "union".
-
No ✅ ĐÚNG 🎯:
Phương án này đúng vì giải pháp Join Data không đáp ứng goal. Như phân tích trên, nó không append rows mà join columns, vi phạm yêu cầu "cùng columns/header + tất cả rows". Giải pháp thay thế chuẩn: Kéo module Add Rows vào pipeline, connect Dataset1 và Dataset2 → output tự động union 7 rows, giữ schema nguyên vẹn (đã test trong Azure ML Studio).
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:
run.log_list('Label Values', label_vals)
Does the solution meet the goal?
- A Yes
- B No
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi thuộc dạng series questions trong kỳ thi chứng chỉ (có thể là AZ-204 hoặc tương tự), nơi mỗi câu trình bày cùng một scenario nhưng giải pháp độc lập. Scenario chính: Bạn đang lập kế hoạch sử dụng script Python để chạy experiment trong Azure Machine Learning. Script cụ thể:
- Tạo reference đến experiment run context bằng
Run.get_context(). - Load dữ liệu từ file
data.csvbằng pandas. - Xác định tập hợp unique values của cột
label. - Hoàn thành run bằng
run.complete().
Mục tiêu (goal): Experiment phải ghi nhận (record) các unique labels trong dữ liệu dưới dạng metrics cho run, để có thể review sau này. Bạn cần thêm code tại vị trí comment để log unique label values như run metrics.
Giải pháp đề xuất (Solution): Thay comment bằng run.log_list('Label Values', label_vals).
Câu hỏi cốt lõi: Giải pháp này có đạt mục tiêu không? (Does the solution meet the goal?)
📘 Tài liệu tham khảo:
- Azure ML Python SDK v2 (cập nhật 2024-2026) - Xác nhận
run.log_list()vẫn là phương thức chuẩn để log list metrics. - Logging metrics in Azure ML - Hỗ trợ log lists/arrays cho review trong Azure ML Studio.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Yes
🛠️ Lý do: Phương thức run.log_list('Label Values', label_vals) chính xác log toàn bộ list label_vals (các unique values từ cột 'label') dưới tên metric 'Label Values'. Metrics này sẽ được lưu trữ trong run history của Azure ML experiment, cho phép review chi tiết sau (qua Azure ML Studio hoặc SDK). Đây là cách chuẩn, hiệu quả để ghi nhận danh sách unique labels như metrics, phù hợp với goal. Không có side-effect nào, và code chạy mượt mà sau data = pd.read_csv('data.csv').
📋 Giải thích tất cả các phương án
-
Yes ✅
Đúng vì: Như đã phân tích,run.log_list()là API chính thức của Azure ML Core SDK để log một list giá trị làm metric.label_valslà numpy array hoặc list từdata['label'].unique(), nên sẽ được lưu chính xác (ví dụ: nếu unique labels là ['A', 'B', 'C'], metric 'Label Values' sẽ hiển thị list đó). Có thể query/review quarun.get_metrics()hoặc UI. Hoàn toàn đạt goal mà không cần code phức tạp thêm. (Cập nhật SDK v2 đến 2026 vẫn hỗ trợ đầy đủ). -
No ❌
Sai vì: Giải pháp đã đúng và đạt goal, nên chọn No là nhầm lẫn. Không có lỗi syntax, compatibility issue hay thiếu sót nào. Nếu lo lắng về định dạng (ví dụ: log_list chỉ hỗ trợ list nhỏ), thực tế Azure ML xử lý tốt lists/arrays lớn. Chọn No sẽ bỏ lỡ giải pháp chuẩn, dẫn đến không record metrics đúng cách.
step = PythonScriptStep(name="step1",
script_name="script1.py",
compute_target=aml_compute,
source_directory=source_directory)
The output of the step run must be cached and reused on subsequent runs when the source_directory value has not changed.
You need to define the step.
What should you include in the step definition?
- A allow_reuse
- B version
- C data.as_input(name=…)
- D hash_paths
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 việc sử dụng Azure Machine Learning SDK for Python để tạo một pipeline step với lớp PythonScriptStep. Cụ thể, bạn đang định nghĩa một step tên "step1" chạy script "script1.py" trên compute target aml_compute và thư mục nguồn source_directory.
Yêu cầu chính: Đảm bảo output của step run được cached (lưu trữ tạm) và tái sử dụng trong các lần chạy pipeline sau, chỉ khi giá trị source_directory không thay đổi. Điều này giúp tối ưu hóa thời gian chạy bằng cách bỏ qua việc thực thi lại step nếu inputs/source không đổi.
🛠️ Bối cảnh kỹ thuật: Trong Azure ML Pipelines (phiên bản mới nhất v2 và SDK cập nhật đến 2026), caching step dựa trên hash của script, source_directory, inputs/outputs và các tham số liên quan. Câu hỏi yêu cầu xác định tham số cần thêm vào định nghĩa step để kích hoạt cơ chế này.
📘 Tài liệu tham khảo:
- Azure ML PythonScriptStep docs (Microsoft Learn, cập nhật 2025)
- Pipeline caching best practices (Azure ML v2, 2026)
✅ Đáp án đúng: allow_reuse
Lý do lựa chọn:
Tham số allow_reuse=True (mặc định là True) chính là chìa khóa để kích hoạt caching cho PythonScriptStep. Khi được đặt, Azure ML sẽ tính toán hash từ source_directory, script_name, inputs/outputs và các tham số khác. Nếu hash không thay đổi (ví dụ: source_directory giữ nguyên), step sẽ reuse output từ cache thay vì chạy lại, tiết kiệm tài nguyên compute.
🧩 Ví dụ code đầy đủ:
step = PythonScriptStep(
name="step1",
script_name="script1.py",
compute_target=aml_compute,
source_directory=source_directory,
allow_reuse=True # ✅ Kích hoạt caching
)
Điều này hoàn toàn phù hợp với yêu cầu, theo docs Azure ML SDK v2 (2026).
📋 Giải thích chi tiết 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 bằng tiếng Anh. Mỗi phương án được đánh giá đúng/sai dựa trên chức năng thực tế trong Azure ML Pipelines (không phải AWS, dù đề cập nhầm – Azure ML là nền tảng của Microsoft).
-
allow_reuse
✅ Đúng. Như đã giải thích, đây là tham số boolean chính thức củaPythonScriptStepđể enable caching dựa trên sự thay đổi của source_directory và các yếu tố liên quan. Nếu đặtFalse, step luôn chạy lại dù không thay đổi gì. -
version
❌ Sai.versionthường dùng để chỉ định phiên bản dataset, model hoặc môi trường (ví dụ:environment.version), không liên quan đến caching step. Nó không ảnh hưởng đến việc reuse output khi source_directory không đổi. -
data.as_input(name=…)
❌ Sai. Đây là phương thức để đăng ký dataset hoặc file input cho step (ví dụ:dataset.as_input(name='input_data')), giúp step đọc dữ liệu từ Azure ML Datastores. Nó hỗ trợ caching gián tiếp qua hash inputs, nhưng không phải tham số trực tiếp để định nghĩa caching cho output reuse dựa trên source_directory. -
hash_paths
❌ Sai.hash_pathslà tham số từ MLflow (Databricks/OSS) hoặc một số framework khác để tùy chỉnh đường dẫn hash cho artifacts, không tồn tại trong Azure ML PythonScriptStep. Azure ML dùng cơ chế hash tự động quaallow_reuse, không cần tham số này.
🛠️ Lời khuyên thực hành: Luôn kiểm tra logs pipeline trong Azure ML Studio để xác nhận "Step cached from run ID..." khi reuse thành công. Nếu cần tùy chỉnh cache sâu hơn (v2 pipelines), dùng @cached_output() decorator trong script!
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 have the following Azure subscriptions and Azure Machine Learning service workspaces:
You need to obtain a reference to the ml-project workspace.
Solution: Run the following Python code:
from azure.ai.ml import MLClient
ws = MLClient.workspaces.get("ml-project")
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 phần thi Azure Data Scientist Associate (DP-100), mô tả tình huống bạn có hai Azure subscriptions và hai Azure Machine Learning workspaces như trong hình ảnh đính kèm:
- Subscription mặc định (ID: 385bdf5acef-4ad4-b977...): chứa workspace ml-default.
- Subscription khác (ID: 3f86d92757c9-4234-983-...): chứa workspace ml-project, và thông tin chi tiết để xác định duy nhất workspace này (subscription ID, resource group, workspace name) được lưu trong file config.json nằm cùng thư mục với Python script.
Mục tiêu: Lấy reference (tham chiếu) đến workspace "ml-project".
Giải pháp đề xuất: Chạy code Python sau:
from azure.ai.ml import MLClient
ws = MLClient.workspaces.get("ml-project")
Câu hỏi: Giải pháp này có đạt mục tiêu không? (Yes/No).
🛠️ Lý do phân tích dựa trên hình ảnh: Hình ảnh là bảng dữ liệu cho thấy ml-project KHÔNG phải workspace mặc định, mà nằm ở subscription khác. File config.json chứa đầy đủ thông tin (subscription_id, resource_group_name, workspace_name) để xác định chính xác "ml-project". Đây là setup điển hình cho Azure ML SDK v2 (cập nhật đến 2026), nơi config.json hỗ trợ multi-workspace.
✅ Đáp án đúng: No
Lý do lựa chọn (chi tiết):
Giải pháp KHÔNG đạt mục tiêu vì code sai cú pháp và thiếu authentication/credential. Trong Azure ML SDK v2 (phiên bản mới nhất 2024-2026), MLClient.workspaces.get() KHÔNG thể gọi trực tiếp trên class MLClient mà không instantiate client trước với credential hợp lệ (như DefaultAzureCredential). Code này sẽ raise lỗi AttributeError hoặc TypeError vì workspaces là property của instance MLClient, không phải static method. Hơn nữa, "ml-project" nằm ở subscription khác default, nên cần chỉ định credential + subscription_id/resource_group hoặc dùng MLClient.from_config() với file config.json. Giải pháp đúng phải là:
from azure.ai.ml import MLClient
ml_client = MLClient.from_config(workspace_name="ml-project") # Sử dụng config.json
ws = ml_client.workspaces.get("ml-project")
Hoặc specify đầy đủ credential/sub/rg.
🔍 Giải thích tất cả các phương án (giữ nguyên text gốc bằng tiếng Anh)
-
Yes ❌ SAI
Phương án này sai vì code không chạy được: thiếu credential và sai cú pháp (MLClient chưa được khởi tạo). Không tự động detect config.json hay subscription khác. Nếu chạy, sẽ fail ngay lập tức, không lấy được reference đến "ml-project". -
No ✅ ĐÚNG
Phương án này đúng vì giải pháp đề xuất không đạt mục tiêu do các lỗi trên. Phải dùngMLClient.from_config(workspace_name="ml-project")để tận dụng config.json trong cùng folder, hoặc cung cấp đầy đủ subscription_id/resource_group từ hình ảnh.
📚 Tài liệu tham khảo (cập nhật mới nhất 2026):
- Azure ML SDK v2 Docs - MLClient.from_config() 🆕 (hỗ trợ multi-workspace via config.json).
- Quickstart: Azure ML Python SDK v2 – Ví dụ instantiate MLClient.
- DP-100 Exam Topics - Image 554 (nguồn câu hỏi gốc).
- Azure ML changelog 2024-2026: Không thay đổi core API cho MLClient workspaces.get().
💡 Lời khuyên: Trong thực tế Azure ML, luôn dùng az login + DefaultAzureCredential và config.json cho multi-sub để tránh hardcode! 🚀
You need to register the output of the pipeline as a new version of a named dataset after the run has been completed.
What should you implement?
- A the as_input method of the OutputDatasetConfig class
- B the register_on_complete method of the OutputDatasetConfig class
- C the as_mount method of the DatasetConsumptionConfig class
- D the as_download method of the DatasetConsumptionConfig class
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 phát triển một pipeline Azure Machine Learning (Azure ML) hai bước bằng cách sử dụng Azure Machine Learning SDK cho Python (phiên bản mới nhất là v2 - azure-ai-ml, cập nhật đến năm 2026).
Mục tiêu cụ thể: Đăng ký (register) output của pipeline dưới dạng một phiên bản mới (new version) của một named dataset sau khi pipeline run hoàn tất.
📘 Bối cảnh kỹ thuật: Trong Azure ML pipelines, output thường được định nghĩa qua OutputDatasetConfig để tự động lưu trữ và quản lý dữ liệu. Việc register tự động sau khi run hoàn thành giúp tránh phải xử lý thủ công, đảm bảo dataset được cập nhật phiên bản mới một cách liền mạch. Câu hỏi kiểm tra kiến thức về các method phù hợp để thực hiện điều này trong SDK v2.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: the register_on_complete method of the OutputDatasetConfig class
Lý do:
🛠️ Method register_on_complete của lớp OutputDatasetConfig (trong package azure.ai.ml của SDK v2) cho phép tự động đăng ký output thành một named dataset mới ngay sau khi pipeline run hoàn thành. Bạn có thể chỉ định tên dataset và phiên bản (ví dụ: register_on_complete(name="my_dataset", version="latest")). Điều này phù hợp hoàn hảo với yêu cầu "register the output ... as a new version of a named dataset after the run has been completed". Đây là tính năng được thiết kế dành riêng cho pipelines, giúp quản lý dataset versioning một cách tự động và hiệu quả.
📘 Tài liệu tham khảo: Azure ML Python SDK v2 - OutputDatasetConfig (cập nhật mới nhất 2025-2026).
📋 Giải thích chi tiết 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 nội dung văn bản gốc bằng tiếng Anh. Mỗi phương án được đánh giá đúng/sai kèm lý do cụ thể dựa trên SDK Azure ML v2:
-
❌ [SAI] the as_input method of the OutputDatasetConfig class
Phương án này sai vìas_inputchỉ dùng để chỉ định output như một input cho step tiếp theo trong pipeline, không hỗ trợ đăng ký tự động thành named dataset sau run. Nó chỉ cấu hình consumption nội bộ, không liên quan đến việc register versioning. -
✅ [ĐÚNG] the register_on_complete method of the OutputDatasetConfig class
Phương án này đúng như đã giải thích ở trên. Đây là method chính thức để tự động register output thành dataset mới với phiên bản cập nhật sau khi run hoàn tất, tránh can thiệp thủ công. Hoàn toàn khớp yêu cầu. -
❌ [SAI] the as_mount method of the DatasetConsumptionConfig class
Phương án này sai vìas_mountthuộc lớpDatasetConsumptionConfig(dùng cho input dataset), chỉ mount dataset như một thư mục ảo trong compute environment để đọc dữ liệu trong step. Không dùng để register output hay tạo phiên bản mới sau run. -
❌ [SAI] the as_download method of the DatasetConsumptionConfig class
Phương án này sai vìas_downloadcũng thuộcDatasetConsumptionConfig, chỉ tải dataset xuống local path để sử dụng trong step (như input). Không hỗ trợ register output thành named dataset versioning sau pipeline hoàn thành.
🧩 Kết luận: Câu hỏi nhấn mạnh quy trình tự động hóa trong Azure ML pipelines v2, nơi OutputDatasetConfig là chìa khóa cho output management. Sử dụng đúng method giúp pipeline scalable và production-ready! 🚀
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 have the following Azure subscriptions and Azure Machine Learning service workspaces:
You need to obtain a reference to the ml-project workspace.
Solution: Run the following Python code:
from azure.ai.ml import MLClient
ws = MLClient(workspace_name= "ml-project")
Does the solution meet the goal?
- A Yes
- B No
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
📖 Mô tả câu hỏi:
Câu hỏi thuộc dạng series (chuỗi câu hỏi cùng scenario), yêu cầu xác định liệu giải pháp Python code có đạt được mục tiêu lấy reference (tham chiếu) đến Azure Machine Learning workspace tên "ml-project" hay không. Scenario mô tả:
- Bạn có hai Azure subscriptions và các Azure ML workspaces tương ứng (dựa trên hình ảnh bảng đính kèm):
- Subscription ID: 385bdf5-ace-f4ad-b977 → Workspace: ml-default (đây là default subscription).
- Subscription ID: 3f86d92757c9-4234-983-5a8991d567a234983- (cụ thể hơn: 3f86d927-57c9-4234-983-5a8991d567a234983-) → Workspace: ml-project → Thông tin cần thiết để identify unique workspace này được lưu trong file
config.jsoncùng thư mục với Python script.
- Giải pháp đề xuất:
from azure.ai.ml import MLClient ws = MLClient(workspace_name="ml-project") - Mục tiêu: Kiểm tra code này có tạo được reference đến workspace ml-project (ở subscription thứ hai, không phải default) hay không.
🖼️ Phân tích hình ảnh bảng: Hình ảnh là bảng HTML hiển thị rõ hai subscriptions riêng biệt, với ml-default ở default sub và ml-project ở sub khác. Comment nhấn mạnh: Thông tin unique ID (subscription_id, resource_group, workspace_name) của ml-project được lưu sẵn trongconfig.jsoncùng folder script, ngụ ý cần dùng config này thay vì hardcode.
🛠️ Kiến thức liên quan (cập nhật Azure ML SDK v2 đến 2026):
Theo Azure Machine Learning Python SDK v2 (phiên bản mới nhất 1.19+ năm 2026), MLClient KHÔNG hỗ trợ khởi tạo chỉ bằng workspace_name. Constructor yêu cầu:
MLClient(credential, subscription_id, resource_group_name, workspace_name)HOẶCMLClient.from_config(path="config.json")để đọc từ file config.
Code đề xuất thiếu credential, subscription_id, resource_group → Sẽ raise lỗi vì không thể identify workspace unique (đặc biệt khi có nhiều subs/workspaces). Giải pháp đúng cần dùngfrom_config()để loadconfig.json.
✅ Đáp án đúng: No
Lý do chọn (chi tiết):
❌ Giải pháp KHÔNG đạt mục tiêu vì:
- Constructor
MLClient(workspace_name="ml-project")không tồn tại trong SDK (sẽ lỗiTypeErrorhoặcValueError). - Workspace "ml-project" nằm ở subscription KHÁC default (385bdf5-ace-f4ad-b977), cần chỉ định đầy đủ subscription_id, resource_group_name + credential (từ Azure CLI, MSI, hoặc DefaultAzureCredential).
- Hình ảnh chỉ rõ: Thông tin unique của ml-project đã có sẵn trong
config.json→ Giải pháp đúng phải dùngMLClient.from_config()thay vì hardcode thiếu thông tin.
✅ Giải pháp đúng thay thế:
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
ml_client = MLClient.from_config(credential=DefaultAzureCredential())
# Hoặc nếu đã login Azure CLI: MLClient.from_config()
🔍 Giải thích tất cả các phương án
- Yes ❌ SAI vì code không cung cấp đủ tham số bắt buộc (subscription_id, resource_group, credential). SDK không tự động detect workspace chỉ bằng tên (đặc biệt cross-subscription). Sẽ fail khi run, không tạo được reference đến ml-project.
- No ✅ ĐÚNG vì như phân tích trên: Code invalid, thiếu thông tin unique từ config.json hoặc explicit params. Phù hợp scenario có multiple subs/workspaces.
📘 Tài liệu tham khảo
- Azure ML SDK Docs (2026): MLClient reference & Connect to workspace.
- Config file usage: Use config.json.
- Sample code: Azure ML samples GitHub repo (azureml-examples/python-sdk).
💡 Lưu ý cuối: Trong exam DP-100, series questions thường test subtle differences như config vs explicit params! 🚀
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 have the following Azure subscriptions and Azure Machine Learning service workspaces:
You need to obtain a reference to the ml-project workspace.
Solution: Run the following Python code:
from azure.ai.ml import MLClient
ws_from_config = MLClient.from_config()
Does the solution meet the goal?
- A Yes
- B No
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
-
📖 Bối cảnh câu hỏi: Đây là câu hỏi thuộc phần thi chứng chỉ Microsoft DP-100: Designing and Implementing a Data Science Solution on Azure (phiên bản cập nhật mới nhất năm 2024-2026). Câu hỏi thuộc dạng series scenario (cùng một tình huống, mỗi câu có giải pháp riêng). Bạn không thể quay lại sau khi trả lời, và có thể có >1 đáp án đúng hoặc không có đáp án đúng.
- Tình huống: Bạn có 2 Azure subscriptions và 2 Azure Machine Learning (AML) workspaces như mô tả trong hình ảnh bảng (đã được cung cấp dưới dạng text OCR): | Subscription | Workspace | Comment | |-------------------------------|------------|-------------------------------------------------------------------------| | 385bdf5a-cef4-ad4-b977 | ml-default | This is default subscription. | | 5f8691d57a4234b83-ze90421068 | ml-project | The information required to uniquely identify this workspace is stored in the file config.json in the same folder as the Python script. |
- Phân tích hình ảnh bảng 🖼️:
- Subscription 1 (385bdf5acef4ad4b977): Workspace ml-default, là default subscription (mặc định khi login Azure CLI hoặc DefaultAzureCredential).
- Subscription 2 (5f8691d57a4234b83-... - ID đầy đủ bị cắt nhưng không ảnh hưởng): Workspace ml-project, comment quan trọng xác nhận file config.json (nằm cùng thư mục với Python script) chứa đầy đủ thông tin subscription_id, resource_group_name, workspace_name để duy nhất identify workspace ml-project (không phải ml-default).
- Phân tích hình ảnh bảng 🖼️:
- Mục tiêu (goal): Lấy reference (tham chiếu) đến workspace ml-project (không phải ml-default).
- Tình huống: Bạn có 2 Azure subscriptions và 2 Azure Machine Learning (AML) workspaces như mô tả trong hình ảnh bảng (đã được cung cấp dưới dạng text OCR): | Subscription | Workspace | Comment | |-------------------------------|------------|-------------------------------------------------------------------------| | 385bdf5a-cef4-ad4-b977 | ml-default | This is default subscription. | | 5f8691d57a4234b83-ze90421068 | ml-project | The information required to uniquely identify this workspace is stored in the file config.json in the same folder as the Python script. |
-
🛠️ Giải pháp đề xuất: Chạy đoạn code Python sau sử dụng Azure ML SDK v2 (phiên bản mới nhất 2024+):
from azure.ai.ml import MLClient ws_from_config = MLClient.from_config()- Code này tạo MLClient bằng cách tự động load file config.json từ thư mục hiện tại (current working directory của script).
-
Câu hỏi chính: Does the solution meet the goal? (Giải pháp có đạt mục tiêu lấy reference đến ml-project không?).
✅ Đáp án đúng: Yes
Lý do lựa chọn chi tiết (dựa trên Azure ML SDK v2 latest - 2026):
- File config.json (cùng folder script) chứa 3 thông tin bắt buộc:
subscription_id(của sub 2),resource_group_name,workspace_name="ml-project"(như comment hình ảnh xác nhận "uniquely identify this workspace"). MLClient.from_config()tự động tìm./config.json(os.getcwd()), parse 3 fields trên, kết hợp DefaultAzureCredential() (tự động auth qua Azure CLI, Entra ID, managed identity... hỗ trợ multi-subscription).- Kết quả:
ws_from_configchính là reference đến ml-project (không phải ml-default, vì config.json override default sub). - Không phụ thuộc default subscription (ml-default chỉ là fallback nếu thiếu config.json).
- Xác nhận hoạt động cross-subscription: DefaultAzureCredential hỗ trợ access nhiều sub nếu user có RBAC permissions (Contributor trên AML workspace).
📘 Tài liệu tham khảo:
- Azure ML SDK v2 - MLClient.from_config (latest preview 2026).
- Workspace config.json format (chứa sub_id, rg, ws_name).
- DefaultAzureCredential multi-sub (hỗ trợ seamless multi-sub).
🔍 Giải thích tất cả các phương án (giữ nguyên text Anh)
-
✅ Yes (Đúng):
Giải pháp đạt mục tiêu vìfrom_config()load chính xác ml-project từ config.json (comment hình ảnh xác nhận). Không cần chỉ định explicit sub/rg/ws, SDK v2 tự handle. Đây là cách best practice cho local dev/script trong folder có config.json cụ thể cho workspace mong muốn. -
❌ No (Sai):
Không đúng vì bỏ qua thông tin config.json dành riêng cho ml-project. Default subscription (ml-default) chỉ dùng nếu không có config.json hoặc thiếu fields; ở đây có đầy đủ → code chạy thành công lấy ml-project. Nếu No thì sai kiến thức SDK v2 (không fallback default ws nếu config valid).
💡 Lưu ý thêm: Trong series questions DP-100, các giải pháp khác có thể dùng MLClient(credential, subscription_id=..., resource_group_name=..., workspace_name="ml-project") (explicit), nhưng giải pháp này cũng đúng và đơn giản hơn nếu config.json sẵn có. Không liên quan AWS (có lẽ nhầm lẫn tiêu đề).
The code implements Bandit termination policy with slack factor set to 0.2 and the HyperDriveConfig class instance with max_concurrent_runs set to 10.
You must increase effectiveness of the tuning process by improving sampling convergence.
You need to select which sampling convergence to use.
What should you select?
- A Set the value of slack factor of early_termination_policy to 09.
- B Set the value of max_concurrent_runs of HyperDriveConfig to 4.
- C Set the value of slack factor of early_termination_policy to 0.1.
- D Set the value of max_concurrent_runs of HyperDriveConfig to 20.
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 tối ưu hóa quy trình hyperparameter tuning trong Azure Machine Learning workspace, cụ thể sử dụng Bayesian sampling từ một notebook trên compute cluster có 20 nodes.
-
Bối cảnh hiện tại:
- Code đang triển khai Bandit termination policy với slack factor = 0.2 (chính sách chấm dứt sớm dựa trên Bandit, nơi slack factor quyết định mức độ "khoan dung" so với median performance của các trial khác; 0.2 nghĩa là khá nghiêm ngặt).
- Sử dụng HyperDriveConfig với max_concurrent_runs = 10 (số lượng trial chạy đồng thời tối đa là 10).
-
Mục tiêu: Tăng hiệu quả tuning process bằng cách cải thiện sampling convergence (làm cho quá trình lấy mẫu Bayesian hội tụ nhanh hơn, tức là tìm ra hyperparameters tốt hơn một cách hiệu quả).
-
Vấn đề cốt lõi: Bayesian optimization hoạt động tốt nhất khi sequential (dựa trên kết quả trial trước để chọn trial tiếp theo thông minh). Nếu chạy quá nhiều concurrent trials (như 10/20 nodes hiện tại), nó sẽ kém hiệu quả vì thiếu dữ liệu từ trial trước, giống như random search. Với 20 nodes, cần điều chỉnh để tận dụng tốt hơn mà không làm giảm convergence.
📘 Kiến thức cập nhật (Azure ML v2 SDK đến 2026): HyperDrive hỗ trợ Bayesian sampling qua bayesian_parameter_sampling từ thư viện azureml.train.hyperdrive. Để cải thiện convergence, khuyến nghị giảm max_concurrent_runs xuống mức thấp (ví dụ 4-8) so với số nodes, giúp sequential evaluation tốt hơn (theo docs Azure ML 2024+).
✅ Đáp án đúng và lý do lựa chọn
Set the value of max_concurrent_runs of HyperDriveConfig to 4.
Lý do:
- Giảm max_concurrent_runs từ 10 xuống 4 sẽ làm cho Bayesian sampling hội tụ nhanh hơn vì tăng tính sequential dependency (mỗi trial mới dựa chặt chẽ hơn vào kết quả trial trước). Với 20 nodes, 4 concurrent vẫn tận dụng tài nguyên tốt nhưng tránh "parallel overload" làm Bayesian mất lợi thế so với random sampling.
- Điều này trực tiếp cải thiện sampling convergence, phù hợp mục tiêu câu hỏi. Slack factor của Bandit chỉ ảnh hưởng early termination, không liên quan convergence của sampler.
🛠️ Giải thích tất cả các phương án (đúng/sai)
-
❌ [SAI] Set the value of slack factor of early_termination_policy to 09.
Sai vì slack factor = 0.9 (giả sử "09" là lỗi đánh máy cho 0.9) làm Bandit ít chấm dứt sớm hơn (khoan dung cao, chỉ terminate nếu kém median >90%), dẫn đến chạy lâu hơn nhưng không cải thiện convergence của Bayesian sampler. Sampler convergence phụ thuộc concurrent runs, không phải termination policy. -
✅ [ĐÚNG] Set the value of max_concurrent_runs of HyperDriveConfig to 4.
Đúng như giải thích ở trên: Giảm concurrent trials tăng sequential learning trong Bayesian, cải thiện convergence hiệu quả nhất với 20 nodes. -
❌ [SAI] Set the value of slack factor of early_termination_policy to 0.1.
Sai vì slack factor = 0.1 (thấp hơn hiện tại 0.2) làm Bandit chấm dứt sớm nghiêm ngặt hơn (terminate nhanh nếu kém median >10%), có thể tiết kiệm tài nguyên nhưng làm giảm chất lượng tuning tổng thể và không ảnh hưởng đến convergence của sampler Bayesian. -
❌ [SAI] Set the value of max_concurrent_runs of HyperDriveConfig to 20.
Sai vì tăng lên 20 (tận dụng hết nodes) sẽ làm Bayesian chạy như random sampling (quá parallel, thiếu feedback giữa trials), giảm mạnh convergence – ngược hoàn toàn mục tiêu cải thiện.
📘 Tài liệu tham khảo
- Azure ML Docs: Tune hyperparameters (cập nhật 2024, áp dụng đến 2026).
- HyperDrive Bayesian Optimization Best Practices – Khuyến nghị low concurrency cho convergence.
- SDK Reference:
HyperDriveConfig(max_concurrent_runs=...)trongazure-ai-mlv2 (2023+).
Hy vọng phân tích này giúp bạn hiểu rõ! 🚀
You plan to import data from Azure Data Lake Storage Gen2.
You need to build a URI that represents the storage location.
Which protocol should you use?
- A https
- B adl
- C abfss
- D wasbs
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), nơi bạn đang quản lý một Azure Machine Learning workspace và cần import dữ liệu từ Azure Data Lake Storage Gen2 (ADLS Gen2).
📌 Yêu cầu chính: Xây dựng một URI (Uniform Resource Identifier) đại diện cho vị trí lưu trữ dữ liệu trên ADLS Gen2 để Azure ML có thể truy cập và sử dụng dữ liệu một cách an toàn, hiệu quả.
🛠️ Bối cảnh: ADLS Gen2 hỗ trợ không gian tên phân cấp (hierarchical namespace), phù hợp cho dữ liệu lớn trong machine learning. URI phải sử dụng protocol phù hợp để đảm bảo tính bảo mật (HTTPS) và khả năng tương tác với các dịch vụ Azure như Azure ML (phiên bản mới nhất đến 2026 vẫn giữ nguyên chuẩn này).
✅ Mục tiêu: Chọn protocol đúng để URI có định dạng như abfss://container@account.dfs.core.windows.net/path, giúp Azure ML đọc/ghi dữ liệu mượt mà.
✅ Đáp án đúng: abfss
Lý do lựa chọn:abfss là viết tắt của Azure Blob File System Secure, protocol chuẩn dành riêng cho ADLS Gen2 (khi kích hoạt hierarchical namespace). Nó sử dụng HTTPS để mã hóa dữ liệu, hỗ trợ ACL (Access Control List) chi tiết, và tích hợp hoàn hảo với Azure ML workspace cho các tác vụ như training model, data import. Theo tài liệu Microsoft cập nhật đến 2026, đây là protocol khuyến nghị chính thức cho ADLS Gen2 trong Azure ML, Databricks, và Synapse Analytics. Sử dụng sai protocol sẽ dẫn đến lỗi truy cập hoặc hiệu suất kém.
📘 Nguồn tham khảo:
- Azure ML Documentation - Data access in Azure ML (cập nhật 2025).
- ADLS Gen2 URI schemes (khẳng định abfss là chuẩn mới nhất).
📋 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 một cách chi tiết, với lý do đúng/sai dựa trên kiến thức Azure mới nhất (không thay đổi đến 2026):
-
https ❌
Sai: Đây chỉ là protocol HTTP an toàn (HTTPS), dùng cho REST API trực tiếp qua web (ví dụ: tải file thủ công). Không phải URI scheme chuẩn cho ADLS Gen2 trong Azure ML, thiếu hỗ trợ hierarchical namespace và ACL. Sử dụng sẽ gây lỗi khi import dữ liệu lớn hoặc trong pipeline ML. -
adl ❌
Sai:adl://là protocol cũ dành cho ADLS Gen1 (không còn khuyến nghị từ 2021). ADLS Gen2 yêu cầu protocol mới hơn để hỗ trợ tính năng nâng cao như POSIX ACL. Trong Azure ML hiện đại (2026), nó không tương thích, dẫn đến lỗi kết nối. -
abfss ✅
Đúng: Như đã giải thích ở trên, đây là protocol tối ưu và bắt buộc cho ADLS Gen2 trong Azure ML. Định dạng đầy đủ:abfss://<container>@<storage-account>.dfs.core.windows.net/<path>. Hỗ trợ SAS token hoặc managed identity cho bảo mật cao. -
wasbs ❌
Sai:wasbs://(hoặcwasb://không secure) dành cho Azure Blob Storage thông thường (không có hierarchical namespace). Không hỗ trợ đầy đủ ACL và file system semantics của ADLS Gen2. Trong Azure ML, dùng cho blob nhưng sẽ thất bại với ADLS Gen2, gây lỗi "path not found" hoặc quyền truy cập.
🧠 Lưu ý bổ sung: Luôn kiểm tra storage account có bật hierarchical namespace chưa (qua Azure Portal). Nếu dùng Azure ML Studio, URI sẽ tự động validate protocol này! 🚀
You plan to use the folder data asset for data wrangling during interactive development.
You need to access and load the folder data asset into a Pandas data frame.
Which method should you use to achieve this goal?
- A mltable.from_parquet_files()
- B mltable.from_delimited_files()
- C mltable.from_data_lake()
- D mltable.load()
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) workspace, nơi bạn quản lý một folder data asset (tài nguyên dữ liệu dạng thư mục) chứa file CSV. Folder này đã được đăng ký sẵn trong Azure ML. Mục tiêu là truy cập và load folder data asset này vào Pandas DataFrame để thực hiện data wrangling (xử lý dữ liệu) trong quá trình phát triển tương tác (interactive development), chẳng hạn như trong Jupyter Notebook hoặc Azure ML Studio.
🛠️ Bối cảnh kỹ thuật:
- Azure ML sử dụng MLTable (một định dạng dữ liệu tiêu chuẩn) để đọc dữ liệu từ các data asset một cách hiệu quả, hỗ trợ lazy loading và tích hợp trực tiếp với Pandas.
- Folder data asset chứa CSV là loại delimited files (file phân cách bằng dấu phẩy, tab, v.v.), không phải Parquet hay Data Lake.
- Phiên bản cập nhật mới nhất (Azure ML SDK v2 đến năm 2026): MLTable được ưu tiên cho data assets, với các hàm factory methods như
from_delimited_files()để tạo MLTable từ folder chứa CSV.
📘 Tài liệu tham khảo:
- Azure ML Documentation - Create MLTable from data assets
- MLTable schema reference (cập nhật 2024-2026).
✅ Đáp án đúng: mltable.from_delimited_files()
Lý do lựa chọn (dựa trên tài liệu Azure ML mới nhất):
Hàm này được thiết kế chính xác để tạo MLTable từ folder data asset chứa các file delimited như CSV, TSV (tab-separated values). Nó tự động phát hiện schema, hỗ trợ load lazy vào Pandas qua to_pandas_dataframe(), lý tưởng cho data wrangling tương tác. Ví dụ code:
import mltable
tbl = mltable.from_delimited_files(path=asset.path) # asset là folder data asset
df = tbl.to_pandas_dataframe()
✅ Ưu điểm: Tích hợp trực tiếp với data asset đã đăng ký, xử lý nhiều file CSV trong folder, hiệu suất cao với large datasets.
📋 Giải thích tất cả các phương án (đúng/sai)
-
❌ mltable.from_parquet_files()
Sai vì hàm này chỉ dành cho file Parquet (định dạng columnar binary), không hỗ trợ CSV (delimited text). Nếu dùng, sẽ báo lỗi schema hoặc không đọc được dữ liệu từ folder chứa CSV. -
✅ mltable.from_delimited_files()
Đúng (như đã giải thích ở trên). Đây là factory method chuẩn cho folder data asset chứa CSV/TSV, đảm bảo load đúng vào Pandas DataFrame. -
❌ mltable.from_data_lake()
Sai vì hàm này dùng để đọc từ Azure Data Lake Storage (ADLS Gen2) với hierarchical paths, không phù hợp cho folder data asset thông thường chứa CSV. Nó yêu cầu cấu hình data lake cụ thể và không tự động xử lý delimited files đơn giản. -
❌ mltable.load()
Sai vì hàm này chỉ load một MLTable đã tồn tại (từ file MLTable YAML/JSON), không tạo mới từ data asset. Bạn cần factory method trước để tạo MLTable từ folder, sau đó mới dùngload()nếu có file MLTable sẵn.
🧩 Lưu ý bổ sung: Trong Azure ML 2026, MLTable là best practice cho data assets, thay thế dần các cách load thủ công như pd.read_csv(). Nếu folder có mixed files, cần cấu hình MLTable YAML thủ công!