使用 Qwen 3.6 27B 和 Pi 代理框架进行全文文档编辑
摘要
这篇文章介绍了一种使用Qwen 3.6 27B和Pi agent框架进行完整文档编辑优化的方法,通过更高的量化级别、改进的提示词以及Gradio用户界面,达到了可接受的效果。
全文博客文章请见底部,包含所有方法细节、结果以及相关代码/技能/提示词链接。由于本子版块限制过多链接,无法在文中穿插更多链接,在此致歉。
文档编辑任务是复杂的任务,需要文本和图像识别能力、长上下文理解能力,以及严格遵守规则来编辑特定信息的能力。最近,出现了能够同时完成所有这些任务的本地模型(例如 Qwen 3.6)。如果能利用使用这些模型的智能体来执行上下文感知的编辑工作,这可能会为执行编辑任务的人们节省大量时间。在本子版块之前的一篇文章(请查看我的个人资料)中,我研究了使用基于智能体工作流程的多种大语言模型进行端到端编辑和审查的可能性。我发现 Sonnet 4.6 能够很好地完成任务,但像 Qwen 3.6 27B 这样的本地模型则比较吃力。此后,我优化了本地模型设置和智能体框架。现在,我使用 Qwen 3.6 27B 进行智能体编辑,已经获得了可接受的结果(如下所示)。重要的更改包括更高的量化级别(Q6 vs 前一篇帖子中的 Q4),以及在最小化智能体框架(使用 PI)内优化了提示词和技能。此外,我创建了一个基于 Gradio 的 UI,方便用户与智能体进行交互。下面,我将通过示例文档简要介绍我的方法和结果。
### 方法
`doc_redaction` 仓库包含部署智能体编辑应用和主要编辑应用的代码,智能体使用后者作为执行编辑任务的工具。在此解决方案中,Qwen 3.6 27B 部署在我的本地系统上,既作为智能体模型,也作为主要编辑应用使用的视觉语言模型(VLM),用于执行诸如面部和签名检测等专门任务。
**前端智能体编辑界面**
Agentic Redaction UI 是一个基于 Gradio 的应用,作为用户和智能体之间执行编辑任务的接口。该应用允许用户上传文档,并将自定义的编辑指令传递给 Pi 智能体后端。您可以使用免费的 Gemini API 密钥在此处查看和测试。当用户在 Agentic Redaction GUI 中向智能体发出指令,然后点击“开始编辑任务”时,一个提示会被传递给模型,其中填充了相关的模型/工作区信息和用户的自定义指令。之后,智能体使用其标准工具集(例如访问 API 端点、编写文件和代码)以及编辑文档的技能进行操作。
按下“开始编辑任务”后的 Agentic Redaction GUI:智能体执行任务时,其工具使用和一些思考/报告会流式传输到右侧的聊天框中,以便用户跟踪进度。用户可以在智能体编辑文档期间发送引导消息,或者在智能体完成后发送后续消息,以根据用户的要求调整和改进编辑输出。
**本地智能体模型部署 (Qwen 3.6 27B)**
Qwen 3.6 27B 被用作执行编辑任务的智能体模型。帖子中链接的 `docker compose` 文件使用以下设置部署 Qwen 3.6 27B,将其量化为 6 位,并具备长上下文(KV 缓存量化为 8 位时为 114k tokens),在具有 40GB 显存的本地系统上运行。这是必需的,因为我发现低于 Q6 的量化为 Qwen 模型降低了代码质量,以至于完成编辑任务变得困难。
```bash
command: -hf unsloth/Qwen3.6-27B-MTP-GGUF --hf-file Qwen3.6-27B-UD-Q6_K_XL.gguf --mmproj-url https://huggingface.co/unsloth/Qwen3.6-27B-MTP-GGUF/resolve/main/mmproj-BF16.gguf --n-gpu-layers "-1" --ctx-size "114688" -ub "512" --fit "off" --temp "0.7" --top-k "20" --top-p "0.95" --min-p "0.0" --frequency-penalty "1" --presence-penalty "0.0" --chat-template-kwargs "{\"preserve_thinking\": true}" --host "0.0.0.0" --port "8080" --no-warmup --seed "42" --image_min_tokens "300" --parallel "1" --cache-type-k "q8_0" --cache-type-v "q8_0" --spec-type "draft-mtp" --spec-draft-n-max "2"
```
相关的 Docker compose 文件还为 Qwen VLM 在本地 Docker 容器中部署了两个应用供其交互——基于 Pi 智能体框架、用户与之交互的智能体 GUI,以及原始文档编辑应用 GUI(供人类用户随后编辑和审查输出,见下文)。Qwen 3.6 27B 被用作智能体模型,也用作主要编辑应用使用的 VLM 模型,用于执行面部和签名检测等任务。
**后端 - 文档编辑应用**
作为此任务的后端,文档编辑应用是一个 Gradio UI 应用,提供许多用于文档编辑和审查功能的 FastAPI 端点。它使用诸如 Tesseract 和 PaddleOCR (ppOCR v6) 等 OCR 模型进行本地文本提取,以及诸如 spaCy(在 Microsoft Presidio 包内用于 PII 识别)等 PII 识别模型。本地提供的 VLM 模型可用于标记文档中的面部和签名,或对难词进行二次通过(一种“混合”OCR 方法)。
文档编辑应用审查界面。
### 用于测试的示例文档
下面我将展示来自上述智能体系统编辑过的示例文档的几个页面,以便您了解其性能。我让 Pi 中的 Qwen 智能体对三个不同的文档进行编辑,每个文档都遵循特定的用户指令,描述在下面每个文档的“结果”部分。为了保持测试一致,我仅查看智能体流程的初始输出,即我没有向智能体提出任何引导或后续问题来修改返回的文件。
测试的文档包括:
- 一份两页的文档,内容是申请前发给教授的一些电子邮件示例。
- 一份七页的“姐妹城市”合作文件,包含扫描页面和签名。
- 一份22页的英国地方政府居民政策文件,全文多处提及需要编辑的地点、姓名和面部。
### 结果
**1. 两页的电子邮件示例文档**
第一份文档相对简单,包含可提取的文本且没有图像。我给智能体以下自定义指令:
- 删除所有与 Kornbluth 博士相关的编辑框。
- 编辑掉所有提及 Hyde 博士或 Hyde 博士实验室的内容。同时编辑掉所有提及 Lauren 或 Lauren Lilley 的内容。
- 编辑掉所有提及的大学及其名称。
第一页的示例编辑输出如下所示。
电子邮件示例第1页结果:
看起来大语言模型遵循了所有指令。没有可见的与 Kornbluth 博士相关的编辑框,所有提及 Hyde 博士和 Lauren Lilley 的内容都已被编辑,并且没有大学名称可见。
总体评分:10/10
**2. 带有扫描页面和签名的七页文档**
下一份文档更具挑战性。伙伴关系协议工具包文档包含要识别的签名,以及几个扫描进来的页面,需要使用 OCR 而非简单的 PDF 文本提取。我给智能体以下自定义指令:
- 编辑掉所有签名。
- 删除所有与通用国家名称相关的编辑框。
- 删除所有针对 Rudy Giuliani 的编辑。
- 编辑掉所有提及 London 和 'Sister City' 的内容。
下面我将重点展示几个页面,在这些页面中 Qwen 模型表现不错,但似乎在遵循规则方面有些吃力。
**第1页**:这是一个相对简单的页面,大部分文本可以直接提取,顶部有几张文本图像。
伙伴协议工具包第1页结果:
智能体大部分表现良好。提及 Sister city 的部分已被移除。左上角被 OCR 识别为单个单词的 'SisterCities' 图像版本遗漏了,这可能情有可原,因为指令中没有明确指定这个确切的术语。一个重大的疏忽是,可以看到一个大的柱状编辑框。
相似文章
在领域特定任务上,使用约3美元的API调用和零人工标注,将Qwen2.5-7B微调至Claude Haiku的96%性能
提出DV-DPO方法,仅用约3美元的API调用和零人工标注,即可在领域特定任务上微调Qwen2.5-7B,通过对抗性交叉检验达到Claude Haiku综合性能的96%。
Qwen3.6 35Ba3 已改变我的工作流程,甚至我使用电脑的方式
一位用户描述了 Qwen3.6 35B 如何结合 'pi' 工具,彻底改变了他们的计算机工作流程,实现了通过自然语言控制操作系统和自动化任务执行。他们完全在本地通过语音消息成功构建了一个落地页,展示了该模型的实用价值。
@Ex0byt: 各位,这是 Qwen3.6-27B-PRISM-PRO-DQ - 敬请享用!
发布了 Qwen3.6-27B-PRISM-PRO-DQ,这是 Qwen3.6-27B 的动态量化 GGUF 版本,去除了偏见/宣传内容,保留了原生 MTP 草稿头和视觉塔,支持无损推测解码以实现更快的推理。
@port_dev: https://x.com/port_dev/status/2054259445732110408
本文提供了一份详细教程,介绍如何通过 Unsloth Studio 和 Pi 编码框架配置基于 Qwen3.6-27B 的本地编码智能体。文章强调了使用 GGUF 量化模型在消费级硬件(如搭载 Apple Silicon 芯片的 Mac 电脑)上实现高效推理的优势。
本地运行 Qwen3.6-35B-A3B 作为编码 Agent:我的完整部署与可用配置
一份详尽指南,教你如何在 Apple Silicon 上通过 llama.cpp 本地运行 350 亿参数 Qwen3.6 模型,并驱动 pi 编码 Agent,附带优化后的启动参数与采样配置。