跳转到主要内容

CLIP神经网络快速文本分词器

项目描述

Cover logo

Instant CLIP Tokenizer:CLIP神经网络的一个快速分词器

Documentation Crates.io PyPI Build status License: MIT

Instant CLIP Tokenizer是一个为OpenAI的CLIP模型设计的快速纯Rust文本分词器。它旨在替代CLIP存储库中包含的原始基于Python的分词器,目标是与原始实现100%兼容。它也可以与OpenCLIP和其他使用相同分词器的实现一起使用。

除了可以作为Rust包使用外,它还包含了使用PyO3构建的Python绑定,因此它可以作为一个本机Python模块使用。

对于这个存储库中包含的微基准测试,Instant CLIP Tokenizer比Python实现快约70倍(禁用了预处理和缓存以确保公平比较)。

使用库

Rust

[dependencies]
instant-clip-tokenizer = "0.1.0"
# To enable additional functionality that depends on the `ndarray` crate:
# instant-clip-tokenizer = { version = "0.1.0", features = ["ndarray"] }

Python (>= 3.9)

pip install instant-clip-tokenizer

使用库需要在您的Python环境中安装numpy >= 1.16.0(例如,通过pip install numpy)。

示例

use instant_clip_tokenizer::{Token, Tokenizer};

let tokenizer = Tokenizer::new();

let mut tokens = Vec::new();
tokenizer.encode("A person riding a motorcycle", &mut tokens);
let tokens = tokens.into_iter().map(Token::to_u16).collect::<Vec<_>>();
println!("{:?}", tokens);

// -> [320, 2533, 6765, 320, 10297]
import instant_clip_tokenizer

tokenizer = instant_clip_tokenizer.Tokenizer()

tokens = tokenizer.encode("A person riding a motorcycle")
print(tokens)

# -> [320, 2533, 6765, 320, 10297]

batch = tokenizer.tokenize_batch(["A person riding a motorcycle", "Hi there"], context_length=5)
print(batch)

# -> [[49406   320  2533  6765 49407]
#     [49406  1883   997 49407     0]]

测试

要运行测试,请执行以下操作

cargo test --all-features

您还可以使用以下方法测试Python绑定

make test-python

致谢

本存储库中包含的词汇文件和原始Python分词器代码版权为(c) 2021 OpenAI(《MIT许可证》)。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

本版本无源代码分发文件。请参阅有关生成分发归档的教程。

已构建的分发

instant_clip_tokenizer-0.1.1-cp312-none-win_amd64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.12 Windows x86-64

instant_clip_tokenizer-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ x86-64

instant_clip_tokenizer-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (2.3 MB 查看哈希值)

上传于 CPython 3.12 macOS 11.0+ ARM64

instant_clip_tokenizer-0.1.1-cp312-cp312-macosx_10_12_x86_64.whl (2.3 MB 查看哈希值)

上传于 CPython 3.12 macOS 10.12+ x86-64

instant_clip_tokenizer-0.1.1-cp311-none-win_amd64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.11 Windows x86-64

instant_clip_tokenizer-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

instant_clip_tokenizer-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (2.3 MB 查看哈希值)

上传于 CPython 3.11 macOS 11.0+ ARM64

instant_clip_tokenizer-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl (2.3 MB 查看哈希值)

上传于 CPython 3.11 macOS 10.12+ x86-64

instant_clip_tokenizer-0.1.1-cp311-cp311-macosx_10_7_x86_64.whl (2.3 MB 查看哈希值)

上传于 CPython 3.11 macOS 10.7+ x86-64

instant_clip_tokenizer-0.1.1-cp310-none-win_amd64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

instant_clip_tokenizer-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

instant_clip_tokenizer-0.1.1-cp310-cp310-macosx_11_0_arm64.whl (2.3 MB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

instant_clip_tokenizer-0.1.1-cp310-cp310-macosx_10_7_x86_64.whl (2.3 MB 查看哈希值)

上传于 CPython 3.10 macOS 10.7+ x86-64

instant_clip_tokenizer-0.1.1-cp39-none-win_amd64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

instant_clip_tokenizer-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

instant_clip_tokenizer-0.1.1-cp39-cp39-macosx_11_0_arm64.whl (2.3 MB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

instant_clip_tokenizer-0.1.1-cp39-cp39-macosx_10_12_x86_64.whl (2.3 MB 查看哈希值)

上传于 CPython 3.9 macOS 10.12+ x86-64

instant_clip_tokenizer-0.1.1-cp38-none-win_amd64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

instant_clip_tokenizer-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

instant_clip_tokenizer-0.1.1-cp37-none-win_amd64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.7 Windows x86-64

instant_clip_tokenizer-0.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ x86-64

支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页