VietCat commited on
Commit
19763d1
·
1 Parent(s): 535d128

adjust generation time

Browse files
Files changed (1) hide show
  1. app.py +18 -10
app.py CHANGED
@@ -14,12 +14,11 @@ import psutil
14
  def print_system_resources():
15
  memory = psutil.virtual_memory()
16
  cpu_percent = psutil.cpu_percent(interval=1)
17
- # Get container memory limit (for Docker)
18
  try:
19
  with open('/sys/fs/cgroup/memory/memory.limit_in_bytes', 'r') as f:
20
- mem_limit = min(int(f.read().strip()) / 1e9, 16.0) # Cap at 16GB for HFS free
21
  except:
22
- mem_limit = 16.0 # Fallback for HFS free
23
  print(f"Total physical memory (psutil): {memory.total/1e9:.2f} GB")
24
  print(f"Container memory limit: {mem_limit:.2f} GB")
25
  print(f"CPU usage: {cpu_percent}%")
@@ -65,13 +64,13 @@ def clean_text(text):
65
  text = re.sub(r'\s+', ' ', text).strip()
66
  return text
67
 
68
- def generate_text(prompt, temperature=0.5, max_new_tokens=30):
69
  try:
70
  start_time = time.time()
 
 
71
  print_system_resources()
72
  # Fixed parameters
73
- max_length = 50
74
- top_k = 20
75
  repetition_penalty = 1.2
76
  # Log parameters
77
  print(f"Parameters: max_length={max_length}, temperature={temperature}, max_new_tokens={max_new_tokens}, top_k={top_k}, repetition_penalty={repetition_penalty}")
@@ -103,7 +102,9 @@ def generate_text(prompt, temperature=0.5, max_new_tokens=30):
103
  pad_token_id=tokenizer.pad_token_id,
104
  eos_token_id=eos_token_ids
105
  )
106
- print(f"Generation time: {time.time() - gen_time:.2f} seconds")
 
 
107
  generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
108
  print(f"Raw output: {generated_text}")
109
  print(f"Generated token count: {len(outputs[0])}")
@@ -113,6 +114,11 @@ def generate_text(prompt, temperature=0.5, max_new_tokens=30):
113
  print(f"Total time: {elapsed_time:.2f} seconds")
114
  # Clear memory cache
115
  gc.collect()
 
 
 
 
 
116
  return cleaned_text
117
  except Exception as e:
118
  return f"Error generating text: {e}"
@@ -126,12 +132,14 @@ demo = gr.Interface(
126
  placeholder="Viết gì đó bằng tiếng Việt...",
127
  value="Hôm nay là một ngày đẹp trời" # Default text
128
  ),
129
- gr.Slider(0.3, 0.7, value=0.5, step=0.1, label="Nhiệt độ (Temperature, 0.3-0.5 cho tốc độ nhanh, 0.6-0.7 cho đa dạng hơn)"),
130
- gr.Slider(20, 50, value=30, step=5, label="Số token mới tối đa (max_new_tokens, 20-30 cho tốc độ nhanh, 40-50 cho câu dài hơn)")
 
 
131
  ],
132
  outputs="text",
133
  title="Sinh văn bản tiếng Việt",
134
- description="Dùng mô hình GPT-2 Vietnamese từ NlpHUST để sinh văn bản tiếng Việt. Chọn temperature 0.3-0.5 và max_new_tokens 20-30 để đạt thời gian <2 giây. Dùng temperature 0.6-0.7 và max_new_tokens 40-50 cho câu dài và đa dạng hơn.",
135
  allow_flagging="never"
136
  )
137
 
 
14
  def print_system_resources():
15
  memory = psutil.virtual_memory()
16
  cpu_percent = psutil.cpu_percent(interval=1)
 
17
  try:
18
  with open('/sys/fs/cgroup/memory/memory.limit_in_bytes', 'r') as f:
19
+ mem_limit = min(int(f.read().strip()) / 1e9, 16.0)
20
  except:
21
+ mem_limit = 16.0
22
  print(f"Total physical memory (psutil): {memory.total/1e9:.2f} GB")
23
  print(f"Container memory limit: {mem_limit:.2f} GB")
24
  print(f"CPU usage: {cpu_percent}%")
 
64
  text = re.sub(r'\s+', ' ', text).strip()
65
  return text
66
 
67
+ def generate_text(prompt, temperature=0.3, max_new_tokens=35, top_k=15, max_length=40):
68
  try:
69
  start_time = time.time()
70
+ # Debug memory before generation
71
+ print("Memory before generation:")
72
  print_system_resources()
73
  # Fixed parameters
 
 
74
  repetition_penalty = 1.2
75
  # Log parameters
76
  print(f"Parameters: max_length={max_length}, temperature={temperature}, max_new_tokens={max_new_tokens}, top_k={top_k}, repetition_penalty={repetition_penalty}")
 
102
  pad_token_id=tokenizer.pad_token_id,
103
  eos_token_id=eos_token_ids
104
  )
105
+ gen_duration = time.time() - gen_time
106
+ print(f"Generation time: {gen_duration:.2f} seconds")
107
+ print(f"Tokens per second: {len(outputs[0]) / gen_duration:.2f}")
108
  generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
109
  print(f"Raw output: {generated_text}")
110
  print(f"Generated token count: {len(outputs[0])}")
 
114
  print(f"Total time: {elapsed_time:.2f} seconds")
115
  # Clear memory cache
116
  gc.collect()
117
+ if torch.cuda.is_available():
118
+ torch.cuda.empty_cache()
119
+ # Debug memory after generation
120
+ print("Memory after generation:")
121
+ print_system_resources()
122
  return cleaned_text
123
  except Exception as e:
124
  return f"Error generating text: {e}"
 
132
  placeholder="Viết gì đó bằng tiếng Việt...",
133
  value="Hôm nay là một ngày đẹp trời" # Default text
134
  ),
135
+ gr.Slider(0.1, 0.7, value=0.3, step=0.1, label="Nhiệt độ (Temperature, 0.1-0.3 cho tốc độ nhanh và mạch lạc, 0.4-0.7 cho đa dạng hơn)"),
136
+ gr.Slider(25, 100, value=35, step=5, label="Số token mới tối đa (max_new_tokens, 25-50 cho tốc độ nhanh, 75-100 cho câu dài hơn)"),
137
+ gr.Slider(5, 30, value=15, step=5, label="Top K (top_k, 5-15 cho văn bản mạch lạc, 20-30 cho đa dạng hơn)"),
138
+ gr.Slider(30, 100, value=40, step=5, label="Độ dài tối đa (max_length, 30-50 cho tốc độ nhanh, 75-100 cho câu dài hơn)")
139
  ],
140
  outputs="text",
141
  title="Sinh văn bản tiếng Việt",
142
+ description="Dùng mô hình GPT-2 Vietnamese từ NlpHUST để sinh văn bản tiếng Việt. Chọn temperature 0.1-0.3, max_new_tokens 25-50, top_k 5-15,max_length 30-50 để đạt thời gian <2 giây và văn bản mạch lạc. Dùng temperature 0.4-0.7, max_new_tokens 75-100, top_k 20-30, max_length 75-100 cho câu dài và đa dạng hơn.",
143
  allow_flagging="never"
144
  )
145