Bỏ qua tới nội dung chính
Quay lại tin tức

Mô hình thử nghiệm A/B trong sản xuất

Together AI Blog· 17/8/2026models

Giao thông trong bóng tối chứng tỏ ứng viên hoạt động tốt. Nó không thể cho bạn biết liệu người dùng có thích nó hơn hay không. Chạy phần tách ở điểm cuối thay vì trong mã ứng dụng của bạn.

Tóm tắt Thử nghiệm A/B cho phép bạn chia lưu lượng truy cập trực tiếp của điểm cuối thành các nhóm cố định của một điều khiển và tối đa 20 biến thể, mỗi biến thể có tỷ lệ phân chia lưu lượng truy cập. Điều này cho phép bạn đo lường hiệu quả hoạt động của mô hình ứng viên với người dùng thực ở mức độ hiển thị mà bạn chọn. Việc tăng cường một biến thể cũng có thể được thực hiện bằng một lệnh gọi, trong đó bạn có thể quảng cáo biến thể chiến thắng bằng cách triển khai màu xanh lam-xanh lục. Việc xóa thử nghiệm sẽ trả lại 100% lưu lượng truy cập cho điều khiển mà không cần thực hiện bất kỳ thay đổi logic định tuyến hoặc phía máy khách nào để giải phóng sau đó. Dưới đây, chúng tôi sẽ chạy thử nghiệm trên điểm cuối trực tiếp nơi chúng tôi tạo ở mức 95%/5%, tăng dần lên 80%/20% và 50%/50%, sau đó xóa và kiểm tra tỷ lệ lưu lượng truy cập được quan sát ở mọi giai đoạn. Triển khai thử nghiệm A/B cho LLM trong sản xuất Sớm hay muộn mọi nhóm đều muốn trả lời cùng một câu hỏi: liệu mô hình mới có thực sự tốt hơn cho người dùng của chúng tôi so với mô hình hiện tại không? Không tốt hơn về điểm chuẩn nhưng tốt hơn về tỷ lệ giữ chân, tỷ lệ đồng ý, hoàn thành nhiệm vụ, bất kể sản phẩm của bạn thực sự đo lường được gì. Giao thông trong bóng tối không thể trả lời câu hỏi đó. Shadowing cho bạn biết ứng viên hoạt động ổn định về độ trễ, lỗi, thông lượng, nhưng các phản hồi của nó sẽ bị loại bỏ; không có người dùng nào từng hành động trên chúng. Các câu hỏi chất lượng cần được tiếp xúc thực sự với người dùng cuối trong đó một phần người dùng của bạn nhận được mô hình B và bạn so sánh những gì xảy ra. Thông thường, các nhóm tự xây dựng phần này trong lớp ứng dụng bằng cách sử dụng một số kết hợp sau: Cờ tính năng hoặc hash-mod-100 trên ID người dùng trong mã máy khách. Hai điểm cuối (hoặc hai chuỗi mô hình được mã hóa cứng) mà máy khách chuyển đổi giữa. Một bảng tính ở đâu đó giải thích ý nghĩa của nhóm A và B. Nó hoạt động, nhưng nó làm vướng víu thử nghiệm của bạn với cơ sở hạ tầng theo những cách gây tổn hại sau này: logic định tuyến đi kèm với ứng dụng của bạn, sự phân chia nhóm có thể trôi đi khi các quyết định được lưu vào bộ nhớ đệm của khách hàng và thậm chí sau khi thử nghiệm "kết thúc" thì mã phân nhánh vẫn tồn tại rất lâu sau đó vì không ai chắc chắn rằng việc xóa nó là an toàn. Nền tảng Together AI cho phép bạn chạy logic thử nghiệm A/B ở cấp điểm cuối. Nó hoạt động như thế nào Thử nghiệm A/B gắn vào điểm cuối và khai báo các thành viên có chính xác một tùy chọn kiểm soát và một hoặc nhiều biến thể, mỗi biến thể trỏ đến một hoạt động triển khai, mỗi biến thể có cài đặt phần trăm, tổng phải bằng 100, kiểm soát việc định tuyến lưu lượng truy cập. Cách thức hoạt động của bộ định tuyến điểm cuối là bất cứ khi nào lưu lượng truy cập cơ sở gửi yêu cầu đến điều khiển, thử nghiệm sẽ lấy mẫu lại giữa các nhánh và phân phối lại sao cho 95% vẫn nằm trong điều khiển, 5% sẽ chuyển sang biến thể. Nói chính xác hơn về cơ chế: thử nghiệm chia nhỏ phần chia lưu lượng truy cập cơ sở của nhóm kiểm soát. Định tuyến trước tiên giải quyết yêu cầu thông qua việc phân chia trọng lượng; khi người chiến thắng là người kiểm soát thử nghiệm A/B, yêu cầu sẽ được lấy mẫu lại giữa các nhóm của thử nghiệm theo phần trăm của chúng. Với quyền kiểm soát là điểm đầu vào duy nhất trong phần trăm thành viên được chia, do đó có tỷ lệ chia sẻ lưu lượng truy cập tuyệt đối. Cũng cần lưu ý rằng điều khiển có trọng số phân chia bằng 0 sẽ không chia nhỏ được thử nghiệm và kết quả là toàn bộ thử nghiệm không nhận được lưu lượng truy cập. Việc triển khai biến thể quan trọng không được nằm trong sự phân chia lưu lượng truy cập của điểm cuối, nền tảng yêu cầu các biến thể có trọng số bằng 0; chỉ có người kiểm soát sống trong phần chia căn cứ. Thử nghiệm sẽ sở hữu toàn bộ lưu lượng truy cập được định tuyến đến biến thể; tỷ lệ phần trăm của nó là chia sẻ lưu lượng truy cập của nó. Nếu một biến thể cũng có thể thu hút lưu lượng truy cập theo trọng số dung lượng từ phần tách thì phép đo của bạn sẽ sai một cách âm thầm. Một cách để nghĩ về vấn đề này là bạn nên thiết lập biến thể giống như triển khai bóng: đã tạo, SẴN SÀNG, trọng số bằng 0 và sau đó để cài đặt phần trăm thử nghiệm định tuyến đến biến thể đó. Một điểm quan trọng khác ở đây là phần trăm A/B là tỷ lệ chia sẻ lưu lượng truy cập cố định thực sự có tổng bằng 100% và không phụ thuộc vào số lượng bản sao. Chúng tôi đã cố tình làm điều này khác với trọng số phân chia lưu lượng truy cập (là dung lượng cho mỗi bản sao sẵn sàng và dung lượng theo dõi). Thí nghiệm là một dụng cụ đo lường; bạn muốn mức phân chia không đổi trong khi đo và không bị trôi khi tự động chia tỷ lệ. Tạo thử nghiệm 95/5: điểm cuối tg beta ab my-org/candidate-model --control $control_DEPLOYMENT --percent 5 Khách hàng của bạn sẽ không nhận thấy thử nghiệm này vì nhìn bề ngoài, tên điểm cuối, API và khóa vẫn tồn tại. Ở phần phụ trợ, 5% yêu cầu hiện sẽ được ứng viên biến thể trả lời. Dưới mui xe: tăng tốc, đo lường, kết thúc Ramping đang gửi lại nhóm thành viên Không có API "đoạn đường nối" riêng biệt, một bản cập nhật sẽ thay thế danh sách thành viên đầy đủ, giúp mô hình tinh thần trở nên đơn giản (thử nghiệm luôn chính xác như những gì các thành viên nói) và làm cho mỗi đoạn đường nối trở thành một thay đổi rõ ràng có thể xem xét được: # Tuần 2: ứng viên có vẻ ổn ở mức 5% —> lên 20% client.beta.endpoints.ab_experiments.update( id=thử nghiệm_id, điểm cuối_id=điểm cuối_id, update_mask="thành viên", etag=experiment.etag, # đoạn đường nối đồng thời của đồng đội bị từ chối, không bị ghi đè thành viên=[ {"deployment_id": control_dep, "percent": 80, "role": "AB_EXPERIMENT_MEMBER_ROLE_Control"}, {"deployment_id":variant_dep, "percent": 20, "role": "AB_EXPERIMENT_MEMBER_ROLE_VARIANT"}, ], ) Các bản cập nhật được bảo vệ bởi etag vì nếu một đồng đội thực hiện thử nghiệm trong khi bạn đang soạn bản cập nhật, bản cập nhật của bạn sẽ bị từ chối thay vì âm thầm ghi đè lên bản cập nhật của họ. Với thiết kế API này, bạn vẫn cần đưa ra lựa chọn hiển thị chung về lượng lưu lượng truy cập cần định tuyến đến nhóm B: Tách Tốc độ tín hiệu Rủi ro Sử dụng khi 95/5 Chậm (cần âm lượng/thời gian) Tối thiểu Mẫu mới, lần đầu tiếp xúc thực tế 80/20 Trung bình Chứa Ứng viên sống sót 5%; bạn muốn một kết quả quan trọng hơn 50/50 Nhanh nhất Một nửa số người dùng của bạn Xác nhận giai đoạn cuối giữa hai lựa chọn đã biết Với tối đa 20 thành viên biến thể, bạn cũng có thể chạy thử nghiệm nhiều chiều, chẳng hạn như giả sử bạn muốn thử điểm cuối có độ chính xác hoàn toàn cùng với ba biến thể lượng tử hóa khác (V1, V2, V3). Điều này sẽ hoạt động như mong đợi miễn là tổng phần trăm vẫn bằng 100% và có

Nguồn tin: Together AI Blog. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.