hoduyquocbao commited on
Commit
a0546fe
1 Parent(s): 0d17543

update code feature

Browse files
Files changed (2) hide show
  1. app.py +4 -2
  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", "4096")) # Độ 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,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=15, queue=False)
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=180, queue=False)
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=180, queue=False)
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=180, queue=False)
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=100, # Đá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=100, # 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,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=180, 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,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=180, queue=False)
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
- continuous_training(max_epochs=3)
 
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)