Il s'agit d'une bibliothèque de modèles que j'ai partiellement personnalisée et modifiée sur la base de la bibliothèque Pytorch_pretrain_bert de Meelfy.
L'intention initiale de ce projet est de satisfaire la commodité des expériences personnelles, donc elle ne sera pas mise à jour fréquemment.
Installer:
pip install torchKbertPour des exemples d'utilisation typiques, veuillez vous référer au répertoire des exemples officiels.
Si vous souhaitez utiliser le codage de position de décomposition hiérarchique pour que Bert puisse traiter le texte long, passez simplement le paramètre is_hierarchical=True dans model . Les exemples sont les suivants:
model = BertModel(config)
encoder_outputs, _ = model(input_ids, token_ids, input_mask, is_hierarchical=True)
Si vous souhaitez utiliser le Wobert chinois en fonction de la granularité des mots, passez simplement de nouveaux paramètres lors de la construction de l'objet BertTokenizer :
from torchKbert.tokenization import BertTokenizer
tokenizer = BertTokenizer(
vocab_file=vocab_path,
pre_tokenizer=lambda s: jieba.cut(s, HMM=False))
Lorsqu'il n'est pas passé, la valeur par défaut None . Lors de la participation aux mots, la valeur par défaut doit être utilisée comme mots. Si vous souhaitez restaurer l'utilisation des unités de mots, passez simplement dans le nouveau paramètre pre_tokenize=False quand tokenize :
tokenzier.tokenize(text, pre_tokenize=False)
J'ai déjà écrit pytorch_pretraind_bert à Meelfy, et il est très pratique d'appeler des modèles pré-entraînés ou d'effectuer un réglage fin. Plus tard, en raison des besoins personnels, je voulais réécrire une version qui prend en charge le codage de position de décomposition hiérarchique.
Bert4keras de Sushen a implémenté une telle fonction. Mais parce que j'ai l'habitude d'utiliser Pytorch, je n'ai pas utilisé de keras depuis longtemps, donc je prévois d'en réécrire un seul.