Blog
Benchmark trong AI là gì: một con số thiếu quần thể và thiếu phân vị thì không đọc được
Benchmark trong AI là phép đo cần quần thể, phân vị và số mẫu. Dải p50 rộng 3,28 lần, dải p95 rộng 4,60 lần, dải p99 rộng 4,09 lần trên cùng sáu model.
Benchmark trong AI là một phép đo có ba phần bắt buộc: quần thể được đo, phân vị được trích, và số mẫu đứng sau phân vị đó. Thiếu một trong ba, con số vẫn đọc được nhưng không so sánh được với bất kỳ con số nào khác, kể cả con số nằm ngay bên cạnh nó.
latency_ms là gì và tokensPerSecond được tính thế nào
latency_ms là thời gian hoàn tất toàn bộ yêu cầu, tính bằng mili giây, từ lúc gateway nhận request đến lúc token cuối cùng về. Nó không phải mốc byte đầu tiên: bộ dữ liệu có trường first_byte_ms nhưng trường đó trống trong 100% số hàng, nên trong tập này không tồn tại mốc byte đầu tiên nào để trích.
Vì vậy mọi con số độ trễ bạn đọc ở đây là toàn bộ thời gian bạn chờ. Với một tác vụ trả lời ngắn, hai cách đo gần như trùng nhau; với một tác vụ sinh hai nghìn token, chênh lệch giữa chúng có thể chiếm phần lớn thời gian chờ.
tokensPerSecond được tính bằng output_tokens chia cho latency_ms chia 1.000, tức output_tokens / (latency_ms / 1.000). Đây là thông lượng trung bình của cả lượt, không phải thông lượng tức thời tại một thời điểm bất kỳ, nên nó thấp hơn cảm giác "chữ chạy nhanh" mà bạn thấy trên màn hình. Vì mẫu số đã là thời gian hoàn tất, nhân ngược thông lượng với số token trung vị sẽ không ra p50: thông lượng là trung bình trên cả cửa sổ, còn p50 là trung vị của từng yêu cầu.
Thiếu phân vị thì một con số p50 không đọc được
Trên cùng sáu model đã đo, dải p50 chạy từ 7.998 ms đến 26.226 ms, tức 26.226 ÷ 7.998 = 3,28 lần. Dải p95 của đúng sáu model đó trải từ 27.344 ms đến 125.749 ms, tức 125.749 ÷ 27.344 = 4,60 lần. Dải p99 trải từ 59.922 ms đến 244.824 ms, tức 244.824 ÷ 59.922 = 4,09 lần.
| Phân vị | Đầu dải | Cuối dải | Độ rộng |
|---|---|---|---|
| p50 | 7.998 ms | 26.226 ms | 3,28 lần |
| p95 | 27.344 ms | 125.749 ms | 4,60 lần |
| p99 | 59.922 ms | 244.824 ms | 4,09 lần |
Ba dòng đó cùng quần thể, cùng cửa sổ, cùng định nghĩa độ trễ; chúng chỉ khác chỗ cắt. Trích dòng p50 thì khoảng cách giữa model nhanh nhất và chậm nhất là 3,28 lần, trích dòng p95 thì thành 4,60 lần, trích dòng p99 thì thành 4,09 lần. Câu "model nào nhanh hơn" vì thế đổi đáp án theo dòng bạn chọn, dù không model nào thay đổi.
Quần thể 6 model và quần thể 46 model là hai câu chuyện khác nhau
Một câu benchmark chỉ có nghĩa khi bạn biết nó đo trên bao nhiêu model. Danh mục Wisa có 46 model; bảng phân vị phủ 6 model. Đọc 6 dòng rồi nói "mọi model AI đều mất chừng ấy thời gian" là mở rộng một phép đo của một nhóm nhỏ ra toàn bộ danh mục, và không có dữ liệu nào chống lưng cho phép mở rộng đó.
Con số 6 không phải một lựa chọn biên tập. Nó là kết quả của một ngưỡng: chỉ hàng nào có ít nhất 20 mẫu trong cửa sổ 7 ngày mới được vào bảng. Bốn mươi model còn lại không có phân vị nào để trích, nên cũng không có gì để so.
Vì sao phải nêu số mẫu cạnh mỗi phân vị?
Số mẫu của sáu hàng lần lượt là 6.051, 4.660, 271, 214, 213 và 48. Chênh lệch giữa hàng dày nhất và hàng mỏng nhất là 6.051 ÷ 48 = 126,06 lần. Một phân vị ở hàng 48 mẫu và một phân vị ở hàng 6.051 mẫu không cùng độ tin cậy, dù chúng được in cùng cỡ chữ trong cùng một bảng.
Cụ thể hơn, p95 của hàng 48 mẫu được nội suy từ khoảng ba quan sát ở vùng đuôi, nên thêm vài lượt chậm là con số đó nhảy. Ở hàng 6.051 mẫu, p95 dựa trên khoảng ba trăm quan sát, nên một lượt bất thường gần như không dịch được nó.
Đó là lý do cột n phải đứng cạnh cột phân vị chứ không nằm trong phụ lục: thiếu n, bạn không biết dòng nào đáng tin hơn dòng nào.
Ba câu hỏi cần đặt trước khi tin một bảng benchmark
Câu thứ nhất: quần thể là bao nhiêu model, và model bạn quan tâm có nằm trong đó không. Câu thứ hai: phân vị nào được trích, và công việc của bạn chạm phân vị đó hay chỉ chạm phần thân. Câu thứ ba: số mẫu của đúng dòng bạn đang đọc là bao nhiêu.
Nếu cả ba câu đều có đáp án rõ, con số đó dùng được để ra quyết định. Thiếu câu thứ nhất thì bạn suy rộng quá quần thể đo. Thiếu câu thứ hai thì bạn so một lượt điển hình với một lượt xấu nhất của model khác. Thiếu câu thứ ba thì bạn đặt cùng trọng số cho một hàng 48 mẫu và một hàng 6.051 mẫu.
Số liệu đo tại gateway của Wisa phủ 6 model trong cửa sổ 7 ngày kết thúc 27/10/2026, với ngưỡng tối thiểu 20 mẫu mỗi hàng. Đó là giới hạn của bài này: mọi điều ở trên nói về cách đọc một bảng phân vị, không nói model nào phù hợp với việc của bạn. Muốn ghép phân vị với chất lượng câu trả lời, bạn cần thêm một bộ đề của riêng mình; bài benchmark model AI đi vào phần số mẫu, còn bài benchmark model AI 2026 đi vào độ rộng của từng dải. Khái niệm nền nằm ở inference là gì, danh sách bài cùng nhóm ở chuyên mục chọn và so sánh model, và bài AI model benchmarks định nghĩa ba nghĩa khác nhau của chữ benchmark.
Câu hỏi thường gặp
Benchmark trong AI là gì?
Là một phép đo có ba phần bắt buộc: quần thể được đo, phân vị được trích và số mẫu đứng sau phân vị đó. Một con số thiếu cả ba phần thì không kiểm chứng được và cũng không so sánh được với con số khác.
Vì sao cùng sáu model mà câu model nào nhanh hơn lại đổi đáp án?
Vì ba phân vị cho ba độ rộng khác nhau trên cùng quần thể: dải p50 rộng 3,28 lần, dải p95 rộng 4,60 lần, dải p99 rộng 4,09 lần. Câu trả lời đổi theo dòng bạn trích, dù không model nào thay đổi.
Số mẫu tối thiểu để đọc một phân vị là bao nhiêu?
Trong bộ dữ liệu này là 20 mẫu mỗi hàng trong cửa sổ 7 ngày. Ngưỡng đó chỉ đủ để một hàng được xuất hiện, không đủ để p99 ổn định, nên hàng 48 mẫu vẫn phải đọc kèm cảnh báo.
first_byte_ms trống nghĩa là gì?
Nghĩa là bộ dữ liệu không có mốc byte đầu tiên nào: trường đó trống trong 100% số hàng. Vì vậy mọi con số độ trễ ở đây là thời gian hoàn tất toàn bộ yêu cầu, không phải thời gian đến chữ đầu tiên.
Đơn vị của latency_ms là gì?
Là mili giây. Mọi phân vị trong bài đều ghi bằng ms, và không phân vị nào được đổi sang giây, vì đổi đơn vị sẽ làm sai lệch phép so sánh giữa các dòng.