forgeenv source snapshot for training job
Browse files
scripts/jobs/train_repair_agent.py
CHANGED
|
@@ -78,11 +78,22 @@ _sh([
|
|
| 78 |
"torch==2.5.1", "torchvision==0.20.1",
|
| 79 |
])
|
| 80 |
# `--no-deps` on openenv-core: it pins a different transformers/torch
|
| 81 |
-
# stack that we don't want.
|
|
|
|
|
|
|
| 82 |
_sh([
|
| 83 |
sys.executable, "-m", "pip", "install", "--no-deps",
|
| 84 |
"openenv-core>=0.2.0",
|
| 85 |
])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 86 |
_sh([
|
| 87 |
sys.executable, "-m", "pip", "install",
|
| 88 |
"trl==1.2.0", "peft", "accelerate", "datasets",
|
|
|
|
| 78 |
"torch==2.5.1", "torchvision==0.20.1",
|
| 79 |
])
|
| 80 |
# `--no-deps` on openenv-core: it pins a different transformers/torch
|
| 81 |
+
# stack that we don't want. We still need its *runtime* imports:
|
| 82 |
+
# ``import forgeenv`` -> ``ForgeEnvironment`` -> ``openenv.core`` pulls in
|
| 83 |
+
# ``fastmcp`` (and friends) from ``openenv.core.env_server``.
|
| 84 |
_sh([
|
| 85 |
sys.executable, "-m", "pip", "install", "--no-deps",
|
| 86 |
"openenv-core>=0.2.0",
|
| 87 |
])
|
| 88 |
+
_sh([
|
| 89 |
+
sys.executable, "-m", "pip", "install",
|
| 90 |
+
"fastmcp>=3.0.0",
|
| 91 |
+
"gradio>=4.0.0",
|
| 92 |
+
"openai>=2.7.2",
|
| 93 |
+
"tomli>=2.3.0",
|
| 94 |
+
"tomli-w>=1.2.0",
|
| 95 |
+
"websockets>=15.0.1",
|
| 96 |
+
])
|
| 97 |
_sh([
|
| 98 |
sys.executable, "-m", "pip", "install",
|
| 99 |
"trl==1.2.0", "peft", "accelerate", "datasets",
|
scripts/preflight_check.py
CHANGED
|
@@ -75,6 +75,14 @@ def t1_imports() -> str:
|
|
| 75 |
return f"trl={trl.__version__} transformers={transformers.__version__}"
|
| 76 |
|
| 77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 78 |
def t2_dataset_load_and_format() -> str:
|
| 79 |
import datasets as ds
|
| 80 |
|
|
@@ -322,6 +330,7 @@ def t10_find_trainer_state() -> str:
|
|
| 322 |
def main() -> int:
|
| 323 |
print(f"\n=== ForgeEnv preflight (repo: {REPO_ROOT}) ===\n", flush=True)
|
| 324 |
_run("01 imports", t1_imports, required=True)
|
|
|
|
| 325 |
_run("02 dataset load + format", t2_dataset_load_and_format, required=True)
|
| 326 |
_run("03 TRL configs (SFT/GRPO) accept kwargs", t3_trl_configs_accept_our_kwargs, required=True)
|
| 327 |
_run("04 reward fn returns float", t4_reward_function_returns_float, required=True)
|
|
|
|
| 75 |
return f"trl={trl.__version__} transformers={transformers.__version__}"
|
| 76 |
|
| 77 |
|
| 78 |
+
def t1b_openenv_job_extras() -> str:
|
| 79 |
+
"""On HF Jobs we ``pip install openenv-core --no-deps`` then add the
|
| 80 |
+
packages openenv lists as requirements so ``import openenv.core`` works."""
|
| 81 |
+
import fastmcp # noqa: F401
|
| 82 |
+
|
| 83 |
+
return "fastmcp (required by openenv.core.env_server on import)"
|
| 84 |
+
|
| 85 |
+
|
| 86 |
def t2_dataset_load_and_format() -> str:
|
| 87 |
import datasets as ds
|
| 88 |
|
|
|
|
| 330 |
def main() -> int:
|
| 331 |
print(f"\n=== ForgeEnv preflight (repo: {REPO_ROOT}) ===\n", flush=True)
|
| 332 |
_run("01 imports", t1_imports, required=True)
|
| 333 |
+
_run("01b openenv extras (job: after --no-deps)", t1b_openenv_job_extras, required=True)
|
| 334 |
_run("02 dataset load + format", t2_dataset_load_and_format, required=True)
|
| 335 |
_run("03 TRL configs (SFT/GRPO) accept kwargs", t3_trl_configs_accept_our_kwargs, required=True)
|
| 336 |
_run("04 reward fn returns float", t4_reward_function_returns_float, required=True)
|