在生产中保存和恢复神经网络权重
Saving and restoring neural network weights in production
我目前正在构建一个使用神经网络的后端。
我需要保存权重(可能是 2 维、3 维或 4 维)并恢复它们。
我目前正在使用 heroku,因此需要将它们保存到 PostgreSQL 或 S3 存储桶中,并在每次系统启动时检索它。
在生产中存储和恢复 ML 应用程序权重的首选解决方案是什么,其中权重可能是数十万个条目,矩阵可能超过 100mb?
我们确实在 S3 上存储了神经网络权重,而且效果很好。
我们还会在使用新数据训练并更新到 s3 时更新这些权重。实时系统检查修改后的 s3 对象并根据存储的数据更新权重/神经网络。
https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html
aws s3api head-object --bucket my-bucket --key object.h5
您还可以为速度启用加速端点。如果您通过 Internet 下载对象,则需要这样做。
https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html
希望对您有所帮助。
只是为了完整性:使用 Postgres 和 Postgres 数据类型 ARRAY,也可以存储大型矩阵用于生产。
我目前正在构建一个使用神经网络的后端。 我需要保存权重(可能是 2 维、3 维或 4 维)并恢复它们。 我目前正在使用 heroku,因此需要将它们保存到 PostgreSQL 或 S3 存储桶中,并在每次系统启动时检索它。
在生产中存储和恢复 ML 应用程序权重的首选解决方案是什么,其中权重可能是数十万个条目,矩阵可能超过 100mb?
我们确实在 S3 上存储了神经网络权重,而且效果很好。
我们还会在使用新数据训练并更新到 s3 时更新这些权重。实时系统检查修改后的 s3 对象并根据存储的数据更新权重/神经网络。
https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html
aws s3api head-object --bucket my-bucket --key object.h5
您还可以为速度启用加速端点。如果您通过 Internet 下载对象,则需要这样做。
https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html
希望对您有所帮助。
只是为了完整性:使用 Postgres 和 Postgres 数据类型 ARRAY,也可以存储大型矩阵用于生产。