junlin-modal/k3-toolcall-turn1
k3-toolcall-turn1 191,072 deduplicated tool-calling contexts, normalized to the OpenAI messages + tools schema. Each row is a conversation prefix that stops right before the first assistant turn — a context ready for a model to generate at, not a finished conversation. Built to generate on-policy targets for speculative-decoding draft training: a target model generates at each context, and the draft learns to copy that model's next tokens. The dataset ships contexts, not labels.… See the full description on the dataset page: https://huggingface.co/datasets/junlin-modal/k3-toolcall-turn1.
k3-toolcall-turn1
191,072 deduplicated tool-calling contexts, normalized to the OpenAI messages + tools schema. Each row is a conversation prefix that stops right before the first assistant turn — a context ready for a model to generate at, not a finished conversation.
Built to generate on-policy targets for speculative-decoding draft training: a target model generates at each context, and the draft learns to copy that model's next tokens. The dataset ships contexts, not labels.
Composition
License is CC-BY-4.0 (the most restrictive among the sources; xlam is CC-BY-4.0, the rest Apache-2.0). Commercial use is allowed with attribution.
Format
One JSON object per line:
{
"id": "toucan/12#t1",
"source": "toucan",
"tools": [ { "type": "function", "function": { "name": "...", "parameters": { ... } } } ],
"messages": [ { "role": "user", "content": "..." } ],
"n_tools": 6,
"has_system": false,
"reference_output": { "content": "", "tool_calls": [ { "name": "...", "arguments": "{...}" } ] }
}messages— the context. Has at least one user message and stops before the first assistant turn.tools— OpenAI-format declarations. Every tool called later in the source conversation is declared here.reference_output— the source dataset's original first assistant turn, kept for reference only. Another model wrote it; it is not a training label.
Construction & validation
Source conversations were parsed out of four different in-band formats (glaive's ASSISTANT: <functioncall> text, Hermes' <tool_call> XML, ToolACE's [Fn(arg=...)] strings, Toucan's legacy function_call field with a Kimi-K2 template system message) into a single messages + tools schema. A conversation was dropped, never repaired, when a tool result could not be matched to a preceding call, a call named an undeclared tool, or a payload failed to parse. Sampled rows all render under apply_chat_template(messages, tools=tools, add_generation_prompt=True) on a production tokenizer.
Not included: Salesforce/APIGen-MT-5k (CC-BY-NC-4.0, non-commercial) and Salesforce/xlam-function-calling-60k (gated; the ungated minpeter re-parse is used instead).
Attribution
Derived from the datasets listed above; please cite their original authors (Agent-Ark, Salesforce/minpeter, GlaiveAI, Team-ACE, NousResearch).
