llmlingua2-native Rust Native + ONNX Runtime
Native cho macOS Intel x86_64

Nén Prompt LLMLingua-2 Native

Nén prompt hiệu năng cao được biên dịch bằng Rust và ONNX Runtime C API. Tối ưu hóa dành riêng cho môi trường chạy độc lập trên kiến trúc macOS Intel. Không cần Python thực thi.

bash - macOS x86_64
# 1. Biên dịch file nhị phân native cho macOS x86_64
$ ./build_x86_64.sh
# 2. Nén đoạn prompt trực tiếp không cần môi trường Python
$ ./dist/llmlingua2 --rate 0.5 --text "Đây là đoạn văn bản dài cần được nén bớt token."
2026-08-13 11:41:39.378 llmlingua2[55825:334625]
2026-08-13 11:41:39.378722 [W:onnxruntime:llmlingua2-native, cpuid_info.cc:95 LogEarlyWarning] Unknown CPU vendor. cpuinfo_vendor value: 0
ONNX Runtime: 1.24.2
đoạn văn bản dài nén token
Tốc độ nén trung bình
839 tok/s
ONNX C API đa luồng native
Bộ kiểm định Parity
54 / 54
Đạt 100% các cổng kiểm thử
Phụ thuộc Runtime
0 thư viện Python
Gói giải nén chạy độc lập
Nền tảng mục tiêu
x86_64
macOS Intel Standalone

Bộ Mô Phỏng Nén Prompt Trực Tiếp

Trải nghiệm thuật toán tính xác suất giữ từ (word keep score), phân bổ trọng số cl100k token và loại bỏ từ dư thừa của LLMLingua-2 theo thời gian thực.

0.50
Cố định theo kết quả CLI thực tế: --rate 0.5
SỐ TOKEN GỐC
32
TOKEN SAU NÉN
16
TỶ LỆ TIẾT KIỆM
50.0%
TRỰC QUAN HOÁ TỪ GIỮ / LOẠI BỎ TỪ KẾT QUẢ THỰC TẾ
Giữ lại Loại bỏ
VĂN BẢN KẾT QUẢ XUẤT STDOUT

Hướng Dẫn Cài Đặt & Biên Dịch

Thực thi script biên dịch native, tải các tài nguyên model và chạy quá trình nén token trong vài phút trên macOS Intel.

1

Chuẩn bị Model & Tệp Tài Nguyên cl100k

Môi trường Python 3.12 chỉ được dùng tại thời điểm build để export model ONNX và tải tài nguyên tiktoken.

# Tải file tài nguyên tiktoken cl100k
python3.12 tools/fetch_cl100k_asset.py
# Export mô hình BERT sang định dạng ONNX
optimum-cli export onnx \
--model microsoft/llmlingua-2-bert-base-multilingual-cased-meetingbank \
--task token-classification build/onnx
2

Biên Dịch File Nhị Phân Standalone x86_64

Biên dịch lớp đệm C shim native và liên kết trực tiếp mã nguồn Rust bằng rustc cho target x86_64-apple-darwin.

# Thêm target nếu quản lý qua rustup
rustup target add x86_64-apple-darwin
# Chạy script biên dịch tự động
./build_x86_64.sh
# Kiểm tra cấu trúc file sau biên dịch
file dist/llmlingua2
dist/llmlingua2: Mach-O 64-bit executable x86_64

Kiến Trúc Hệ Thống

Lớp công nghệ native hiệu năng cao kết hợp bộ tách từ (tokenizer) Rust tùy chỉnh, lớp liên kết C FFI và thực thi ONNX Runtime.

BERT / WordPiece

Tokenizer Rust native hỗ trợ đầy đủ Tiếng Việt, CJK và Emoji.

Bộ Đếm cl100k

Bộ đếm tiktoken native để tính toán phân bổ trọng số xác suất.

Logic LLMLingua-2

Lọc phân ngưỡng percentile và gom xác suất từ cấp subword.

ONNX Runtime C API

Thực thi mô hình qua thư viện động libonnxruntime.dylib.

Cấu Trúc Gói Phát Hành Độc Lập (`dist/`)

dist/
├── llmlingua2 (File nhị phân x86_64 Mach-O)
├── lib/
│ └── libonnxruntime.dylib (Thư viện ONNX Runtime C API)
└── model/
    ├── model.onnx (Mô hình BERT Classification)
    ├── vocab.txt (Từ điển BERT Vocab)
    └── cl100k_base.tiktoken (Bảng mã Tiktoken)
Ràng Buộc Runtime Đã Xác Minh:
Kiến trúc file nhị phân: x86_64
Phụ thuộc liên kết động: @rpath/libonnxruntime.dylib
Đường dẫn tìm kiếm runtime: @executable_path/lib
Hoàn toàn không cần cấu hình biến môi trường DYLD_LIBRARY_PATH.

Ma Trận Kiểm Định Parity

Toàn bộ các module triển khai bằng Rust native đều phải trải qua bộ kiểm thử đối chiếu chức năng nghiêm ngặt so với bản chuẩn Python, Hugging Face và Tiktoken.

Parity Tokenizer 12/12 ĐẠT

Xác minh khớp hoàn toàn với BertTokenizerFast của Hugging Face trên Tiếng Anh, tiếng có dấu và ký tự đặc biệt.

./scripts/test_tokenizer_parity.sh
Parity cl100k 14/14 ĐẠT

Bộ đếm tiktoken bằng Rust native khớp kết quả từng token so với thư viện tiktoken trong Python.

./scripts/test_cl100k_parity.sh
Parity Input Ngắn 10/10 ĐẠT

Xác minh khớp tuyệt đối xác suất nén end-to-end so với mô hình tham chiếu LLMLingua-2.

./scripts/test_llmlingua2_exact_parity.sh
Parity Chunk Dài 10/10 ĐẠT

Xử lý chính xác ranh giới chunk quanh giới hạn 512 token BERT, dấu câu và chữ CJK.

./scripts/test_long_chunk_parity.sh
Parity Input Dài 8/8 ĐẠT

Kiểm tra end-to-end đối với các đoạn prompt văn bản dài vượt quá 1,020+ WordPiece.

./scripts/test_llmlingua2_long_parity.sh
Parity Inference ONNX 1.24.2

Tính chính xác của việc gọi hàm C API binding native được kiểm chứng so với ONNX Runtime Python.

./scripts/benchmark_native.sh

Kết Quả Benchmark Tham Chiếu

Thông số đo lường thực tế trên cấu hình macOS 15.7.7, Intel Core i7-1068NG7 @ 2.30 GHz với phiên bản ONNX Runtime 1.24.2.

CẤU HÌNH LUỒNG (INTRA-OP) TỐC ĐỘ XỬ LÝ (TOK/S)
Luồng 0 (Tự động - Tốt nhất) 839 tok/s (2,089 ms)
Luồng 4 823 tok/s (2,129 ms)
Luồng 2 574 tok/s (3,052 ms)
Luồng 1 328 tok/s (5,337 ms)

Thông Số Đăng Ký Kiểm Thử Benchmark

Dung lượng đầu vào: 10,488 bytes
Số token cl100k: 1,752 tokens
Số chunk BERT: 5 chunks
Tỷ lệ nén target: 0.5

Mức Độ Tựu Bộ Nhớ Cold-Start

Thời gian thực thi real: ~4.11 s
Bộ nhớ Resident tối đa: ~1.54 GB
Bộ nhớ Peak Footprint: ~1.10 GB

Công Cụ Tạo Cú Pháp Lệnh CLI

Tùy chỉnh các tham số cờ truyền vào để tạo ra câu lệnh nhị phân hoàn chỉnh sẵn sàng đưa vào các script tự động hóa.

CÂU LỆNH TẠO TỰ ĐỘNG
./dist/llmlingua2 --rate 0.5 --text "Đây là đoạn văn bản prompt cần nén bớt token."
Mẹo nhỏ: Dùng thêm cờ --debug-scores để kiểm tra chi tiết xác suất giữ từng từ được mô hình phân bổ trên luồng báo lỗi stderr.

Danh Mục Kiểm Định Bản Phát Hành

Các điều kiện bắt buộc cần phải xác minh trước khi đóng gói phân phối bản cài đặt cho hệ điều hành macOS Intel.

HẠNG MỤC KIỂM TRA CÂU LỆNH XÁC MINH KẾT QUẢ KỲ VỌNG TRẠNG THÁI
Kiến trúc File Nhị Phân file dist/llmlingua2 Chứa thông tin x86_64 ĐẠT
Kiến trúc Dylib ONNX file dist/lib/libonnxruntime.dylib Chứa thông tin x86_64 ĐẠT
Liên Kết Động Dylib otool -L dist/llmlingua2 @rpath/libonnxruntime.dylib ĐẠT
Đường Dẫn Tim Runtime otool -l dist/llmlingua2 Chứa @executable_path/lib ĐẠT
Parity Tokenizer ./scripts/test_tokenizer_parity.sh 12/12 trường hợp pass ĐẠT
Parity cl100k ./scripts/test_cl100k_parity.sh 14/14 trường hợp pass ĐẠT