Chương 2: Benchmark đẹp vì người trong benchmark giống nhau
Audit benchmark khiến con số 97,2% biến thành một bảng dài gần hai mươi dòng.
Không ai trong sales thích bảng đó.
Tôi thì thích hơn một con số duy nhất.
Giọng Hà Nội trẻ, thu trong môi trường yên:
Rất tốt.
Giọng TP.HCM trẻ:
Rất tốt.
Giọng miền Trung nhóm 18–35:
Khá.
Người trên 55 tuổi ở miền Trung:
Giảm rõ.
Giọng Hà Tĩnh, Nghệ An trong sample mới:
Tệ hơn mức chúng tôi từng nghĩ.
Người nói nhanh trong môi trường chợ, xe máy, nhà xưởng:
Tệ.
Người có giọng yếu, khàn hoặc nói không tròn âm do tuổi:
Tệ hơn nữa.
Nguyên nhìn bảng.
“Average mới nếu thêm sample khó?”
Dũng đáp:
“Khoảng 91–92, tùy weight.”
Sales Director suýt bật khỏi ghế.
“Không thể đổi 97 thành 91 ngay trước launch.”
Thu, linguist, nói:
“Không phải model tự nhiên tệ đi.”
“Chỉ benchmark mới khó hơn và đại diện rộng hơn.”
“Khách không quan tâm triết lý.”
“Khách ngân hàng nên quan tâm nếu model nghe sai người lớn tuổi.”
“Không phải use case nào cũng cần giọng Hà Tĩnh.”
Tôi nói:
“Đúng.”
Cả phòng nhìn tôi vì tưởng tôi sẽ phản đối.
“Và đó chính là lý do phải report theo use case.”
“Nếu khách chỉ dùng cho call center ở TP.HCM, metric phù hợp khác.”
“Nếu dùng cho dịch vụ toàn quốc, 97,2% chung không đủ.”
Nguyên gật.
“Tách product claim.”
Đó là quyết định đầu tiên.
VinaVoice không còn một con số “accuracy” dùng cho mọi brochure.
Sales phải chọn profile theo deployment:
Urban clean speech.
National mixed accents.
Call-center telephony.
Noisy field speech.
Older speakers.
Không phải tất cả có đủ data ngay.
Chỗ nào thiếu, ghi thiếu.
Sales ghét.
Nhưng vấn đề benchmark chưa dừng ở representation.
Dũng phát hiện một thứ nghiêm trọng hơn.
Speaker overlap.
Một phần người nói trong tập evaluation từng xuất hiện trong training ở những session khác.
Không phải copy cùng file.
Không data leakage thô kiểu train đúng câu test.
Nhưng model có thể đã quen đặc điểm giọng người đó.
Tôi hỏi:
“Bao nhiêu?”
Dũng nói con số.
Không khổng lồ.
Nhưng đủ để headline metric có khả năng được lợi.
“Tại sao có overlap?”
“Dataset từ nhiều vendor và collection round.”
“Speaker ID không thống nhất.”
“Một người có thể dùng số điện thoại khác, device khác, mã participant khác.”
“Không ai cố ý?”
“Không thấy dấu hiệu.”
Lại một vấn đề hệ thống.
Không phản diện.
Chỉ dữ liệu đi qua nhiều nhà cung cấp, schema khác nhau và deadline thúc nhanh.
Chúng tôi quyết định xây lại evaluation split theo speaker-disjoint.
Kết quả giảm thêm một chút.
Sales Director đi ra ngoài hút thuốc dù anh đã bỏ hai năm.
Tôi cũng thấy đau.
Đừng tưởng người làm ML thích metric giảm vì đạo đức.
Tôi đã dành hai năm cho model.
97,2% là thứ tôi từng khoe với mẹ.
Mỗi điểm phần trăm rơi xuống giống bị lấy mất thành tích.
Nhưng metric cũ không phải thành tích thật nếu nó đo bài dễ hơn tôi tưởng.
Khó chịu không thay đổi điều đó.
Tuần thứ hai, team làm “error room”.
Không phải phòng vật lý đặc biệt.
Chỉ một buổi mỗi ngày nghe những đoạn model sai nặng nhất.
Không nhìn score trước.
Nghe người.
Một bà cụ Quảng Bình nói số tài khoản.
Model nhầm hai chữ số vì cách đọc địa phương.
Một tài xế nói địa chỉ trong tiếng động cơ.
Model bỏ tên phường.
Một người đàn ông sau phẫu thuật thanh quản nói chậm, khàn.
Model gần như không transcript được.
Một cô gái dân tộc thiểu số nói tiếng Việt là ngôn ngữ thứ hai.
Model sửa câu của cô thành cấu trúc “chuẩn” hơn nhưng sai ý.
Thu dừng audio.
“Đây là vấn đề khác.”
“Gì?”
“Model không chỉ không nghe.”
“Nó đoán theo mẫu câu phổ biến.”
“Nghe mượt hơn nhưng sai người nói.”
Câu đó khiến tôi lạnh.
Một hệ thống speech-to-text có thể trông thông minh hơn bằng cách “sửa” người nói.
Ở chatbot vui thì có thể nhỏ.
Ở ghi chú y tế, pháp lý, ngân hàng thì nguy hiểm.
Tôi yêu cầu thêm một metric ngoài word error rate.
Critical entity error.
Tên người.
Con số.
Địa chỉ.
Thuốc.
Ngày giờ.
Một câu sai hai từ bình thường không giống sai một liều thuốc.
Average WER không biết sự khác nhau đó.
Product team bắt đầu hiểu vì sao benchmark phải gắn use case.
Rồi chúng tôi gặp vấn đề dữ liệu tiếp theo.
Noise augmentation.
Nhiều file “ồn” trong training thực ra được tạo bằng cách lấy giọng phòng thu rồi chồng tiếng xe, tiếng quán cà phê, tiếng mưa.
Rất hữu ích.
Nhưng không giống hoàn toàn ghi âm thật.
Microphone clipping.
Người nói quay đầu.
Hai người chồng lời.
Tiếng gió đập mic.
Mạng điện thoại nén âm.
Thực tế xấu theo những cách augmentation sạch không mô phỏng hết.
Nguyên hỏi:
“Muốn thu lại?”
“Một phần.”
“Bao nhiêu người?”
Thu đưa kế hoạch.
Phải mở collection ở nhiều tỉnh.
Người lớn tuổi.
Công nhân.
Người làm nghề ngoài trời.
Giọng vùng ít data.
Và thu ở bối cảnh thật có kiểm soát an toàn.
Sales Director hỏi:
“Chi phí?”
Nguyên nói:
“Cao.”
“Vậy có ROI?”
Tôi hỏi lại:
“ROI của việc không bán model toàn quốc khi nó chưa đủ tốt cho toàn quốc tính sao?”
Anh nhìn tôi.
“Đừng hỏi câu triết học.”
“Đây là câu commercial.”
Nếu chúng tôi ký ngân hàng dùng voice bot cho khách cả nước, failure rate ở nhóm ít data sẽ trở thành chi phí call fallback, khiếu nại và có thể là discrimination trải nghiệm.
Không phải chỉ đạo đức.
Quality gap có tiền thật.
Nguyên duyệt collection mới.
Nhưng cô thêm một điều:
“Lần này data consent phải audit từ đầu.”
Tôi hỏi:
“Có vấn đề consent hiện tại?”
Phòng im.
Dũng mở folder vendor contracts.
“Chưa chắc là vi phạm.”
“Nhưng wording của vài batch rất rộng.”
“Rộng thế nào?”
Thu đọc:
Người tham gia đồng ý cho phép sử dụng bản ghi nhằm nghiên cứu, cải thiện và phát triển công nghệ giọng nói, bao gồm các sản phẩm và dịch vụ liên quan.
Nghe bình thường.
Nhưng VinaVoice giờ không chỉ speech recognition.
NovaMind đang nghiên cứu voice cloning, speaker verification và synthetic speech.
Tôi hỏi:
“Người thu giọng cách đây ba năm có hiểu rằng ‘sản phẩm liên quan’ có thể bao gồm mô hình bắt chước đặc điểm giọng của họ không?”
Không ai trả lời.
Nguyên nói:
“Pháp lý sẽ xem.”
Tôi nhìn một triệu đoạn ghi âm.
Chúng tôi vừa phát hiện benchmark không đại diện.
Bây giờ một câu hỏi lớn hơn mở ra:
Ngay cả khi data giúp model tốt hơn, chúng tôi có quyền dùng nó cho mọi thứ công nghệ cho phép hay không?
97,2% bắt đầu câu chuyện bằng một lỗi đo.
Nhưng càng đào, tôi càng thấy vấn đề không nằm trong model.
Nó nằm trong quan hệ giữa model và những người đã cho chúng tôi giọng nói để xây nó.