Spaces:
Paused
Paused
Commit History
-
Split train and tool simulator modules; mastery curriculum and grader workflow nudge.
raj921Move GRPO helpers into train_*.py, tool dispatch into server/support_ops_tools.py, add reward_log mastery script and curriculum state wiring, export mastery helpers, and extend tests.5e75745 -
Fix OpenEnv and HF training flows
raj921c94b44c -
Rename files to DriftShield: notebooks, server module, kernel folder
raj921Renames (git mv, history preserved): support_ops_colab.ipynb -> driftshield_colab.ipynb support_ops_kaggle.ipynb -> driftshield_kaggle.ipynb support_ops_colab_gemma4.ipynb -> driftshield_colab_gemma4.ipynb server/support_ops_environment.py -> server/driftshield_environment.py kernels/support-ops-grpo/ -> kernels/driftshield-grpo/ kernels/.../support_ops_kaggle.ipynb -> .../driftshield_kaggle.ipynb Reference fixes: - server/app.py: import switched to driftshield_environment. - tests/test_driftshield.py, tests/test_reproducibility.py: import switched. - tests/conftest.py: aliases now register 'support_ops_env.server.driftshield_environment' AND keep the legacy 'support_ops_env.server.support_ops_environment' alias for backwards compat with any external code/notebooks still on the old path. - scripts/push_kaggle_kernel.sh: KERNEL_DIR -> kernels/driftshield-grpo, NOTEBOOK -> driftshield_kaggle.ipynb. - kernels/driftshield…f73ecfc -
Rebrand: drop 'Support Ops' user-facing text; add DriftShield* aliases; tighten README
raj921Audited every reference. Two layers: User-facing text (renamed everywhere): - 'Support Ops Env' / 'SupportOps Control Tower' / 'first-line support' / 'SaaS support triage' -> DriftShield language - Files touched: README.md, docs/BENCHMARK_BRIEF.md, train.py, train_gemma4.py, eval_compare.py, audit.py, plot_rewards.py, inference.py (SYS_PROMPT + BENCHMARK constant), server/support_ops_environment.py (env metadata name + description), __init__.py (module docstring). - docs/BENCHMARK_BRIEF.md rewritten end to end (was stale and still talked about 3 support-triage tasks). Python identifiers (kept as legacy slugs to avoid breaking the live HF Space URL https://huggingface.co/spaces/raj23211/support-ops-env and every notebook import): - Package still importable as 'support_ops_env'. - Classes still named SupportOpsEnv / SupportOpsAction / etc. - Added DriftShield-branded aliases in __init__.py: DriftShieldEnv = SupportOpsEnv DriftShieldAction…88930f5 -
DriftShield Phase B: 4 new grader components, 5 new penalties, negation-aware forbidden phrases
raj921graders.py - forbidden_phrase_hits(): negation-aware substring check; replaces the legacy bug where 'no credit has been issued yet' false-positive matched the forbidden assertion 'credit has been issued' (which had been zeroing the schema-drift baseline at 0.58). - New components (neutral=1.0 on irrelevant tasks): drift_recovery, injection_resistance, tool_trust, safety - New penalties (zero on legacy tasks): followed_prompt_injection_penalty, trusted_poisoned_tool_penalty, memory_poisoning_penalty, unsafe_action_penalty, schema_retry_spam_penalty - Score formula: legacy weighted base unchanged + small drift_bonus from the 4 new components - sum(penalties). server/support_ops_environment.py - _reply_contains_hard_fail() uses the same negation-aware helper. tests/test_driftshield.py (NEW, 19 tests) - D1 catalogue + curriculum aliases - Recoverable schema drift (legacy returns ok=False with hint; corrected call surfaces the invoice fact) - ops.get_recommendati…1106681 -
DriftShield Phase A: D1 collection, 4 runtime-failure tasks, ops.get_recommendation, recoverable schema drift
raj921Hard pivot: D1 (DriftShield) is now the default collection. - models.py: CollectionId += 'D1', ToolName += 'ops.get_recommendation' - tasks.py: 4 new TaskSpecs (prompt injection, schema drift, poisoned memory, lying tool), D1 in COLLECTIONS, get_curriculum_task_ids('driftshield' / 'driftshield_easy') - server/support_ops_environment.py: * billing.get_invoice supports recoverable schema drift on ds_schema_drift_refund (legacy invoice_id returns ok=False with recovery hint; (account_ref, invoice_ref) succeeds). * ops.get_recommendation returns task-specific adversarial recommendations and surfaces a fact tag so graders can see the consult. * Default collection switched from C4 to D1. - inference.py: scripted strong DriftShield baselines for reproducibility tests. - __init__.py: export DRIFTSHIELD_TASK_IDS. Smoke: 14/14 pytest pass; baselines score ~0.97 on 3/4 DS tasks (0.58 on schema drift due to current repeat_penalty on the failed legacy call — to be addressed in Pha…62cef60
-
feat: GRPO training stack (Qwen3 + Unsloth opt-in, curriculum, eval, audit)
raj921Adds the full RL training path for the Support Ops Env: * train.py: Qwen GRPO trainer with --difficulty curriculum, --use-unsloth opt-in path (unsloth/Qwen3.5-4B, bf16 LoRA), --load-in-4bit for T4, --use-vllm opt-in for A100. Default model Qwen/Qwen3-4B-Instruct-2507. * train_gemma4.py: experimental Gemma 4 path via TRL environment_factory. * tasks.py + __init__.py: curriculum helpers (easy/medium/hard/expert/all). * eval_compare.py: baseline-vs-trained evaluator -> JSON + Markdown table. * audit.py: reward-hack audit -> trajectory dumps + flag counts. * plot_rewards.py: 4-panel reward curves (total / components / penalty / rolling pass-rate). Reads v1 or v2 CSV schema. * pyproject.toml: [train] + [gemma] + [unsloth] optional-deps. * support_ops_colab.ipynb + support_ops_colab_gemma4.ipynb: full Colab notebooks with curriculum + Unsloth toggle + 4-bit fallback. * README.md: judge-facing rewrite aligned with the hackathon self-serve guide (tl;dr table, curriculum, reward desi…ffa6d1d
-
fix: align inference.py env vars with spec and clean up repo
raj921- Use LOCAL_IMAGE_NAME, API_BASE_URL, MODEL_NAME, HF_TOKEN per spec - Default API_BASE_URL to HF router, MODEL_NAME to Qwen2.5-72B - Fix README doc links from absolute to relative paths - Remove tracked __pycache__ files, add outputs/ to gitignore Made-with: Cursor9913b18 -
fix: app.py main check for openenv validate
raj92196d4692
-
clean rewrite: shorter vars, no comments, same logic
raj921cbe3d95