dockyard_rl.environments.code_jaccard_environment¶
Module Contents¶
Classes¶
Worker that computes Jaccard similarity between predicted code and ground truth. |
|
Environment that scores code generation via Jaccard similarity. |
API¶
- class dockyard_rl.environments.code_jaccard_environment.CodeJaccardEnvConfig¶
Bases:
typing.TypedDict- num_workers: int¶
None
- stop_strings: NotRequired[list[str] | None]¶
None
- class dockyard_rl.environments.code_jaccard_environment.CodeJaccardEnvironmentMetadata¶
Bases:
typing.TypedDict- ground_truth: str¶
None
- class dockyard_rl.environments.code_jaccard_environment.CodeJaccardVerifyWorker¶
Worker that computes Jaccard similarity between predicted code and ground truth.
- verify(pred_responses: list[str], ground_truths: list[str]) list[float]¶
Compute Jaccard similarity reward for each (prediction, ground_truth) pair.
Jaccard similarity is computed over the whitespace-tokenized word sets of the two strings. This gives a soft, differentiable-friendly reward signal that avoids the binary pass/fail cliff of test-execution-based rewards, and is useful during early training when the model’s code quality is too low to pass any tests.
Args: pred_responses: Predicted response strings from the LLM. ground_truths: Ground truth strings to compare against.
Returns: List of Jaccard similarity scores in [0, 1].
- class dockyard_rl.environments.code_jaccard_environment.CodeJaccardEnvironment(cfg: dockyard_rl.environments.code_jaccard_environment.CodeJaccardEnvConfig)¶
Bases:
dockyard_rl.environments.interfaces.EnvironmentInterface[dockyard_rl.environments.code_jaccard_environment.CodeJaccardEnvironmentMetadata]Environment that scores code generation via Jaccard similarity.
This is a soft-reward alternative to binary test execution. Useful when:
Test runners are not yet set up for a new task domain.
Early-stage training where the model cannot yet pass any tests.
Tasks where partial credit (overlapping tokens) is a meaningful signal.
Rewards are continuous in [0, 1]. Episodes always terminate after one step.
Initialization
- shutdown() None¶
- step(message_log_batch: list[dockyard_rl.data.interfaces.LLMMessageLogType], metadata: list[dockyard_rl.environments.code_jaccard_environment.CodeJaccardEnvironmentMetadata]) dockyard_rl.environments.interfaces.EnvironmentReturn[dockyard_rl.environments.code_jaccard_environment.CodeJaccardEnvironmentMetadata]¶
Score a batch of model completions via Jaccard similarity.
Args: message_log_batch: Batch of conversation message logs. The last assistant message in each log is taken as the prediction. metadata: Per-sample metadata dicts; must contain a
"ground_truth"key.Returns: EnvironmentReturn with scalar rewards in [0, 1] and all episodes terminated.
- global_post_process_and_metrics(batch: dockyard_rl.distributed.batched_data_dict.BatchedDataDict[Any]) tuple[dockyard_rl.distributed.batched_data_dict.BatchedDataDict[Any], dict[str, float | int]]¶
Compute aggregate metrics over the completed rollout batch.
Args: batch: Batched rollout data. Expected keys:
"rewards","is_end","generation_lengths","prompt_lengths","text".Returns: Tuple of (unmodified batch, metrics dict).