Views
No views yet

transformers with pip: pip install transformers, or install transformers from source. transformers branch. The process of merging a fast tokenizer for PhoBERT is in the discussion, as mentioned in this pull request. If users would like to utilize the fast tokenizer, the users might install transformers as follows:git clone --single-branch --branch fast_tokenizers_BARTpho_PhoBERT_BERTweet https://github.com/datquocnguyen/transformers.git
cd transformers
pip3 install -e .requirements :pip3 install -r requirements.txt| Model | #params | Arch. | Max length | Backbone | Training data |
|---|---|---|---|---|---|
tkhangg0910/viconbert-base | 135M | base | 256 | PhoBERT-base | ViConWSD |
tkhangg0910/viconbert-large | 370M | large | 256 | PhoBERT-large | ViConWSD |
code1import logging
2from typing import Optional, Tuple
3import re
4from transformers import AutoModel, PhobertTokenizerFast,AutoTokenizer
5import torch.nn.functional as F
6
7from utils.span_extractor import SpanExtractor
8from utils.process_data import text_normalize
9import torch
10
11model = AutoModel.from_pretrained(
12 "tkhangg0910/viconbert-base",
13 trust_remote_code=True,
14 ignore_mismatched_sizes=True
15)
16tokenizer = AutoTokenizer.from_pretrained("tkhangg0910/viconbert-base", use_fast=True)
17
18span_ex =SpanExtractor(tokenizer)
19
20def pipeline(query, target):
21 query_norm=text_normalize(query)
22 tokenized_query = tokenizer(query_norm,return_tensors="pt").to(device)
23 span_idx = span_ex.get_span_indices(query_norm, target)
24 span =torch.Tensor(span_idx).unsqueeze(0).to(device)
25 model.eval()
26 query_vec = model(tokenized_query, span)
27 return query_vec
28
29# Example: Homonyms: "Khoan"
30query_1 = "Tôi đang khoan."
31target_1 = "Khoan"
32query_vec_1 = pipeline(query_1, target_1)
33
34query_2 = "khoan này bị mất mũi khoan."
35target_2 = "khoan"
36query_vec_2 = pipeline(query_2, target_2)
37
38query_3 = "Khoan là việc rất tiện lợi."
39target_3 = "Khoan"
40query_vec_3 = pipeline(query_3, target_3)
41
42
43def cosine_similarity(vec1, vec2):
44 return F.cosine_similarity(vec1, vec2, dim=1).item()
45
46
47sim_1 = cosine_similarity(query_vec_1, query_vec_3)
48sim_2 = cosine_similarity(query_vec_2, query_vec_3)
49
50print(f"Similarity between 1: {target_1} and 3: {target_3}: {sim_1:.4f}")
51print(f"Similarity between 2: {target_2} and 3:{target_3}: {sim_2:.4f}")

