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ộcsẵ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

OSStatus
Ubuntu
Windows
GitHub ActionsCI

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