From bc88283990c0ced92779836310614af8a435b53b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=AE=E6=98=8A?= Date: Tue, 16 Dec 2025 17:42:02 +0800 Subject: [PATCH 01/13] [WIP]init on-policy distillation --- trinity/algorithm/advantage_fn/__init__.py | 4 + .../on_policy_distill_advantage.py | 69 +++++++++++++ trinity/algorithm/algorithm.py | 31 ++++++ trinity/algorithm/policy_loss_fn/__init__.py | 4 + .../importance_sampling_policy_loss.py | 61 ++++++++++++ trinity/common/experience.py | 21 ++++ trinity/common/workflows/__init__.py | 7 ++ .../workflows/on_policy_distill_workflow.py | 99 +++++++++++++++++++ trinity/common/workflows/workflow.py | 33 +++++-- trinity/explorer/workflow_runner.py | 1 + trinity/trainer/verl/utils.py | 2 + 11 files changed, 325 insertions(+), 7 deletions(-) create mode 100644 trinity/algorithm/advantage_fn/on_policy_distill_advantage.py create mode 100644 trinity/algorithm/policy_loss_fn/importance_sampling_policy_loss.py create mode 100644 trinity/common/workflows/on_policy_distill_workflow.py diff --git a/trinity/algorithm/advantage_fn/__init__.py b/trinity/algorithm/advantage_fn/__init__.py index f8349062f1..a7465a81ea 100644 --- a/trinity/algorithm/advantage_fn/__init__.py +++ b/trinity/algorithm/advantage_fn/__init__.py @@ -11,6 +11,9 @@ from trinity.algorithm.advantage_fn.multi_step_grpo_advantage import ( StepWiseGRPOAdvantageFn, ) +from trinity.algorithm.advantage_fn.on_policy_distill_advantage import ( + OnPolicyDistillAdvantage, +) from trinity.algorithm.advantage_fn.opmd_advantage import ( OPMDAdvantageFn, OPMDGroupAdvantage, @@ -40,4 +43,5 @@ "REINFORCEGroupAdvantage", "ASYMREAdvantageFn", "RECGroupedAdvantage", + "OnPolicyDistillAdvantage", ] diff --git a/trinity/algorithm/advantage_fn/on_policy_distill_advantage.py b/trinity/algorithm/advantage_fn/on_policy_distill_advantage.py new file mode 100644 index 0000000000..0e4dad33a1 --- /dev/null +++ b/trinity/algorithm/advantage_fn/on_policy_distill_advantage.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +"""On-Policy Distillation advantage computation. + +Reference: Tinker library's on-policy distillation. + +advantages = -(student_logprobs - teacher_logprobs) + = teacher_logprobs - student_logprobs +""" + +from typing import Dict, Tuple + +from verl import DataProto + +from trinity.algorithm.advantage_fn.advantage_fn import ADVANTAGE_FN, AdvantageFn + + +@ADVANTAGE_FN.register_module("on_policy_distill") +class OnPolicyDistillAdvantage(AdvantageFn): + """Advantage function for on-policy distillation. + + Computes: advantages = kl_coef * (teacher_logprobs - student_logprobs) + + The teacher_logprobs should be stored in Experience.teacher_logprobs + by the workflow during exploration. + """ + + def __init__(self, kl_coef: float = 1.0) -> None: + self.kl_coef = kl_coef + + def __call__(self, exps: DataProto, **kwargs) -> Tuple[DataProto, Dict]: + """Compute advantages from teacher and student logprobs. + + Args: + exps: DataProto containing: + - old_log_probs: student's sampling logprobs [batch, seq] + - teacher_log_probs: teacher's logprobs [batch, seq] + - response_mask: mask for response tokens [batch, seq] + + Returns: + exps: DataProto with advantages and returns added + metrics: Dict with kl and advantage statistics + """ + metrics = {} + + old_log_probs = exps.batch["old_log_probs"] # student sampling logprobs + teacher_log_probs = exps.batch["teacher_log_probs"] + response_mask = exps.batch["response_mask"] + + # advantages = -(student - teacher) = teacher - student + advantages = self.kl_coef * (teacher_log_probs - old_log_probs) + + # Apply mask + advantages = advantages * response_mask + + exps.batch["advantages"] = advantages + exps.batch["returns"] = advantages.clone() + + # Metrics + kl_per_token = old_log_probs - teacher_log_probs + kl_sum = (kl_per_token * response_mask).sum(dim=-1) + metrics["kl/mean"] = kl_sum.mean().item() + metrics["kl/std"] = kl_sum.std().item() if kl_sum.numel() > 1 else 0.0 + metrics["advantages/mean"] = advantages.sum(dim=-1).mean().item() + + return exps, metrics + + @classmethod + def default_args(cls) -> Dict: + return {"kl_coef": 1.0} diff --git a/trinity/algorithm/algorithm.py b/trinity/algorithm/algorithm.py index 4384da7b8e..94807eb386 100644 --- a/trinity/algorithm/algorithm.py +++ b/trinity/algorithm/algorithm.py @@ -384,3 +384,34 @@ def default_config(cls) -> Dict: "kl_loss_fn": "k2", "entropy_loss_fn": "default", } + + +@ALGORITHM_TYPE.register_module("on_policy_distill") +class OnPolicyDistillAlgorithm(AlgorithmType): + """On-Policy Distillation Algorithm. + + Reference: Tinker library. + + Workflow stores teacher_logprobs in experience.info["teacher_logprobs"]. + Trainer's advantage_fn computes: advantages = teacher_logprobs - student_logprobs + Trainer uses: importance_sampling loss (no clip) + """ + + use_critic: bool = False + use_reference: bool = False + compute_advantage_in_trainer: bool = True # advantage_fn computes from teacher_logprobs + can_balance_batch: bool = True + schema: str = "experience" + + @classmethod + def default_config(cls) -> Dict: + return { + "repeat_times": 8, + "advantage_fn": "on_policy_distill", + "advantage_fn_args": {"kl_coef": 1.0}, + "sample_strategy": "default", + "policy_loss_fn": "importance_sampling", + "kl_penalty_fn": "none", + "kl_loss_fn": "none", + "entropy_loss_fn": "none", + } diff --git a/trinity/algorithm/policy_loss_fn/__init__.py b/trinity/algorithm/policy_loss_fn/__init__.py index 4f7b70b917..b66f93e4d9 100644 --- a/trinity/algorithm/policy_loss_fn/__init__.py +++ b/trinity/algorithm/policy_loss_fn/__init__.py @@ -6,6 +6,9 @@ from trinity.algorithm.policy_loss_fn.cispo_policy_loss import CISPOPolicyLossFn from trinity.algorithm.policy_loss_fn.dpo_loss import DPOLossFn from trinity.algorithm.policy_loss_fn.gspo_policy_loss import GSPOLossFn +from trinity.algorithm.policy_loss_fn.importance_sampling_policy_loss import ( + ImportanceSamplingLossFn, +) from trinity.algorithm.policy_loss_fn.mix_policy_loss import MIXPolicyLossFn from trinity.algorithm.policy_loss_fn.opmd_policy_loss import OPMDPolicyLossFn from trinity.algorithm.policy_loss_fn.policy_loss_fn import POLICY_LOSS_FN, PolicyLossFn @@ -31,4 +34,5 @@ "SFTPhiLossFn", "sPPOPolicyLossFn", "RECPolicyLossFn", + "ImportanceSamplingLossFn", ] diff --git a/trinity/algorithm/policy_loss_fn/importance_sampling_policy_loss.py b/trinity/algorithm/policy_loss_fn/importance_sampling_policy_loss.py new file mode 100644 index 0000000000..bc60f77eb0 --- /dev/null +++ b/trinity/algorithm/policy_loss_fn/importance_sampling_policy_loss.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +"""The most simple Importance Sampling policy loss. + +loss = -(prob_ratio * advantages).sum() +where prob_ratio = exp(current_logprobs - sampling_logprobs) + +Note: This loss is used for on-policy distillation. +""" + +from typing import Dict, Tuple + +import torch + +from trinity.algorithm.policy_loss_fn.policy_loss_fn import POLICY_LOSS_FN, PolicyLossFn +from trinity.algorithm.utils import aggregate_loss, masked_mean + + +@POLICY_LOSS_FN.register_module("importance_sampling") +class ImportanceSamplingLossFn(PolicyLossFn): + """Pure importance sampling loss without clipping. + + loss = -(ratio * advantages) + where ratio = exp(logprob - old_logprob) + """ + + def __init__( + self, + backend: str = "verl", + loss_agg_mode: str = "token-mean", + ) -> None: + super().__init__(backend=backend) + self.loss_agg_mode = loss_agg_mode + + def __call__( # type: ignore + self, + logprob: torch.Tensor, + old_logprob: torch.Tensor, + action_mask: torch.Tensor, + advantages: torch.Tensor, + **kwargs, + ) -> Tuple[torch.Tensor, Dict]: + # prob_ratio = exp(current_logprobs - sampling_logprobs) + log_ratio = logprob - old_logprob + log_ratio = torch.clamp(log_ratio, min=-20.0, max=20.0) + ratio = torch.exp(log_ratio) + + # loss = -(prob_ratio * advantages) + pg_losses = -advantages * ratio + pg_loss = aggregate_loss(pg_losses, action_mask, loss_agg_mode=self.loss_agg_mode) + + metrics = { + "pg_loss": pg_loss.detach().item(), + "ratio/mean": masked_mean(ratio, action_mask).detach().item(), + "approx_kl": masked_mean(-log_ratio, action_mask).detach().item(), + } + + return pg_loss, metrics + + @classmethod + def default_args(cls) -> Dict: + return {"loss_agg_mode": "token-mean"} diff --git a/trinity/common/experience.py b/trinity/common/experience.py index 2a734144d2..0f94e0bdd5 100644 --- a/trinity/common/experience.py +++ b/trinity/common/experience.py @@ -133,6 +133,9 @@ class Experience: # for multi-modal data multi_modal_inputs: Optional[Dict[str, Tensor]] = None # Multi-modal inputs for verl trainer + # for on-policy distillation + teacher_logprobs: Optional[Tensor] = None # [resp_length] + def __init__( # noqa: C901 self, *, @@ -157,6 +160,7 @@ def __init__( # noqa: C901 chosen_messages=None, rejected_messages=None, multi_modal_inputs=None, + teacher_logprobs=None, ): if action_mask is not None: experience_type = "multi_turn" @@ -229,6 +233,11 @@ def __init__( # noqa: C901 else: self.multi_modal_inputs[key] = value + # Handle teacher_logprobs + if isinstance(teacher_logprobs, list): + teacher_logprobs = torch.tensor(teacher_logprobs, dtype=torch.float32) + self.teacher_logprobs = teacher_logprobs + if not isinstance(self.tokens, Tensor): self.tokens = torch.tensor(self.tokens) if self.logprobs is not None and not isinstance(self.logprobs, Tensor): @@ -239,6 +248,8 @@ def __init__( # noqa: C901 self.chosen = torch.tensor(self.chosen) if self.rejected is not None and not isinstance(self.rejected, Tensor): self.rejected = torch.tensor(self.rejected) + if self.teacher_logprobs is not None and not isinstance(self.teacher_logprobs, Tensor): + self.teacher_logprobs = torch.tensor(self.teacher_logprobs, dtype=torch.float32) def serialize(self) -> bytes: """Serialize the experience to bytes.""" @@ -341,6 +352,14 @@ def gather( else: multi_modal_inputs = None + # gather teacher_logprobs + if all(exp.teacher_logprobs is not None for exp in experiences): + teacher_logprobs = gather_response_attrs( + experiences, "teacher_logprobs", max_response_length + ) + else: + teacher_logprobs = None + exps = Experiences( eids=eids, tokens=tokens, @@ -353,6 +372,7 @@ def gather( prompt_length=max_prompt_length, logprobs=logprobs, multi_modal_inputs=multi_modal_inputs, + teacher_logprobs=teacher_logprobs, ) if custom_fields is not None: for custom_field in custom_fields: @@ -442,6 +462,7 @@ class Experiences: custom_fields: List[str] = field( default_factory=list ) # Custom fields to include in the gathered experiences + teacher_logprobs: Optional[Tensor] = None # [batch_size, response_length] @property def batch_size(self) -> int: diff --git a/trinity/common/workflows/__init__.py b/trinity/common/workflows/__init__.py index 847a3d8707..27bd5f2791 100644 --- a/trinity/common/workflows/__init__.py +++ b/trinity/common/workflows/__init__.py @@ -47,6 +47,10 @@ from trinity.common.workflows.math_trainable_ruler_workflow import ( MathTrainableRULERWorkflow, ) +from trinity.common.workflows.on_policy_distill_workflow import ( + AsyncOnPolicyDistillWorkflow, + OnPolicyDistillWorkflow, +) from trinity.common.workflows.rubric_judge_workflow import RubricJudgeWorkflow from trinity.common.workflows.simple_mm_workflow import ( AsyncSimpleMMWorkflow, @@ -96,4 +100,7 @@ "RubricJudgeWorkflow", "AgentScopeWorkflowAdapter", "FrozenLakeWorkflow", + # On-policy distillation workflows + "OnPolicyDistillWorkflow", + "AsyncOnPolicyDistillWorkflow", ] diff --git a/trinity/common/workflows/on_policy_distill_workflow.py b/trinity/common/workflows/on_policy_distill_workflow.py new file mode 100644 index 0000000000..d4498c0ea9 --- /dev/null +++ b/trinity/common/workflows/on_policy_distill_workflow.py @@ -0,0 +1,99 @@ +# -*- coding: utf-8 -*- +"""On-Policy Distillation Workflow. + +Reference: Tinker library's on-policy distillation implementation. + +Algorithm: +1. Student samples trajectories (with logprobs) +2. Teacher computes logprobs on same trajectories +3. Store teacher_logprobs in experience.info["teacher_logprobs"] +4. Trainer's advantage_fn computes: advantages = teacher_logprobs - student_logprobs +5. Train with importance_sampling loss +""" + +from typing import List, Optional + +import openai +import torch + +from trinity.common.experience import Experience +from trinity.common.models.model import ModelWrapper +from trinity.common.workflows.workflow import WORKFLOWS, BaseSimpleWorkflow, Task + + +@WORKFLOWS.register_module("on_policy_distill_workflow") +class OnPolicyDistillWorkflow(BaseSimpleWorkflow): + """On-policy distillation workflow. + + Computes and stores teacher_logprobs in experience.info. + The advantage_fn in trainer will compute: + advantages = teacher_logprobs - student_logprobs + """ + + is_async: bool = True + can_reset: bool = True + can_repeat: bool = True + + def __init__( + self, + *, + task: Task, + model: ModelWrapper, + auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_model_wrappers: Optional[List[ModelWrapper]] = None, + ): + super().__init__(task=task, model=model, auxiliary_models=auxiliary_models) + self.auxiliary_model_wrappers = auxiliary_model_wrappers + + assert ( + auxiliary_model_wrappers is not None and len(auxiliary_model_wrappers) >= 1 + ), "On-policy distillation requires at least one auxiliary model as teacher." + self.teacher_model = auxiliary_model_wrappers[0] + + self.temperature = task.workflow_args.get("temperature", 1.0) + + async def run_async(self) -> List[Experience]: + messages = self.format_messages() + + # Step 1: Student samples trajectories + responses = await self.model.chat_async(messages, **self.rollout_args) + + for i, response in enumerate(responses): + # Step 2: Teacher computes logprobs + teacher_logprobs = await self.teacher_model.logprobs_async( + tokens=response.tokens.tolist(), + temperature=self.temperature, + ) + + # Extract response portion + resp_start = response.prompt_length - 1 + teacher_resp_logprobs = teacher_logprobs[resp_start:] + student_resp_logprobs = response.logprobs + + # Match lengths + target_len = len(student_resp_logprobs) + if len(teacher_resp_logprobs) > target_len: + teacher_resp_logprobs = teacher_resp_logprobs[:target_len] + elif len(teacher_resp_logprobs) < target_len: + padding = torch.zeros(target_len - len(teacher_resp_logprobs)) + teacher_resp_logprobs = torch.cat([teacher_resp_logprobs, padding]) + + # Step 3: Store teacher_logprobs for advantage_fn + response.teacher_logprobs = teacher_resp_logprobs + + # Set a dummy reward (actual advantage computed by advantage_fn) + response.reward = 0.0 + response.eid.run = i + self.run_id_base + + # Metrics for monitoring + if response.metrics is None: + response.metrics = {} + kl = (student_resp_logprobs - teacher_resp_logprobs).sum().item() + response.metrics["kl_divergence"] = kl + + return responses + + +@WORKFLOWS.register_module("async_on_policy_distill_workflow") +class AsyncOnPolicyDistillWorkflow(OnPolicyDistillWorkflow): + pass diff --git a/trinity/common/workflows/workflow.py b/trinity/common/workflows/workflow.py index 90f52a2505..3d04adbaa1 100644 --- a/trinity/common/workflows/workflow.py +++ b/trinity/common/workflows/workflow.py @@ -3,6 +3,7 @@ from __future__ import annotations +import inspect from dataclasses import asdict, dataclass, field from typing import Any, List, Optional, Type, Union @@ -40,13 +41,18 @@ class Task(dict): index: dict = field(default_factory=dict) def to_workflow( - self, model: Any, auxiliary_models: Optional[List[openai.OpenAI]] = None + self, + model: Any, + auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_model_wrappers: Optional[List["ModelWrapper"]] = None, ) -> Workflow: """Convert the task to a workflow. Args: model (ModelWrapper): The rollout model for the workflow. - auxiliary_models (List[openai.OpenAI]): The auxiliary models for the workflow. + auxiliary_models (List[openai.OpenAI]): The auxiliary models for the workflow (OpenAI clients). + auxiliary_model_wrappers (List[ModelWrapper]): The auxiliary model wrappers. + Only passed to workflows that explicitly declare this parameter in __init__. Note: `model_path` attribute is added to the `auxiliary_models` for use within the workflow. @@ -54,11 +60,22 @@ def to_workflow( Returns: Workflow: The generated workflow object. """ - return self.workflow( - model=model, - task=self, - auxiliary_models=auxiliary_models, - ) + # Check if the workflow supports auxiliary_model_wrappers parameter + sig = inspect.signature(self.workflow.__init__) + if "auxiliary_model_wrappers" in sig.parameters: + return self.workflow( + model=model, + task=self, + auxiliary_models=auxiliary_models, + auxiliary_model_wrappers=auxiliary_model_wrappers, + ) + else: + # Backward compatibility: existing workflows don't need this parameter + return self.workflow( + model=model, + task=self, + auxiliary_models=auxiliary_models, + ) # Deprecated property, will be removed in the future @property @@ -92,10 +109,12 @@ def __init__( task: Task, model: ModelWrapper, auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_model_wrappers: Optional[List[ModelWrapper]] = None, ): self.task = task self.model = model self.auxiliary_models = auxiliary_models + self.auxiliary_model_wrappers = auxiliary_model_wrappers self.run_id_base = 0 self.logger = get_logger(__name__) diff --git a/trinity/explorer/workflow_runner.py b/trinity/explorer/workflow_runner.py index 8917274dd5..aa701c2224 100644 --- a/trinity/explorer/workflow_runner.py +++ b/trinity/explorer/workflow_runner.py @@ -111,6 +111,7 @@ def _create_workflow_instance(self, task: Task) -> None: if task.workflow.is_async else self.auxiliary_model_clients ), + auxiliary_model_wrappers=self.auxiliary_models, ) else: self.workflow_instance.reset(task) diff --git a/trinity/trainer/verl/utils.py b/trinity/trainer/verl/utils.py index ab50b7c877..922182e643 100644 --- a/trinity/trainer/verl/utils.py +++ b/trinity/trainer/verl/utils.py @@ -58,6 +58,8 @@ def to_data_proto(experiences: Experiences, logger: Logger) -> DataProto: # noq batch_dict["advantages"] = experiences.advantages if experiences.returns is not None: batch_dict["returns"] = experiences.returns + if experiences.teacher_logprobs is not None: + batch_dict["teacher_log_probs"] = experiences.teacher_logprobs if experiences.multi_modal_inputs is not None: batch_size = len(batch_dict["unique_ids"]) From d081921453f31a4b439757fdcc299da70e0aa0d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=AE=E6=98=8A?= Date: Tue, 16 Dec 2025 17:57:23 +0800 Subject: [PATCH 02/13] assert instead of padding in workflow --- .../common/workflows/on_policy_distill_workflow.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/trinity/common/workflows/on_policy_distill_workflow.py b/trinity/common/workflows/on_policy_distill_workflow.py index d4498c0ea9..69e0b616de 100644 --- a/trinity/common/workflows/on_policy_distill_workflow.py +++ b/trinity/common/workflows/on_policy_distill_workflow.py @@ -14,7 +14,6 @@ from typing import List, Optional import openai -import torch from trinity.common.experience import Experience from trinity.common.models.model import ModelWrapper @@ -70,13 +69,12 @@ async def run_async(self) -> List[Experience]: teacher_resp_logprobs = teacher_logprobs[resp_start:] student_resp_logprobs = response.logprobs - # Match lengths - target_len = len(student_resp_logprobs) - if len(teacher_resp_logprobs) > target_len: - teacher_resp_logprobs = teacher_resp_logprobs[:target_len] - elif len(teacher_resp_logprobs) < target_len: - padding = torch.zeros(target_len - len(teacher_resp_logprobs)) - teacher_resp_logprobs = torch.cat([teacher_resp_logprobs, padding]) + # Verify lengths match (they should be equal for the same token sequence) + assert len(teacher_resp_logprobs) == len(student_resp_logprobs), ( + f"Length mismatch: teacher_logprobs={len(teacher_resp_logprobs)}, " + f"student_logprobs={len(student_resp_logprobs)}. " + f"tokens={len(response.tokens)}, prompt_length={response.prompt_length}" + ) # Step 3: Store teacher_logprobs for advantage_fn response.teacher_logprobs = teacher_resp_logprobs From b4ec917d357abe6e75c1614fac42cb84a574d587 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=AE=E6=98=8A?= Date: Wed, 17 Dec 2025 16:00:10 +0800 Subject: [PATCH 03/13] change default loss to ppo with clip --- trinity/algorithm/algorithm.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/trinity/algorithm/algorithm.py b/trinity/algorithm/algorithm.py index 0472f5f1b6..81354a02ab 100644 --- a/trinity/algorithm/algorithm.py +++ b/trinity/algorithm/algorithm.py @@ -490,7 +490,9 @@ class OnPolicyDistillAlgorithm(AlgorithmType): Workflow stores teacher_logprobs in experience.info["teacher_logprobs"]. Trainer's advantage_fn computes: advantages = teacher_logprobs - student_logprobs - Trainer uses: importance_sampling loss (no clip) + Trainer uses: + importance_sampling loss if no clipping is needed + ppo loss if clipping is needed, for better stability """ use_critic: bool = False @@ -506,7 +508,7 @@ def default_config(cls) -> Dict: "advantage_fn": "on_policy_distill", "advantage_fn_args": {"kl_coef": 1.0}, "sample_strategy": "default", - "policy_loss_fn": "importance_sampling", + "policy_loss_fn": "ppo", # or importance_sampling if no clipping is needed "kl_penalty_fn": "none", "kl_loss_fn": "none", "entropy_loss_fn": "none", From 2dd56e090525e88dcf22d5985064232eece7b10e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=AE=E6=98=8A?= Date: Wed, 17 Dec 2025 18:20:38 +0800 Subject: [PATCH 04/13] actual run and add on-policy distillation example in GSM8K --- docs/sphinx_doc/assets/opd_acc.png | Bin 0 -> 172116 bytes docs/sphinx_doc/assets/opd_kl.png | Bin 0 -> 173410 bytes examples/opd_gsm8k/README.md | 36 +++++ examples/opd_gsm8k/opd_gsm8k.yaml | 74 +++++++++++ trinity/common/config.py | 2 +- trinity/common/workflows/__init__.py | 4 + .../workflows/on_policy_distill_workflow.py | 124 ++++++++++++++++-- 7 files changed, 230 insertions(+), 10 deletions(-) create mode 100644 docs/sphinx_doc/assets/opd_acc.png create mode 100644 docs/sphinx_doc/assets/opd_kl.png create mode 100644 examples/opd_gsm8k/README.md create mode 100644 examples/opd_gsm8k/opd_gsm8k.yaml diff --git a/docs/sphinx_doc/assets/opd_acc.png b/docs/sphinx_doc/assets/opd_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..1815ef47b53b31aaffd96d54f78e2abd9971208c GIT binary patch literal 172116 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

v$DpF`f*rw25H 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 literal 0 HcmV?d00001 diff --git a/docs/sphinx_doc/assets/opd_kl.png b/docs/sphinx_doc/assets/opd_kl.png new file mode 100644 index 0000000000000000000000000000000000000000..3f8bcb271cc7a2480e704ccb31b71b6437a65c5d GIT binary patch literal 173410 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�G&DbprxnIWwpjuPz+e000f%s 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

_2!NfxIWd8{FmvDW5Am3E!c!jULQgT=+^-5BY^ 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 1 @@ -51,6 +62,49 @@ def __init__( self.temperature = task.workflow_args.get("temperature", 1.0) + def reset(self, task: Task): + """Reset the workflow with a new task. + + Unlike BaseSimpleWorkflow, this does NOT require reward_fn. + """ + self.task = task + self.format_args = task.format_args + self.system_prompt = task.format_args.system_prompt + self.reply_prefix = task.format_args.reply_prefix + self.raw_task = task.raw_task + self.task_desc = task.task_desc + self.truth = task.truth + + def set_repeat_times(self, repeat_times, run_id_base): + self.repeat_times = repeat_times + self.task.rollout_args.n = repeat_times + self.run_id_base = run_id_base + + @property + def rollout_args(self): + return asdict(self.task.rollout_args) + + def format_messages(self): + """Format messages for the instruct model. + + Default format: system_prompt (optional) + task_desc + reply_prefix (optional) + """ + messages = [] + if self.system_prompt: + messages.append({"role": "system", "content": self.system_prompt}) + messages.append({"role": "user", "content": self.task_desc}) + if self.reply_prefix: + messages.append({"role": "assistant", "content": self.reply_prefix}) + return messages + + def compute_reward(self, response: Experience) -> float: + """Compute reward for a response. + + In base class, returns 0.0 as advantage is computed from teacher-student logprobs. + Subclasses can override this to compute actual rewards. + """ + return 0.0 + async def run_async(self) -> List[Experience]: messages = self.format_messages() @@ -79,13 +133,16 @@ async def run_async(self) -> List[Experience]: # Step 3: Store teacher_logprobs for advantage_fn response.teacher_logprobs = teacher_resp_logprobs - # Set a dummy reward (actual advantage computed by advantage_fn) - response.reward = 0.0 - response.eid.run = i + self.run_id_base - - # Metrics for monitoring + # Initialize metrics if response.metrics is None: response.metrics = {} + + # Compute reward (subclasses can override compute_reward) + response.reward = self.compute_reward(response) + + response.eid.run = i + self.run_id_base + + # KL divergence for monitoring kl = (student_resp_logprobs - teacher_resp_logprobs).sum().item() response.metrics["kl_divergence"] = kl @@ -94,4 +151,53 @@ async def run_async(self) -> List[Experience]: @WORKFLOWS.register_module("async_on_policy_distill_workflow") class AsyncOnPolicyDistillWorkflow(OnPolicyDistillWorkflow): + """Alias for OnPolicyDistillWorkflow (already async).""" + + pass + + +@WORKFLOWS.register_module("on_policy_distill_math_workflow") +class OnPolicyDistillMathWorkflow(OnPolicyDistillWorkflow): + """On-policy distillation workflow with Qwen2.5-Math style format. + + This workflow: + - Uses Qwen2.5-Math style prompt format (same as math_eval_workflow) + - Computes accuracy using verify_math_answer as reward + - Suitable for math reasoning tasks like GSM8K, MATH, etc. + """ + + def format_messages(self): + """Format messages using Qwen2.5-Math style. + + System prompt: "You are a helpful assistant." + User prompt: "{question}\nPlease reason step by step, and put your final answer within \\boxed{}." + """ + system_prompt = "You are a helpful assistant." + user_prompt = f"{self.task_desc}\nPlease reason step by step, and put your final answer within \\boxed{{}}." + return [ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": user_prompt}, + ] + + def compute_reward(self, response: Experience) -> float: + """Compute accuracy as reward using Qwen2.5-Math evaluation. + + Returns 1.0 if answer is correct, 0.0 otherwise. + """ + if response.response_text and self.truth: + accuracy, _ = verify_math_answer( + response_text=response.response_text, ground_truth=self.truth + ) + # Store accuracy in metrics + if response.metrics is None: + response.metrics = {} + response.metrics["accuracy"] = accuracy + return float(accuracy) + return 0.0 + + +@WORKFLOWS.register_module("async_on_policy_distill_math_workflow") +class AsyncOnPolicyDistillMathWorkflow(OnPolicyDistillMathWorkflow): + """Alias for OnPolicyDistillMathWorkflow (already async).""" + pass From 16e6c75b305cfecf4b20db729561f49bea4c3998 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=AE=E6=98=8A?= Date: Thu, 18 Dec 2025 18:59:13 +0800 Subject: [PATCH 05/13] change model wrapper for workflows --- .../agentscope/react/react_workflow.py | 4 +- .../common/workflows/agentscope_workflow.py | 4 +- .../agentscope/agentscopev0_react_workflow.py | 4 +- .../agentscope/agentscopev1_react_workflow.py | 4 +- .../agentscopev1_search_workflow.py | 4 +- .../workflows/envs/email_searcher/workflow.py | 4 +- trinity/common/workflows/eval_workflow.py | 4 +- trinity/common/workflows/math_rm_workflow.py | 4 +- .../common/workflows/math_ruler_workflow.py | 4 +- .../math_trainable_ruler_workflow.py | 3 +- .../workflows/on_policy_distill_workflow.py | 10 +-- .../common/workflows/rubric_judge_workflow.py | 2 +- .../common/workflows/simple_mm_workflow.py | 4 +- trinity/common/workflows/workflow.py | 70 ++++++++----------- trinity/explorer/workflow_runner.py | 15 +--- 15 files changed, 48 insertions(+), 92 deletions(-) diff --git a/trinity/common/workflows/agentscope/react/react_workflow.py b/trinity/common/workflows/agentscope/react/react_workflow.py index f4c8c4375d..203af35623 100644 --- a/trinity/common/workflows/agentscope/react/react_workflow.py +++ b/trinity/common/workflows/agentscope/react/react_workflow.py @@ -5,8 +5,6 @@ from typing import Dict, List, Optional, Union -import openai - from trinity.common.experience import Experience from trinity.common.models.model import ModelWrapper from trinity.common.workflows.workflow import Task, Workflow @@ -22,7 +20,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): super().__init__( task=task, diff --git a/trinity/common/workflows/agentscope_workflow.py b/trinity/common/workflows/agentscope_workflow.py index 8fc28fbe32..0de1c41c2a 100644 --- a/trinity/common/workflows/agentscope_workflow.py +++ b/trinity/common/workflows/agentscope_workflow.py @@ -1,7 +1,5 @@ from typing import Awaitable, Callable, Dict, List, Optional -import openai - from trinity.common.experience import Experience from trinity.common.models.model import ModelWrapper from trinity.common.workflows.workflow import Task, Workflow @@ -17,7 +15,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): """Initialize the adapter with the task and model.""" try: diff --git a/trinity/common/workflows/envs/agentscope/agentscopev0_react_workflow.py b/trinity/common/workflows/envs/agentscope/agentscopev0_react_workflow.py index fab5403dcd..6b55bd588d 100644 --- a/trinity/common/workflows/envs/agentscope/agentscopev0_react_workflow.py +++ b/trinity/common/workflows/envs/agentscope/agentscopev0_react_workflow.py @@ -3,8 +3,6 @@ from typing import List, Optional -import openai - from trinity.common.models.model import ModelWrapper from trinity.common.rewards.math_reward import MathBoxedRewardFn from trinity.common.workflows.workflow import Task, Workflow @@ -25,7 +23,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): super().__init__( task=task, diff --git a/trinity/common/workflows/envs/agentscope/agentscopev1_react_workflow.py b/trinity/common/workflows/envs/agentscope/agentscopev1_react_workflow.py index c8cc0dc155..90ca068e60 100644 --- a/trinity/common/workflows/envs/agentscope/agentscopev1_react_workflow.py +++ b/trinity/common/workflows/envs/agentscope/agentscopev1_react_workflow.py @@ -3,8 +3,6 @@ from typing import List, Optional -import openai - from trinity.common.models.model import ModelWrapper from trinity.common.rewards.math_reward import MathBoxedRewardFn from trinity.common.workflows.workflow import Task, Workflow @@ -24,7 +22,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): super().__init__( task=task, diff --git a/trinity/common/workflows/envs/agentscope/agentscopev1_search_workflow.py b/trinity/common/workflows/envs/agentscope/agentscopev1_search_workflow.py index 8d2231b0e7..c24e30d0ce 100644 --- a/trinity/common/workflows/envs/agentscope/agentscopev1_search_workflow.py +++ b/trinity/common/workflows/envs/agentscope/agentscopev1_search_workflow.py @@ -5,8 +5,6 @@ import re from typing import List, Optional -import openai - from trinity.common.models.model import ModelWrapper from trinity.common.workflows.workflow import Task, Workflow @@ -24,7 +22,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): # get openai client from model super().__init__( task=task, diff --git a/trinity/common/workflows/envs/email_searcher/workflow.py b/trinity/common/workflows/envs/email_searcher/workflow.py index 0a243ef507..a644e32a3c 100644 --- a/trinity/common/workflows/envs/email_searcher/workflow.py +++ b/trinity/common/workflows/envs/email_searcher/workflow.py @@ -2,8 +2,6 @@ from typing import Dict, List, Optional -import openai - from trinity.common.models.model import ModelWrapper from trinity.common.workflows.envs.email_searcher.utils import ( AnswerModel, @@ -34,7 +32,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): # get openai client from model self.openai_client = model.get_openai_async_client() diff --git a/trinity/common/workflows/eval_workflow.py b/trinity/common/workflows/eval_workflow.py index 0fcb115b6f..a0e3e82d5c 100644 --- a/trinity/common/workflows/eval_workflow.py +++ b/trinity/common/workflows/eval_workflow.py @@ -4,8 +4,6 @@ from dataclasses import asdict from typing import List, Optional -import openai - from trinity.common.config import GenerationConfig from trinity.common.experience import Experience from trinity.common.models.model import ModelWrapper @@ -27,7 +25,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): super().__init__( task=task, diff --git a/trinity/common/workflows/math_rm_workflow.py b/trinity/common/workflows/math_rm_workflow.py index a5213e0034..13e2fd4cb2 100644 --- a/trinity/common/workflows/math_rm_workflow.py +++ b/trinity/common/workflows/math_rm_workflow.py @@ -3,8 +3,6 @@ from typing import List, Optional -import openai - from trinity.common.experience import Experience from trinity.common.models.model import ModelWrapper from trinity.common.workflows.workflow import SimpleWorkflow, Task @@ -18,7 +16,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): self.reset(task) super().__init__( diff --git a/trinity/common/workflows/math_ruler_workflow.py b/trinity/common/workflows/math_ruler_workflow.py index 42848dd0d7..11a7a3a8c6 100644 --- a/trinity/common/workflows/math_ruler_workflow.py +++ b/trinity/common/workflows/math_ruler_workflow.py @@ -3,8 +3,6 @@ import ast from typing import Any, List, Optional, Tuple -import openai - from trinity.common.experience import Experience from trinity.common.models.model import ModelWrapper from trinity.common.rewards.math_reward import MathRewardFn @@ -23,7 +21,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): super().__init__( task=task, diff --git a/trinity/common/workflows/math_trainable_ruler_workflow.py b/trinity/common/workflows/math_trainable_ruler_workflow.py index d43cbe4aed..5c01ec499b 100644 --- a/trinity/common/workflows/math_trainable_ruler_workflow.py +++ b/trinity/common/workflows/math_trainable_ruler_workflow.py @@ -5,7 +5,6 @@ from typing import Any, List, Optional, Tuple import numpy as np -import openai from trinity.common.experience import Experience from trinity.common.models.model import ModelWrapper @@ -27,7 +26,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): super().__init__( task=task, diff --git a/trinity/common/workflows/on_policy_distill_workflow.py b/trinity/common/workflows/on_policy_distill_workflow.py index bb1fa0b7af..1809b472c9 100644 --- a/trinity/common/workflows/on_policy_distill_workflow.py +++ b/trinity/common/workflows/on_policy_distill_workflow.py @@ -14,8 +14,6 @@ from dataclasses import asdict from typing import List, Optional -import openai - from trinity.common.experience import Experience from trinity.common.models.model import ModelWrapper from trinity.common.rewards.qwen25_eval import verify_math_answer @@ -43,21 +41,19 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, - auxiliary_model_wrappers: Optional[List[ModelWrapper]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): super().__init__( task=task, model=model, auxiliary_models=auxiliary_models, - auxiliary_model_wrappers=auxiliary_model_wrappers, ) self.reset(task) assert ( - auxiliary_model_wrappers is not None and len(auxiliary_model_wrappers) >= 1 + self.auxiliary_model_wrappers is not None and len(self.auxiliary_model_wrappers) >= 1 ), "On-policy distillation requires at least one auxiliary model as teacher." - self.teacher_model = auxiliary_model_wrappers[0] + self.teacher_model = self.auxiliary_model_wrappers[0] self.temperature = task.workflow_args.get("temperature", 1.0) diff --git a/trinity/common/workflows/rubric_judge_workflow.py b/trinity/common/workflows/rubric_judge_workflow.py index 2311803cac..455ac0603a 100644 --- a/trinity/common/workflows/rubric_judge_workflow.py +++ b/trinity/common/workflows/rubric_judge_workflow.py @@ -21,7 +21,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): super().__init__( task=task, diff --git a/trinity/common/workflows/simple_mm_workflow.py b/trinity/common/workflows/simple_mm_workflow.py index 97044e0cf1..2eca2274fb 100644 --- a/trinity/common/workflows/simple_mm_workflow.py +++ b/trinity/common/workflows/simple_mm_workflow.py @@ -1,7 +1,5 @@ from typing import List, Optional -import openai - from trinity.common.experience import Experience from trinity.common.models.model import ModelWrapper from trinity.common.rewards.reward_fn import RewardFn @@ -16,7 +14,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): self.reset(task) super().__init__( diff --git a/trinity/common/workflows/workflow.py b/trinity/common/workflows/workflow.py index f8e055bd16..67073565c4 100644 --- a/trinity/common/workflows/workflow.py +++ b/trinity/common/workflows/workflow.py @@ -3,20 +3,17 @@ from __future__ import annotations -import inspect from dataclasses import asdict, dataclass, field -from typing import TYPE_CHECKING, Any, List, Optional, Type, Union +from typing import List, Optional, Type, Union + +import openai from trinity.common.config import FormatConfig, GenerationConfig from trinity.common.experience import Experience +from trinity.common.models.model import ModelWrapper from trinity.common.rewards.reward_fn import RewardFn from trinity.utils.log import get_logger -if TYPE_CHECKING: - import openai - - from trinity.common.models.model import ModelWrapper - @dataclass class Task(dict): @@ -40,40 +37,25 @@ class Task(dict): def to_workflow( self, - model: Any, - auxiliary_models: Optional[List[openai.OpenAI]] = None, - auxiliary_model_wrappers: Optional[List["ModelWrapper"]] = None, + model: ModelWrapper, + auxiliary_models: Optional[List[ModelWrapper]] = None, ) -> Workflow: """Convert the task to a workflow. Args: model (ModelWrapper): The rollout model for the workflow. - auxiliary_models (List[openai.OpenAI]): The auxiliary models for the workflow (OpenAI clients). - auxiliary_model_wrappers (List[ModelWrapper]): The auxiliary model wrappers. - Only passed to workflows that explicitly declare this parameter in __init__. - - Note: - `model_path` attribute is added to the `auxiliary_models` for use within the workflow. + auxiliary_models (List[ModelWrapper]): The auxiliary model wrappers. + Workflows can access both the ModelWrapper and OpenAI client via + self.auxiliary_model_wrappers and self.auxiliary_models respectively. Returns: Workflow: The generated workflow object. """ - # Check if the workflow supports auxiliary_model_wrappers parameter - sig = inspect.signature(self.workflow.__init__) - if "auxiliary_model_wrappers" in sig.parameters: - return self.workflow( - model=model, - task=self, - auxiliary_models=auxiliary_models, - auxiliary_model_wrappers=auxiliary_model_wrappers, - ) - else: - # Backward compatibility: existing workflows don't need this parameter - return self.workflow( - model=model, - task=self, - auxiliary_models=auxiliary_models, - ) + return self.workflow( + model=model, + task=self, + auxiliary_models=auxiliary_models, + ) # Deprecated property, will be removed in the future @property @@ -95,6 +77,10 @@ class Workflow: """The base workflow class. A workflow is a runnable object which generates a list of experiences. + + Attributes: + auxiliary_model_wrappers: List of ModelWrapper instances for auxiliary models. + auxiliary_models: List of OpenAI clients (sync or async based on is_async) for auxiliary models. """ can_reset: bool = False # whether the workflow can be reset with a new task. If true, `reset()` must be implemented. @@ -106,13 +92,19 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, - auxiliary_model_wrappers: Optional[List[ModelWrapper]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): self.task = task self.model = model - self.auxiliary_models = auxiliary_models - self.auxiliary_model_wrappers = auxiliary_model_wrappers + # Store ModelWrapper instances + self.auxiliary_model_wrappers = auxiliary_models + # Get OpenAI clients from ModelWrapper (async or sync based on workflow type) + self.auxiliary_models: Optional[Union[List[openai.OpenAI], List[openai.AsyncOpenAI]]] = None + if auxiliary_models: + if self.__class__.is_async: + self.auxiliary_models = [m.get_openai_async_client() for m in auxiliary_models] + else: + self.auxiliary_models = [m.get_openai_client() for m in auxiliary_models] self.run_id_base = 0 self.logger = get_logger(__name__) @@ -170,7 +162,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): super().__init__( task=task, @@ -222,7 +214,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): self.reset(task) super().__init__( @@ -334,7 +326,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): self.reset(task) super().__init__( diff --git a/trinity/explorer/workflow_runner.py b/trinity/explorer/workflow_runner.py index d29f1cde3f..9edba9014f 100644 --- a/trinity/explorer/workflow_runner.py +++ b/trinity/explorer/workflow_runner.py @@ -72,8 +72,6 @@ def __init__( ) for model in self.auxiliary_models ] - self.auxiliary_model_clients = [] - self.auxiliary_model_async_clients = [] self.workflow_instance: Workflow = None self.runner_id = runner_id self.runner_state = { @@ -89,11 +87,6 @@ async def prepare(self) -> None: self.model_wrapper.prepare(), *(aux_model.prepare() for aux_model in self.auxiliary_model_wrappers), ) - for model in self.auxiliary_model_wrappers: - api_client = model.get_openai_client() - async_api_client = model.get_openai_async_client() - self.auxiliary_model_clients.append(api_client) - self.auxiliary_model_async_clients.append(async_api_client) def is_alive(self): return True @@ -106,14 +99,10 @@ def _create_workflow_instance(self, task: Task) -> None: or not self.workflow_instance.__class__ == task.workflow or not self.workflow_instance.resettable ): + # Pass ModelWrapper directly; Workflow.__init__ will get OpenAI clients automatically self.workflow_instance = task.to_workflow( self.model_wrapper, - ( - self.auxiliary_model_async_clients - if task.workflow.is_async - else self.auxiliary_model_clients - ), - auxiliary_model_wrappers=self.auxiliary_model_wrappers, + self.auxiliary_model_wrappers, ) else: self.workflow_instance.reset(task) From 297fd8f9ee67182d04b3e4ac10a6a15c2094234d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=AE=E6=98=8A?= Date: Thu, 18 Dec 2025 19:07:59 +0800 Subject: [PATCH 06/13] make sure all workflow is changed --- examples/learn_to_ask/workflow/workflow_learn2ask.py | 4 +--- trinity/algorithm/__init__.py | 1 - trinity/algorithm/policy_loss_fn/__init__.py | 1 - 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/examples/learn_to_ask/workflow/workflow_learn2ask.py b/examples/learn_to_ask/workflow/workflow_learn2ask.py index 6e5cb6e0da..f8b4b49c43 100644 --- a/examples/learn_to_ask/workflow/workflow_learn2ask.py +++ b/examples/learn_to_ask/workflow/workflow_learn2ask.py @@ -7,8 +7,6 @@ import time from typing import List, Optional -import openai - from trinity.common.experience import Experience from trinity.common.models.model import ModelWrapper from trinity.common.workflows.workflow import SimpleWorkflow, Task @@ -36,7 +34,7 @@ def __init__( *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): self.train_mode = task.workflow_args.get("train_mode", "Ra+Rs") self.fusion_mode = task.workflow_args.get("fusion_mode", "default") diff --git a/trinity/algorithm/__init__.py b/trinity/algorithm/__init__.py index 5081263e38..979d08a779 100644 --- a/trinity/algorithm/__init__.py +++ b/trinity/algorithm/__init__.py @@ -27,7 +27,6 @@ "sppo": "trinity.algorithm.algorithm.sPPOAlgorithm", "rec": "trinity.algorithm.algorithm.RECAlgorithm", "multi_step_grpo": "trinity.algorithm.algorithm.MultiStepGRPOAlgorithm", - # On-policy distillation "on_policy_distill": "trinity.algorithm.algorithm.OnPolicyDistillAlgorithm", }, ) diff --git a/trinity/algorithm/policy_loss_fn/__init__.py b/trinity/algorithm/policy_loss_fn/__init__.py index a45e700903..6d1b0a2465 100644 --- a/trinity/algorithm/policy_loss_fn/__init__.py +++ b/trinity/algorithm/policy_loss_fn/__init__.py @@ -18,7 +18,6 @@ "sppo": "trinity.algorithm.policy_loss_fn.sppo_loss_fn.sPPOPolicyLossFn", "rec": "trinity.algorithm.policy_loss_fn.rec_policy_loss.RECPolicyLossFn", "sapo": "trinity.algorithm.policy_loss_fn.sapo_policy_loss.SAPOPolicyLossFn", - # On-policy distillation (importance sampling without clipping) "importance_sampling": "trinity.algorithm.policy_loss_fn.importance_sampling_policy_loss.ImportanceSamplingLossFn", }, ) From 549ab51ad3fc290cc062fe72d632054394a68c09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=AE=E6=98=8A?= Date: Thu, 18 Dec 2025 19:13:44 +0800 Subject: [PATCH 07/13] change docs too --- benchmark/reports/gsm8k.md | 2 +- docs/sphinx_doc/source/tutorial/develop_workflow.md | 11 ++++++----- docs/sphinx_doc/source/tutorial/example_react.md | 2 +- .../sphinx_doc/source_zh/tutorial/develop_workflow.md | 11 ++++++----- docs/sphinx_doc/source_zh/tutorial/example_react.md | 2 +- 5 files changed, 15 insertions(+), 13 deletions(-) diff --git a/benchmark/reports/gsm8k.md b/benchmark/reports/gsm8k.md index 0c43309255..2234e22661 100644 --- a/benchmark/reports/gsm8k.md +++ b/benchmark/reports/gsm8k.md @@ -188,7 +188,7 @@ class VerlGSM8kWorkflow(Workflow): *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): self.reset(task) super().__init__( diff --git a/docs/sphinx_doc/source/tutorial/develop_workflow.md b/docs/sphinx_doc/source/tutorial/develop_workflow.md index f8b4551edd..9d7dc20411 100644 --- a/docs/sphinx_doc/source/tutorial/develop_workflow.md +++ b/docs/sphinx_doc/source/tutorial/develop_workflow.md @@ -93,11 +93,12 @@ class Workflow(ABC): *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): self.task = task self.model = model - self.auxiliary_models = auxiliary_models + self.auxiliary_model_wrappers = auxiliary_models + self.auxiliary_models = ... # OpenAI clients auto-derived from ModelWrapper @abstractmethod def run(self) -> List[Experience]: @@ -110,7 +111,7 @@ During initialization, `Workflow` receives the following parameters: - `task`({class}`trinity.common.workflows.Task`): A single data item from the task dataset. - `model`({class}`trinity.common.models.model.ModelWrapper`): The model being trained, which provides an interface similar to OpenAI, capable of receiving a list of conversation messages and returning content generated by the LLM (including reply text `response_text`, full sequence token ids `tokens`, prompt part token length `prompt_length`, and a list of output token logprobs `logprobs`). -- `auxiliary_models`(`List[openai.OpenAI]`):A list of auxiliary models not involved in training. All are provided via OpenAI-compatible APIs. +- `auxiliary_models`(`List[ModelWrapper]`): A list of auxiliary model wrappers. You can access OpenAI clients via `self.auxiliary_models` (auto-derived based on workflow's `is_async`). ```{tip} You can switch to using the OpenAI API by setting `explorer.rollout_model.enable_openai_api` to `true` in your config file and calling `model.get_openai_client()` to get an `openai.OpenAI` instance in your workflow. @@ -440,10 +441,10 @@ class MyWorkflow(Workflow): *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): super().__init__(task=task, model=model, auxiliary_models=auxiliary_models) - self.judge_model = self.auxiliary_models[0] # Use the first auxiliary model as the judge + self.judge_model = self.auxiliary_models[0] # OpenAI client auto-derived from ModelWrapper def run(self) -> List[Experience]: response = self.do_something() diff --git a/docs/sphinx_doc/source/tutorial/example_react.md b/docs/sphinx_doc/source/tutorial/example_react.md index 4264696ab9..eeaad84a04 100644 --- a/docs/sphinx_doc/source/tutorial/example_react.md +++ b/docs/sphinx_doc/source/tutorial/example_react.md @@ -82,7 +82,7 @@ class AgentScopeReActWorkflow(Workflow): *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): # initialize the agent self.agent = AgentScopeReActAgent( diff --git a/docs/sphinx_doc/source_zh/tutorial/develop_workflow.md b/docs/sphinx_doc/source_zh/tutorial/develop_workflow.md index a3bb025cfc..3e8cbd3133 100644 --- a/docs/sphinx_doc/source_zh/tutorial/develop_workflow.md +++ b/docs/sphinx_doc/source_zh/tutorial/develop_workflow.md @@ -92,11 +92,12 @@ class Workflow(ABC): *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, # 主要用于 LLM-as-a-judge 场景,这里可以忽略 + auxiliary_models: Optional[List[ModelWrapper]] = None, # 主要用于 LLM-as-a-judge 场景, 也可以用作distillation的techer ): self.task = task self.model = model - self.auxiliary_models = auxiliary_models + self.auxiliary_model_wrappers = auxiliary_models + self.auxiliary_models = ... # 从 ModelWrapper 自动派生的 OpenAI client @abstractmethod def run(self) -> List[Experience]: @@ -109,7 +110,7 @@ class Workflow(ABC): - `task`({class}`trinity.common.workflows.Task`):数据集中的单个任务。 - `model`({class}`trinity.common.models.model.ModelWrapper`):正在训练的模型,提供类似于 OpenAI 的接口,能够接收对话消息列表并返回 LLM 生成的内容(包括回复文本 `response_text`、完整序列 token id `tokens`、prompt 部分 token 长度 `prompt_length`,以及输出 token 对数概率列表 `logprobs`)。 -- `auxiliary_models`(`List[openai.OpenAI]`):未参与训练的辅助模型列表。所有模型均通过兼容 OpenAI 的 API 提供,主要用于 LLM-as-a-judge 场景。 +- `auxiliary_models`(`List[ModelWrapper]`):辅助模型的 ModelWrapper 列表。可通过 `self.auxiliary_models` 访问 OpenAI client(根据 workflow 的 `is_async` 自动派生)。 以下是一个仅使用 `raw_task` 和 `rollout_args` 初始化简单工作流的示例。在更复杂的情况下,你可以使用 `format_args` 进行进一步自定义。 @@ -437,10 +438,10 @@ class MyWorkflow(Workflow): *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): super().__init__(task=task, model=model, auxiliary_models=auxiliary_models) - self.judge_model = self.auxiliary_models[0] # 使用第一个辅助模型作为评判者 + self.judge_model = self.auxiliary_models[0] # 从 ModelWrapper 自动派生的 OpenAI client def run(self) -> List[Experience]: response = self.do_something() diff --git a/docs/sphinx_doc/source_zh/tutorial/example_react.md b/docs/sphinx_doc/source_zh/tutorial/example_react.md index ab6b6a1d73..ec71d455e2 100644 --- a/docs/sphinx_doc/source_zh/tutorial/example_react.md +++ b/docs/sphinx_doc/source_zh/tutorial/example_react.md @@ -88,7 +88,7 @@ class AgentScopeReActWorkflow(Workflow): *, task: Task, model: ModelWrapper, - auxiliary_models: Optional[List[openai.OpenAI]] = None, + auxiliary_models: Optional[List[ModelWrapper]] = None, ): # initialize the agent self.agent = AgentScopeReActAgent( From 6444059e62601cbcf4e01234a54e9ce89e941a4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=AE=E6=98=8A?= Date: Thu, 18 Dec 2025 21:42:50 +0800 Subject: [PATCH 08/13] fix workflow test --- tests/explorer/workflow_test.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/explorer/workflow_test.py b/tests/explorer/workflow_test.py index 16bb0b7bbb..71a87dea96 100644 --- a/tests/explorer/workflow_test.py +++ b/tests/explorer/workflow_test.py @@ -48,9 +48,10 @@ def __init__(self, model, task: Task, auxiliary_models=None): self.obj = task.raw_task self.output_format = task.workflow_args["output_format"] self.repeat_times = task.rollout_args.n - if auxiliary_models is not None: - for model in auxiliary_models: - assert isinstance(model, openai.OpenAI) + # Check self.auxiliary_models (OpenAI clients derived from ModelWrapper) + if self.auxiliary_models is not None: + for m in self.auxiliary_models: + assert isinstance(m, openai.OpenAI) def reset(self, task: Task): self.obj = task.raw_task @@ -92,9 +93,10 @@ def __init__(self, model, task: Task, auxiliary_models=None): self.obj = task.raw_task self.output_format = task.workflow_args["output_format"] self.repeat_times = task.rollout_args.n - if auxiliary_models is not None: - for model in auxiliary_models: - assert isinstance(model, openai.AsyncOpenAI) + # Check self.auxiliary_models (AsyncOpenAI clients derived from ModelWrapper) + if self.auxiliary_models is not None: + for m in self.auxiliary_models: + assert isinstance(m, openai.AsyncOpenAI) def reset(self, task: Task): self.obj = task.raw_task From fea166672fcf44b18e511e3eefbedf3ffaf6ed53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=AE=E6=98=8A?= Date: Fri, 19 Dec 2025 13:39:18 +0800 Subject: [PATCH 09/13] fix docs and comments --- examples/opd_gsm8k/README.md | 2 +- trinity/algorithm/advantage_fn/__init__.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/opd_gsm8k/README.md b/examples/opd_gsm8k/README.md index 980d21502c..eb0f9d6dad 100644 --- a/examples/opd_gsm8k/README.md +++ b/examples/opd_gsm8k/README.md @@ -22,7 +22,7 @@ Download the model checkpoint and modify your config file, then run: trinity run examples/opd_gsm8k/opd_gsm8k.yaml ``` -Then you are all set! It should be pretty simple😄, and the training should converge very quick(Much quicker then RL). +Then you are all set! It should be pretty simple😄, and the training should converge very quick. diff --git a/trinity/algorithm/advantage_fn/__init__.py b/trinity/algorithm/advantage_fn/__init__.py index 17150b458c..3b4dfe887e 100644 --- a/trinity/algorithm/advantage_fn/__init__.py +++ b/trinity/algorithm/advantage_fn/__init__.py @@ -17,7 +17,6 @@ "asymre": "trinity.algorithm.advantage_fn.asymre_advantage.ASYMREGroupAdvantage", "asymre_verl": "trinity.algorithm.advantage_fn.asymre_advantage.ASYMREAdvantageFn", "rec": "trinity.algorithm.advantage_fn.rec_advantage.RECGroupedAdvantage", - # On-policy distillation "on_policy_distill": "trinity.algorithm.advantage_fn.on_policy_distill_advantage.OnPolicyDistillAdvantage", }, ) From 4da21a5da7a4a00cd078ca1ca2cd54399e3f4ee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=AE=E6=98=8A?= Date: Fri, 19 Dec 2025 13:58:27 +0800 Subject: [PATCH 10/13] adjust based on comments --- trinity/common/workflows/__init__.py | 2 -- .../common/workflows/on_policy_distill_workflow.py | 12 ------------ trinity/common/workflows/workflow.py | 8 ++++---- 3 files changed, 4 insertions(+), 18 deletions(-) diff --git a/trinity/common/workflows/__init__.py b/trinity/common/workflows/__init__.py index 05b01eddbf..b8496f8f41 100644 --- a/trinity/common/workflows/__init__.py +++ b/trinity/common/workflows/__init__.py @@ -46,9 +46,7 @@ "async_simple_mm_workflow": "trinity.common.workflows.simple_mm_workflow.AsyncSimpleMMWorkflow", # on-policy distillation workflows "on_policy_distill_workflow": "trinity.common.workflows.on_policy_distill_workflow.OnPolicyDistillWorkflow", - "async_on_policy_distill_workflow": "trinity.common.workflows.on_policy_distill_workflow.AsyncOnPolicyDistillWorkflow", "on_policy_distill_math_workflow": "trinity.common.workflows.on_policy_distill_workflow.OnPolicyDistillMathWorkflow", - "async_on_policy_distill_math_workflow": "trinity.common.workflows.on_policy_distill_workflow.AsyncOnPolicyDistillMathWorkflow", }, ) diff --git a/trinity/common/workflows/on_policy_distill_workflow.py b/trinity/common/workflows/on_policy_distill_workflow.py index 1809b472c9..e925103374 100644 --- a/trinity/common/workflows/on_policy_distill_workflow.py +++ b/trinity/common/workflows/on_policy_distill_workflow.py @@ -144,12 +144,6 @@ async def run_async(self) -> List[Experience]: return responses -class AsyncOnPolicyDistillWorkflow(OnPolicyDistillWorkflow): - """Alias for OnPolicyDistillWorkflow (already async).""" - - pass - - class OnPolicyDistillMathWorkflow(OnPolicyDistillWorkflow): """On-policy distillation workflow with Qwen2.5-Math style format. @@ -187,9 +181,3 @@ def compute_reward(self, response: Experience) -> float: response.metrics["accuracy"] = accuracy return float(accuracy) return 0.0 - - -class AsyncOnPolicyDistillMathWorkflow(OnPolicyDistillMathWorkflow): - """Alias for OnPolicyDistillMathWorkflow (already async).""" - - pass diff --git a/trinity/common/workflows/workflow.py b/trinity/common/workflows/workflow.py index 67073565c4..6a3ad80733 100644 --- a/trinity/common/workflows/workflow.py +++ b/trinity/common/workflows/workflow.py @@ -4,16 +4,16 @@ from __future__ import annotations from dataclasses import asdict, dataclass, field -from typing import List, Optional, Type, Union - -import openai +from typing import TYPE_CHECKING, Any, List, Optional, Type, Union from trinity.common.config import FormatConfig, GenerationConfig from trinity.common.experience import Experience -from trinity.common.models.model import ModelWrapper from trinity.common.rewards.reward_fn import RewardFn from trinity.utils.log import get_logger +if TYPE_CHECKING: + import openai + from trinity.common.models.model import ModelWrapper @dataclass class Task(dict): From da286013029cd5a3e6491423cae66add7a42c8a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=AE=E6=98=8A?= Date: Fri, 19 Dec 2025 14:01:27 +0800 Subject: [PATCH 11/13] fix precommit --- trinity/common/workflows/workflow.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/trinity/common/workflows/workflow.py b/trinity/common/workflows/workflow.py index 6a3ad80733..cf3b4d449b 100644 --- a/trinity/common/workflows/workflow.py +++ b/trinity/common/workflows/workflow.py @@ -4,7 +4,7 @@ from __future__ import annotations from dataclasses import asdict, dataclass, field -from typing import TYPE_CHECKING, Any, List, Optional, Type, Union +from typing import TYPE_CHECKING, List, Optional, Type, Union from trinity.common.config import FormatConfig, GenerationConfig from trinity.common.experience import Experience @@ -13,8 +13,10 @@ if TYPE_CHECKING: import openai + from trinity.common.models.model import ModelWrapper + @dataclass class Task(dict): """A Task class that defines a task and its associated reward function / workflow.""" From 8aa7a51eca66aec627fd056d1abb5e715582f881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=AE=E6=98=8A?= Date: Fri, 19 Dec 2025 14:30:52 +0800 Subject: [PATCH 12/13] add readme and odcs --- README.md | 3 ++- README_zh.md | 1 + docs/sphinx_doc/source/main.md | 2 ++ docs/sphinx_doc/source_zh/main.md | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2b8449df1e..9f1cc7a985 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,7 @@ We list some algorithms supported by Trinity-RFT in the following table. For mor | AsymRE [[Paper](https://arxiv.org/pdf/2506.20520)] | [[GSM8K Example](https://github.com/modelscope/Trinity-RFT/tree/main/examples/asymre_gsm8k)] | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/advantage_fn/asymre_advantage.py)] | `algorithm_type: asymre` | | CISPO [[Paper](https://arxiv.org/pdf/2506.13585)] | - | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/cispo_policy_loss.py)] | `algorithm_type: cispo` | | SAPO [[Paper](https://arxiv.org/pdf/2511.20347)] | - | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/sapo_policy_loss.py)] | `algorithm_type: sapo` | +| On-Policy Distillation [[Blog](https://qwenlm.github.io/blog/tinker/)] [[Paper](https://arxiv.org/pdf/2402.10038)] | [[GSM8K Example](https://github.com/modelscope/Trinity-RFT/tree/main/examples/on_policy_distill)] | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/common/workflows/on_policy_distill_workflow.py)] | `algorithm_type: on_policy_distill` | @@ -142,7 +143,7 @@ We list some algorithms supported by Trinity-RFT in the following table. For mor - [Step 2: prepare dataset and model](#step-2-prepare-dataset-and-model) - [Step 3: configurations](#step-3-configurations) - [Step 4: run the RFT process](#step-4-run-the-rft-process) -- [Contribution guide](#contribution-guide) +- [Contribution Guide](#contribution-guide) - [Acknowledgements](#acknowledgements) - [Citation](#citation) diff --git a/README_zh.md b/README_zh.md index 63839442e1..5e64a5c86e 100644 --- a/README_zh.md +++ b/README_zh.md @@ -129,6 +129,7 @@ Trinity-RFT 面向不同背景和目标的用户提供相应功能: | AsymRE [[论文](https://arxiv.org/pdf/2506.20520)] | [[GSM8K 例子](https://github.com/modelscope/Trinity-RFT/tree/main/examples/asymre_gsm8k)] | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/advantage_fn/asymre_advantage.py)] | `algorithm_type: asymre` | | CISPO [[论文](https://arxiv.org/pdf/2506.13585)] | - | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/cispo_policy_loss.py)] | `algorithm_type: cispo` | | SAPO [[论文](https://arxiv.org/pdf/2511.20347)] | - | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/sapo_policy_loss.py)] | `algorithm_type: sapo` | +| On-Policy Distillation [[博客](https://qwenlm.github.io/blog/tinker/)] [[论文](https://arxiv.org/pdf/2402.10038)] | [[GSM8K 示例](https://github.com/modelscope/Trinity-RFT/tree/main/examples/on_policy_distill)] | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/common/workflows/on_policy_distill_workflow.py)] | `algorithm_type: on_policy_distill` | diff --git a/docs/sphinx_doc/source/main.md b/docs/sphinx_doc/source/main.md index 919eca2908..a41206b46b 100644 --- a/docs/sphinx_doc/source/main.md +++ b/docs/sphinx_doc/source/main.md @@ -86,6 +86,8 @@ We list some algorithms supported by Trinity-RFT in the following table. For mor | AsymRE [[Paper](https://arxiv.org/pdf/2506.20520)] | [[GSM8K Example](https://github.com/modelscope/Trinity-RFT/tree/main/examples/asymre_gsm8k)] | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/advantage_fn/asymre_advantage.py)] | `algorithm_type: asymre` | | CISPO [[Paper](https://arxiv.org/pdf/2506.13585)] | - | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/cispo_policy_loss.py)] | `algorithm_type: cispo` | | SAPO [[Paper](https://arxiv.org/pdf/2511.20347)] | - | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/sapo_policy_loss.py)] | `algorithm_type: sapo` | +| On-Policy Distillation [[Blog](https://qwenlm.github.io/blog/tinker/)] [[Paper](https://arxiv.org/pdf/2402.10038)] | [[GSM8K Example](https://github.com/modelscope/Trinity-RFT/tree/main/examples/on_policy_distill)] | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/common/workflows/on_policy_distill_workflow.py)] | `algorithm_type: on_policy_distill` | + diff --git a/docs/sphinx_doc/source_zh/main.md b/docs/sphinx_doc/source_zh/main.md index 3d1c673e25..395acc95cf 100644 --- a/docs/sphinx_doc/source_zh/main.md +++ b/docs/sphinx_doc/source_zh/main.md @@ -82,6 +82,7 @@ Trinity-RFT 面向不同背景和目标的用户提供相应功能: | AsymRE [[论文](https://arxiv.org/pdf/2506.20520)] | [[GSM8K 例子](https://github.com/modelscope/Trinity-RFT/tree/main/examples/asymre_gsm8k)] | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/advantage_fn/asymre_advantage.py)] | `algorithm_type: asymre` | | CISPO [[论文](https://arxiv.org/pdf/2506.13585)] | - | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/cispo_policy_loss.py)] | `algorithm_type: cispo` | | SAPO [[论文](https://arxiv.org/pdf/2511.20347)] | - | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/sapo_policy_loss.py)] | `algorithm_type: sapo` | +| On-Policy Distillation [[博客](https://qwenlm.github.io/blog/tinker/)] [[论文](https://arxiv.org/pdf/2402.10038)] | [[GSM8K 示例](https://github.com/modelscope/Trinity-RFT/tree/main/examples/on_policy_distill)] | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/common/workflows/on_policy_distill_workflow.py)] | `algorithm_type: on_policy_distill` | From 23ca0eefe75ad2f128e551e756af8003fe3d1d6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=AE=E6=98=8A?= Date: Fri, 19 Dec 2025 14:38:11 +0800 Subject: [PATCH 13/13] add readme and docs --- README.md | 2 +- README_zh.md | 2 +- docs/sphinx_doc/source/main.md | 2 +- docs/sphinx_doc/source_zh/main.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9f1cc7a985..58526defa1 100644 --- a/README.md +++ b/README.md @@ -130,7 +130,7 @@ We list some algorithms supported by Trinity-RFT in the following table. For mor | AsymRE [[Paper](https://arxiv.org/pdf/2506.20520)] | [[GSM8K Example](https://github.com/modelscope/Trinity-RFT/tree/main/examples/asymre_gsm8k)] | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/advantage_fn/asymre_advantage.py)] | `algorithm_type: asymre` | | CISPO [[Paper](https://arxiv.org/pdf/2506.13585)] | - | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/cispo_policy_loss.py)] | `algorithm_type: cispo` | | SAPO [[Paper](https://arxiv.org/pdf/2511.20347)] | - | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/sapo_policy_loss.py)] | `algorithm_type: sapo` | -| On-Policy Distillation [[Blog](https://qwenlm.github.io/blog/tinker/)] [[Paper](https://arxiv.org/pdf/2402.10038)] | [[GSM8K Example](https://github.com/modelscope/Trinity-RFT/tree/main/examples/on_policy_distill)] | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/common/workflows/on_policy_distill_workflow.py)] | `algorithm_type: on_policy_distill` | +| On-Policy Distillation [[Blog](https://thinkingmachines.ai/blog/on-policy-distillation/)] [[Paper](https://arxiv.org/pdf/2306.13649)] | [[GSM8K Example](https://github.com/modelscope/Trinity-RFT/tree/main/examples/on_policy_distill)] | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/common/workflows/on_policy_distill_workflow.py)] | `algorithm_type: on_policy_distill` | diff --git a/README_zh.md b/README_zh.md index 5e64a5c86e..fd90f4af51 100644 --- a/README_zh.md +++ b/README_zh.md @@ -129,7 +129,7 @@ Trinity-RFT 面向不同背景和目标的用户提供相应功能: | AsymRE [[论文](https://arxiv.org/pdf/2506.20520)] | [[GSM8K 例子](https://github.com/modelscope/Trinity-RFT/tree/main/examples/asymre_gsm8k)] | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/advantage_fn/asymre_advantage.py)] | `algorithm_type: asymre` | | CISPO [[论文](https://arxiv.org/pdf/2506.13585)] | - | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/cispo_policy_loss.py)] | `algorithm_type: cispo` | | SAPO [[论文](https://arxiv.org/pdf/2511.20347)] | - | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/sapo_policy_loss.py)] | `algorithm_type: sapo` | -| On-Policy Distillation [[博客](https://qwenlm.github.io/blog/tinker/)] [[论文](https://arxiv.org/pdf/2402.10038)] | [[GSM8K 示例](https://github.com/modelscope/Trinity-RFT/tree/main/examples/on_policy_distill)] | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/common/workflows/on_policy_distill_workflow.py)] | `algorithm_type: on_policy_distill` | +| On-Policy Distillation [[博客](https://thinkingmachines.ai/blog/on-policy-distillation/)] [[论文](https://arxiv.org/pdf/2306.13649)] | [[GSM8K 示例](https://github.com/modelscope/Trinity-RFT/tree/main/examples/on_policy_distill)] | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/common/workflows/on_policy_distill_workflow.py)] | `algorithm_type: on_policy_distill` | diff --git a/docs/sphinx_doc/source/main.md b/docs/sphinx_doc/source/main.md index a41206b46b..97a0f276d2 100644 --- a/docs/sphinx_doc/source/main.md +++ b/docs/sphinx_doc/source/main.md @@ -86,7 +86,7 @@ We list some algorithms supported by Trinity-RFT in the following table. For mor | AsymRE [[Paper](https://arxiv.org/pdf/2506.20520)] | [[GSM8K Example](https://github.com/modelscope/Trinity-RFT/tree/main/examples/asymre_gsm8k)] | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/advantage_fn/asymre_advantage.py)] | `algorithm_type: asymre` | | CISPO [[Paper](https://arxiv.org/pdf/2506.13585)] | - | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/cispo_policy_loss.py)] | `algorithm_type: cispo` | | SAPO [[Paper](https://arxiv.org/pdf/2511.20347)] | - | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/sapo_policy_loss.py)] | `algorithm_type: sapo` | -| On-Policy Distillation [[Blog](https://qwenlm.github.io/blog/tinker/)] [[Paper](https://arxiv.org/pdf/2402.10038)] | [[GSM8K Example](https://github.com/modelscope/Trinity-RFT/tree/main/examples/on_policy_distill)] | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/common/workflows/on_policy_distill_workflow.py)] | `algorithm_type: on_policy_distill` | +| On-Policy Distillation [[Blog](https://thinkingmachines.ai/blog/on-policy-distillation/)] [[Paper](https://arxiv.org/pdf/2306.13649)] | [[GSM8K Example](https://github.com/modelscope/Trinity-RFT/tree/main/examples/on_policy_distill)] | [[Code](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/common/workflows/on_policy_distill_workflow.py)] | `algorithm_type: on_policy_distill` | diff --git a/docs/sphinx_doc/source_zh/main.md b/docs/sphinx_doc/source_zh/main.md index 395acc95cf..9e490f846b 100644 --- a/docs/sphinx_doc/source_zh/main.md +++ b/docs/sphinx_doc/source_zh/main.md @@ -82,7 +82,7 @@ Trinity-RFT 面向不同背景和目标的用户提供相应功能: | AsymRE [[论文](https://arxiv.org/pdf/2506.20520)] | [[GSM8K 例子](https://github.com/modelscope/Trinity-RFT/tree/main/examples/asymre_gsm8k)] | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/advantage_fn/asymre_advantage.py)] | `algorithm_type: asymre` | | CISPO [[论文](https://arxiv.org/pdf/2506.13585)] | - | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/cispo_policy_loss.py)] | `algorithm_type: cispo` | | SAPO [[论文](https://arxiv.org/pdf/2511.20347)] | - | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/algorithm/policy_loss_fn/sapo_policy_loss.py)] | `algorithm_type: sapo` | -| On-Policy Distillation [[博客](https://qwenlm.github.io/blog/tinker/)] [[论文](https://arxiv.org/pdf/2402.10038)] | [[GSM8K 示例](https://github.com/modelscope/Trinity-RFT/tree/main/examples/on_policy_distill)] | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/common/workflows/on_policy_distill_workflow.py)] | `algorithm_type: on_policy_distill` | +| On-Policy Distillation [[博客](https://thinkingmachines.ai/blog/on-policy-distillation/)] [[论文](https://arxiv.org/pdf/2306.13649)] | [[GSM8K 示例](https://github.com/modelscope/Trinity-RFT/tree/main/examples/on_policy_distill)] | [[代码](https://github.com/modelscope/Trinity-RFT/tree/main/trinity/common/workflows/on_policy_distill_workflow.py)] | `algorithm_type: on_policy_distill` |