Skip to content

KKenny0/torchKbert

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 

Repository files navigation

torchKbert

  • Our customized version of bert for pytorch

说明

这是笔者基于 Meelfy 的 pytorch_pretrained_BERT 库进行部分定制化修改的模型库。

本项目的初衷是为了满足个人实验的方便,因此不会经常更新。

功能

使用

  • 安装:

    pip install torchKbert
  • 典型的使用例子请参考官方 examples 目录。

  • 若想使用层次分解位置编码,使 BERT 可以处理长文本,在 model 中传入参数 is_hierarchical=True 即可。示例如下:

    model = BertModel(config)
    encoder_outputs, _ = model(input_ids, token_ids, input_mask, is_hierarchical=True)
    
  • 若想使用基于词颗粒度的中文WoBERT,只需在构建BertTokenizer对象时传入新参数:

    from torchKbert.tokenization import BertTokenizer
    
    tokenizer = BertTokenizer(
        vocab_file=vocab_path, 
        pre_tokenizer=lambda s: jieba.cut(s, HMM=False))
    

    不传入时,默认为None。分词时默认以词为单位,若想恢复使用以字为单位,只需在tokenize时传入新参数pre_tokenize=False

    tokenzier.tokenize(text, pre_tokenize=False)
    

背景

之前一直在用 Meelfy 编写的 pytorch_pretrained_BERT,调用预训练模型或进行微调已经十分方便。后来因个人的需求,所以就想改写一个支持层次分解位置编码的版本。

苏神的 bert4keras 已经实现了这样的功能。但因个人惯于使用 pytorch,已经很久不用 keras 了,所以才打算自己改写一个。

更新

  • 2021.03.07 : 添加层次分解位置编码。
  • 2021.05.27 : 添加基于词颗粒度的中文WoBERT。
  • 2022.03.27 : 参照 pytorch_transformers 对 BertPretrainedModel 代码实现进行了重构。

参考

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages