数据模块
ESM数据模块
基类: MegatronDataModule
ESMDataset
的 LightningDataModule 包装器。
源代码位于 bionemo/esm2/data/datamodule.py
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 |
|
tokenizer: tokenizer.BioNeMoESMTokenizer
property
返回分词器。
__init__(train_cluster_path, train_database_path, valid_cluster_path, valid_database_path, seed=42, min_seq_length=None, max_seq_length=1024, micro_batch_size=4, global_batch_size=8, num_workers=10, persistent_workers=True, pin_memory=True, rampup_batch_size=None, mask_prob=0.15, mask_token_prob=0.8, mask_random_prob=0.1, random_mask_strategy=dataset.RandomMaskStrategy.ALL_TOKENS, tokenizer=tokenizer.get_tokenizer(), dataloader_type='single')
初始化 ESMDataModule。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
train_cluster_path
|
str | PathLike
|
包含 UniRef90 训练集群的 parquet 文件的路径。 |
必需 |
train_database_path
|
str | PathLike
|
将 UniRef90 集群 ID 映射到序列的 sqlite 文件的路径。 |
必需 |
valid_cluster_path
|
str | PathLike
|
包含 UniRef50 验证集群的 parquet 文件的路径。 |
必需 |
valid_database_path
|
str | PathLike
|
将 UniRef50 集群 ID 映射到序列的 sqlite 文件的路径。 |
必需 |
seed
|
int | None
|
输入随机种子。如果为 None,则随机初始化。默认为 42。 |
42
|
min_seq_length
|
int | None
|
是否将序列填充到最小长度。如果为 None,则序列将填充到最大序列长度。默认为 None。 |
None
|
max_seq_length
|
int
|
ESM transformer 的最大上下文长度。默认为 1024。 |
1024
|
micro_batch_size
|
int
|
传递给 MegatronDataSampler。默认为 4。 |
4
|
global_batch_size
|
int
|
传递给 MegatronDataSampler。默认为 8。 |
8
|
num_workers
|
int
|
pytorch Dataloader 的工作线程数。默认为 10。 |
10
|
persistent_workers
|
bool
|
是否在 epoch 之间保持工作线程存活。默认为 True。 |
True
|
pin_memory
|
bool
|
是否在 pytorch Dataloader 中固定 GPU 内存。默认为 True。 |
True
|
rampup_batch_size
|
list[int] | None
|
传递给 MegatronDataSampler。默认为 None。 |
None
|
mask_prob
|
float
|
掩码令牌并使其出现在损失函数中的总体概率。默认为 0.15。 |
0.15
|
mask_token_prob
|
float
|
分配到 |
0.8
|
mask_random_prob
|
float
|
分配给随机氨基酸的掩码令牌百分比。默认为 0.1。 |
0.1
|
random_mask_strategy
|
RandomMaskStrategy
|
是否将随机掩码令牌替换为所有令牌或仅氨基酸。默认为 RandomMaskStrategy.ALL_TOKENS。 |
ALL_TOKENS
|
分词器
|
BioNeMoESMTokenizer
|
ESM2 分词器。默认为 |
get_tokenizer()
|
dataloader_type
|
Literal['single', 'cyclic']
|
要使用的数据加载器类型。默认为 "single"。 |
'single'
|
源代码位于 bionemo/esm2/data/datamodule.py
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
|
setup(stage='')
设置 ESMDataModule。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
stage
|
str
|
未使用。 |
''
|
引发
类型 | 描述 |
---|---|
RuntimeError
|
如果未附加 trainer,或者未设置 trainer 的 max_steps。 |
源代码位于 bionemo/esm2/data/datamodule.py
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 |
|
test_dataloader()
引发未实现错误。
源代码位于 bionemo/esm2/data/datamodule.py
219 220 221 |
|
train_dataloader()
返回训练数据的数据加载器。
源代码位于 bionemo/esm2/data/datamodule.py
211 212 213 |
|
val_dataloader()
返回验证数据的数据加载器。
源代码位于 bionemo/esm2/data/datamodule.py
215 216 217 |
|