Spaces:
Running
Running
adjust generation time
Browse files
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)
|
21 |
except:
|
22 |
-
mem_limit = 16.0
|
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.
|
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 |
-
|
|
|
|
|
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.
|
130 |
-
gr.Slider(
|
|
|
|
|
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.
|
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, và 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, và max_length 75-100 cho câu dài và đa dạng hơn.",
|
143 |
allow_flagging="never"
|
144 |
)
|
145 |
|