POMAHSLS commited on
Commit
fe8993c
·
verified ·
1 Parent(s): 6fa424c

create app.py

Browse files
Files changed (1) hide show
  1. app.py +58 -0
app.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import pipeline, AutoTokenizer, AutoModelForMaskedLM
3
+
4
+ # Завантаження додатково навченої моделі
5
+ model_path = 'H:/FinetunningExam/ModelBert' # Переконайтеся, що шлях до моделі правильний
6
+ tokenizer = AutoTokenizer.from_pretrained(model_path)
7
+ model = AutoModelForMaskedLM.from_pretrained(model_path)
8
+
9
+ # Ініціалізація пайплайну для завдання fill-mask
10
+ fill_mask_pipeline = pipeline("fill-mask", model=model, tokenizer=tokenizer)
11
+
12
+ # Функція для передбачень
13
+ def predict_masked_sentence_with_replacement(sentence):
14
+ """
15
+ Передбачає токени для маскованого слова та замінює [MASK] на найкращий токен.
16
+ Аргументи:
17
+ sentence (str): Текст із токеном [MASK]
18
+ Повертає:
19
+ str: Повне речення із заміною та список передбачень з імовірностями
20
+ """
21
+ if "[MASK]" not in sentence:
22
+ return "Будь ласка, додайте [MASK] у речення для передбачення."
23
+
24
+ # Отримуємо передбачення
25
+ predictions = fill_mask_pipeline(sentence)
26
+ top_prediction = predictions[0] # Беремо найкращий результат
27
+
28
+ # Замінюємо [MASK] на найкращий токен
29
+ predicted_sentence = sentence.replace("[MASK]", top_prediction["token_str"])
30
+
31
+ # Формуємо рядок для виводу
32
+ prediction_list = "\n".join([
33
+ f"{pred['token_str']} (score: {pred['score']:.4f})"
34
+ for pred in predictions
35
+ ])
36
+
37
+ # Повертаємо підсумкове речення та список передбачень
38
+ return f"Передбачене речення:\n{predicted_sentence}\n\nМожливі слова:\n{prediction_list}"
39
+
40
+ # Створення інтерфейсу Gradio
41
+ interface = gr.Interface(
42
+ fn=predict_masked_sentence_with_replacement, # Функція обробки
43
+ inputs=gr.Textbox(
44
+ lines=3,
45
+ placeholder="Введіть речення з [MASK], наприклад:\nThe [MASK] is responsible for interpreting the Constitution."
46
+ ),
47
+ outputs="text",
48
+ title="BERT_LAW",
49
+ description="Введіть текст з токеном [MASK], і модель замінить його на кращий варіант.",
50
+ examples=[
51
+ ["The [MASK] is responsible for interpreting the Constitution."],
52
+ ["A valid contract requires an offer, [MASK], and consideration."],
53
+ ["Copyright infringement occurs when [MASK] works are copied without permission."]
54
+ ]
55
+ )
56
+
57
+ # Запуск застосунку
58
+ interface.launch()