Nghiên cứuNâng cao

Data leakage: khi bài kiểm tra đã lọt vào quá trình xây mô hình

Nhận diện rò rỉ dữ liệu qua tiền xử lý, nhóm người dùng, thời gian và vòng tối ưu prompt.

Trong bài viết này

Từ được đánh dấu có giải thích. Di chuột hoặc chạm để xem, hay mở từ điển AI.

Bạn chia dữ liệu thành train và test sau khi đã chọn các đặc trưng tương quan mạnh nhất với nhãn trên toàn bộ tập. Mô hình chưa trực tiếp học các hàng test, nhưng quyết định chọn đặc trưng đã nhìn đáp án của chúng. Điểm kiểm tra vì thế không còn phản ánh một lần gặp dữ liệu mới.

Tiên quyết: hiểu tập huấn luyện, tập kiểm tra và đánh giá mô hình. Bài dùng các tình huống phân loại yêu cầu hỗ trợ minh họa; không trình bày kết quả thí nghiệm thật.

Theo đường đi của thông tin, không chỉ tên thư mục

Tài liệu scikit-learn về data leakage nhấn mạnh rằng thông tin không có tại thời điểm dự đoán không được dùng để xây mô hình. Một đường rò rỉ thường gặp là học phép tiền xử lý từ toàn bộ dữ liệu rồi mới chia tập.

Ranh giới đúng trong ví dụ phân loại là chia trước, học bộ điền giá trị thiếu và chọn đặc trưng trên train, rồi dùng đúng các phép biến đổi đã học để áp dụng cho test. Tên hàm transform không tự bảo vệ bạn nếu bên trong nó vẫn tính lại thống kê từ test.

train, validation, test = split_by_customer(raw_records)
preprocessor.fit(train.features)
model.fit(preprocessor.transform(train.features), train.labels)
choose_settings_using(validation)
report_once_on(test)

Đây là mã giả về thứ tự xử lý. Trong cross-validation, mỗi fold cũng cần học tiền xử lý từ phần train riêng của fold đó; không dùng một bộ tiền xử lý đã nhìn tất cả dữ liệu từ trước.

Cùng một khách hàng có thể nối hai tập với nhau

Nếu một cuộc hội thoại có mười tin nhắn, chia ngẫu nhiên theo dòng có thể để chín tin ở train và một tin ở test. Mô hình nhận diện cách viết hoặc nội dung đã thấy thay vì khái quát tới hội thoại mới. Chọn đơn vị chia theo điều bạn muốn dự đoán: khách hàng mới, hội thoại mới hay thời điểm tương lai.

Với dự đoán tương lai, chỉ dùng thông tin đã tồn tại ở thời điểm quyết định. Trường resolved_at hoặc nhãn “đã chuyển nhóm chuyên trách” có thể được ghi sau kết quả; đưa chúng vào đầu vào làm bài toán dễ một cách không hợp lệ. Cần lưu thời điểm phát sinh đặc trưng, không chỉ thời điểm xuất dữ liệu.

Nhìn để hiểuMột điểm số chưa đủ để chọn mô hình

Chạy các mô hình trên cùng bộ thử, đọc cả điểm tổng lẫn kiểu lỗi, rồi cân nhắc tốc độ và chi phí. Một chênh lệch nhỏ chưa chứng minh mô hình nào luôn tốt hơn.

Đọc điểm số cùng loại lỗi và chi phíVí dụ hoàn toàn giả định trên cùng 20 tình huống: A đúng 18, B đúng 17. Ô có dấu chéo biểu thị ca sai. Cần xem loại lỗi, như sai tên hay quá dài, và đo độ trễ, chi phí, số lần thử lại. Những con số này không phải benchmark thật và không chứng minh A luôn tốt hơn B.Cùng 20 tình huốngA18/20B17/20Lỗi: sai tên ngườiLỗi: vượt độ dàiĐo thêm: độ trễ · chi phí · số lần thử lại

↔ Vuốt ngang để xem toàn bộ sơ đồ.

  1. 01 / Cùng bộ thử

    Dùng cùng các trường hợp và quy tắc chấm đã xác định trước cho cả hai mô hình.

  2. 02 / Đọc điểm số

    Trong ví dụ giả định, A đúng 18/20, B đúng 17/20. Chênh lệch một trường hợp chưa đủ kết luận chung.

  3. 03 / Xem kiểu lỗi

    Mở các trường hợp thất bại: sai tên người và vượt độ dài có mức ảnh hưởng khác nhau.

  4. 04 / Đánh giá nhiều chiều

    Đo thêm tốc độ, chi phí và độ ổn định trên dữ liệu phù hợp với công việc thực tế.

A đúng 18/20 và B đúng 17/20 là số liệu giả định để giải thích cách đọc kết quả, không phải benchmark của mô hình có thật.

Sơ đồ minh họa việc so sánh kết quả với tiêu chí. Nó giả định dữ liệu đánh giá phù hợp; kiểm tra rò rỉ là công việc cần làm trước khi diễn giải điểm số ấy.

Tối ưu prompt cũng có thể học thuộc bài kiểm tra

Không fine-tune không có nghĩa là không leakage. Nếu bạn sửa prompt hai mươi lần sau khi xem lỗi trên cùng một test set, quyết định thiết kế đã thích nghi với tập đó. Hãy gọi nó là tập phát triển và giữ một tập cuối chưa dùng để chọn cấu hình.

Trong RAG, nguồn chứa đáp án có thể là tài nguyên hợp lệ nếu sản phẩm thật cũng được tra cứu nguồn ấy. Nhưng nhét riêng đáp án gán nhãn của bộ thử vào chỉ mục chỉ để tăng điểm là một đường rò rỉ. Phải định nghĩa rõ người dùng thực tế có thể truy cập nguồn nào tại thời điểm hỏi.

Chia theo nhóm hoặc thời gian có thể làm điểm thấp hơn và phương sai lớn hơn vì ít dữ liệu độc lập. Đó không phải lý do quay lại cách chia dễ hơn. Nếu mục tiêu triển khai khác nhau, báo nhiều phép chia với tên nhiệm vụ rõ ràng để người đọc hiểu phạm vi từng điểm.

Kiểm toán một bộ dữ liệu nhỏ

Bài tập: tạo bảng gồm mã khách hàng, mã hội thoại, thời điểm hỏi, thời điểm có nhãn và các đặc trưng. Đánh dấu trường nào chỉ có sau quyết định. Sau đó tạo hai phép chia: ngẫu nhiên theo dòng và theo khách hàng.

Tự kiểm: không có khách hàng trùng giữa các phần ở phép chia nhóm; không có đặc trưng đến từ tương lai; mọi bước học thống kê chỉ dùng train; nhật ký chọn prompt không dùng test cuối. Viết một đoạn giải thích bạn muốn khái quát tới đối tượng nào. Đọc tiếp benchmark contamination để phân biệt rò rỉ trong quy trình của bạn với khả năng mô hình đã gặp bộ thử từ trước.

Bạn muốn hiểu điều gì?

Khám phá tất cả bài viết esc để đóng