跳转到主要内容

有观点的机器学习组织和配置

项目描述

microcosm-sagemaker

使用 SageMaker 的有观点机器学习

用法

关于最佳实践,请参阅 cookiecutter-microcosm-sagemaker

性能分析

请确保已安装 pyinstrument,可以使用 pip install pyinstrument 安装,或者通过安装带有 profiling 附加依赖项的 microcosm-sagemaker 来安装。

pip install -e '.[profiling]'

要启用应用程序的性能分析,请使用 runserver 中的 --profile 标志

runserver --profile

服务将记录它在性能分析模式中,并宣布导出的目录。对端点的每次调用都将进行性能分析,并将结果存储在性能分析目录中的带时间戳的 html 文件中。

实验跟踪

要使用 Weights and Biases,请使用 wandb 附加依赖项安装 microcosm-sagemaker

pip install -e '.[wandb]'

要启用 ML 仓库中的实验跟踪

  • 为您的 ML 模型选择实验跟踪存储。目前,我们只支持 wandb。为此,请在 app_hooks/train/app.pyapp_hooks/evaluate/app.py 中的 graph.use() 添加 wandb

  • 通过访问 https://circleci.com/gh/globality-corp/<MODEL-NAME>/edit#env-vars 并添加环境变量 WANDB_API_KEY 来将 wandb 的 API 密钥添加到 Circle CI 注入到 Docker 实例中的环境变量中。

  • Microcosm-sagemaker 自动将活动捆绑包及其依赖项的配置添加到 wandb 的运行配置中。

  • 要报告静态指标

class MyClassifier(Bundle):
    ...

    def fit(self, input_data):
        ...
        self.experiment_metrics.log_static(<metric_name>=<metric_value>)
  • 要报告时间序列指标
class MyClassifier(Bundle):
    ...

    def fit(self, input_data):
        ...
        self.experiment_metrics.log_timeseries(
            <metric_name>=<metric_value>,
            step=<step_number>
        )

注意,对于日志记录时间序列,必须提供 step 关键字参数。

工件测试

如果您想将您的工件测试报告给wandb,请在您的conftest.py文件顶部添加以下行。有关在pytest中使用插件的信息,请参阅此处

pytest_plugins = 'pytest_sagemaker'

它应由globality-build生成,但如果不是,请确保使用--capture=tee-sys运行工件测试。这将允许同时捕获和显示标准输出。

可重复性

此处建议,我们为Python、Numpy和PyTorch随机数生成器设置种子,并强制PyTorch操作为确定性。有关详细信息,请参阅microcosm-sagemaker/random.py

分布式训练

为了支持“分布式”训练 - 使用多个进程(如pytorch DistributedDataParallel),我们检测当前进程是否为“工作进程”(进程组中的非主成员)。工作进程将阻止与外部世界的通信 - 编写日志和保存工件。

项目详情


发行历史 发行通知 | RSS 源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

microcosm-sagemaker-0.9.5.tar.gz (27.2 kB 查看哈希值)

上传时间 源代码

支持者