|
|
|
|
|
import gradio as gr |
|
import os |
|
import torch |
|
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline |
|
|
|
|
|
CHECKPOINT_PATH= 'scratch_2-nodes_tokenizer_latbert-original_packing_fcocchi/model.safetensors' |
|
CHECKPOINT_PATH= 'itserr/latin_llm_alpha' |
|
|
|
print(f"Loading model from: {CHECKPOINT_PATH}") |
|
tokenizer = AutoTokenizer.from_pretrained(CHECKPOINT_PATH) |
|
model = AutoModelForCausalLM.from_pretrained(CHECKPOINT_PATH) |
|
|
|
description=""" |
|
This is a Latin Language Model (LLM) based on GPT-2 and it was trained on a large corpus of Latin texts and can generate text in Latin. |
|
Please enter a prompt in Latin to generate text. |
|
""" |
|
title= "(L<sup>3</sup>) - Latin Large Language Model" |
|
article= "hello world ..." |
|
examples= ['Accidere ex una scintilla', 'Audacter calumniare,', 'Consolatium misero comites'] |
|
logo_image= '/homes/fcocchi/itserr/itserr_latin_llm/ITSERR_row_logo.png' |
|
|
|
def generate_text(prompt): |
|
if torch.cuda.is_available(): device = torch.device("cuda") |
|
else: |
|
device = torch.device("cpu") |
|
print("No GPU available") |
|
|
|
print("***** Generate *****") |
|
text_generator = pipeline("text-generation", model=model, tokenizer=tokenizer, device=device) |
|
|
|
generated_text = text_generator(prompt, max_length=50, do_sample=True, temperature=1.0, repetition_penalty=2.0, truncation=True) |
|
return generated_text[0]['generated_text'] |
|
|
|
custom_css = """ |
|
#logo { |
|
display: block; |
|
margin-left: auto; |
|
margin-right: auto; |
|
width: 512px; |
|
height: 256px; |
|
} |
|
""" |
|
|
|
with gr.Blocks(css=custom_css) as demo: |
|
gr.Image(logo_image, elem_id="logo") |
|
gr.Markdown(f"<h1 style='text-align: center;'>{title}</h1>") |
|
gr.Markdown(description) |
|
|
|
with gr.Row(): |
|
with gr.Column(): |
|
input_text = gr.Textbox(lines=5, placeholder="Enter latin text here...", label="Input Text") |
|
with gr.Column(): |
|
output_text = gr.Textbox(lines=5, placeholder="Output text will appear here...", label="Output Text") |
|
|
|
clean_button = gr.Button("Generate Text") |
|
clean_button.click(fn=generate_text, inputs=input_text, outputs=output_text) |
|
|
|
gr.Examples(examples=examples, inputs=input_text) |
|
gr.Markdown(article) |
|
|
|
demo.launch(share=True) |
|
|
|
|
|
|