Chương 6: Cộng đồng có ghế ở bàn dữ liệu
Ý tưởng lập Hội đồng Giọng nói Cộng đồng bị phản đối từ cả hai phía.
Engineer hỏi:
“Người ngoài công ty có quyền quyết dataset kỹ thuật đến đâu?”
Người tham gia collection hỏi:
“Lập hội đồng rồi có phải công ty vẫn quyết cuối cùng không?”
Cả hai câu đều đúng.
Nếu hội đồng chỉ để chụp ảnh, nó vô nghĩa.
Nếu trao cho mười người quyền nói thay cho mọi phương ngữ, mọi người già, mọi người khuyết tật giọng nói và hàng triệu người Việt, cũng vô lý.
Nguyên đặt vấn đề:
“Vậy mình đang cố tạo cái gì?”
Thu trả lời:
“Một chỗ người bị ảnh hưởng có quyền làm chậm hoặc buộc xem lại những use case mới, chứ không phải hội đồng cai trị model.”
Tôi thích cách đó.
Không thần thánh hóa “cộng đồng”.
Cộng đồng không phải một người.
Hai người cùng quê có thể muốn hai thứ hoàn toàn khác.
Một người muốn mở data cho nghiên cứu để tiếng địa phương được hỗ trợ tốt hơn.
Người khác sợ giọng mình bị tái sử dụng ngoài ý muốn.
Một giáo viên muốn dữ liệu phục vụ miễn phí cho trường học.
Một voice talent chuyên nghiệp nói:
“Nếu công ty dùng thương mại thì phải trả khác.”
Không ai sai chỉ vì mục tiêu khác nhau.
Chúng tôi thiết kế hội đồng mười hai ghế.
Không theo kiểu mỗi “miền” một ghế.
Thay vào đó gồm:
Người từng góp dữ liệu từ nhiều vùng.
Người trên sáu mươi tuổi.
Một đại diện nhóm người có khác biệt giọng nói do sức khỏe.
Một giáo viên.
Một người làm nghề ngoài trời có môi trường âm thanh khó.
Một linguist độc lập.
Một chuyên gia privacy.
Và hai ghế luân phiên cho nhóm collection mới.
Không có ghế dành cho “mẹ của Kiệt”.
Mẹ tôi hỏi:
“Răng không mời mẹ? Mẹ nói tiếng Hà Tĩnh chuẩn nhất nhà.”
Tôi cười.
“Vì con làm ở công ty.”
“Thì mẹ càng biết.”
“Đó chính là conflict.”
Bà bảo tôi bày vẽ.
Có lẽ.
Nhưng nếu hội đồng mở ra để tăng tiếng nói người ngoài công ty mà tôi lại đưa mẹ mình vào, nó sẽ bắt đầu bằng đúng thứ chúng tôi muốn tránh.
Thành viên được trả thù lao.
Không gọi là tình nguyện vì “đóng góp cho AI Việt”.
Họ phải đọc tài liệu, họp, hỏi, đôi khi làm chậm product.
Đó là lao động.
Procurement hỏi:
“Mức thù lao theo chuyên môn hay đồng đều?”
Lại một cuộc tranh luận.
Cuối cùng chuyên gia độc lập có hợp đồng tư vấn riêng.
Các ghế cộng đồng nhận cùng một mức cho thời gian họp và chuẩn bị, cộng chi phí đi lại nếu cần.
Không trả người nói giọng “hiếm” cao hơn chỉ vì chúng tôi muốn khai thác rarity.
Phiên đầu tiên thất bại gần như hoàn toàn.
Product team trình dự án voice assistant mới bằng ba mươi slide.
Slide đầy từ:
Embeddings.
Personalization.
Adaptation.
On-device profile.
Một bác tên Nghiêm, sáu mươi bảy tuổi, cựu thợ máy ở Nghệ An, giơ tay:
“Nói lại bằng tiếng thường đi.”
PM cố giải thích.
“Hệ thống sẽ học đặc điểm giọng riêng của bác để nghe bác tốt hơn.”
“Học ở điện thoại hay gửi lên công ty?”
PM dừng.
“Tùy thiết kế.”
“Vậy chưa thiết kế mà hỏi chúng tôi đồng ý cái chi?”
Phòng im.
Đúng.
Chúng tôi tới hội đồng quá sớm để có câu trả lời kỹ thuật, nhưng lại quá muộn để họ ảnh hưởng từ đầu.
Thu nói:
“Lần sau phải đưa vấn đề khi còn lựa chọn kiến trúc, nhưng đủ cụ thể để người ta hiểu lựa chọn là gì.”
Đó trở thành quy tắc.
Không trình khi product đã xong chỉ để xin approval.
Cũng không trình một ý tưởng mơ hồ đến mức không ai biết mình đang chấp thuận gì.
Phiên thứ hai tốt hơn.
Chúng tôi đưa ba phương án personalization:
A: lưu adaptation profile trên server công ty.
B: phần lớn xử lý trên thiết bị, chỉ gửi thống kê tối thiểu.
C: không personalization, dùng model chung.
Mỗi phương án có lợi ích, chi phí và rủi ro.
Hội đồng không “bỏ phiếu model nào thắng”.
Họ hỏi những câu product chưa hỏi.
Nếu đổi điện thoại thì profile đi đâu?
Nếu người thân dùng chung thiết bị?
Có tắt personalization được không?
Nếu tắt, profile cũ xóa khi nào?
Có phải người nói giọng model hiểu kém sẽ bị ép bật personalization để dùng dịch vụ ngang người khác không?
Câu cuối khiến tôi im.
Một tính năng giúp nhóm yếu có thể vô tình biến thành yêu cầu họ giao thêm data để đạt chất lượng mà nhóm chuẩn được mặc định nhận.
Chúng tôi chỉnh thiết kế.
Baseline model vẫn phải đạt một quality floor trước khi được phép nói personalization là giải pháp.
Không dùng personalization để che bất công của model nền.
Hội đồng còn có quyền xem aggregate performance cho các nhóm họ đại diện liên quan.
Không raw audio.
Không danh tính người khác.
Chỉ số và xu hướng.
Nếu một release làm performance của một nhóm giảm rõ, hội đồng có thể yêu cầu review trước deployment rộng.
Không phải veto tuyệt đối.
Nhưng product owner phải trả lời bằng văn bản nếu vẫn triển khai.
Board hỏi:
“Vậy họ có quyền chặn launch không?”
Nguyên nói:
“Không trực tiếp.”
“Thế có ý nghĩa gì?”
Tôi đáp:
“Ý nghĩa là một quyết định bỏ qua cảnh báo không còn biến mất trong Slack.”
“Nó có người hỏi, có record và có người chịu tên.”
Board không hoàn toàn thích.
Nhưng đồng ý pilot một năm.
Khó nhất là reuse data cho research mở.
Một nhóm đại học muốn bộ dữ liệu phương ngữ đã de-identify để nghiên cứu.
Engineer trong NovaMind ủng hộ.
“Mở ra thì cả cộng đồng ML cải thiện.”
Một số thành viên hội đồng cũng ủng hộ.
Bác Nghiêm phản đối.
“Tôi cho công ty này, không cho cả internet.”
Linguist nói:
“Nếu không chia sẻ, nghiên cứu phương ngữ cứ thiếu mãi.”
Một thành viên trẻ hỏi:
“Có thể chỉ chia features không khôi phục giọng?”
Privacy expert nói không nên hứa “không thể” nếu chưa đánh giá cụ thể.
Không có đồng thuận.
Chúng tôi không ép tạo đồng thuận giả.
Kết quả:
Dataset cũ không tự động mở.
Collection mới thêm lựa chọn riêng cho research sharing.
Người tham gia chọn.
Những ai không chọn vẫn dùng cho scope công ty đã đồng ý.
Chậm hơn.
Dataset nghiên cứu nhỏ hơn.
Nhưng quyền chọn rõ hơn.
Hội đồng cũng từng quyết định mà tôi không thích.
Họ yêu cầu collection scripts bớt tập trung vào câu “chuẩn” do linguist viết, tăng câu do chính địa phương đề xuất.
Tôi lo dữ liệu khó cân bằng.
Thu nói:
“Khó balance thì thiết kế sampling tốt hơn.”
“Đừng sửa người để dataset dễ.”
Tôi chịu.
Nhờ đó chúng tôi thu được nhiều từ địa phương, kiểu gọi thân thuộc và cấu trúc nói mà prompt cũ không có.
Model khó hơn lúc train.
Nhưng error room thú vị hơn.
Một thành viên hội đồng, cô Hạnh ở Huế, nghe model bỏ mất từ “mô” trong một câu rồi nói:
“Nó không sai từ. Nó xóa cách nói của tui.”
Tôi ghi câu đó.
ASR không chỉ là chép chữ.
Nếu normalization quá mạnh, hệ thống có thể biến mọi người về một kiểu tiếng Việt “đẹp” và làm mất dấu phương ngữ.
Chúng tôi tách hai mode:
Verbatim transcription giữ từ địa phương khi nhận được.
Normalized text chỉ dùng khi người dùng chọn hoặc use case cần, và phải giữ bản gốc.
Một thay đổi nhỏ về UI.
Một thay đổi lớn về cách nghĩ:
Không phải mọi khác biệt đều là lỗi cần sửa.
Sau một năm, Hội đồng Giọng nói không làm NovaMind trở thành công ty đạo đức hoàn hảo.
Có những đề nghị họ không đồng ý.
Có những quyết định công ty vẫn làm khác sau khi giải trình.
Có thành viên rời vì thấy quyền chưa đủ.
Có người khác nói hội đồng đã giúp ít nhất tiếng nói ngoài công ty xuất hiện sớm hơn.
Tôi thấy đó là kết quả thật hơn một brochure “AI do cộng đồng đồng kiến tạo”.
Không ai đại diện toàn bộ cộng đồng.
Nhưng bàn dữ liệu không còn chỉ có engineer, lawyer, sales và product.
Có thêm những người từng ngồi trước microphone.
Và đôi khi một câu “nói lại bằng tiếng thường đi” của họ tiết kiệm cho chúng tôi hàng tháng đi sai hướng.