refactor: rename teacher/student to optimizer/target, remove best skills, fix slow update

- Rename teacher -> optimizer, student -> target across all code, configs, docs, prompts
- CLI: --teacher_model -> --optimizer_model, --student_model -> --target_model
- Remove best_skill files, keep only initial skills
- Fix slow update gate (force write into skill)
- Fix SLOW_UPDATE marker stripping
- Remove deep_reflect and meta_reflect mechanisms
- Update .env.example with export prefix and azure_cli docs
- Add endpoint empty validation in azure_openai.py

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Cuzyoung
2026-05-24 19:15:03 +00:00
parent 6e165d5347
commit 4a1b984d87
70 changed files with 1083 additions and 2068 deletions
+9 -6
View File
@@ -86,8 +86,8 @@ class TrainingManager:
if line and not line.startswith("#") and "=" in line:
k, v = line.split("=", 1)
env[k] = v
# Propagate TEACHER_* to base AZURE_OPENAI_* when base is missing,
# so student/default endpoints inherit from teacher config.
# Propagate OPTIMIZER_* to base AZURE_OPENAI_* when base is missing,
# so target/default endpoints inherit from optimizer config.
_propagate = [
("ENDPOINT", ""), ("API_VERSION", ""), ("AUTH_MODE", ""),
("MANAGED_IDENTITY_CLIENT_ID", ""), ("AD_SCOPE", ""),
@@ -95,9 +95,9 @@ class TrainingManager:
]
for suffix, _ in _propagate:
base_key = f"AZURE_OPENAI_{suffix}"
teacher_key = f"TEACHER_AZURE_OPENAI_{suffix}"
if not env.get(base_key) and env.get(teacher_key):
env[base_key] = env[teacher_key]
optimizer_key = f"OPTIMIZER_AZURE_OPENAI_{suffix}"
if not env.get(base_key) and env.get(optimizer_key):
env[base_key] = env[optimizer_key]
try:
proc = subprocess.Popen(
@@ -398,7 +398,7 @@ def build_ui():
use_slow_update = gr.Checkbox(value=True,
label="Slow Update (epoch-boundary momentum)")
use_meta_skill = gr.Checkbox(value=True,
label="Meta Skill (cross-epoch teacher memory)")
label="Meta Skill (cross-epoch optimizer memory)")
use_gate = gr.Checkbox(value=True,
label="Gate (validation-based accept/reject)")
@@ -533,10 +533,13 @@ def main():
parser = argparse.ArgumentParser(description="SkillOpt WebUI")
parser.add_argument("--port", type=int, default=7860)
parser.add_argument("--share", action="store_true")
parser.add_argument("--host", type=str, default="0.0.0.0",
help="Server host. Use 0.0.0.0 for public access.")
args = parser.parse_args()
app = build_ui()
app.launch(
server_name=args.host,
server_port=args.port,
share=args.share,
theme=gr.themes.Soft(primary_hue="indigo"),