spinf-serve: Máy chủ suy luận chấm điểm hàng loạt trên một GPU duy nhất
spinf-serve là engine suy luận mã nguồn mở (Apache 2.0) đọc nội dung một lần và trả lời nhiều câu hỏi phân loại cùng lúc, mỗi câu trả về xác suất thay vì văn bản sinh ra. Công cụ chạy trên một GPU NVIDIA 24 GB, cung cấp API tương thích OpenAI và đạt tốc độ cao hơn vLLM đáng kể trong các tác vụ chấm điểm hàng loạt.

spinf-serve: Chấm điểm hàng loạt cho hàng triệu nội dung trên một GPU
Trong bối cảnh các mô hình ngôn ngữ ngày càng được dùng để phân loại và ra quyết định tự động, một engine suy luận mới có tên spinf-serve vừa được công bố trên Hacker News, hứa hẹn giải quyết bài toán chấm điểm hàng loạt với chi phí thấp hơn nhiều so với các máy chủ chat thông thường.
spinf-serve đọc một nội dung chỉ một lần và trả lời nhiều câu hỏi cùng lúc trong cùng một lượt xử lý. Thay vì sinh văn bản, mỗi câu trả lời là xác suất trên các lựa chọn bạn đưa ra — đúng với nhu cầu của các hệ thống phân loại, đánh giá rủi ro hay ra quyết định tự động.
Vì sao cần một engine riêng cho chấm điểm?
Nhóm phát triển cho biết họ xây dựng engine này cho công việc của chính mình: một chỉ số thị trường hàng ngày được đọc từ hàng triệu bài báo, mỗi bài được hỏi vài chục câu hỏi hẹp và cần hiệu chuẩn chính xác.
Các máy chủ suy luận vốn được thiết kế cho chat sẽ đọc lại nội dung cho từng câu hỏi và sinh từng token một, khiến công việc trở nên chậm và tốn kém. spinf-serve thay đổi cách tiếp cận: mọi câu hỏi được bố trí như các nhánh của một lần đọc nội dung duy nhất, và nhiều nội dung được đóng gói vào cùng một lượt forward pass.
Đây không phải máy chủ chat. Không có gì được sinh ra trừ khi bạn yêu cầu, và hệ thống được tối ưu cho thông lượng thay vì độ trễ của một yêu cầu đơn lẻ.
Cơ chế này chính là cái mà giới nghiên cứu gọi là mô hình quyết định (decision model): trả về xác suất trên một tập đáp án cố định (có/không, nhãn, mức độ) thay vì một đoạn văn.
Cài đặt và vận hành
spinf-serve yêu cầu Linux, GPU NVIDIA 24 GB hỗ trợ nhân tensor fp8 (Ada, Hopper hoặc Blackwell như RTX 4090/5090, L4, L40S, H100), driver hỗ trợ CUDA 13 và Python 3.12. Các card Ampere vẫn chạy được với trọng số int8.
Cài đặt và khởi chạy rất đơn giản:
pip install "spinf-serve[server]"
spinf-serve serve spinf/gemma-4-12b-fp8
Hoặc dùng Docker với NVIDIA Container Toolkit:
docker run --gpus all -p 8000:8000 -v spinf-cache:/root/.cache ghcr.io/spinfinc/spinf-serve
Sau đó, bạn có thể gửi yêu cầu tới endpoint /v1/score để thực hiện nhiều phân loại và trích xuất thông tin từ cùng một lần đọc.
Những điểm nổi bật
-
Đọc một lần, hỏi nhiều câu: nội dung được đọc một lần, mỗi câu hỏi chỉ tốn token riêng của nó. Các placeholder biến một template thành cả lưới câu hỏi.
-
Điểm số có thể ngưỡng hóa: mỗi lựa chọn có xác suất, ngưỡng sàn (floor) và log-probability, cho phép bạn tự chọn ngưỡng quyết định trên dữ liệu của mình.
-
Trích xuất từ cùng lần đọc: hỗ trợ trích văn bản
{*}, số{n}và số tiền{$}kèm xác suất tương ứng. -
Điểm số ổn định bất kể lô xử lý: với checkpoint fp8, điểm của một nội dung là giống hệt từng bit dù chạy riêng lẻ hay gói chung với hàng nghìn nội dung khác, qua nhiều lần gọi, nhiều ngày và nhiều máy chủ.
-
Hỗ trợ đa phương tiện: đọc được hình ảnh, âm thanh và khung hình video với các mô hình phù hợp.
-
Prompt pack: các bộ câu hỏi đã hiệu chuẩn sẵn cho từng công việc như kiểm duyệt nội dung, phân loại sản phẩm, đánh giá.
-
Tự vận hành hoặc dùng dịch vụ: client chỉ cần đổi base URL và API key để chuyển giữa máy chủ tự dựng và API hosted.
Hiệu năng ấn tượng
Trên một RTX 4090 với Gemma 4 12B ở fp8, nhóm phát triển đo được kết quả đáng chú ý với 24 bài Wikinews (khoảng 470 token mỗi bài), mỗi bài 56 câu hỏi hai lựa chọn, tổng cộng 1.344 câu hỏi:
- spinf-serve: trả lời 491 câu hỏi/giây, xử lý 1.344 câu hỏi trong 2,7 giây.
- vLLM 0.26 với prefix caching: đạt 200 câu hỏi/giây, mất 6,7 giây.
Điểm khác biệt cốt lõi: vLLM có thể tái sử dụng mỗi bài báo cho 56 câu hỏi nhờ cache, nhưng không thể trả lời chúng trong một lượt forward pass. Nó phải chạy 1.344 yêu cầu một token, trong khi spinf-serve bố trí 56 câu hỏi thành các nhánh của một lần đọc và đóng gói 24 bài báo vào hai lượt 16k token. Khoảng cách càng tăng khi số câu hỏi trên mỗi nội dung càng nhiều.
Theo nhóm phát triển, với pack kiểm duyệt spinf/moderation (106 câu hỏi mỗi tin nhắn, 22 danh mục), một chiếc 4090 có thể chấm điểm khoảng 20.000 tin nhắn mỗi giờ.
Các mô hình được hỗ trợ
spinf-serve hỗ trợ bốn checkpoint đã được lượng tử hóa và hiệu chuẩn:
| Tên | Nền tảng | GPU | Đọc được |
|---|---|---|---|
| spinf/gemma-4-12b-fp8 (mặc định) | Google Gemma 4 12B, FP8 | 24 GB | văn bản, ảnh, âm thanh, video |
| spinf/gemma-4-31b-fp8 | Google Gemma 4 31B, FP8 | 48 GB | văn bản, ảnh, video |
| spinf/qwen3.8-27b-int4 | Qwen3.8-27B, GPTQ int4 | 24 GB | văn bản, ảnh, video |
| spinf/pplx-decider-v1-27b-int4 | Perplexity pplx-decider-v1-27b, GPTQ int4 | 24 GB | văn bản |
Bất kỳ checkpoint nào trên Hugging Face thuộc họ kiến trúc được hỗ trợ đều có thể chạy bằng đường dẫn, với lượng tử hóa thực hiện ngay khi tải.
Ý nghĩa với cộng đồng phát triển
Với các nhóm kỹ thuật tại Việt Nam đang xây dựng hệ thống phân loại nội dung, kiểm duyệt diễn đàn, phân tích phản hồi khách hàng hay tự động hóa quy trình ra quyết định, spinf-serve là một lựa chọn đáng cân nhắc. Việc chạy được trên một GPU 24 GB duy nhất cùng giá trị thông lượng cao giúp giảm đáng kể chi phí hạ tầng so với việc gọi API LLM cho từng câu hỏi riêng lẻ.
Dự án được phát hành dưới giấy phép Apache 2.0, mã nguồn mở hoàn toàn, hiện ở phiên bản 0.1. Engine đã hoàn thiện phần chấm điểm, trích xuất, sinh văn bản, đa phương tiện và bất biến theo lô, đồng thời đã kiểm thử tương đương với các tham chiếu ghi sẵn.
Câu hỏi, ý tưởng và báo lỗi có thể gửi qua mục issues trên kho lưu trữ GitHub của dự án.


