Spaces:
Sleeping
Sleeping
hoduyquocbao
commited on
Commit
•
a0546fe
1
Parent(s):
0d17543
update code feature
Browse files- app.py +4 -2
- checkpoint.py +10 -10
app.py
CHANGED
@@ -24,7 +24,7 @@ Demo này giới thiệu [`meta-llama/Llama-3.2-3B-Instruct`](https://huggingfac
|
|
24 |
|
25 |
MAX_MAX_NEW_TOKENS = 2048 # Số token tối đa có thể tạo ra
|
26 |
DEFAULT_MAX_NEW_TOKENS = 1024 # Số token tạo ra mặc định
|
27 |
-
MAX_INPUT_TOKEN_LENGTH = int(os.getenv("MAX_INPUT_TOKEN_LENGTH", "
|
28 |
|
29 |
# Xác định thiết bị sử dụng (GPU nếu có, ngược lại CPU)
|
30 |
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
|
@@ -272,7 +272,7 @@ def handle_functions(function_call: Dict[str, Any], prompt: str, chat_history: L
|
|
272 |
|
273 |
# ---------------------------- Giao Diện Gradio ---------------------------- #
|
274 |
|
275 |
-
@spaces.GPU(duration=
|
276 |
def generate(
|
277 |
message: str,
|
278 |
chat_history: List[Tuple[str, str]],
|
@@ -287,6 +287,8 @@ def generate(
|
|
287 |
"""
|
288 |
# Thông báo về việc phân tích đầu vào
|
289 |
yield "🔍 Đang phân tích truy vấn của bạn..."
|
|
|
|
|
290 |
|
291 |
# Xác định hàm nào sẽ được gọi dựa trên tin nhắn của người dùng
|
292 |
function_call = process_query(message)
|
|
|
24 |
|
25 |
MAX_MAX_NEW_TOKENS = 2048 # Số token tối đa có thể tạo ra
|
26 |
DEFAULT_MAX_NEW_TOKENS = 1024 # Số token tạo ra mặc định
|
27 |
+
MAX_INPUT_TOKEN_LENGTH = int(os.getenv("MAX_INPUT_TOKEN_LENGTH", "128000")) # Độ dài token tối đa cho đầu vào
|
28 |
|
29 |
# Xác định thiết bị sử dụng (GPU nếu có, ngược lại CPU)
|
30 |
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
|
|
|
272 |
|
273 |
# ---------------------------- Giao Diện Gradio ---------------------------- #
|
274 |
|
275 |
+
@spaces.GPU(duration=20, queue=False)
|
276 |
def generate(
|
277 |
message: str,
|
278 |
chat_history: List[Tuple[str, str]],
|
|
|
287 |
"""
|
288 |
# Thông báo về việc phân tích đầu vào
|
289 |
yield "🔍 Đang phân tích truy vấn của bạn..."
|
290 |
+
|
291 |
+
continuous_training(max_epochs=3)
|
292 |
|
293 |
# Xác định hàm nào sẽ được gọi dựa trên tin nhắn của người dùng
|
294 |
function_call = process_query(message)
|
checkpoint.py
CHANGED
@@ -26,7 +26,7 @@ train_dataset = split_dataset['train']
|
|
26 |
validation_dataset = split_dataset['test']
|
27 |
|
28 |
# Tiền Xử Lý Văn Bản
|
29 |
-
@spaces.GPU(duration=
|
30 |
def preprocess_function(examples):
|
31 |
passages = [passage.lower().strip() for passage in examples['passage']]
|
32 |
return {'passage': passages}
|
@@ -42,7 +42,7 @@ tokenizer = AutoTokenizer.from_pretrained(model_name)
|
|
42 |
if tokenizer.pad_token is None:
|
43 |
tokenizer.pad_token = tokenizer.eos_token
|
44 |
|
45 |
-
@spaces.GPU(duration=
|
46 |
def tokenize_function(examples):
|
47 |
return tokenizer(
|
48 |
examples['passage'],
|
@@ -55,7 +55,7 @@ tokenized_train = processed_train.map(tokenize_function, batched=True)
|
|
55 |
tokenized_validation = processed_validation.map(tokenize_function, batched=True)
|
56 |
|
57 |
# Thêm trường 'labels'
|
58 |
-
@spaces.GPU(duration=
|
59 |
def add_labels(examples):
|
60 |
examples['labels'] = examples['input_ids'].copy()
|
61 |
return examples
|
@@ -107,9 +107,9 @@ training_args = TrainingArguments(
|
|
107 |
weight_decay=0.01,
|
108 |
logging_steps=50, # Giảm số bước logging
|
109 |
evaluation_strategy="steps", # Đánh giá sau mỗi vài bước
|
110 |
-
eval_steps=
|
111 |
save_strategy="steps", # Lưu checkpoint sau mỗi vài bước
|
112 |
-
save_steps=
|
113 |
save_total_limit=5, # Giới hạn số lượng checkpoint lưu trữ
|
114 |
fp16=True,
|
115 |
report_to="none",
|
@@ -134,7 +134,7 @@ trainer = Trainer(
|
|
134 |
)
|
135 |
|
136 |
# Định Nghĩa Hàm Huấn Luyện với Decorator @spaces.GPU
|
137 |
-
@spaces.GPU(duration=
|
138 |
def run_training():
|
139 |
# Kiểm tra nếu có checkpoint
|
140 |
checkpoints = [os.path.join(CHECKPOINT_DIR, d) for d in os.listdir(CHECKPOINT_DIR) if d.startswith('checkpoint')]
|
@@ -150,7 +150,7 @@ def run_training():
|
|
150 |
return "Huấn luyện hoàn tất hoặc đã tiếp tục từ checkpoint."
|
151 |
|
152 |
# Hàm Tự Động Hóa Việc Gọi Lặp Lại `run_training`
|
153 |
-
@spaces.GPU(duration=
|
154 |
def continuous_training(max_epochs=3):
|
155 |
current_epoch = 0
|
156 |
while current_epoch < max_epochs:
|
@@ -169,6 +169,6 @@ def continuous_training(max_epochs=3):
|
|
169 |
# Chờ một khoảng thời gian trước khi gọi lại (tùy thuộc vào yêu cầu của hệ thống)
|
170 |
time.sleep(1) # Thời gian chờ có thể điều chỉnh
|
171 |
|
172 |
-
# Chạy quá trình huấn luyện liên tục
|
173 |
-
if __name__ == "__main__":
|
174 |
-
|
|
|
26 |
validation_dataset = split_dataset['test']
|
27 |
|
28 |
# Tiền Xử Lý Văn Bản
|
29 |
+
@spaces.GPU(duration=20, queue=False)
|
30 |
def preprocess_function(examples):
|
31 |
passages = [passage.lower().strip() for passage in examples['passage']]
|
32 |
return {'passage': passages}
|
|
|
42 |
if tokenizer.pad_token is None:
|
43 |
tokenizer.pad_token = tokenizer.eos_token
|
44 |
|
45 |
+
@spaces.GPU(duration=20, queue=False)
|
46 |
def tokenize_function(examples):
|
47 |
return tokenizer(
|
48 |
examples['passage'],
|
|
|
55 |
tokenized_validation = processed_validation.map(tokenize_function, batched=True)
|
56 |
|
57 |
# Thêm trường 'labels'
|
58 |
+
# @spaces.GPU(duration=20, queue=False)
|
59 |
def add_labels(examples):
|
60 |
examples['labels'] = examples['input_ids'].copy()
|
61 |
return examples
|
|
|
107 |
weight_decay=0.01,
|
108 |
logging_steps=50, # Giảm số bước logging
|
109 |
evaluation_strategy="steps", # Đánh giá sau mỗi vài bước
|
110 |
+
eval_steps=50, # Đánh giá sau mỗi 100 bước
|
111 |
save_strategy="steps", # Lưu checkpoint sau mỗi vài bước
|
112 |
+
save_steps=50, # Lưu checkpoint sau mỗi 100 bước
|
113 |
save_total_limit=5, # Giới hạn số lượng checkpoint lưu trữ
|
114 |
fp16=True,
|
115 |
report_to="none",
|
|
|
134 |
)
|
135 |
|
136 |
# Định Nghĩa Hàm Huấn Luyện với Decorator @spaces.GPU
|
137 |
+
@spaces.GPU(duration=20, queue=False)
|
138 |
def run_training():
|
139 |
# Kiểm tra nếu có checkpoint
|
140 |
checkpoints = [os.path.join(CHECKPOINT_DIR, d) for d in os.listdir(CHECKPOINT_DIR) if d.startswith('checkpoint')]
|
|
|
150 |
return "Huấn luyện hoàn tất hoặc đã tiếp tục từ checkpoint."
|
151 |
|
152 |
# Hàm Tự Động Hóa Việc Gọi Lặp Lại `run_training`
|
153 |
+
@spaces.GPU(duration=20, queue=False)
|
154 |
def continuous_training(max_epochs=3):
|
155 |
current_epoch = 0
|
156 |
while current_epoch < max_epochs:
|
|
|
169 |
# Chờ một khoảng thời gian trước khi gọi lại (tùy thuộc vào yêu cầu của hệ thống)
|
170 |
time.sleep(1) # Thời gian chờ có thể điều chỉnh
|
171 |
|
172 |
+
# # Chạy quá trình huấn luyện liên tục
|
173 |
+
# if __name__ == "__main__":
|
174 |
+
# continuous_training(max_epochs=3)
|