File size: 1,238 Bytes
b75af72
9bc983f
 
b75af72
9bc983f
 
 
 
b75af72
9bc983f
 
 
 
 
 
 
 
b75af72
9bc983f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b75af72
9bc983f
b75af72
9bc983f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import gradio as gr
import torch
from transformers import BertForMaskedLM, BertTokenizer

# Modell und Tokenizer laden mit force_download=True
model_name = "bert-base-uncased"
model = BertForMaskedLM.from_pretrained(model_name, force_download=True)
tokenizer = BertTokenizer.from_pretrained(model_name, force_download=True)

# Inferenz-Funktion definieren
def inference(input_text):
    if "[MASK]" not in input_text:
        return "Error: The input text must contain the [MASK] token."
    
    # Tokenisierung
    inputs = tokenizer(input_text, return_tensors="pt")
    mask_token_index = torch.where(inputs["input_ids"] == tokenizer.mask_token_id)[1]

    # Vorhersage
    with torch.no_grad():
        outputs = model(**inputs)
        logits = outputs.logits

    # Wahrscheinlichsten Token für [MASK] finden
    mask_token_logits = logits[0, mask_token_index, :]
    top_token = torch.topk(mask_token_logits, 1, dim=1).indices[0].tolist()

    # Vorhersage in den Text einfügen
    predicted_token = tokenizer.decode(top_token)
    result_text = input_text.replace("[MASK]", predicted_token, 1)
    
    return result_text

# Gradio Interface definieren
iface = gr.Interface(
    fn=inference,

    iface.launch(server_port=7862)