Build AI · Khung thực hành
App AI chậm: trace end-to-end trước khi đổi model
Phân rã request thành network, queue, first token, generation, tool và retry để tránh kết luận “model chậm”.
Trước khi bắt đầu
Đọc để ra quyết định, không chỉ để lướt qua thông tin.
Bài này dành cho AI engineer, platform engineer và product owner.. Mục tiêu là giúp bạn Giúp team tìm đoạn thời gian thực sự làm người dùng chờ và chọn phép thử nhỏ nhất..
01 / SYMPTOM
Đặt mốc thời gian người dùng thực sự nhìn thấy
“Chậm” có thể là click-to-first-feedback, first token, completion, tool-return hoặc retry. Chọn user-visible target và phân loại request shape trước khi nhìn một average.
Điểm cần chốt
Ghi percentile, không chỉ mean.Cách áp dụng
- Tách streaming và non-streaming.
- Ghi workload/concurrency và region khi hợp lý.
Sơ đồ bước 01: Đặt mốc thời gian người dùng thực sự nhìn thấy
02 / TRACE
Phân rã request thành đoạn đo được
Trace tối thiểu gồm client/network, queue, provider request, time-to-first-token, generation, tool execution, retry và render. Thiếu đoạn nào thì kết luận chỉ là giả thuyết.
Điểm cần chốt
Dùng correlation ID xuyên các service.Cách áp dụng
- Không log prompt/secret không được phép.
- Đồng bộ clock hoặc ghi rõ nguồn timestamp.
Sơ đồ bước 02: Phân rã request thành đoạn đo được
03 / FIRST TEST
Chọn một bottleneck giả thuyết
Ví dụ: tool execution chiếm phần lớn p95 ở workflow có tool. Giữ model/workload ổn định, thay một biến và so baseline. Không đổi model chỉ vì frontend đang chờ retry.
Điểm cần chốt
Đo error/retry cùng latency.Cách áp dụng
- Kiểm cache/queue side effect.
- Ghi cost và quality impact nếu tối ưu thay đổi behavior.
Sơ đồ bước 03: Chọn một bottleneck giả thuyết
04 / DECISION
Đặt performance budget theo hành trình
Budget nên nói rõ stage nào được phép bao lâu và fallback khi vượt ngưỡng. Quyết định rollout dựa trên trace sau thay đổi, không phải benchmark vendor đơn lẻ.
Điểm cần chốt
Có alert cho regression.Cách áp dụng
- Giữ sample request đại diện.
- Review target khi product interaction đổi.
Sơ đồ bước 04: Đặt performance budget theo hành trình
Giới hạn của hướng dẫn này
Điều trang này không khẳng định.
Không có số latency hay SLA được hứa trong trang này. Mọi threshold phải dựa trên hành trình, workload và rủi ro của hệ bạn.
Nguồn để đối chiếu
Đọc nguồn. Giữ đúng phạm vi.
- OpenTelemetry — Trace semantic conventions ↗
Nguồn kỹ thuật về span/trace giữa các operation. Threshold latency phải được đo trên hành trình và workload cụ thể.