@bluryar/tokenizers-js
v0.1.9
Published
基于 [HuggingFace Tokenizers](https://github.com/huggingface/tokenizers) 的JavaScript封装,使用WebAssembly实现高性能的文本标记化功能。
Downloads
517
Readme
@bluryar/tokenizers-js
基于 HuggingFace Tokenizers 的JavaScript封装,使用WebAssembly实现高性能的文本标记化功能。
功能特点
- 使用Rust和WebAssembly实现高性能文本标记化
- 支持浏览器环境
- 提供完整的TypeScript类型定义
- 支持批量编码和解码
安装
npm install @bluryar/tokenizers-js
# 或
pnpm add @bluryar/tokenizers-js
# 或
yarn add @bluryar/tokenizers-js
使用方法
import { init, TokenizerWrapper } from '@bluryar/tokenizers-js'
// 初始化WASM
await init()
// 创建tokenizer实例
const config = await fetch('path/to/tokenizer.json').then(r => r.text())
const tokenizer = new TokenizerWrapper(config)
// 编码文本
const encoding = await tokenizer.encode('Hello, world!', true)
console.log(encoding.tokens) // 获取分词结果
console.log(encoding.ids) // 获取token ID
// 解码
const text = await tokenizer.decode(encoding.ids, true)
console.log(text) // 'Hello, world!'
API 文档
TokenizerWrapper
主要的tokenizer封装类,提供以下方法:
encode(text: string, addSpecialTokens: boolean): Promise
将文本编码为token。
text
: 输入文本addSpecialTokens
: 是否添加特殊token- 返回: 包含编码结果的EncodingWrapper对象
encodeBatch(texts: string[], addSpecialTokens: boolean): Promise<EncodingWrapper[]>
批量编码多个文本。
texts
: 输入文本数组addSpecialTokens
: 是否添加特殊token- 返回: EncodingWrapper对象数组
decode(ids: number[], skipSpecialTokens: boolean): Promise
将token ID解码为文本。
ids
: token ID数组skipSpecialTokens
: 是否跳过特殊token- 返回: 解码后的文本
decodeBatch(sentences: number[][], skipSpecialTokens: boolean): Promise<string[]>
批量解码多组token ID。
sentences
: token ID二维数组skipSpecialTokens
: 是否跳过特殊token- 返回: 解码后的文本数组
EncodingWrapper
编码结果的包装类,提供以下属性:
tokens
: string[] - 分词结果ids
: Uint32Array - token IDtypeIds
: Uint32Array - token类型IDwordIds
: (number | null)[] - 词IDoffsets
: [number, number][] - token在原文中的位置偏移specialTokensMask
: Uint32Array - 特殊token掩码attentionMask
: Uint32Array - 注意力掩码
浏览器兼容性
- 需要支持WebAssembly的现代浏览器
- 推荐使用Chrome 57+、Firefox 52+、Safari 11+、Edge 16+
开发指南
- 克隆仓库:
git clone https://github.com/bluryar/tokenizers-js.git
cd tokenizers-js
- 安装依赖:
# 构建wasm
wasm-pack build --target web --out-dir packages/tokenizers-wasm
pnpm install
- 构建:
pnpm build