Leo8613 commited on
Commit
a0d99a3
·
verified ·
1 Parent(s): 0335b37

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -33
app.py CHANGED
@@ -1,56 +1,60 @@
1
  import gradio as gr
2
  from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
3
 
4
- # Charger le modèle et le tokenizer
5
- tokenizer = AutoTokenizer.from_pretrained("NousResearch/Hermes-2-Pro-Llama-3-8B")
6
- model = AutoModelForCausalLM.from_pretrained("NousResearch/Hermes-2-Pro-Llama-3-8B")
7
 
8
- # Créer un pipeline pour la génération de texte
9
  text_gen_pipeline = pipeline("text-generation", model=model, tokenizer=tokenizer)
10
 
11
- # Fonction pour générer du texte
12
- def generate_text(prompt, max_length=100, temperature=0.7, top_p=0.9, top_k=50, repetition_penalty=1.2):
13
  generated_text = text_gen_pipeline(prompt,
14
  max_length=max_length,
15
  temperature=temperature,
16
  top_p=top_p,
17
  top_k=top_k,
18
- repetition_penalty=repetition_penalty, # Pénalisation de répétition pour éviter les répétitions
 
19
  num_return_sequences=1)
20
  return generated_text[0]['generated_text']
21
 
22
- # Interface Gradio
23
  with gr.Blocks() as demo:
24
- gr.Markdown("## Text Generation with Hermes 2 - Llama 3 8B")
25
-
26
- # Zone de saisie pour le prompt utilisateur
27
  prompt_input = gr.Textbox(label="Input (Prompt)", placeholder="Enter your prompt here...")
28
-
29
- # Curseur pour la longueur maximale du texte
30
- max_length_input = gr.Slider(minimum=10, maximum=200, value=100, step=10, label="Maximum Length")
31
-
32
- # Curseur pour la température (contrôle de la créativité)
33
- temperature_input = gr.Slider(minimum=0.1, maximum=1.0, value=0.7, step=0.1, label="Temperature (creativity)")
34
-
35
- # Curseur pour top_p (échantillonnage par noyau)
36
  top_p_input = gr.Slider(minimum=0.1, maximum=1.0, value=0.9, step=0.1, label="Top-p (nucleus sampling)")
37
-
38
- # Curseur pour top_k (contrôle de la diversité)
39
- top_k_input = gr.Slider(minimum=1, maximum=100, value=50, step=1, label="Top-k (sampling diversity)")
40
-
41
- # Curseur pour la pénalisation de répétition
42
- repetition_penalty_input = gr.Slider(minimum=1.0, maximum=2.0, value=1.2, step=0.1, label="Repetition Penalty")
43
-
44
- # Zone de sortie pour le texte généré
 
 
 
45
  output_text = gr.Textbox(label="Generated Text")
46
-
47
- # Bouton pour générer du texte
48
  generate_button = gr.Button("Generate")
49
-
50
- # Action au clic sur le bouton
51
  generate_button.click(generate_text,
52
- inputs=[prompt_input, max_length_input, temperature_input, top_p_input, top_k_input, repetition_penalty_input],
53
  outputs=output_text)
54
 
55
- # Lancer l'application
56
  demo.launch()
 
1
  import gradio as gr
2
  from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
3
 
4
+ # Load the model and tokenizer
5
+ tokenizer = AutoTokenizer.from_pretrained("unsloth/Llama-3.2-1B")
6
+ model = AutoModelForCausalLM.from_pretrained("unsloth/Llama-3.2-1B")
7
 
8
+ # Use a pipeline for text generation
9
  text_gen_pipeline = pipeline("text-generation", model=model, tokenizer=tokenizer)
10
 
11
+ # Text generation function with stronger penalties and no_repeat_ngram_size
12
+ def generate_text(prompt, max_length=40, temperature=0.8, top_p=0.9, top_k=40, repetition_penalty=1.5, no_repeat_ngram_size=4):
13
  generated_text = text_gen_pipeline(prompt,
14
  max_length=max_length,
15
  temperature=temperature,
16
  top_p=top_p,
17
  top_k=top_k,
18
+ repetition_penalty=repetition_penalty, # Stronger repetition penalty
19
+ no_repeat_ngram_size=no_repeat_ngram_size, # Higher n-gram size to reduce repetition
20
  num_return_sequences=1)
21
  return generated_text[0]['generated_text']
22
 
23
+ # Gradio Interface
24
  with gr.Blocks() as demo:
25
+ gr.Markdown("## Text Generation with Llama 3.2 - 1B")
26
+
27
+ # Input box for user prompt
28
  prompt_input = gr.Textbox(label="Input (Prompt)", placeholder="Enter your prompt here...")
29
+
30
+ # Slider for maximum text length
31
+ max_length_input = gr.Slider(minimum=10, maximum=200, value=40, step=10, label="Maximum Length")
32
+
33
+ # Slider for temperature (controls creativity)
34
+ temperature_input = gr.Slider(minimum=0.1, maximum=1.0, value=0.8, step=0.1, label="Temperature (creativity)")
35
+
36
+ # Slider for top_p (nucleus sampling)
37
  top_p_input = gr.Slider(minimum=0.1, maximum=1.0, value=0.9, step=0.1, label="Top-p (nucleus sampling)")
38
+
39
+ # Slider for top_k (controls diversity)
40
+ top_k_input = gr.Slider(minimum=1, maximum=100, value=40, step=1, label="Top-k (sampling diversity)")
41
+
42
+ # Slider for repetition penalty
43
+ repetition_penalty_input = gr.Slider(minimum=1.0, maximum=2.0, value=1.5, step=0.1, label="Repetition Penalty")
44
+
45
+ # Slider for no_repeat_ngram_size
46
+ no_repeat_ngram_size_input = gr.Slider(minimum=1, maximum=10, value=4, step=1, label="No Repeat N-Gram Size")
47
+
48
+ # Output box for the generated text
49
  output_text = gr.Textbox(label="Generated Text")
50
+
51
+ # Submit button
52
  generate_button = gr.Button("Generate")
53
+
54
+ # Action on button click
55
  generate_button.click(generate_text,
56
+ inputs=[prompt_input, max_length_input, temperature_input, top_p_input, top_k_input, repetition_penalty_input, no_repeat_ngram_size_input],
57
  outputs=output_text)
58
 
59
+ # Launch the app
60
  demo.launch()