微调 token 回归器
FineTuneSeqLenBioBertConfig
dataclass
基类: BioBertConfig[MegatronBioBertFineTuneSeqLengthModel, SequenceLengthRMSEPlusBERTMLMLossWithReduction]
, IOMixinWithGettersSetters
BioBert 微调序列长度模型配置。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 |
|
get_loss_reduction_class()
损失函数类型。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
220 221 222 |
|
LoRAForGeneFormerTokenRegressor
基类: LoRA
用于 Genformer Token 回归的 LoRA。
这里有一些棘手的事情要让一切正常工作
- 必须更新 Transformer 的冻结逻辑,以便不冻结新的 head 层。
- 必须更新 LoRA 适配器逻辑,以从传递的模块中提取要适配的层的输入/输出大小(以前的方法与 nn 和 TE 兼容,但不与 geneformer 当前使用的 megatron tensor_parallel 模块兼容)。此方法包含一个建议的重构,以使这些方法更通用和可扩展,并使用结构模式匹配。我们应该将此要求推给 NeMo,因为我们不应复制适配器方法。
- NeMo 中存在大量关于正在调用哪个模块以及它继承特定 mixin 的假设。如果从 megatron 模块更新为 torch 模块或其他模块,则可能会破坏这一点。出于这个原因,通常首选函数式调用,并且此处进行了一些函数式调用,以避免在整个代码库中更新继承。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
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 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 |
|
__call__(model)
推理。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
262 263 264 265 266 |
|
input_size_getter(m)
获取所提供模型的输入大小。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
242 243 244 245 246 247 248 249 250 |
|
output_size_getter(m)
获取所提供模型的输出大小。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
252 253 254 255 256 257 258 259 260 |
|
selective_freeze(m, name=None, prefix=None)
如果名称是 'encoder' 或 'embedding' 之一,则冻结输入模型 (m
) 的 'encoder' 或 'embedding' 参数。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
268 269 270 271 272 |
|
transform(m, name=None, prefix=None)
如果名称在目标模块中,则转换输入模型。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 |
|
MegatronBioBertFineTuneSeqLengthModel
基类: MegatronBioBertModel
用于生物 Bert 微调和序列长度的 Megatron 模型。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
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 |
|
__init__(config, *args, include_hiddens=False, post_process=True, **kwargs)
构造函数。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
173 174 175 176 177 178 179 180 181 182 183 |
|
forward(*args, **kwargs)
推理。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 |
|
MegatronFineTuneOutput
基类: BioBertOutput
MegatronBioBertFineTuneSeqLengthModel 的推理输出类型。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
64 65 66 67 |
|
MegatronRegressionMLPHead
基类: MegatronModule
Megatron MLP head。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 |
|
__init__(config)
构造函数。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
156 157 158 159 160 161 162 163 |
|
forward(hidden_states)
推理。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
165 166 167 |
|
SequenceLengthRMSEPlusBERTMLMLossWithReduction
基类: BERTMLMLossWithReduction
损失函数。
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
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 |
|
forward(batch, forward_out)
计算批次中 labels
与前向输出中 token_logits
的损失。
将来,如果 forward_out 和 batch 中存在序列损失,则会将其扩展为处理其他损失类型。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
batch
|
SeqLenRmsepBatch
|
数据批次。每个张量的形状应为 [batch_size, , ],并与批次输出中该特定键的相应维度匹配。例如,“labels”和“token_logits”键应具有形状为 [batch_size, sequence_length] 的张量。 |
必需 |
forward_out
|
Dict[str, Tensor]
|
来自模型的前向输出。每个张量的形状应为 [batch_size, , ] |
必需 |
取自:https://github.com/NVIDIA/NeMo/blob/main/nemo/collections/nlp/models/language_modeling/megatron_gpt_model.py#L951-L976
源代码在 bionemo/geneformer/model/finetune_token_regressor.py
中
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 |
|