ROMA / debug_sft_singlegpu.py
Houssem0's picture
ROMA + GH200 reproducible Docker layer
e5c09aa verified
Raw
History Blame Contribute Delete
2.65 kB
import yaml
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
import sys
import torch
# import wandb
# wandb.init(project="test", name="hello-world", notes="labmda")
try:
import llamafactory
except ImportError:
project_root = os.path.abspath(os.path.dirname(__file__))
src_path = os.path.join(project_root, "src")
if os.path.isdir(src_path):
print(f"Adding LLaMA-Factory src directory to sys.path: {src_path}")
sys.path.insert(0, src_path)
else:
print(f"Warning: LLaMA-Factory src directory not found at {src_path}. "
"Ensure LLaMA-Factory is installed or PYTHONPATH is set correctly.")
from llamafactory.train.tuner import run_exp
def main_debug_exp(yaml_config_path: str):
"""
Loads configuration from a YAML file and calls run_exp for single-GPU debugging.
"""
print(f"Loading configuration from: {yaml_config_path}")
with open(yaml_config_path, 'r', encoding='utf-8') as f:
config_dict = yaml.safe_load(f)
# print("--- Initial Configuration from YAML ---")
# for key, value in config_dict.items():
# print(f"{key}: {value}")
# print("--------------------------------------")
# --- Prepare for Single-GPU, Non-Distributed Execution ---
# config_dict["local_rank"] = -1
if "use_ray" in config_dict and config_dict["use_ray"]:
print("Warning: 'use_ray' is true in YAML. Forcing to False for single-GPU direct debug.")
config_dict["use_ray"] = False
if "deepspeed" in config_dict and config_dict["deepspeed"]:
print(f"Warning: 'deepspeed' found in YAML ({config_dict['deepspeed']}). Forcing to None for single-GPU debug.")
config_dict["deepspeed"] = None
callbacks_list = None
run_exp(
args=config_dict,
callbacks=callbacks_list
)
print("run_exp finished or debugger detached.")
if __name__ == "__main__":
yaml_file_path = "yamls/train_ds.yaml"
if not os.path.exists(yaml_file_path):
print(f"Error: YAML configuration file not found at '{yaml_file_path}'")
print("Please update the 'yaml_file_path' variable in this script.")
sys.exit(1)
# Optional: Pass YAML path as a command-line argument
# if len(sys.argv) > 1:
# yaml_file_path_cli = sys.argv[1]
# if os.path.exists(yaml_file_path_cli):
# yaml_file_path = yaml_file_path_cli
# else:
# print(f"Warning: YAML path from CLI '{yaml_file_path_cli}' not found. Using hardcoded path.")
main_debug_exp(yaml_file_path)