OpenArchLabOpen Architecture — From Models to Systems

X · Measurement

Thiết kế phép đo để so giải pháp công bằng

Thiết kế bài đo hiệu năng có kiểm soát để đánh giá thông lượng và độ trễ đạt chuẩn (SLO) trên tải thực tế.

LESSON ID benchmark GROUP Kiến trúc Inference
Mục lục bài học

1Định nghĩa

Benchmark trong suy luận LLM là phép thử nghiệm đặt hệ thống dưới các mức tải được kiểm soát chặt chẽ để đo xem một cấu hình phần cứng và phần mềm phục vụ được bao nhiêu lưu lượng mà vẫn đảm bảo cam kết độ trễ (SLO — Service Level Objective, ví dụ p95 TTFT dưới 500 ms và TPOT dưới 30 ms).

Một bài benchmark chuẩn phải cố định rõ phiên bản mô hình, kiểu dữ liệu (quantization), phân phối độ dài prompt/output và nhịp gửi request, đồng thời chạy bước làm nóng (warmup) trước khi thu số liệu. Thay vì chỉ nhìn tổng số token sinh ra mỗi giây (throughput thô), kỹ sư dùng chỉ số goodput — số lượng request hoặc token hoàn tất mỗi giây mà thỏa mãn trọn vẹn ngưỡng độ trễ mục tiêu.

Ví dụ đời thường: Benchmark giống như buổi chạy thử tải của một cây cầu hoặc thử nghiệm xe ô tô trên đường đua tiêu chuẩn trước khi đưa vào khai thác. Bạn không chỉ đo xem chiếc xe chạy một mình lúc đường vắng đạt vận tốc tối đa bao nhiêu, mà phải đo xem khi chở đủ tải trên đường đông đúc, có bao nhiêu chuyến xe về đích đúng giờ cam kết (goodput).

2Luồng

Sơ đồ luồng (4 bước)
  1. Chốt workload và mục tiêu

    Định nghĩa cái gì được coi là đạt.

  2. Warmup rồi tạo tải

    Tách khởi động khỏi steady state.

  3. Thu distributions

    Đo queue, latency, token và lỗi.

  4. So cấu hình

    Giữ điều kiện tương đương và lặp đủ để thấy biến động.

Mã Mermaid
flowchart TD
  step1["Chốt workload và mục tiêu"]
  step2["Warmup rồi tạo tải"]
  step3["Thu distributions"]
  step4["So cấu hình"]
  step1 --> step2
  step2 --> step3
  step3 --> step4

3Giải pháp

Thử nhiều mức offered load thay vì một concurrency thuận lợi. Ghi input và output throughput riêng; lưu raw request timings cùng version/config.

Cách gửi chỉ tiếp tục sau request hoàn tất có thể tự giảm tải khi hệ thống chậm, che overload. Chọn load generator phù hợp câu hỏi muốn trả lời.

Để đọc TTFT, TPOT và throughput trên đồng hồ mô phỏng và so ba chính sách lập lịch cùng một trace, hãy chạy khối 12 (Benchmark & SLO methodology) trong Bài Lab tổng hợp.

4Profiling

  • Latency distribution

    Báo median, percentile 95 và lỗi; đếm request đạt cả mục tiêu token đầu lẫn tốc độ sinh.

  • Goodput và capacity curve

    Vẽ request gửi mỗi giây so với lượng hoàn tất đúng hạn, tìm vùng trước saturation.

Mẹo đo lường: ghim số liệu trên workload thật, ghi cả p50/p95/p99 thay vì chỉ trung bình, và luôn ghi lại điều kiện chạy (batch, cache, đồng thời, phần cứng) trước và sau khi tối ưu. Số đo thiếu điều kiện chạy thì không so sánh được.

5Ví dụ

So bật/tắt cache

Dùng cùng prompts, kiểm soát cache nóng/lạnh và báo hit rate để giải thích gain.

So hai accelerator

Giữ model và quality target; có thể tune mỗi hệ hợp lý nhưng phải báo toàn cấu hình và tổng chi phí.

6Thuật ngữ

Service Level Objective
Mục tiêu mức dịch vụ: ví dụ giới hạn thời gian token đầu và giữa các token.
Open-loop load
Gửi theo lịch arrival đã đặt, không chờ request trước xong mới gửi request mới.
Glossary (6)
Cache
Bộ nhớ giữ kết quả có thể dùng lại; trong attention thường giữ key/value vectors.
Runtime
Phần mềm quản lý việc thực thi, buffers và phụ thuộc giữa phép toán.
Latency
Thời gian chờ để nhận một kết quả hoặc một bước kết quả.
Throughput
Lượng công việc được xử lý trong một đơn vị thời gian.
Goodput
Lượng công việc hoàn tất mà đồng thời đáp ứng các mục tiêu đã chọn.
Warmup
Chạy chuẩn bị để hoàn tất khởi tạo, compilation/capture hoặc ổn định execution trước đo.

7Bài liên quan

8Nguồn