File size: 2,642 Bytes
c225265
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
45
46
47
48
49
import gradio as gr
from transformers import pipeline

# Load the model as a translation pipeline
translator = pipeline("translation_en_to_he", model="guymorlan/LostInTranslation")
description_text="<div style='direction: rtl;'>הכניסו שם של סרט באנגלית כדי לשבש אותו ללא היכ.. כלומר לתרגם אותו לעברית 😈</div>"

explanation = """
<div dir='rtl'>
<p>נוצר על ידי <a href="mailto:guy.mor@mail.huji.ac.il">גיא מור-לן</a>.</p>

<h3>שיטות פיענוח (Decoding Methods)</h3>
<p>שיטת הפיענוח קובעת כיצד מחוללים טקסט באמצעות מודל גנרטיבי. יש הרבה שיטות, אבל כאן בחרתי בשתי שיטות נפוצות והגדרתי אותן באופן שיוביל לתרגומים מגוונים יחסית.</p>

<h4>חיפוש אלומה (Beam Search)</h4>
<p>Beam search is performed with 20 beams, 5 beam groups, and a diversity penalty of 10.0 to induce more diverse translations.</p>

<h4>דגימה (Sampling)</h4>
<p>Nucleus sampling is performed with a top-p of 0.5 and a temperature of 1.8. This method generates wilder translations, but also more nonsense.</p>
</div>
"""

def translate(title, method):
    if "אלומה" in method:
        # Beam search
        translations = translator(title, num_return_sequences=10, num_beams=20, num_beam_groups=5, diversity_penalty=10.0)
    else:
        # Sampling
        translations = translator(title, num_return_sequences=10, do_sample=True, top_k=0, top_p=0.5, temperature=1.8)
    
    # Extract just the translated text
    translations_text = [t['translation_text'] for t in translations]
    # Convert list of translations to a HTML string with rtl text direction
    translations_html = "<div dir='rtl'><ol>" + "".join(f"<li>{t}</li>" for t in translations_text) + "</ol></div>"
    return translations_html

# Define Gradio interface
iface = gr.Interface(
    fn=translate, 
    inputs=[gr.inputs.Textbox(lines=1, label="כותר", placeholder="Batman's Gun"), gr.Radio(["⚡ חיפוש אלומה", "💥 דגימה"], value="⚡ חיפוש אלומה", label="שיטת פיענוח", info="אם אתם רוצים להתפרע, תבחרו ב-💥 דגימה. מומלץ לנסות את שתי השיטות.")], 
    outputs=gr.outputs.HTML(label="Translated Titles"),
    title="🎬🔄💩 Lost In Translation",
    description=description_text,
    allow_flagging='never',
    examples=[["Batman's Gun", "דגימה"], ["Once Upon A Time in Hollywood", "חיפוש אלומה"]],
    article=explanation)

# Launch the interface
iface.launch()