本模型是基于 MiniMind-3(约 220M 参数)进行全参 SFT 微调后得到的专用 Agent 基座模型。训练目标是尝试 不通过RL 仅通过SFT时进行工具调用训练 赋予小模型在封闭工具集下的函数调用(Function Calling)能力与精确的路由逻辑。模型是通过 1000 条纯合成数据训练的。
模型权重采用 16-bit(Merged Model)格式发布,支持标准的 Transformers 加载。
模型内置了针对以下三个工具的路由与参数生成能力:
calculate_math:处理数学表达式计算(如 256 * 37 或 sqrt(144))。get_current_time:查询指定时区(IANA 格式)的当前时间。search_web:发起实时信息搜索。支持的交互模式:
<tool_call> 格式并提取正确参数。<tool_call> 部分)计算 Loss模型使用 OpenAI 风格的消息结构。系统提示词(System Prompt)中需包含工具定义,模型会以 JSON 格式输出工具调用指令。
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "your_username/MiniMind-3-220M-ToolCall-SFT"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
tools = [{
"name": "calculate_math",
"description": "计算数学表达式",
"parameters": {
"type": "object",
"properties": {
"expression": {"type": "string", "description": "如 256*37"}
},
"required": ["expression"]
}
}]
messages = [
{"role": "system", "content": "", "tools": tools},
{"role": "user", "content": "帮我算一下 12345 乘以 6789 是多少?"}
]
inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")
outputs = model.generate(inputs, max_new_tokens=128, temperature=0.1)
print(tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True))
泛化边界:模型容量仅为 220M,在面临极度口语化、多重嵌套逻辑或隐喻式提问时,路由准确率会显著下降。
工具封闭性:模型未针对零样本(Zero-shot)新工具(如提示词中临时定义从未见过的工具)进行过泛化训练。更换工具集需重新准备数据微调。模型本身训练Epoch由于电源适配续航问题也并不大。
训练工具:Unsloth、Minimind 3
数据合成参考见用户名下的:[MiniPolaris-DSWebchat-Synthetic]