基于 AgentFabric 微调 Qwen-7B 实现交互式智能体应用
1. 前言
在构建大模型智能体(Agent)应用时,选择合适的基座模型至关重要。目前,使用 DashScope 提供的 Qwen-Max 或开源的 Qwen-72B 等大规模参数模型,通常能获得较好的工具调用和角色扮演效果。然而,这些大规模模型难以在消费级机器上进行本地部署,推理成本高昂。
相比之下,小模型如 Qwen-7B-Chat 虽然易于部署,但在原生状态下对复杂工具调用的能力较弱。为了在资源受限的环境下实现高效的 Agent 应用,我们需要针对特定场景(如 AgentFabric)对稍小的模型进行微调,使其具备可靠的工具调用能力。
本文旨在介绍如何利用 AgentFabric 的工具调用场景,通过数据集转换和 LoRA 微调方法,使 Qwen-7B-Chat 模型在本地部署后也能完成高质量的工具调用任务。
2. 环境安装与准备
2.1 基础环境配置
首先,需要配置 Python 环境并安装必要的依赖库。建议使用虚拟环境以避免依赖冲突。
# 设置 pip 全局镜像 (加速下载)
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
# 创建并激活虚拟环境
python -m venv swift_env
source swift_env/bin/activate # Linux/Mac
# swift_env\Scripts\activate # Windows
2.2 安装 Swift 框架
魔搭社区提供了 Swift 框架,用于简化大模型的训练和部署流程。
# 克隆仓库
git clone https://github.com/modelscope/swift.git
cd swift
# 安装依赖
pip install -e .[llm]
# 环境对齐 (如果运行报错,可尝试更新以下依赖)
pip install -r requirements/framework.txt -U
pip install -r requirements/llm.txt -U
确保系统已安装 CUDA 驱动,且 PyTorch 版本与 CUDA 版本匹配。推荐使用 CUDA 11.8 或更高版本。
3. 数据准备与处理
为训练 Agent 能力,魔搭官方提供了 ms_agent 开源数据集。但直接使用通用数据集微调后的模型在 AgentFabric 上的表现往往不佳,主要问题包括:不调用工具、调用时参数错误、对工具返回结果总结错误等。
3.1 问题分析
MS-Agent 数据集的 Prompt 格式侧重于标准的 ReAct 模式,而 AgentFabric 更侧重角色扮演和应用场景的 Prompt 组织。两者存在显著差异:
MS-Agent 格式示例:
Answer the following questions as best you can. You have access to the following APIs:
1. fire_recognition: Call this tool...
Use the following format:
Thought: ...


