Trong nhiều dự án Machine Learning và AI, nhóm phát triển thường gặp một tình huống quen thuộc: dữ liệu thật ít, khó thu thập, đắt tiền hoặc nhạy cảm. Lúc này, dữ liệu tổng hợp thường được xem như một lối thoát hấp dẫn: tạo thêm ảnh, sinh thêm câu hỏi - câu trả lời, mô phỏng giao dịch, hoặc dùng LLM để viết thêm ví dụ huấn luyện. Dữ liệu tổng hợp có thể rất hữu ích, nhưng nếu dùng thiếu kiểm soát, nó cũng có thể làm mô hình học sai một cách rất tự tin. Vấn đề không nằm ở việc dữ liệu được tạo ra bằng máy, mà nằm ở chỗ ta có hiểu nó đang bổ sung điều gì cho dữ liệu thật hay không. Một ví dụ thực tế: bạn xây dựng mô hình phân loại phản hồi khách hàng thành các nhóm như “khiếu nại giao hàng”, “lỗi thanh toán”, “hỏi thông tin sản phẩm”. Dữ liệu thật chỉ có vài trăm mẫu. Bạn dùng LLM sinh thêm vài nghìn phản hồi giả. Kết quả đánh giá nội bộ có vẻ tăng mạnh. Nhưng khi đưa vào dùng, mô hình lại nhận diện kém các câu phàn nàn ngắn, sai chính tả, viết kiểu địa phương. Lý do: dữ liệu tổng hợp quá sạch, quá đầy đủ ngữ pháp và không giống cách người dùng thật viết. Khi nào dữ liệu tổng hợp hữu ích? - Khi cần tăng độ đa dạng có kiểm soát: ví dụ sinh thêm biến thể câu hỏi có cùng ý nghĩa nhưng cách diễn đạt khác nhau. - Khi cần kiểm tra các tình huống hiếm: ví dụ giao dịch bất thường, lỗi nhập liệu, trường hợp biên trong hệ thống. - Khi cần tạo dữ liệu thử nghiệm cho pipeline: kiểm tra schema, định dạng, logic tiền xử lý trước khi có dữ liệu thật đầy đủ. - Khi cần bảo vệ dữ liệu nhạy cảm: dùng dữ liệu mô phỏng để phát triển ban đầu, nhưng không nên mặc định rằng nó thay thế hoàn toàn dữ liệu thật. Những sai lầm thường gặp 1. Trộn dữ liệu tổng hợp vào train và test mà không đánh dấu nguồn Nếu dữ liệu tổng hợp xuất hiện cả trong tập huấn luyện và tập kiểm tra với cùng phong cách sinh, điểm số có thể đẹp nhưng không phản ánh hiệu năng ngoài đời. Nên lưu metadata như source = real/synthetic, generator_version, prompt_version để phân tích riêng. 2. Sinh dữ liệu theo nhãn mong muốn nhưng không kiểm tra tính tự nhiên Ví dụ yêu cầu LLM “viết 100 câu khiếu nại về giao hàng” thường tạo ra các câu rất rõ ràng: “Tôi muốn khiếu nại về việc giao hàng chậm”. Trong thực tế, người dùng có thể viết: “Đợi 5 ngày rồi chưa thấy đâu”, “shop gửi kiểu gì vậy?”, “mã vận đơn đứng im”. Mô hình học từ dữ liệu quá rõ ràng sẽ yếu với tín hiệu ngầm. 3. Dùng dữ liệu tổng hợp để lấp khoảng trống mà chưa hiểu dữ liệu thật thiếu gì Thiếu dữ liệu không phải lúc nào cũng chỉ là thiếu số lượng. Có thể bạn thiếu nhóm người dùng cụ thể, thiếu ngôn ngữ đời thường, thiếu ca lỗi, thiếu mùa vụ, hoặc thiếu nhãn nhất quán. Nếu không phân tích trước, dữ liệu tổng hợp chỉ làm tập dữ liệu phình to nhưng không làm mô hình tốt hơn. Một quy trình áp dụng an toàn hơn Bước 1: Xác định mục tiêu của dữ liệu tổng hợp Đừng bắt đầu bằng câu “hãy sinh thêm 10.000 mẫu”. Hãy hỏi rõ hơn: - Ta đang thiếu lớp nào? - Thiếu kiểu diễn đạt nào? - Thiếu trường hợp biên nào? - Dữ liệu tổng hợp dùng để huấn luyện, kiểm thử hay demo? Bước 2: Tạo bộ mẫu thật làm neo chất lượng Chọn một tập nhỏ dữ liệu thật đại diện cho từng nhóm. Dùng tập này để quan sát độ dài câu, lỗi chính tả, cách viết tắt, phân bố nhãn, mức độ mơ hồ. Khi sinh dữ liệu, cố gắng mô phỏng phân bố thực tế, không chỉ sinh các ví dụ “sạch đẹp”. Bước 3: Sinh dữ liệu theo lô nhỏ và đánh giá thủ công Thay vì sinh hàng chục nghìn mẫu ngay, hãy sinh 100-200 mẫu đầu tiên rồi kiểm tra: - Nhãn có đúng không? - Nội dung có trùng lặp ý tưởng quá nhiều không? - Có quá hoàn hảo so với dữ liệu thật không? - Có vô tình chứa thông tin nhạy cảm hoặc nội dung không phù hợp không? - Có tạo ra định kiến hoặc giả định sai không? Bước 4: Đánh giá riêng trên dữ liệu thật Dữ liệu tổng hợp có thể dùng trong train, nhưng tập validation/test quan trọng nên ưu tiên dữ liệu thật, nhất là dữ liệu gần với môi trường triển khai. Nếu có thể, hãy báo cáo riêng: - Hiệu năng trên test thật - Hiệu năng trên test tổng hợp - Hiệu năng theo từng nhóm dữ liệu hoặc từng loại lỗi Nếu mô hình chỉ tăng điểm trên test tổng hợp nhưng không tăng trên test thật, bạn cần xem lại cách sinh dữ liệu. Bước 5: Gán trọng số hoặc giới hạn tỷ lệ dữ liệu tổng hợp Không phải lúc nào càng nhiều dữ liệu tổng hợp càng tốt. Nếu dữ liệu giả áp đảo dữ liệu thật, mô hình có thể học phong cách của bộ sinh thay vì học thế giới thật. Một cách thực tế là thử nhiều tỷ lệ: 10%, 30%, 50% dữ liệu tổng hợp trong tập train, rồi so sánh trên test thật. Lời khuyên khi dùng LLM để sinh dữ liệu văn bản - Yêu cầu sinh nhiều mức độ tự nhiên: câu đầy đủ, câu ngắn, câu sai chính tả, câu thiếu chủ ngữ, câu pha tiếng Anh. - Yêu cầu tránh lặp cấu trúc: nếu 100 câu đều bắt đầu bằng “Tôi muốn...”, dữ liệu sẽ nghèo. - Sinh cả ví dụ khó và ví dụ mơ hồ: trong thực tế, không phải mẫu nào cũng rõ nhãn. - Lưu lại prompt đã dùng để có thể tái tạo và điều tra lỗi. - Không đưa dữ liệu cá nhân thật vào prompt nếu chưa có cơ chế bảo vệ phù hợp. Kết luận Dữ liệu tổng hợp là một công cụ tốt nếu được dùng như phần bổ sung có kiểm soát. Nó giúp thử nghiệm nhanh hơn, mở rộng một số tình huống hiếm và cải thiện độ đa dạng của tập huấn luyện. Nhưng nó không thay thế được việc hiểu dữ liệu thật, kiểm tra nhãn, thiết kế tập test đáng tin và theo dõi mô hình sau triển khai. Một nguyên tắc dễ nhớ: hãy để dữ liệu tổng hợp giúp bạn kiểm tra giả thuyết, không phải giúp bạn tự thuyết phục rằng mô hình đã tốt. Nếu mô hình chỉ giỏi trên dữ liệu do chính bạn sinh ra, có thể bạn mới chỉ huấn luyện nó để vượt qua một bài kiểm tra tự tạo, chứ chưa chuẩn bị cho môi trường thực tế.