Chủ đề của AID301c - Thiết kế sản phẩm TTNT

AID301c - Phần 6: Vận hành và giám sát hệ thống AI

Đưa mô hình lên chưa phải điểm kết thúc: dữ liệu ngoài đời đổi dần, hành vi người dùng đổi theo mùa hay theo chính sản phẩm, và mô hình xuống cấp mà không phát ra lỗi nào. Giám sát vì thế theo dõi hai thứ, phân phối của dữ liệu đầu vào so với lúc huấn luyện và chất lượng dự đoán so với kết quả thật khi kết quả ấy về tới, kèm dấu hiệu thiên lệch mới phát sinh. Vòng phản hồi nối số đo đó trở lại quy trình: đặt ngưỡng cảnh báo, quyết định huấn luyện lại, hoặc xem lại chính câu hỏi kinh doanh ban đầu. Ở quy mô doanh nghiệp, nhiều phiên bản mô hình chạy song song trên cụm Kubernetes, mở rộng theo tải, cho phép đặt bản mới chạy cạnh bản cũ để so trước khi chuyển hẳn. Người học thiết kế được kế hoạch giám sát cho một mô hình đang chạy và đọc được tín hiệu nào báo đã tới lúc can thiệp.

Xem danh sách câu hỏi18 câu hỏi100% có giải thích

Bắt đầu bằng Chế độ học nếu bạn muốn đáp án và giải thích hiện ngay sau mỗi câu — không bấm giờ, dừng lúc nào cũng được. Chọn Thi thử khi muốn biết mình đang ở đâu: có bấm giờ, chấm điểm ở cuối, và giải thích chỉ mở sau khi nộp.

Học ngân hàng câu hỏi của chủ đề

Luyện tập theo chủ đề này

18Câu hỏi hiện có

Câu hỏi của chủ đề

18/18 câuHết danh sách
Aunittest
Bcoverage
Cpytest
Dflask
Lời giải
Đáp án đúng: "coverage". Gói coverage (coverage.py) theo dõi những dòng mã nào thực sự được thực thi trong lúc bộ test chạy, rồi báo cáo test coverage (độ phủ kiểm thử): tỉ lệ dòng hoặc nhánh đã được chạm tới và chỉ rõ dòng nào chưa có test nào đi qua. "unittest" là framework kiểm thử có sẵn trong thư viện chuẩn của Python, dùng để viết và chạy ca kiểm thử chứ bản thân nó không đo độ phủ. "pytest" cũng là công cụ viết và chạy test; nó chỉ báo được độ phủ khi gắn thêm plugin pytest-cov, mà plugin này lại dựa trên chính gói coverage. "flask" là web framework để dựng ứng dụng web hoặc API, chẳng hạn API phục vụ dự đoán của mô hình, nên không liên quan gì đến việc ước lượng độ phủ kiểm thử.
Mở trang câu hỏi này →
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
Đá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.
Mở trang câu hỏi này →
AA type of software bug
BThe main branch of code where all changes are merged
CA deployment strategy
DA testing framework
Lời giải
Đáp án đúng: "The main branch of code where all changes are merged". Trong Continuous Integration (tích hợp liên tục), trunk là nhánh mã chính, nơi mọi lập trình viên tích hợp thay đổi thường xuyên; mỗi lần hợp nhất sẽ kích hoạt build và kiểm thử tự động để phát hiện lỗi sớm, đây cũng là ý của cách làm trunk-based development. "A type of software bug" sai vì trunk là khái niệm quản lý mã nguồn chứ không phải một loại lỗi. "A deployment strategy" sai vì chiến lược triển khai như blue-green hay canary nói về cách đưa phần mềm ra môi trường chạy thật, không phải nhánh mã. "A testing framework" sai vì framework kiểm thử như unittest hay pytest là công cụ viết test, còn trunk là nơi mã được hợp nhất rồi mới chạy test.
Mở trang câu hỏi này →
ATrying different data transformations on a given model
BReturning to the data collection stage from transformations to reduce the number of transforms
CPerforming EDA on the data after a model has been deployed and data have been logged
DMoving from the business opportunity and data collection to model iteration
EReturning to discuss the business opportunity after a model has been deployed
Lời giải
Đáp án đúng: "Moving from the business opportunity and data collection to model iteration". Trong quy trình AI được trình bày, vòng phản hồi (feedback loop) là việc quay lại một pha trước để điều chỉnh dựa trên điều vừa học được; còn đi thẳng từ cơ hội kinh doanh và thu thập dữ liệu sang lặp mô hình là bước tiến về phía trước, lại bỏ qua phân tích khám phá (EDA) và biến đổi dữ liệu, nên không phải vòng phản hồi hợp lệ. Câu hỏi phủ định nên các vòng hợp lệ sau không được chọn. "Trying different data transformations on a given model" là vòng giữa pha biến đổi và pha mô hình: đổi cách biến đổi rồi đo lại hiệu năng của cùng một mô hình. "Returning to the data collection stage from transformations to reduce the number of transforms" là quay ngược hợp lệ: thu thập dữ liệu tốt hơn để bớt phải biến đổi phức tạp. "Performing EDA on the data after a model has been deployed and data have been logged" là vòng sau triển khai: dữ liệu ghi log cho phép khám phá lại để phát hiện trôi dữ liệu. "Returning to discuss the business opportunity after a model has been deployed" cũng hợp lệ, vì kết quả thực tế của mô hình có thể buộc nhóm xem lại giả thuyết và chỉ số kinh doanh ban đầu.
Mở trang câu hỏi này →
AKubelet
BKube CTL
CDocker
DHelm
Lời giải
Đáp án đúng: "Kube CTL". kubectl (đọc là kube control hoặc kube CTL) là công cụ dòng lệnh chính thức để gửi yêu cầu tới Kubernetes API server, dùng để tạo, xem, cập nhật và xoá tài nguyên như pod, deployment, service, ví dụ lệnh kubectl get pods. "Kubelet" là tác tử chạy trên mỗi node, nhận chỉ thị từ control plane và bảo đảm container chạy đúng, người dùng không gõ lệnh qua nó. "Docker" là công cụ đóng gói và chạy container, không phải giao diện tới Kubernetes API. "Helm" là trình quản lý gói (chart) cho Kubernetes; nó cũng làm việc với cụm nhưng là công cụ đóng gói triển khai ở tầng cao hơn, không phải công cụ dòng lệnh cơ bản để tương tác với API.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Đáp án đúng: "False". Trong Kubernetes, pod là đơn vị triển khai nhỏ nhất, gói một hoặc vài container dùng chung mạng và ổ lưu trữ. Deployment là đối tượng cấp cao hơn: nó khai báo trạng thái mong muốn, chẳng hạn chạy ba bản sao của một pod mẫu, rồi thông qua ReplicaSet tạo, thay thế và cập nhật dần các pod đó. Quan hệ vì vậy là Deployment quản lý nhiều pod, không có chiều ngược lại; một pod chỉ chứa container, không thể chứa Deployment. Phát biểu "True" sai vì đảo ngược thứ bậc này: nếu nhầm như vậy, người vận hành sẽ hiểu sai cách mở rộng ứng dụng, vốn được làm bằng cách tăng số bản sao trong Deployment chứ không phải nhét thêm thứ gì vào một pod.
Mở trang câu hỏi này →
AKubernetes Master
BKubelet
CAPI Server
DDeployment
Lời giải
Đáp án đúng: "Kubelet". Kubelet là tác tử chạy trên từng worker node (nút làm việc): nó nhận đặc tả pod từ control plane, khởi chạy container qua container runtime, chạy các probe kiểm tra sức khỏe như liveness và readiness, khởi động lại container hỏng và báo trạng thái node về cụm. Vì vậy đây là thành phần trực tiếp giữ cho ứng dụng trên node khỏe và đang chạy. "Kubernetes Master" là tên cũ của control plane, nơi ra quyết định toàn cụm như lập lịch, nhưng nó không trực tiếp trông từng container trên node. "API Server" là cổng giao tiếp trung tâm nhận và lưu yêu cầu thay đổi trạng thái cụm, không trực tiếp canh từng container ở node. "Deployment" là đối tượng khai báo số bản sao và cách cập nhật pod; nó mô tả trạng thái mong muốn ở mức cụm, còn việc thực thi trên node vẫn do kubelet làm.
Mở trang câu hỏi này →
AManual deployments of software
BAutomated deployments of software
CMerging changes infrequently
DExtensive testing before deployment
Lời giải
Đáp án đúng: "Automated deployments of software". Continuous Deployment (triển khai liên tục) là thực hành trong CI/CD mà mọi thay đổi mã vượt qua chuỗi kiểm thử tự động sẽ được đưa thẳng lên môi trường production mà không cần người bấm duyệt; nó đi xa hơn Continuous Delivery, nơi bản dựng luôn sẵn sàng phát hành nhưng bước đưa lên vẫn do con người quyết định. "Manual deployments of software" sai vì triển khai thủ công chính là điều triển khai liên tục muốn loại bỏ. "Merging changes infrequently" sai vì tinh thần CI/CD là gộp các thay đổi nhỏ thường xuyên để giảm xung đột và rủi ro. "Extensive testing before deployment" sai vì tuy kiểm thử là điều kiện cần, phương án này mô tả một giai đoạn kiểm thử nặng trước phát hành chứ không nêu đặc trưng cốt lõi là tự động hoá chính việc triển khai.
Mở trang câu hỏi này →
Arequest_type, input data
Bmodel_version_number, timestamp
Cpredictions/recommendations, timestamp
Dinput_data_summary, runtime
Lời giải
Đáp án đúng: "request_type, input data". Khi dựng hệ thống ghi log để giám sát mô hình đã triển khai, các trường thiết yếu là những thứ giúp truy vết hiệu năng: thời điểm, số phiên bản mô hình, dự đoán hay khuyến nghị trả về, tóm tắt dữ liệu đầu vào và thời gian chạy. Trong danh sách này, request_type (loại yêu cầu) được trình bày như phần không bắt buộc, và lưu nguyên toàn bộ input data cũng không cần, vì bản tóm tắt đầu vào đã đủ để phát hiện trôi dữ liệu mà không tốn dung lượng hay lộ dữ liệu nhạy cảm. "model_version_number, timestamp" đều thiết yếu: thiếu phiên bản thì không biết mô hình nào sinh ra dự đoán, thiếu thời điểm thì không theo dõi được hiệu năng theo thời gian. "predictions/recommendations, timestamp" thiết yếu vì dự đoán là thứ cần so với kết quả thực tế để đo chất lượng. "input_data_summary, runtime" cũng thiết yếu: tóm tắt đầu vào giúp so phân phối dữ liệu với lúc huấn luyện, còn runtime cho biết độ trễ phục vụ.
Mở trang câu hỏi này →
AImproved accuracy
BPerformance drift
CIncreased training time
DNo impact at all
Lời giải
Đáp án đúng: "Performance drift". Mô hình triển khai luôn chạy trên một ngăn xếp phần mềm gồm thư viện, phiên bản ngôn ngữ, mã tiền xử lý và môi trường container. Khi các thành phần này đổi, ví dụ nâng cấp thư viện làm đổi giá trị mặc định của tham số hay cách mã hoá biến, đầu ra của mô hình có thể lệch khỏi mức đã kiểm định mà không báo lỗi; hiện tượng đó gọi là trôi hiệu năng (performance drift), và là lý do phải ghi số phiên bản, kiểm thử hồi quy và giám sát sau mỗi lần thay đổi. "Improved accuracy" có thể xảy ra tình cờ nhưng không phải hệ quả rủi ro cần đề phòng. "Increased training time" liên quan tới chi phí tính toán, không phải tác động lên chất lượng dự đoán của mô hình đang phục vụ. "No impact at all" sai vì giả định phần mềm đổi mà mô hình không bị ảnh hưởng chính là nguồn gốc của nhiều lỗi khó phát hiện trong vận hành.
Mở trang câu hỏi này →
ATo reduce the size of the data set
BTo monitor model performance and debug issues
CTo make data collection easier
DTo avoid using log files
Lời giải
Đáp án đúng: "To monitor model performance and debug issues". Dữ liệu tối thiểu cần có là những gì đủ để mô hình chạy và để đánh giá nó sau triển khai: đặc trưng đầu vào, dự đoán, kết quả thực tế khi có, thời điểm và phiên bản mô hình. Thiếu phần này thì không thể so dự đoán với thực tế, không phát hiện được trôi dữ liệu và không tái hiện được lỗi khi mô hình hoạt động sai. "To reduce the size of the data set" nhầm mục đích: yêu cầu tối thiểu là bảo đảm có đủ, không phải để cắt bớt dữ liệu. "To make data collection easier" không phải lý do chính; xác định dữ liệu tối thiểu có giúp lên kế hoạch thu thập, nhưng giá trị của nó nằm ở việc giám sát được mô hình. "To avoid using log files" ngược lại, vì chính log là nơi lưu dữ liệu tối thiểu phục vụ giám sát và gỡ lỗi.
Mở trang câu hỏi này →
AThe API server
BThe desired state of applications
CThe health of worker nodes
DThe network configuration
Lời giải
Đáp án đúng: "The desired state of applications". Deployment trong Kubernetes là đối tượng khai báo trạng thái mong muốn của ứng dụng: chạy bao nhiêu bản sao pod, dùng image nào, cập nhật theo kiểu rolling update ra sao; bộ điều khiển của cụm liên tục so trạng thái thật với trạng thái khai báo và tạo, thay, xoá pod để khớp lại, kể cả khôi phục khi pod chết. Phương án "The API server" sai vì API server là thành phần của control plane (mặt phẳng điều khiển), nơi mọi yêu cầu đi qua, chứ không do deployment quản lý. Phương án "The health of worker nodes" sai vì sức khoẻ nút do kubelet báo cáo và node controller theo dõi, deployment chỉ lo các pod của ứng dụng. Phương án "The network configuration" sai vì mạng được xử lý bởi Service, Ingress và plugin mạng CNI, không phải bởi deployment.
Mở trang câu hỏi này →
ACluster IP
BNode Port
CLoad Balancer
DInternal Service
Lời giải
Đá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.
Mở trang câu hỏi này →
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
Đá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ý.
Mở trang câu hỏi này →
AJSON
BXML
CYAML
DCSV
Lời giải
Đá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.
Mở trang câu hỏi này →
ATo manage the API server
BTo provide service discovery for pods
CTo monitor application health
DTo create YAML manifests
Lời giải
Đá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.
Mở trang câu hỏi này →
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
Đá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.
Mở trang câu hỏi này →
AThe deployment is deleted
BA new pod is created to replace it
CThe application stops running
DThe kubelet is notified
Lời giải
Đá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.
Mở trang câu hỏi này →

Đề có câu hỏi của chủ đề này

3 đề chứa ít nhất một câu thuộc chủ đề — mở đề để làm cả bộ, không chỉ từng câu.