Chia nhóm. Băm user_id (không phải theo request) để một người luôn thấy cùng một phiên bản — nếu chia theo request, cùng một người nhận hai phong cách trả lời khác nhau trong một hội thoại và cả trải nghiệm lẫn số liệu đều nhiễu. Lưu nhóm được gán vào log của từng request.
Chỉ số phải xếp thành ba lớp, đây là phần ứng viên hay trả lời thiếu:
- Chỉ số quyết định (một cái duy nhất): thứ gắn với giá trị sản phẩm — tỷ lệ giải quyết được vấn đề mà không cần chuyển sang người thật, tỷ lệ chấp nhận gợi ý, tỷ lệ quay lại dùng tiếp.
- Chỉ số bảo vệ: độ trễ, chi phí token mỗi lượt, tỷ lệ lỗi, tỷ lệ sai định dạng. Thắng chỉ số chính mà tăng gấp đôi chi phí thì không phải là thắng.
- Chỉ số chẩn đoán: độ dài đầu ra, tần suất gọi tool — để giải thích vì sao có chênh lệch.
Thời lượng. Tính cỡ mẫu trước khi chạy dựa trên tỷ lệ nền và mức chênh lệch nhỏ nhất đáng quan tâm; chạy ít nhất trọn một tuần để phủ chu kỳ ngày trong tuần. Không nhìn số liệu rồi dừng ngay khi thấy đẹp — dừng sớm theo cảm tính là nguyên nhân phổ biến nhất của kết luận sai.
Trước khi ra người dùng thật: chạy eval offline trên bộ dữ liệu vàng để loại các phiên bản kém rõ ràng. A/B test trên người dùng đắt và chậm, chỉ dùng cho hai ứng viên đã ngang ngửa nhau ở đánh giá offline.
Lưu ý riêng của LLM: đầu ra không tất định nên phương sai cao hơn thử nghiệm UI thông thường; và phản hồi tiêu cực rất thưa, cần lưu lượng lớn hơn nhiều để đạt ý nghĩa thống kê.