Ngân hàng đề — Microsoft Azure AI Engineer
Tìm thấy 267 câu.
You need to build an app that will compare documents for semantic similarity. The solution must meet the following requirements:
•Return numeric vectors that represent the tokens of each document.
•Minimize development effort.
Which Azure OpenAI model should you use?
- A GPT-3.5
- B GPT-4
- C embeddings
- D DALL-E
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi yêu cầu xây dựng một ứng dụng trên Azure subscription để so sánh các tài liệu dựa trên sự tương đồng ngữ nghĩa (semantic similarity). Các yêu cầu cụ thể bao gồm:
- Trả về các vector số (numeric vectors) đại diện cho các token của từng tài liệu.
- Giảm thiểu nỗ lực phát triển (minimize development effort).
Đây là bài toán điển hình về text embeddings, nơi cần chuyển đổi văn bản thành vector số để tính toán độ tương đồng (ví dụ: cosine similarity). Azure OpenAI cung cấp các mô hình chuyên biệt cho việc này, giúp tích hợp nhanh chóng qua API mà không cần huấn luyện từ đầu. Kiến thức cập nhật đến năm 2026: Azure OpenAI hỗ trợ các mô hình embeddings mới nhất như text-embedding-3-small và text-embedding-3-large (ra mắt 2024), với kích thước vector linh hoạt (lên đến 3072 chiều), hiệu suất cao hơn và chi phí thấp hơn so với ada-002.
✅ Đáp án đúng: embeddings
Lý do chọn đáp án này:
- Mô hình embeddings trong Azure OpenAI (như text-embedding-ada-002, text-embedding-3-small/large) được thiết kế chuyên biệt để tạo ra các vector số dense từ văn bản, đại diện cho ý nghĩa ngữ nghĩa của tokens/documents.
- Điều này cho phép dễ dàng so sánh semantic similarity giữa các tài liệu mà không cần code phức tạp, chỉ gọi API đơn giản (minimize development effort).
- Ví dụ: Gửi document → Nhận vector → Tính similarity. Hoàn hảo khớp yêu cầu! 🛠️
📋 Giải thích tất cả các phương án
-
GPT-3.5 ❌
Sai vì: Đây là mô hình generative (tạo văn bản), không chuyên tạo embeddings/vector số trực tiếp cho semantic similarity. Sử dụng nó sẽ yêu cầu prompt phức tạp để "hack" ra vector (không chính xác, tốn kém và không minimize effort). Azure OpenAI vẫn hỗ trợ GPT-3.5-turbo nhưng không phù hợp cho embeddings. -
GPT-4 ❌
Sai vì: Tương tự GPT-3.5, GPT-4 (bao gồm GPT-4o, GPT-4-turbo phiên bản 2026) là mô hình multimodal generative mạnh mẽ cho chat/completion, nhưng không output vector embeddings native. Phải dùng workaround như prompt engineering, dẫn đến effort cao hơn và kết quả kém ổn định so với embeddings chuyên dụng. -
embeddings ✅
Đúng vì: Như đã giải thích ở trên, đây là lựa chọn tối ưu nhất với API đơn giản, vector chất lượng cao (semantic-aware), hỗ trợ batch processing. Cập nhật 2026: Hỗ trợ dynamic dimension reduction để tiết kiệm lưu trữ. -
DALL-E ❌
Sai vì: DALL-E (DALL-E 3 phiên bản mới nhất 2026) là mô hình image generation từ text prompt, hoàn toàn không liên quan đến text embeddings hay vector từ documents. Sử dụng nó sẽ không tạo ra numeric vectors cho tokens văn bản.
📘 Tài liệu tham khảo
- Azure OpenAI Embeddings: Microsoft Docs - Embeddings Models (cập nhật 2024-2026).
- Quickstart Embeddings: Azure OpenAI Embeddings API.
- Semantic Similarity Example: Azure Samples - Text Embeddings.
Hy vọng phân tích này giúp bạn rõ ràng! 🚀 Nếu cần code sample, hãy hỏi thêm nhé! 😊
You collect IoT sensor data from 100 industrial machines for a year. Each machine has 50 different sensors that generate data at one-minute intervals. In total, you have 5,000 time series datasets.
You need to identify unusual values in each time series to help predict machinery failures.
Which Azure service should you use?
- A Anomaly Detector
- B Cognitive Search
- C Form Recognizer
- D Custom Vision
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 thực hiện bảo trì dự đoán (predictive maintenance) trong môi trường công nghiệp. Cụ thể:
- Bạn thu thập dữ liệu từ 100 máy móc công nghiệp, mỗi máy có 50 cảm biến IoT khác nhau.
- Dữ liệu được tạo ra mỗi phút một lần trong 1 năm, dẫn đến tổng cộng 5.000 chuỗi thời gian (time series datasets) (tính toán: 100 máy × 50 cảm biến = 5.000).
- Mục tiêu: Xác định các giá trị bất thường (unusual values) trong từng chuỗi thời gian để dự đoán hỏng hóc máy móc.
📊 Đây là bài toán phát hiện bất thường (anomaly detection) trên dữ liệu chuỗi thời gian lớn từ IoT, rất phổ biến trong Azure AI cho các ứng dụng công nghiệp. Câu hỏi yêu cầu chọn dịch vụ Azure phù hợp nhất để xử lý nhiệm vụ này.
(Lưu ý: Mặc dù người dùng đề cập "liên quan đến AWS", nhưng nội dung câu hỏi rõ ràng là về Azure services với từ khóa "Azure service". Tôi phân tích dựa trên Azure theo phiên bản mới nhất 2025-2026, nơi Anomaly Detector hỗ trợ đa biến số (multivariate) và tích hợp IoT Hub/Stream Analytics.)
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Anomaly Detector
🛠️ Lý do chi tiết:
Anomaly Detector là dịch vụ Azure AI chuyên biệt để phát hiện bất thường trong dữ liệu chuỗi thời gian (time series), bao gồm cả dữ liệu IoT lớn như trường hợp này (5.000 chuỗi, tần suất cao). Nó sử dụng thuật toán học máy không giám sát (unsupervised ML) để tự động xác định điểm bất thường (anomalies) như spike, dip hoặc pattern lạ, giúp dự đoán bảo trì máy móc.
- Hỗ trợ đa biến số (multivariate), phù hợp với 50 cảm biến/máy.
- Tích hợp dễ dàng với Azure IoT Hub, Time Series Insights.
- Cập nhật 2025-2026: Hỗ trợ real-time streaming và tùy chỉnh mô hình (custom models) cho độ chính xác cao hơn 95% trên dữ liệu công nghiệp.
🎯 Đây là lựa chọn tối ưu, tiết kiệm thời gian so với xây dựng custom ML trên Azure ML.
📘 Giải thích tất cả các phương án (đúng/sai)
Dưới đây là phân tích từng lựa chọn, giữ nguyên nội dung gốc bằng tiếng Anh. Mỗi phương án được đánh giá dựa trên chức năng cốt lõi của dịch vụ Azure (theo docs chính thức 2026):
-
Anomaly Detector
✅ Đúng: Như giải thích trên, dịch vụ này được thiết kế chính xác cho anomaly detection trên time series IoT. Nó xử lý hàng triệu điểm dữ liệu/phút, tự động scale và cung cấp API REST dễ tích hợp. Không cần training dữ liệu lớn, phù hợp predictive maintenance. -
Cognitive Search
❌ Sai: Cognitive Search (nay là Azure AI Search) dùng để tìm kiếm, indexing và phân tích văn bản/tài liệu với AI enrichment (như OCR, entity recognition). Không hỗ trợ time series hay anomaly detection; chỉ phù hợp dữ liệu không cấu trúc như log/text, không phải sensor data số liên tục. -
Form Recognizer
❌ Sai: Form Recognizer (nay là Document Analysis trong Azure AI) chuyên trích xuất dữ liệu từ form, hóa đơn, tài liệu scan bằng OCR và ML (prebuilt/custom models). Hoàn toàn không liên quan đến time series IoT hay phát hiện bất thường; chỉ xử lý hình ảnh/văn bản tĩnh. -
Custom Vision
❌ Sai: Custom Vision là dịch vụ computer vision để train mô hình nhận diện hình ảnh/video tùy chỉnh (object detection, classification). Không xử lý dữ liệu số time series từ sensor; chỉ phù hợp dữ liệu hình ảnh như camera giám sát máy móc, không phải giá trị số mỗi phút.
🔗 Tài liệu tham khảo (cập nhật mới nhất 2026)
- 📖 Azure Anomaly Detector Documentation – Hướng dẫn time series anomaly detection với ví dụ IoT.
- 📖 Azure AI Services Overview – So sánh các dịch vụ, xác nhận Anomaly Detector cho predictive maintenance.
- 🧪 Quickstart: Detect anomalies in time series data – Demo với dữ liệu sensor thực tế.
(Nguồn: Microsoft Docs, cập nhật Q1/2026 với hỗ trợ multivariate V2 API.)
You need to call the function to create a free Azure resource in the West US Azure region. The resource will be used to generate captions of images automatically.
Which code should you use?
- A create_resource("res1", "ComputerVision", "F0", "westus")
- B create_resource("res1", "CustomVision.Prediction", "F0", "westus")
- C create_resource("res1", "ComputerVision", "S0", "westus")
- D create_resource("res1", "CustomVision.Prediction", "S0", "westus")
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi yêu cầu chọn đoạn code đúng để gọi hàm create_resource nhằm tạo một tài nguyên Azure Cognitive Services miễn phí (free tier) tại vùng West US (westus). Tài nguyên này dùng để tự động tạo chú thích (captions) cho hình ảnh (image captioning).
Hàm được định nghĩa sử dụng Azure SDK for Python (cụ thể là CognitiveServicesAccount từ module quản lý tài nguyên Azure), với các tham số chính:
resource_name: Tên tài nguyên (ví dụ: "res1").kind: Loại dịch vụ Cognitive Services (ví dụ: ComputerVision).account_tier: Mức giá (sku), như "F0" cho free tier.location: Vùng Azure (ví dụ: "westus").
Yêu cầu chính:
- Phải là free tier (F0) vì chỉ định "free Azure resource".
- Phải hỗ trợ tự động generate captions cho images → Đây là tính năng của dịch vụ Computer Vision (có API như "Describe Image" hoặc "Caption" để tạo mô tả/chú thích hình ảnh).
- Vùng West US (mã "westus"), hỗ trợ đầy đủ các dịch vụ Cognitive Services.
Dựa trên tài liệu Azure mới nhất (cập nhật đến 2026, theo Azure AI Services v2024-10-01 và Cognitive Services Management SDK v9.x), dịch vụ phù hợp là Computer Vision với kind="ComputerVision" và sku="F0" (free tier giới hạn 20 transactions/phút, hỗ trợ image analysis bao gồm captioning).
📘 Tài liệu tham khảo:
- Azure Cognitive Services - Computer Vision kinds
- Pricing tiers for Cognitive Services
- Azure SDK for Python - CognitiveServicesManagementClient
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: create_resource("res1", "ComputerVision", "F0", "westus")
Lý do 🛠️:
kind="ComputerVision": Đây là dịch vụ chính xác hỗ trợ tự động generate captions cho hình ảnh qua API như "caption" hoặc "describe" (theo docs Azure AI Vision mới nhất 2024-2026).account_tier="F0": Free tier (F0) phù hợp với yêu cầu "free Azure resource", giới hạn nhưng đủ cho testing/demo captioning.location="westus": Vùng West US chuẩn, hỗ trợ đầy đủ Cognitive Services.- Toàn bộ khớp với hàm
create_resourcevà SDK chính thức.
📋 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), đánh dấu ✅ đúng hoặc ❌ sai, kèm lý do cụ thể dựa trên kiến thức Azure cập nhật:
-
create_resource("res1", "ComputerVision", "F0", "westus")
✅ Đúng 🏆: Như giải thích ở trên, đây là sự kết hợp hoàn hảo cho Computer Vision free tier ở West US, hỗ trợ image captioning chính xác. -
create_resource("res1", "CustomVision.Prediction", "F0", "westus")
❌ Sai 🚫:kind="CustomVision.Prediction"là dịch vụ Custom Vision Prediction (dùng để dự đoán với model custom-trained), không hỗ trợ tự động generate captions chuẩn như Computer Vision. Nó dành cho custom image classification/object detection, không phải captioning tự động. -
create_resource("res1", "ComputerVision", "S0", "westus")
❌ Sai 💸:account_tier="S0"là Standard tier (pay-as-you-go), không phải free (F0). Nó tính phí theo transaction, vi phạm yêu cầu "free Azure resource". -
create_resource("res1", "CustomVision.Prediction", "S0", "westus")
❌ Sai 🔒: Kết hợp sai cả kind và tier –CustomVision.Predictionkhông dùng cho captioning, và "S0" không free. Đây là lựa chọn tệ nhất, chỉ dùng cho custom prediction với phí.
Kết luận 🎯: Chỉ lựa chọn đầu tiên đáp ứng đầy đủ yêu cầu. Nếu triển khai thực tế, cần thêm authentication cho client (từ Azure Identity SDK) và resource group tồn tại!
You need to ensure that the users can cancel in-progress transactions. The solution must minimize development effort.
What should you add to the bot?
- A a language generator
- B a custom event
- C a dialog trigger
- D a conversation activity
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 phát triển chatbot bằng Microsoft Bot Framework Composer (một công cụ low-code/no-code để xây dựng bot conversational AI trên nền tảng Azure Bot Service).
✅ Yêu cầu chính: Xây dựng chatbot hỗ trợ người dùng mua hàng (purchase items), nhưng cần đảm bảo người dùng có thể hủy giao dịch đang diễn ra (cancel in-progress transactions) một cách dễ dàng.
✅ Ràng buộc: Giải pháp phải giảm thiểu công sức phát triển (minimize development effort), nghĩa là ưu tiên các tính năng built-in sẵn có trong Composer thay vì code custom phức tạp.
🛠️ Ngữ cảnh: Trong quá trình mua hàng, bot sẽ dẫn dắt user qua các dialog (cuộc trò chuyện theo luồng), và cần một cơ chế để user ngắt quãng bằng lệnh như "cancel" mà không làm gián đoạn toàn bộ flow.
✅ Đáp án đúng: a dialog trigger
Lý do chọn:
- Dialog trigger là tính năng built-in của Bot Framework Composer (phiên bản mới nhất hỗ trợ đến 2026 qua Bot Framework SDK v4.x và Composer 2.x), cho phép kích hoạt một dialog cụ thể (ví dụ: dialog "CancelTransaction") dựa trên intent hoặc utterance từ user như "hủy", "cancel", "stop".
- Nó được thiết kế chính xác để xử lý các hành động ngắt quãng (interrupts) như hủy giao dịch mà không cần code thêm, chỉ cần drag-and-drop trong giao diện Composer.
- Điều này minimize development effort tối đa vì tận dụng global interrupt handling sẵn có, tự động áp dụng cho mọi dialog đang chạy.
📘 Nguồn tham khảo: Microsoft Docs - Dialog triggers in Composer (cập nhật 2023-2026 qua Azure Bot updates).
📋 Giải thích tất cả các phương án
-
❌ a language generator
Sai vì: Language generator chỉ dùng để tạo văn bản phản hồi động (ví dụ: customize câu trả lời dựa trên template Language Generation). Nó không xử lý logic hủy giao dịch hay trigger action, mà chỉ tập trung vào output text. Sử dụng nó sẽ yêu cầu code thêm, không minimize effort. -
❌ a custom event
Sai vì: Custom event dùng để gửi sự kiện tùy chỉnh giữa các dialog hoặc components (như raise event "TransactionCancelled"). Tuy hiệu quả cho signaling, nhưng cần phát triển thêm handler và không phải giải pháp built-in đơn giản cho cancel; nó tăng effort so với dialog trigger. -
✅ a dialog trigger
Đúng vì: Như đã giải thích ở trên, đây là cách tối ưu nhất để detect và handle "cancel" intent globally, hỗ trợ end-session hoặc rollback transaction mà không code custom. Hoàn hảo cho minimize effort trong Composer. -
❌ a conversation activity
Sai vì: Conversation activity (như SendActivity) chỉ là hoạt động gửi message cơ bản trong bot flow. Nó không trigger logic hủy hay detect user input; dùng nó sẽ yêu cầu build toàn bộ cancel logic thủ công, vi phạm yêu cầu minimize development effort.
🛠️ Lời khuyên thực tế: Trong Composer, thêm dialog trigger với Event: "OnCancelDialog" hoặc custom intent "Cancel", rồi link đến dialog xử lý hủy (ví dụ: clear state, end transaction). Test trên Bot Framework Emulator để verify! 🚀
You have 500 prompt-completion pairs that will be used as training data to fine-tune the model.
You need to prepare the training data.
Which format should you use for the training data file?
- A CSV
- B XML
- C JSONL
- D TSV
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 chuẩn bị dữ liệu huấn luyện (training data) cho mô hình Azure OpenAI khi fine-tune (tinh chỉnh) mô hình. Cụ thể:
- Bạn đang sử dụng một mô hình Azure OpenAI (dựa trên các mô hình của OpenAI như GPT).
- Có 500 cặp prompt-completion (cặp dữ liệu đầu vào - đầu ra) làm dữ liệu huấn luyện.
- Nhiệm vụ là chọn định dạng file phù hợp cho dữ liệu này để fine-tune mô hình.
📘 Bối cảnh kỹ thuật: Trong Azure OpenAI, fine-tuning yêu cầu dữ liệu phải ở định dạng chuẩn để dịch vụ có thể xử lý hiệu quả. Đây là quy trình chuẩn theo tài liệu Microsoft, áp dụng cho các mô hình hỗ trợ fine-tuning như gpt-35-turbo hoặc babbage-002 (cập nhật đến 2026, với hỗ trợ mở rộng cho các mô hình mới hơn như GPT-4o mini). Dữ liệu phải sạch, không có lỗi định dạng, và mỗi dòng đại diện cho một ví dụ huấn luyện.
✅ Đáp án đúng: JSONL
Lý do lựa chọn:
- Azure OpenAI chỉ chấp nhận định dạng JSONL (JSON Lines) cho file dữ liệu huấn luyện fine-tuning với prompt-completion pairs.
- Mỗi dòng trong file JSONL là một JSON object độc lập dạng
{"prompt": "nội dung prompt", "completion": "nội dung completion"}. - Định dạng này đảm bảo tính linh hoạt, dễ parse, và phù hợp với quy trình upload dữ liệu qua Azure AI Studio hoặc CLI. Nếu dùng định dạng khác, hệ thống sẽ báo lỗi validation.
- 🛠️ Ví dụ file JSONL:
{"prompt": "What is Azure?", "completion": "Azure is Microsoft's cloud platform."} {"prompt": "Define AI.", "completion": "AI is Artificial Intelligence."}
📘 Nguồn tham khảo:
- Microsoft Docs: Fine-tune models - Azure OpenAI (cập nhật 2024-2026, xác nhận JSONL là bắt buộc).
- Azure AI Studio Fine-tuning Guide (thực hành trực tiếp).
🧩 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 nội dung gốc bằng tiếng Anh. Tôi đánh dấu ✅ đúng hoặc ❌ sai, kèm lý do cụ thể dựa trên quy định Azure OpenAI:
-
CSV ❌
Sai vì: Định dạng CSV (Comma-Separated Values) không được hỗ trợ cho fine-tuning Azure OpenAI. Nó chỉ phù hợp cho dữ liệu bảng đơn giản (như Excel), nhưng không đảm bảo cấu trúc JSON yêu cầu cho prompt-completion pairs. Hệ thống sẽ từ chối upload với lỗi "Invalid file format". CSV dễ bị lỗi khi có dấu phẩy trong nội dung text. -
XML ❌
Sai vì: XML là định dạng markup có cấu trúc phân cấp (tags như ...), nhưng Azure OpenAI không hỗ trợ vì phức tạp và không khớp với parser JSONL. Sử dụng XML sẽ dẫn đến thất bại validation ngay từ bước chuẩn bị dữ liệu. -
JSONL ✅
Đúng vì: Đây là định dạng chuẩn và bắt buộc cho prompt-completion fine-tuning. Mỗi dòng là một JSON object riêng biệt, dễ scale cho hàng nghìn ví dụ (như 500 pairs ở đây). Hỗ trợ đầy đủ validation tự động, và tương thích với cả completion models lẫn chat models (với format messages). -
TSV ❌
Sai vì: TSV (Tab-Separated Values) tương tự CSV nhưng dùng tab làm delimiter, vẫn không được hỗ trợ. Nó thiếu cấu trúc JSON cần thiết, dễ lỗi với dữ liệu text dài hoặc chứa tab, dẫn đến parse thất bại trong Azure OpenAI.
def read_file_url(computervision_client, url_file):
read_response = computervision_client.read(url_file, raw=True)
read_operation_location = read_response.headers["Operation-Location"]
operation_id = read_operation_location.split("/")[-1]
read_result = computervision_client.get_read_result(operation_id)
for page in read_result.analyze_result.read_results:
for line in page.lines:
print(line.text)
During testing, you discover that the call to the GetReadResultAsync method occurs before the read operation is complete.
You need to prevent the GetReadResultAsync method from proceeding until the read operation is complete.
Which two actions should you perform? Each correct answer presents part of the solution.
NOTE: Each correct selection is worth one point.
- A Remove the operation_id parameter.
- B Add code to verify the read_results.status value.
- C Add code to verify the status of the read_operation_location value.
- D Wrap the call to get_read_result within a loop that contains a delay.
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 về Azure Computer Vision API (không phải AWS như mô tả ban đầu, có thể là nhầm lẫn – đây là dịch vụ nhận diện ký tự quang học OCR của Microsoft Azure Cognitive Services). Phương thức read_file_url sử dụng thư viện client ComputerVisionClient để thực hiện OCR trên hình ảnh từ URL.
-
Quy trình hoạt động:
- Gọi
computervision_client.read(url_file, raw=True)→ Trả về response với headerOperation-Locationchứaoperation_id(vì đây là hoạt động bất đồng bộ - async operation). - Trích xuất
operation_idtừ URL. - Gọi
computervision_client.get_read_result(operation_id)để lấy kết quả. - Duyệt qua các trang và dòng text để in ra.
- Gọi
-
Vấn đề phát hiện khi test 📉: Lệnh
get_read_result(tương đươngGetReadResultAsynctrong SDK) được gọi ngay lập tức sauread, dẫn đến kết quả chưa sẵn sàng (status chưa "succeeded"). Read operation cần thời gian xử lý (có thể vài giây đến phút tùy hình ảnh lớn). -
Yêu cầu giải quyết 🛠️: Thực hiện 2 hành động để chờ read operation hoàn thành trước khi lấy kết quả. Đây là câu hỏi multiple select (mỗi đáp án đúng 1 điểm), dựa trên best practice polling cho async API trong Azure Computer Vision SDK (phiên bản mới nhất 2024-2026: azure-ai-vision-imageanalysis hoặc azure-cognitiveservices-vision-computervision).
✅ Đáp án đúng và lý do lựa chọn
Hai đáp án đúng là:
- Add code to verify the read_results.status value: Kiểm tra thuộc tính
statuscủaread_results(từget_read_result) để đảm bảo bằng"succeeded"trước khi xử lý text. - Wrap the call to get_read_result within a loop that contains a delay: Bọc lệnh
get_read_resulttrong vòng lặp polling với delay (ví dụ: time.sleep(1)) để liên tục kiểm tra status cho đến khi hoàn thành.
Lý do chọn 🔍: Async Read API yêu cầu polling pattern tiêu chuẩn (theo docs Azure 2026): Gọi get_read_result lặp lại với delay, kiểm tra status ("notStarted" → "running" → "succeeded" hoặc "failed"). Không chờ sẽ nhận kết quả rỗng hoặc lỗi.
📋 Giải thích tất cả các phương án (đúng/sai)
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. Mỗi phương án được đánh giá dựa trên SDK Azure Computer Vision v5.x+ (2024-2026):
-
❌ [SAI] Remove the operation_id parameter.
Lý do sai:operation_idbắt buộc để xác định operation cụ thể khi pollingget_read_result. Xóa nó sẽ làm API không biết gọi kết quả của operation nào, dẫn đến lỗiInvalidArgumenthoặcResourceNotFound. Không giải quyết vấn đề async mà còn phá hủy code. -
✅ [ĐÚNG] Add code to verify the read_results.status value.
Lý do đúng: Sauget_read_result, kiểm traread_result.status(giá trị: "notStarted", "running", "succeeded", "failed"). Chỉ xử lý text khistatus == "succeeded". Đây là bước core của polling, tránh lấy kết quả premature. -
❌ [SAI] Add code to verify the status of the read_operation_location value.
Lý do sai:read_operation_locationchỉ là URL string chứaoperation_id, không có thuộc tính status. Status nằm ở response củaget_read_result. Kiểm tra URL sẽ vô nghĩa và gây lỗi code (AttributeError). -
✅ [ĐÚNG] Wrap the call to get_read_result within a loop that contains a delay.
Lý do đúng: Tạo while loop (ví dụ:while read_result.status != "succeeded": time.sleep(1); read_result = get_read_result()). Delay (1-5 giây) tránh gọi API quá nhanh (rate limit), đảm bảo chờ async hoàn thành. Best practice từ Azure SDK samples.
📘 Tài liệu tham khảo (cập nhật 2026)
- Azure Docs chính thức: Read API (OCR) - Asynchronous polling – Mẫu code Python polling với status check.
- SDK GitHub: azure-ai-vision-imageanalysis/samples – Ví dụ v4.x+ với loop + sleep.
- Quickstart: Computer Vision Python SDK – Xác nhận pattern "poll until succeeded".
Hy vọng phân tích này giúp bạn nắm vững async handling trong Azure AI! 🚀 Nếu cần code mẫu đầy đủ, hãy hỏi thêm.
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 build a language model by using a Language Understanding service. The language model is used to search for information on a contact list by using an intent named FindContact.
A conversational expert provides you with the following list of phrases to use for training.
✑ Find contacts in London.
✑ Who do I know in Seattle?
✑ Search for contacts in Ukraine.
You need to implement the phrase list in Language Understanding.
Solution: You create a new intent for location.
Does this 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âu hỏi thuộc dạng series (chuỗi câu hỏi có cùng scenario), nơi mỗi câu đưa ra một giải pháp độc lập để kiểm tra xem nó có đạt mục tiêu hay không. Bạn không thể quay lại sau khi trả lời.
Scenario chính:
- Bạn xây dựng một ngôn ngữ model bằng Language Understanding service (LUIS - dịch vụ của Azure AI).
- Model dùng để tìm kiếm thông tin trong contact list qua intent tên FindContact.
- Một chuyên gia conversational cung cấp danh sách phrases sau để training:
- "Find contacts in London."
- "Who do I know in Seattle?"
- "Search for contacts in Ukraine."
- Mục tiêu (goal): Implement (triển khai) phrase list này vào LUIS một cách đúng đắn.
Solution được đề xuất:
Tạo một intent mới dành cho location (new intent for location).
Câu hỏi: Giải pháp này có đạt mục tiêu không? (Does this meet the goal?)
✅ Đáp án đúng: No
Lý do lựa chọn (bằng kiến thức LUIS mới nhất - Azure AI Language, cập nhật đến 2026):
Trong LUIS (nay tích hợp vào Conversational Language Understanding - CLU), các phrases trên là utterances mẫu cho intent FindContact, tập trung vào việc tìm contacts theo location (như London, Seattle, Ukraine). Mục tiêu là implement phrase list để hỗ trợ nhận diện tốt hơn các biến thể location mà không cần tạo intent riêng. Tạo intent mới cho location là sai lầm vì:
- Location là entity (thực thể), không phải intent độc lập. Intent FindContact đã bao quát hành động tìm kiếm, location chỉ là tham số.
- Cách đúng: Sử dụng Phrase List (danh sách cụm từ) để boost nhận diện các location phổ biến, hoặc prebuilt entity như
geography/location. Không cần intent mới vì sẽ làm phức tạp model, tăng tỷ lệ confusion giữa intents. - Theo docs Azure AI 2026: Phrase Lists dùng để train model nhận diện từ/cụm từ tương tự mà không cần thêm hàng trăm utterances.
🛠️ Giải thích tất cả các phương án (giữ nguyên text gốc):
-
❌ [SAI] Yes
Phương án này sai vì khẳng định solution đạt goal là không chính xác. Tạo intent mới cho location không implement phrase list đúng cách; nó làm phân tán intent FindContact, vi phạm nguyên tắc "single intent per action" trong LUIS. Model sẽ khó train vì confusion (ví dụ: "Find contacts in London" có thể match intent location thay vì FindContact). Không phù hợp best practice LUIS. -
✅ [ĐÚNG] No
Phương án này đúng vì solution không meet the goal. LUIS khuyến nghị dùng Phrase List feature (trong portal azure.ai/services) để liệt kê locations (London, Seattle, Ukraine...) làm "boost words", giúp intent FindContact nhận diện biến thể tốt hơn (e.g., "contacts in Paris"). Hoặc extract entitylocationbằng machine-learned entities hoặc prebuilt entities. Tạo intent mới là over-engineering và sai mục tiêu.
📘 Tài liệu tham khảo (cập nhật mới nhất 2026):
- Azure AI Language - Phrase lists (thay thế LUIS v2/v3).
- LUIS best practices: Entities & Phrase Lists.
- Migration LUIS to CLU - Phrase Lists vẫn hỗ trợ tương tự đến 2026.
Hy vọng phân tích này giúp bạn nắm vững LUIS! 🚀 Nếu cần thêm ví dụ code, hỏi nhé! 😊
You have the files shown in the following table.
You need to prepare training data for the model by using the OpenAI CLI data preparation tool.
Which files can you upload to the tool?
- A File1.tsv only
- B File2.xml only
- C File3.pdf only
- D File4.xlsx only
- E File1.tsv and File4.xslx only
- F File1.tsv, File2.xml and File4.xslx only
- G File1.tsv, File2.xml, File3.pdf and File4.xslx
Xem giải thích
🧩 Phân tích chi tiết câu hỏi
📖 Nội dung câu hỏi:
Câu hỏi xoay quanh việc chuẩn bị dữ liệu huấn luyện (training data) cho một mô hình Azure OpenAI tùy chỉnh (custom model) bằng công cụ OpenAI CLI data preparation tool (cụ thể là lệnh openai-tools prep-data). Bạn có 4 file dữ liệu với thông tin chi tiết từ bảng hình ảnh:
- File1.tsv: 80 MB (định dạng TSV - Tab-Separated Values).
- File2.xml: 25 MB (định dạng XML).
- File3.pdf: 50 MB (định dạng PDF).
- File4.xlsx: 200 MB (định dạng Excel).
🛠️ Mục tiêu: Xác định những file có thể upload trực tiếp vào tool để chuẩn bị dữ liệu. Tool này dùng để chuyển đổi dữ liệu thô thành định dạng JSONL chuẩn cho fine-tuning trên Azure OpenAI. Theo tài liệu mới nhất (cập nhật đến 2026), tool chỉ hỗ trợ định dạng đầu vào cụ thể và giới hạn kích thước file < 100 MB/file. Dữ liệu phải có cấu trúc cột "prompt" và "completion" (hoặc tương đương).
✅ Đáp án đúng: File1.tsv only
🔍 Lý do chọn đáp án đúng (chi tiết):
- Tool
openai-tools prep-datahỗ trợ định dạng TSV (.tsv) với header bắt buộc là "prompt" và "completion". File1.tsv (80 MB) đúng định dạng và dưới 100 MB → có thể upload. - Các file khác: File2.xml (không hỗ trợ XML), File3.pdf (không hỗ trợ PDF), File4.xlsx (dù hỗ trợ XLSX nhưng 200 MB > 100 MB → không được).
- Đây là quy định nghiêm ngặt từ Azure OpenAI fine-tuning CLI (phiên bản mới nhất 2026 không thay đổi giới hạn này để tránh lỗi xử lý).
📘 Tài liệu tham khảo:
- Microsoft Learn: Fine-tune models with Azure OpenAI CLI ✅ (Giới hạn file < 100 MB, hỗ trợ TSV/XLSX).
- OpenAI Platform: Preparing training data 🛠️ (Chi tiết định dạng input).
❌ Phân tích tất cả các phương án (đúng/sai)
-
✅ File1.tsv only
Đúng! 🟢 File1.tsv (80 MB) thỏa mãn đầy đủ: định dạng TSV được hỗ trợ trực tiếp, kích thước < 100 MB. Tool sẽ đọc cột "prompt/completion" và convert sang JSONL. Các file khác không đủ điều kiện. -
❌ File2.xml only
Sai! ❌ Định dạng XML không được hỗ trợ bởi OpenAI CLI prep-data tool. Tool chỉ chấp nhận TSV, XLSX hoặc JSONL đã chuẩn bị sẵn. XML cần parse thủ công trước (không dùng tool này). -
❌ File3.pdf only
Sai! ❌ PDF là định dạng văn bản nhị phân, không hỗ trợ trực tiếp. Tool không extract text từ PDF; cần dùng công cụ khác như Azure Document Intelligence trước khi convert sang TSV/XLSX. -
❌ File4.xlsx only
Sai! ❌ Dù XLSX được hỗ trợ (với sheet chứa cột "prompt/completion"), nhưng kích thước 200 MB vượt giới hạn 100 MB/file. Tool sẽ báo lỗi upload/processing. -
❌ File1.tsv and File4.xslx only
Sai! ❌ File1 OK, nhưng File4 (xlsx, lưu ý chính tả "xslx" là lỗi đánh máy của xlsx) quá lớn (200 MB > 100 MB). Không thể kết hợp vì File4 bị reject. -
❌ File1.tsv, File2.xml and File4.xslx only
Sai! ❌ Kết hợp nhiều file sai: File2 (XML không hỗ trợ), File4 (quá kích thước). Chỉ File1 hợp lệ, tool xử lý từng file riêng lẻ với giới hạn nghiêm ngặt. -
❌ File1.tsv, File2.xml, File3.pdf and File4.xslx
Sai toàn bộ! ❌ Tất cả trừ File1 đều sai (XML/PDF không hỗ trợ, XLSX quá lớn). Tool yêu cầu mọi file input phải đạt chuẩn định dạng VÀ kích thước.
💡 Lưu ý thực hành: Để xử lý File4.xlsx lớn, hãy chia nhỏ thành các file < 100 MB hoặc dùng Azure CLI batch processing. Luôn kiểm tra log tool để debug! 🚀
You need to ensure that the model supports an additional contract format. The solution must minimize development effort.
What should you do?
- A Lower the confidence score threshold of App1.
- B Create a new training set and add the additional contract format to the new training set. Create and train a new custom model.
- C Add the additional contract format to the existing training set. Retrain the model.
- D Lower the accuracy threshold of App1.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi xoay quanh việc mở rộng khả năng của một mô hình tùy chỉnh Azure AI Document Intelligence (trước đây gọi là Form Recognizer) được sử dụng trong ứng dụng App1 để nhận diện các tài liệu hợp đồng. 🛠️ Cụ thể:
- Ứng dụng App1 đang sử dụng một mô hình tùy chỉnh đã được huấn luyện để nhận diện tài liệu hợp đồng hiện tại.
- Yêu cầu: Đảm bảo mô hình hỗ trợ thêm một định dạng hợp đồng mới (additional contract format).
- Ràng buộc quan trọng: Giải pháp phải tối thiểu hóa nỗ lực phát triển (minimize development effort), nghĩa là tránh các thay đổi lớn như tạo mô hình mới từ đầu, tái thiết kế ứng dụng hoặc các bước phức tạp.
Mục tiêu là chọn phương án đơn giản nhất để cập nhật mô hình mà không làm gián đoạn ứng dụng hiện tại. 📘 (Dựa trên tài liệu chính thức Azure AI Document Intelligence phiên bản mới nhất đến 2026: Azure AI Document Intelligence - Custom models).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Add the additional contract format to the existing training set. Retrain the model.
Lý do:
- Phương án này tối ưu hóa nỗ lực phát triển nhất vì chỉ cần bổ sung dữ liệu định dạng hợp đồng mới vào bộ huấn luyện hiện có (existing training set), sau đó retrain mô hình (hỗ trợ trực tiếp qua Azure portal hoặc SDK).
- Azure AI Document Intelligence cho phép retrain incremental mà không cần tạo mô hình mới, giữ nguyên ID mô hình và tích hợp liền mạch với App1. Thời gian retrain nhanh (thường vài phút đến giờ), và mô hình cải thiện mà không thay đổi code ứng dụng. 🏆
- Điều này phù hợp với best practice của Azure để mở rộng mô hình tùy chỉnh (custom model) mà minimize effort. (Nguồn: Retrain custom models).
📋 Giải thích tất cả các phương án (đúng và sai)
-
❌ Lower the confidence score threshold of App1.
Sai vì: Giảm ngưỡng confidence score chỉ điều chỉnh độ nhạy của mô hình với dữ liệu đã huấn luyện, không giúp mô hình học và nhận diện định dạng hợp đồng mới (chưa từng thấy). Điều này có thể tăng false positive cho dữ liệu cũ, làm giảm chất lượng tổng thể và không minimize effort vì vẫn cần chỉnh code App1. Không giải quyết gốc rễ vấn đề thiếu dữ liệu mới. -
❌ Create a new training set and add the additional contract format to the new training set. Create and train a new custom model.
Sai vì: Tạo bộ huấn luyện mới hoàn toàn và mô hình mới đòi hỏi nỗ lực lớn: quản lý nhiều mô hình, cập nhật endpoint/ID trong App1, deploy lại, và test toàn bộ. Điều này vi phạm yêu cầu minimize development effort, vì Azure hỗ trợ retrain trực tiếp trên existing set thay vì tạo mới. -
✅ Add the additional contract format to the existing training set. Retrain the model.
Đúng vì: Như đã giải thích ở trên, đây là cách hiệu quả nhất, tận dụng cơ chế retrain native của Azure AI Document Intelligence. Thêm dữ liệu mới vào existing set rồi retrain giúp mô hình học nhanh định dạng mới mà giữ nguyên tích hợp. 🎯 (Nguồn: Azure AI Studio - Retraining guide). -
❌ Lower the accuracy threshold of App1.
Sai vì: Không có khái niệm "accuracy threshold" trực tiếp trong Azure AI Document Intelligence (khác với confidence score). Giảm ngưỡng accuracy (nếu tồn tại ở layer app) chỉ ảnh hưởng dự đoán hiện tại, không train mô hình học định dạng mới. Đây là cách chữa cháy tạm thời, tăng lỗi và không minimize effort vì cần chỉnh code App1 vô ích.
🛡️ Lời khuyên từ Azure AI Engineer
Để triển khai thực tế, sử dụng Azure AI Studio hoặc REST API để upload thêm tài liệu mẫu định dạng mới (ít nhất 5-10 mẫu), retrain, và monitor metrics như confidence/accuracy sau retrain. Nếu cần scale, tích hợp với Azure Functions cho automation. 🚀 (Cập nhật 2026: Hỗ trợ auto-retrain với continuous learning beta).
You need to ensure that User1 can upload datasets to OpenAI1 and finetune the existing models. The solution must follow the principle of least privilege.
Which role should you assign to User1?
- A Cognitive Services OpenAI Contributor
- B Cognitive Services Contributor
- C Cognitive Services OpenAI User
- D Contributor
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 quản lý quyền truy cập (RBAC - Role-Based Access Control) trong Azure OpenAI service (phiên bản mới nhất đến năm 2026). Cụ thể:
- Bạn có một Azure subscription chứa Azure OpenAI resource tên OpenAI1 và một người dùng tên User1.
- Yêu cầu: Đảm bảo User1 có thể upload datasets (tải lên tập dữ liệu) vào OpenAI1 và finetune các mô hình hiện có (tinh chỉnh mô hình AI như GPT).
- Nguyên tắc least privilege (quyền hạn tối thiểu): Chỉ cấp quyền cần thiết, tránh quyền rộng hơn mức yêu cầu để giảm rủi ro bảo mật. 🛡️
Mục tiêu là chọn role phù hợp nhất để gán cho User1 tại scope của resource OpenAI1, dựa trên các built-in roles của Azure AI Services.
📘 Tài liệu tham khảo chính (cập nhật mới nhất 2026):
✅ Đáp án đúng: Cognitive Services OpenAI Contributor
Lý do lựa chọn (theo nguyên tắc least privilege):
🛠️ Role này cấp quyền chính xác để quản lý Azure OpenAI resources, bao gồm:
- Upload datasets (tạo và quản lý file/dataset cho finetuning).
- Finetune models (khởi tạo và quản lý job finetuning trên các mô hình như GPT-4o-mini hoặc mới hơn).
- Không cấp quyền rộng cho các Cognitive Services khác, chỉ giới hạn ở OpenAI. Đây là role tối thiểu cần thiết, tránh rủi ro từ quyền cao hơn.
✅ Đáp ứng đầy đủ yêu cầu mà không thừa thãi!
📋 Giải thích tất cả các phương án (đúng/sai)
-
Cognitive Services OpenAI Contributor
✅ Đúng. Role này cho phép full management của Azure OpenAI resource, bao gồm tạo deployments, upload datasets, finetune models, và manage fine-tuned models. Hoàn hảo cho least privilege vì chỉ tập trung vào OpenAI, không ảnh hưởng đến các dịch vụ AI khác. (Actions: Microsoft.CognitiveServicesOpenAI/*). -
Cognitive Services Contributor
❌ Sai. Role này cấp quyền quản lý toàn bộ Cognitive Services (như Vision, Speech, v.v.), không chỉ OpenAI. Vi phạm least privilege vì User1 có thể can thiệp vào các resource khác không liên quan, tăng rủi ro bảo mật. (Actions: Microsoft.CognitiveServices/*). -
Cognitive Services OpenAI User
❌ Sai. Role này chỉ cho phép sử dụng (inference/completions) trên deployments và fine-tuned models đã tồn tại, không hỗ trợ upload datasets hoặc finetune. User1 sẽ không thực hiện được nhiệm vụ yêu cầu. (Actions: Microsoft.CognitiveServicesOpenAI/*/action như completions, không có create/finetune). -
Contributor
❌ Sai. Đây là RBAC built-in role rộng nhất, cho phép quản lý toàn bộ subscription/resource group (tạo/delete resources, manage access). Vi phạm nghiêm trọng least privilege, User1 có thể thay đổi mọi thứ trong subscription, không an toàn. (Actions: /).
🧩 Tóm tắt: Chọn role cụ thể cho OpenAI để đảm bảo an toàn và hiệu quả! Nếu cần triển khai, dùng Azure Portal > Access control (IAM) > Add role assignment. 🚀