Skip to content

Conversation

@corbt
Copy link
Contributor

@corbt corbt commented Jan 28, 2026

Summary

  • vendor tinker_cookbook into art.tinker_cookbook_v (renderer code now lives in-repo)
  • update tinker native/server/service imports to use the vendored package and renderer to_openai_message tool-call conversion
  • adjust pipeline/examples/tests for direct backend imports and unique run suffixes
  • update tinker extra deps in pyproject.toml

Test plan

  • uv run python -m art.pipeline_trainer.binary_prefix_tool_pipeline (completes with model-collapse warning)
  • Not run (other tests)

Cursor Bot added 5 commits January 28, 2026 02:06
Separate native Tinker training/inference from LocalBackend to keep the API
clear while enabling explicit loss/checkpoint behavior and config.
Add a new PipelineTrainer module that implements an asynchronous
3-stage pipeline (rollout, training, eval) for efficient RL training:

- PipelineTrainer: Main trainer class with configurable workers,
  batch sizes, and off-policy limits
- StatusReporter: Live progress reporting with tqdm and periodic
  logging
- PipelineState: Shared state dataclass for stage coordination
- Type definitions for RolloutFn, SingleRolloutFn, EvalFn

Key features:
- Async rollout workers with policy version tracking
- Stale sample detection and automatic discard
- Zero-variance group handling with collapse detection
- Graceful signal handling (SIGINT/SIGTERM)
- State persistence for training resumption
- Eval scheduling with configurable intervals

Also includes:
- yes_no_maybe_pipeline.py: Simple example showing basic usage
- binary_prefix_tool_pipeline.py: Complex example with tool calls

Updates to tinker_native backend:
- Add debug logging via ART_TINKER_TRAIN_LOG/ART_TINKER_SAMPLE_LOG
- Add fallback for create_conversation_prefix_with_tools
- Fix tool_call id handling in OpenAI server responses
Vendor renderer utilities to keep tool-call parsing and OpenAI message conversion
consistent without relying on a git dependency, and wire server/backend pipelines
through renderer conversions.
Add a wrapper package that forces the vendored tinker_cookbook on sys.path and
switch ART imports to the new name to avoid picking up the installed package.
Relocate vendored cookbook code into art.tinker_cookbook_v and remove
the old top-level vendored directory to avoid sys.path manipulation.
@corbt corbt requested a review from bradhilton January 28, 2026 13:53
Cursor Bot added 2 commits January 28, 2026 13:53
Normalize import spacing to satisfy ruff's sorting rules.
Move the vendored tinker-cookbook files into the art.tinker.cookbook_v
subpackage and update import paths to match.
@corbt corbt merged commit 90ec50c into main Jan 28, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants