Ngân hàng câu hỏi của chương

Câu hỏi: AID301c - Phần 1: Ưu tiên kinh doanh và thu nhận dữ liệu

31 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 theo thứ tự nhập vào ngân hàng.

Danh sách câu hỏi

20/31 câuCòn 11
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
Đá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.
Mở trang câu hỏi này →
A400
B450
C500
D600
E650
Lời giải
Đáp án đúng: "600". Khi gộp các tệp JSON giao dịch theo tháng thành một DataFrame (bảng dữ liệu của pandas) rồi lấy ngày nhỏ nhất và lớn nhất của cột ngày, khoảng thời gian dữ liệu phủ là gần hai năm, tức vào khoảng 600 ngày. Cách kiểm chứng là tạo cột ngày bằng pd.to_datetime từ năm, tháng, ngày rồi tính hiệu giữa giá trị lớn nhất và nhỏ nhất, kết quả quy ra số ngày. Phương án "400" và "450" quá ngắn, chỉ tương ứng khoảng mười ba đến mười lăm tháng, không phủ hết các tệp đã gộp. Phương án "500" vẫn hụt so với khoảng thật, giống như bỏ sót vài tháng dữ liệu cuối. Phương án "650" lại vượt quá phạm vi dữ liệu, tương đương cộng thêm gần hai tháng không có giao dịch nào. Bài học thực hành ở đây là luôn kiểm tra phạm vi thời gian sau khi gộp dữ liệu để phát hiện tệp thiếu hoặc ngày bị đọc sai định dạng.
Mở trang câu hỏi này →
ANumPy
BMatplotlib
CPandas
DSciPy
Lời giải
Đáp án đúng: "Pandas". Thư viện Pandas cung cấp cấu trúc DataFrame (bảng dữ liệu có nhãn cột) cùng các hàm read_csv và to_csv, là cách phổ biến nhất trong Python để đọc và ghi tệp CSV, tự xử lý tiêu đề cột, kiểu dữ liệu và giá trị thiếu. "NumPy" làm việc với mảng số nhiều chiều; nó có loadtxt và savetxt nhưng không tiện cho bảng có cột chữ lẫn cột số. "Matplotlib" là thư viện vẽ biểu đồ, không dùng để đọc ghi dữ liệu dạng bảng. "SciPy" tập trung vào tính toán khoa học như tối ưu, thống kê, xử lý tín hiệu, không phải công cụ chính để nhập xuất CSV.
Mở trang câu hỏi này →
ATo impress stakeholders
BTo streamline the modeling process and ensure data quality
CTo increase project costs
DTo avoid using Python
Lời giải
Đáp án đúng: "To streamline the modeling process and ensure data quality". Ghi chép dữ liệu (data documentation) trước khi bắt đầu dự án gồm mô tả nguồn, ý nghĩa từng cột, kiểu dữ liệu, đơn vị, cách thu thập và các giới hạn đã biết; nhờ vậy nhóm phát hiện sớm giá trị thiếu, sai định dạng hay rò rỉ thông tin, chọn biến hợp lý và tránh phải làm lại khi xây mô hình. "To impress stakeholders" không phải mục đích: tài liệu có giúp trao đổi với các bên liên quan, nhưng giá trị của nó nằm ở chất lượng công việc chứ không phải gây ấn tượng. "To increase project costs" ngược với thực tế, vì ghi chép kỹ từ đầu giúp giảm chi phí sửa lỗi về sau. "To avoid using Python" không liên quan, vì việc mô tả dữ liệu không quyết định ngôn ngữ lập trình, thậm chí thường được làm ngay bằng Python với pandas.
Mở trang câu hỏi này →
Adef make_dict(lst1,lst2): res = {} for key,value in zip(lst1,lst2): res[key]= value return res
Bdef make_dict(lst1,lst2): res = {} res[lst1]= lst2 return res
Cdef make_dict(lst1,lst2): res = {} for key,value in (lst1,lst2): res[key]= value return res
Ddef make_dict(lst1,lst2): res = [] for key,value in zip(lst1,lst2): res[key]= value return res
Lời giải
Đáp án đúng: "def make_dict(lst1,lst2): res = {} for key,value in zip(lst1,lst2): res[key]= value return res". Khi viết thành nhiều dòng, thân hàm tạo dict rỗng res = {}, dòng for thụt vào một mức duyệt các cặp do zip sinh ra, câu gán res[key]= value thụt thêm một mức nằm trong vòng lặp, còn return res thẳng hàng với for để trả kết quả sau khi lặp xong; zip(lst1,lst2) ghép phần tử cùng vị trí thành các cặp (a, 1), (b, 2), (c, 3) nên kết quả là dict ánh xạ a sang 1, b sang 2, c sang 3. "def make_dict(lst1,lst2): res = {} res[lst1]= lst2 return res" sai vì list là kiểu không băm được (unhashable) nên dùng cả danh sách làm khoá gây TypeError, và kể cả chạy được cũng chỉ tạo một cặp chứ không ghép từng phần tử. "def make_dict(lst1,lst2): res = {} for key,value in (lst1,lst2): res[key]= value return res" sai vì thiếu zip: vòng lặp duyệt một tuple gồm hai danh sách, mỗi lượt cố tách một danh sách ba phần tử vào hai biến key, value nên báo ValueError too many values to unpack. "def make_dict(lst1,lst2): res = [] for key,value in zip(lst1,lst2): res[key]= value return res" sai vì res là list rỗng, gán res[key] với key là chuỗi gây TypeError do chỉ số của list phải là số nguyên.
Mở trang câu hỏi này →
AIdeate
BEmpathize
CPrototype
DTest
Lời giải
Đáp án đúng: "Empathize". Design thinking (tư duy thiết kế) thường được mô tả qua năm giai đoạn theo thứ tự Empathize, Define, Ideate, Prototype, Test. Giai đoạn đầu là thấu cảm: tìm hiểu người dùng và các bên liên quan, quan sát, phỏng vấn để hiểu nhu cầu và nỗi đau thật của họ trước khi bàn giải pháp. Trong một dự án dữ liệu, đây là lúc nắm bài toán kinh doanh và người sẽ dùng kết quả. "Ideate" là giai đoạn thứ ba, chỉ bắt đầu sau khi vấn đề đã được định nghĩa rõ, khi nhóm đưa ra thật nhiều ý tưởng giải pháp. "Prototype" là giai đoạn thứ tư, dựng bản mẫu rẻ và nhanh cho các ý tưởng được chọn. "Test" là giai đoạn cuối, đưa bản mẫu cho người dùng thử để lấy phản hồi và có thể quay vòng lại các bước trước. Bắt đầu bằng bất kỳ giai đoạn nào trong ba giai đoạn này đều có nguy cơ giải sai vấn đề vì chưa hiểu người dùng.
Mở trang câu hỏi này →
AYou cannot convert directly from a numpy array to any of the scipy sparse matrices
BNumPy linear algebra functions generally cannot be called directly
CSaving to disk is not possible directly from a scipy sparse format
DThe train test splits need to be performed by hand with scipy sparse matrices
EIt is difficult to print to screen scipy sparse matrices directly
Lời giải
Đáp án đúng gồm hai ý: "NumPy linear algebra functions generally cannot be called directly" và "It is difficult to print to screen scipy sparse matrices directly". Ma trận thưa (sparse matrix) của scipy chỉ lưu phần tử khác 0 theo các định dạng như CSR hay COO nên tiết kiệm bộ nhớ khi làm đích ETL cho dữ liệu nhiều số 0, ví dụ ma trận người dùng và sản phẩm; đổi lại, các hàm numpy.linalg viết cho mảng đặc không nhận trực tiếp đối tượng thưa mà phải dùng scipy.sparse.linalg hoặc đổi sang mảng đặc, còn khi in ra màn hình chỉ thấy danh sách toạ độ kèm giá trị, phải gọi toarray() hay todense() mới xem được dạng bảng. "You cannot convert directly from a numpy array to any of the scipy sparse matrices" sai vì có thể truyền thẳng mảng numpy vào hàm dựng như csr_matrix(arr). "Saving to disk is not possible directly from a scipy sparse format" sai vì scipy.sparse.save_npz và load_npz lưu, đọc trực tiếp định dạng thưa. "The train test splits need to be performed by hand with scipy sparse matrices" sai vì train_test_split của scikit-learn chấp nhận ma trận thưa làm đầu vào.
Mở trang câu hỏi này →
AIt is easier to collect
BIt allows for more detailed analysis
CIt takes less time to process
DIt is more visually appealing
Lời giải
Đáp án đúng: "It allows for more detailed analysis". Dữ liệu chi tiết (granular data) ghi ở mức từng giao dịch, từng khách hàng, từng thời điểm, nên từ nó ta luôn có thể tổng hợp ngược lên mức tóm tắt theo bất kỳ chiều nào, còn dữ liệu tóm tắt (summary level data) đã mất thông tin và không tách ngược được. Nhờ vậy dữ liệu chi tiết cho phép phân tích sâu hơn, tạo đặc trưng tốt hơn và phát hiện mẫu ẩn trong từng nhóm nhỏ. "It is easier to collect" sai vì thu thập ở mức chi tiết thường tốn công hơn, cần hệ thống ghi nhận từng sự kiện. "It takes less time to process" sai vì khối lượng lớn hơn nhiều nên xử lý lâu hơn; đó là cái giá phải trả chứ không phải lợi ích. "It is more visually appealing" sai vì dữ liệu thô chẳng đẹp hơn khi nhìn, việc trực quan hóa còn thường cần gom nhóm trước, và vẻ ngoài không phải lý do chọn mức độ chi tiết.
Mở trang câu hỏi này →
ADataFrames/Arrays most closely resemble tables in relational databases.
BDataFrames/Arrays are the only structures in Python capable of holding significant amounts of data.
CNearly all modeling algorithms take input data in a tabular format analogous to format of DataFrames/Arrays.
DAll of the answers
Lời giải
Đáp án đúng: "Nearly all modeling algorithms take input data in a tabular format analogous to format of DataFrames/Arrays.". Hầu hết thuật toán học máy, từ hồi quy tuyến tính tới random forest trong scikit-learn, nhận đầu vào là một ma trận đặc trưng: mỗi hàng là một mẫu (sample), mỗi cột là một đặc trưng (feature). DataFrame của Pandas và mảng NumPy chính là dạng biểu diễn đó, nên đưa dữ liệu thô về dạng bảng là bước chuẩn bị tất yếu trước khi huấn luyện. Phát biểu "DataFrames/Arrays most closely resemble tables in relational databases." đúng về hình thức nhưng chỉ là sự giống nhau bề ngoài, không phải lý do cuối cùng khiến ta cần định dạng dữ liệu như vậy. Phát biểu "are the only structures in Python capable of holding significant amounts of data" sai, vì Python còn list, dict, các thư viện như Dask hay định dạng tệp như Parquet đều chứa được lượng dữ liệu lớn. Vì có một phát biểu sai nên "All of the answers" cũng không thể đúng.
Mở trang câu hỏi này →
AOSEMN
BCRISP-DM
CDesign Thinking
DAgile
Lời giải
Đáp án đúng: "CRISP-DM". CRISP-DM (Cross-Industry Standard Process for Data Mining, quy trình chuẩn liên ngành cho khai phá dữ liệu) được khởi xướng năm 1996 bởi một nhóm doanh nghiệp, là tiêu chuẩn mở không gắn với công cụ hay nhà cung cấp nào, gồm sáu pha lặp theo vòng: hiểu nghiệp vụ, hiểu dữ liệu, chuẩn bị dữ liệu, mô hình hoá, đánh giá và triển khai. "OSEMN" (Obtain, Scrub, Explore, Model, iNterpret) là khung gợi nhớ các bước làm việc của nhà khoa học dữ liệu, ra đời muộn hơn nhiều và không phải một tiêu chuẩn quy trình. "Design Thinking" là phương pháp đổi mới lấy con người làm trung tâm, dùng rộng trong thiết kế sản phẩm, không phải tiêu chuẩn mở về khai phá dữ liệu. "Agile" là triết lý phát triển phần mềm theo vòng lặp ngắn, được công bố qua Tuyên ngôn Agile năm 2001, cũng không phải mô hình quy trình khai phá dữ liệu.
Mở trang câu hỏi này →
AData collection
BObservation and Reflection
CRapid prototyping
DUser testing
Lời giải
Đáp án đúng: "Observation and Reflection". Khung design thinking (tư duy thiết kế) theo cách tiếp cận của IBM là một vòng lặp liên tục gồm quan sát (Observe), suy ngẫm (Reflect) và làm (Make): đội ngũ quan sát người dùng thật trong bối cảnh của họ, rồi dừng lại suy ngẫm để thống nhất hiểu biết và định hướng trước khi tạo giải pháp, sau đó lặp lại. Quan sát và suy ngẫm vì thế là nguyên tắc nền giúp một sản phẩm dữ liệu xuất phát từ nhu cầu thật thay vì từ giả định của nhóm kỹ thuật. "Data collection" sai vì thu thập dữ liệu là một bước kỹ thuật trong quy trình khoa học dữ liệu, không phải nguyên tắc của design thinking. "Rapid prototyping" sai vì làm mẫu nhanh chỉ là một kỹ thuật nằm trong pha Make, không phải nguyên tắc cốt lõi được nhấn mạnh. "User testing" sai vì kiểm thử với người dùng là một hoạt động cụ thể bên trong vòng lặp, chứ không phải nguyên tắc định hướng cả quy trình.
Mở trang câu hỏi này →
AThe number of products sold
BIf the teams are well-optimized based on historical sales data
CThe marketing budget for each team
DThe demographics of the customers
Lời giải
Đáp án đúng: "If the teams are well-optimized based on historical sales data". Trong quy trình AI, việc đầu tiên là hiểu câu hỏi kinh doanh mà người ra quyết định thật sự quan tâm. Với ban quản lý, khi số liệu bán hàng được công bố, mối bận tâm là liệu cách bố trí và vận hành các đội bán hàng đã tối ưu chưa khi đối chiếu với lịch sử doanh số, vì đó là câu hỏi dẫn tới hành động như phân bổ lại nguồn lực. "The number of products sold" chỉ là một con số mô tả có sẵn trong chính dữ liệu được công bố, nó là đầu vào chứ không phải điều cần kết luận. "The marketing budget for each team" là thông tin quản trị nội bộ mà ban quản lý vốn đã nắm, không phải điều họ chờ dữ liệu bán hàng trả lời. "The demographics of the customers" có thể hữu ích cho phân khúc thị trường, nhưng nó không trả lời câu hỏi về hiệu quả của các đội mà ban quản lý cần biết.
Mở trang câu hỏi này →
AStrict adherence to a specific process model
BIncorporating best practices into the workflow
CLearning only from data science literature
DAvoiding any structured approach
Lời giải
Đáp án đúng: "Incorporating best practices into the workflow". Khóa học về quy trình AI trong vận hành không bắt người học tuân thủ cứng một mô hình quy trình nào, mà đưa các thực hành tốt (best practices) như kiểm thử, đóng gói bằng container, theo dõi mô hình và lặp lại có kiểm soát vào chính quy trình làm việc hằng ngày của nhóm. "Strict adherence to a specific process model" sai vì các mô hình như CRISP-DM chỉ được dùng làm khung tham khảo, có thể điều chỉnh theo dự án chứ không áp đặt cứng nhắc. "Learning only from data science literature" sai vì trọng tâm là thực hành trên dữ liệu và tình huống kinh doanh, không chỉ đọc tài liệu. "Avoiding any structured approach" đi ngược tinh thần khóa học, vốn đề cao làm việc có cấu trúc, có thể lặp lại và đo lường được.
Mở trang câu hỏi này →
AData collection
BData cleaning and preliminary exploratory data analysis
CModel training
DBusiness opportunity identification
Lời giải
Đáp án đúng: "Data cleaning and preliminary exploratory data analysis". Khi áp tư duy thiết kế vào quy trình khoa học dữ liệu, giai đoạn Define là lúc chuyển những gì đã tìm hiểu thành một bài toán được phát biểu rõ; với dữ liệu, điều đó nghĩa là làm sạch dữ liệu và chạy phân tích khám phá sơ bộ (exploratory data analysis, EDA) để biết dữ liệu thực sự nói gì, có thiếu sót gì, từ đó chốt câu hỏi và giả thuyết. "Data collection" thuộc bước trước, khi nhóm còn đang tìm hiểu vấn đề và gom dữ liệu thô về. "Model training" thuộc các giai đoạn sau như Ideate và Prototype, khi đã có ý tưởng mô hình để thử. "Business opportunity identification" là việc của giai đoạn Empathize đầu tiên, khi nhóm tìm hiểu các bên liên quan để nhận ra cơ hội kinh doanh; nó là đầu vào cho Define chứ không phải việc diễn ra trong đó.
Mở trang câu hỏi này →
AExtract, Transform, Load
BEvaluate, Test, Load
CExtract, Transfer, Load
DEvaluate, Transform, Load
Lời giải
Đáp án đúng: "Extract, Transform, Load". ETL là quy trình ba bước đưa dữ liệu từ nguồn vào nơi phân tích: Extract (trích xuất) lấy dữ liệu từ cơ sở dữ liệu, tệp hay API; Transform (biến đổi) làm sạch, chuẩn hóa, gộp và tính toán lại dữ liệu cho đúng cấu trúc cần dùng; Load (nạp) ghi kết quả vào kho dữ liệu hoặc hệ thống đích. "Evaluate, Test, Load" sai vì đánh giá và kiểm thử là việc của giai đoạn xây dựng mô hình, không phải bước đầu và giữa của đường ống dữ liệu. "Extract, Transfer, Load" nhầm bước giữa: chuyển dữ liệu đi không phải trọng tâm, cốt lõi là biến đổi dữ liệu. "Evaluate, Transform, Load" sai ở bước đầu, vì phải trích xuất được dữ liệu từ nguồn trước khi làm bất cứ việc gì khác.
Mở trang câu hỏi này →
ATo gather data
BTo understand business opportunities
CTo clean the data
DTo build a model
Lời giải
Đáp án đúng: "To understand business opportunities". Khi áp khung Design Thinking (tư duy thiết kế) vào quy trình khoa học dữ liệu, Empathize (thấu cảm) là pha đầu tiên: nói chuyện với các bên liên quan, hiểu nỗi đau của người dùng và xác định đúng cơ hội kinh doanh, từ đó phát biểu bài toán thành giả thuyết kiểm chứng được. "To gather data" là việc làm sau, khi đã biết cần dữ liệu gì để trả lời câu hỏi kinh doanh. "To clean the data" thuộc khâu chuẩn bị và biến đổi dữ liệu, chỉ có ý nghĩa khi dữ liệu đã được thu thập. "To build a model" nằm ở pha mô hình hoá, gần cuối vòng; xây mô hình trước khi hiểu cơ hội dễ dẫn tới giải đúng một bài toán mà không ai cần.
Mở trang câu hỏi này →
AEmpathize
BDefine
CIdeate
DPrototype
Lời giải
Đáp án đúng: "Define". Quy trình design thinking (tư duy thiết kế) đi qua các pha Empathize, Define, Ideate, Prototype và Test; pha Define là lúc tổng hợp những gì đã tìm hiểu để phát biểu rõ vấn đề, thách thức kinh doanh cần giải, nên khi AAVAiL chuyển sang xác định các thách thức thì đó chính là pha này. "Empathize" là pha thấu cảm, tập trung quan sát và phỏng vấn người dùng, người liên quan để hiểu nhu cầu, chưa chốt thách thức. "Ideate" là pha lên ý tưởng, diễn ra sau khi vấn đề đã được định nghĩa, nhằm đưa ra nhiều hướng giải quyết như các giả thuyết và cách tiếp cận dữ liệu. "Prototype" là pha dựng bản mẫu, hiện thực hoá ý tưởng thành phiên bản thử như một mô hình hay một luồng dữ liệu đơn giản để kiểm nghiệm, nên cũng đến sau pha xác định vấn đề.
Mở trang câu hỏi này →
AJSON
BXML
CCSV
DTXT
Lời giải
Đáp án đúng: "CSV". CSV (comma-separated values, giá trị phân tách bằng dấu phẩy) lưu dữ liệu thành các hàng và cột, mỗi dòng một bản ghi, mỗi trường cách nhau bằng dấu phẩy, nên là định dạng phổ biến nhất cho dữ liệu dạng bảng và đọc được bằng Pandas hay bảng tính. "JSON" lưu dữ liệu dạng cây gồm đối tượng và mảng lồng nhau, hợp với dữ liệu bán cấu trúc hơn là bảng phẳng. "XML" cũng là định dạng phân cấp bằng thẻ, cồng kềnh khi biểu diễn bảng. "TXT" chỉ là văn bản thuần không có quy ước cấu trúc cột nào, nên không phải định dạng chuẩn cho dữ liệu bảng.
Mở trang câu hỏi này →
ARStudio
BJupyter notebooks
CSpyder
DTableau
Lời giải
Đáp án đúng: "Jupyter notebooks". Jupyter notebook là môi trường tương tác chạy mã Python theo từng ô, xen kẽ được mã, kết quả, biểu đồ và chữ giải thích trong cùng một tài liệu, nên đã trở thành chuẩn công nghiệp để khám phá dữ liệu, thử mô hình và chia sẻ phân tích trong hệ sinh thái Python. "RStudio" là môi trường phát triển chủ yếu cho ngôn ngữ R, thuộc hệ sinh thái khác, dù gần đây cũng hỗ trợ Python. "Spyder" đúng là một IDE cho Python hướng tới nhà khoa học, nhưng nó là một lựa chọn trong nhiều IDE chứ không được coi là chuẩn chung như notebook. "Tableau" là công cụ trực quan hóa và báo cáo kinh doanh dạng kéo thả, không phải công cụ lập trình của hệ sinh thái Python.
Mở trang câu hỏi này →
AAccount for missing data, faulty data, repeated observations and other data integrity issues
BEnsure that expected data is returned given a specific set of parameters
CEnsure that an expected format is returned
DEnsure that models produce expected results
Lời giải
Đáp án đúng gồm ba ý: "Account for missing data, faulty data, repeated observations and other data integrity issues", "Ensure that expected data is returned given a specific set of parameters" và "Ensure that an expected format is returned". Pipeline nạp dữ liệu (data ingestion pipeline) là đoạn tự động đưa dữ liệu từ nguồn vào dạng sẵn sàng cho phân tích, nên trách nhiệm của nó là chất lượng và tính nhất quán của dữ liệu đầu ra. Nó phải xử lý giá trị thiếu, bản ghi lỗi, quan sát lặp và các vấn đề toàn vẹn khác; phải trả đúng phần dữ liệu tương ứng với tham số truyền vào, chẳng hạn đúng quốc gia và khoảng ngày được hỏi; và phải trả về đúng định dạng đã hẹn, như đúng tên cột và kiểu dữ liệu, để các bước sau không vỡ. Đây cũng là những điều mà kiểm thử đơn vị cho hàm nạp dữ liệu thường kiểm tra. Phương án "Ensure that models produce expected results" không thuộc pipeline nạp dữ liệu: kiểm tra mô hình cho kết quả như mong đợi là việc của kiểm thử mô hình và giám sát hiệu năng sau khi huấn luyện, nằm ở tầng mô hình chứ không ở tầng dữ liệu đầu vào.
Mở trang câu hỏi này →