File size: 1,323 Bytes
58e9804
dd624c6
d214e02
dd624c6
 
 
 
 
 
 
 
fa8c16e
dd624c6
 
 
 
 
d214e02
58e9804
dd624c6
a9aa842
dd624c6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
cbfc7ad
1d2d2ac
 
 
 
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
39
40
41
42
43
44
import spaces
from transformers import AutoModelForCausalLM, AutoTokenizer
import gradio as grad


model_id = "oddadmix/arabic-summarization"

model = AutoModelForCausalLM.from_pretrained(
    model_id,
    device_map="auto",
    torch_dtype="bfloat16",
#    attn_implementation="flash_attention_2"
)
tokenizer = AutoTokenizer.from_pretrained(model_id)




@spaces.GPU
def summarize(text):
    prompt = "Summarize the following text: \n\n " + text
    input_ids = tokenizer.apply_chat_template(
        [{"role": "user", "content": prompt}],
        add_generation_prompt=True,
        return_tensors="pt",
        tokenize=True,
    ).to(model.device)
    
    output = model.generate(
        input_ids,
        do_sample=True,
        temperature=0.3,
        min_p=0.15,
        repetition_penalty=1.05,
        max_new_tokens=512,
    )
    
    response = tokenizer.decode(output[0], skip_special_tokens=False)
    return response.split("<|im_start|>assistant")[1]

input_textbox = grad.Textbox(lines=5, placeholder="إكتب النص الذي تريد تلخيصه", label="Input Text")
output_textbox = grad.Textbox(lines=5, label="النص الملخص")
grad.Interface(summarize, inputs=[input_textbox], outputs=output_textbox, title="تلخيص النصوص",
    description="تلخيص النصوص.").launch()