开发 Web 界面以与机器学习 (ML) 模型交互是一项繁琐的任务。 和 流光,为您的 ML 解决方案开发演示应用程序很容易。 流光 是一个开源 Python 库,可以轻松创建和共享用于 ML 和数据科学的 Web 应用程序。 作为数据科学家,您可能想要展示您对数据集的发现,或部署经过训练的模型。 Streamlit 应用程序可用于向您的团队展示项目的进展情况,获得并与您的经理分享见解,甚至获得客户的反馈。
随着集成开发环境(IDE)的 亚马逊SageMaker Studio 木星实验室 3,我们可以在同一环境中构建、运行和提供 Streamlit Web 应用程序以用于开发目的。 这篇文章概述了如何以安全且可重现的方式在 Studio 中构建和托管 Streamlit 应用程序,而无需任何耗时的前端开发。 例如,我们使用自定义 亚马逊重新认识 演示,它将注释和标记上传的图像。 这将作为一个起点,并且可以推广到演示任何自定义 ML 模型。 这个博客的代码可以在这里找到 GitHub存储库.
解决方案概述
下面是我们解决方案的架构图。
用户首先通过浏览器访问 Studio。 与用户配置文件关联的 Jupyter 服务器在 Studio Amazon Elastic Compute Cloud (Amazon EC2) 实例中运行。 Studio EC2 实例中存在示例代码和依赖项列表。 用户可以在系统终端中运行 Streamlit 应用程序 app.py。 Studio 在 Jupyter 服务器中运行 JupyterLab UI,与笔记本内核分离。 Jupyter 服务器带有代理,允许我们访问我们的 Streamlit 应用程序。 应用程序运行后,用户可以通过调整 URL 通过 AWS Jupyter 代理启动单独的会话。
从安全方面来说,AWS Jupyter Proxy 通过 AWS 身份验证进行了扩展。 只要用户有权访问 AWS 账户、Studio 域 ID 和用户配置文件,他们就可以访问该链接。
使用 JupyterLab 3.0 创建工作室
必须安装带有 JupyterLab 3 的 Studio 才能使此解决方案起作用。 旧版本可能不支持本文中概述的功能。 有关详细信息,请参阅 Amazon SageMaker Studio 和 SageMaker Notebook Instance 现在随附 JupyterLab 3 笔记本,以提高开发人员的工作效率. 默认情况下,Studio 附带 JupyterLab 3。如果运行旧版本,您应该检查版本并更改它。 有关详细信息,请参阅 JupyterLab 版本控制.
您可以使用 AWS云开发套件 (AWS CDK); 有关详细信息,请参阅 使用 AWS CDK 设置 Amazon SageMaker Studio 和 Jupyter Lab 3. 或者,您可以使用 SageMaker 控制台更改域设置。 完成以下步骤:
- 在SageMaker控制台上,选择 域名 在导航窗格中。
- 选择您的域并选择 编辑.
- 针对 默认 Jupyter Lab 版本,确保版本设置为 木星实验室 3.0.
(可选)创建共享空间
我们可以使用 SageMaker 控制台或 AWS CLI 按照文档或此博客中的步骤将对共享空间的支持添加到现有域。 在 AWS 中创建共享空间具有以下优势:
- 协作:共享空间允许多个用户或团队就一个项目或一组资源进行协作,而无需复制数据或基础设施。
- 节省成本:与每个用户或团队创建和管理自己的资源不同,共享空间可以更具成本效益,因为资源可以汇集并在多个用户之间共享。
- 简化管理:通过共享空间,管理员可以集中管理资源,而不必为每个用户或团队管理相同资源的多个实例。
- 改进的可扩展性:共享空间可以更轻松地扩大或缩小以满足不断变化的需求,因为可以动态分配资源以满足不同用户或团队的需求。
- 增强的安全性:通过将资源集中在共享空间中,可以提高安全性,因为可以更轻松、更一致地应用访问控制和监控。
安装依赖项并在 Studio 上克隆示例
接下来,我们启动 Studio 并打开系统终端。 我们使用 SageMaker IDE 克隆我们的示例,并使用系统终端启动我们的应用程序。 这个博客的代码可以在这里找到 GitHub存储库. 我们从克隆存储库开始:
接下来,我们打开系统终端。
克隆后,在系统终端中通过运行以下命令安装依赖项以运行我们的示例代码。 这将首先通过运行 pip 安装依赖项 pip install --no-cache-dir -r requirements.txt
。 该 no-cache-dir
标志将禁用缓存。 缓存有助于存储安装文件(.whl
) 通过 pip 安装的模块。 它还存储源文件(.tar.gz
) 以避免在它们尚未过期时重新下载。 如果我们的硬盘驱动器上没有空间,或者如果我们想使 Docker 映像尽可能小,我们可以使用此标志,以便命令以最少的内存使用量运行完成。 接下来脚本将安装包 iproute
和 jq
,将在以下步骤中使用。sh setup.sh
运行 Streamlit 演示并创建可共享链接
要验证所有依赖项是否已成功安装并查看 Amazon Rekognition 演示,请运行以下命令:
将显示托管应用程序的端口号。
请注意,在开发过程中,自动重新运行脚本可能会有所帮助 app.py
在磁盘上被修改。 要做,所以我们可以修改runOnSave 配置选项 通过添加 --server.runOnSave true
标记我们的命令:
以下屏幕截图显示了应在终端上显示的内容的示例。
从上面的示例中,我们可以看到运行应用程序的端口号、域 ID 和工作室 URL。 最后,我们可以看到访问 streamlit 应用程序所需的 URL。 此脚本正在修改 Studio URL,替换 lab?
proxy/[PORT NUMBER]/
. 将显示 Rekognition 对象检测演示,如以下屏幕截图所示。
现在我们已经可以使用 Streamlit 应用程序,我们可以与有权访问此 Studio 域 ID 和用户配置文件的任何人共享此 URL。 为了更轻松地共享这些演示,我们可以通过运行以下命令检查状态并列出所有正在运行的 streamlit 应用程序: sh status.sh
我们可以使用生命周期脚本或共享空间来扩展这项工作。 不用手动运行 shell 脚本和安装依赖项,而是使用 生命周期脚本 来简化这个过程。 要与团队一起开发和扩展此应用程序并与同行共享仪表板,请使用 共享空间. 通过在 Studio 中创建共享空间,用户可以在共享空间中实时协作开发 Streamlit 应用程序。 共享空间中的所有资源都经过过滤和标记,从而更容易专注于 ML 项目和管理成本。 参考以下代码在Studio中制作自己的应用。
净化
一旦我们使用完该应用程序,我们就想释放监听端口。 为了让所有进程运行 streamlit 并释放它们以供使用,我们可以运行我们的清理脚本: sh cleanup.sh
结论
在本文中,我们展示了一个使用 Amazon Rekognition 为对象检测任务托管 Streamlit 演示的端到端示例。 我们详细介绍了构建快速 Web 应用程序的动机、安全注意事项以及在 Studio 中运行我们自己的 Streamlit 应用程序所需的设置。 最后,我们修改了 Web 浏览器中的 URL 模式,以通过 AWS Jupyter 代理启动一个单独的会话。
此演示允许您上传任何图像并可视化 Amazon Rekognition 的输出。 结果也会得到处理,您可以通过应用程序下载包含所有边界框的 CSV 文件。 您可以扩展此工作以注释和标记您自己的数据集,或修改代码以展示您的自定义模型!
作者简介
迪皮卡库拉尔 是 ML 工程师 亚马逊机器学习解决方案实验室. 她帮助客户集成 ML 解决方案来解决他们的业务问题。 最近,她为媒体客户建立了培训和推理管道,并为营销建立了预测模型。
马塞洛·阿伯勒 是 AWS AI 组织的 ML 工程师。 他正在领导 MLOps 的工作 亚马逊机器学习解决方案实验室,帮助客户设计和实施可扩展的 ML 系统。 他的使命是指导客户进行企业 ML 之旅,并加速他们的 ML 生产路径。
亚什沙 是科学经理 亚马逊机器学习解决方案实验室. 他和他的应用科学家和机器学习工程师团队致力于医疗保健、体育、汽车和制造领域的一系列机器学习用例。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图区块链。 Web3 元宇宙智能。 知识放大。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/build-streamlit-apps-in-amazon-sagemaker-studio/
- :是
- $UP
- 100
- 7
- a
- 以上
- 加快
- ACCESS
- 账号管理
- 横过
- 管理员
- AI
- 所有类型
- 分配
- 允许
- Amazon
- Amazon EC2
- 亚马逊重新认识
- 亚马逊SageMaker
- 亚马逊SageMaker Studio
- 和
- 任何人
- 应用
- 应用领域
- 应用的
- 应用
- 架构
- 保健
- AS
- 方面
- 相关
- At
- 认证
- 自动
- 汽车
- AWS
- BE
- 好处
- 博客
- 促进
- 箱
- 浏览器
- 建立
- 建筑物
- 建
- 商业
- by
- 缓存
- CAN
- 例
- 更改
- 改变
- 查
- 云端技术
- 码
- 合作
- 如何
- 完成
- 完成
- 计算
- 注意事项
- 安慰
- 控制
- 经济有效
- 成本
- 创建信息图
- 创造
- 习俗
- 合作伙伴
- data
- 数据科学
- 数据科学家
- 默认
- 需求
- 示 范 曲
- 部署
- 设计
- 详细
- 检测
- 开发
- 开发商
- 发展
- 研发支持
- 不同
- 码头工人
- 域
- 向下
- 下载
- 驾驶
- 动态
- 每
- 更容易
- 容易
- 工作的影响。
- 端至端
- 工程师
- 工程师
- 企业
- 环境
- 甚至
- 例子
- 现有
- 存在
- 延长
- 特征
- 反馈
- 文件
- 档
- 终于
- 姓氏:
- 专注焦点
- 以下
- 针对
- 发现
- Free
- 止
- 获得
- 得到
- 越来越
- 指南
- 硬
- 硬盘驱动器
- 有
- 有
- 医疗保健
- 有帮助
- 帮助
- 帮助
- 主持人
- 托管
- 创新中心
- How To
- HTML
- HTTPS
- ID
- 图片
- 实施
- 改善
- in
- 信息
- 基础设施
- 开始
- 可行的洞见
- 安装
- 安装
- 安装
- 例
- 代替
- 整合
- 集成
- 相互作用
- 接口
- IT
- 旅程
- JPG
- 保持
- 实验室
- 标签
- 发射
- 领导
- 学习
- 自学资料库
- 生命周期
- 友情链接
- 清单
- 听力
- 长
- 机
- 机器学习
- 使
- 制作
- 制作
- 管理
- 颠覆性技术
- 经理
- 经理
- 管理的
- 方式
- 手动
- 制造业
- 营销
- 可能..
- 媒体
- 满足
- 内存
- 可能
- 最小
- 使命
- ML
- 多播
- 模型
- 模型
- 改性
- 修改
- 模块
- 监控
- 更多
- 最先进的
- 动机
- 多
- 旅游导航
- 需求
- 需要
- 下页
- 笔记本
- 数
- 对象
- 物体检测
- of
- on
- 打开
- 开放源码
- 组织
- 概述
- 大纲
- 己
- 包
- 面包
- 径
- 模式
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 点
- 可能
- 帖子
- 问题
- 过程
- 处理
- 过程
- 生产
- 本人简介
- 进展
- 项目
- 项目
- 代理
- 目的
- 蟒蛇
- 快速
- 范围
- 宁
- 真实
- 实时的
- 最近
- 知识库
- 必须
- 岗位要求
- 资源
- 成果
- 运行
- 运行
- sagemaker
- 同
- 储
- 可扩展性
- 可扩展性
- 科学
- 科学家
- 科学家
- 脚本
- 安全
- 保安
- 分开
- 服务
- 会议
- 集
- 设置
- 格局
- Share
- 共用的,
- 共享
- 壳
- 应该
- 展示
- 如图
- 作品
- 小
- So
- 方案,
- 解决方案
- 解决
- 来源
- 太空
- 剩余名额
- 运动
- 开始
- 开始
- Status
- 步
- 步骤
- 商店
- 商店
- 精简
- 工作室
- 顺利
- SUPPORT
- 系统
- 产品
- 任务
- 团队
- 队
- 终端
- 这
- 其
- 他们
- 博曼
- 通过
- 次
- 耗时的
- 至
- 熟练
- 产品培训
- ui
- 上传
- 网址
- us
- 用法
- 使用
- 用户
- 用户
- 确认
- 版本
- 查看
- 卷筒纸
- 网络应用
- 网页浏览器
- 什么是
- 这
- 而
- WHO
- 将
- 中
- 也完全不需要
- 工作
- 加工
- 完全
- 您一站式解决方案
- 和风网