txchmechanicus/qwen3.5-toolcalling-v2
收藏Hugging Face2026-03-11 更新2026-03-29 收录
下载链接:
https://hf-mirror.com/datasets/txchmechanicus/qwen3.5-toolcalling-v2
下载链接
链接失效反馈官方服务:
资源简介:
---
language:
- en
license: apache-2.0
pretty_name: Qwen3.5 Tool Calling Dataset v2
size_categories:
- 10K<n<100K
task_categories:
- text-generation
tags:
- tool-use
- tool-calling
- function-calling
- reasoning
- agentic
- jupyter
- code-execution
- sft
- chat
- qwen3
- qwen3.5
- chain-of-thought
- multi-turn
- structured-output
- json
- fine-tuning
- open-source
- expanded-dataset
annotations_creators:
- machine-generated
language_creators:
- found
configs:
- config_name: default
data_files:
- split: train
path: data/train-*
- split: test
path: data/test-*
---
# Qwen3.5 Tool Calling Dataset v2
An expanded tool-calling SFT dataset combining **smirki/Tool-Calling-Dataset-UIGEN-X** and **AmanPriyanshu/tool-reasoning-sft-jupyter-agent**, unified into Qwen3 messages format. Adds Jupyter notebook agent data with code execution reasoning chains.
## Dataset Summary
| Property | Value |
|----------|-------|
| **Total Samples** | ~60K+ |
| **Train Split** | ~55K |
| **Test Split** | ~6K |
| **Sources** | UIGEN-X + Jupyter Agent |
| **Format** | Qwen3 messages |
| **Language** | English |
| **License** | Apache 2.0 |
## v1 vs v2 Comparison
| Version | Samples | Agent Type | New Sources |
|---------|---------|------------|-------------|
| **v1** | 51,004 | General tool calling | smirki/Tool-Calling-Dataset-UIGEN-X |
| **v2** (this) | ~60K+ | + Code/Jupyter agent | + AmanPriyanshu/tool-reasoning-sft-jupyter-agent |
## What's New in v2?
- **Jupyter Agent**: Code execution with `add_and_execute_jupyter_code_cell` tool
- **Richer Reasoning**: Structured `reasoning → tool_call → tool_output → answer` chains
- **Data Science Tasks**: CSV analysis, visualization, statistical computation
- **Multi-step Execution**: Multiple code cells in sequence
## Dataset Structure
### Data Fields
| Field | Type | Description |
|-------|------|-------------|
| `messages` | `list[dict]` | Conversation turns with `role` and `content` |
### Role Types
| Role | Source | Description |
|------|--------|-------------|
| `system` | Both | Tool schema + assistant instructions |
| `user` | Both | User request or tool output |
| `assistant` | Both | `<think>` reasoning + tool call or final answer |
> Note: Original `reasoning`, `tool_call`, `tool_output` roles from Jupyter Agent source are normalized to `assistant` or `user`.
## Sources
| Dataset | Format | Samples | Key Capability |
|---------|--------|---------|----------------|
| [smirki/Tool-Calling-Dataset-UIGEN-X](https://huggingface.co/datasets/smirki/Tool-Calling-Dataset-UIGEN-X) | `conversations[from/value]` | 51,004 | General API/tool calls with `<think>` reasoning |
| [AmanPriyanshu/tool-reasoning-sft-jupyter-agent](https://huggingface.co/datasets/AmanPriyanshu/tool-reasoning-sft-jupyter-agent-dataset-sft-tool-use-agent-data-cleaned-rectified) | `messages[role/content]` | ~10K | Jupyter code execution agent |
## Format
### UIGEN-X Style: API Tool Calling
```json
{
"messages": [
{
"role": "system",
"content": "You are a deep thinking AI...\n<tools>\n{\"name\": \"search_web\", \"description\": \"Search the web\", ...}\n</tools>"
},
{
"role": "user",
"content": "Find the latest news about AI developments"
},
{
"role": "assistant",
"content": "<think>\nUser wants latest AI news. I'll use search_web.\n</think>\n<tool_call>\n{\"name\": \"search_web\", \"arguments\": {\"query\": \"latest AI developments 2025\"}}\n</tool_call>"
},
{
"role": "user",
"content": "<tool_response>\n[{\"title\": \"New LLM achieves SOTA\", \"url\": \"...\"}]\n</tool_response>"
},
{
"role": "assistant",
"content": "Here are the latest AI developments: New LLM achieves state-of-the-art performance..."
}
]
}
```
### Jupyter Agent Style: Code Execution
```json
{
"messages": [
{
"role": "system",
"content": "You are an intelligent data science assistant with access to a stateful Jupyter notebook. You can use the add_and_execute_jupyter_code_cell tool.\n\nYou have access to: winequality-red.csv"
},
{
"role": "user",
"content": "What is the average alcohol content in the dataset?"
},
{
"role": "assistant",
"content": "<think>\nI need to load the CSV and compute the mean of the alcohol column.\n</think>\n{\"name\": \"add_and_execute_jupyter_code_cell\", \"arguments\": {\"code\": \"import pandas as pd\\ndf = pd.read_csv('/home/user/input/winequality-red.csv')\\nprint(df['alcohol'].mean())\"}}"
},
{
"role": "assistant",
"content": "10.422983114446529"
},
{
"role": "assistant",
"content": "<answer>\nThe average alcohol content is approximately 10.42%.\n</answer>"
}
]
}
```
## Source Conversions
```python
# --- UIGEN-X (ShareGPT) ---
role_map = {"human": "user", "gpt": "assistant", "system": "system"}
# --- Jupyter Agent (native messages) ---
# reasoning -> assistant (merged with following tool_call)
# tool_call -> assistant
# tool_output -> user
# answer -> assistant
```
## Usage
```python
from datasets import load_dataset
dataset = load_dataset("Mustafaege/qwen3.5-toolcalling-v2")
# Check both types of examples
for sample in dataset['train']:
msgs = sample['messages']
has_jupyter = any('jupyter_code_cell' in str(m['content']) for m in msgs)
if has_jupyter:
print("Jupyter agent example found!")
break
```
## Training with Unsloth
```python
from unsloth import FastLanguageModel
from trl import SFTTrainer, SFTConfig
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "unsloth/Qwen3-1.7B",
max_seq_length = 8192, # Longer for multi-step reasoning
load_in_4bit = True,
)
trainer = SFTTrainer(
model = model,
tokenizer = tokenizer,
train_dataset = dataset['train'],
args = SFTConfig(
per_device_train_batch_size = 2,
gradient_accumulation_steps = 8,
max_seq_length = 8192,
),
)
trainer.train()
```
## Related Datasets
| Version | Samples | Link |
|---------|---------|------|
| **v1** | 51,004 | [Mustafaege/qwen3.5-toolcalling-v1](https://huggingface.co/datasets/Mustafaege/qwen3.5-toolcalling-v1) |
| **v2** (this) | ~60K+ | [Mustafaege/qwen3.5-toolcalling-v2](https://huggingface.co/datasets/Mustafaege/qwen3.5-toolcalling-v2) |
## License
Apache 2.0 — see [LICENSE](https://www.apache.org/licenses/LICENSE-2.0) for details.
---
Built for Qwen3.5 fine-tuning. Part of the [Mustafaege](https://huggingface.co/Mustafaege) model series.
---
language:
- en
license: apache-2.0
pretty_name: Qwen3.5工具调用数据集v2
size_categories:
- 10K<n<100K
task_categories:
- 文本生成
tags:
- 工具使用(Tool Use)
- 工具调用(Tool Calling)
- 函数调用(Function Calling)
- 推理(Reasoning)
- 智能体相关(Agentic)
- Jupyter
- 代码执行(Code Execution)
- 监督微调(Supervised Fine-Tuning, SFT)
- 对话(Chat)
- Qwen3
- Qwen3.5
- 思维链(Chain-of-Thought)
- 多轮对话(Multi-Turn)
- 结构化输出(Structured Output)
- JSON
- 微调(Fine-Tuning)
- 开源(Open-Source)
- 扩展数据集(Expanded Dataset)
annotations_creators:
- 机器生成
language_creators:
- 公开获取
configs:
- config_name: default
data_files:
- split: train
path: data/train-*
- split: test
path: data/test-*
---
# Qwen3.5工具调用数据集v2
本数据集为扩展版工具调用监督微调(Supervised Fine-Tuning, SFT)数据集,整合了**smirki/Tool-Calling-Dataset-UIGEN-X**与**AmanPriyanshu/tool-reasoning-sft-jupyter-agent**两个数据集,并统一适配Qwen3对话格式。新增了包含代码执行思维链的Jupyter Notebook智能体数据。
## 数据集摘要
| 属性 | 取值 |
|----------|-------|
| **总样本量** | ~60K+ |
| **训练集划分** | ~55K |
| **测试集划分** | ~6K |
| **数据来源** | UIGEN-X + Jupyter智能体 |
| **数据格式** | Qwen3对话格式 |
| **语言** | 英语 |
| **许可证** | Apache 2.0 |
## v1与v2版本对比
| 版本 | 样本量 | 智能体类型 | 新增数据源 |
|---------|---------|------------|-------------|
| **v1** | 51,004 | 通用工具调用 | smirki/Tool-Calling-Dataset-UIGEN-X |
| **v2(本数据集)** | ~60K+ | + 代码/Jupyter智能体 | + AmanPriyanshu/tool-reasoning-sft-jupyter-agent |
## v2版本新增特性
- **Jupyter智能体**:支持通过`add_and_execute_jupyter_code_cell`工具执行代码
- **更丰富的推理流程**:采用结构化的`推理→工具调用→工具输出→最终回答`链条
- **数据科学任务**:涵盖CSV数据分析、可视化与统计计算
- **多步执行**:支持按顺序执行多个代码单元
## 数据集结构
### 数据字段
| 字段 | 类型 | 描述 |
|-------|------|-------------|
| `messages` | `list[dict]` | 包含`role`与`content`的对话轮次列表 |
### 角色类型
| 角色 | 来源 | 描述 |
|------|--------|-------------|
| `system` | 两个数据源均支持 | 工具模式(Tool Schema)与助手系统提示 |
| `user` | 两个数据源均支持 | 用户查询或工具返回结果 |
| `assistant` | 两个数据源均支持 | 包含`<think>`推理模块、工具调用或最终回答的内容 |
> 注意:来自Jupyter Agent数据源的原始`reasoning`、`tool_call`、`tool_output`角色已被标准化为`assistant`或`user`角色。
## 数据来源
| 数据集 | 格式 | 样本量 | 核心能力 |
|---------|--------|---------|----------------|
| [smirki/Tool-Calling-Dataset-UIGEN-X](https://huggingface.co/datasets/smirki/Tool-Calling-Dataset-UIGEN-X) | `conversations[from/value]` | 51,004 | 支持`<think>`推理的通用API/工具调用 |
| [AmanPriyanshu/tool-reasoning-sft-jupyter-agent](https://huggingface.co/datasets/AmanPriyanshu/tool-reasoning-sft-jupyter-agent-dataset-sft-tool-use-agent-data-cleaned-rectified) | `messages[role/content]` | ~10K | Jupyter代码执行智能体 |
## 数据格式
### UIGEN-X风格:API工具调用
json
{
"messages": [
{
"role": "system",
"content": "你是一名深度思考的AI助手……
<tools>
{"name": "search_web", "description": "网页搜索", ...}
</tools>"
},
{
"role": "user",
"content": "查询AI领域的最新资讯"
},
{
"role": "assistant",
"content": "<think>
用户需要最新的AI资讯,我将调用search_web工具。
</think>
<tool_call>
{"name": "search_web", "arguments": {"query": "2025年AI领域最新进展"}}
</tool_call>"
},
{
"role": "user",
"content": "<tool_response>
[{"title": "新型大语言模型实现SOTA性能", "url": "..."}]
</tool_response>"
},
{
"role": "assistant",
"content": "以下是AI领域的最新进展:新型大语言模型实现了当前最优性能……"
}
]
}
### Jupyter智能体风格:代码执行
json
{
"messages": [
{
"role": "system",
"content": "你是一名具备状态感知能力的Jupyter Notebook智能数据科学助手,可使用`add_and_execute_jupyter_code_cell`工具。
你可访问数据集:winequality-red.csv"
},
{
"role": "user",
"content": "该数据集中酒精含量的平均值是多少?"
},
{
"role": "assistant",
"content": "<think>
我需要加载CSV数据集并计算alcohol列的均值。
</think>
{"name": "add_and_execute_jupyter_code_cell", "arguments": {"code": "import pandas as pd
df = pd.read_csv('/home/user/input/winequality-red.csv')
print(df['alcohol'].mean())"}}"
},
{
"role": "assistant",
"content": "10.422983114446529"
},
{
"role": "assistant",
"content": "<answer>
该数据集的平均酒精含量约为10.42%。
</answer>"
}
]
}
## 数据源转换
python
# --- UIGEN-X(ShareGPT格式)---
role_map = {"human": "user", "gpt": "assistant", "system": "system"}
# --- Jupyter Agent(原生消息格式)---
# reasoning角色 → assistant角色(与后续的tool_call合并)
# tool_call角色 → assistant角色
# tool_output角色 → user角色
# answer角色 → assistant角色
## 使用方法
python
from datasets import load_dataset
dataset = load_dataset("Mustafaege/qwen3.5-toolcalling-v2")
# 检查两种类型的示例
for sample in dataset['train']:
msgs = sample['messages']
has_jupyter = any('jupyter_code_cell' in str(m['content']) for m in msgs)
if has_jupyter:
print("找到Jupyter智能体示例!")
break
## 使用Unsloth进行微调训练
python
from unsloth import FastLanguageModel
from trl import SFTTrainer, SFTConfig
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "unsloth/Qwen3-1.7B",
max_seq_length = 8192, # 更长的序列长度适配多步推理
load_in_4bit = True,
)
trainer = SFTTrainer(
model = model,
tokenizer = tokenizer,
train_dataset = dataset['train'],
args = SFTConfig(
per_device_train_batch_size = 2,
gradient_accumulation_steps = 8,
max_seq_length = 8192,
),
)
trainer.train()
## 相关数据集
| 版本 | 样本量 | 链接 |
|---------|---------|------|
| **v1** | 51,004 | [Mustafaege/qwen3.5-toolcalling-v1](https://huggingface.co/datasets/Mustafaege/qwen3.5-toolcalling-v1) |
| **v2(本数据集)** | ~60K+ | [Mustafaege/qwen3.5-toolcalling-v2](https://huggingface.co/datasets/Mustafaege/qwen3.5-toolcalling-v2) |
## 许可证
Apache 2.0 — 详细信息请参阅 [LICENSE](https://www.apache.org/licenses/LICENSE-2.0)。
---
本数据集专为Qwen3.5微调设计,属于[Mustafaege](https://huggingface.co/Mustafaege)模型系列的一部分。
提供机构:
txchmechanicus


