9 điểm bởi xguru 2024-12-02 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Canva đã đạt 200 triệu MAU, sở hữu hơn 30 tỷ thiết kế và tạo ra khoảng 300 thiết kế mới mỗi giây
    • Việc người dùng tìm kiếm thiết kế và tìm lại các tệp được chia sẻ ngày càng trở thành một vấn đề quan trọng
  • Trong tìm kiếm công khai (web/tìm kiếm sản phẩm), người ta xây dựng bộ dữ liệu dựa trên truy vấn của người dùng và một tập mục tìm kiếm cố định
    • Các chuyên gia đánh giá sẽ gán nhãn bằng cách chấm mức độ liên quan giữa từng truy vấn và từng mục
    • Hiệu năng của công cụ tìm kiếm được đánh giá thông qua các chỉ số Recall và Precision
  • Trong tìm kiếm cá nhân, để bảo vệ quyền riêng tư, không thể xem các thiết kế cá nhân và cũng không thể dùng dữ liệu người dùng làm bộ dữ liệu đánh giá
    • Giải pháp là dùng AI tạo sinh (GPT-4o, v.v.) để tạo ra nội dung và truy vấn vừa thực tế vừa hoàn toàn tổng hợp
    • Cách này cho phép đánh giá các cải tiến trong pipeline tìm kiếm mà hoàn toàn không xâm phạm quyền riêng tư

Trạng thái trước đây: phương pháp kiểm thử còn hạn chế

  • Quy trình kiểm thử trước đây
    • Kỹ sư sử dụng cách kiểm thử offline với phạm vi hạn chế
    • Chạy các truy vấn có vấn đề đã biết trong tài khoản Canva để so sánh hiệu năng trước và sau khi thay đổi mã
      • Ví dụ: trong quá trình cải thiện sửa lỗi chính tả, họ thử truy vấn sai như "desgin"
        • Trước thay đổi: không có kết quả
        • Sau thay đổi: trả về tài liệu liên quan đến "design"
    • Các thay đổi vượt qua kiểm thử offline sẽ được đưa sang giai đoạn kiểm thử online
      • Thực hiện A/B test bằng framework thử nghiệm của Canva
      • So sánh tỷ lệ thành công của tìm kiếm giữa nhóm người dùng áp dụng thay đổi và nhóm dùng tìm kiếm tiêu chuẩn
  • Hạn chế
    • Kiểm thử offline thiếu tính hợp lệ về mặt thống kê
      • Một số lượng truy vấn hạn chế khó có thể đại diện cho nhiều hành vi tìm kiếm khác nhau
    • Tác động tiêu cực tiềm ẩn tới người dùng
      • Suy giảm hiệu năng không bị phát hiện ở kiểm thử offline có thể bị lộ ra trong thí nghiệm online
    • Thí nghiệm online tốn thời gian
      • Để đạt ý nghĩa thống kê, thường cần ít nhất vài ngày đến vài tuần
      • Điều này giới hạn số lượng thí nghiệm có thể chạy song song và tốc độ thử nghiệm ý tưởng

Trạng thái lý tưởng: xây dựng bộ dữ liệu và pipeline đánh giá mới

  • Mục tiêu: cần có bộ dữ liệu tùy biến và pipeline đánh giá để kỹ sư có thể đánh giá thay đổi một cách khách quan trước khi chuyển sang kiểm thử online
  • Các yêu cầu chính:
    • Khả năng tái lập: luôn cho ra cùng một kết quả bất cứ khi nào chạy lại
    • Lặp nhanh: kỹ sư có thể kiểm thử kết quả ngay sau khi sửa mã, không cần chờ triển khai lên production mới đánh giá được
    • Tương tự môi trường production: cung cấp kết quả khớp với hành vi thực tế của production
    • Làm việc không chặn nhau: các thành viên trong nhóm có thể tự do thử nghiệm thay đổi mã mà không làm ảnh hưởng lẫn nhau

Tạo bộ dữ liệu thực tế: tận dụng AI tạo sinh

  • Bộ dữ liệu đánh giá tuân thủ quyền riêng tư
    • Dùng GPT-4o để tạo dữ liệu tổng hợp có thể thay thế dữ liệu người dùng thực tế
    • Không sao chép thiết kế của người dùng mà chỉ phản ánh các phân bố thống kê như độ dài văn bản để tạo dữ liệu thực tế
  • Tạo test case để đánh giá Recall
    • Dựa trên chủ đề và loại thiết kế (tài liệu, bản trình bày, v.v.), dùng GPT-4o để tạo truy vấn và nội dung tương ứng
    • Điều chỉnh độ khó của truy vấn:
      • Chèn lỗi chính tả
      • Thay thế bằng từ đồng nghĩa
      • Diễn đạt lại truy vấn
  • Tạo test case để đánh giá Precision
    • Tạo bộ dữ liệu bao gồm cả thiết kế liên quan và không liên quan
    • Cách tạo thiết kế không liên quan:
      • Chỉ chứa một phần từ khóa
      • Chỉnh sửa thành dạng template hoặc bản nháp
      • Gán thành thiết kế cũ

Những vấn đề phát sinh khi dùng AI tạo sinh

  • Ưu điểm và giới hạn của LLM
    • Ưu điểm: có thể tạo ra lượng lớn dữ liệu văn bản một cách hiệu quả
      • Bộ dữ liệu đánh giá tĩnh sau khi tạo có thể được tái sử dụng nhiều lần và nhanh chóng cung cấp kết quả đánh giá nhất quán, có tính quyết định
    • Loại bỏ hạn chế: sau khi bộ dữ liệu được tạo xong, có thể loại trừ các vấn đề về độ trễ (latency) và tính ngẫu nhiên (randomness) của LLM
  • Vấn đề
    • Từ chối tạo tiêu đề dài
      • Dù được yêu cầu tạo tiêu đề dài 12-15 từ, mô hình vẫn trả về tiêu đề ngắn hơn
        • Ví dụ:
          • "Exploring the Latest Advancements in Screen Technology and Applications" (9 từ)
          • "Best Practices for Teachers: Presentation Tips for Meet the Teacher" (10 từ)
      • Điều này có thể phản ánh thực tế rằng tài liệu ngoài đời hiếm khi có tiêu đề dài
      • Kết quả là nhóm đã phải xem xét lại tiêu chí về độ dài tiêu đề
    • Lỗi lặp lại và hallucination
      • Khi yêu cầu tạo nhiều lỗi chính tả khác nhau của một từ, mô hình trả về kết quả trùng lặp hoặc thiếu thực tế
        • Ví dụ: khi yêu cầu tạo các cách viết sai khác nhau của "Calendar", mô hình sinh ra kết quả lặp lại
    • Vấn đề tạo tiêu đề không liên quan
      • Khi tạo tiêu đề thiết kế không liên quan (nonrelevant), có những trường hợp mô hình không làm đúng hướng dẫn
      • Một số tiêu đề trả về không chứa từ khóa được chỉ định hoặc trả về nội dung không chính xác như chỉ đơn giản chứa "title string"

Chạy đánh giá: kiểm thử và phân tích trong môi trường local

  • Sử dụng bộ dữ liệu đánh giá
    • Áp dụng bộ dữ liệu tổng hợp đã tạo vào pipeline tìm kiếm để tính ra các chỉ số đánh giá
    • Sau khi thử nhiều cách chạy, nhóm đã chọn cách chạy local bằng Testcontainers
  • Pipeline local dựa trên Testcontainers
    • Tận dụng hỗ trợ Testcontainer sẵn có
      • Hỗ trợ Testcontainer đã được triển khai sẵn trong kiến trúc RPC hướng dịch vụ của Canva
      • Kết hợp các thành phần bên ngoài như Elasticsearch với các Testcontainer nội bộ để xây dựng pipeline
    • Tái hiện đầy đủ cấu hình production
      • Chạy pipeline tìm kiếm và các mô hình ML hỗ trợ trên local để tạo môi trường giống hệt production
      • Kỹ sư có thể thử nghiệm nhiều biến thể mô hình khác nhau
  • Quy trình xử lý test case
    1. Tạo trạng thái (state) cần thiết cho từng test case
    • Thay vì tạo thiết kế Canva, chỉ trích xuất và chèn dữ liệu cần thiết cho chỉ mục tìm kiếm
    1. Chạy pipeline tìm kiếm local
    • Chạy bộ dữ liệu cùng truy vấn kiểm thử để tạo kết quả tìm kiếm
    1. Chuyển kết quả tới mô-đun đánh giá
    • Tính các chỉ số Recall và Precision
  • Sơ đồ luồng dữ liệu
    • Cung cấp sơ đồ trực quan hóa toàn bộ luồng dữ liệu được xử lý qua công cụ đánh giá

Trực quan hóa kết quả

  • Phát triển công cụ trực quan hóa
    • Dùng công cụ tùy biến dựa trên Streamlit để trực quan hóa và so sánh kết quả đánh giá một cách hiệu quả
    • Kỹ sư có thể so sánh các chỉ số Recall và Precision giữa nhiều cấu hình chỉ trong một màn hình
  • Các tính năng chính
    1. So sánh theo cấu hình
      • Tổng hợp kết quả để so sánh hiệu năng của các thiết lập khác nhau theo dạng song song
    2. Phân tách hiệu năng theo loại truy vấn và độ khó
      • Có thể phân tích riêng hiệu năng theo từng loại truy vấn hoặc mức độ khó cụ thể
    3. Debug truy vấn riêng lẻ
      • Kiểm tra đầu ra của từng truy vấn để debug chính xác các trường hợp sử dụng cụ thể
  • Hỗ trợ ra quyết định nhanh
    • Khi đánh giá hoàn tất, công cụ có thể chạy ngay lập tức, giúp kỹ sư ra quyết định nhanh dựa trên kết quả hiệu năng
    • Kỹ sư có thể lặp lại thử nghiệm và cải thiện một cách độc lập mà không phụ thuộc vào công việc của thành viên khác trong nhóm

Tác động và kế hoạch tiếp theo

  • Đã tiến gần trạng thái lý tưởng đến đâu?
    • Bộ dữ liệu và công cụ đánh giá cung cấp khả năng tái lập hoàn toàn, tạo kết quả chỉ trong vài phút
    • Kỹ sư có thể đánh giá kết quả khớp với hành vi của production một cách độc lập và khách quan ngay trên local
    • Quyền riêng tư được bảo đảm hoàn toàn mà không cần xem bất kỳ thiết kế hay truy vấn nào của khách hàng
  • Tóm tắt thành quả
    1. Lặp nhanh
    • Xử lý hơn 1000 test case trong vòng chưa đến 10 phút
    • Trong khoảng thời gian 2-3 ngày cần cho một thí nghiệm online, có thể thực hiện hơn 300 lần đánh giá offline
    1. Tương quan giữa kết quả offline và online
    • Kết quả đánh giá offline được thiết kế để loại bỏ các ý tưởng không phù hợp và chỉ đưa các thay đổi có khả năng thành công cao sang thí nghiệm online
    • Nhóm đã thực hiện nhiều thí nghiệm để xác nhận sự đồng bộ giữa kết quả offline và online trong quá trình phát triển
    • Xác nhận được sự nhất quán mạnh mẽ cho cả các thay đổi tích cực lẫn tiêu cực về hiệu năng
    1. Khả năng debug local
    • Hỗ trợ debug để quan sát luồng đi của test case qua từng thành phần của pipeline tìm kiếm
    • Hiệu quả hơn rất nhiều so với cách debug trước đây vốn phụ thuộc vào log production
  • Kế hoạch tiếp theo
    • Mở rộng bộ dữ liệu
      • Bổ sung các tính năng thực tế hơn như đồ thị cộng tác
    • Cải thiện công cụ
      • Tăng cường tooling để kỹ sư có thể tự tạo dữ liệu tổng hợp tùy theo nhu cầu
    • Tối đa hóa việc tận dụng AI tạo sinh
      • Tiếp tục hướng tới mục tiêu phát triển công cụ tìm kiếm của Canva thành trải nghiệm tốt nhất cho cộng đồng bằng cách khai thác các khả năng mà dữ liệu tổng hợp mang lại

Chưa có bình luận nào.

Chưa có bình luận nào.