nuget server logo nuget api documents
↑

API Docs / Microsoft.VisualBasic.Data.NLP / BpeModel

BpeModel

Full name Microsoft.VisualBasic.Data.NLP.ChineseTokenizer.HuggingFace.BpeModel Assembly Microsoft.VisualBasic.Data.NLP Members 9

字节对编码(Byte Pair Encoding)子词模型。

00 Remarks

BPE 的切分过程为:先把输入分片拆解为最小的符号单元(字符),随后不断地在相邻 符号对中挑选合并优先级最高(即在 merges 列表中出现得最早)的一对 予以合并,直到没有任何相邻符号对存在于合并规则表中为止。

单个分片长度为 L 时该过程的复杂度约为 O(L²),考虑到预分词之后的分片通常都很短 (一般不超过 20 个字符),实际开销可以忽略。此外这里还对分片的切分结果做了 有界缓存,重复出现的词可以直接命中缓存,显著提升长文本的吞吐量。

01 Syntax

Microsoft.VisualBasic.Data.NLP.ChineseTokenizer.HuggingFace.BpeModel

02 Methods

NameOverloadsSummary
ApplyAffixes 1 为子词附加 continuing_subword_prefix 与 end_of_word_suffix。
GetMerged 1 读取分片的合并结果,优先命中缓存。
MergeWord 1 对单个分片执行字节对合并。
TokenToId 1
IdToToken 1
Tokenize 1

03 Properties

NameOverloadsSummary
VocabSize 1 词表规模。

04 Fields

NameOverloadsSummary
CacheCapacity 1 分片切分结果缓存的容量上限,超出之后整体清空。
_ranks 1 合并规则表:键为 "左符号 右符号",值为合并优先级(越小越优先)。

05 Members

method ApplyAffixes #
ApplyAffixes(String, Boolean, Boolean)

为子词附加 continuing_subword_prefix 与 end_of_word_suffix。

method GetMerged #
GetMerged(String)

读取分片的合并结果,优先命中缓存。

method MergeWord #
MergeWord(String)

对单个分片执行字节对合并。

Remarks

每一轮扫描全部相邻符号对并选出优先级最高的一对进行合并,直到再也找不到 可用的合并规则为止。这里按代理对(surrogate pair)而非 UTF-16 码元 进行初始拆分,从而保证 emoji 等增补平面字符不会被拆散。

property VocabSize #
VocabSize

词表规模。

field CacheCapacity #
CacheCapacity

分片切分结果缓存的容量上限,超出之后整体清空。

field _ranks #
_ranks

合并规则表:键为 "左符号 右符号",值为合并优先级(越小越优先)。

method TokenToId #
TokenToId(String)
method IdToToken #
IdToToken(Int32)
method Tokenize #
Tokenize(String)