14. Bài tập#
Mười bài tập theo thứ tự các chương, từ tính tay tới thí nghiệm và thiết kế, kèm lời giải chi tiết và ngân hàng câu hỏi trắc nghiệm.
Một hệ thống giám sát dịch chuyển bằng PSI với bin; mỗi ngày lấy mẫu cho cả tập tham chiếu và tập hiện tại. (a) Tính PSI kỳ vọng khi không có dịch chuyển nào. (b) Hệ thống cảnh báo khi PSI vượt 0,10 và theo dõi 200 đặc trưng. Khi không có dịch chuyển, trung bình mỗi ngày có bao nhiêu cảnh báo giả? (c) Cần tối thiểu bằng bao nhiêu để PSI kỳ vọng khi không có dịch chuyển nhỏ hơn 0,01?
Gợi ý của đề
Xem lời giải chi tiết
(a) PSI kỳ vọng khi không có dịch chuyển. Theo Mục 9.5, với hai mẫu cùng cỡ và bin,
Mô phỏng 20 000 lần trong bai_tap.py cho trung bình 0,0364, khớp với công thức.
(b) Số cảnh báo giả mỗi ngày. Vì có phân phối xấp xỉ , xác suất PSI vượt 0,10 khi không có dịch chuyển là
Mô phỏng cho 0,0036, lớn hơn công thức một chút, vì các bin được xác định từ chính mẫu tham chiếu và hữu hạn. Phân phối của PSI khi không có dịch chuyển:
| Phân vị | Theo công thức | Mô phỏng |
|---|---|---|
| 95% | 0,0677 | 0,0684 |
| 99% | 0,0867 | 0,0874 |
| 99,9% | 0,1115 | 0,1131 |
Với một đặc trưng, xác suất 0,3% mỗi lần đo là nhỏ. Nhưng hệ thống theo dõi 200 đặc trưng mỗi ngày, nên số cảnh báo giả trung bình là mỗi ngày, tức khoảng 4 cảnh báo giả mỗi tuần trên một hệ thống không có vấn đề gì. Đây là cơ chế sinh ra báo động giả ở Mục 3.2 và Mục 10.5. Vấn đề không nằm ở ngưỡng 0,10 cho một đặc trưng, mà ở việc chưa hiệu chỉnh cho kiểm định nhiều lần: với 200 đặc trưng, ngưỡng cho mỗi đặc trưng phải chặt hơn nhiều, hoặc dùng hiệu chỉnh Bonferroni hay Benjamini–Hochberg.
(c) Cỡ mẫu để PSI kỳ vọng nhỏ hơn 0,01.
Ngưỡng PSI hợp lý phụ thuộc vào , và số đặc trưng được theo dõi. Ba cách xử lý theo Mục 9.5: tính ngưỡng theo phân phối hoặc bằng mô phỏng; dùng kiểm định có p-value kèm hiệu chỉnh cho kiểm định nhiều lần; và yêu cầu tín hiệu kéo dài qua nhiều lần đo trước khi cảnh báo (Mục 10.5).
Tỉ lệ chuyển đổi nền là 2%. Cần phát hiện một cải thiện tương đối 5% với hai phía và lực kiểm định 80%. (a) Tính cỡ mẫu mỗi nhánh. (b) Mỗi nhánh nhận 40 000 lượt mỗi ngày. Thí nghiệm phải chạy bao lâu? (c) Cần rút thời gian xuống một nửa mà không giảm lực kiểm định. Nêu các cách hợp lệ, và chỉ ra những cách nghe hợp lý nhưng không hợp lệ.
Gợi ý của đề
Xem lời giải chi tiết
(a) Cỡ mẫu mỗi nhánh. Cải thiện tương đối 5% trên nền 2%:
Chênh lệch tuyệt đối chỉ là 0,1 điểm phần trăm; đây là đại lượng đi vào mẫu số của công thức. Với và :
mẫu mỗi nhánh, tức hơn 630 000 mẫu cho cả thí nghiệm.
(b) Thời gian chạy. Với 40 000 lượt mỗi nhánh mỗi ngày: ngày. Trong thực tế nên chạy tròn một hoặc hai tuần để mỗi ngày trong tuần xuất hiện như nhau, tránh ảnh hưởng của chu kỳ tuần.
(c) Rút thời gian xuống một nửa mà không giảm lực kiểm định.
| Cách | Cơ chế | Đánh giá |
|---|---|---|
| Giảm phương sai bằng CUPED | dùng giá trị của chỉ số trong giai đoạn trước thí nghiệm làm biến hiệp phương sai (Mục 8.4) | hợp lệ; giữ nguyên và lực kiểm định. Nếu phương sai giảm 40%, cỡ mẫu còn 189 122, tức 4,7 ngày |
| Tăng tỉ lệ lưu lượng dành cho thí nghiệm | ví dụ từ 10% lên 20% tổng lưu lượng cho mỗi nhánh | hợp lệ, nếu chấp nhận nhiều người dùng hơn tiếp xúc với phiên bản chưa được kiểm chứng |
| Đổi sang chỉ số có phương sai nhỏ hơn | ví dụ chỉ số gần với thay đổi hơn, như tỉ lệ nhấp vào kết quả thay vì tỉ lệ mua hàng | hợp lệ, nhưng phải kiểm tra chỉ số mới vẫn gắn với chỉ số sản phẩm (Mục 6.2) |
| Chỉ phát hiện mức cải thiện lớn hơn | mức cải thiện tương đối 7,11% cho cỡ mẫu 157 602, đúng một nửa | hợp lệ về thống kê, nhưng thay đổi câu hỏi: cải thiện thật 5% sẽ thường không được phát hiện |
| Dừng sớm khi thấy | xem kết quả giữa chừng | không hợp lệ: đây là lỗi peeking ở Mục 8.5, làm tỉ lệ dương tính giả vượt xa 5% |
| Giữ nguyên thiết kế, chỉ chạy 3,9 ngày | không hợp lệ theo đề bài: lực kiểm định giảm từ 80% xuống 51% |
Mức 7,11% gần bằng vì tỉ lệ nghịch với ; chênh lệch nhỏ đến từ việc phương sai cũng thay đổi theo .
Thời gian chạy một A/B test phụ thuộc bốn đại lượng: tỉ lệ nền, mức cải thiện nhỏ nhất cần phát hiện, lưu lượng, và phương sai của chỉ số. Giảm phương sai là cách duy nhất rút ngắn thời gian mà không đổi câu hỏi và không giảm độ tin cậy.
Một yêu cầu xếp hạng gọi song song 25 dịch vụ đặc trưng và phải đợi đủ 25 kết quả mới trả lời. Mỗi dịch vụ có p99 bằng 80 ms, và các dịch vụ độc lập với nhau. (a) Tính tỉ lệ yêu cầu gặp ít nhất một dịch vụ chậm hơn 80 ms. (b) Để p99 của cả yêu cầu bằng 80 ms, mỗi dịch vụ phải đạt phân vị nào? (c) Nêu hai cách giảm phần đuôi mà không cần làm từng dịch vụ nhanh hơn.
Xem lời giải chi tiết
(a) Tỉ lệ yêu cầu gặp ít nhất một dịch vụ chậm. Mỗi dịch vụ chậm hơn p99 của nó với xác suất 0,01, và các dịch vụ độc lập:
Hơn một phần năm số yêu cầu gặp một dịch vụ chậm hơn 80 ms, dù mỗi dịch vụ chỉ chậm như vậy ở 1% số lần gọi.
(b) Phân vị mỗi dịch vụ phải đạt. Cần , nên
tức phân vị khoảng 99,96: mỗi dịch vụ chỉ được chậm hơn 80 ms một lần trong khoảng 2 488 lần gọi. Yêu cầu này chặt hơn p99 khoảng 25 lần, và trong thực tế rất khó đạt bằng cách tối ưu từng dịch vụ.
(c) Hai cách giảm phần đuôi mà không làm từng dịch vụ nhanh hơn.
- Giảm số nhánh. Gộp nhiều đặc trưng vào một lời gọi, hoặc lưu đệm những đặc trưng ít thay đổi. Khi nhỏ, tăng gần tuyến tính theo : giảm từ 25 xuống 10 nhánh làm tỉ lệ gặp nhánh chậm giảm từ 22,2% xuống 9,6%; xuống 5 nhánh thì còn 4,9%.
- Đặt thời hạn chờ và trả lời với kết quả một phần. Dừng chờ ở một mức, chẳng hạn 80 ms, và dùng giá trị mặc định hoặc giá trị lưu đệm cho những nhánh chưa trả lời. Cách này đổi vấn đề độ trễ thành vấn đề chất lượng: mô hình thiếu một đặc trưng thường chỉ kém đi một chút, trong khi một yêu cầu chậm vài trăm mili giây có thể làm người dùng rời đi. Mô hình nên được huấn luyện với cả những trường hợp thiếu đặc trưng như vậy.
Cách thứ ba là yêu cầu dự phòng (Dean và Barroso, 2013): nếu sau một khoảng, ví dụ bằng p95 của dịch vụ, chưa có kết quả thì gửi thêm một yêu cầu tới bản sao khác và dùng kết quả về trước. Cách này tốn thêm một phần nhỏ tài nguyên để cắt phần lớn phần đuôi.
Cho bảng lịch sử đặc trưng và bảng nhãn dưới đây. Viết tập huấn luyện đúng theo thời điểm; chỉ ra tập huấn luyện sai mà một phép JOIN thông thường tạo ra, và cho biết mô hình sẽ học sai điều gì.
Xem lời giải chi tiết
Tập huấn luyện đúng. Với mỗi dòng nhãn, lấy bản ghi đặc trưng có valid_from lớn nhất nhưng không vượt quá event_time:
| user_id | event_time | nhan | tong_don_hang | lấy từ bản ghi |
|---|---|---|---|---|
| 7 | 2026-02-10 | 0 | 3 | valid_from = 2026-01-01 |
| 7 | 2026-04-15 | 1 | 19 | valid_from = 2026-03-01 |
Bản ghi ngày 2026-06-01 (giá trị 52) không được dùng cho dòng nào, vì cả hai sự kiện xảy ra trước ngày đó.
Tập huấn luyện sai. Có hai trường hợp, tuỳ cách ghép.
Ghép với bảng giá trị hiện tại: cả hai dòng đều nhận giá trị 52.
| user_id | event_time | nhan | tong_don_hang |
|---|---|---|---|
| 7 | 2026-02-10 | 0 | 52 |
| 7 | 2026-04-15 | 1 | 52 |
Ghép với bảng lịch sử nhưng thiếu điều kiện thời gian: mỗi dòng nhãn ghép với cả ba bản ghi, cho 6 dòng thay vì 2. Tập dữ liệu vừa chứa thông tin tương lai, vừa bị nhân bản, làm sai cả trọng số của các mẫu.
Mô hình học sai điều gì. Trong tập dữ liệu thật có nhiều khách hàng, những khách ở lại lâu tích luỹ nhiều đơn hàng hơn. Khi mọi dòng dùng giá trị hiện tại, mô hình học quan hệ "số đơn hàng cao thì không rời bỏ". Quan hệ này có thật trong tập huấn luyện, nhưng nó là hệ quả của nhãn chứ không phải nguyên nhân: con số 52 tồn tại vì khách đã ở lại tới tháng 6. Kết quả đánh giá ngoại tuyến tốt, nhưng khi dự đoán thật cho một khách vào tháng 2, giá trị có được là 3 chứ không phải 52, nên mô hình hoạt động kém hơn nhiều so với đánh giá (Mục 4.2).
Cách phòng. Dùng cả hai lớp:
- Ràng buộc trong hợp đồng dữ liệu (Mục 3.3):
valid_from <= event_timephải đúng với mọi dòng của tập huấn luyện. Đây là một kiểm tra chạy tự động được. - Dùng phép ghép theo thời điểm (as-of join) có sẵn trong kho đặc trưng hoặc thư viện dữ liệu, thay vì tự viết
JOIN.
Xếp mỗi tình huống vào covariate shift, label shift hay concept drift, và cho biết có phát hiện được chỉ bằng cách giám sát hay không: (a) Một chiến dịch quảng cáo thu hút nhiều người dùng dưới 25 tuổi. (b) Ngân hàng đổi định nghĩa "nợ xấu" từ quá hạn 90 ngày thành quá hạn 60 ngày. (c) Mùa mua sắm cuối năm làm tỉ lệ giao dịch gian lận tăng gấp ba, nhưng cách gian lận không đổi. (d) Một đối thủ ra mắt tính năng mới, làm thay đổi kỳ vọng của người dùng về một kết quả tìm kiếm tốt.
Gợi ý của đề
Xem lời giải chi tiết
| Tình huống | Loại | Phát hiện được chỉ bằng ? | |
|---|---|---|---|
| (a) | Quảng cáo thu hút nhiều người dùng dưới 25 tuổi | covariate shift | có |
| (b) | Định nghĩa "nợ xấu" đổi từ quá hạn 90 ngày thành 60 ngày | concept drift | không |
| (c) | Tỉ lệ gian lận tăng gấp ba, cách gian lận không đổi | label shift | có, một cách gián tiếp |
| (d) | Kỳ vọng của người dùng về kết quả tìm kiếm tốt thay đổi | concept drift | không |
(a) thay đổi: phân phối tuổi dịch về phía trẻ hơn. Quan hệ giữa hồ sơ và hành vi không đổi, tức giữ nguyên. Dễ phát hiện qua phân phối của đặc trưng tuổi.
(b) Đây là trường hợp rõ nhất của concept drift, vì chính định nghĩa của nhãn thay đổi. Hồ sơ khách hàng đi vào hệ thống như cũ, nên không đổi; nhưng với cùng một hồ sơ, xác suất bị gắn nhãn "nợ xấu" tăng lên. Mọi phép kiểm tra trên đều không thấy gì, như kịch bản concept drift ở Mục 9.2.
(c) tăng gấp ba, còn , tức đặc điểm của một giao dịch gian lận, giữ nguyên. Phát hiện được qua một cách gián tiếp: vì là một hỗn hợp, thay đổi tỉ lệ hỗn hợp làm phân phối của thay đổi theo. Độ chính xác có thể gần như không đổi (như kịch bản label shift ở Mục 9.2), nhưng precision, recall và hiệu chuẩn xác suất thay đổi. Nếu ngưỡng quyết định được đặt cho tỉ lệ nền 1% mà nay tỉ lệ nền là 3%, số giao dịch bị đánh dấu thay đổi theo; đây là vấn đề ngưỡng cố định ở Mục 10.6.
(d) Truy vấn của người dùng có thể giữ nguyên, nhưng kết quả được coi là tốt đã thay đổi, tức thay đổi. Trường hợp này khó hơn (b), vì không có sự kiện nào trong hệ thống đánh dấu thời điểm thay đổi xảy ra: nguyên nhân nằm ở bên ngoài, đúng như phần Dealing with Changes in the External World của Sculley và cộng sự (2015).
Hai trong bốn trường hợp không phát hiện được bằng cách giám sát , và đó là hai trường hợp gây hại nhiều nhất cho độ chính xác. Vì vậy thiết kế giám sát phải bắt đầu bằng câu hỏi ở Mục 3.5: sau bao lâu thì biết nhãn thật?
Một nhóm có: lược đồ đặc trưng đầy đủ và kiểm thử đơn vị cho toàn bộ mã tính đặc trưng, chạy tự động; huấn luyện tái lập được và kiểm thử tích hợp toàn pipeline, chạy tự động; canary và quay lui tự động. Về giám sát, nhóm chỉ có một biểu đồ độ trễ để xem khi cần, không có cảnh báo tự động và không có mục nào khác thuộc nhóm giám sát. Đề bài không nói gì về các mục của nhóm phát triển mô hình. (a) Tính điểm ML Test Score của nhóm và giải thích vì sao quy tắc lấy giá trị nhỏ nhất cho ra con số đó. (b) Nhóm nên làm gì đầu tiên để tăng điểm?
Xem lời giải chi tiết
(a) Chấm từng nhóm. Nhắc lại thang điểm ở Mục 6.5: 0,5 điểm nếu làm thủ công và có ghi lại kết quả, 1 điểm nếu có hệ thống chạy tự động và định kỳ.
| Nhóm | Các mục đạt | Điểm |
|---|---|---|
| Dữ liệu | Data 1 (lược đồ, tự động) = 1; Data 7 (kiểm thử mã đặc trưng, tự động) = 1 | 2 |
| Phát triển mô hình | đề bài không nêu mục nào | 0 |
| Hạ tầng | Infra 1 (tái lập) = 1; Infra 3 (kiểm thử tích hợp) = 1; Infra 6 (canary) = 1; Infra 7 (quay lui) = 1 | 4 |
| Giám sát | một biểu đồ độ trễ để xem khi cần, không có quy trình định kỳ và không ghi lại kết quả, nên chưa đủ cho Monitor 6 | 0 |
Kể cả nếu biểu đồ độ trễ được xem định kỳ và có ghi lại kết quả, nhóm giám sát chỉ được 0,5 điểm cho Monitor 6, và điểm cuối cùng vẫn là 0 vì nhóm phát triển mô hình bằng 0.
Quy tắc lấy giá trị nhỏ nhất được chọn vì cả bốn nhóm đều cần thiết. Nhóm này có hạ tầng tốt hơn nhiều hệ thống thực tế (4 trên 7 mục, đều tự động), nhưng theo bảng diễn giải của bài báo, điểm 0 nghĩa là hệ thống "giống một dự án nghiên cứu hơn là một hệ thống sản xuất". Nhận định này có cơ sở: hạ tầng tốt làm việc triển khai nhanh hơn, kể cả triển khai một mô hình đã hỏng, và khi không có giám sát thì không ai biết mô hình đang hoạt động tốt hay không.
(b) Nên làm gì đầu tiên. Vì điểm là giá trị nhỏ nhất của bốn nhóm, đầu tư thêm vào nhóm hạ tầng không làm tăng điểm. Phải nâng cả hai nhóm đang bằng 0. Thứ tự đề xuất, theo tỉ lệ lợi ích trên công sức:
- Monitor 3, đặc trưng lúc huấn luyện và lúc phục vụ tính ra cùng giá trị. Nhóm đã có canary, nên chỉ cần ghi lại giá trị đặc trưng ở cả hai đường và so sánh. Mục này phát hiện một trong những lỗi tốn kém nhất (Mục 4.1).
- Monitor 7, chất lượng dự đoán không suy giảm. Khi nhãn đến trễ, bắt đầu bằng độ lệch dự đoán theo lát cắt (Mục 10.3).
- Monitor 6, thêm cảnh báo tự động cho độ trễ và bộ nhớ dựa trên biểu đồ đã có; đây là việc rẻ nhất.
- Model 6, chất lượng đủ tốt trên mọi lát cắt quan trọng: rẻ, và phát hiện đúng loại vấn đề ở Mục 6.3.
- Model 4, đã biết ảnh hưởng của việc mô hình cũ đi: một thí nghiệm như Mục 11.1 trên dữ liệu lịch sử, đồng thời trả lời câu hỏi về nhịp huấn luyện lại.
Năm việc trên, nếu tự động hoá, đưa hai nhóm đang bằng 0 lên khoảng 2 hoặc 3 điểm, và điểm cuối cùng lên 2, tức mức "đã có bước đầu đưa vào sản xuất", mà không cần thay đổi hạ tầng.
Sửa phần (G) của code/mlops/experiments.py để chạy với ba tốc độ dịch chuyển 0,010, 0,035 và 0,080 radian mỗi tuần, và thêm nhịp huấn luyện lại 2 tuần một lần. Với mỗi tốc độ, tìm nhịp thưa nhất mà độ chính xác trung bình không kém nhịp hằng tuần quá 1 điểm phần trăm. Rút ra quan hệ giữa tốc độ dịch chuyển và nhịp huấn luyện lại hợp lý.
Xem lời giải chi tiết
Kết quả từ bai_tap.py, dùng cùng mô phỏng như phần (G) của experiments.py, với ba tốc độ dịch chuyển và năm nhịp huấn luyện lại. Độ chính xác trung bình qua 52 tuần:
| Tốc độ dịch chuyển | Không bao giờ | Mỗi quý | Mỗi tháng | Mỗi 2 tuần | Mỗi tuần | Nhịp thưa nhất trong 1 điểm so với hằng tuần |
|---|---|---|---|---|---|---|
| 0,010 rad/tuần (chậm) | 76,15% | 77,67% | 77,74% | 77,76% | 77,76% | mỗi quý |
| 0,035 rad/tuần (vừa) | 64,61% | 76,89% | 77,68% | 77,78% | 77,80% | mỗi quý |
| 0,080 rad/tuần (nhanh) | 45,08% | 73,04% | 76,96% | 77,50% | 77,66% | mỗi tháng |
Hàng giữa trùng với bảng ở Mục 11.1, vì dùng cùng mô phỏng và cùng hạt giống.
Tốc độ dịch chuyển ảnh hưởng mạnh nhất tới cột "không bao giờ": khi tốc độ tăng 8 lần, thiệt hại của việc không huấn luyện lại tăng từ 1,6 lên 32,6 điểm phần trăm, trong khi nhịp cần thiết chỉ chuyển từ mỗi quý sang mỗi tháng. Nhịp hợp lý có thưa dần khi dịch chuyển chậm lại, nhưng thay đổi ít. Một khi mô hình được huấn luyện lại đủ thường để bám sát dữ liệu hiện tại, thiệt hại còn lại chỉ tăng theo lượng dịch chuyển tích luỹ giữa hai lần huấn luyện, nên làm dày nhịp thêm chỉ giảm được một phần nhỏ. Ở cả ba tốc độ, phần lớn lợi ích đến từ bước đầu tiên, từ "không bao giờ" lên "mỗi quý"; các bước sau nhỏ hơn nhiều.
Từ đó có một quy tắc thực hành: chạy thí nghiệm này trên dữ liệu lịch sử của chính bài toán, rồi chọn nhịp thưa nhất mà chênh lệch so với nhịp dày nhất nằm trong mức chấp nhận được về mặt kinh doanh. Ở tốc độ vừa, chênh lệch giữa hằng tuần và hằng quý chỉ 0,91 điểm, trong khi số lần huấn luyện gấp 13 lần.
Trong phần (H) của code/mlops/experiments.py, cho chạy từ 0 tới 0,5 với bước 0,1 (tức từ 0 tới 5 vị trí ngẫu nhiên trong danh sách 10 món). Với mỗi , đo hai đại lượng: chất lượng thật của 10 món mà hệ thống xếp đầu ở vòng cuối, và chất lượng thật trung bình của các món đã thực sự hiển thị cho người dùng.
(a) Theo mỗi đại lượng, có giá trị tốt nhất không? Giải thích hình dạng của các đường cong.
(b) Điều gì thay đổi khi số vòng tăng từ 30 lên 300?
Xem lời giải chi tiết
Kết quả từ bai_tap.py. Mô phỏng giống phần (H) của experiments.py, nhưng dùng một danh mục sinh với hạt giống riêng: chất lượng trung bình của 10 món tốt nhất là 0,610 (so với 0,555 ở Mục 12.3). Mỗi cấu hình là trung bình của 20 lần chạy. Hai đại lượng được đo:
- Chất lượng của danh sách xếp hạng: chất lượng thật trung bình của 10 món mà hệ thống xếp đầu ở vòng cuối, tức những gì hệ thống biết.
- Chất lượng giao tới người dùng: chất lượng thật trung bình của các món đã thực sự hiển thị, gồm cả các món ngẫu nhiên, tính trên cả kỳ và trên 5 vòng cuối.
Với 30 vòng:
| 0 | 0,1 | 0,2 | 0,3 | 0,4 | 0,5 | |
|---|---|---|---|---|---|---|
| Chất lượng danh sách, vòng cuối | 0,360 | 0,390 | 0,404 | 0,425 | 0,431 | 0,453 |
| Tỉ lệ so với mức tối đa | 59% | 64% | 66% | 70% | 71% | 74% |
| Chất lượng giao, cả kỳ | 0,3480 | 0,3495 | 0,3389 | 0,3302 | 0,3108 | 0,2932 |
| Chất lượng giao, 5 vòng cuối | 0,3604 | 0,3744 | 0,3686 | 0,3626 | 0,3428 | 0,3246 |
(a) Có giá trị tốt nhất không? Tuỳ đại lượng:
- Theo chất lượng danh sách: không. Đại lượng này tăng đơn điệu theo trên cả khoảng: càng khám phá nhiều, hệ thống càng biết rõ danh mục.
- Theo chất lượng giao tới người dùng: có, ở , tức một vị trí ngẫu nhiên trong mười. Trên 5 vòng cuối, cho 0,3744 so với 0,3604 khi không ngẫu nhiên hoá; trên cả kỳ hai giá trị gần bằng nhau (0,3495 so với 0,3480), nghĩa là trong 30 vòng, một vị trí ngẫu nhiên đã bù đủ cho chi phí của nó. Với , chất lượng giao trên cả kỳ giảm còn 0,2932, thấp hơn 16% so với mức tốt nhất.
Hình dạng của các đường cong phản ánh đánh đổi giữa khai thác và khám phá. Lợi ích của khám phá (hệ thống biết thêm về danh mục) tăng theo nhưng tăng chậm dần. Chi phí của khám phá (mỗi vị trí ngẫu nhiên hiển thị một món có chất lượng trung bình chỉ khoảng 0,154) tăng tuyến tính theo . Tổng của một hàm tăng chậm dần và một hàm giảm tuyến tính có cực đại ở bên trong khoảng, lệch về phía nhỏ.
(b) Khi số vòng tăng lên 300:
| 0 | 0,1 | 0,2 | 0,3 | 0,4 | 0,5 | |
|---|---|---|---|---|---|---|
| Chất lượng danh sách, vòng cuối | 0,360 | 0,488 | 0,518 | 0,541 | 0,559 | 0,570 |
| Tỉ lệ so với mức tối đa | 59% | 80% | 85% | 89% | 92% | 93% |
| Chất lượng giao, cả kỳ | 0,3590 | 0,4237 | 0,4187 | 0,4034 | 0,3864 | 0,3602 |
| Chất lượng giao, 5 vòng cuối | 0,3601 | 0,4615 | 0,4588 | 0,4424 | 0,4153 | 0,3817 |
Ba thay đổi:
- Không ngẫu nhiên hoá thì không có gì thay đổi. Với , chất lượng danh sách vẫn là 0,360 sau 300 vòng, như sau 30 vòng: hệ thống chỉ hiển thị các món đã gặp ở vòng khởi động, và thêm thời gian không giúp nó học thêm.
- Giá trị của khám phá tăng mạnh theo độ dài thời gian. Với 30 vòng, chỉ hơn khoảng 0,4% về chất lượng giao trên cả kỳ; với 300 vòng, mức chênh là 18% (0,4237 so với 0,3590). Thông tin thu được từ khám phá được dùng trong nhiều vòng hơn.
- Giá trị tốt nhất vẫn là , giá trị khác 0 nhỏ nhất trong mô phỏng này (vì phải là số nguyên vị trí). Khoảng cách giữa và thu hẹp lại, vì khi đã biết khá rõ danh mục, lợi ích của khám phá thêm giảm nhanh.
Nhận xét này phù hợp với các chiến lược giảm dần theo thời gian, và với các thuật toán bandit mà Sculley và cộng sự nhắc tới ở Mục 12.1: khám phá nhiều khi còn biết ít, ít dần khi đã biết đủ. Các thuật toán như UCB hay Thompson sampling còn hiệu quả hơn, vì chúng hướng việc khám phá vào những món chưa chắc chắn thay vì chọn ngẫu nhiên đều.
Kết luận cho thực tế. Một mức ngẫu nhiên hoá nhỏ gần như luôn có lợi: nó bù đủ chi phí của mình sau một số vòng, và cung cấp nguồn dữ liệu không bị mô hình làm sai lệch (Mục 12.4). Mức lớn thì làm giảm chất lượng người dùng nhận được. Giá trị cụ thể phụ thuộc kích thước danh mục và độ dài thời gian, nên cần đo trên chính hệ thống.
Thiết kế hệ thống giám sát cho một mô hình phát hiện gian lận có độ trễ nhãn 30 ngày (tranh chấp giao dịch mất một tháng mới được xác nhận). Nêu rõ: giám sát gì ở mỗi lớp trong bốn lớp ở Mục 10.2; chỉ số nào đủ quan trọng để gọi người trực lúc nửa đêm; và phát hiện concept drift bằng cách nào khi nhãn đến trễ một tháng.
Xem lời giải chi tiết
Ràng buộc chính: nhãn trễ 30 ngày. Chỉ số chất lượng thật luôn phản ánh tình hình của một tháng trước, nên không thể dùng làm cảnh báo sớm; nó dùng để xác nhận và hiệu chỉnh.
Bốn lớp giám sát.
| Lớp | Giám sát gì | Tần suất | Mục đích |
|---|---|---|---|
| 1. Đầu vào thô | lô dữ liệu tới đúng giờ; số bản ghi trong khoảng 0,7 tới 1,4 lần trung vị 7 ngày; lược đồ khớp; tỉ lệ giá trị thiếu từng cột | mỗi lô | dừng pipeline khi có lỗi cứng |
| 2. Đặc trưng | phân phối từng đặc trưng so với tham chiếu cố định và tham chiếu trượt 30 ngày; tỉ lệ giá trị danh mục lạ; so sánh giá trị đặc trưng giữa đường huấn luyện và đường phục vụ | hằng ngày | phát hiện covariate shift và lệch huấn luyện–phục vụ |
| 3. Dự đoán | phân phối điểm số; tỉ lệ giao dịch bị đánh dấu; độ lệch dự đoán theo lát cắt (thị trường, kênh, hạng khách hàng, loại thẻ) | hằng giờ | lớp giám sát chính, không cần nhãn |
| 4. Chất lượng | precision và recall trên nhãn đã có, AUC, số tiền thiệt hại chặn được | hằng tuần, trễ 30 ngày | xác nhận và hiệu chỉnh |
Chỉ số đủ quan trọng để gọi người trực lúc nửa đêm. Chỉ ba, đều là triệu chứng (Mục 10.5):
- Pipeline dừng hoặc không có dữ liệu tới: không có dự đoán là sự cố tức thời.
- Tỉ lệ giao dịch bị đánh dấu lệch xa khỏi khoảng lịch sử, ví dụ tỉ lệ nền 1,2% mà tăng lên 4,5% hoặc giảm xuống 0,2%. Cả hai chiều đều nguy hiểm: tăng thì chặn nhầm khách hàng thật, giảm thì để lọt gian lận.
- Chạm giới hạn hành động, ví dụ số tài khoản bị khoá trong một giờ vượt mức trần (Mục 10.4). Đây là lớp an toàn cuối cùng, không cần biết mô hình đúng hay sai.
Các tín hiệu khác, như PSI của một đặc trưng hay thay đổi của phân phối điểm số, được đưa vào phiếu xử lý hoặc bảng theo dõi.
Phát hiện concept drift khi nhãn trễ một tháng. Mục 9.2 cho thấy giám sát không phát hiện được concept drift, nên cần các nguồn tín hiệu về nhãn đến sớm hơn:
| Nguồn | Độ trễ | Ghi chú |
|---|---|---|
| Nhãn thay thế đến sớm | vài giờ tới vài ngày | khách hàng khiếu nại giao dịch bị chặn; giao dịch bị hoàn tiền thủ công; kết luận của nhóm điều tra nội bộ |
| Nhân viên rà soát | trong ngày | nhóm chống gian lận xem xét một mẫu các giao dịch, tạo ra một tập nhãn nhỏ nhưng nhanh |
| Nhóm đối chứng | theo nhịp nhãn | một tỉ lệ nhỏ giao dịch không chịu tác động của mô hình, cho ước lượng không bị sai lệch về tỉ lệ gian lận thật (Mục 12.4) |
| Nhãn thật | 30 ngày | xác nhận và hiệu chỉnh ba nguồn trên |
Điểm quan trọng trong thiết kế: mẫu cho nhân viên rà soát nên được chọn có chủ đích, không chọn đều. Ưu tiên các giao dịch gần ngưỡng quyết định và các giao dịch thuộc lát cắt đang có tín hiệu bất thường ở lớp 3, vì đó là nơi mỗi nhãn mang nhiều thông tin nhất.
Ngoài ra, theo Mục 10.6: tỉ lệ gian lận thay đổi theo mùa (label shift, Bài 5c), nên ngưỡng quyết định phải được xác định lại mỗi lần huấn luyện lại và lưu cùng mô hình, không phải là một hằng số trong tệp cấu hình.
Thiết kế quy trình đánh giá cho một trợ lý hỏi đáp dùng RAG trên tài liệu nội bộ của công ty, với 50 000 lượt hỏi mỗi ngày và ngân sách đánh giá bằng 3% chi phí suy luận. Nêu rõ: ba tầng đánh giá và tỉ lệ lấy mẫu của từng tầng; cách tách lỗi truy xuất khỏi lỗi sinh; và cách phát hiện khi chính giám khảo LLM thay đổi hành vi.
Xem lời giải chi tiết
Ràng buộc. 50 000 lượt mỗi ngày; ngân sách đánh giá bằng 3% chi phí suy luận. Nếu một lượt gọi giám khảo tốn xấp xỉ một lượt phục vụ, ngân sách này cho phép chấm khoảng 1 500 lượt mỗi ngày. Con số này quyết định các tỉ lệ lấy mẫu dưới đây; nếu giám khảo dùng mô hình rẻ hơn mô hình phục vụ, có thể chấm nhiều hơn.
Ba tầng đánh giá.
| Tầng | Tỉ lệ | Chi phí | Kiểm tra gì |
|---|---|---|---|
| Kiểm tra theo quy tắc | mọi lượt (50 000 mỗi ngày) | gần như bằng 0 | có trích dẫn không; trích dẫn có trỏ tới đoạn thật trong ngữ cảnh không; độ dài trong khoảng cho phép; định dạng hợp lệ; không lộ dữ liệu cá nhân; từ chối khi câu hỏi ngoài phạm vi |
| Giám khảo LLM | khoảng 3% (1 500 mỗi ngày) | khoảng 3% chi phí suy luận | độ trung thành với ngữ cảnh, mức liên quan của câu trả lời, mức liên quan của ngữ cảnh, giọng văn |
| Người chấm | khoảng 100 lượt mỗi tuần | thời gian của người | đánh giá chuẩn để hiệu chỉnh giám khảo |
Mẫu cho tầng 2 không nên chọn đều. Khoảng một nửa chọn ngẫu nhiên, để có ước lượng không bị sai lệch về chất lượng chung; nửa còn lại chọn có chủ đích: các lượt bị tầng 1 đánh dấu nghi ngờ, các lượt có điểm truy xuất thấp, các chủ đề mới xuất hiện.
Tách lỗi truy xuất khỏi lỗi sinh (Mục 13.5). Với mỗi lượt được chấm, cần trả lời hai câu hỏi riêng:
1. Tài liệu cần thiết có nằm trong ngữ cảnh không?
→ cần một tập câu hỏi có nhãn tài liệu đúng; đo recall@k, MRR
→ nếu không: lỗi truy xuất; sửa cách chia đoạn, mô hình embedding, tìm kiếm kết hợp, xếp hạng lại
2. Nếu có, câu trả lời có được ngữ cảnh hỗ trợ không?
→ đo độ trung thành bằng giám khảo, yêu cầu trích dẫn cho từng khẳng định
→ nếu không: lỗi sinh; sửa prompt, đổi mô hình, yêu cầu trích dẫn
Bản ghi vết phải lưu danh sách các đoạn đã truy xuất và điểm truy xuất của chúng. Nếu không lưu từ đầu thì sau này không tách được hai loại lỗi, tương tự việc phải ghi lại xác suất hiển thị ở Mục 12.4.
Hai vòng đánh giá.
- Tập đánh giá chuẩn làm bước kiểm định trước khi phát hành: khoảng 200 tới 500 câu hỏi, gồm cả câu khó, có nhãn tài liệu đúng và câu trả lời tham chiếu. Phải đạt trước mọi thay đổi của bất kỳ thành phần nào trong sáu thành phần phiên bản ở Mục 13.8: prompt, phiên bản mô hình, cấu hình truy xuất, ảnh chụp kho tài liệu, định nghĩa công cụ, tiêu chí chấm. Mục 12.4 của giáo trình Ứng dụng LLM cho thấy vài trăm câu đủ để phát hiện khác biệt lớn nhưng không đủ cho khác biệt vài điểm phần trăm, nên các thay đổi nhỏ cần so sánh ghép cặp.
- Chấm mẫu trực tuyến như bảng trên, gắn điểm vào bản ghi vết để truy lại từng lượt.
Tập đánh giá chuẩn phải được cập nhật: mỗi sự cố trong sản xuất nên tạo ra ít nhất một câu hỏi mới trong tập (Mục 13.4).
Phát hiện khi giám khảo thay đổi hành vi. Bốn cơ chế:
- Đo mức đồng thuận giữa giám khảo và người chấm trên mẫu hằng tuần, và theo dõi theo thời gian. Mức đồng thuận giảm là dấu hiệu giám khảo đã thay đổi.
- Giữ một tập neo cố định: khoảng 50 cặp câu hỏi và câu trả lời đã được người chấm, điểm được giữ cố định. Cho giám khảo chấm lại hằng tuần. Nếu điểm trên tập neo thay đổi trong khi nội dung không đổi, thì thứ thay đổi là giám khảo, hoặc phiên bản mô hình của nhà cung cấp.
- Dùng định danh phiên bản cố định cho mô hình giám khảo, và coi mỗi lần nâng cấp là một lần phát hành: chạy song song phiên bản cũ và mới trên tập neo trước khi chuyển.
- Kiểm tra thiên lệch định kỳ (Mục 13.3): hỏi lại với thứ tự đảo để đo thiên lệch vị trí; xem tương quan giữa điểm và độ dài câu trả lời để đo thiên lệch độ dài.
Cơ chế 2 rẻ nhất và hữu ích nhất, vì nó phân biệt được hai trường hợp mà nhìn từ bên ngoài giống hệt nhau: hệ thống kém đi, và thước đo thay đổi.
Trắc nghiệm theo chương#
63 câu bám sát nội dung và số liệu của từng chương. Đáp án được xáo lại mỗi lần tải trang.
Chương 1 — Nợ kỹ thuật trong hệ thống học máy
5 câu
1Nguyên lý CACE phát biểu điều gì?
Vì sao: Changing Anything Changes Everything (Sculley và cộng sự, 2015). Thêm hay bớt một đặc trưng làm trọng số của mọi đặc trưng khác thay đổi; nguyên lý áp dụng cả cho siêu tham số, cách lấy mẫu và ngưỡng hội tụ. Vì vậy không có thay đổi nào là nhỏ và cô lập trong một mô hình.2Nhận định "5% mã học máy, 95% mã keo" nói về điều gì?
Vì sao: Bài báo diễn đạt có giới hạn: nhiều nhất 5% mã học máy và ít nhất 95% mã keo; đây là nhận định định tính. Kết luận đi kèm: đôi khi tự viết một giải pháp gọn còn rẻ hơn dùng lại thư viện đa dụng, và nên bọc các thư viện sau một giao diện chung.3Correction cascade là gì?
Vì sao: Cách này nhanh trước mắt nhưng tạo ra phụ thuộc mới vào mô hình gốc, khiến việc cải thiện mô hình gốc trở nên tốn kém vì có thể làm hỏng mô hình phía sau.4Trường hợp nào không thuộc nhóm phụ thuộc dữ liệu ít giá trị (underutilized data dependency)?
Vì sao: Ba trường hợp đầu là phụ thuộc dữ liệu ít giá trị; trường hợp cuối là phụ thuộc dữ liệu không ổn định, một dạng nợ khác. Cách phát hiện phụ thuộc ít giá trị mà bài báo đề xuất là định kỳ đánh giá lại mô hình khi bỏ từng đặc trưng.5Vì sao lỗi của hệ thống học máy thường khó phát hiện hơn lỗi của phần mềm thông thường?
Đã trả lời 0/5
Chương 2 — Vòng đời của hệ thống học máy
4 câu
1Ba yếu tố quyết định thành công theo nghiên cứu phỏng vấn của Shankar và cộng sự (2022) là gì?
Vì sao: Tốc độ: đi nhanh từ ý tưởng tới mô hình đã huấn luyện. Kiểm định: phát hiện ý tưởng kém và lỗi càng sớm càng tốt. Phiên bản: quản lý nhiều phiên bản mô hình và dữ liệu để quay lui được.2Huấn luyện liên tục (CT) khác CI/CD ở điểm nào?
Vì sao: Trong phần mềm thông thường, hệ thống chỉ thay đổi khi có người sửa mã. Trong học máy, dữ liệu thay đổi theo thế giới và mô hình cũ dần, nên cần tự động huấn luyện lại. Tạo tác của học máy gồm mã, dữ liệu và mô hình, thay đổi theo ba nhịp khác nhau.3Ở mức 1 của ba mức tự động hoá, thứ được bàn giao là gì?
Vì sao: Mức 0 bàn giao một mô hình, mức 1 bàn giao pipeline huấn luyện (có huấn luyện liên tục), mức 2 bàn giao một hệ thống có CI/CD cho chính pipeline.4Thói quen keeping GPUs warm sai ở đâu?
Vì sao: Chạy càng nhiều thí nghiệm càng tốt nghe như tận dụng tài nguyên, nhưng thí nghiệm không có giả thuyết tạo ra nhiều kết quả khó diễn giải và nhiều phiên bản phải quản lý.
Đã trả lời 0/4
Chương 3 — Dữ liệu
4 câu
1Ba loại lỗi dữ liệu (cứng, mềm, dịch chuyển) cần mấy cách phản ứng?
Vì sao: Dùng chung một cơ chế cảnh báo cho cả ba loại là nguyên nhân phổ biến của báo động giả, khó khăn được nhắc nhiều nhất trong nghiên cứu của Shankar và cộng sự.2Vì sao lỗi mềm khó phát hiện hơn lỗi cứng?
Vì sao: Một số trường bị thiếu hay một đơn vị tính bị đổi không vi phạm ràng buộc nào, nhưng làm dự đoán lệch dần. Vì vậy lỗi mềm được theo dõi theo tỉ lệ thay vì dừng pipeline.3Hậu quả nghiêm trọng nhất của báo động giả là gì?
Vì sao: Khi phần lớn cảnh báo là giả, hệ thống cảnh báo tạo ra cảm giác an toàn không có cơ sở (Mục 10.5).4Tầng nào của hợp đồng dữ liệu phát hiện được một lô dữ liệu có số dòng chỉ bằng một nửa bình thường?
Vì sao: Mỗi dòng trong lô có thể hoàn toàn hợp lệ về lược đồ và miền giá trị; chỉ khi so sánh với các lô trước mới thấy thiếu dữ liệu. Vi phạm tầng 3 và 4 thường là lỗi mềm, nên cảnh báo thay vì dừng pipeline.
Đã trả lời 0/4
Chương 4 — Đặc trưng
4 câu
1Lệch giữa huấn luyện và phục vụ (training–serving skew) là gì?
Vì sao: Thường vì có hai bản cài đặt riêng: một truy vấn SQL khi huấn luyện và một đoạn mã viết lại trong dịch vụ phục vụ. Loại lỗi này không gây ra lỗi chương trình nào; mô hình vẫn chạy nhưng kém đi.2Tính đúng theo thời điểm đòi hỏi điều gì?
Vì sao: Vi phạm tính chất này là đưa thông tin tương lai vào tập huấn luyện. Nó làm kết quả đánh giá ngoại tuyến tốt lên, nên thường chỉ bị phát hiện sau khi triển khai.3Khi nào không cần xây dựng kho đặc trưng?
Vì sao: Kho đặc trưng đáng đầu tư khi có đồng thời: nhiều mô hình dùng chung đặc trưng, phục vụ trực tuyến với độ trễ thấp, và đặc trưng phụ thuộc thời gian. Thiếu các điều kiện đó, một bảng trong kho dữ liệu cộng với một hàm biến đổi dùng chung là đủ.4Loại rò rỉ nào không có kiểm tra tự động nào phát hiện được?
Vì sao: Ví dụ "số lần gọi tổng đài sau sự cố" để dự đoán "khách có gặp sự cố không": hợp lệ về thời gian nhưng là hệ quả của nhãn. Chỉ có cách xem xét từng đặc trưng: tại thời điểm dự đoán, giá trị này đã tồn tại chưa, và nó có tồn tại vì nhãn không?
Đã trả lời 0/4
Chương 5 — Tính lặp lại của thí nghiệm
4 câu
1Vì sao
cudnn.benchmark = Truelàm mất tính tất định?Vì sao: Cùng với các tiến trình con của DataLoader và số GPU, đây là những điểm hay bị bỏ sót khi cố định các yếu tố để tái lập kết quả.2Đổi từ 4 sang 8 GPU mà giữ nguyên kích thước lô trên mỗi GPU thì điều gì thay đổi?
Vì sao: Vì vậy số GPU là một siêu tham số. Ngay cả khi giữ kích thước lô hiệu dụng, thứ tự cộng gradient thay đổi, và vì phép cộng số thực dấu phẩy động không có tính kết hợp, kết quả khác đi ở những chữ số cuối.3Ghi lại giả thuyết cần kiểm tra trước khi chạy thí nghiệm giúp tránh thói quen xấu nào?
Vì sao: Nếu giả thuyết được ghi lại trước khi chạy, không thể gắn một lời giải thích vào sau khi đã thấy kết quả.4Thẻ mô hình (model card) chứa những thông tin gì?
Vì sao: Mitchell và cộng sự (2019) đề xuất thẻ mô hình để những hiểu biết về mô hình không chỉ nằm trong đầu người huấn luyện mà đi cùng mô hình trong sổ đăng ký.
Đã trả lời 0/4
Chương 6 — Đánh giá mô hình trước khi triển khai
4 câu
1Trong thí nghiệm đánh giá theo lát cắt ở Mục 6.3, điều gì xảy ra?
Vì sao: Đặc trưng mới chỉ có thông tin với khách hàng cũ, nên mô hình học cho nó trọng số lớn (2,28); với khách hàng mới, trọng số lớn đó đưa nhiễu vào dự đoán. Đây là một ví dụ đo được của nguyên lý CACE.2ML Test Score cuối cùng được tính thế nào?
Vì sao: Mỗi mục được 0,5 điểm nếu làm thủ công có ghi lại kết quả, 1 điểm nếu tự động và định kỳ. Lấy giá trị nhỏ nhất vì cả bốn nhóm đều cần thiết: hệ thống có hạ tầng hoàn hảo mà không có giám sát vẫn có điểm 0.3Mục Monitor 6 của ML Test Score kiểm tra điều gì?
Vì sao: Chất lượng dự đoán là Monitor 7; đặc trưng khớp giữa huấn luyện và phục vụ là Monitor 3; độ cũ của mô hình là Monitor 4.4Ba loại kiểm thử hành vi theo CheckList là gì?
Vì sao: Một mô hình có thể tăng một điểm độ chính xác trung bình mà sai ở một trường hợp hiển nhiên; chỉ số trung bình không phát hiện được điều đó, kiểm thử hành vi thì có (Ribeiro và cộng sự, 2020).
Đã trả lời 0/4
Chương 7 — Phục vụ mô hình
4 câu
1Vì sao theo dõi p99 thay vì độ trễ trung bình?
Vì sao: Với nhánh độc lập, phân vị của giá trị lớn nhất là : để cả yêu cầu đạt p99 với , mỗi nhánh phải đạt phân vị 99,99.2Một yêu cầu gọi 100 dịch vụ song song, mỗi dịch vụ chậm hơn p99 của nó ở 1% số lần gọi. Bao nhiêu phần trăm yêu cầu gặp ít nhất một dịch vụ chậm?
Vì sao: . Giảm độ trễ trung bình không giải quyết được; các cách xử lý là giảm số nhánh, đặt thời hạn chờ và trả lời với kết quả một phần, hoặc gửi yêu cầu dự phòng (Dean và Barroso, 2013).3Trong ví dụ ngân sách độ trễ 150 ms ở Mục 7.2, giảm thời gian suy luận từ 60 ms xuống 30 ms làm tổng thời gian giảm bao nhiêu?
Vì sao: 30 ms trên tổng 150 ms. Suy luận mô hình chỉ là một phần của ngân sách; bỏ một lần tra cứu đặc trưng thừa có thể giảm nhiều hơn.4Khi so sánh mô hình gốc với mô hình đã xuất sang ONNX, vì sao thường dùng dung sai thay vì đòi trùng khớp từng bit?
Vì sao: Phép cộng số thực dấu phẩy động không có tính kết hợp, nên thứ tự tính khác nhau cho kết quả khác nhau ở những chữ số cuối. Kiểm thử so sánh vẫn bắt buộc, chỉ là với một dung sai hợp lý.
Đã trả lời 0/4
Chương 8 — Triển khai mô hình mới
6 câu
1Canary không trả lời được câu hỏi nào?
Vì sao: Ở vài phần trăm lưu lượng, chỉ số sản phẩm gần như chắc chắn không đủ mẫu để có ý nghĩa thống kê. Canary bảo vệ khỏi sự cố lớn; A/B test trả lời câu hỏi về giá trị.2Với tỉ lệ nền 5%, cần khoảng bao nhiêu mẫu mỗi nhánh để phát hiện một cải thiện tương đối 1% với lực kiểm định 80%?
Vì sao: Chính xác là 2 996 694, tức khoảng một tháng lưu lượng nếu mỗi nhánh nhận 100 000 lượt mỗi ngày. Vì vậy các ý tưởng kém nên được loại bằng những cách rẻ hơn trước khi dùng lưu lượng cho A/B test.3Cỡ mẫu A/B test phụ thuộc mức chênh lệch cần phát hiện như thế nào?
Vì sao: Muốn phát hiện một chênh lệch nhỏ bằng một nửa thì cần gấp bốn lần số mẫu.4CUPED giảm cỡ mẫu cần thiết bằng cách nào?
Vì sao: Đây là cách rút ngắn thí nghiệm mà không đổi câu hỏi và không giảm độ tin cậy của kết luận (Deng và cộng sự, 2013).5Xem kết quả giữa chừng (peeking) trong A/B test là gì và vì sao sai?
Vì sao: Cách xử lý: cố định cỡ mẫu trước khi chạy, hoặc dùng các phương pháp thiết kế cho việc theo dõi liên tục như kiểm định tuần tự.6Thí nghiệm thiết kế chia 50/50 nhưng một nhánh có ít hơn nhánh kia 3% số người dùng, với hàng triệu người dùng mỗi nhánh. Nên làm gì?
Vì sao: Với hàng triệu người dùng, chênh lệch 3% lớn hơn rất nhiều so với dao động ngẫu nhiên, và kiểm định khi bình phương sẽ bác bỏ tỉ lệ 50/50. Khi đó kết quả không đáng tin, dù p-value của chỉ số chính là bao nhiêu (Kohavi và cộng sự, 2020).
Đã trả lời 0/6
Chương 9 — Dịch chuyển phân phối
7 câu
1Loại dịch chuyển nào không phát hiện được bằng cách chỉ giám sát ?
Vì sao: Concept drift thay đổi và có thể giữ nguyên . Trong thí nghiệm ở Mục 9.2, độ chính xác giảm từ 75,6% xuống 26,9% trong khi kiểm định KS trên đặc trưng cho .2Vì sao label shift phát hiện được qua phân phối của ?
Vì sao: Điều này đúng khi mang thông tin về . Trong thí nghiệm ở Mục 9.2, label shift cho p-value KS trong khi độ chính xác gần như không đổi.3PSI là đại lượng gì?
Vì sao: . Khác với phân kỳ KL, PSI đối xứng.4Vì sao không nên dùng ngưỡng PSI 0,25 cho mọi cỡ mẫu?
Vì sao: Mô phỏng ở Mục 9.5: với , quy tắc PSI > 0,25 báo động 73% số lần khi không có dịch chuyển; với và dịch chuyển thật 0,3 độ lệch chuẩn, quy tắc này không báo động lần nào, trong khi kiểm định KS báo động ở mọi lần.5Với hai mẫu cùng cỡ và bin, ngưỡng PSI ở mức ý nghĩa 1% xấp xỉ bằng bao nhiêu?
Vì sao: Ngưỡng là . Giá trị 0,0043 ứng với .6Theo Rabanser và cộng sự (2019), một cách đơn giản mà hiệu quả để phát hiện dịch chuyển là gì?
Vì sao: Đầu ra của mô hình có ít chiều hơn đầu vào nhiều và tập trung vào những thay đổi ảnh hưởng tới dự đoán.7Dùng tham chiếu trượt 30 ngày để phát hiện dịch chuyển có nhược điểm gì?
Vì sao: Cách hợp lý là dùng cả hai: tham chiếu cố định để biết dữ liệu đã cách xa dữ liệu huấn luyện bao nhiêu, tham chiếu trượt để phát hiện thay đổi đột ngột.
Đã trả lời 0/7
Chương 10 — Giám sát
5 câu
1Trong bốn lớp giám sát, lớp nào là lớp chính khi nhãn đến trễ?
Vì sao: Càng gần nhãn càng có ý nghĩa nhưng càng khó có. Khi nhãn đến trễ, phân phối dự đoán, tỉ lệ từng lớp và độ lệch dự đoán là những gì dùng được ngay.2Độ lệch dự đoán (prediction bias) là gì, và giới hạn của nó là gì?
Vì sao: Bài báo của Sculley và cộng sự tự nêu giới hạn này, nhưng lưu ý rằng thay đổi đột ngột của đại lượng này thường là dấu hiệu sự cố. Ưu điểm: không cần nhãn cho từng dự đoán, chỉ cần tỉ lệ nền theo thời gian.3Nguyên tắc "cảnh báo theo triệu chứng, không theo nguyên nhân" nghĩa là gì?
Vì sao: Cùng với các nguyên tắc: mỗi cảnh báo gắn với một hành động; phân mức gọi người trực, phiếu xử lý, bảng theo dõi; và yêu cầu tín hiệu kéo dài qua nhiều cửa sổ.4Ngưỡng cố định trong hệ thống thay đổi (fixed thresholds in dynamic systems) là dạng nợ gì?
Vì sao: Huấn luyện lại làm phân phối điểm số thay đổi, nên mọi thứ phụ thuộc vào điểm số cũng thay đổi theo. Cách xử lý: xác định ngưỡng tự động trên tập kiểm định mỗi lần huấn luyện và lưu ngưỡng cùng mô hình.5Giới hạn hành động (action limits) có đặc điểm gì?
Vì sao: Ví dụ: khoá 50 000 tài khoản trong một giờ là điều chưa từng xảy ra. Với agent có quyền gọi công cụ có tác động thật, cơ chế này áp dụng nguyên vẹn (Mục 13.7).
Đã trả lời 0/5
Chương 11 — Huấn luyện lại
5 câu
1Trong thí nghiệm ở Mục 11.1, không huấn luyện lại suốt một năm gây thiệt hại bao nhiêu?
Vì sao: Độ chính xác giảm dần từng chút, nên không có tuần nào có một thay đổi đột ngột đủ để kích hoạt cảnh báo theo ngưỡng.2So với huấn luyện lại hằng quý, huấn luyện lại hằng tuần tăng thêm bao nhiêu trong thí nghiệm đó?
Vì sao: Lợi ích giảm dần nhanh, nên nhịp huấn luyện lại là một quyết định kinh tế: đo đường cong trên chính bài toán, rồi so giá trị của một điểm phần trăm với chi phí một lần huấn luyện, kiểm định và triển khai.3Kích hoạt huấn luyện lại theo dịch chuyển có hạn chế gì?
Vì sao: Kích hoạt theo chất lượng thì ngược lại: phát hiện được concept drift nhưng cần nhãn, nên bị giới hạn bởi độ trễ nhãn.4Bước nào hay bị bỏ qua nhất trong pipeline huấn luyện lại tự động?
Vì sao: Tài liệu của Google Cloud tách kiểm định mô hình khỏi đánh giá mô hình vì lý do này: đánh giá trả lời "mô hình này tốt tới đâu", kiểm định trả lời "có nên thay mô hình đang chạy bằng mô hình này không".5Vì sao nên mặc định huấn luyện lại từ đầu thay vì cập nhật mô hình cũ?
Vì sao: Cập nhật mô hình cũ rẻ hơn mỗi lần, nhưng có rủi ro quên thảm khốc, và một lô dữ liệu lỗi ảnh hưởng tới mọi phiên bản sau. Chỉ nên chuyển sang khi có ràng buộc thật về dữ liệu hoặc thời gian thích ứng.
Đã trả lời 0/5
Chương 12 — Vòng phản hồi
4 câu
1Vì sao vòng phản hồi thoái hoá khó phát hiện?
Vì sao: Các chỉ số ngoại tuyến tính trên dữ liệu log không cho thấy vấn đề, trong khi hệ thống chỉ còn hiển thị một phần nhỏ của danh mục.2Trong thí nghiệm ở Mục 12.3, hệ thống không ngẫu nhiên hoá hiển thị bao nhiêu phần danh mục?
Vì sao: Những món chưa từng được hiển thị có tỉ lệ nhấp quan sát bằng 0 nên không bao giờ vào danh sách. Hệ thống đạt chất lượng 0,351, khoảng 63% mức tối đa 0,555. Dành 30% vị trí cho món ngẫu nhiên nâng chất lượng lên 0,402 và tỉ lệ danh mục được hiển thị lên 13,4%.3Cách khắc phục nào vừa cung cấp dữ liệu không bị mô hình làm sai lệch, vừa cho thước đo đáng tin cậy về giá trị của hệ thống?
Vì sao: Cả bốn cách đều hợp lệ, nhưng nhóm đối chứng là cách duy nhất cho cả hai lợi ích cùng lúc.4Muốn dùng hiệu chỉnh theo xác suất hiển thị thì phải chuẩn bị gì trước?
Vì sao: Đây là loại quyết định phải đưa ra từ đầu, giống như việc lưu định danh các đoạn đã truy xuất trong hệ thống RAG (Mục 13.5).
Đã trả lời 0/4
Chương 13 — Vận hành ứng dụng dùng mô hình ngôn ngữ lớn
7 câu
1Nhà cung cấp cập nhật mô hình sau cùng một tên gọi là dạng nợ nào?
Vì sao: Cách xử lý: dùng định danh phiên bản cố định của mô hình, và coi mỗi lần đổi phiên bản là một lần phát hành đầy đủ, phải qua bộ đánh giá, shadow và canary. Chen, Zaharia và Zou (2023) đo được những thay đổi đáng kể về hành vi của cùng một tên mô hình giữa hai phiên bản.2Cấu trúc đánh giá ba tầng cho hệ thống dùng LLM gồm những gì?
Vì sao: Càng gần đánh giá thật thì càng đắt, nên phải lấy mẫu. Tầng người chấm hay bị bỏ qua nhất, nhưng cần để hiệu chỉnh giám khảo LLM, vốn cũng là một mô hình có sai số và có thể thay đổi.3Một câu trả lời của hệ thống RAG sai. Bước chẩn đoán đầu tiên là gì?
Vì sao: Không có trong ngữ cảnh: lỗi truy xuất, đo bằng recall@. Có trong ngữ cảnh mà vẫn sai: lỗi sinh, đo bằng độ trung thành với ngữ cảnh. Gộp hai loại lỗi vào một chỉ số thì không biết cần sửa ở đâu.4Thiên lệch vị trí của giám khảo LLM được xử lý thế nào?
Vì sao: So sánh các câu trả lời có độ dài tương đương là cách xử lý thiên lệch độ dài; dùng giám khảo khác họ với mô hình đang phục vụ là cách xử lý thận trọng cho khả năng tự ưu tiên (Zheng và cộng sự, 2023).5Hiện tượng criteria drift (Shankar và cộng sự, 2024) nói gì?
Vì sao: Vì vậy không thể viết xong tiêu chí chấm một lần từ đầu; cần đọc một lượng đầu ra thật trước và xem lại tiêu chí định kỳ.6Đổi mô hình embedding của một hệ thống RAG đòi hỏi gì?
Vì sao: Việc đổi mô hình embedding nên được làm như một lần di chuyển dữ liệu: lập chỉ mục mới song song, đánh giá, rồi chuyển.7Thay đổi nào sau đây không tạo ra một phiên bản mới của hệ thống LLM cần đánh giá lại?
Vì sao: Một phiên bản gồm ít nhất sáu thành phần: prompt, phiên bản mô hình và tham số sinh, cấu hình truy xuất, ảnh chụp kho tài liệu, định nghĩa công cụ, tiêu chí chấm và tập đánh giá chuẩn. Đây là nguyên lý CACE áp dụng cho hệ thống LLM.
Đã trả lời 0/7