53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
from typing import Optional
|
|
|
|
import typer
|
|
|
|
from rdagent.app.finetune.llm.conf import FT_RD_SETTING
|
|
from rdagent.components.coder.finetune.conf import get_ft_env
|
|
from rdagent.utils.agent.tpl import T
|
|
|
|
app = typer.Typer(help="Run LLM fine-tuning environment commands.")
|
|
|
|
|
|
@app.command()
|
|
def run(
|
|
dataset: str,
|
|
model: str,
|
|
cmd: str,
|
|
local_path: str = "./",
|
|
mount_path: str | None = None,
|
|
):
|
|
"""
|
|
Launch the LLM fine-tuning environment for a specific dataset and model, then run the
|
|
provided command.
|
|
|
|
Example:
|
|
1) start the container:
|
|
dotenv run -- python -m rdagent.app.utils.ws_ft alpaca_gpt4_zh qwen2-7b "sleep 3600" --local-path your_workspace
|
|
|
|
2) then run the following command to enter the latest container:
|
|
- docker exec -it `docker ps --filter 'status=running' -l --format '{{.Names}}'` bash
|
|
Or you can attach to the container by specifying the container name (find it in the run info)
|
|
- docker exec -it sweet_robinson bash
|
|
|
|
Arguments:
|
|
dataset: The dataset name for fine-tuning.
|
|
model: The base model name for fine-tuning.
|
|
cmd: The shell command or script entry point to execute inside
|
|
the environment.
|
|
"""
|
|
# Don't set time limitation and always disable cache
|
|
env = get_ft_env(
|
|
running_timeout_period=None,
|
|
enable_cache=False,
|
|
)
|
|
|
|
if mount_path is not None:
|
|
env.conf.mount_path = mount_path
|
|
|
|
env.run(entry=cmd, local_path=local_path)
|
|
|
|
|
|
if __name__ == "__main__": # pragma: no cover
|
|
app()
|