@@ -17,35 +17,58 @@ https://huggingface.co/junnyu/roformer_chinese_base
1717## 使用
1818``` python
1919import torch
20- from roformer import RoFormerModel, RoFormerTokenizer
20+ from roformer import RoFormerModel, RoFormerTokenizer, TFRoFormerModel
2121tokenizer = RoFormerTokenizer.from_pretrained(" junnyu/roformer_chinese_base" )
22- model = RoFormerModel.from_pretrained(" junnyu/roformer_chinese_base" )
22+ pt_model = RoFormerModel.from_pretrained(" junnyu/roformer_chinese_base" )
23+ tf_model = TFRoFormerModel.from_pretrained(" junnyu/roformer_chinese_base" ,
24+ from_pt = True )
2325text = " 这里基本保留了唐宋遗留下来的坊巷格局和大量明清古建筑,其中各级文保单位29处,被誉为“里坊制度的活化石”“明清建筑博物馆”!"
24- inputs = tokenizer(text, return_tensors = " pt" )
26+ pt_inputs = tokenizer(text, return_tensors = " pt" )
27+ tf_inputs = tokenizer(text, return_tensors = " tf" )
2528with torch.no_grad():
26- outputs = model(** inputs).last_hidden_state
27- print (outputs.shape)
29+ pt_outputs = pt_model(** pt_inputs).last_hidden_state
30+ print (pt_outputs.shape)
31+ tf_outputs = tf_model(** tf_inputs, training = False ).last_hidden_state
32+ print (tf_outputs.shape)
2833```
2934## MLM测试
3035``` python
3136import torch
32- from roformer import RoFormerForMaskedLM, RoFormerTokenizer
37+ import tensorflow as tf
38+ from roformer import RoFormerForMaskedLM, RoFormerTokenizer, TFRoFormerForMaskedLM
3339text = " 今天[MASK]很好,我[MASK]去公园玩。"
3440tokenizer = RoFormerTokenizer.from_pretrained(" junnyu/roformer_chinese_base" )
35- model = RoFormerForMaskedLM.from_pretrained(" junnyu/roformer_chinese_base" )
36- inputs = tokenizer(text, return_tensors = " pt" )
41+ pt_model = RoFormerForMaskedLM.from_pretrained(" junnyu/roformer_chinese_base" )
42+ tf_model = TFRoFormerForMaskedLM.from_pretrained(
43+ " junnyu/roformer_chinese_base" , from_pt = True )
44+ pt_inputs = tokenizer(text, return_tensors = " pt" )
45+ tf_inputs = tokenizer(text, return_tensors = " tf" )
46+ # pytorch
3747with torch.no_grad():
38- outputs = model (** inputs ).logits[0 ]
39- outputs_sentence = " "
48+ pt_outputs = pt_model (** pt_inputs ).logits[0 ]
49+ pt_outputs_sentence = " pytorch: "
4050for i, id in enumerate (tokenizer.encode(text)):
4151 if id == tokenizer.mask_token_id:
42- tokens = tokenizer.convert_ids_to_tokens(outputs [i].topk(k = 5 )[1 ])
43- outputs_sentence += " [" + " ||" .join(tokens) + " ]"
52+ tokens = tokenizer.convert_ids_to_tokens(pt_outputs [i].topk(k = 5 )[1 ])
53+ pt_outputs_sentence += " [" + " ||" .join(tokens) + " ]"
4454 else :
45- outputs_sentence += " " .join(
55+ pt_outputs_sentence += " " .join(
4656 tokenizer.convert_ids_to_tokens([id ], skip_special_tokens = True ))
47- print (outputs_sentence)
48- # 今天[天气||天||心情||阳光||空气]很好,我[想||要||打算||准备||喜欢]去公园玩。
57+ print (pt_outputs_sentence)
58+ # tf
59+ tf_outputs = tf_model(** tf_inputs, training = False ).logits[0 ]
60+ tf_outputs_sentence = " tf: "
61+ for i, id in enumerate (tokenizer.encode(text)):
62+ if id == tokenizer.mask_token_id:
63+ tokens = tokenizer.convert_ids_to_tokens(
64+ tf.math.top_k(tf_outputs[i], k = 5 )[1 ])
65+ tf_outputs_sentence += " [" + " ||" .join(tokens) + " ]"
66+ else :
67+ tf_outputs_sentence += " " .join(
68+ tokenizer.convert_ids_to_tokens([id ], skip_special_tokens = True ))
69+ print (tf_outputs_sentence)
70+ # pytorch: 今天[天气||天||心情||阳光||空气]很好,我[想||要||打算||准备||喜欢]去公园玩。
71+ # tf: 今天[天气||天||心情||阳光||空气]很好,我[想||要||打算||准备||喜欢]去公园玩。
4972```
5073
5174## 手动权重转换
0 commit comments