【问题标题】:Flask endpoint vs Sagemaker endpointFlask 端点与 Sagemaker 端点
【发布时间】:2020-02-10 16:02:28
【问题描述】:

我想构建一个简单的网络应用程序,人们可以在其中输入汽车的一些参数,我的机器学习算法会根据这些参数预测汽车的价格。我想学习 aws,因此想在那里部署和托管所有内容。

通过检查websitestutorials,我确定了我需要执行的以下步骤:

  1. 收集数据,训练模型
  2. 围绕腌制模型构建 Flask api 以提供预测服务
  3. 创建漂亮的 css/html 前端
  4. 创建一个泊坞窗图像
  5. 将 docker 镜像推送到 AWS ECR 广告上传模型工件到 S3
  6. 创建 Sagemaker 预测端点
  7. 使用 Chalice 创建 API 端点

我不明白的是:

  1. 如果我已经有一个可以预测价格的烧瓶端点,为什么还需要创建一个 sagemaker 端点(和 Chalice 端点)?我不能只分拆将调用烧瓶端点并给出预测的 EC2 实例吗?
  2. 我描述的步骤是使用 ML 模型创建 Web 应用程序并将其部署到 AWS 的最有效方法吗?

很高兴了解您的意见!

【问题讨论】:

    标签: python amazon-web-services flask


    【解决方案1】:

    显然有许多不同的架构可以实现您想要做的事情。

    这是一个帮助我实现类似目标的方法:

    1) 设置 AWS S3/RDS 以进行数据存储/收集等 - 您可以使用 S3 存储数据以进行训练,以及用户可以从您的 Web 应用程序上传数据的地方。您可以使用 RDS 存储任何元数据并跟踪 S3 存储桶中的所有项目。

    2) 使用 Elastic Beanstalk 托管您的 Web 应用程序。我已经构建了一些 Django 应用程序(而不是 Flask),并且能够轻松地使用 Elastic Beanstalk 集成、部署等应用程序。此外,Elastic Beanstalk 附带一系列功能,可帮助您轻松管理网站流量。

    3) 使用 Sagemaker 部署您的模型。部署后,您可以非常轻松地使用 Amazon 的 SDK Boto3 在您的 Web 应用程序和模型之间发送数据以进行预测。

    总体思路是将数据、Web 应用程序和模型拆分为单独的部分,以便在找到适合的更好解决方案时可以轻松地将架构的一部分替换为另一部分。

    【讨论】:

    • 听起来不错!但是,我仍然不确定为什么 sagemaker 端点比烧瓶端点更有意义?如果 sagemaker 端点仍然使用烧瓶端点,我为什么要创建它?为什么我不能直接使用烧瓶端点?
    • sagemaker 端点具有许多优势,例如处理流量和用于将其连接到 Web 应用程序的 SDK。另一方面,根据您的实例,Sagemaker 端点可能会非常昂贵。 Flask 端点也可以正常工作 - 只要您将应用程序的预测部分与其他 Web 应用程序功能分开,您就可以轻松尝试即插即用,看看有什么效果。
    • 酷,谢谢!关于你关于预测部分和其他网络应用程序功能分离的最后一点,我该怎么做(我不确定我是否理解)?我是否要创建两个应用程序:一个烧瓶网络应用程序用于除预测之外的所有功能,另一个烧瓶网络应用程序仅用于预测?或者你说的分离是什么意思?
    • 完全正确 - 如果您使用 Sagemaker 端点,AWS 已经构建了 Boto3 开发工具包,这将使这变得非常容易 - 如果您使用自己的 Flask '端点',则必须在自己做两部分,这可能不会太难。
    猜你喜欢
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    相关资源
    最近更新 更多