Với phân loại văn bản tiếng Việt, mô hình lớn hỏi qua câu lệnh là cách bắt đầu nhanh nhất vì không cần dữ liệu gán nhãn; mô hình mã hoá nhỏ như PhoBERT tinh chỉnh trên vài nghìn mẫu là cách chạy rẻ, nhanh và ổn định nhất khi khối lượng lớn; luật từ khoá vẫn có chỗ cho những nhãn rõ ràng như phát hiện số điện thoại hay đường dẫn rác. Nhiều nhóm đi cả ba bước theo thời gian: mô hình lớn gán nhãn nháp, người sửa, rồi tinh chỉnh mô hình nhỏ để chạy hằng ngày.
Phân loại là việc AI tiếng Việt được dùng nhiều nhất mà ít người để ý: xếp phản hồi khách hàng theo chủ đề, phân luồng email, gắn chủ đề cho bài báo, lọc bình luận độc hại, nhận ra tin nhắn lừa đảo. Bài này so ba cách làm, đi vào những khó khăn riêng của văn bản tiếng Việt trên mạng, cách thiết kế bộ nhãn và hướng dẫn gán nhãn, cách đo cho đúng khi các nhóm lệch nhau, và một lộ trình thực tế.
Ba cách làm và bản chất của từng cách
Luật và từ khoá. Viết danh sách từ, cụm từ, biểu thức để gắn nhãn: có chữ "hoàn tiền" thì vào nhóm đổi trả, có dãy mười chữ số bắt đầu bằng 0 thì nghi là chứa số điện thoại. Ưu điểm là minh bạch, sửa được ngay, không cần dữ liệu. Nhược điểm là không hiểu ngữ cảnh: "không cần hoàn tiền, chỉ cần đổi size" vẫn bị xếp vào hoàn tiền; người viết thay đổi cách nói là luật hỏng.
Mô hình mã hoá nhỏ tinh chỉnh. Lấy một mô hình như PhoBERT hay một mô hình mã hoá đa ngôn ngữ, gắn thêm một lớp phân loại, huấn luyện trên dữ liệu đã gán nhãn. Mô hình học được cách diễn đạt đa dạng, chạy nhanh trên máy chủ thường, luôn trả về một nhãn trong danh sách. Cần vài nghìn mẫu gán nhãn chất lượng và người biết huấn luyện, đánh giá.
Mô hình lớn qua câu lệnh. Mô tả các nhãn trong câu lệnh, có thể kèm vài ví dụ, rồi yêu cầu mô hình chọn nhãn cho từng văn bản. Không cần dữ liệu gán nhãn để bắt đầu, đổi nhãn chỉ cần sửa câu lệnh, hiểu ngữ cảnh và mỉa mai tốt hơn. Đổi lại, chi phí và độ trễ mỗi lần gọi cao, đầu ra có lúc lệch định dạng, kết quả có thể thay đổi khi nhà cung cấp cập nhật mô hình.
Cách lai phổ biến. Luật từ khoá lọc những ca chắc chắn, mô hình nhỏ xử lý phần lớn, ca nào mô hình nhỏ không chắc thì chuyển cho mô hình lớn hoặc người. Cách này cân bằng giữa chi phí và chất lượng, và tận dụng được điểm mạnh của từng cách.
So ba cách theo tình huống vận hành
Bảng dưới so ở mức định tính cho một bài toán phân loại điển hình khoảng mười nhãn. Lựa chọn thật phụ thuộc khối lượng, ngân sách và yêu cầu về dữ liệu của bạn.
| Tiêu chí | Luật từ khoá | Mô hình nhỏ tinh chỉnh | Mô hình lớn qua câu lệnh |
|---|---|---|---|
| Dữ liệu gán nhãn cần để bắt đầu | Không | Vài nghìn mẫu | Không hoặc vài ví dụ |
| Thời gian có bản chạy đầu tiên | Vài giờ | Vài tuần, phần lớn cho dữ liệu | Vài giờ |
| Chi phí mỗi văn bản | Gần như không | Rất thấp | Cao hơn nhiều, tăng theo độ dài |
| Hiểu ngữ cảnh, phủ định, mỉa mai | Kém | Khá, tuỳ dữ liệu | Tốt nhất trong ba |
| Ổn định theo thời gian | Ổn định cho tới khi cách viết đổi | Ổn định, tự kiểm soát phiên bản | Có thể đổi khi nhà cung cấp cập nhật |
| Dữ liệu rời khỏi tổ chức | Không | Không nếu tự chạy | Có nếu dùng dịch vụ ngoài |
| Thêm hoặc đổi nhãn | Sửa luật | Gán nhãn thêm, huấn luyện lại | Sửa câu lệnh |
Với vài trăm văn bản mỗi ngày, mô hình lớn qua câu lệnh thường là đủ và đơn giản nhất. Với hàng trăm nghìn văn bản mỗi ngày, chi phí đẩy hầu hết các nhóm về mô hình nhỏ tinh chỉnh.
Văn bản tiếng Việt trên mạng: khó hơn văn bản chuẩn
Mô hình được huấn luyện trước chủ yếu trên văn bản chuẩn, nhưng dữ liệu cần phân loại thường là bình luận, tin nhắn, đánh giá sản phẩm. Ở đó gặp đủ loại: chữ không dấu "sp dung tot nhung giao cham", viết tắt "ko", "dc", "đt", "ib", kiểu gõ teencode thay chữ bằng ký tự, kéo dài chữ "đẹppppp", biểu tượng cảm xúc thay lời, chêm tiếng Anh "ship nhanh, quality ok".
Khó hơn nữa là sắc thái. Người Việt hay khen chê gián tiếp: "giao hàng nhanh ghê, có ba tuần à" là chê; "cũng được" có thể là hài lòng vừa phải hoặc thất vọng lịch sự tuỳ ngữ cảnh. Phủ định nằm xa động từ: "không phải là không thích" thực ra là thích. Một bình luận có thể vừa khen sản phẩm vừa chê giao hàng, tức là thuộc hai nhãn.
Có hai cách đối phó, thường dùng cùng nhau. Cách thứ nhất là chuẩn hoá trước khi phân loại: chuẩn hoá Unicode, thu gọn ký tự lặp, mở rộng viết tắt phổ biến, có thể khôi phục dấu. Cách thứ hai, quan trọng hơn, là đưa chính loại văn bản ấy vào dữ liệu huấn luyện hoặc ví dụ mẫu. Chuẩn hoá quá tay có rủi ro: khôi phục dấu sai có thể đổi nghĩa, và kéo dài chữ hay dùng nhiều dấu chấm than cũng là tín hiệu cảm xúc, xoá đi là mất thông tin.
Một điểm hay bị bỏ qua là khác biệt vùng miền trong cách viết. Khách miền Nam viết "hông", "dzậy", "nha"; khách miền Bắc viết "không", "thế", "nhé"; người lớn tuổi ở nông thôn có thể gõ không dấu hoàn toàn và không ngắt câu. Nếu dữ liệu huấn luyện chỉ lấy từ một nhóm khách, mô hình sẽ phân loại kém hơn với nhóm còn lại, và đó là một dạng thiên lệch thật chứ không chỉ là sai số kỹ thuật. Khi lấy mẫu, nên ghi nguồn và cố gắng trộn đủ các nhóm người viết.
Thiết kế bộ nhãn và hướng dẫn gán nhãn
Chất lượng phân loại phụ thuộc vào bộ nhãn nhiều hơn vào mô hình. Bộ nhãn mơ hồ thì người gán nhãn bất đồng, mô hình học theo sự bất đồng đó và không bao giờ vượt qua được. Những nguyên tắc dưới đây giúp tránh phần lớn rắc rối.
- Mỗi nhãn có định nghĩa một câu và ranh giới rõ với nhãn gần nó nhất. "Khiếu nại giao hàng" khác "hỏi tình trạng đơn" ở chỗ nào: có bày tỏ không hài lòng hay chỉ hỏi.
- Quyết định trước một văn bản có thể có nhiều nhãn hay không. Nếu có, đó là bài toán đa nhãn, cách huấn luyện và đo khác hẳn bài toán một nhãn.
- Luôn có nhãn "khác" hoặc "không xác định" để người gán nhãn không bị ép chọn sai, và theo dõi nhãn này phình to là dấu hiệu cần thêm nhãn mới.
- Hướng dẫn gán nhãn có ví dụ khó: câu mỉa mai, câu không dấu, câu trộn hai chủ đề, câu quá ngắn như "ok", "?". Mỗi ví dụ kèm nhãn đúng và lý do.
- Cho hai người gán nhãn độc lập một phần dữ liệu và đo mức đồng thuận, ví dụ bằng hệ số kappa của Cohen. Đồng thuận thấp ở nhãn nào thì sửa định nghĩa nhãn đó trước khi gán tiếp.
- Che thông tin cá nhân trong văn bản trước khi giao cho người gán nhãn, nhất là khi thuê bên ngoài: tên, số điện thoại, địa chỉ, mã đơn hàng, số tài khoản.
Các kỹ thuật gán nhãn và đo đồng thuận chi tiết hơn được bàn ở danh mục Dữ liệu tiếng Việt cho AI của trang.
Đo cho đúng: vì sao độ chính xác chung hay đánh lừa
Độ chính xác chung là tỷ lệ văn bản được gắn đúng nhãn. Con số này đánh lừa khi các nhãn lệch nhau nhiều. Ví dụ giả định: trong mười nghìn bình luận, chín nghìn là bình thường, năm trăm là khen, ba trăm là chê, hai trăm là lừa đảo. Một mô hình gắn tất cả là "bình thường" đã đạt độ chính xác 90 phần trăm mà không phát hiện được một tin lừa đảo nào.
Vì vậy nên đo theo từng nhãn với hai câu hỏi: trong các văn bản mô hình gắn nhãn lừa đảo, bao nhiêu phần trăm thật sự là lừa đảo (độ chuẩn xác); trong các văn bản thật sự là lừa đảo, mô hình bắt được bao nhiêu phần trăm (độ bao phủ). Chỉ số F1 gộp hai con số này. Lấy trung bình F1 của các nhãn với trọng số như nhau, gọi là macro F1, cho bạn cái nhìn công bằng với nhãn hiếm.
Công cụ hữu ích nhất là ma trận nhầm lẫn: bảng cho biết nhãn nào hay bị nhầm thành nhãn nào. Nếu "khiếu nại giao hàng" và "hỏi tình trạng đơn" nhầm qua lại nhiều, vấn đề có thể nằm ở định nghĩa nhãn chứ không phải mô hình. Cuối cùng, chọn ngưỡng theo cái giá của từng loại sai: bỏ sót tin lừa đảo thường đắt hơn báo nhầm, nên có thể chấp nhận độ chuẩn xác thấp hơn để bắt được nhiều hơn, rồi để người kiểm các ca bị gắn cờ.
Một lộ trình thực tế từ con số không
Ví dụ giả định: một sàn thương mại điện tử nhỏ muốn phân loại tự động bình luận sản phẩm thành bảy nhóm để chuyển đúng bộ phận. Lộ trình dưới đây giúp đi từ không có dữ liệu tới hệ thống chạy ổn định mà không tốn kém sớm.
- Viết bộ nhãn và hướng dẫn gán nhãn, thử với hai người trên một trăm bình luận, sửa nhãn tới khi đồng thuận chấp nhận được.
- Dùng mô hình lớn với câu lệnh chứa định nghĩa nhãn và vài ví dụ để gán nhãn nháp cho vài nghìn bình luận đã che thông tin cá nhân.
- Người gán nhãn duyệt và sửa nhãn nháp. Việc sửa nhanh hơn gán từ đầu nhiều lần, nhưng cần dặn người duyệt không dễ dãi đồng ý với máy.
- Giữ riêng một phần làm tập thử. Tinh chỉnh một mô hình mã hoá nhỏ trên phần còn lại, so với chính mô hình lớn trên tập thử theo từng nhãn.
- Đưa mô hình nhỏ vào chạy với ngưỡng tin cậy: ca không chắc chuyển cho mô hình lớn hoặc người.
- Mỗi tháng gom các ca bị sửa nhãn, bổ sung vào dữ liệu và huấn luyện lại; theo dõi nhãn "khác" để phát hiện chủ đề mới.
Lộ trình này dùng mô hình lớn ở chỗ nó mạnh nhất, tức là hiểu linh hoạt khi chưa có dữ liệu, và dùng mô hình nhỏ ở chỗ nó mạnh nhất, tức là chạy rẻ và đều khi đã có dữ liệu.
Câu hỏi thường gặp
Phân loại cảm xúc bình luận tiếng Việt có chính xác không?
Khá tốt với bình luận rõ ràng, kém hơn với mỉa mai, khen chê lẫn lộn, chữ không dấu và teencode. Độ chính xác thực tế phụ thuộc dữ liệu của bạn giống dữ liệu huấn luyện đến đâu. Hãy đo trên mẫu thật, theo từng nhãn, trước khi dùng số liệu cảm xúc để ra quyết định.
Cần bao nhiêu mẫu gán nhãn để tinh chỉnh mô hình phân loại tiếng Việt?
Thường vài trăm mẫu mỗi nhãn là mức bắt đầu thấy kết quả ổn, nhãn khó hoặc hiếm cần nhiều hơn. Quan trọng hơn số lượng là mẫu đại diện cho văn bản thật và nhãn được gán nhất quán.
Có nên khôi phục dấu trước khi phân loại không?
Nên thử và đo. Khôi phục dấu thường giúp khi mô hình được huấn luyện trên văn bản có dấu, nhưng khôi phục sai có thể đổi nghĩa. Cách chắc hơn là đưa văn bản không dấu vào dữ liệu huấn luyện để mô hình quen trực tiếp.
Mô hình lớn gán nhãn có đáng tin để thay người không?
Đủ tốt để làm nháp, chưa đủ để thay hoàn toàn người ở nhãn quan trọng. Mô hình lớn có thiên hướng riêng, có thể nhất quán sai ở một kiểu câu. Luôn có người duyệt mẫu và đo đồng thuận giữa máy với người.
Phân loại tin nhắn lừa đảo tiếng Việt có gì khác bài toán thường?
Kẻ lừa đảo liên tục đổi cách viết để né bộ lọc, nên dữ liệu cũ lỗi thời nhanh. Cần cập nhật mẫu thường xuyên, kết hợp tín hiệu ngoài văn bản như đường dẫn, số tài khoản, và đặt ngưỡng ưu tiên bắt nhiều hơn. Góc nhận diện lừa đảo cho người dùng được bàn ở trang AI Bảo Mật.
Macro F1 và độ chính xác chung nên báo cáo con số nào?
Báo cả hai, kèm F1 theo từng nhãn. Độ chính xác chung cho biết tổng thể, macro F1 cho biết mô hình có bỏ rơi nhãn hiếm không. Với người ra quyết định, F1 của nhãn quan trọng nhất thường là con số đáng nhìn nhất.