![[Bug]: [ERROR][Exception]: Exceptions from Trio nursery (2 sub-exceptions) -- **ERROR**: ERROR preTokenId.size[96805] must <= maxPositionEmb](https://www.chat-gpts.plus/wp-content/uploads/2026/07/6838-0dc40aa0.jpg)
[Bug]: [ERROR][Exception]: Exceptions from Trio nursery (2 sub-exceptions) — **ERROR**: ERROR preTokenId.size[96805] must <= maxPositionEmb
快速结论:该报错发生在 RAGFlow 使用知识图谱功能并调用 Qwen-72B 模型时,token ID 序列长度(96805)超过了模型允许的最大位置编码(maxPositionEmbeddings)。优先排查知识图谱抽取配置中的 ChunkMethod、Resolution 等参数是否导致生成了过长的 token 序列。
问题场景
用户在 RAGFlow v0.17.2-full 版本(基于 Ubuntu 22.04)中,使用知识图谱(Knowledge Graph)功能并配置 Qwen-72B 作为 LLM 时触发此错误。执行知识图谱抽取任务后,任务失败并抛出异常。
报错原文
[ERROR][Exception]: Exceptions from Trio nursery (2 sub-exceptions) -- **ERROR**: ERROR preTokenId.size[96805] must <= maxPositionEmbeddings from model: 32768
原因分析
可能原因:知识图谱抽取过程中生成的 token 序列长度(此处为 96805)超过了 Qwen-72B 模型支持的最大位置编码长度(maxPositionEmbeddings 值为 32768)。这通常与知识图谱的 ChunkMethod(分块方法)、Resolution(分辨率)或 GraphRagMethod 等参数设置有关,导致输入文本过长或分块不合理,使得 token 数量超出模型上下文窗口限制。
环境排查
- RAGFlow 镜像版本:v0.17.2-full(Issue 中确认)
- LLM 模型:Qwen-72B(请确认是否使用本地部署或 API 调用,以及该模型的 maxPositionEmbeddings 实际配置值)
- 操作系统:Ubuntu 22.04
- Python 及依赖环境:RAGFlow 内部使用的 transformers、tokenizers 版本可能与 Qwen-72B 的 tokenizer 配置冲突
- 知识图谱配置项:GraphRagMethod、Resolution、ChunkMethod 等参数(需用户提供具体值)
解决步骤
- 检查知识图谱抽取的配置参数,特别是
ChunkMethod、Resolution和GraphRagMethod的值。可优先尝试调整ChunkMethod为更小的分块策略(如512或1024token),以减少单次处理的 token 长度。 - 确认 Qwen-72B 模型的
maxPositionEmbeddings配置。如果是 API 调用,检查 API 文档是否有上下文窗口限制;如果是本地部署,检查模型配置文件中的max_position_embeddings是否被错误设置。 - 尝试将知识图谱数据拆分为更小的子图或减少单次任务的输入文本量,避免 token 序列超过模型限制。
- 如果问题持续,切换到支持更长上下文的模型(如 Qwen-72B 的 extended 版本或其他长上下文模型),或降低知识图谱分析的覆盖范围。
- 参考 RAGFlow 项目中的 task_executor.py,检查异常处理逻辑是否打印了更多上下文信息,便于进一步定位。
验证方法
修改配置后重新执行知识图谱任务,观察错误是否复现。如果 task_executor.py 中打印了完整的异常堆栈,确认 token 序列长度是否已降至 maxPositionEmbeddings 以下。



