Câu hỏi: AID301c Thiết kế sản phẩm TTNT – Bộ ôn tập thi lại số 1
50 câu trắc nghiệm kèm lời giải của môn AID301c - Thiết kế sản phẩm TTNT, xếp đúng thứ tự trong đề.
Danh sách câu hỏi
20/50 câuCòn 30
ACluster IP
BNode Port
CLoad Balancer
DInternal Service
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Load Balancer". Trong Kubernetes, Service là đối tượng cấp một địa chỉ ổn định cho nhóm pod. Kiểu LoadBalancer yêu cầu nhà cung cấp hạ tầng cấp một bộ cân bằng tải bên ngoài có địa chỉ công khai, chia lưu lượng vào các pod phía sau, nên đây là cách chuẩn để đưa ứng dụng ra cho người dùng bên ngoài. "Cluster IP" là kiểu mặc định, chỉ cấp địa chỉ nội bộ, chỉ truy cập được từ bên trong cụm. "Node Port" mở một cổng cố định trên mọi node và về kỹ thuật có thể truy cập từ ngoài qua địa chỉ node, nhưng đó là cách thô, hay dùng để thử nghiệm, không có cân bằng tải bên ngoài và phải tự lo địa chỉ node, nên không phải đáp án tốt nhất cho việc phục vụ người dùng bên ngoài. "Internal Service" như chính tên gọi chỉ phục vụ giao tiếp nội bộ giữa các thành phần, ngược với yêu cầu đưa ra ngoài.
ATo increase the size of the dataset
BTo track changes and identify performance issues
CTo improve the user interface
DTo reduce computational costs
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "To track changes and identify performance issues". Trong giám sát mô hình đang chạy thật, logging (ghi nhật ký) lưu lại đầu vào, dự đoán, thời gian phản hồi, phiên bản mô hình và về sau là nhãn thực tế, nhờ đó đội vận hành theo dõi được thay đổi theo thời gian, phát hiện data drift (dữ liệu trôi khỏi phân phối lúc huấn luyện), độ chính xác giảm hay lỗi hệ thống và truy lại nguyên nhân. "To increase the size of the dataset" không phải mục đích; dữ liệu ghi lại có thể giúp huấn luyện lại sau này nhưng đó là hệ quả phụ. "To improve the user interface" không liên quan, vì nhật ký phục vụ người vận hành chứ không thay đổi giao diện. "To reduce computational costs" sai, vì ghi nhật ký còn tốn thêm tài nguyên lưu trữ và xử lý.
AJSON
BXML
CYAML
DCSV
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "YAML". Kubernetes mô tả tài nguyên như Deployment, Service, Pod bằng tệp manifest khai báo, thường viết bằng YAML (định dạng dữ liệu dễ đọc, phân cấp bằng thụt lề), với các trường apiVersion, kind, metadata, spec, rồi áp dụng bằng lệnh kubectl apply. "JSON" thực ra cũng được API của Kubernetes chấp nhận, vì YAML là siêu tập của JSON, nhưng không phải định dạng quen dùng để viết tệp triển khai. "XML" không được Kubernetes dùng cho manifest. "CSV" là định dạng bảng phẳng, không biểu diễn được cấu trúc lồng nhau như danh sách container, cổng, biến môi trường mà một tài nguyên cần.
4What is the role of Kube DNS in Kubernetes?4 lựa chọn
ATo manage the API server
BTo provide service discovery for pods
CTo monitor application health
DTo create YAML manifests
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "To provide service discovery for pods". Kube DNS (nay thường được thay bằng CoreDNS) là thành phần bổ trợ của cụm Kubernetes, tự tạo bản ghi DNS cho mỗi Service, nhờ đó một pod có thể gọi dịch vụ khác qua tên như my-service.my-namespace.svc.cluster.local thay vì nhớ địa chỉ IP vốn đổi mỗi khi pod được tạo lại; đó chính là service discovery (khám phá dịch vụ). "To manage the API server" sai vì kube-apiserver là thành phần lõi của control plane, còn DNS chỉ là một dịch vụ chạy bên trong cụm và dựa vào API server để theo dõi Service. "To monitor application health" sai vì sức khoẻ ứng dụng được kiểm qua liveness probe, readiness probe và các công cụ giám sát như Prometheus. "To create YAML manifests" sai vì manifest YAML do người vận hành viết hoặc do công cụ như Helm sinh ra, rồi gửi lên cụm bằng kubectl.
ATensorFlow
BAdversarial Robustness Toolbox
CScikit-learn
DKeras
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Adversarial Robustness Toolbox". Adversarial Robustness Toolbox (ART) là thư viện mã nguồn mở do IBM khởi xướng, chuyên đánh giá và tăng độ bền vững của mô hình học máy trước tấn công đối kháng (adversarial attack), tức các đầu vào bị chỉnh rất nhỏ để đánh lừa mô hình; nó cung cấp sẵn các phép tấn công, phòng thủ và thước đo độ bền. Phương án "TensorFlow" là framework để xây dựng và huấn luyện mô hình, không phải công cụ chuyên kiểm tra độ bền, dù ART có thể làm việc với mô hình TensorFlow. Phương án "Scikit-learn" là thư viện học máy cổ điển cho phân loại, hồi quy, phân cụm, không có chức năng đánh giá tấn công đối kháng. Phương án "Keras" là API bậc cao để định nghĩa mạng nơ-ron, mục đích là xây mô hình chứ không kiểm chứng độ bền của mô hình.
ARecommender system
BA/B Testing
CDimensionality Reduction
DRegression Analysis
EUnsupervised Learning
FClassification Analysis
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Recommender system". Trong tình huống AAVAIL, nhu cầu ban quản lý mô tả bằng ngôn ngữ kinh doanh được diễn đạt lại thành bài toán gợi ý: dựa vào hành vi và sở thích của người dùng để đưa ra nội dung hay sản phẩm phù hợp với từng người, đó là recommender system (hệ gợi ý). "A/B Testing" là phương pháp thí nghiệm để so hai phương án, dùng để đánh giá giải pháp chứ không mô tả bản chất bài toán. "Dimensionality Reduction" là kỹ thuật giảm số chiều dữ liệu, chỉ là bước hỗ trợ. "Regression Analysis" dự đoán một giá trị liên tục như doanh thu, không phải điều dự án cần. "Unsupervised Learning" là cả một họ phương pháp quá rộng để gọi tên dự án. "Classification Analysis" gán nhãn rời rạc cho từng đối tượng, hợp với bài toán như dự đoán khách rời bỏ, nhưng không phản ánh mục tiêu gợi ý cho người dùng.
7What is a poisoning attack?4 lựa chọn
AAn attack that occurs during model deployment
BAn attack that injects malicious data into the training set
CAn attack that modifies the model's architecture
DAn attack that occurs only at test time
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "An attack that injects malicious data into the training set". Poisoning attack (tấn công đầu độc dữ liệu) là kiểu tấn công nhắm vào giai đoạn huấn luyện: kẻ tấn công chèn hoặc sửa một phần dữ liệu huấn luyện, ví dụ gắn nhãn sai hay cài mẫu có dấu hiệu kích hoạt, để mô hình học ra hành vi lệch theo ý họ. Phương án "An attack that occurs during model deployment" sai vì lúc triển khai mô hình đã học xong, tấn công ở đây thường là đánh lừa đầu vào chứ không đầu độc dữ liệu học. Phương án "An attack that modifies the model's architecture" mô tả việc can thiệp trực tiếp vào cấu trúc mô hình, đó là xâm nhập hệ thống chứ không phải đầu độc dữ liệu. Phương án "An attack that occurs only at test time" là định nghĩa của evasion attack (tấn công né tránh), dùng mẫu đối kháng (adversarial example) để đánh lừa mô hình đã huấn luyện, trái ngược hẳn với poisoning vốn xảy ra trước khi mô hình được dùng.
AAutomatic CSS-HTML Generation, Hyerparameter Tuning, Performance Metrics
BCompliance, Cross Regional Availabilty, Automatic Backup
CDrift Monitoring, Fairness, Explainability
DGeneral Artificial Intelligence, Time Travel, World Domination
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Drift Monitoring, Fairness, Explainability". IBM Watson OpenScale là nền tảng giám sát mô hình AI sau khi triển khai, với ba năng lực cốt lõi: theo dõi drift (độ trôi, khi dữ liệu hay độ chính xác thay đổi so với lúc huấn luyện), kiểm tra fairness (tính công bằng, phát hiện thiên lệch với các nhóm như giới tính hay độ tuổi) và explainability (khả năng giải thích từng dự đoán). "Automatic CSS-HTML Generation, Hyerparameter Tuning, Performance Metrics" sai vì sinh mã giao diện web không liên quan, còn tinh chỉnh siêu tham số là việc của giai đoạn huấn luyện chứ không phải giám sát. "Compliance, Cross Regional Availabilty, Automatic Backup" nghe giống tính năng vận hành hạ tầng đám mây như sao lưu hay sẵn sàng đa vùng, không phải chức năng giám sát mô hình. "General Artificial Intelligence, Time Travel, World Domination" là các mục đùa, không có sản phẩm nào cung cấp.
AThe deployment is deleted
BA new pod is created to replace it
CThe application stops running
DThe kubelet is notified
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "A new pod is created to replace it". Deployment trong Kubernetes khai báo trạng thái mong muốn, chẳng hạn ba bản sao của một ứng dụng. Nó quản lý một ReplicaSet, và bộ điều khiển này liên tục so số pod đang chạy với số mong muốn; khi một pod hỏng hay bị xóa, ReplicaSet tạo pod mới thay thế, cơ chế này gọi là self-healing (tự phục hồi). "The deployment is deleted" sai, vì sự cố của một pod không xóa đối tượng Deployment. "The application stops running" sai, vì các bản sao khác vẫn phục vụ và pod thay thế sẽ được bổ sung. "The kubelet is notified" không phải hệ quả đặc trưng: kubelet là tác tử trên từng node, trực tiếp chạy và khởi động lại container, chứ không phải nơi nhận thông báo và quyết định thay pod.
10What is the purpose of kubectl in kubernetes?4 lựa chọn
AAutomatic logging of requests and responses
BA tool that makes it easy to run a single-node cluster locally
CThe primary node agent on each node, responsible for the processes running on that machine
DThe CLI for communicating with the kubernetes cluster
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "The CLI for communicating with the kubernetes cluster". kubectl là công cụ dòng lệnh (CLI) gửi yêu cầu tới API server của cụm Kubernetes để tạo, xem, sửa, xoá tài nguyên như pod, deployment, service, ví dụ kubectl apply -f deployment.yaml hay kubectl get pods. Phương án "Automatic logging of requests and responses" sai vì việc ghi nhật ký tự động thuộc về ứng dụng hoặc hệ thống logging của cụm; kubectl chỉ cho phép đọc log bằng kubectl logs chứ không tự ghi lại các yêu cầu. Phương án "A tool that makes it easy to run a single-node cluster locally" mô tả minikube, công cụ dựng cụm một nút trên máy cá nhân để thử nghiệm. Phương án "The primary node agent on each node, responsible for the processes running on that machine" mô tả kubelet, tác tử chạy trên mỗi nút để đảm bảo các container của pod được khởi chạy và giữ đúng trạng thái.
AData collection
BIteration
CData visualization
DData storage
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Iteration". Biến đổi dữ liệu (data transformation) như chuẩn hoá, mã hoá biến phân loại, giảm chiều hay xử lý giá trị thiếu hiếm khi đúng ngay lần đầu; người làm phải thử, đánh giá ảnh hưởng tới mô hình rồi điều chỉnh, nên lặp lại (iteration) là đặc điểm cốt lõi, và pipeline giúp việc thử lại diễn ra nhất quán. "Data collection" là bước thu thập dữ liệu diễn ra trước, không phải đặc điểm của việc áp dụng biến đổi. "Data visualization" hỗ trợ khám phá và kiểm tra kết quả, nhưng bản thân nó không phải cách áp dụng biến đổi. "Data storage" nói về nơi lưu trữ dữ liệu như cơ sở dữ liệu hay tệp, không liên quan trực tiếp tới quá trình biến đổi.
AA method of visualizing data in three dimensions.
BA technique for organizing documents based on their length.
CA way of representing text data by counting the frequency of words.
DA model that predicts the next word in a sentence.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "A way of representing text data by counting the frequency of words.". Bag-of-words (túi từ) biểu diễn mỗi văn bản thành một vectơ đếm số lần mỗi từ trong bộ từ vựng xuất hiện, bỏ qua thứ tự và ngữ pháp; ma trận văn bản và từ này là đầu vào cho các mô hình chủ đề như LDA hay NMF, vốn tìm các nhóm từ thường đi cùng nhau. "A method of visualizing data in three dimensions." nhầm với trực quan hoá, trong khi túi từ là cách mã hoá dữ liệu văn bản. "A technique for organizing documents based on their length." sai vì độ dài không phải nội dung của biểu diễn, dù tổng số đếm có phản ánh độ dài. "A model that predicts the next word in a sentence." mô tả mô hình ngôn ngữ, vốn cần đúng thứ tự từ, trong khi túi từ cố ý bỏ qua thứ tự.
ATransformer, Estimator, Predictor
BTransformer, Estimator
CEstimator, Predictor
DTransformer
ETransformer, Predictor
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Transformer, Estimator". Trong scikit-learn, mọi đối tượng học từ dữ liệu bằng fit đều theo giao diện Estimator (bộ ước lượng), còn giao diện Transformer (bộ biến đổi) bổ sung transform để biến đổi dữ liệu; fit_transform là phương thức của transformer, gộp fit rồi transform trên cùng dữ liệu, nên nó gắn với cả hai giao diện, ví dụ StandardScaler hay PCA. "Transformer, Estimator, Predictor" sai vì giao diện Predictor gắn với phương thức predict, mà fit_transform không trả về dự đoán. "Estimator, Predictor" sai vì thiếu Transformer, chính là giao diện định nghĩa bước transform trong fit_transform, lại thêm Predictor không liên quan. "Transformer" sai vì bỏ sót Estimator: phần fit của phương thức là đặc trưng của estimator, và transformer trong sklearn vốn đồng thời là estimator. "Transformer, Predictor" sai vì Predictor chỉ áp dụng cho mô hình có predict như hồi quy hay phân loại, đồng thời lại thiếu Estimator.
ATransformer interface
BEstimator interface
CPredictor interface
DClassifier interface
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Classifier interface". Đây là câu phủ định: scikit-learn thiết kế API quanh ba giao diện chính là Estimator (có fit để học từ dữ liệu), Predictor (có predict và thường kèm score) và Transformer (có transform cùng fit_transform); các bộ phân loại như LogisticRegression chỉ là đối tượng vừa là estimator vừa là predictor, chứ thư viện không định nghĩa một giao diện riêng mang tên Classifier. "Transformer interface" là giao diện thật nên không chọn, dùng cho các bước tiền xử lý như StandardScaler hay PCA. "Estimator interface" là giao diện thật, nền của mọi đối tượng học được bằng fit, kể cả mô hình lẫn bộ tiền xử lý. "Predictor interface" là giao diện thật, cho phép mô hình đã huấn luyện sinh dự đoán trên dữ liệu mới bằng predict.
15What is the primary focus of the F1 Score?4 lựa chọn
ATrue negatives.
BFalse positives.
CTrue positives and false negatives.
DTrue positives and false positives.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "True positives and false negatives.". F1 Score là trung bình điều hoà của precision và recall, chỉ xoay quanh lớp dương và hoàn toàn bỏ qua true negative; nó được dùng khi dữ liệu mất cân bằng và điều quan trọng là bắt được các ca dương thật, nên trọng tâm nằm ở việc tăng true positive và hạn chế false negative, tức bỏ sót ca dương mà accuracy dễ che giấu. Phương án "True negatives." sai vì true negative không xuất hiện trong công thức F1; đây chính là điểm khác F1 với accuracy. Phương án "False positives." sai vì chỉ nêu một loại lỗi đơn lẻ, trong khi F1 trước hết đo mức bắt đúng ca dương. Phương án "True positives and false positives." chỉ mô tả precision, một thành phần của F1; nó phù hợp khi điều cần lo là báo động giả, còn câu hỏi hướng tới trọng tâm là không bỏ sót ca dương mà F1 được dùng để bảo vệ.
ADo we have any data like a corpus of customer feedback to support this decision?
BCan we run an experiment like A/B testing to see if it helps support this decision?
CWhich members of leadership support this decision?
DHave any other companies been successful making a comparable change?
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Which members of leadership support this decision?". Tư duy khoa học dựa vào bằng chứng có thể kiểm chứng như dữ liệu, thí nghiệm và trường hợp tương tự, chứ không dựa vào quyền lực hay sự ủng hộ của người có chức vụ; hỏi ai trong ban lãnh đạo ủng hộ là lập luận dựa trên thẩm quyền, không phải bằng chứng. Những câu hỏi sau đều thể hiện tư duy khoa học nên không được chọn: "Do we have any data like a corpus of customer feedback" tìm dữ liệu thực tế như phản hồi khách hàng để làm căn cứ; "Can we run an experiment like A/B testing" đề xuất thí nghiệm có đối chứng để kiểm định giả thuyết; "Have any other companies been successful making a comparable change?" tìm bằng chứng từ các trường hợp tương tự bên ngoài.
17Which of the following is NOT true about Python?5 lựa chọn
APython code can run in IPython and Jupyter notebooks
BPython allows for the inclusion of comments and pseudocode to better organize code
CUsers can save .py files with an editor then subsequently execute them from the command line
DBase Python automatically parallelizes processing across cores when multiple cores are available
EPython allows users to save multiple functions in a .py file then import those functions in a different file
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Base Python automatically parallelizes processing across cores when multiple cores are available". Python chuẩn (CPython) chạy mã trên một luồng chính và có GIL (Global Interpreter Lock, khóa chỉ cho một luồng thực thi mã Python tại một thời điểm), nên nó không tự chia việc ra nhiều lõi; muốn song song phải chủ động dùng multiprocessing, joblib hay thư viện tương tự. Vì vậy đây là phát biểu sai, đúng thứ câu hỏi phủ định cần tìm. Các phát biểu kia đều đúng nên không được chọn: "Python code can run in IPython and Jupyter notebooks" đúng vì đó là hai môi trường tương tác phổ biến cho Python; "Python allows for the inclusion of comments and pseudocode to better organize code" đúng vì ngôn ngữ có cú pháp chú thích để ghi giải thích hay phác thảo ý tưởng; "Users can save .py files with an editor then subsequently execute them from the command line" đúng, đó là cách chạy script thông thường bằng lệnh python; "Python allows users to save multiple functions in a .py file then import those functions in a different file" đúng vì mỗi tệp .py là một module có thể import.
Acustomer on the rows and items like total_sales, name, most_bought on the columns
Bdaily revenue on the rows items like customer_name and total on the columns
Ctransactions on the rows and items like customer_name and item_id on the columns
DNone of the correct answer
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "transactions on the rows and items like customer_name and item_id on the columns". Mục tiêu hợp lý của bước làm sạch là đưa dữ liệu về dạng tidy (gọn gàng): mỗi hàng là một quan sát ở mức chi tiết gốc, ở đây là một giao dịch, mỗi cột là một thuộc tính của giao dịch đó như tên khách hàng, mã mặt hàng. Giữ mức chi tiết này thì về sau gộp theo cách nào cũng được. "customer on the rows and items like total_sales, name, most_bought on the columns" là bảng đã gộp theo khách hàng; đó là việc của bước tạo đặc trưng phục vụ một câu hỏi cụ thể, làm ngay lúc làm sạch sẽ mất chi tiết giao dịch. "daily revenue on the rows items like customer_name and total on the columns" sai vì đã gộp theo ngày thì không còn tên khách hàng ở từng hàng. "None of the correct answer" sai vì đã có một mục tiêu hợp lý.
import scipy.stats as stats
def gaussian_distribution(loc_val, scale_val, cdf_val):
'''
INPUT: loc (mean of the distribution), scale (standard deviation of the distribution), and cdf values
OUTPUT: determined probability
'''
//Code here?
return probabilityAprobability = 1 - stats.norm.cdf(cdf_val, loc=loc_val, scale=scale_val)
Bprobability = stats.norm.cdf(cdf_val, loc=loc_val, scale=scale_val)
Cprobability = 1 - stats.cdf(cdf_val, loc=loc_val, scale=scale_val)
Dprobability = 1 - stats.norm(cdf_val, loc=loc_val, scale=scale_val)
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "probability = 1 - stats.norm.cdf(cdf_val, loc=loc_val, scale=scale_val)". Hàm phân phối tích luỹ (CDF) stats.norm.cdf(x, loc, scale) trả về P(X ≤ x) với X theo phân phối chuẩn có trung bình loc và độ lệch chuẩn scale, nên xác suất phần đuôi P(X ≥ 80) bằng 1 trừ CDF tại 80 (với biến liên tục, P(X = 80) bằng 0 nên ≥ và > như nhau). Với trung bình 50 và độ lệch chuẩn 20, điểm 80 cách trung bình 1,5 độ lệch chuẩn, cho kết quả khoảng 0,067. Dòng này nằm trong thân hàm, thụt lề cùng cấp với return probability. "probability = stats.norm.cdf(cdf_val, loc=loc_val, scale=scale_val)" thiếu phép lấy phần bù nên trả về P(X ≤ 80), khoảng 0,933, tức xác suất điểm dưới 80. "probability = 1 - stats.cdf(cdf_val, loc=loc_val, scale=scale_val)" gọi cdf thẳng trên module scipy.stats, nơi không có hàm cdf chung, nên báo AttributeError; cdf là phương thức của từng phân phối như stats.norm. "probability = 1 - stats.norm(cdf_val, loc=loc_val, scale=scale_val)" gọi stats.norm(...) để tạo đối tượng phân phối cố định tham số chứ không tính xác suất, lại truyền loc hai lần (theo vị trí và theo từ khoá) nên báo TypeError, và kể cả tạo được thì cũng không thể lấy 1 trừ một đối tượng phân phối.
AStart pulling sales and other data to create a business viability assessment for Vermont
BGather more data and repeat the snowfall experiment
CGather different data say snowfall by county and repeat the experiment
DStart a business viability assessment for all three states
Lời giải
Mở trang câu hỏi này →Đáp án đúng gồm ba ý: "Start pulling sales and other data to create a business viability assessment for Vermont", "Gather more data and repeat the snowfall experiment" và "Gather different data say snowfall by county and repeat the experiment". Theo quy trình khoa học (scientific process), một kết luận chỉ là một bước trong vòng lặp: đặt giả thuyết, thu dữ liệu, kiểm định, rồi hoặc hành động dựa trên kết quả, hoặc làm lại thí nghiệm để củng cố nó. Thí nghiệm về lượng tuyết rơi đã chỉ ra Vermont là ứng viên tốt nhất, nên một bước hợp lý là kéo dữ liệu doanh số và dữ liệu khác để lập đánh giá khả thi kinh doanh (business viability assessment) cho chính Vermont. Vì một thí nghiệm đơn lẻ có thể chưa đủ chắc, ta cũng có thể thu thêm dữ liệu cùng loại rồi lặp lại thí nghiệm để kiểm tra kết quả có ổn định không, hoặc đổi sang dữ liệu chi tiết hơn như lượng tuyết theo từng hạt (county) để xem kết luận còn đứng vững ở mức địa phương hay không. Phương án "Start a business viability assessment for all three states" đi ngược quy trình này vì nó bỏ qua bằng chứng vừa thu được: làm đánh giá cho cả ba bang như thể thí nghiệm chưa thu hẹp lựa chọn về Vermont, tốn công mà không học được gì từ dữ liệu.