微调 Token 分类器
ClassifierInput
基类:TypedDict
在 ClassifierLossReduction 的 forward 方法中用作输入。
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
53 54 55 56 57 |
|
ClassifierLossReduction
基类:BERTMLMLossWithReduction
用于计算分类输出交叉熵损失的类。
此类用于计算损失,以及记录跨微批次的缩减损失。
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
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 |
|
forward(batch, forward_out)
计算微批次内的损失。微批次是单个 GPU 上的数据批次。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
batch
|
ClassifierInput
|
传递到 LitAutoEncoder 内部原始 forward 的数据批次。 |
必需 |
forward_out
|
Esm2FineTuneTokenOutput
|
分类头内部 forward 方法的输出。 |
必需 |
返回值
类型 | 描述 |
---|---|
Tensor
|
一个元组,其中损失张量将用于反向传播,字典将传递到 |
PerTokenLossDict | SameSizeLossDict
|
reduce 方法,目前仅用于日志记录。 |
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
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 |
|
reduce(losses_reduced_per_micro_batch)
跨微批次工作。(单个 GPU 上的数据)。
注意:目前仅用于日志记录,此损失将不会用于反向传播。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
losses_reduced_per_micro_batch
|
Sequence[SameSizeLossDict]
|
forward 的输出列表 |
必需 |
返回值
类型 | 描述 |
---|---|
Tensor
|
一个张量,它是损失的平均值。(用于日志记录)。 |
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
101 102 103 104 105 106 107 108 109 110 111 112 113 |
|
ESM2FineTuneTokenConfig
dataclass
基类:ESM2GenericConfig[ESM2FineTuneTokenModel, ClassifierLossReduction]
, IOMixinWithGettersSetters
ExampleConfig 是一个用于配置模型的数据类。
ModelParallelConfig 中的 Timers 是 megatron 向前兼容性所必需的。
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 |
|
get_loss_reduction_class()
损失函数类型。
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
203 204 205 |
|
ESM2FineTuneTokenModel
基类:ESM2Model
适用于微调的 ESM2 模型。
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
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 |
|
__init__(config, *args, include_hiddens=False, post_process=True, **kwargs)
构造函数。
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
|
forward(*args, **kwargs)
推理。
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
|
Esm2FineTuneTokenOutput
基类:BioBertOutput
来自 ESM2FineTuneTokenModel 的推理输出。
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
60 61 62 63 |
|
InMemoryPerTokenValueDataset
基类:Dataset
标记字符串的内存数据集,按需进行分词。
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 |
|
__getitem__(index)
获取与提供的索引关联的 BertSample。
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 |
|
__init__(data, tokenizer=tokenizer.get_tokenizer(), seed=np.random.SeedSequence().entropy)
初始化用于每个 token 分类微调的数据集。
这是一个内存数据集,不将掩码应用于序列。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
data
|
Sequence[Tuple[str, str]]
|
包含序列和目标数据的元组序列。 |
必需 |
tokenizer
|
BioNeMoESMTokenizer
|
要使用的分词器。默认为 tokenizer.get_tokenizer()。 |
get_tokenizer()
|
seed
|
int
|
用于重现性的随机种子。此种子与要检索的样本索引混合,以确保 getitem 是确定性的,但在不同的运行中可以是随机的。如果为 None,则生成一个随机种子。 |
entropy
|
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 |
|
__len__()
数据集的长度。
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
236 237 238 |
|
MegatronConvNetHead
基类:MegatronModule
用于残基级别分类的卷积神经网络类。
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
|
__init__(config)
构造函数。
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
119 120 121 122 123 124 125 126 127 128 129 130 |
|
forward(hidden_states)
推理。
源代码位于 bionemo/esm2/model/finetune/finetune_token_classifier.py
132 133 134 135 136 137 138 |
|