Bert工程化代码优化
2023-12-26 18:30:03
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("?。、!,")
文章来源:https://blog.csdn.net/yyw794/article/details/135206437
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!