Lợi nhuận:
- Khả năng thiết lập đường dẫn dữ liệu (thu thập, xác thực, làm sạch, chuyển đổi, phân tách, tạo phiên bản) và đặt xác thực lược đồ ở đầu đường dẫn
- Khả năng đưa ra quyết định về giá trị còn thiếu và ghi nhãn dựa trên ý nghĩa và phân chia trường để ngăn chặn rò rỉ dữ liệu (nhóm và thời gian)
- Khả năng tạo cơ sở dữ liệu có thể tái tạo bằng cách sửa phiên bản dữ liệu và hạt giống ngẫu nhiên
Sức mạnh thực sự của mọi hệ thống máy học nằm ở dữ liệu chứ không phải mô hình. Các kỹ sư giàu kinh nghiệm biết: “rác vào, rác ra” - ngay cả mô hình tiên tiến nhất được cung cấp dữ liệu xấu cũng sẽ tạo ra kết quả xấu. Trong đơn vị này, chúng tôi thiết lập đường dẫn dữ liệu (đường dẫn dữ liệu: chuỗi các bước giúp dữ liệu thô sẵn sàng cho việc đào tạo mô hình) từ đầu đến cuối và tìm hiểu xem chúng tôi có thể sử dụng trí tuệ nhân tạo một cách an toàn ở bước nào trong dòng này.
Các bước của dòng dữ liệu
Một dòng dữ liệu thường đi qua các điểm dừng này:
- Bộ sưu tập (nhập): Lấy dữ liệu từ các nguồn (cơ sở dữ liệu, API, tệp nhật ký, luồng sự kiện).
- Xác thực: Kiểm tra xem dữ liệu có phù hợp với lược đồ, loại và phạm vi dự kiến hay không.
- Làm sạch: Xử lý các giá trị bị thiếu, bản ghi trùng lặp, giá trị ngoại lệ và sự không nhất quán.
- Chuyển đổi: Biến dữ liệu thô thành thuộc tính — chẳng hạn như chuyển đổi biến phân loại thành số, tạo ra "ngày trong tuần" từ một ngày.
- Tách: Tách thành các tập huấn luyện, xác nhận và kiểm tra.
- Lập phiên bản: Ghi lại mô hình nào được đào tạo với dữ liệu nào.
Trí tuệ nhân tạo tiết kiệm thời gian bằng cách tạo ra các bản thảo và ý tưởng mã, đặc biệt là ở bước 2, 3 và 4. Nhưng các quyết định như loại bỏ bản ghi nào, giá trị nào còn thiếu và điền như thế nào, thuộc về kỹ sư biết dữ liệu; bởi vì việc làm sạch không đúng cách có thể gây ra sai lệch tiềm ẩn vào mô hình.
Xác minh dữ liệu: bảo vệ phòng tuyến sớm
Những lỗi đắt giá nhất không bắt đầu từ quá trình sản xuất mà là ở bước xác minh bị bỏ qua. Xác thực lược đồ tự động kiểm tra xem từng lô dữ liệu đến có phù hợp với cấu trúc dự kiến hay không. Ví dụ: cột tuổi có nằm trong khoảng từ 0-120 không, trường email có trống không, số cột có thay đổi không?
Mẹo: Đặt xác minh ở đầu dòng. Dữ liệu bị hỏng càng sớm được phát hiện thì chi phí sửa chữa càng rẻ. Một lỗi lược đồ phát hiện được trong quá trình sản xuất đắt hơn nhiều lần so với một lỗi lược đồ phát hiện được trong giai đoạn huấn luyện.
Viết sơ đồ xác thực với pandera (hoặc Kỳ vọng lớn) cho lược đồ dữ liệu sau. Cột và quy tắc:- user_id: số nguyên, không thể rỗng, duy nhất- tuổi: số nguyên, không thể từ 0-120- ngày đăng ký: ngày, không thể ở tương lai- quốc gia: phân loại, từ tập hợp {TR, DE, US, UK}- số dư: số thập phân, không thể âm Tạo thông báo lỗi có ý nghĩa cho mỗi vi phạm quy tắc. Hiển thị bài kiểm tra bằng một dòng đứt đoạn mẫu ở cuối mã.
Dọn dẹp: chính con người là người quyết định
Các giá trị bị thiếu là hiện thực của mọi tập dữ liệu. Các cách xử lý:
- Deletion: Loại bỏ một hàng/cột có tỷ lệ thiếu rất cao. Nhưng có nguy cơ mất thông tin và sai lệch.
- Sự quy định: Sự quy định với giá trị trung bình, giá trị trung bình, giá trị thường xuyên nhất hoặc dự đoán dựa trên mô hình.
- Cờ: Lưu trữ thông tin “bị thiếu” trong một cột cờ riêng biệt - đôi khi chính phần thiếu đó chính là tín hiệu.
Cái nào đúng phụ thuộc vào vấn đề. Trong bộ dữ liệu y tế, thông tin "giá trị máu không đo được" cần được lưu giữ thay vì xóa; Bởi vì ngay cả việc bác sĩ từ chối đo cũng là một tín hiệu. AI có thể cung cấp cho bạn các tùy chọn và mã; Bạn chọn cái nào phù hợp với thực tế của lĩnh vực này.
Dấu nhắc yếu / Dấu nhắc mạnh
Lời nhắc yếu: "Điền các giá trị còn thiếu."
Lời nhắc mạnh mẽ: "Có các giá trị bị thiếu trong các cột sau: thu nhập (thiếu 12%, phân phối lệch phải), Last_login (thiếu 30%). Đề xuất điền thu nhập bằng trung vị, nhưng giải thích tại sao lại là trung vị chứ không phải trung bình. Đối với Last_login, giả sử giá trị bị thiếu có thể là đáng kể (người dùng có thể chưa bao giờ đăng nhập); hãy cân nhắc việc tạo cờ never_logged_in thay vì xóa. Viết ra thành kiến mà một trong hai cách tiếp cận sẽ thêm vào mô hình."
Sự khác biệt: lời nhắc mạnh mẽ cung cấp thông tin phân phối và ý nghĩa khu vực; trí tuệ nhân tạo tạo ra sự hỗ trợ quyết định thay vì lấp đầy một cách máy móc.
Ghi nhãn: chất lượng được đo lường
Trong học có giám sát (học trong đó đưa ra các ví dụ với câu trả lời đúng), những gì mô hình học được là các nhãn (nhãn: câu trả lời đúng cho mỗi ví dụ). Chất lượng nhãn đặt ra mức trần - nếu mọi người gắn nhãn không nhất quán, mô hình sẽ học không nhất quán.
Thỏa thuận giữa các nhà chú thích đo lường tốc độ mà những người khác nhau đưa ra cùng một nhãn cho cùng một mẫu; Nó được thể hiện bằng một hệ số như Cohen's Kappa. Mức độ tuân thủ thấp cho thấy nhiệm vụ không rõ ràng hoặc hướng dẫn còn yếu.
Trí tuệ nhân tạo giúp ghi nhãn theo hai cách: (1) soạn thảo hướng dẫn chú thích, (2) ghi nhãn trước và chỉ nhờ con người sửa chữa. Nhưng việc dán nhãn trước bằng LLM có một nhược điểm: lỗi hệ thống của mô hình có thể rò rỉ vào toàn bộ bộ nhãn. Đó là lý do tại sao con người luôn kiểm tra một số nhãn LLM.
Lưu ý: Đừng coi nhãn do LLM sản xuất là "sự thật cơ bản". Kiểm tra mẫu có con người và đo mức độ phù hợp LLM-con người. Nếu mức độ tuân thủ thấp, việc ghi nhãn trước sẽ gây hại nhiều hơn là có lợi.
Phân vùng dữ liệu: ngăn chặn rò rỉ
Sai lầm nguy hiểm nhất khi chia dữ liệu thành huấn luyện/xác nhận/kiểm thử là rò rỉ dữ liệu: trộn lẫn thông tin kiểm tra vào huấn luyện. Ví dụ:
- Hồ sơ của cùng một người dùng rơi vào cả quá trình đào tạo và kiểm tra (rò rỉ nhóm).
- Sử dụng tương lai trong đào tạo và quá khứ để kiểm tra theo chuỗi thời gian (rò rỉ thời gian).
- Tính toán các tham số chia tỷ lệ (chuẩn hóa) từ tất cả dữ liệu rồi chia.
Việc phân chia thời gian là cần thiết cho các bài toán liên quan đến thời gian: luyện tập với quá khứ, kiểm tra tương lai. Việc chia tách ngẫu nhiên mang lại lợi ích "tương lai" sẽ không bao giờ xảy ra trong quá trình sản xuất và làm tăng số liệu.
Phiên bản dữ liệu và khả năng tái tạo
“Chúng tôi đã huấn luyện mô hình này bằng dữ liệu gì?” Có thể trả lời câu hỏi nhiều tháng sau đó là dấu hiệu nổi bật của kỹ thuật ML nghiêm túc. Lập phiên bản dữ liệu lưu trữ từng ảnh chụp nhanh dữ liệu bằng ID (thẻ băm hoặc thẻ phiên bản). Các công cụ như dữ liệu phiên bản DVC (Data Version Control) như mã.
Để tái tạo kết quả của một mô hình, phải sửa ba thứ: phiên bản dữ liệu, phiên bản mã và hạt giống ngẫu nhiên. Không thể nói “Tôi nhận được kết quả tương tự” nếu không có bộ ba này. Chúng ta sẽ đào sâu về Khả năng tái tạo trong bài 11; nhưng việc sửa hạt giống trong đường dẫn dữ liệu bắt đầu từ đây.
ba trường hợp nhỏ
Trường hợp 1 - Xác thực lược đồ ngày đã được lưu. Khi một nhóm chuyển đổi trường giá của hệ thống ngược dòng từ xu sang liras, tất cả giá đều giảm 100 lần. Xác thực lược đồ đã từ chối lô vì "giá nằm ngoài phạm vi" và mô hình không được đào tạo với dữ liệu bị hỏng. Nếu không xác minh, lỗi sẽ chỉ được phát hiện trong quá trình sản xuất với những dự đoán không chính xác.
Trường hợp 2 - Sai lệch điền sai. Trong mô hình tín dụng, các giá trị thu nhập bị thiếu được lấp đầy bằng giá trị trung bình. Nhưng những người thiếu thu nhập chủ yếu thuộc nhóm thu nhập thấp; tính trung bình "làm giàu" nhóm này một cách giả tạo và mô hình này đưa ra cho họ một giới hạn cao không công bằng. Đã khắc phục sự cố với cờ trung vị + thiếu.
Trường hợp 3 - Rò rỉ tạm thời. Một mô hình dự báo nhu cầu trông rất tuyệt vời trên tập thử nghiệm (độ chính xác 95%) nhưng lại bị lỗi trong quá trình sản xuất. Tại sao: do phân chia ngẫu nhiên nên mô hình đã nhìn thấy được tương lai. Việc chuyển sang tính năng gộp tạm thời đã làm giảm độ chính xác của thử nghiệm xuống 78% — nhưng đó là hiệu suất thực tế và vẫn được duy trì trong sản xuất.
Mẫu có thể sao chép
Chia tập dữ liệu sau thành ba bộ: đào tạo/xác nhận/kiểm tra.Ràng buộc: Đây là chuỗi thời gian; Sử dụng phương pháp phân chia TEMPORAL (đào tạo trước đây, kiểm tra tương lai). Ngăn chặn rò rỉ hàng loạt: chỉ có cùng `custom_id` trong một cụm. CHỈ tính toán các tham số chia tỷ lệ từ tập huấn luyện, sau đó áp dụng cho tất cả. In số dòng còn lại trong mã ở mỗi bước và thêm xác nhận để kiểm tra xem không có rò rỉ.
Viết hướng dẫn chú thích dự thảo cho nhiệm vụ ghi nhãn này. Nhiệm vụ: [ví dụ: Gắn nhãn đánh giá của khách hàng là tích cực/tiêu cực/trung lập]Làm rõ các trường hợp ranh giới: mỉa mai, cảm xúc lẫn lộn, làm thế nào để gắn nhãn đánh giá không liên quan đến sản phẩm? Đưa ra 5 ví dụ và 3 trường hợp khó khăn sẽ tăng tính nhất quán giữa những người gắn thẻ.
Tạo danh sách kiểm tra khả năng tái tạo cho đường dẫn dữ liệu này: - Phiên bản dữ liệu nên được sửa như thế nào? - Những hạt giống ngẫu nhiên nào sẽ được đặt ở đâu? - Siêu dữ liệu nào (băm dữ liệu, số hàng, ngày) nên được ghi lại? Cơ sở mã của tôi: [ngôn ngữ/thư viện]
Kiểm tra mã dọn dẹp này để phát hiện rò rỉ dữ liệu. Hãy xem xét cụ thể điều này: các tham số chia tỷ lệ/mã hóa có được tính toán TRƯỚC KHI chia tách không? Có số liệu thống kê nào được tính toán từ tất cả dữ liệu hay chỉ từ đào tạo? Mã số: [mã]
Bảng quyết định: chiến lược giá trị còn thiếu
Trạng thái
Cách tiếp cận được đề xuất
tại sao
Phân phối số, sai lệch
điền vào trung vị
Giá trị trung bình bị ảnh hưởng bởi các ngoại lệ
Số, đối xứng
điền vào mức trung bình
Bảo vệ thông tin
Sự thiếu hụt có thể đáng kể
Cột cờ + điền
Thiếu là một tín hiệu
Tỷ lệ thiếu > 60%
Cột đánh giá/loại bỏ
Tiếng ồn quá nhiều
Phân loại
Danh mục "Không xác định"
Không tạo ra đa số nhân tạo
Những lỗi thường gặp
- Bỏ qua xác minh. Nếu không có sự kiểm soát lược đồ, dữ liệu bị hỏng sẽ âm thầm xâm nhập.
- Chia tỷ lệ trước khi chia tách. Nó rò rỉ số liệu thống kê kiểm tra vào giáo dục.
- Sử dụng phân tách ngẫu nhiên trong chuỗi thời gian. Nó tạo ra số liệu cao giả.
- Tin tưởng mù quáng vào nhãn LLM. Lỗi hệ thống lan truyền khắp dữ liệu.
- Không lưu phiên bản dữ liệu. Bạn không thể tái tạo kết quả.
- Làm đầy cơ khí ở mức trung bình. Nó bỏ qua ý nghĩa của trường, thêm độ lệch.
Tóm lại
Đường dẫn dữ liệu là nền tảng của hệ thống ML và đáng được nỗ lực nhiều hơn mô hình. Đặt xác minh lên hàng đầu; đưa ra quyết định làm sạch và dán nhãn bằng kiến thức về miền; ngăn chặn rò rỉ (nhóm và tạm thời) trong ngăn; sửa phiên bản dữ liệu và hạt giống. AI tạo mã và ý tưởng trên dòng này, nhưng bạn là người quyết định xử lý dữ liệu nào và xử lý như thế nào — bởi vì mọi quyết định sai lầm ở đây đều chuyển vào mô hình dưới dạng một lỗ hổng tiềm ẩn.
Nhiệm vụ ứng dụng
Viết một sơ đồ xác thực (pdera/Great Expectations) trên tập dữ liệu của riêng bạn và cố tình thêm một hàng xấu và cho thấy rằng nó đã bị phát hiện. Sau đó, phân chia dữ liệu theo thời gian hoặc theo đợt, chỉ tính toán các tham số chia tỷ lệ từ quá trình đào tạo và xác minh rằng không có rò rỉ bằng một xác nhận. Ghi phiên bản dữ liệu và số hàng vào tệp siêu dữ liệu.
danh sách kiểm tra
- [ ] Xác thực lược đồ chạy ở đầu dòng.
- [ ] Tôi đã chọn chiến lược giá trị còn thiếu dựa trên ý nghĩa của trường, tôi không điền nó một cách máy móc.
- [ ] Tôi đã đo lường chất lượng nhãn (tuân thủ); Tôi đã kiểm tra thẻ LLM do con người thực hiện.
- [ ] Tôi đã ngăn chặn rò rỉ nhóm và thời gian trong khung.
- [ ] Tỷ lệ/mã hóa chỉ được tính từ tập huấn luyện.
- [ ] Phiên bản dữ liệu, số hàng và hạt giống được ghi lại.