昇腾社区首页
中文
注册
开发者
下载

AdmitAndEvictConfig

功能描述

该接口表示单个嵌入表的准入和淘汰配置。该类提供了配置嵌入表特征准入和淘汰功能的参数,允许用户根据特定条件控制特征的准入和淘汰行为。

函数原型

1
2
3
4
5
class AdmitAndEvictConfig: 
     admit_threshold: Optional[int] = _DEFAULT_ADMIT_THRESHOLD 
     not_admitted_default_value: Optional[float] = 0.0 
     evict_threshold: Optional[int] = _DEFAULT_EVICT_THRESHOLD  # unit: seconds 
     evict_step_interval: Optional[int] = 0

参数说明

参数名

类型

可选/必选

说明

admit_threshold

int

可选

特征准入阈值。特征(在输入分布后)将在重复次数大于admit_threshold时被准入。

默认值为-1,表示特征准入功能未启用。

not_admitted_default_value

float

可选

未准入特征ID的嵌入值。

默认值为0.0,仅在admit_threshold为非默认值时生效。

evict_threshold

int

可选

特征淘汰阈值,单位为秒。

默认值为0,表示特征淘汰功能未启用。

evict_step_interval

int

可选

特征淘汰功能的步长间隔。

默认值为0,仅在evict_threshold为非默认值时生效。

使用示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from torchrec_embcache.distributed.configs import EmbCacheEmbeddingConfig,
 AdmitAndEvictConfig 
 # 假设默认值
 _DEFAULT_ADMIT_THRESHOLD = -1 
 _DEFAULT_EVICT_THRESHOLD = 0 
 EVICT_STEP_INTERVAL = 100  # 示例步长间隔
 # 假设 enable_admit 和 enable_evict 是布尔变量
 enable_admit = True 
 enable_evict = True 
 admit_threshold = 2 if enable_admit else _DEFAULT_ADMIT_THRESHOLD 
 evict_threshold = 2000_0000 if enable_evict else _DEFAULT_EVICT_THRESHOLD 
 # 创建 AdmitAndEvictConfig 实例
 admit_and_evict_config = AdmitAndEvictConfig( 
     admit_threshold=admit_threshold, 
     not_admitted_default_value=0.999, 
     evict_threshold=evict_threshold, 
     evict_step_interval=EVICT_STEP_INTERVAL 
 ) 
 # 假设 table_num 是嵌入表的数量
 table_num = 5 
 # 假设 embedding_dims 和 num_embeddings 是列表
 embedding_dims = [10, 20, 30, 40, 50] 
 num_embeddings = [100, 200, 300, 400, 500] 
 # 假设 weight_init 是一个函数
 def weight_init(size): 
     return torch.rand(size) 
 # 循环创建配置对象
 for i in range(table_num): 
     ec_config = EmbCacheEmbeddingConfig( 
         name=f"table{i}", 
         embedding_dim=embedding_dims[i], 
         num_embeddings=num_embeddings[i], 
         feature_names=[f"feat{i}"], 
         init_fn=weight_init, 
         weight_init_min=0.0, 
         weight_init_max=1.0, 
         admit_and_evict_config=admit_and_evict_config 
     ) 
      
     # 打印配置信息
     print(f"Embedding Table {i}: {ec_config}")