聚类参数配置
Archive/Merge/KMeans参数配置
Archive/Merge/KMeans参数按照通用参数中的ArchiveMode值进行配置(择一配置即可),特征聚类一次只能执行归档或者档案合并单个操作。
参数名称 |
默认配置值 |
可选值 |
含义 |
---|---|---|---|
ArchiveName |
"FeatureClustering" |
- |
一次归档/档案合并的任务名称,用于命名和标记一次归档/档案合并运算,长度不超过512字符。 |
ArchiveMode |
ARCHIVE |
|
归档模式。
|
FeatureDim |
512 |
- |
归档/档案合并的特征维度,需要FeatureRetrieval支持该维度特征检索。 取值范围:(0,4096]。 |
FeatureDataType |
FP32 |
FP32 |
当前的特征向量的数据类型,当前仅支持FP32类型的特征向量输入。 |
FeatureSource |
RANDOM |
|
|
MetricType |
IP |
IP |
特征向量相似度度量,当前仅支持Inner Product的距离相似度度。 |
ExactSearchIndexType |
FLAT |
|
NPU配置的小库检索算法的检索index类型。 |
ExactSearchThreshold |
50000 |
- |
启用NPU小库检索算法检索的阈值,因为NPU的检索创建的开销比CPU更高,故在数据量小于此阈值的情况下,使用CPU而不是NPU执行检索。 取值范围:大于0。 |
ApproximateSearchIndexType |
NONE |
|
NPU配置的大库检索算法的检索index类型,“NONE”表示不使用大库检索算法。 |
ApproximateSearchThreshold |
5000000 |
- |
启用NPU大库检索算法检索的阈值,在数据量较小的情况下,NPU的小库检索性能比大库检索性能更好,故在数据量高于其阈值,且配置了相关大库检索的算法情况下,使用对应的大库算法进行检索。 取值范围:大于0。 |
Nlist |
1024 |
- |
NPU大库检索算法相关参数,表示IVF的nlist数量,需要FeatureRetrieval支持该取值的大库算法。 |
Nprobe |
32 |
- |
NPU大库检索算法相关参数,表示IVF的nprobe数量。 “Nprobe”需要大于0且小于“Nlist”。 |
DimReduction |
TRUE |
|
NPU大库检索算法是否需要降维。 |
ShortDim |
64 |
- |
NPU大库检索算法相关参数,表示输入后降维的维度,需要FeatureRetrieval支持该维度进行降维。 |
Devices |
- |
- |
NPU使用的芯片ID,使用英文逗号分隔,详情可以使用npu-smi info查看。 “Devices”需要大于0且小于等于“UINT8_MAX”。 |
ThreadNum |
16 |
- |
执行任务的线程数,可以增加程序运行的并行度。 取值范围:(0, 256] |
ResourcesSize |
128 |
- |
NPU使用的内存池分配的大小,单位为MB。 取值范围:(0, 1024] |
参数名称 |
默认配置值 |
可选值 |
含义 |
---|---|---|---|
FeatureCount |
10000 |
- |
待归档特征数量。 在随机生成数据时,不支持FeatureCount设置超过5000000。 取值范围:(0, 100000000] |
NeedNormalize |
TRUE |
|
特征是否需要按模归一化(距离计算内积度量方式需要先按模归一化)。当前INT8数据不支持量化。 |
PointPointThreshold |
0.875 |
- |
聚类时点(特征)与点之间聚类的相似度阈值。 取值范围:[0, 1.0] |
PointClusterThreshold |
0.7 |
- |
点与类之间归档的相似度阈值。 取值范围:[0, 1.0] |
ClusterClusterThreshold |
0.8 |
- |
类与类之间合并的相似度阈值。 取值范围:[0, 1.0] |
MinRankDistance |
6 |
- |
最小排序距离。 取值范围:(0, 64] |
MaxRankDistance |
10 |
- |
最大排序距离。 取值范围:(0, 64] |
MinPicNum |
2 |
- |
档案里面最少的向量数,若执行归档后,某档案中的特征数量小于该值,则将其此档案中的全部特征设置为离群孤点。 取值范围:(0, 128] |
MaxCoverNum |
1 |
- |
封面档案的向量数。(当前参数对于MindX聚类尚无影响,为预留参数接口,待后续开发。) 取值范围:(0, 128] |
参数名称 |
默认配置值 |
可选值 |
含义 |
---|---|---|---|
ArchiveResultMergeThreshold |
0.6 |
- |
档案合并场景下,合并不同的归档结果时使用的相似度阈值。 取值范围:(0, 1.0] |
MergeArchivesCount |
0 |
- |
档案合并场景下,需要执行档案合并的归档结果总数。 取值范围:[0, 128] |
参数名称 |
默认配置值 |
可选值 |
含义 |
---|---|---|---|
FeatureCount |
10000 |
- |
KMeans聚类归档场景下待归档的特征向量总数,通常我们建议在聚类规模大于1千万以上时选用KMeans聚类的方式。单个芯片最多支持2500万底库。 取值范围:(0, 100000000] |
KMeansTimes |
6 |
- |
执行多轮KMeans聚类的数量,最少需要设置为1,最终聚类结果为多轮KMeans的结果合并获得。 取值范围:(0, 64] |
ArchiveNum |
1000000 |
- |
对“FeatureCount”条特征向量,预估将其聚为多少类的参考值,如果无明确参考可以将其设置为“FeatureCount”的十分之一,再基于此进行调参。(因为最终聚类结果为多轮合并获得,所以最终聚类的类别总数可能和配置的“ArchiveNum”数不同,“ArchiveNum”数仅作为参考值在单轮KMeans中使用。) 取值范围:(0, FeatureCount/2] |
TopK |
100 |
- |
表示对于全部的特征向量执行检索保存的“TopK”条特征向量数,“TopK”设置的越大,精度越高,但是性能可能会略有下降,请用户根据实际场景设置。 取值范围:(0, 512] |
MaxKMeansIterTimes |
30 |
- |
单轮KMeans的最大迭代次数,超过此迭代次数则单轮KMeans即会终止。 取值范围:(0, 128] |
MinFreqKMeans |
3 |
- |
多轮KMeans合并的结果中,认为某两个点在最终聚类结果中共同属于一个类的最低频率,不应设置超过“KMeansTimes”。 取值范围:(0, KMeansTimes] |
MaxFreqIso |
3 |
- |
多轮KMeans合并的结果中,认为某两个点在有一方为孤点或者均为孤点时,两个点在最终聚类结果中共同属于一个类的最高频率,不应设置超过“KMeansTimes”,且不应低于“MinFreqKMeans”值。 取值范围:(0, KMeansTimes] |