Đo Prompt Cache: cùng lượng gọi, hóa đơn giảm 62%
Chúng tôi đo tỷ lệ trúng cache và tác động chi phí của prompt cache trên tải thực tế, kèm dữ liệu đầy đủ.
Bối cảnh
Anthropic và OpenAI lần lượt ra mắt prompt cache vào nửa cuối 2024: yêu cầu đầu tiên tính theo giá ghi cache (thường 1,25x giá đầu vào), các yêu cầu trúng cache sau đó tính theo giá đọc cache (thường 10% giá đầu vào).
Về lý thuyết, tiết kiệm rất lớn. Nhưng giữa lý thuyết và thực tế là “tỷ lệ trúng cache”. Chúng tôi chạy đo một tháng bằng chính agent hỗ trợ khách hàng và pipeline codegen của ZetaAPI.
Kịch bản kiểm thử
- Kịch bản A: agent hỗ trợ — prompt hệ thống cố định (~3.200 token), câu hỏi người dùng thay đổi, hội thoại tích lũy. ~18k lượt gọi/ngày.
- Kịch bản B: pipeline codegen — tiền tố ngữ cảnh dự án (~12k token) làm mới khi repo thay đổi; các lượt gọi liên tiếp trên cùng repo tái dùng tiền tố. ~4k lượt gọi/ngày.
Cả hai kịch bản đánh dấu prompt hệ thống bằng cache_control: { type: 'ephemeral' }.
Kết quả
| Kịch bản | Tỷ lệ trúng cache | Chi phí đầu vào gốc | Sau khi bật cache | Tiết kiệm |
|---|---|---|---|---|
| Agent hỗ trợ | 88% | $300/ngày | $103/ngày | 66% |
| Pipeline codegen | 71% | $643/ngày | $279/ngày | 57% |
| Tổng hợp | 82% | $943/ngày | $382/ngày | 59,5% |
Cộng thêm đối soát hóa đơn đầu tháng, tiết kiệm cả tháng đạt 62%.
Loại yêu cầu nào có tỷ lệ trúng cao?
Theo dữ liệu, các yếu tố quyết định tỷ lệ trúng, xếp theo trọng số:
- Độ ổn định của tiền tố — prompt hệ thống lâu không đổi thì tỷ lệ trúng thẳng lên 80%+
- Mật độ gọi — ephemeral cache của Anthropic có TTL 5 phút; gọi càng dày càng dễ rơi vào cùng cửa sổ TTL
- Độ dài tiền tố — tiền tố ngắn hơn 1.024 token còn không qua ngưỡng cache
Phát hiện phản trực giác
Ban đầu chúng tôi nghĩ codegen sẽ có tỷ lệ trúng cao hơn hỗ trợ — ngữ cảnh dự án “ổn định hơn”. Nhưng thực tế codegen ngắt cache mỗi lần commit, tỷ lệ trúng thực lại thấp hơn 17 điểm phần trăm.
Cache là tối ưu theo trục thời gian, không phải trục ngữ nghĩa. Một prompt chỉ cần đổi một token là thành prompt hoàn toàn mới, không liên quan gì lần trước.
Lời khuyên cho bên tích hợp
- Cố gắng biến prompt hệ thống thành mẫu bất biến, đẩy phần động vào tin nhắn người dùng
- Tác vụ theo lô nên gửi cùng một lô, đừng tách thành nhiều đợt vượt TTL
- Đặt nhãn
ephemeralở cuối tiền tố bất biến dài nhất, không phải ở cuối toàn bộ prompt hệ thống
Sau này chúng tôi sẽ thêm thống kê tỷ lệ trúng cache theo từng API key trong bảng điều khiển, để bên tích hợp tự đánh giá đã bật cache hay chưa.