Xin chào, hôm nay Huy bắt đầu một chuỗi sharing mới mà Huy gọi là “101 điều Data Engineer cần quan tâm” 😀. Hy vọng nó sẽ mang lại nhiều giá trị, ít nhất là với các bạn đang học, đang làm hay có ý định theo đuổi ngành Data Engineer. Và nếu thấy hữu ích, mình mong có thể được mọi người ủng hộ.
Rồi, giới thiệu bấy nhiêu được rồi, giờ chúng ta đi vào nội dung bài đầu tiên của series.
7 vấn đề thường gặp trong các dự án Machine Learning
7 vấn đề thường gặp trong các dự án Machine Learning
Bài viết này sẽ đề cập đến 7 vấn đề hàng đầu về kỹ thuật dữ liệu thường xảy ra trong một dự án học máy (Machine Learning - ML).

1️⃣ Hiểu Nhầm Thuộc Tính của Dữ Liệu

Trước kỷ nguyên của dữ liệu lớn, dữ liệu được quản lý cẩn thận trước khi đưa vào kho lưu trữ trung tâm. Cách tiếp cận này được gọi là "schema-on-write" (lên sơ đồ khi ghi). Ngày nay, với các hồ dữ liệu (data lake), cách tiếp cận là tổng hợp dữ liệu trước, sau đó suy ra ý nghĩa của nó tại thời điểm sử dụng (schema-on-read - lên sơ đồ khi đọc). Là kỹ sư dữ liệu, hãy cảnh giác với việc sử dụng các bộ dữ liệu không có tài liệu thích hợp về chi tiết thuộc tính hoặc không có người quản lý dữ liệu rõ ràng chịu trách nhiệm cập nhật chi tiết!

2️⃣ Quá nhiều Định Nghĩa cho Cùng Một Chỉ Số Kinh Doanh, tôi nên dùng cái nào?

Dữ liệu hoặc số liệu được trích xuất có thể có nhiều nguồn dữ liệu gốc! Ví dụ, tôi đã thấy ngay cả các số liệu cơ bản như Số lượng Khách hàng Mới cũng có nhiều định nghĩa khác nhau giữa các đơn vị kinh doanh. Là kỹ sư dữ liệu, nếu một số liệu kinh doanh được sử dụng trong mô hình, hãy đảm bảo có thể tìm kiếm tất cả các định nghĩa có sẵn và cách triển khai ETL tương ứng của chúng.

3️⃣ Schema của dữ liệu nguồn bị thay đổi

Điều này cực kỳ phổ biến trong các nhóm phân tán lớn. Thay đổi schema tại cơ sở dữ liệu nguồn thường không được phối hợp với các nhóm xử lý downstream ETL. Thay đổi có thể bao gồm thay đổi schema (làm hỏng các pipeline hiện có) hoặc thay đổi ngữ nghĩa rất khó gỡ rối. Ngoài ra, khi các số liệu kinh doanh thay đổi, các định nghĩa thường không đánh dấu phiên bản, khiến dữ liệu lịch sử không nhất quán.

4️⃣ Logic ETL cho Training và Serving khác nhau

Lý do điển hình khiến hiệu suất AI model bị lệch lạc trong quá trình huấn luyện và suy luận là sự khác biệt giữa các pipeline training và serving. Mặc dù logic có thể bắt đầu giống hệt nhau, các bản sửa lỗi được thực hiện trong một pipeline có thể không được phản ánh trong pipeline khác. Đặc biệt tránh các kịch bản mà pipeline training và serving được viết bằng các ngôn ngữ khác nhau.

5️⃣ "Ngộ Độc" Dần Dần của Các Mô Hình

Phát hiện các lỗi kiểu 0-1 với pipeline dữ liệu thì dễ dàng hơn. Các vấn đề khó gỡ rối nhất là những vấn đề trong đó một bảng được cập nhật không liên tục hoặc không được cập nhật chính xác. Trong các trường hợp như vậy, các mô hình sẽ dần dần giảm chất lượng vì được điều chỉnh theo những thay đổi. 
Vậy thì điều quan trọng là xây dựng các cơ chế “ngắt mạch” thích hợp để phát hiện và ngăn chặn dữ liệu chất lượng kém trong quá trình đưa dữ liệu vào mô hình AI

6️⃣ Chất lượng của tất cả các bộ dữ liệu cung cấp bởi một team là có chất lượng giống nhau

Đây là một sai lầm kinh điển. Không phải tất cả các bộ dữ liệu từ cùng một nhóm đều đáng tin cậy. Một số được cập nhật và quản lý rất chặt chẽ, trong khi những số khác có thể được cập nhật không thường xuyên hoặc có pipeline ETL được viết kém! Luôn luôn phát triển các quy tắc xác thực cho bất kỳ dữ liệu đầu vào nào được sử dụng bởi các mô hình.

7️⃣ Vấn đề của hệ thống dữ liệu có thể gây ra sự “thiên vị”

Nếu lỗi trong tập dữ liệu là ngẫu nhiên, chúng sẽ ít ảnh hưởng hơn đến việc huấn luyện mô hình. Nhưng một lỗi dẫn đến việc thiếu thông tin nào đó một cách có hệ thống có thể dẫn đến sự thiên vị (bias) trong tập dữ liệu. Ví dụ, trong tập dữ liệu về hành vi người dùng trên ứng dụng, lượt clicks bị thiếu do ứng dụng trên máy Android bị lỗi sẽ có thể dẫn đến việc  toàn bộ tập dữ liệu bị bias với cả người dùng iPhone. Tương tự, việc theo dõi những thay đổi đột ngột trong phân phối dữ liệu cũng rất quan trọng.
Tóm lại, mình tin rằng các dự án học máy là một môn thể thao đồng đội bao gồm kỹ sư dữ liệu, nhà khoa học dữ liệu, nhà thống kê, kỹ sư DataOps… Mỗi người đều có vai trò và nhiệm vụ của riêng mình và cùng nhau họ tạo nên một dự án chất lượng.
Mong rằng bài viết trên đã giúp các bạn hiểu hơn về các dự án Machine Learning, tránh được một số lỗi không mong muốn. Hẹn gặp lại mọi người ở những bài viết khác của chuỗi series nhé.
Xin chào, mình là Huy Đê Tê!
Cre: Dr. Sandeep Uttamchandani