Đội ngũ xây dựng một dịch vụ suy luận chuẩn production đã chạy sáu mô hình ngôn ngữ trên DigitalOcean Inference trong 48 giờ. Mô hình “tiny” với giá 0,20 USD mỗi tháng đã đánh bại các lựa chọn đắt tiền hơn. Nó duy trì được trong giới hạn bộ nhớ 8 GB của các droplet và tránh được các lỗi crash đã làm sập biến thể 70B, mang lại độ trễ và độ chính xác có thể sử dụng được với chi phí chỉ bằng một phần nhỏ.
Tại sao thử nghiệm này lại quan trọng
Các doanh nghiệp triển khai các mô hình ngôn ngữ lớn (LLM) dưới dạng API thường cho rằng các mô hình lớn hơn, đắt tiền hơn sẽ đảm bảo trải nghiệm tốt nhất. Trong thực tế, môi trường production phải cân bằng giữa bộ nhớ, tính đồng thời và các cam kết về thời gian hoạt động (uptime). Một mô hình trông có vẻ tốt trên lý thuyết có thể trở thành một gánh nặng khi nó gây ra lỗi tràn bộ nhớ (OOM) hoặc làm đình trệ dịch vụ trong quá trình khởi động lạnh (cold start). Thí nghiệm thực tế này cho thấy một mô hình giá rẻ có thể là lựa chọn khả thi duy nhất trên các phần cứng khiêm tốn.
Sáu đối thủ cạnh tranh
| Mô hình | Chi phí hàng tháng | Độ trễ TB | Độ chính xác* | Sử dụng RAM / Crash |
|---|---|---|---|---|
| mistral-tiny | $0.20 | 120 ms | 88 % | 1.2 GB |
| mistral-small | $0.80 | 180 ms | 91 % | 2.4 GB |
| mistral-medium | $2.50 | 250 ms | 93 % | 4.1 GB |
| mistral-large | $5.00 | 300 ms | 94 % | 6.8 GB |
| llama-70b | $8.00 | 450 ms | 95 % | CRASH |
| mixtral-8x7b | $10.00 | 500 ms | 96 % | CRASH |
*Độ chính xác phản ánh hiệu suất của các mô hình trên bộ thử nghiệm (benchmark) nội bộ của đội ngũ.
Mô hình “tiny” có chi phí chưa đến một phần tư đô la mỗi tháng và nằm gọn trong giới hạn bộ nhớ 8 GB. Hai mô hình lớn nhất—llama-70b và mixtral-8x7b—đã vượt quá giới hạn đó và liên tục làm sập máy chủ (host), khiến chúng không thể sử dụng được bất chấp điểm độ chính xác cao hơn.
Những điểm yếu đã làm sập các mô hình lớn
- Endpoint được mã hóa cứng – Kiến trúc ban đầu gửi mọi yêu cầu đến một mô hình duy nhất. Khi mô hình đó gặp lỗi, toàn bộ API sẽ bị sập.
- Không có giới hạn bộ nhớ – Các mô hình lớn hơn ngốn hết RAM hiện có, gây ra lỗi OOM mà không có cảnh báo.
- Độ trễ khởi động lạnh – Các yêu cầu đầu tiên gửi đến một mô hình mới khởi chạy mất vài giây, làm giảm khả năng phản hồi cảm nhận được.
- Tính đồng thời không giới hạn – Một đợt yêu cầu đồng thời tăng đột biến làm bão hòa bộ nhớ và CPU, gây ra các lỗi hệ thống.
Các con số hiệu suất thô chẳng có ý nghĩa gì nếu dịch vụ không thể duy trì trực tuyến dưới tải thực tế.
Giải pháp Định tuyến động (Dynamic Routing)
Các kỹ sư đã viết lại lộ trình yêu cầu dựa trên ba nguyên tắc:
- Lựa chọn mô hình tại thời điểm thực thi (runtime) –
