切换主题
向量搜索与文本分块参数配置手册
一、核心参数说明
| 参数名称 | 类型 | 默认值 | 作用范围 | 影响维度 | 中文说明 |
|---|---|---|---|---|---|
threshold | Double | 0.8 | 搜索结果过滤 | 精度 vs 召回率 | 相似度阈值:仅返回相似度分数高于此值的结果(0-1 之间,1 为完全匹配) |
limit | Integer | 5 | 返回结果数量 | 信息密度 | 返回结果数量:限制搜索返回的最大匹配条目数 |
chunkSize | int | - | 分块大小(tokens) | 上下文完整性 | 分块大小:每个文本块的目标 token 数量(1 token≈1 英文单词或 2-3 中文字) |
minChunkSizeChars | int | - | 最小字符分块 | 碎片化控制 | 最小字符分块:每个分块的最小字符数,避免过短无意义分块 |
minChunkLengthToEmbed | int | - | 嵌入最小长度 | 噪声过滤 | 最小嵌入长度:短于此长度的分块将被丢弃,不生成向量 |
maxNumChunks | int | - | 单文档最大分块数 | 系统负载 | 最大分块数:单个文档允许生成的最大分块数量 |
参数关系图示
mermaid
graph LR
A[chunkSize] -->|影响| B[模型处理效率]
C[threshold] -->|控制| D[结果精准度]
E[minChunkSizeChars] -->|必须大于| F[minChunkLengthToEmbed]二、分行业配置方案
1. 金融/法律(高严谨性)
典型场景:合同条款审查、法律条文检索、合规性检查
java
.threshold(0.9)
.chunkSize(1024)
.minChunkSizeChars(200)
.maxNumChunks(500)
.minChunkLengthToEmbed(30)
.limit(3)调整逻辑:
- 高阈值(0.9+)避免条款误匹配
- 大分块保留完整法律实体(如"甲方应在 30 个工作日内...")
- 限制结果数量确保权威性
2. 医疗健康(术语敏感型)
典型场景:电子病历检索、医学文献问答、症状诊断支持
java
.threshold(0.85)
.chunkSize(768)
.minChunkSizeChars(150)
.maxNumChunks(300)
.minChunkLengthToEmbed(50) // 过滤"主诉:"等引导词
.limit(1) // 医疗建议需唯一准确特殊处理:
- 需自定义停用词表过滤无意义片段
- 症状描述需保留完整时间序列(如"持续发热 3 天,伴随咳嗽")
[...其他行业配置保持相同完整结构...]
三、动态调优指南
调优流程
- 基线测试
- 使用行业默认值运行基准测试
- 指标监控
- 高要求场景(金融/医疗):准确率>85%
- 实时系统(客服):响应时间<500ms
- 迭代优化
- 数据量每增加 10 万:
threshold提升 0.02 - 长文档处理超时:
maxNumChunks按文档平均长度 ×2 调整
- 数据量每增加 10 万:
异常处理
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 结果遗漏重要信息 | threshold过高 | 降低 0.05~0.1 |
| 返回过多无关结果 | minChunkSizeChars太小 | 增加 50%~100% |
| 长文档处理超时 | maxNumChunks不足 | 按文档平均长度 x2 配置 |
四、附录:行业参数速查表
| 行业 | threshold | chunkSize | limit | 关键原则 |
|---|---|---|---|---|
| 金融法律 | 0.85~0.95 | 1024 | 1~3 | 大分块+高阈值 |
| 医疗 | 0.8~0.9 | 768 | 1 | 严格过滤短文本 |
| 电商 | 0.6~0.75 | 256 | 5~10 | 低阈值+多结果 |
| 教育 | 0.75~0.85 | 1024 | 3~5 | 超长分块+中阈值 |
| 客服 | 0.65~0.75 | 128 | 1 | 实时优先+小分块 |
mermaid
graph TD
A[chunkSize] -->|决定| B[模型输入限制]
C[minChunkSizeChars] -->|必须>| D[minChunkLengthToEmbed]
E[threshold] -->|影响| F[系统QPS]
G[maxNumChunks] -->|约束| H[内存使用量]