menouar commited on
Commit
c7b9e3f
Β·
1 Parent(s): 6674f1f
Files changed (2) hide show
  1. app.py +1 -1
  2. utils/notebook_generator.py +9 -9
app.py CHANGED
@@ -235,7 +235,7 @@ with gr.Blocks(css=css, theme=gr.themes.Soft(text_size='lg', font=["monospace"],
235
  gr.Markdown('''
236
  This space generates a **Jupyter Notebook file (.ipynb)** πŸ“”βš™οΈ that guides you through the
237
  entire process of **supervised fine-tuning** of a raw Large Language Model (**LLM**) 🧠 on a chosen dataset in
238
- the **Conversational format**. The process is facilitated by an intuitive **User Interface (UI)** πŸ‘†πŸ’»:
239
  ''', elem_classes=["center_text"])
240
  with dashed_row():
241
  with centered_column():
 
235
  gr.Markdown('''
236
  This space generates a **Jupyter Notebook file (.ipynb)** πŸ“”βš™οΈ that guides you through the
237
  entire process of **supervised fine-tuning** of a raw Large Language Model (**LLM**) 🧠 on a chosen dataset in
238
+ the **Conversational format**. The process is facilitated by an intuitive **User Interface (UI)** πŸ‘†πŸ’»**:**
239
  ''', elem_classes=["center_text"])
240
  with dashed_row():
241
  with centered_column():
utils/notebook_generator.py CHANGED
@@ -37,7 +37,7 @@ except ImportError:
37
 
38
  def create_install_flash_attention(cells: list):
39
  text_cell = nbf.v4.new_markdown_cell(
40
- "# Installing Flash Attention")
41
  text_cell1 = nbf.v4.new_markdown_cell("Installing Flash Attention to reduce the memory "
42
  "and runtime cost of the attention layer, and improve the performance of "
43
  "the model training. Learn more at [FlashAttention]("
@@ -59,7 +59,7 @@ import torch; assert torch.cuda.get_device_capability()[0] >= 8, 'Hardware not s
59
 
60
  def create_login_hf_cells(cells: list, should_login: bool = False, model_name: Optional[str] = None):
61
  text_cell = nbf.v4.new_markdown_cell(
62
- "# Login to HF")
63
 
64
  text_1 = "Login with our `HF_TOKEN` in order to push the finetuned model to `huggingface_hub`."
65
 
@@ -219,7 +219,7 @@ a 24GB GPU for fine-tuning.
219
 
220
 
221
  def create_lora_config_cells(cells: list, r: int, alpha: int, dropout: float, bias: str):
222
- text_cell = nbf.v4.new_markdown_cell("# Setting LoraConfig")
223
  code = f"""
224
  from peft import LoraConfig
225
 
@@ -249,7 +249,7 @@ def create_training_args_cells(cells: list, epochs, max_steps, logging_steps, pe
249
  save_strategy, gradient_accumulation_steps, gradient_checkpointing,
250
  learning_rate, max_grad_norm, warmup_ratio, lr_scheduler_type, output_dir,
251
  report_to, seed):
252
- text_cell = nbf.v4.new_markdown_cell("# Setting the TrainingArguments")
253
  to_install = None
254
  if report_to == "all":
255
  to_install = "azure_ml comet_ml mlflow tensorboard wandb"
@@ -298,7 +298,7 @@ args = TrainingArguments(
298
 
299
  def create_sft_trainer_cells(cells: list, max_seq_length, packing):
300
  text_cell = nbf.v4.new_markdown_cell(
301
- """# Setting the Supervised Finetuning Trainer (`SFTTrainer`)
302
 
303
  This `SFTTrainer` is a wrapper around the `transformers.Trainer` class and inherits all of its attributes and methods.
304
  The trainer takes care of properly initializing the `PeftModel`.
@@ -362,7 +362,7 @@ trainer.save_model()
362
 
363
  def create_free_gpu_cells(cells: list):
364
  text_cell = nbf.v4.new_markdown_cell(
365
- """# Free the GPU Memory to Prepare Merging Lora Adapters with the Base Model
366
  """)
367
 
368
  code = f"""
@@ -379,7 +379,7 @@ torch.cuda.empty_cache()
379
 
380
  def create_merge_lora_cells(cells: list, output_dir):
381
  text_cell = nbf.v4.new_markdown_cell(
382
- """# Merging LoRa Adapters into the Original Model
383
 
384
  While utilizing `LoRA`, we focus on training the adapters rather than the entire model. Consequently, during the
385
  model saving process, only the `adapter weights` are preserved, not the complete model. If we wish to save the
@@ -411,7 +411,7 @@ tokenizer.save_pretrained("{output_dir}")
411
 
412
  def merge_model_cells(cells: list, output_dir):
413
  text_cell = nbf.v4.new_markdown_cell(
414
- f"# Copy all result folders from 'temp_{output_dir}' to '{output_dir}'")
415
 
416
  code = f"""
417
  import os
@@ -433,7 +433,7 @@ for item in os.listdir(source_folder):
433
 
434
 
435
  def push_to_hub_cells(cells: list, output_dir):
436
- text = f"# Pushing '{output_dir}' to our Hugging Face account."
437
  code = f"""
438
  from huggingface_hub import HfApi, HfFolder, Repository
439
 
 
37
 
38
  def create_install_flash_attention(cells: list):
39
  text_cell = nbf.v4.new_markdown_cell(
40
+ "## Installing Flash Attention")
41
  text_cell1 = nbf.v4.new_markdown_cell("Installing Flash Attention to reduce the memory "
42
  "and runtime cost of the attention layer, and improve the performance of "
43
  "the model training. Learn more at [FlashAttention]("
 
59
 
60
  def create_login_hf_cells(cells: list, should_login: bool = False, model_name: Optional[str] = None):
61
  text_cell = nbf.v4.new_markdown_cell(
62
+ "## Login to HF")
63
 
64
  text_1 = "Login with our `HF_TOKEN` in order to push the finetuned model to `huggingface_hub`."
65
 
 
219
 
220
 
221
  def create_lora_config_cells(cells: list, r: int, alpha: int, dropout: float, bias: str):
222
+ text_cell = nbf.v4.new_markdown_cell("## Setting LoraConfig")
223
  code = f"""
224
  from peft import LoraConfig
225
 
 
249
  save_strategy, gradient_accumulation_steps, gradient_checkpointing,
250
  learning_rate, max_grad_norm, warmup_ratio, lr_scheduler_type, output_dir,
251
  report_to, seed):
252
+ text_cell = nbf.v4.new_markdown_cell("## Setting the TrainingArguments")
253
  to_install = None
254
  if report_to == "all":
255
  to_install = "azure_ml comet_ml mlflow tensorboard wandb"
 
298
 
299
  def create_sft_trainer_cells(cells: list, max_seq_length, packing):
300
  text_cell = nbf.v4.new_markdown_cell(
301
+ """## Setting the Supervised Finetuning Trainer (`SFTTrainer`)
302
 
303
  This `SFTTrainer` is a wrapper around the `transformers.Trainer` class and inherits all of its attributes and methods.
304
  The trainer takes care of properly initializing the `PeftModel`.
 
362
 
363
  def create_free_gpu_cells(cells: list):
364
  text_cell = nbf.v4.new_markdown_cell(
365
+ """### Free the GPU Memory to Prepare Merging `LoRA` Adapters with the Base Model
366
  """)
367
 
368
  code = f"""
 
379
 
380
  def create_merge_lora_cells(cells: list, output_dir):
381
  text_cell = nbf.v4.new_markdown_cell(
382
+ """## Merging LoRa Adapters into the Original Model
383
 
384
  While utilizing `LoRA`, we focus on training the adapters rather than the entire model. Consequently, during the
385
  model saving process, only the `adapter weights` are preserved, not the complete model. If we wish to save the
 
411
 
412
  def merge_model_cells(cells: list, output_dir):
413
  text_cell = nbf.v4.new_markdown_cell(
414
+ f"### Copy all result folders from 'temp_{output_dir}' to '{output_dir}'")
415
 
416
  code = f"""
417
  import os
 
433
 
434
 
435
  def push_to_hub_cells(cells: list, output_dir):
436
+ text = f"## Pushing '{output_dir}' to our Hugging Face account."
437
  code = f"""
438
  from huggingface_hub import HfApi, HfFolder, Repository
439