Xử lý sơ bộ bằng AI là gì?

Xử lý sơ bộ bằng AI là gì?

Tóm lại: Xử lý sơ bộ dữ liệu bằng AI là một tập hợp các bước lặp lại nhằm biến dữ liệu thô, có độ biến thiên cao thành dữ liệu đầu vào nhất quán cho mô hình, bao gồm làm sạch, mã hóa, điều chỉnh tỷ lệ, phân tách từ và biến đổi hình ảnh. Điều này rất quan trọng vì nếu dữ liệu đầu vào huấn luyện và dữ liệu đầu vào sản xuất khác nhau, mô hình có thể thất bại mà không báo lỗi. Nếu một bước nào đó "học" các tham số, chỉ nên áp dụng nó vào dữ liệu huấn luyện để tránh rò rỉ kiến ​​thức.

Tiền xử lý AI là tất cả những gì bạn làm với dữ liệu thô trước (và đôi khi trong) quá trình huấn luyện hoặc suy luận để mô hình thực sự có thể học hỏi từ nó. Không chỉ là “làm sạch”. Đó là làm sạch, định hình, chia tỷ lệ, mã hóa, bổ sung và đóng gói dữ liệu thành một dạng biểu diễn nhất quán mà sẽ không âm thầm gây lỗi cho mô hình của bạn sau này. [1]

Những điểm chính cần ghi nhớ:

Định nghĩa: Xử lý sơ bộ chuyển đổi các bảng dữ liệu thô, văn bản, hình ảnh và nhật ký thành các đặc trưng sẵn sàng cho mô hình.

Tính nhất quán: Áp dụng cùng một phép biến đổi trong quá trình huấn luyện và suy luận để tránh lỗi do sự không khớp.

Lỗi rò rỉ: Chỉ huấn luyện các bộ đếm tỷ lệ, bộ mã hóa và bộ phân tách từ trên dữ liệu huấn luyện.

Khả năng tái tạo: Xây dựng các quy trình với số liệu thống kê có thể kiểm tra được, chứ không phải các chuỗi ô tùy ý trong sổ tay Jupyter.

Giám sát sản xuất: Theo dõi độ lệch và sự thay đổi để tránh tình trạng các yếu tố đầu vào dần dần làm giảm hiệu suất.

Những bài viết bạn có thể muốn đọc sau bài này:

🔗 Cách kiểm tra hiệu năng thực tế của các mô hình AI
Các phương pháp thực tiễn để đánh giá nhanh chóng độ chính xác, độ bền vững và sai lệch.

🔗 Công nghệ chuyển văn bản thành giọng nói là trí tuệ nhân tạo và nó hoạt động như thế nào?
Bài viết này giải thích những kiến ​​thức cơ bản, các ứng dụng chính và những hạn chế thường gặp của công nghệ chuyển văn bản thành giọng nói (TTS) hiện nay.

🔗 Liệu trí tuệ nhân tạo (AI) có thể đọc chính xác chữ viết tay kiểu chữ thảo ngày nay?
Nội dung bao gồm các thách thức trong nhận dạng, các công cụ tốt nhất và các mẹo để tăng độ chính xác.

🔗 Độ chính xác của AI trong các nhiệm vụ thông thường như thế nào?
Phân tích chi tiết các yếu tố ảnh hưởng đến độ chính xác, tiêu chuẩn so sánh và độ tin cậy trong thực tế.


Xử lý sơ bộ bằng AI theo cách hiểu đơn giản (và những gì nó không phải là) 🤝

Xử lý sơ bộ dữ liệu AI là quá trình chuyển đổi dữ liệu đầu vào thô (bảng, văn bản, hình ảnh, nhật ký) thành các đặc trưng sẵn sàng cho mô hình. Nếu dữ liệu thô giống như một nhà kho bừa bộn, thì xử lý sơ bộ giống như việc bạn dán nhãn các thùng, vứt bỏ những thứ hỏng hóc và sắp xếp mọi thứ sao cho bạn có thể đi lại mà không bị thương.

Vấn đề không nằm ở bản thân mô hình. Vấn đề nằm ở những yếu tố tạo nên mô hình đó:

  • chuyển đổi các danh mục thành số (one-hot, ordinal, v.v.) [1]

  • chia nhỏ các phạm vi số lớn thành các phạm vi hợp lý (chuẩn hóa, min-max, v.v.) [1]

  • phân tách văn bản thành ID đầu vào (và thường là mặt nạ chú ý) [3]

  • thay đổi kích thước/cắt xén hình ảnh và áp dụng các phép biến đổi xác định so với ngẫu nhiên một cách thích hợp [4]

  • xây dựng các quy trình có thể lặp lại để đầu vào đào tạo và “thực tế” không khác biệt theo những cách tinh tế [2]

Một lưu ý nhỏ mang tính thực tiễn: "tiền xử lý" bao gồm tất cả những gì diễn ra một cách nhất quán trước khi mô hình nhận được dữ liệu đầu vào. Một số nhóm chia việc này thành "kỹ thuật đặc trưng" và "làm sạch dữ liệu", nhưng trên thực tế, ranh giới giữa hai khái niệm này khá mờ nhạt. 

 

Xử lý trước bằng AI

Vì sao quá trình tiền xử lý bằng AI lại quan trọng hơn mọi người vẫn nghĩ 😬

Mô hình là một công cụ so khớp mẫu, chứ không phải là người đọc suy nghĩ. Nếu dữ liệu đầu vào không nhất quán, mô hình sẽ học các quy tắc không nhất quán. Điều này không phải là triết lý, mà là sự thật hiển nhiên đến mức khó chịu.

Xử lý sơ bộ giúp bạn:

  • Cải thiện tính ổn định của quá trình học bằng cách đưa các đặc trưng vào các biểu diễn mà các bộ ước lượng có thể sử dụng một cách đáng tin cậy (đặc biệt là khi có liên quan đến việc chia tỷ lệ/mã hóa). [1]

  • Giảm nhiễu bằng cách làm cho thực tế hỗn độn trông giống như thứ mà mô hình có thể khái quát hóa được (thay vì ghi nhớ các hiện vật kỳ lạ).

  • Ngăn chặn các chế độ lỗi âm thầm như rò rỉ và sự không khớp giữa huấn luyện/phục vụ (loại lỗi trông có vẻ “tuyệt vời” trong quá trình xác thực nhưng lại gây ra sự cố trong quá trình sản xuất). [2]

  • Tăng tốc quá trình lặp lại vì các phép biến đổi có thể lặp lại luôn hiệu quả hơn so với việc sử dụng mã nguồn rối rắm trong notebook.

Ngoài ra, đó cũng là nơi mà rất nhiều "kỹ năng diễn xuất của người mẫu" thực sự xuất phát. Nhiều đến mức đáng ngạc nhiên. Đôi khi cảm thấy không công bằng, nhưng đó là thực tế 🙃


Những yếu tố nào tạo nên một quy trình tiền xử lý AI tốt? ✅

Một "phiên bản tốt" của quá trình tiền xử lý thường có những đặc điểm sau:

  • Có thể tái tạo: cùng một đầu vào → cùng một đầu ra (không có yếu tố ngẫu nhiên bí ẩn trừ khi đó là sự bổ sung có chủ ý).

  • Tính nhất quán phục vụ huấn luyện: bất cứ điều gì bạn làm trong thời gian huấn luyện đều được áp dụng theo cùng một cách trong thời gian suy luận (các tham số được điều chỉnh giống nhau, bản đồ danh mục giống nhau, cấu hình bộ mã hóa giống nhau, v.v.). [2]

  • An toàn rò rỉ: không có gì trong quá trình đánh giá/kiểm tra ảnh hưởng đến bất kỳ phù hợp nào . (Sẽ nói thêm về cái bẫy này sau.) [2]

  • Có thể quan sát được: bạn có thể kiểm tra những gì đã thay đổi (thống kê tính năng, dữ liệu thiếu, số lượng danh mục) nên việc gỡ lỗi không chỉ dựa vào cảm tính.

Nếu quá trình tiền xử lý của bạn là một đống các ô trong notebook có tên là final_v7_really_final_ok… thì bạn biết đấy, nó hoạt động tốt cho đến khi không còn hoạt động nữa 😬


Các khối cấu trúc cốt lõi của quá trình tiền xử lý AI 🧱

Hãy coi quá trình tiền xử lý như một tập hợp các khối xây dựng mà bạn kết hợp lại thành một quy trình.

1) Vệ sinh và kiểm tra 🧼

Các nhiệm vụ điển hình:

  • xóa các bản sao

  • Xử lý các giá trị bị thiếu (bỏ qua, điền vào hoặc thể hiện rõ ràng tình trạng thiếu dữ liệu)

  • thực thi các loại, đơn vị và phạm vi

  • phát hiện các đầu vào bị lỗi

  • Chuẩn hóa định dạng văn bản (khoảng trắng, quy tắc viết hoa/viết thường, các quy tắc Unicode đặc biệt)

Phần này không hào nhoáng, nhưng nó giúp tránh những sai lầm cực kỳ ngớ ngẩn. Tôi nói điều đó với tất cả tình yêu thương.

2) Mã hóa dữ liệu phân loại 🔤

Hầu hết các mô hình không thể sử dụng trực tiếp các chuỗi ký tự thô như "red" hoặc "premium_user".

Các phương pháp phổ biến:

  • Mã hóa One-hot (danh mục → cột nhị phân) [1]

  • Mã hóa thứ tự (danh mục → ID số nguyên) [1]

Điều quan trọng không phải là nào - mà là ánh xạ phải nhất quán và không “thay đổi hình dạng” giữa quá trình huấn luyện và suy luận. Đó là cách bạn có được một mô hình trông ổn khi ngoại tuyến nhưng lại hoạt động bất thường khi trực tuyến. [2]

3) Điều chỉnh tỷ lệ và chuẩn hóa đặc trưng 📏

Việc điều chỉnh tỷ lệ rất quan trọng khi các đối tượng nằm trong các phạm vi khác nhau.

Hai tác phẩm kinh điển:

  • Chuẩn hóa: loại bỏ giá trị trung bình và điều chỉnh thành phương sai đơn vị [1]

  • Tỷ lệ tối thiểu-tối đa: điều chỉnh tỷ lệ từng tính năng vào một phạm vi xác định [1]

Ngay cả khi bạn sử dụng các mô hình "có thể xử lý hầu hết các vấn đề", việc mở rộng quy mô thường giúp cho các quy trình dễ hiểu hơn - và khó bị lỗi hơn.

4) Kỹ thuật tạo đặc trưng (hay còn gọi là thủ thuật hữu ích) 🧪

Đây là lúc bạn giúp mô hình hoạt động dễ dàng hơn bằng cách tạo ra các tín hiệu tốt hơn:

  • tỷ lệ (lượt nhấp chuột / lượt hiển thị)

  • Cửa sổ cuốn (trong N ngày qua)

  • số lượng (sự kiện trên mỗi người dùng)

  • Biến đổi logarit cho các phân phối có đuôi dày

Đây là cả một nghệ thuật. Đôi khi bạn tạo ra một tính năng, cảm thấy tự hào… nhưng nó chẳng mang lại kết quả gì. Hoặc tệ hơn, nó còn gây hại. Điều đó là bình thường. Đừng quá gắn bó về mặt cảm xúc với các tính năng - chúng không đáp lại tình cảm của bạn đâu 😅

5) Phân tách dữ liệu đúng cách ✂️

Điều này nghe có vẻ hiển nhiên cho đến khi nó không còn hiển nhiên nữa:

  • chia ngẫu nhiên cho dữ liệu iid

  • Phân chia theo thời gian cho chuỗi thời gian

  • Phân nhóm khi các thực thể lặp lại (người dùng, thiết bị, bệnh nhân)

Và điều quan trọng là: chia trước khi áp dụng quy trình tiền xử lý học từ dữ liệu. Nếu bước tiền xử lý của bạn “học” các tham số (như trung bình, từ vựng, bản đồ danh mục), nó phải học chúng chỉ từ quá trình huấn luyện. [2]


Xử lý sơ bộ dữ liệu bằng AI theo loại dữ liệu: dạng bảng, văn bản, hình ảnh 🎛️

Quá trình tiền xử lý sẽ thay đổi hình dạng tùy thuộc vào dữ liệu đầu vào mà bạn đưa vào mô hình.

Dữ liệu dạng bảng (bảng tính, nhật ký, cơ sở dữ liệu) 📊

Các bước thông thường:

  • chiến lược giá trị bị thiếu

  • mã hóa phân loại [1]

  • mở rộng các cột số [1]

  • Xử lý dữ liệu ngoại lai (quy tắc miền thường hiệu quả hơn "cắt ngẫu nhiên")

  • Các tính năng dẫn xuất (tổng hợp, độ trễ, thống kê luân chuyển)

Lời khuyên thiết thực: hãy xác định rõ ràng các nhóm cột (số, phân loại hay mã định danh). Chính bạn trong tương lai sẽ cảm ơn điều này.

Dữ liệu văn bản (Xử lý ngôn ngữ tự nhiên) 📝

Quá trình tiền xử lý văn bản thường bao gồm:

  • phân tách thành các từ/từ con

  • chuyển đổi thành ID đầu vào

  • đệm/cắt bớt

  • xây dựng mặt nạ chú ý để xử lý hàng loạt [3]

Một quy tắc nhỏ giúp tránh rắc rối: đối với các thiết lập dựa trên Transformer, hãy tuân theo cài đặt tokenizer được nhà sản xuất khuyến nghị và đừng tùy ý chỉnh sửa trừ khi có lý do chính đáng. Tùy ý chỉnh sửa là nguyên nhân dẫn đến kết quả "nó huấn luyện được nhưng lại hoạt động kỳ lạ"

Hình ảnh (thị giác máy tính) 🖼️

Quy trình tiền xử lý điển hình:

  • Thay đổi kích thước / cắt xén để có hình dạng đồng nhất

  • các phép biến đổi xác định để đánh giá

  • các phép biến đổi ngẫu nhiên để tăng cường huấn luyện (ví dụ: cắt ngẫu nhiên) [4]

Một chi tiết mà mọi người thường bỏ qua: “biến đổi ngẫu nhiên” không chỉ là một cảm giác mà chúng thực sự lấy mẫu các tham số mỗi khi được gọi. Tuyệt vời cho việc đào tạo đa dạng, nhưng lại tệ hại cho việc đánh giá nếu bạn quên tắt tính ngẫu nhiên. [4]


Cạm bẫy mà ai cũng mắc phải: rò rỉ dữ liệu 🕳️🐍

Rò rỉ dữ liệu xảy ra khi thông tin từ dữ liệu đánh giá lọt vào dữ liệu huấn luyện - thường là thông qua quá trình tiền xử lý. Điều này có thể khiến mô hình của bạn trông rất tuyệt vời trong quá trình kiểm định, nhưng lại gây thất vọng trong thực tế.

Các kiểu rò rỉ phổ biến:

  • mở rộng quy mô bằng cách sử dụng số liệu thống kê toàn bộ tập dữ liệu (thay vì chỉ huấn luyện) [2]

  • xây dựng bản đồ danh mục bằng cách sử dụng huấn luyện + kiểm tra cùng nhau [2]

  • bất kỳ fit() hoặc fit_transform() nào “nhìn thấy” tập dữ liệu thử nghiệm [2]

Nguyên tắc chung (đơn giản, thô thiển, hiệu quả):

  • Bất cứ thứ gì có phù hợp chỉ nên được sử dụng trong quá trình luyện tập.

  • Sau đó, bạn chuyển đổi quá trình xác thực/kiểm thử bằng cách sử dụng bộ chuyển đổi đã được điều chỉnh đó. [2]

Và nếu bạn muốn kiểm tra trực giác "nó có thể tệ đến mức nào?": tài liệu của scikit-learn cho thấy một ví dụ về rò rỉ trong đó thứ tự tiền xử lý không chính xác dẫn đến độ chính xác khoảng 0,76 trên các mục tiêu ngẫu nhiên - sau đó giảm xuống còn ~0,5 sau khi rò rỉ được khắc phục. Đó là mức độ sai lầm đáng tin cậy mà rò rỉ có thể gây ra. [2]


Đưa quy trình tiền xử lý vào sản xuất mà không gây hỗn loạn 🏗️

Nhiều mô hình thất bại trong quá trình sản xuất không phải vì mô hình "tệ", mà vì thực tế đầu vào thay đổi - hoặc quy trình của bạn thay đổi.

Quá trình tiền xử lý hướng đến sản xuất thường bao gồm:

  • Các hiện vật được lưu (ánh xạ bộ mã hóa, tham số bộ chia tỷ lệ, cấu hình bộ mã hóa) để quá trình suy luận sử dụng chính xác các phép biến đổi đã học [2]

  • Các điều khoản nhập liệu nghiêm ngặt (các cột/kiểu dữ liệu/phạm vi dự kiến)

  • Theo dõi độ lệch và sự trôi dạt, vì dữ liệu sản xuất sẽ thay đổi [5]

Nếu bạn muốn định nghĩa cụ thể: Chức năng Giám sát Mô hình AI Vertex của Google phân biệt giữa độ lệch phục vụ đào tạo (phân phối sản xuất lệch khỏi đào tạo) và sự trôi dạt suy luận (phân phối sản xuất thay đổi theo thời gian), đồng thời hỗ trợ giám sát cả các đặc điểm phân loại và số. [5]

Vì những điều bất ngờ thì tốn kém. Và không phải là những điều bất ngờ thú vị.


Bảng so sánh: các công cụ tiền xử lý và giám sát phổ biến (và đối tượng sử dụng) 🧰

Công cụ / thư viện Tốt nhất cho Giá Lý do tại sao nó hiệu quả (và một chút thành thật)
tiền xử lý scikit-learn Các quy trình ML dạng bảng Miễn phí Bộ mã hóa + bộ chia tỷ lệ chắc chắn (OneHotEncoder, StandardScaler, v.v.) và hành vi có thể dự đoán được [1]
Bộ mã hóa khuôn mặt ôm Chuẩn bị đầu vào NLP Miễn phí Tạo ra ID đầu vào + mặt nạ chú ý một cách nhất quán trên các lần chạy/mô hình [3]
torchvision biến đổi Tầm nhìn biến đổi + tăng cường Miễn phí Cách sạch sẽ để kết hợp các phép biến đổi xác định và ngẫu nhiên trong một quy trình [4]
Giám sát mô hình Vertex AI Phát hiện độ lệch/sai số trong sản phẩm Trả phí (đám mây) Màn hình có tính năng độ lệch/trôi và cảnh báo khi vượt quá ngưỡng [5]

(Vâng, cái bàn vẫn có ý kiến. Nhưng ít nhất đó là những ý kiến ​​trung thực 😅)


Một danh sách kiểm tra tiền xử lý thực tế mà bạn có thể sử dụng ngay lập tức 📌

Trước khi huấn luyện

  • Xác định lược đồ đầu vào (kiểu dữ liệu, đơn vị, phạm vi cho phép)

  • Kiểm tra các giá trị bị thiếu và trùng lặp

  • Phân tách dữ liệu đúng cách (ngẫu nhiên / theo thời gian / theo nhóm)

  • Xử lý trước phù hợp chỉ trên huấn luyện ( fit / fit_transform vẫn ở trên huấn luyện) [2]

  • Lưu trữ các hiện vật tiền xử lý để quá trình suy luận có thể tái sử dụng chúng [2]

Trong quá trình huấn luyện

  • Chỉ áp dụng tăng cường ngẫu nhiên khi thích hợp (thường chỉ chia thành các nhóm huấn luyện) [4]

  • Giữ nguyên quá trình tiền xử lý đánh giá mang tính xác định [4]

  • Theo dõi các thay đổi trong quá trình tiền xử lý giống như các thay đổi trong mô hình (vì chúng thực sự là như vậy)

Trước khi triển khai

  • Đảm bảo quá trình suy luận sử dụng đường dẫn tiền xử lý và các hiện vật giống hệt nhau [2]

  • Thiết lập giám sát trôi dạt/lệch (ngay cả việc kiểm tra phân phối tính năng cơ bản cũng rất hữu ích) [5]


Phân tích chuyên sâu: Những lỗi thường gặp trong quá trình tiền xử lý dữ liệu (và cách tránh chúng) 🧯

Sai lầm 1: “Mình sẽ nhanh chóng bình thường hóa mọi thứ” 😵

Nếu bạn tính toán các tham số tỷ lệ trên toàn bộ tập dữ liệu, bạn sẽ làm rò rỉ thông tin đánh giá. Hãy huấn luyện trên tập huấn luyện, sau đó chuyển đổi phần còn lại. [2]

Sai lầm thứ 2: Các danh mục trở nên hỗn loạn 🧩

Nếu ánh xạ danh mục của bạn thay đổi giữa quá trình huấn luyện và suy luận, mô hình của bạn có thể âm thầm hiểu sai thế giới. Hãy giữ cho ánh xạ được cố định thông qua các hiện vật đã lưu. [2]

Sai lầm 3: Việc bổ sung ngẫu nhiên vào quá trình đánh giá 🎲

Các phép biến đổi ngẫu nhiên rất tuyệt vời trong quá trình huấn luyện, nhưng chúng không nên được “bí mật bật” khi bạn đang cố gắng đo lường hiệu suất. (Ngẫu nhiên có nghĩa là ngẫu nhiên.) [4]


Lời kết 🧠✨

Xử lý sơ bộ AI là nghệ thuật có kỷ luật trong việc biến thực tế hỗn loạn thành dữ liệu đầu vào nhất quán cho mô hình. Nó bao gồm làm sạch, mã hóa, điều chỉnh tỷ lệ, phân tách từ, biến đổi hình ảnh và - quan trọng nhất - các quy trình và thành phần có thể lặp lại.

  • [2] Thực hiện xử lý trước một cách có chủ đích, chứ không phải tùy tiện

  • Chia trước, điều chỉnh các phép biến đổi chỉ trên quá trình huấn luyện, tránh rò rỉ. [2]

  • Sử dụng phương thức tiền xử lý phù hợp (bộ mã hóa cho văn bản, phép biến đổi cho hình ảnh). [3][4]

  • Theo dõi độ lệch/trôi dạt sản xuất để mô hình của bạn không dần dần trở nên vô nghĩa. [5]

Và nếu bạn gặp khó khăn, hãy tự hỏi:
“Liệu bước tiền xử lý này vẫn còn ý nghĩa nếu tôi thực hiện nó vào ngày mai với dữ liệu hoàn toàn mới?”
Nếu câu trả lời là “ừm… có lẽ?”, đó chính là manh mối đấy 😬

Ví dụ thực tế: Xây dựng quy trình tiền xử lý an toàn chống rò rỉ dữ liệu để dự đoán tỷ lệ khách hàng rời bỏ

Kịch bản

Hãy tưởng tượng một nhóm phát triển phần mềm dịch vụ (SaaS) nhỏ đang cố gắng dự đoán khách hàng nào có khả năng hủy hợp đồng trong 30 ngày tới. Dữ liệu thô của họ nằm ở ba nơi: dữ liệu xuất hóa đơn, nhật ký sử dụng sản phẩm và phiếu yêu cầu hỗ trợ.

Phiên bản đầu tiên của mô hình cho kết quả xuất sắc trong quá trình kiểm định, nhưng lại hoạt động kém hiệu quả khi được thử nghiệm trên dữ liệu khách hàng của một tháng mới. Vấn đề không nằm ở kiến ​​trúc mô hình, mà là ở khâu tiền xử lý.

Nhóm đã vô tình mở rộng các tính năng số bằng cách sử dụng toàn bộ tập dữ liệu, xây dựng ánh xạ danh mục từ dữ liệu huấn luyện và kiểm tra cùng nhau, và bao gồm các thẻ vé hỗ trợ chỉ được thêm vào sau khi hủy. Rò rỉ kinh điển. Đau đớn nhưng có thể khắc phục được. [2]

Những gì đường ống cần

Một cấu hình thực tế sẽ bao gồm:

  • Một lược đồ đầu vào cố định: customer_id, plan_type, account_age_days, logins_30d, tickets_30d, last_payment_status, region

  • Phân chia theo thời gian, ví dụ như huấn luyện từ tháng Giêng đến tháng Chín và kiểm tra vào tháng Mười

  • Việc điều chỉnh tỷ lệ số chỉ được thực hiện trên tập dữ liệu huấn luyện

  • Bộ mã hóa phân loại chỉ được trang bị trên tập dữ liệu huấn luyện

  • Một quy trình tiền xử lý đã được lưu lại để đảm bảo môi trường sản xuất sử dụng cùng các ánh xạ và giá trị tỷ lệ

  • Giám sát cơ bản các cột bị thiếu, các danh mục chưa được nhận diện và các thay đổi về phân phối sau khi triển khai

Nguyên tắc cốt lõi rất đơn giản: chia trước, xử lý trước sau. Bất cứ thứ gì học từ dữ liệu chỉ nên học từ giai đoạn huấn luyện. [2]

Ví dụ hướng dẫn

Hãy sử dụng bản tóm tắt này làm hướng dẫn cho bước tiền xử lý:

Xây dựng quy trình tiền xử lý cho mô hình dự đoán tỷ lệ khách hàng rời bỏ bằng cách sử dụng dữ liệu về hóa đơn, sử dụng và hỗ trợ khách hàng. Chia dữ liệu theo thời gian trước khi huấn luyện bất kỳ bộ chuyển đổi nào. Huấn luyện các bộ mã hóa số và bộ mã hóa phân loại chỉ trên dữ liệu huấn luyện, sau đó áp dụng các phép biến đổi đã huấn luyện đó cho dữ liệu xác thực và kiểm thử. Lưu trữ tất cả các thành phần tiền xử lý để mô hình sản xuất sử dụng cùng lược đồ, ánh xạ danh mục và tham số tỷ lệ. Đánh dấu các cột bị thiếu, các kiểu dữ liệu không mong muốn, các danh mục chưa từng thấy và các thay đổi phân phối lớn trước khi dự đoán.

Cách kiểm tra nó

Trước khi tin tưởng vào mô hình, hãy kiểm tra quy trình tiền xử lý với một vài bản ghi cố tình có vấn đề:

  • Khách hàng sử dụng loại gói dịch vụ không có trong chương trình đào tạo

  • Một hàng thiếu thông tin về vùng hoặc trạng thái thanh toán cuối cùng

  • Một khách hàng có mức sử dụng cao bất thường, chẳng hạn như 10.000 lần đăng nhập trong 30 ngày

  • Một tập tin theo kiểu sản xuất với các cột bị sắp xếp sai thứ tự

  • Bộ dữ liệu thử nghiệm của tháng tiếp theo chưa từng được sử dụng trong quá trình hiệu chỉnh

Sau đó hãy kiểm tra ba điều sau:

  • Liệu quy trình có chạy được mà không cần thay đổi thứ tự các tính năng không?

  • Các danh mục không xác định có được xử lý một cách nhất quán không?

  • Liệu hiệu suất xác thực có giảm xuống mức đáng tin cậy hơn sau khi loại bỏ hiện tượng rò rỉ dữ liệu?

Điểm cuối cùng đó rất quan trọng. Điểm đánh giá xác thực cao bất thường thường là dấu hiệu của quá trình tiền xử lý, chứ không phải là một điều kỳ diệu.

Kết quả

Kết quả minh họa, dựa trên việc đo thời gian năm lần chạy tiền xử lý mẫu trước và sau khi chuyển đổi các bước trong sổ tay Jupyter thành một quy trình đã lưu:

  • Thời gian xử lý sơ bộ thủ công giảm từ 55 phút cho mỗi lần làm mới tập dữ liệu xuống còn 8 phút.

  • Lỗi thứ tự tính năng đã giảm từ 3 lỗi trong 5 lần làm mới thử nghiệm xuống còn 0 lỗi trong 5 lần làm mới.

  • Độ chính xác kiểm định giảm từ 91% xuống 74% sau khi loại bỏ dữ liệu rò rỉ, nhưng độ chính xác của thử nghiệm trong tháng đầu tiên lại cải thiện từ 62% lên 71%.

  • Nhóm đã bổ sung 6 bước kiểm tra tự động: thiếu cột, kiểu dữ liệu không hợp lệ, danh mục chưa được xử lý, thay đổi tỷ lệ giá trị null, thay đổi phạm vi số và sự không khớp giữa lược đồ phục vụ huấn luyện và lược đồ phục vụ huấn luyện.

Những con số này không phải là tiêu chuẩn chung. Chúng chỉ là những phép đo đơn giản trước và sau mà một nhóm có thể tái tạo bằng cách tính thời gian làm mới, đếm số lần chạy thất bại và so sánh kết quả xác thực với kết quả của tháng tiếp theo được giữ lại.

Điều gì có thể xảy ra sai sót?

Rủi ro lớn nhất là làm cho quy trình trông có vẻ trơn tru trong khi vẫn âm thầm duy trì việc rò rỉ thông tin. Ví dụ, thông tin "số ngày kể từ email cảnh báo hủy đơn hàng gần nhất" có vẻ hữu ích, nhưng nếu email đó chỉ được gửi sau khi xem xét nội bộ về tỷ lệ khách hàng rời bỏ, nó có thể làm rò rỉ thông tin trong tương lai.

Những cạm bẫy phổ biến khác:

  • Lắp đặt lại bộ mã hóa trong quá trình sản xuất thay vì tải các cấu hình đã lưu

  • Cho phép các danh mục mới âm thầm thay đổi vị trí tính năng

  • Thử nghiệm trên một tập dữ liệu được chia ngẫu nhiên khi nhiệm vụ thực sự là tính thời gian

  • Loại bỏ các hàng có giá trị thiếu trong quá trình huấn luyện nhưng không xử lý chúng trong quá trình suy luận

  • Giám sát độ chính xác của mô hình trong khi bỏ qua sự thay đổi dữ liệu đầu vào

Bài học thực tiễn

Một quy trình tiền xử lý tốt không chỉ giúp dữ liệu thô trở nên gọn gàng hơn. Nó bảo vệ mô hình khỏi những đánh giá sai, dữ liệu đầu vào bị lỗi và sự thay đổi âm thầm diễn ra chậm. Đối với mô hình dự đoán tỷ lệ khách hàng rời bỏ, sự khác biệt giữa tiền xử lý thông minh và tiền xử lý đáng tin cậy thường nằm ở việc liệu các phép biến đổi đã được hiệu chỉnh có được sử dụng lại mỗi lần hay không, đặc biệt khi dữ liệu đến từ một tháng mà mô hình chưa từng thấy trước đây.


Câu hỏi thường gặp

Hiểu một cách đơn giản, tiền xử lý AI là gì?

Xử lý sơ bộ dữ liệu bằng AI là một chuỗi các bước lặp lại nhằm biến dữ liệu thô nhiễu, có độ biến thiên cao thành dữ liệu đầu vào nhất quán mà mô hình có thể học hỏi. Quá trình này có thể bao gồm làm sạch, xác thực, mã hóa các danh mục, chuẩn hóa giá trị số, phân tách văn bản và áp dụng các phép biến đổi hình ảnh. Mục tiêu là đảm bảo quá trình huấn luyện và suy luận trong môi trường sản xuất nhận được "cùng loại" dữ liệu đầu vào, để mô hình không bị lệch hướng và có hành vi khó đoán sau này.

Tại sao quá trình tiền xử lý bằng AI lại quan trọng đến vậy trong sản xuất?

Xử lý sơ bộ rất quan trọng vì các mô hình nhạy cảm với cách biểu diễn dữ liệu đầu vào. Nếu dữ liệu huấn luyện được chuẩn hóa, mã hóa, phân tách thành token hoặc biến đổi khác với dữ liệu sản xuất, bạn có thể gặp lỗi không khớp giữa dữ liệu huấn luyện và dữ liệu thực thi, những lỗi này trông có vẻ ổn khi chạy ngoại tuyến nhưng lại gây lỗi âm thầm khi chạy trực tuyến. Các quy trình xử lý sơ bộ mạnh mẽ cũng giúp giảm nhiễu, cải thiện tính ổn định của quá trình học và tăng tốc độ lặp lại vì bạn không phải gỡ rối mớ hỗn độn trong notebook.

Làm thế nào để tránh rò rỉ dữ liệu trong quá trình tiền xử lý?

Một quy tắc đơn giản là: bất kỳ thứ gì có huấn luyện (fit step) đều phải được huấn luyện trên dữ liệu huấn luyện mà thôi. Điều đó bao gồm các bộ chuẩn hóa (scalers), bộ mã hóa (encoders) và bộ mã hóa từ (tokenisers) học các tham số như giá trị trung bình, bản đồ danh mục hoặc từ vựng. Bạn chia dữ liệu trước, huấn luyện trên tập dữ liệu huấn luyện, sau đó chuyển đổi dữ liệu xác thực/kiểm thử bằng cách sử dụng bộ chuyển đổi đã được huấn luyện. Hiện tượng rò rỉ dữ liệu (leaking) có thể khiến dữ liệu xác thực trông "tốt một cách kỳ diệu" nhưng lại sụp đổ khi sử dụng trong môi trường sản xuất.

Các bước tiền xử lý phổ biến nhất đối với dữ liệu dạng bảng là gì?

Đối với dữ liệu dạng bảng, quy trình thông thường bao gồm làm sạch và xác thực (loại dữ liệu, phạm vi, giá trị thiếu), mã hóa phân loại (one-hot hoặc ordinal), và chuẩn hóa số (chuẩn hóa hoặc min-max). Nhiều quy trình bổ sung thêm kỹ thuật tạo đặc trưng theo lĩnh vực cụ thể như tỷ lệ, cửa sổ trượt hoặc số lượng. Một thói quen thực tế là xác định rõ ràng các nhóm cột (số học so với phân loại so với định danh) để các phép biến đổi của bạn được nhất quán.

Quá trình tiền xử lý hoạt động như thế nào đối với các mô hình văn bản?

Xử lý sơ bộ văn bản thường bao gồm việc phân tách thành các từ/từ con, chuyển đổi chúng thành ID đầu vào và xử lý phần đệm/cắt bớt để xử lý theo lô. Nhiều quy trình Transformer cũng tạo ra một mặt nạ chú ý cùng với các ID. Một cách tiếp cận phổ biến là sử dụng cấu hình bộ phân tách từ dự kiến ​​của mô hình thay vì tự ý thay đổi, bởi vì những khác biệt nhỏ trong cài đặt bộ phân tách từ có thể dẫn đến kết quả "mô hình huấn luyện được nhưng hoạt động không thể đoán trước".

Việc tiền xử lý ảnh cho máy học có gì khác biệt?

Xử lý sơ bộ ảnh thường đảm bảo hình dạng và cách xử lý pixel nhất quán: thay đổi kích thước/cắt xén, chuẩn hóa và phân chia rõ ràng giữa các phép biến đổi xác định và ngẫu nhiên. Để đánh giá, các phép biến đổi nên mang tính xác định để các chỉ số có thể so sánh được. Đối với quá trình huấn luyện, việc tăng cường ngẫu nhiên (như cắt xén ngẫu nhiên) có thể cải thiện độ bền vững, nhưng tính ngẫu nhiên phải được giới hạn một cách có chủ đích trong quá trình huấn luyện, chứ không phải vô tình để lại trong quá trình đánh giá.

Điều gì khiến một quy trình tiền xử lý trở nên "tốt" thay vì dễ hỏng?

Một quy trình tiền xử lý AI tốt cần phải có khả năng tái tạo, an toàn rò rỉ dữ liệu và có thể quan sát được. Khả năng tái tạo nghĩa là cùng một đầu vào tạo ra cùng một đầu ra trừ khi việc thêm dữ liệu ngẫu nhiên là có chủ đích. An toàn rò rỉ dữ liệu nghĩa là các bước huấn luyện không bao giờ tác động đến dữ liệu xác thực/kiểm thử. Có thể quan sát được nghĩa là bạn có thể kiểm tra các số liệu thống kê như độ thiếu dữ liệu, số lượng danh mục và phân bố đặc trưng để việc gỡ lỗi dựa trên bằng chứng, chứ không phải cảm tính. Các quy trình luôn vượt trội hơn các chuỗi notebook tùy chỉnh.

Làm thế nào để đảm bảo tính nhất quán giữa quá trình tiền xử lý huấn luyện và suy luận?

Điều mấu chốt là phải tái sử dụng chính xác các thành phần đã học được trong quá trình suy luận: các tham số bộ điều chỉnh tỷ lệ, ánh xạ bộ mã hóa và cấu hình bộ mã hóa từ. Bạn cũng cần một hợp đồng đầu vào (các cột, kiểu dữ liệu và phạm vi dự kiến) để dữ liệu sản xuất không bị âm thầm thay đổi thành các hình dạng không hợp lệ. Tính nhất quán không chỉ là "thực hiện các bước giống nhau" - mà là "thực hiện các bước giống nhau với cùng các tham số và ánh xạ đã được huấn luyện"

Làm thế nào tôi có thể theo dõi các vấn đề về tiền xử lý như sự thay đổi và độ lệch theo thời gian?

Ngay cả với một quy trình xử lý dữ liệu ổn định, dữ liệu sản xuất vẫn thay đổi. Một phương pháp phổ biến là giám sát sự thay đổi phân bố đặc trưng và cảnh báo về sự lệch giữa dữ liệu huấn luyện và dữ liệu phục vụ (dữ liệu sản xuất khác với dữ liệu huấn luyện) và sự thay đổi trong suy luận (dữ liệu sản xuất thay đổi theo thời gian). Việc giám sát có thể đơn giản (kiểm tra phân bố cơ bản) hoặc được quản lý chặt chẽ (như Vertex AI Model Monitoring). Mục tiêu là phát hiện sớm các thay đổi đầu vào - trước khi chúng dần dần làm suy giảm hiệu suất của mô hình.

Tài liệu tham khảo

[1] API scikit-learn: sklearn.preprocessing (bộ mã hóa, bộ điều chỉnh tỷ lệ, chuẩn hóa)
[2] scikit-learn: Những lỗi thường gặp - Rò rỉ dữ liệu và cách tránh
[3] Tài liệu Hugging Face Transformers: Bộ mã hóa (ID đầu vào, mặt nạ chú ý)
[4] Tài liệu PyTorch Torchvision: Biến đổi (Thay đổi kích thước/Chuẩn hóa + biến đổi ngẫu nhiên)
[5] Tài liệu Google Cloud Vertex AI: Tổng quan về Giám sát Mô hình (độ lệch và trôi dạt đặc trưng)

Tìm kiếm những công nghệ AI mới nhất tại Cửa hàng Trợ lý AI chính thức

Về chúng tôi

Quay lại blog

Câu hỏi thường gặp bổ sung

  • Quá trình tiền xử lý bằng AI giúp cải thiện các mô hình học máy như thế nào?

    Xử lý sơ bộ bằng AI giúp tăng cường các mô hình học máy bằng cách chuyển đổi dữ liệu thô thành các đặc trưng nhất quán, sẵn sàng cho mô hình. Điều này giúp cải thiện tính ổn định của quá trình học, giảm nhiễu và giảm thiểu rủi ro lỗi âm thầm, đảm bảo các mô hình hoạt động đáng tin cậy trong cả môi trường huấn luyện và sản xuất.

  • Quá trình tiền xử lý dữ liệu bằng AI bao gồm những bước nào?

    Quá trình tiền xử lý dữ liệu trong AI thường bao gồm làm sạch và xác thực dữ liệu, mã hóa các biến phân loại, chuẩn hóa dữ liệu số, phân tách văn bản thành các từ khóa và áp dụng các phép biến đổi hình ảnh. Mỗi bước đều rất cần thiết để đảm bảo mô hình có thể học hỏi hiệu quả từ dữ liệu đầu vào.

  • Tại sao tính nhất quán lại quan trọng trong quá trình tiền xử lý dữ liệu AI?

    Tính nhất quán trong quá trình tiền xử lý dữ liệu AI là rất quan trọng để ngăn ngừa sự không khớp giữa dữ liệu huấn luyện và dữ liệu đầu vào. Nếu các bước tiền xử lý khác nhau, mô hình có thể hoạt động tốt trong quá trình kiểm định nhưng lại thất bại âm thầm trong môi trường thực tế, dẫn đến kết quả không đáng tin cậy.

  • Rò rỉ dữ liệu trong bối cảnh tiền xử lý AI là gì?

    Hiện tượng rò rỉ dữ liệu xảy ra khi thông tin từ tập dữ liệu đánh giá hoặc kiểm thử vô tình ảnh hưởng đến quá trình huấn luyện. Để tránh điều này, tất cả các bước tiền xử lý nhằm học các tham số chỉ nên được thực hiện trên dữ liệu huấn luyện, đảm bảo rằng việc đánh giá mô hình phản ánh hiệu suất thực sự.

  • Làm thế nào để tôi đảm bảo quy trình tiền xử lý AI của mình có thể tái tạo được?

    Để đảm bảo tính khả reproducible trong quy trình tiền xử lý AI của bạn, hãy duy trì cùng một ánh xạ đầu vào-đầu ra, chỉ huấn luyện các thành phần tiền xử lý như bộ đếm tỷ lệ và bộ mã hóa trên dữ liệu huấn luyện, và lưu trữ các thành phần này để sử dụng trong quá trình suy luận mô hình.

  • Tôi cần theo dõi những gì trong quá trình tiền xử lý AI để ngăn ngừa các vấn đề về hiệu suất mô hình?

    Việc theo dõi sự thay đổi và lệch lạc trong dữ liệu theo thời gian là rất quan trọng. Điều này bao gồm việc kiểm tra sự thay đổi trong phân bố đặc trưng và đảm bảo rằng dữ liệu sản xuất vẫn nhất quán với dữ liệu huấn luyện. Phát hiện sớm các vấn đề này có thể giúp duy trì hiệu suất của mô hình.

  • Bạn có thể đưa ra ví dụ về những lỗi thường gặp trong quá trình tiền xử lý cần tránh không?

    Các lỗi thường gặp trong quá trình tiền xử lý bao gồm việc áp dụng các bước tiền xử lý lên toàn bộ tập dữ liệu, dẫn đến rò rỉ dữ liệu, sự không nhất quán trong việc ánh xạ các loại dữ liệu giữa quá trình huấn luyện và suy luận, và việc để lại các phép biến đổi ngẫu nhiên hoạt động trong quá trình đánh giá, điều này có thể làm sai lệch các chỉ số hiệu suất.