Giới thiệu về Modern Text Tokenizer
Các mô hình xử lý ngôn ngữ tự nhiên (NLP) hiện đại như BERT, DistilBERT và các kiến trúc dựa trên bộ chuyển đổi khác phụ thuộc rất nhiều vào việc mã hóa hiệu quả. Tuy nhiên, các nhà phát triển C++ thường gặp phải những hạn chế như các phần phụ thuộc cồng kềnh, hỗ trợ Unicode kém hoặc thiếu khả năng tương thích với các bộ mã hóa dựa trên từ vựng.
Đó là lý do tại sao tôi tạo ra Modern Text Tokenizer - một trình mã hóa C++ cực nhanh, chỉ có tiêu đề, hỗ trợ UTF-8, không phụ thuộc và sẵn sàng cho ML ngay khi cài đặt.
Điều gì làm nên sự độc đáo của nó?
- Không phụ thuộc – Không Boost, không ICU, không thư viện bên ngoài.
- An toàn với UTF-8 – Xử lý chính xác văn bản đa ngôn ngữ, biểu tượng cảm xúc và ký tự nhiều byte.
- Chỉ tiêu đề – Thả nó vào dự án của bạn và bắt đầu sử dụng.
- Mã hóa từ vựng – Tải
vocab.txt
từ HuggingFace và tạo ID mã thông báo. - Sẵn sàng cho Transformer – Hỗ trợ
[CLS]
,[SEP]
,[PAD]
và định dạng chuỗi.
Các tính năng chính
- Phân nhánh ASCII và Unicode nhanh chóng bằng
std::string_view
- API linh hoạt để cấu hình:
1 TextTokenizer tokenizer; 2 tokenizer 3 .set_lowercase(true) 4 .set_split_on_punctuation(true) 5 .set_keep_punctuation(true);
- Tải từ vựng:
1 tokenizer.load_vocab("vocab.txt");
- Mã hóa / Giải mã:
1 auto ids = tokenizer.encode("Hello world!"); 2 std::string decoded = tokenizer.decode(ids);
Hiệu suất
1Kiểm tra hiệu suất với 174000 ký tự
2
3Kết quả:
4Phân mã hóa: 2159 μs (22000 mã thông báo)
5Mã hóa: 1900 μs
6Giải mã: 430 μs
7Tổng thời gian: 4,49 ms
8Thông lượng: 36,97 MB/giây
Đánh giá trên Ryzen 9 5900X @ -O3 ở chế độ phát hành.
Cách sử dụng
Thêm tệp tiêu đề:
1#include "Modern-Text-Tokenizer.hpp"
Sau đó biên dịch:
1g++ -std=c++17 -O3 -o tokenizer_demo main.cpp
Bạn muốn sử dụng nó với BERT hoặc DistilBERT? Chỉ cần tải xuống tệp từ vựng:
1curl -O https://huggingface.co/distilbert/distilbert-base-uncased/raw/main/vocab.txt
Xây dựng CI đa nền tảng
OS | Status |
---|---|
Ubuntu | ✅ |
Windows | ✅ |
GitHub Actions |
Trường hợp sử dụng
- Tiền xử lý văn bản cho các mô hình ML bằng C++
- Xử lý ngôn ngữ tự nhiên (NLP) trên thiết bị (không cần Python)
- Công cụ CLI hiệu suất cao
- Hệ thống nhúng không phụ thuộc vào thời gian chạy
Dùng thử ngay
Modern Text Tokenizer đã hoạt động và sẵn sàng cho các dự án của bạn.
Sao chép, biên dịch và mã hóa chỉ trong vài giây: Modern Text Tokenizer
Bình luận