有观点的机器学习组织和配置
项目描述
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.py
和app_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
),我们检测当前进程是否为“工作进程”(进程组中的非主成员)。工作进程将阻止与外部世界的通信 - 编写日志和保存工件。
项目详情
microcosm-sagemaker-0.9.5.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0c4c71857c76e9fd52a76eca9ff634267dd033e344ad0294ebddd39cd03c4b85 |
|
MD5 | c2b81bdc58850cff49ad95f9d8fbe880 |
|
BLAKE2b-256 | 85be23d9dd0f34034610854646d1f803eb1f634bb2e2913f4200ad66cb1383e2 |