Chương 4: Rút một giọng nói khỏi model

Yêu cầu rút dữ liệu đầu tiên đến vào một sáng thứ Hai.

Không phải từ luật sư.

Không phải từ báo chí.

Là email của cô Hương — giáo viên Quảng Nam từng nói với chúng tôi rằng cô cho máy học để hiểu mình, không cho máy một bản sao giọng nói.

Tôi đồng ý tiếp tục dùng giọng cho nhận diện lời nói.

Tôi không đồng ý dùng cho bất kỳ thử nghiệm tổng hợp giọng nào, kể cả nội bộ.

Nhờ công ty xác nhận những bản ghi của tôi đã được loại khỏi phạm vi đó.

Tôi đọc email hai lần.

Về lý thuyết, yêu cầu rất rõ.

Trong hệ thống mới, chỉ cần sửa scope.

Nhưng dữ liệu của Hương được thu ba năm trước.

Trước khi chúng tôi có scope machine-readable.

Trước data lineage.

Trước withdrawal ledger.

Trước khi bất kỳ ai tưởng một người sẽ hỏi:

“Giọng tôi đã đi đâu?”

Dũng mở kho dữ liệu cũ.

Raw audio của Hương còn đủ.

Transcript còn.

Speaker ID cũ còn.

Đó là phần dễ.

Khó nằm ở những thứ sinh ra sau đó.

Feature cache.

Shard huấn luyện.

Bản dataset đã merge.

Checkpoint thử nghiệm.

Embedding dùng trong nghiên cứu speaker.

Một số artifact có metadata speaker.

Một số chỉ có batch ID.

Một số không còn lineage chi tiết đến từng người vì ba năm trước pipeline chỉ cần biết “dataset version nào”, không cần biết mỗi row đã đi qua đâu.

Tôi nhìn sơ đồ.

“Mình biết file gốc.”

“Dạ.”

“Biết tất cả copy?”

Dũng lắc.

“Không chắc 100%.”

“Biết model nào từng train?”

“Mainline thì biết theo dataset version.”

“Experiment cá nhân?”

“Không đủ.”

Tôi ngồi im.

Đó là lần đầu tôi hiểu một hệ thống dữ liệu có thể rất giỏi đưa dữ liệu vào, nhưng hoàn toàn không được thiết kế cho chiều ngược lại.

Ingestion là đường cao tốc.

Exit là đường đất.

Nguyên hỏi:

“Về pháp lý, mình phải làm mức nào?”

Luật sư nói:

“Yêu cầu của cô Hương là đổi scope use, không phải xóa toàn bộ ASR data.”

“Với synthetic experiments chưa production, tốt nhất loại khỏi tất cả dữ liệu có thể xác định và chặn dùng tiếp.”

“Còn checkpoint đã train?”

Luật sư nhìn tôi.

“Đó là phần kỹ thuật cần trả lời trung thực.”

Mọi người quay sang tôi như thể machine learning architect có một lệnh terminal bí mật:

remove_person_from_model()

Không có.

Một mạng neural không giữ giọng Hương trong một ngăn riêng có nhãn tên cô.

Gradient từ hàng nghìn, hàng triệu sample đã trộn vào weights.

Không thể chỉ mở model, chọn một người rồi nhấn delete.

Có những hướng nghiên cứu machine unlearning.

Có phương pháp giảm ảnh hưởng của sample hoặc retrain từng phần trong vài tình huống.

Nhưng tôi không muốn nói với Hương rằng chúng tôi có thể “xóa sạch dấu vết khỏi weights” nếu kỹ thuật của mình không chứng minh được điều đó.

Tôi đề nghị bốn bước.

Một: dừng ngay mọi synthetic experiment sử dụng dataset version có Hương cho tới khi tách sạch.

Hai: xóa hoặc quarantine raw/derived artifacts xác định được ngoài scope ASR cô vẫn cho phép.

Ba: lập danh sách checkpoint đã train bằng dữ liệu scope mơ hồ và không dùng chúng làm nền cho sản phẩm synthetic mới.

Bốn: model synthesis tiếp theo phải retrain từ dataset có consent rõ, thay vì cố chứng minh unlearning hoàn hảo trên model cũ.

Sales Director nhìn tôi như tôi vừa đốt timeline.

“Retrain từ đầu?”

“Cho synthetic product, vâng.”

“Prototype hiện tại mất sáu tháng.”

“Prototype vẫn có thể giữ nội bộ để nghiên cứu nếu pháp lý cho phép?”

Luật sư nói:

“Không nếu chứa data của người đã rút scope synthesis mà chúng ta không thể xác định mức ảnh hưởng đủ rõ.”

Sales quay sang Nguyên.

“Chúng ta đang bỏ sáu tháng vì một email?”

Tôi nói:

“Không.”

“Chúng ta bỏ một đường sản phẩm vì phát hiện pipeline cũ không đủ khả năng chứng minh ai đã đồng ý cho nó.”

“Khác gì?”

“Khác ở chỗ nếu hôm nay không phải Hương, mai có thể là năm trăm người.”

Nguyên gõ bút lên bàn.

“Retrain.”

Sales đứng dậy.

“Chúng ta sẽ trễ launch.”

“Đúng.”

“Competitor sẽ đi trước.”

“Có thể.”

“Board sẽ hỏi.”

“Tôi trả lời.”

Nguyên không nói như anh hùng.

Cô nói như người biết quyết định sẽ làm forecast xấu đi.

Đó mới là lúc nguyên tắc có giá.

Chúng tôi gửi thư cho Hương.

Tôi viết ba bản.

Bản đầu quá kỹ thuật.

Bản hai quá pháp lý.

Bản cuối chỉ nói những gì cô cần biết:

Chúng tôi đã chặn giọng của cô khỏi mọi lần sử dụng mới cho synthetic speech.

Các file và derived artifacts xác định được trong scope này đang được xóa hoặc cách ly.

Một số mô hình nghiên cứu cũ từng được huấn luyện trên tập dữ liệu rộng có chứa bản ghi của cô. Với loại mô hình này, chúng tôi không thể hứa một thao tác xóa tức thời khỏi weights theo từng người.

Vì vậy NovaMind sẽ không phát triển sản phẩm synthetic mới từ các checkpoint đó và sẽ huấn luyện phiên bản tiếp theo bằng tập dữ liệu có quyền sử dụng rõ ràng.

Giọng của cô vẫn được giữ trong phạm vi ASR vì cô đã xác nhận đồng ý; nếu cô muốn rút cả phạm vi này, xin báo lại.

Hương trả lời hai ngày sau.

Cảm ơn vì nói thẳng phần không xóa ngay được.

Tôi vẫn đồng ý ASR.

Nhưng sau này xin nói phần đó trước khi thu âm người khác.

Tôi lưu email vào hồ sơ thiết kế.

Không phải legal archive.

Engineering design docs.

Bởi câu hỏi của Hương đã thay kiến trúc dữ liệu.

Chúng tôi lập withdrawal ledger.

Mỗi participant có một identity key riêng tách khỏi file audio.

Mỗi dataset manifest ghi danh sách lineage có thể truy ngược.

Mỗi transform tạo artifact phải kế thừa policy metadata.

Mỗi model card nội bộ ghi dataset versions đã dùng.

Mỗi experiment production-track phải đăng ký checkpoint lineage.

Không hoàn hảo.

Nhưng lần đầu hệ thống biết đường một giọng đã đi.

Dũng nói:

“Storage tăng.”

“Biết.”

“Pipeline chậm hơn.”

“Biết.”

“Engineer sẽ càu nhàu.”

“Cho họ càu.”

“Anh cũng engineer.”

“Tôi càu rồi.”

Chúng tôi còn đặt một policy khó chịu:

Nếu lineage không rõ, dataset không được dùng cho use case rủi ro cao mới.

Không mặc định “không biết nghĩa là được”.

Không biết nghĩa là phải dừng và xác minh.

Quy định đó làm ba dataset cũ bị loại khỏi synthetic speech.

Model mới tệ hơn prototype ban đầu trong vài tuần đầu.

Tôi nhìn loss curve mà đau lòng.

Nhưng ít nhất tôi biết mỗi file trong đó đi vào bằng một cánh cửa người góp giọng đã được nhìn thấy.

Rồi yêu cầu withdrawal thứ hai tới.

Một sinh viên từng thu giọng năm trước muốn rút hoàn toàn vì đổi ý.

Lần này chúng tôi xử nhanh hơn.

Raw file được đánh dấu xóa.

Derived features được tìm.

Dataset version tiếp theo loại participant.

Model production hiện tại không được hứa “đã xóa khỏi weights ngay”; thay vào đó request được gắn vào danh sách exclusion bắt buộc cho retraining release kế.

Chúng tôi đặt thời hạn rõ cho từng loại xử lý.

Không dùng câu “sớm nhất có thể”.

Tôi viết trong design principle:

Quyền rút lui không thật nếu hệ thống của mình không biết dữ liệu đã đi đâu.

Thu đọc, nói:

“Câu này nên in lên tường.”

“Không.”

“Sao?”

“Đưa vào test pipeline.”

Một câu trên tường không chặn được training job.

Một permission check có thể.

Ba tháng sau, synthetic model mới đạt lại chất lượng prototype.

Không ai tổ chức lễ.

Sales chỉ nhắn:

Cuối cùng.

Tôi hiểu.

Nhưng từ đó NovaMind có một khả năng trước đây không có:

Không chỉ ingest data nhanh.

Mà còn biết một người có thể bước ra bằng cửa nào.

Với tôi, đó là một feature của hệ thống không kém gì accuracy.

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...