本文档解释了labml_nn仓库中不同模型的实验如何配置和运行。实验配置系统提供了一种标准化方法,用于设置、训练、验证和跟踪从Transformer到GAN和强化学习算法的各种模型架构的机器学习实验。有关这些实验中使用的特定优化器的信息,请参阅优化器;有关归一化技术的信息,请参阅归一化技术。
实验配置系统遵循分层结构,其中专用配置继承自更通用的基类。
来源:labml_nn/experiments/nlp_autoregression.py41-92 labml_nn/transformers/gpt/__init__.py87-105 labml_nn/lora/experiment.py26-62 labml_nn/transformers/configs.py144-197 labml_nn/experiments/mnist.py24-41
实验框架的核心是TrainValidConfigs类,它处理基本的训练和验证循环,并跟踪指标和模型输出。
TrainValidConfigs类提供:
来源:labml_nn/experiments/nlp_autoregression.py41-45 labml_nn/experiments/mnist.py24-63
基本配置系统经过扩展,可以处理特定类型的任务,例如NLP自回归或图像分类。
此类扩展了TrainValidConfigs,用于自回归NLP任务。
NLPAutoRegressionConfigs的主要特点:
来源:labml_nn/experiments/nlp_autoregression.py41-198
与NLPAutoRegressionConfigs类似,MNISTConfigs类扩展了TrainValidConfigs,用于使用MNIST数据集的图像分类任务。
来源:labml_nn/experiments/mnist.py24-106
不同的模型有自己的配置类,这些类继承自任务特定配置,并添加了模型特定参数。
TransformerConfigs类为Transformer模型提供了全面的配置系统。
来源:labml_nn/transformers/configs.py144-326
GPT模型通过Transformer特定配置扩展了NLPAutoRegressionConfigs。
来源:labml_nn/transformers/gpt/__init__.py87-105
LoRA模块中的Trainer类配置了使用LoRA对预训练模型进行微调的实验。
来源:labml_nn/lora/experiment.py26-62
让我们检查构成实验配置的关键组件。
模型通过专用配置类或直接在实验配置中进行配置。
来源:labml_nn/transformers/gpt/__init__.py146-158 labml_nn/lora/experiment.py119-135
优化器通过OptimizerConfigs类或自定义优化器选项进行配置。
来源:labml_nn/transformers/gpt/__init__.py161-218 labml_nn/experiments/nlp_autoregression.py201-212 labml_nn/transformers/configs.py52-60
数据集使用各种选项进行配置,数据加载器专门针对任务进行定制。
来源:labml_nn/experiments/nlp_autoregression.py257-337 labml_nn/lora/experiment.py172-189
实验执行遵循不同模型架构的标准化过程。
来源:labml_nn/transformers/gpt/__init__.py221-265 labml_nn/lora/experiment.py143-169 labml_nn/experiments/nlp_autoregression.py104-172
实验配置的典型生命周期包括:
来源:labml_nn/transformers/gpt/__init__.py221-265
来源:labml_nn/lora/experiment.ipynb18-62
配置系统使用基于装饰器的方法来定义配置参数的选项。
例如,为NLPAutoRegressionConfigs定义优化器:
来源:labml_nn/experiments/nlp_autoregression.py201-212 labml_nn/transformers/configs.py52-60
实验配置系统与跟踪系统集成,用于在训练和验证期间监控和记录指标。
跟踪的关键指标包括:
来源:labml_nn/experiments/nlp_autoregression.py104-111 labml_nn/experiments/mnist.py49-62
labml_nn中的实验配置系统为设置和运行不同模型和任务的机器学习实验提供了一个灵活且可扩展的框架。它提供:
该系统使研究人员和实践者能够高效地实验各种深度学习架构和技术,同时保持一致的接口和代码结构。