Bert工程化代码优化

tokenizer优化

使用BertTokenizerFast提速

使用 BertTokenizerFast 取代 BertTokenizer

BertTokenizerFast是基于Rust语言开发的版本,性能提高10倍(官方宣传和实测结果一致)

from transformers import BertTokenizerFast

tokenizer高效使用

使用transformers的padding和truncation模式,可以大大节省我们的截断和补齐的预处理代码。

padding模式

from transformers.file_utils import PaddingStrategy

如果文本长度支持弹性输入/动态长度

padding=PaddingStrategy.LONGEST

如果文本长度固定,需要补齐到模型的最大长度

padding=PaddingStrategy.MAX_LENGTH

truncation模式

from transformers.tokenization_utils_base import TruncationStrategy

默认使用这种即可

truncation=TruncationStrategy.LONGEST_FIRST

使用示例:

单句模式

例如sbert,分类模型等

encoded_input = tokenizer(texts, padding=padding,  truncation=truncation, max_length=model_max_len)  #, return_tensors='np'

双句模式

例如排序模型等

第一句统一放入texts的list中

第二句统一放入text_pair的list中

tokenizer会自动解决2句的拼接处理,这样可以极大的节省预处理代码。

encoded_input = tokenizer(text=texts, text_pair=text_pairs, padding=padding, truncation=truncation, max_length=model_max_len) #, return_tensors='np'

其他

query = query.strip("?").strip("。").strip("、").strip("!").strip(",")

优化为

query = query.strip("?。、!,")

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值