Norod78 commited on
Commit
1e4e2fa
1 Parent(s): b170533

Hebrew-Fakypedia

Browse files
Files changed (3) hide show
  1. README.md +33 -5
  2. app.py +65 -0
  3. requirements.txt +7 -0
README.md CHANGED
@@ -1,12 +1,40 @@
1
  ---
2
- title: Hebrew Fakypedia
3
- emoji: 😻
4
- colorFrom: red
5
  colorTo: pink
6
  sdk: gradio
7
- sdk_version: 5.0.1
8
  app_file: app.py
9
  pinned: false
 
10
  ---
11
 
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ title: פייקיפדיה
3
+ emoji: 📚
4
+ colorFrom: blue
5
  colorTo: pink
6
  sdk: gradio
7
+ sdk_version: 4.40.0
8
  app_file: app.py
9
  pinned: false
10
+ license: apache-2.0
11
  ---
12
 
13
+ בדקו את המדריך לתצורה בכתובת https://huggingface.co/docs/hub/spaces-config-reference
14
+
15
+ # פייקיפדיה
16
+
17
+ פייקיפדיה הוא מרחב Gradio המשתמש במודל דו-לשוני (אנגלית ועברית) ליצירת ערכים מטופשים בסגנון ויקיפדיה. המודל מבוסס על [SmolLM-135M-FakyPedia-EngHeb](https://huggingface.co/Norod78/SmolLM-135M-FakyPedia-EngHeb).
18
+
19
+ ## תכונות
20
+
21
+ - יצירת ערכי "ויקיפדיה" מטופשים בעברית ובאנגלית
22
+ - תמיכה בכתיבה מימין לשמאל עבור טקסט בעברית
23
+ - אפשרות להזנת כותרת או יצירת כותרת אקראית
24
+
25
+ ## שימוש
26
+
27
+ 1. הזינו כותרת לערך בתיבת הטקסט או השאירו ריק לקבלת כותרת אקראית.
28
+ 2. לחצו על כפתור "שלח" כדי לייצר את הערך המטופש.
29
+ 3. הערך שנוצר יוצג בתיבת התוצאה מתחת.
30
+
31
+ ## טכנולוגיות
32
+
33
+ - Gradio
34
+ - PyTorch
35
+ - Transformers
36
+ - Hugging Face Spaces
37
+
38
+ ## רישיון
39
+
40
+ פרויקט זה מורשה תחת רישיון Apache 2.0.
app.py ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import torch
3
+ from transformers import AutoTokenizer, AutoModelForCausalLM
4
+ import spaces
5
+
6
+ title = "פייקיפדיה"
7
+
8
+ DESCRIPTION = """\
9
+ # צרו ערכים מטופשים
10
+ מבוסס על [מודל דו-לשוני](https://huggingface.co/Norod78/SmolLM-135M-FakyPedia-EngHeb) התומך בעברית ובאנגלית המייצר טקסט מופרך בסגנון ויקיפדיה.
11
+ לחצו על כפתור "שלח" כדי ליצור ערך "ויקיפדיה" מטופש ו/או מזויף בהתבסס על הכותרת שהזנתם
12
+ """
13
+
14
+ article = """\
15
+ מודל זה הרחיב את הטוקנייזר של
16
+ [SmolLM-135M-Instruct](https://huggingface.co/HuggingFaceTB/SmolLM-135M-Instruct)
17
+ המודל כּוּיַּיל לפייקיפדיה ע״י [דורון אדלר](https://linktr.ee/Norod78)
18
+
19
+ """
20
+
21
+ CUDA_AVAILABLE = torch.cuda.is_available()
22
+ device = torch.device("cuda" if CUDA_AVAILABLE else "cpu")
23
+
24
+ #model_id = "../SmolLM-135M-FakyPedia-EngHeb"
25
+ model_id = "Norod78/SmolLM-135M-FakyPedia-EngHeb"
26
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
27
+ tokenizer.pad_token_id = tokenizer.eos_token_id
28
+ bos_token = tokenizer.bos_token
29
+ model = AutoModelForCausalLM.from_pretrained(model_id).to(device)
30
+ model.generation_config.pad_token_id = tokenizer.pad_token_id
31
+
32
+ torch.manual_seed(7777)
33
+
34
+ @spaces.GPU
35
+ def generate_fakypedia(article_title: str):
36
+ with torch.no_grad():
37
+ result = ""
38
+ string_to_tokenize= f"{bos_token}\\%{article_title}"
39
+ input_ids = tokenizer(string_to_tokenize, return_tensors="pt").input_ids.to(device)
40
+ sample_outputs = model.generate(input_ids, do_sample=True,repetition_penalty=1.1, temperature=0.50, max_length=144, num_return_sequences=3)
41
+ if article_title == None or len(article_title) == 0:
42
+ result += f"# תוצאות פייקיפדיה עם כותרות אקראיות \n"
43
+ article_title = ""
44
+ else:
45
+ result += f"# תוצאות פייקיפדיה עבור \"{article_title}\" \n"
46
+ for i, sample_output in enumerate(sample_outputs):
47
+ decoded_output = tokenizer.decode(sample_output, skip_special_tokens=True)
48
+ decoded_output = decoded_output.replace(f"\%{article_title}", f"## {i+1} {article_title}").replace("\%", " ").replace("\\n", " \n")
49
+ decoded_output = decoded_output.replace("## \n", "\n")
50
+ result += "{}\n".format(decoded_output)
51
+ return result
52
+
53
+ demo = gr.Interface(
54
+ generate_fakypedia,
55
+ inputs=gr.Textbox(lines=1, label="הזינו כותרת לערך (או השאירו ריק לכותרת אקראית)", rtl=True),
56
+ outputs=gr.Markdown(label="ערך פייקיפדיה שנוצר", rtl=True),
57
+ title=title,
58
+ description=DESCRIPTION,
59
+ article=article,
60
+ examples=["Hugging face", "תפוח אדמה עם חרדה חברתית", "דורון אדלר", "עליית המכונות"],
61
+ allow_flagging="never",
62
+ )
63
+
64
+ demo.queue()
65
+ demo.launch()
requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ gradio
2
+ accelerate
3
+ torch
4
+ transformers
5
+ tokenizers
6
+ spaces
7
+ numpy