Chương 1: Mô hình hiểu 97%, trừ giọng của mẹ tôi

Mô hình của tôi đạt 97,2% độ chính xác trên benchmark tiếng Việt.

Đến khi mẹ tôi gọi.

Buổi demo diễn ra ở tầng mười tám một tòa nhà công nghệ tại quận 7, trước gần hai trăm khách hàng doanh nghiệp.

Tôi tên Phạm Tuấn Kiệt, ba mươi mốt tuổi, phụ trách kiến trúc mô hình giọng nói của NovaMind Việt Nam.

Sản phẩm trên sân khấu là VinaVoice 4.

Hai năm huấn luyện.

Gần một triệu đoạn ghi âm.

Hơn mười nghìn người đóng góp giọng nói.

Mục tiêu nghe rất đẹp:

“Để máy tính hiểu mọi người Việt, bất kể họ nói giọng nào.”

Slide của tôi có một con số lớn:

97,2% word accuracy trên bộ đánh giá nội bộ.

Khán giả vỗ tay khi hệ thống nhận đúng giọng Hà Nội.

Nhận đúng giọng Sài Gòn.

Nhận đúng câu đọc nhanh trong môi trường quán cà phê.

Rồi MC đề nghị:

“Anh Kiệt gọi thử một người bất kỳ ngoài hội trường đi. Cho vui.”

Tôi cười.

Không có trong kịch bản.

Nhưng demo tốt nhất luôn là demo không chuẩn bị.

Tôi bấm số mẹ.

Bà sống ở Hà Tĩnh.

Sáu mươi ba tuổi.

Giọng quê đặc, nặng hơn tôi dù tôi sinh ở đó vì hai mươi năm ở Hà Nội và Sài Gòn đã làm giọng tôi phẳng đi.

Mẹ bắt máy.

“A lô, Kiệt à? Răng giờ ni con gọi?”

Hệ thống chạy transcript trực tiếp trên màn hình lớn.

“Alo Kiệt à, rang giờ này con gọi?”

Khán giả cười nhẹ.

Tôi cũng cười.

Một lỗi nhỏ.

Tôi nói:

“Mẹ, mẹ nói thử câu: hôm nay trời mưa, mẹ chưa ra chợ.”

Mẹ nói.

“Bữa ni mưa, mạ chưa đi chợ mô.”

Màn hình hiện:

“Bữa nay mưa, mà chưa đi chợ mua.”

Tiếng cười lớn hơn.

Tôi thấy gáy nóng lên.

MC cố cứu:

“Giọng địa phương khó quá anh ha.”

Tôi gật.

“Mẹ nói tiếp đi.”

Bà hỏi:

“Con đang mô rứa?”

Màn hình:

“Con đang mua rượu?”

Cả hội trường cười.

Mẹ không biết.

Bà vẫn nói qua loa điện thoại:

“Nghe chi ồn rứa? Con có ăn cơm chưa?”

VinaVoice bỏ mất nửa câu.

Tôi kết thúc demo bằng một câu đùa.

“Có vẻ mẹ tôi vừa tìm ra benchmark mới.”

Khán giả vỗ tay.

Sự kiện vẫn thành công.

PR team thậm chí nói đoạn lỗi làm demo “human” hơn.

Nhưng tối đó, tôi ngồi lại một mình trong văn phòng.

Không phải vì xấu hổ.

Một model không hoàn hảo là chuyện bình thường.

Tôi khó chịu vì con số 97,2%.

Nó đã khiến tôi tin một điều lớn hơn dữ liệu cho phép:

Rằng model “hiểu tiếng Việt”.

Thật ra nó hiểu rất tốt loại tiếng Việt mà bộ benchmark có nhiều.

Tôi mở evaluation dashboard.

Bộ đánh giá nội bộ có 120.000 utterances.

Chia theo giới tính.

Độ tuổi.

Môi trường.

Thiết bị.

Nhìn rất chuyên nghiệp.

Nhưng phần “region” chỉ có ba nhóm:

Bắc.

Trung.

Nam.

Tôi chưa từng thấy vấn đề cho đến tối đó.

“Trung” là gì?

Huế?

Quảng Nam?

Quảng Ngãi?

Nghệ An?

Hà Tĩnh?

Quảng Bình?

Một nhãn duy nhất gom hàng chục hệ phát âm khác nhau.

Tôi chạy query.

Speaker distribution.

Gần 62% dữ liệu evaluation đến từ Hà Nội và TP.HCM hoặc người sống lâu tại hai thành phố.

Nhóm “Trung” có nhiều người trẻ hơn người già.

Giọng Hà Tĩnh trên 55 tuổi rất ít.

Giọng miền núi gần như không đáng kể.

Người nói trong môi trường ồn có, nhưng phần lớn noise được thêm bằng augmentation thay vì thu thật tại chợ, bến xe, nhà máy.

Tôi nhìn 97,2%.

Không sai.

Chỉ là trung bình.

Và trung bình có khả năng che giấu người model hiểu tệ nhất.

Tôi lấy năm mươi file giọng Hà Tĩnh từ một dataset cũ không nằm trong benchmark chính.

Chạy thử.

Word error rate tăng mạnh.

Tôi lấy giọng người lớn tuổi miền Trung.

Tệ hơn.

Tôi lấy một số đoạn ghi thật trong chợ, tiếng xe, tiếng người chồng lên.

Tệ nữa.

Không phải model hỏng.

Nó làm đúng thứ chúng tôi đã dạy.

Vấn đề là chúng tôi đã dạy nó một Việt Nam nhỏ hơn Việt Nam thật.

11 giờ 42, tôi gọi cho Lý Hạ Nguyên, Head of Product.

Nguyên bắt máy.

“Anh đừng nói có bug production.”

“Không.”

“Vậy mai.”

“Anh nghĩ benchmark của mình có vấn đề.”

Im lặng.

“Vấn đề kiểu nào?”

“97,2% không đại diện đều cho người Việt.”

“Không benchmark nào đại diện hoàn hảo.”

“Anh biết.”

“Vậy?”

“Ngày mai anh muốn breakdown theo accent, age và real-world noise chi tiết hơn.”

Nguyên thở dài.

“Kiệt, tuần sau sales bắt đầu pitch ngân hàng và bệnh viện. Đừng làm headline metric biến thành một luận văn.”

Tôi nhìn transcript của mẹ.

Con đang mua rượu?

“Anh chỉ muốn biết khi mình nói 97%, 3% còn lại là ai.”

Nguyên im một lúc.

“Được.”

“Sáng mai.”

Ngày hôm sau, chúng tôi kéo data team, linguist và QA vào phòng.

Không ai vui vì phải mở lại benchmark ngay trước sales launch.

Data lead tên Dũng nói:

“Metric này đã dùng từ v3.”

“Vậy càng nên hiểu.”

“Anh muốn chia bao nhiêu accent? Không có taxonomy hoàn hảo.”

“Không cần hoàn hảo.”

“Cần đủ để đừng gom người model hiểu kém vào một trung bình đẹp.”

Linguist tên Thu mở bản đồ phương ngữ.

“Nếu làm nghiêm túc, chỉ ba miền là quá thô.”

Nguyên hỏi:

“Mất bao lâu?”

Thu đáp:

“Để audit dataset hiện tại? Một tuần.”

“Để có benchmark tốt hơn? Nhiều tháng.”

Sales Director ngồi cạnh nói:

“Không thể dừng launch nhiều tháng vì model không hiểu mẹ anh Kiệt.”

Câu đó làm phòng im.

Anh ta lập tức sửa:

“Ý tôi không phải vậy. Ý là một case không thể đại diện.”

“Đúng.”

Tôi nói.

“Nên mình mới cần biết có phải một case không.”

Nguyên nhìn tất cả.

“Không dừng launch hôm nay.”

“Nhưng sales deck bỏ câu ‘hiểu mọi giọng Việt’.”

“Thay bằng gì?”

Tôi đáp:

“Đạt 97,2% trên benchmark nội bộ hiện tại; hiệu năng thay đổi theo phương ngữ, độ tuổi và môi trường.”

Sales Director nhăn mặt.

“Ai mua sản phẩm với headline đó?”

Nguyên nói:

“Người không muốn bị kiện sau này vì chúng ta nói quá.”

Tôi nhìn cô.

Lần đầu tiên từ đêm demo, tôi thở được.

Nhưng một tuần audit sau đó cho thấy vấn đề lớn hơn mẹ tôi rất nhiều.

97,2% không phải một lời nói dối.

Nó chỉ là một chiếc đèn sáng đủ mạnh để chúng tôi không nhìn thấy những góc tối quanh nó.

Home Trước Sau
Cài đặt Đọc truyện
Cỡ chữ
Kiểu Chữ
Phông Nền
💬 Bình luận đoạn
Đang tải bình luận...