sail.tinker helpers let you drive Sail inference from a
Tinker RL or training loop. They
bridge Tinker’s token-level sampling interface to Sail’s raw-token Responses
path, so rollouts run against Sail-hosted models (optionally with a LoRA
adapter) while logprobs flow back into your training code.
These helpers require
tinker-cookbook installed alongside sail.
Constructing a SailTokenCompleter without tinker-cookbook available raises
sail.InferenceError.sail.SailTokenCompleter
A TinkerTokenCompleter backed by Sail’s raw-token Responses API: each call
sends the prompt token ids via the raw_prompt_tokens request parameter, which
skips server-side chat templating and tokenization and forwards the ids
verbatim to the model. Construct one with a model and sampling settings, then
await it on tokenized prompts to get sampled tokens and their logprobs.
Constructor
Passing both
lora and tinker_lora_signed_url, or setting
tinker_lora_signed_url without adapter_config, raises ValueError.
async __call__(model_input, stop=None)
model_input: must expose a callable.to_ints()returning the prompt token ids (this is Tinker’sModelInput). A non-callableto_ints, a non-integer token, or an empty prompt raisesTypeError/ValueError.stop: optional stop condition. Anintis wrapped as a single-element list; a tuple is converted to a list; other values pass through unchanged.
TokensWithLogprobs:
If the Sail response is malformed (missing or non-integer token data, or
mismatched token and logprob lengths), a
sail.InferenceError is raised with the offending
response attached as exc.response.
get_tinker_checkpoint_signed_url_async
tinker_lora_signed_url to SailTokenCompleter. It resolves the path against
the Tinker service client and returns the signed URL.
This helper is async-only and requires a Tinker service client with async
checkpoint-URL support.
Raises
sail.InferenceError if the Tinker client does
not provide async checkpoint URL methods, or if the response does not contain a
URL.