VietASI.comVietASI
Dữ liệu tiếng Việt cho AI

Cách làm bộ dữ liệu tiếng Việt cho AI: tám bước từ mục đích đến bản phát hành

Một bộ dữ liệu tiếng Việt dùng được bắt đầu từ câu hỏi cần trả lời, không phải từ việc gom thật nhiều chữ. Tám bước, kèm chỗ hay hỏng ở từng bước.

Small team of young Vietnamese engineers around a wooden table in a bright Hanoi co-working space, sticky notes in blank colors on a glass wall, wide shot from behind

Làm một bộ dữ liệu tiếng Việt cho AI gồm tám bước nối nhau: xác định bài toán và cách đo, chọn nguồn có quyền dùng, thu thập có ghi chép, làm sạch, chuẩn hoá chữ Việt, gán nhãn theo một bản hướng dẫn viết sẵn, kiểm chất lượng bằng độ đồng thuận giữa người gán, rồi chia tập và tài liệu hoá trước khi phát hành. Bỏ một bước thì lỗi không biến mất mà dồn sang bước sau, thường lộ ra muộn nhất có thể: khi mô hình đã huấn luyện xong và cho kết quả lạ.

Phần lớn thời gian của một dự án xử lý ngôn ngữ tiếng Việt không nằm ở chọn mô hình mà ở dữ liệu. Câu "rác vào, rác ra" ai cũng thuộc, nhưng ít ai nói rác cụ thể là gì với tiếng Việt: chữ lẫn hai kiểu bỏ dấu, bình luận không dấu, văn bản dịch máy trôi nổi trên mạng, menu trang web lọt vào giữa bài, tên người thật chưa che. Bài này đi qua tám bước theo đúng thứ tự làm, mỗi bước kèm chỗ hay hỏng. Các bước sâu hơn như giấy phép, làm sạch, gán nhãn, đo đồng thuận, che dữ liệu cá nhân có bài riêng trong cùng chuyên mục.

Bước 1: bắt đầu từ bài toán và cách đo, không phải từ kho chữ

Câu hỏi đầu tiên không phải "lấy dữ liệu ở đâu" mà là "mô hình làm xong việc thì kiểm bằng cách nào". Một nhóm muốn phân loại phản hồi khách hàng của một cửa hàng điện máy sẽ cần vài nghìn câu bình luận có nhãn rõ ràng; một nhóm muốn tinh chỉnh trợ lý trả lời thủ tục hành chính cần cặp câu hỏi và câu trả lời đã được người hiểu thủ tục kiểm; một nhóm làm nhận dạng giọng nói cần giờ ghi âm kèm bản chép. Ba bài toán, ba loại dữ liệu khác hẳn nhau, không thể dùng chung một kho "văn bản tiếng Việt" cho cả ba.

Viết ra một trang mô tả gồm: đầu vào là gì (một câu, một đoạn, một tệp âm thanh), đầu ra là gì (một nhãn, một đoạn văn, một chuỗi chữ), ai dùng, dùng trong bối cảnh nào, và chỉ số nào sẽ quyết định thành bại. Ví dụ giả định: "đầu vào là bình luận dưới 300 tiếng trên trang bán hàng, đầu ra là một trong năm nhãn phàn nàn, đo bằng F1 trung bình theo nhãn trên tập kiểm tra do người khác gán". Trang mô tả này về sau thành phần đầu của thẻ dữ liệu.

Từ đó mới ước lượng cỡ dữ liệu. Không có con số chung đúng cho mọi việc; cách thực tế là làm một mẻ nhỏ vài trăm mẫu, huấn luyện thử, rồi xem chất lượng còn tăng khi thêm dữ liệu hay đã chững lại. Đường cong học đó cho biết nên dồn công vào thêm mẫu, thêm nhãn khó, hay sửa hướng dẫn gán nhãn.

Bước 2 và 3: chọn nguồn có quyền dùng, thu thập có ghi chép

Nguồn dữ liệu tiếng Việt chia làm ba nhóm: dữ liệu mở có giấy phép rõ (Wikipedia tiếng Việt, các bộ dữ liệu công bố kèm giấy phép), dữ liệu của chính tổ chức (email hỗ trợ khách hàng, biên bản, tài liệu nội bộ) và dữ liệu tự tạo mới (thuê người viết, ghi âm người tình nguyện). Nhóm thứ hai thường quý nhất vì sát bài toán, nhưng cũng nhiều thông tin cá nhân nhất. Nhóm thứ ba tốn tiền nhưng sạch về quyền và kiểm soát được độ phủ.

Thu thập thì ghi lại mọi thứ ngay từ đầu: lấy từ đâu, ngày nào, bằng công cụ gì, giấy phép hay căn cứ đồng ý là gì, đã lọc gì. Một bảng tính ghi nguồn đơn giản nhưng giữ đều tay còn hơn một hệ thống phức tạp bỏ dở. Sáu tháng sau, khi có người hỏi "câu này lấy ở đâu", nhóm trả lời được trong một phút thay vì một tuần.

Với văn bản lấy từ web, giữ lại địa chỉ gốc và thời điểm lấy cho từng tài liệu. Việc này giúp gỡ bỏ nhanh khi chủ nội dung yêu cầu, giúp lọc trùng và giúp phát hiện chuyện một trang web lớn chiếm quá nhiều tỷ trọng, kéo cả bộ dữ liệu nghiêng về giọng văn của một nơi.

Bước 4 và 5: làm sạch và chuẩn hoá chữ Việt

Lọc trùng trước, lọc chất lượng sau. Văn bản tiếng Việt trên mạng bị sao chép rất nhiều: một bài báo được hàng chục trang đăng lại, một mô tả sản phẩm lặp trên hàng trăm gian hàng. Không lọc trùng thì mô hình học thuộc những câu đó và tập kiểm tra dễ chứa câu đã có trong tập huấn luyện.

Bỏ phần không phải nội dung. Menu, chân trang, nút chia sẻ, dòng "bài viết liên quan", quảng cáo chèn giữa bài là rác phổ biến nhất khi cào web. Chúng không sai chính tả nên bộ lọc ngôn ngữ không bắt được, phải dùng công cụ tách phần thân bài hoặc quy tắc theo cấu trúc trang.

Đưa chữ Việt về một dạng. Cùng một chữ "hoà" có thể xuất hiện ở dạng Unicode dựng sẵn, dạng tổ hợp, kiểu bỏ dấu cũ "hoà" hay kiểu mới "hòa", thậm chí còn sót mã TCVN3 hay VNI từ tài liệu cũ. Máy coi đó là những chuỗi khác nhau. Chuẩn hoá về Unicode dựng sẵn và chọn một quy tắc đặt dấu thống nhất là việc phải làm trước khi đếm, lọc trùng hay gán nhãn.

Quyết định số phận văn bản không dấu và tiếng lóng. Không có đáp án chung. Bộ dữ liệu cho mô hình đọc bình luận mạng nên giữ văn bản không dấu và viết tắt vì người dùng thật viết như vậy; bộ dữ liệu cho mô hình soạn văn bản hành chính thì nên loại. Điều cần là quyết định có chủ ý và ghi vào tài liệu, không để nó xảy ra tình cờ.

Bước 6: gán nhãn theo hướng dẫn viết sẵn

Gán nhãn là nơi tiếng Việt đặt ra nhiều ca khó nhất. Câu "giao hàng nhanh ghê, mà đồ thì thôi rồi" là khen hay chê? "Cũng được" là hài lòng hay thất vọng nhẹ? Câu mỉa mai "sản phẩm tuyệt vời, dùng hai ngày là hỏng" đọc theo chữ thì tích cực, đọc theo ý thì tiêu cực. Nếu không có hướng dẫn, mỗi người gán sẽ tự quyết theo cảm nhận, và bộ dữ liệu sẽ chứa ý kiến của từng người gán thay vì một khái niệm nhất quán.

Bản hướng dẫn gán nhãn cần định nghĩa từng nhãn bằng lời, kèm ví dụ đúng, ví dụ sai và ví dụ ranh giới, cùng một quy tắc ưu tiên khi một câu có thể thuộc hai nhãn. Hướng dẫn không viết một lần là xong: sau mỗi vòng gán thử, nhóm đọc lại các câu bị gán lệch nhau và bổ sung luật. Một hướng dẫn tốt thường dày lên gấp đôi sau ba vòng sửa.

Người gán nên là người hiểu bối cảnh. Bình luận dùng nhiều từ miền Nam như "hổng", "quá trời", "dữ thần" sẽ được người quen giọng miền Nam đọc chuẩn hơn; văn bản y tế, pháp luật cần người có nền chuyên môn. Trả công đúng và cho người gán thời gian là cách rẻ nhất để có nhãn tốt.

Bước 7: kiểm chất lượng bằng độ đồng thuận và lấy mẫu đọc tay

Cách đo nhãn đã đủ tin chưa là cho hai hoặc ba người gán độc lập cùng một tập mẫu rồi tính độ đồng thuận, thường bằng hệ số kappa của Cohen hoặc alpha của Krippendorff. Con số thấp không có nghĩa người gán làm ẩu; nhiều khi nó cho biết định nghĩa nhãn đang mơ hồ, hoặc bài toán vốn có nhiều cách hiểu hợp lý. Khi đó sửa hướng dẫn hoặc gộp nhãn có lợi hơn ép người gán phải giống nhau.

Ngoài con số, đọc tay một mẫu ngẫu nhiên vài trăm dòng sau mỗi mẻ là thói quen không thay thế được. Người đọc tay sẽ phát hiện những thứ không chỉ số nào bắt được: cả một đợt văn bản bị lỗi mã hoá, một nguồn toàn văn dịch máy ngượng nghịu, một người gán bấm nhầm nút liên tục trong một buổi chiều.

Ghi lại tỷ lệ lỗi phát hiện được theo từng nguồn và từng người gán. Bảng này giúp quyết định loại bỏ nguồn nào, đào tạo lại ai, và là bằng chứng chất lượng khi bộ dữ liệu được dùng hay công bố.

Bước 8: chia tập, tài liệu hoá, phát hành có phiên bản

Bước cuối thường bị làm vội nhất, trong khi nó quyết định kết quả đánh giá có đáng tin không. Bảng dưới gom những việc cần làm và lý do.

ViệcLàm thế nàoVì sao
Chia tập huấn luyện, kiểm định, kiểm traChia theo nhóm (theo người viết, theo nguồn, theo thời gian), không chia ngẫu nhiên từng câuCâu cùng một người viết hay cùng một bài nằm ở cả hai tập sẽ làm điểm kiểm tra cao giả
Lọc trùng giữa các tậpKiểm trùng gần đúng giữa tập kiểm tra và tập huấn luyện sau khi chiaVăn bản tiếng Việt bị sao chép nhiều, trùng gần đúng rất phổ biến
Viết thẻ dữ liệuMục đích, nguồn, giấy phép, cách gán nhãn, độ đồng thuận, giới hạn đã biết, phân bố vùng miềnNgười dùng sau biết bộ dữ liệu hợp và không hợp với việc gì
Đánh số phiên bảnMỗi lần sửa nhãn hay thêm bớt dữ liệu tăng số phiên bản, ghi thay đổiKết quả hai thí nghiệm chỉ so được khi cùng phiên bản dữ liệu
Giữ tập kiểm tra kínKhông đưa tập kiểm tra lên nơi công khai nếu không cần, hoặc công bố muộnTránh tập kiểm tra lọt vào dữ liệu huấn luyện của mô hình khác

Nếu chỉ làm được một việc trong bảng, hãy chia tập theo nhóm. Đó là lỗi gây ảo tưởng chất lượng phổ biến nhất trong các dự án xử lý tiếng Việt quy mô nhỏ, và cũng dễ sửa nhất nếu làm từ đầu.

Những sai lầm làm hỏng cả bộ dữ liệu

Sai lầm thứ nhất là gom thật nhiều trước rồi mới nghĩ bài toán. Kết quả là một kho hàng chục gigabyte không dùng được cho việc gì cụ thể, vì không có nhãn phù hợp và không biết nguồn nào được phép dùng. Sai lầm thứ hai là dùng chính mô hình ngôn ngữ để gán nhãn toàn bộ rồi dùng nhãn đó để đánh giá mô hình khác, khiến điểm số phản ánh mức giống mô hình gán nhãn chứ không phải mức đúng.

Sai lầm thứ ba là quên vùng miền và nhóm người dùng. Một bộ dữ liệu bình luận gần như toàn người viết ở hai thành phố lớn sẽ cho mô hình hiểu kém cách viết của người ở nơi khác. Sai lầm thứ tư là không che thông tin cá nhân vì nghĩ dữ liệu "chỉ dùng nội bộ"; dữ liệu nội bộ vẫn thuộc phạm vi của quy định bảo vệ dữ liệu cá nhân, và mô hình có thể nhớ rồi nhả lại tên, số điện thoại trong câu trả lời.

Cuối cùng là không ghi chép. Một bộ dữ liệu không có thẻ dữ liệu và nhật ký nguồn gần như không thể kiểm toán, không thể sửa đúng chỗ và không thể tái tạo. Với nhóm nhỏ, mười phút ghi chép mỗi ngày đáng giá hơn mọi công cụ quản lý dữ liệu đắt tiền.

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

Một bộ dữ liệu tiếng Việt cần bao nhiêu mẫu là đủ?

Không có con số chung. Phân loại vài nhãn rõ ràng có thể bắt đầu với vài nghìn mẫu, còn tinh chỉnh mô hình sinh văn bản hay nhận dạng giọng nói cần nhiều hơn hẳn. Cách đáng tin là làm mẻ nhỏ, huấn luyện thử, vẽ đường cong học để xem thêm dữ liệu còn giúp hay không.

Có nên dịch bộ dữ liệu tiếng Anh sang tiếng Việt thay vì làm mới?

Dịch giúp có dữ liệu nhanh nhưng mang theo văn dịch, bối cảnh nước ngoài và lỗi xưng hô. Dùng được để khởi động hoặc bổ sung, nhưng tập kiểm tra nên là văn bản tiếng Việt gốc do người Việt viết, nếu không điểm số sẽ đo khả năng đọc văn dịch chứ không phải tiếng Việt thật.

Ai nên gán nhãn: người trong nhóm hay thuê ngoài?

Vòng đầu nên do người trong nhóm gán để hiểu ca khó và viết hướng dẫn. Khi hướng dẫn đã ổn định có thể thuê ngoài, nhưng vẫn giữ một tập mẫu vàng do nhóm gán để kiểm định kỳ, và chọn người gán quen bối cảnh, vùng miền của dữ liệu.

Văn bản không dấu có nên đưa vào bộ dữ liệu không?

Tuỳ bài toán. Nếu mô hình phải đọc tin nhắn, bình luận của người dùng thật thì nên giữ vì đó là đầu vào thực tế. Nếu mô hình phải viết văn bản chuẩn thì nên loại khỏi phần đầu ra. Quyết định nào cũng cần ghi rõ trong thẻ dữ liệu.

Dữ liệu chỉ dùng nội bộ có cần che thông tin cá nhân không?

Có. Dữ liệu nội bộ vẫn chịu quy định về bảo vệ dữ liệu cá nhân, và mô hình huấn luyện trên dữ liệu chưa che có thể lặp lại tên, số giấy tờ trong câu trả lời. Chi tiết nghĩa vụ pháp lý cần đối chiếu văn bản hiện hành; phần thực hành có trên AI Bảo Mật.

Thẻ dữ liệu khác gì một tệp mô tả thông thường?

Thẻ dữ liệu theo một khung câu hỏi cố định: tạo ra để làm gì, ai tạo, nguồn và giấy phép, cách gán nhãn, phân bố, giới hạn và rủi ro đã biết. Nhờ khung cố định, người dùng sau không phải đoán và dễ so sánh giữa các bộ dữ liệu.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
Gọi ngay 0926 138 138