Vì sao "3 giây" của nhà cung cấp lại thành 8.7 giây của bạn: đo độ trễ thật của một API sinh video
Mọi trang giới thiệu model sinh video đều in một con số tốc độ, và gần như không trang nào nói rõ con số đó đo cái gì. Tôi đã mất một buổi chiều lên lịch sản xuất dựa trên "3 giây" rồi mới hiểu ra vấn đề. Bài này viết lại cách tôi đo lại từ đầu, lấy MiniMax H3 Max làm ví dụ vì nó là model tôi đang chạy nhiều nhất.
Hai đồng hồ hoàn toàn khác nhau
Khi nhà cung cấp nói "3 giây", thứ họ đo gần như luôn là inference timer: thời gian GPU thực sự chạy forward pass, tính từ lúc job được nhận cho tới lúc tensor cuối cùng ra lò. Nó là con số thật, và nó hữu ích, chỉ là nó không phải con số bạn cảm nhận.
Thứ bạn cảm nhận là wall clock từ lúc bấm nút đến lúc file phát được, và nó bao gồm:
| Giai đoạn | Có trong inference timer không? |
|---|---|
| Xác thực request, kiểm tra quota | Không |
| Xếp hàng chờ GPU rảnh | Không |
| Tiền xử lý prompt / ảnh đầu vào | Thường là không |
| Forward pass | Có |
| Mux audio vào video, encode MP4 | Thường là không |
| Upload lên CDN, ghi metadata | Không |
| Tải file về client | Không |
Hàng "xếp hàng chờ GPU" là hàng gây đau nhất, vì nó không cố định. Nó phụ thuộc giờ trong ngày, phụ thuộc việc có ai vừa đẩy một batch 200 job vào cùng endpoint hay không.
Cách đo cho ra số dùng được
Ba nguyên tắc, đều học được bằng cách làm sai trước:
1. Đo end-to-end, không đo từng chặng. Bắt đầu bấm giờ ngay trước khi gửi request, dừng khi file đã nằm trên đĩa và
ffprobe đọc được. Bất cứ thứ gì bạn loại khỏi phép đo cũng sẽ quay lại cắn bạn khi lên production.
2. Báo cáo phân vị, đừng báo cáo trung bình. Phân bố độ trễ của các API sinh video lệch phải rất mạnh: phần lớn job nhanh, một số ít job rơi vào lúc hàng đợi dài và chậm gấp ba. Trung bình cộng che mất đúng cái đuôi đó, mà cái đuôi mới là thứ làm hỏng lịch. Tối thiểu hãy in P50 và P95.
3. Trải mẫu qua nhiều ngày làm việc. Chạy 100 request liên tiếp lúc 3 giờ sáng cho ra một con số rất đẹp và vô dụng. Tôi trải mẫu qua nhiều khung giờ trong nhiều ngày, chấp nhận số xấu hơn để đổi lấy số dùng được.
import time, statistics
lat = []
for prompt in prompts:
t0 = time.perf_counter()
path = generate_and_download(prompt) # tra cứu trạng thái + tải file, tính hết vào đây
assert probe_playable(path) # chỉ dừng đồng hồ khi file thật sự phát được
lat.append(time.perf_counter() - t0)
lat.sort()
p50 = statistics.median(lat)
p95 = lat[int(len(lat) * 0.95) - 1]
print(f"n={len(lat)} p50={p50:.1f}s p95={p95:.1f}s")
Con số thu được
Với clip 5 giây ở 768P, trên 412 lần chạy trải qua nhiều ngày làm việc:
| Chỉ số | Giá trị |
|---|---|
| P50 | 8.7 giây |
| P95 | 20.9 giây |
| P50 cho clip 15 giây | 22.6 giây |
So với "3 giây" được công bố, P50 gấp gần ba lần. Không ai nói dối cả — hai bên chỉ đang đo hai thứ khác nhau. Điều đáng nói là 8.7 giây vẫn là rất nhanh. Với một renderer hai phút, bạn thử được bốn lần trong một buổi chiều. Với 8.7 giây, bạn thử được vài chục lần. Đó là khác biệt về cách làm việc, không chỉ về con số.
Một chi tiết riêng của model này
MiniMax H3 Max sinh thoại, hiệu ứng và nhạc nền trong cùng một lượt với hình, ở 32 kHz stereo. Nghĩa là con số 8.7 giây đã bao gồm cả phần âm thanh — không có bước TTS riêng, không có bước ghép tiếng. Nếu bạn đang so sánh với một pipeline hình-rồi-tiếng, hãy nhớ cộng thêm thời gian của chặng thứ hai bên kia.
Vài giới hạn nên biết trước khi lên kế hoạch, vì rất nhiều trang giới thiệu chép sai: độ dài 5 đến 15 giây, số nguyên (4 giây bị từ chối ở tầng trên), độ phân giải 480P hoặc 768P, không có 2K, 1080p hay 4K, ảnh đầu vào nhận frame đầu và frame cuối chứ không nhận frame giữa. Muốn 2K thì phải đổi sang model gốc MiniMax H3.
Chi phí đi kèm với tốc độ
Ở mức 768P, giá công bố trên fal chia làm ba bậc: Turbo $0.04/giây, H3 bản gốc $0.06/giây, H3 Max $0.08/giây. Cái tên gây hiểu nhầm: bản "Max" đắt nhất mà độ phân giải trần lại thấp nhất. Chiến lược hợp lý là nháp ở Turbo và 480P, chỉ đẩy lên bản đắt ở lần cuối.
Nếu bạn muốn thử mà không dựng pipeline
Tôi đo bằng script riêng, nhưng nếu chỉ muốn xem model làm được gì thì không cần API key hay GPU. MiniMax H3 Max AI Video Generator chạy thẳng trong trình duyệt, cả ba engine dùng chung một số dư credit, và một clip đầu tiên là miễn phí, không cần tài khoản, không cần thẻ.
Nếu bạn quan tâm phần số liệu hơn: bảng giá có in luôn cách tính — 1 credit = $0.002 giá niêm yết của engine trên fal, phép suy ra được in ra để tự kiểm tra, và request lỗi thì không bị trừ credit ở bất kỳ gói nào.
Số liệu kiểm tra ngày 05/09/2026. minimaxh3max.video là giao diện bên thứ ba độc lập, không liên kết với MiniMax hay fal.
All rights reserved