这一档模型的参数意味着什么
Ernie 128K 上下文模型档位提供 128000 的上下文长度,这意味着在单次交互中,模型能够处理的输入信息总量较大,为复杂知识问答和长文本理解提供了空间。引用上限为 123000,这限制了知识库召回内容在模型输入中的最大占比。单次最大输出未标注,通常表示模型会根据输入内容和内部逻辑生成尽可能完整的回复。图片输入和工具调用功能为 false,这表明该模型主要专注于文本处理,不具备多模态输入能力,也无法直接调用外部工具进行扩展操作。这些参数共同构成了模型在处理信息量、输出长度和功能扩展方面的边界。
配 Milvus 要定哪些
| 配置项 | 建议取法 | 这样取的依据 |
|---|---|---|
MILVUS_ADDRESS | host:19530 | Milvus 服务端点,确保 FastGPT 能够正确连接。 |
MILVUS_TOKEN | your_api_key_or_token | 用于 Milvus 认证,保障数据访问安全。 |
HNSW | M=16, efConstruction=128 | HNSW 索引参数,平衡召回精度与查询延时。M 决定邻居数,efConstruction 影响索引构建质量。 |
IP | L2 | 向量距离度量方式,L2 距离适用于多数文本嵌入场景。 |
| 召回条数 | 8-12 条 | 基于 123000 的引用上限,留出模型自身提示词空间,并考虑每段文本的平均长度。 |
| 文本分段长度 | 400-600 字符 | 避免单个文本段过长,影响召回效率和模型理解,同时确保信息完整性。 |
这两者互相约束的地方
模型上下文长度与 Milvus 召回内容直接相关。当 Milvus 返回的召回条数乘以每段文本长度的总和超过 Ernie 128K 上下文模型的 128000 上下文预算时,模型会截断输入,导致部分关键信息丢失。引用上限 123000 限制了 FastGPT 实际传递给模型的引用内容总量,即使 Milvus 返回更多条目,FastGPT 也会在此上限内进行裁剪。因此,向量库的召回条数应首先受 FastGPT 引用上限的约束,再结合模型上下文长度进行微调。Milvus 的 HNSW 索引参数(如 efConstruction)调大,虽然可能提升召回精度,但会增加索引构建时间和查询延时,需要权衡其对整体 RAG 流程响应速度的影响。
容易做错的三处
- 日志中出现
Milvus connection failed: [Errno 111] Connection refused错误,原因是MILVUS_ADDRESS配置不正确或 Milvus 服务未启动。 - 模型回答缺乏细节或关键信息缺失,但 Milvus 实际召回了相关文档,原因可能是 FastGPT 引用内容超过了 123000 的引用上限,导致内容被截断。
- 查询结果返回的召回条数远低于预期,即使数据库中有大量相关数据,原因可能是 Milvus 的索引参数(如
ef)设置过低,导致搜索范围受限。
怎么确认配好了
- 在 FastGPT 中配置并测试知识库,观察模型回答是否能有效利用召回的知识,并检查 FastGPT 调试界面中实际传递给模型的引用内容长度。
- 通过 Milvus 客户端工具连接到配置的
MILVUS_ADDRESS,执行简单的向量搜索查询,验证连接和基本操作是否正常,并观察查询耗时。 - 在 FastGPT 知识库管理页面,上传不同长度的文本进行分段,核对分段结果的平均长度是否符合预期,并检查 Milvus 集合中对应的向量数量。
- 逐步调整 Milvus 的 HNSW 索引参数,例如增大
ef,然后重新进行查询测试,观察查询结果的召回质量和查询延时的变化,以确定适合当前业务需求的平衡点。