Multilingual message content moderation at scale (part 1)

Bài tóm tắt Bumble 2021 3. Quy mô lớn Độ khó: Trung bình

Bumble · 2021 · 3. Quy mô lớn · Độ khó: Trung bình — bài gốc

Phần 1 của series hai phần (phần 2, 2022, chỉ phân tích không gian embedding của model nên wiki không ingest). Bài của đội Data Science; phần kiến trúc model chỉ tóm tắt ngắn.

Bối cảnh

  • Bumble Inc. (vận hành Badoo và Bumble) có mặt ở 150 nước, 50 ngôn ngữ. Cần một bộ phát hiện tin nhắn độc hại (Rude Message Detector trên Badoo) chạy được mọi ngôn ngữ mà không cần biết trước ngôn ngữ của tin nhắn, để các bước khác của pipeline kiểm duyệt (như nhận diện ngôn ngữ) không còn là điều kiện bắt buộc. Dự án kéo dài khoảng một năm.

Thay đổi chính

  • Model: fine-tune XLM-RoBERTa (foundation model đa ngôn ngữ, hơn 270 triệu tham số) thành bài phân loại đa nhãn 3 lớp (Sexual, Insults, Identity Hate). Dữ liệu hơn 3 triệu tin nhắn, hơn 15 ngôn ngữ, gán nhãn qua nhiều lượt kiểm chéo của người kiểm duyệt; độ đồng thuận giữa người được dùng làm mốc thực tế cho model.
  • Thêm ngôn ngữ dần: bắt đầu từ tiếng Anh và Bồ Đào Nha, thêm vùng mỗi tuần, theo dõi lại hiệu năng các ngôn ngữ cũ mỗi lần.
  • Cổng trước khi phát hành: mẫu traffic production chỉ dùng được để theo dõi tỉ lệ dự đoán dương tính, không dùng để đánh giá chất lượng vì tin độc hại quá hiếm. Đội dựng quy trình validation offline (trên TensorBoard) so model mới với các bản lịch sử và bản đang chạy, và sau vài lần "sai thật ở production" chốt một tập metric nhỏ gắn với KPI Integrity phải đạt trước khi bật xanh.
  • Hạ tầng phục vụ: dùng bộ service nội bộ sẵn có cho model TensorFlow. Vì inference engine nội bộ chỉ nhận graph TensorFlow, đội viết lại tokenizer SentencePiece thành một layer trong graph, tokenizer và model chạy cùng nhau. Engine chạy trên nhiều node GPU ở hai zone, dynamic batching đầu vào, tăng giảm node theo tải; "hàng chục nghìn tin nhắn mỗi giây" (2021).
  • Giám sát và rollback: mọi hệ ML có logging chung, phát hiện bất thường real-time, dashboard tập trung; từ những bản đầu đã có thể kiểm hiệu năng ở production và rollback phiên bản theo một tập metric.

Vì sao

  • Một model đa ngôn ngữ thay cho một model mỗi ngôn ngữ, và tái dùng hạ tầng serving có sẵn, rút ngắn khoảng cách từ thử nghiệm tới production (theo Bumble là điểm đau phổ biến của dự án ML).

Bài học cho SWE

  • Với nhãn hiếm, traffic thật không đủ để đo chất lượng; cổng phát hành phải là bộ đánh giá offline có tập metric cố định, còn production chỉ theo dõi tỉ lệ dương tính.
  • Đưa tiền xử lý (tokenizer) vào cùng artifact với model để serving không lệch với training.
  • Mở rộng phạm vi từng bước (từng ngôn ngữ) cho phép giao giá trị sớm và kiểm hồi quy trên phần đã có.

Liên quan