Spaces:
Runtime error
Runtime error
Commit
·
613d2ec
1
Parent(s):
0911d2b
Updated inference.py
Browse files- apps/inference.py +61 -7
apps/inference.py
CHANGED
@@ -5,21 +5,25 @@ from transformers import AutoTokenizer, AutoModelForMaskedLM
|
|
5 |
from transformers import pipeline
|
6 |
import os
|
7 |
import json
|
|
|
|
|
|
|
|
|
8 |
|
9 |
|
10 |
@st.cache(show_spinner=False, persist=True)
|
11 |
def load_model(masked_text, model_name):
|
12 |
|
13 |
-
|
14 |
-
if model_name == "flax-community/roberta-hindi":
|
15 |
-
from_flax = True
|
16 |
-
model = AutoModelForMaskedLM.from_pretrained(model_name, from_flax=from_flax)
|
17 |
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
|
|
|
|
18 |
MASK_TOKEN = tokenizer.mask_token
|
|
|
19 |
masked_text = masked_text.replace("<mask>", MASK_TOKEN)
|
20 |
-
nlp = pipeline("fill-mask", model=model, tokenizer=tokenizer)
|
21 |
result_sentence = nlp(masked_text)
|
22 |
-
|
|
|
23 |
|
24 |
|
25 |
def app():
|
@@ -28,7 +32,7 @@ def app():
|
|
28 |
unsafe_allow_html=True,
|
29 |
)
|
30 |
st.markdown(
|
31 |
-
"This demo uses
|
32 |
)
|
33 |
|
34 |
target_text_path = "./mlm_custom/mlm_targeted_text.csv"
|
@@ -51,6 +55,56 @@ def app():
|
|
51 |
],
|
52 |
["flax-community/roberta-hindi"],
|
53 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
if st.button("Fill the Mask!"):
|
55 |
with st.spinner("Filling the Mask..."):
|
56 |
models = []
|
|
|
5 |
from transformers import pipeline
|
6 |
import os
|
7 |
import json
|
8 |
+
import random
|
9 |
+
|
10 |
+
with open("config.json") as f:
|
11 |
+
cfg = json.loads(f.read())
|
12 |
|
13 |
|
14 |
@st.cache(show_spinner=False, persist=True)
|
15 |
def load_model(masked_text, model_name):
|
16 |
|
17 |
+
model = AutoModelForMaskedLM.from_pretrained(model_name)
|
|
|
|
|
|
|
18 |
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
19 |
+
nlp = pipeline("fill-mask", model=model, tokenizer=tokenizer)
|
20 |
+
|
21 |
MASK_TOKEN = tokenizer.mask_token
|
22 |
+
|
23 |
masked_text = masked_text.replace("<mask>", MASK_TOKEN)
|
|
|
24 |
result_sentence = nlp(masked_text)
|
25 |
+
|
26 |
+
return result_sentence[0]["sequence"], result_sentence[0]["token_str"]
|
27 |
|
28 |
|
29 |
def app():
|
|
|
32 |
unsafe_allow_html=True,
|
33 |
)
|
34 |
st.markdown(
|
35 |
+
"This demo uses multiple hindi transformer models for Masked Language Modelling (MLM)."
|
36 |
)
|
37 |
|
38 |
target_text_path = "./mlm_custom/mlm_targeted_text.csv"
|
|
|
55 |
],
|
56 |
["flax-community/roberta-hindi"],
|
57 |
)
|
58 |
+
|
59 |
+
models_list = list(cfg["models"].keys())
|
60 |
+
|
61 |
+
models = st.multiselect(
|
62 |
+
"Choose models",
|
63 |
+
models_list,
|
64 |
+
models_list[0],
|
65 |
+
)
|
66 |
+
|
67 |
+
target_text_path = "./mlm_custom/mlm_targeted_text.csv"
|
68 |
+
target_text_df = pd.read_csv(target_text_path)
|
69 |
+
|
70 |
+
texts = target_text_df["text"]
|
71 |
+
|
72 |
+
st.sidebar.title("Hindi MLM")
|
73 |
+
|
74 |
+
pick_random = st.sidebar.checkbox("Pick any random text")
|
75 |
+
|
76 |
+
results_df = pd.DataFrame(columns=["Model Name", "Filled Token", "Filled Text"])
|
77 |
+
|
78 |
+
model_names = []
|
79 |
+
filled_masked_texts = []
|
80 |
+
filled_tokens = []
|
81 |
+
|
82 |
+
if pick_random:
|
83 |
+
random_text = texts[random.randint(0, texts.shape[0] - 1)]
|
84 |
+
masked_text = st.text_area("Please type a masked sentence to fill", random_text)
|
85 |
+
else:
|
86 |
+
select_text = st.sidebar.selectbox("Select any of the following text", texts)
|
87 |
+
masked_text = st.text_area("Please type a masked sentence to fill", select_text)
|
88 |
+
|
89 |
+
# pd.set_option('max_colwidth',30)
|
90 |
+
if st.button("Fill the Mask!"):
|
91 |
+
with st.spinner("Filling the Mask..."):
|
92 |
+
|
93 |
+
for selected_model in models:
|
94 |
+
|
95 |
+
filled_sentence, filled_token = load_model(masked_text, cfg["models"][selected_model])
|
96 |
+
model_names.append(selected_model)
|
97 |
+
filled_tokens.append(filled_token)
|
98 |
+
filled_masked_texts.append(filled_sentence)
|
99 |
+
|
100 |
+
results_df["Model Name"] = model_names
|
101 |
+
results_df["Filled Token"] = filled_tokens
|
102 |
+
results_df["Filled Text"] = filled_masked_texts
|
103 |
+
|
104 |
+
st.table(results_df)
|
105 |
+
|
106 |
+
|
107 |
+
|
108 |
if st.button("Fill the Mask!"):
|
109 |
with st.spinner("Filling the Mask..."):
|
110 |
models = []
|