释放生成性人工智能在工业运营中的潜力 机器学习博客

发掘生成式 AI 在工业运营中的潜力

关键要点

  • AI 与机器学习在制造业中推动了数字革命,提高了运营效率和生产力。
  • 生成式 AI 利用大型预训练模型,简化了工业数据的分析,无需为每种应用案例手动开发 ML 模型。
  • 通过动态构建多次提示,提升了生成代码的准确性,使普通工作人员也能方便地与数据进行互动。
  • Amazon Bedrock 提供了构建和规模化生成式 AI 应用的基本架构,优化了企业决策和维护过程。

在制造业日益变化的背景下,AI与机器学习(ML)的变革力量显而易见,正在推动一场数字革命,简化运营并提升生产力。然而,这种进展也给企业在数据驱动解决方案上带来了独特的挑战。工业设施面临着大量的非结构化数据,这些数据来自于生产线各处的传感器、遥测系统和设备。实时数据对于预测性维护和异常检测等应用至关重要,但针对如此时间序列数据每个工业用例开发定制的 ML 模型需要大量的数据科学家时间和资源,从而阻碍了大规模的广泛应用。

使用 和大型预训练基础模型(FMs),如 ,可以快速根据简单的文本提示生成多样的内容,包括对话文本和计算机代码,这种称之为 的方法,省去了数据科学家为每个用例手动开发特定 ML 模型的需要,从而使 AI访问更加民主化,甚至小型制造商也能受益。工作人员通过 AI生成的洞察提升了生产力,工程师能够主动检测异常,供应链管理者优化库存,工厂领导做出基于数据的明智决策。

然而,独立的 FMs 在处理复杂工业数据时,会面临上下文大小限制的挑战(通常 ),这导致了一些困难。为了应对这一点,可以利用 FMs 根据自然语言查询(NLQs)生成代码的能力。类似于

的代理开始发挥作用,它在高分辨率时间序列数据上运行此代码,同时利用 FMs 处理错误。PandasAI 是一个 Python 库,它将生成式 AI能力添加到流行的数据分析和处理工具 pandas。

复杂的 NLQs,比如时间序列数据处理、多级聚合以及透视或联接表操作,可能在采用零次提示时生成不一致的 Python 脚本准确性。

为了提高代码生成的准确性,我们建议动态构建 来处理 NLQs。多次提示通过向模型展示多个相似提示的预期输出,提供额外的上下文,从而提高准确性和一致性。在这篇文章中,提取出成功 Python 代码的多次提示包含于一个嵌入中,该嵌入用于类似数据类型(如来自物联网设备的高分辨率时间序列数据)。动态构造的多次提示为 FMs提供了最相关的上下文,并增强了 FMs在高级数学计算、时间序列数据处理和数据首字母缩略词理解上的能力。这种改善后的响应使企业员工和运营团队能够与数据互动,获取洞察而不需要广泛的数据科学技能。

除了时间序列数据分析,FMs 在多种工业应用中都显示出价值。维护团队可以评估资产健康,捕获 的功能汇总图像,以及利用智能搜索进行异常根因分析。为了简化这些工作流程,AWS 推出了 ,使您能够构建和扩展生成式 AI 应用,使用像 的最新预训练 FMs。借助 ,您可以简化 RAG开发过程,为工厂工人提供更准确的异常根因分析。我们的文章展示了一个为工业用例提供的智能助手,利用 Amazon Bedrock 解决 NLQ挑战,从图像生成零件摘要,并通过 RAG 方法增强设备诊断的 FM 响应。

解决方案概述

下图展示了解决方案的架构。

![](https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2024/03/19/industrial- 删除)

工作流包括三个不同的用例:

用例1:处理时间序列数据的 NLQ

时间序列数据的 NLQ 工作流包含以下步骤:

  1. 我们利用具备 ML 能力的条件监控系统进行异常检测,例如 ,用于监测工业设备健康。Amazon Monitron能够根据设备的振动和温度测量识别潜在的设备故障。
  2. 通过 和 处理 Amazon Monitron 数据,采集时间序列数据,并将其转换为表格 CSV 格式,存储于 (Amazon S3)桶中。
  3. 最终用户可以通过向 Streamlit 应用发送自然语言查询,与其 Amazon S3 中的时间序列数据开始对话。
  4. Streamlit 应用将用户查询发送到 ,进行查询的嵌入,并在包含先前 NLQ 和示例代码的 索引中执行相似性搜索。
  5. 相似性搜索完成后,插入前 N 个最相似的示例,包括 NLQ 问题、数据模式和 Python 代码到自定义提示中。
  6. PandasAI 将此自定义提示发送至 Amazon Bedrock Claude v2 模型。
  7. 应用程序使用 PandasAI 代理与 Amazon Bedrock Claude v2 模型互动,为 Amazon Monitron 数据分析和 NLQ 响应生成 Python 代码。
  8. 在 Amazon Bedrock Claude v2 模型返回 Python 代码后,PandasAI 在上传的 Amazon Monitron 数据上运行 Python 查询,收集代码输出并处理任何失败运行的必要重试。
  9. Streamlit 应用通过 PandasAI 收集响应,并向用户提供输出。如果输出令人满意,用户可以标记为“有用”,保存 NLQ 和 Claude 生成的 Python 代码至 OpenSearch Service。

用例 2:故障部件的摘要生成

我们的摘要生成用例包含以下步骤:

  1. 一旦用户确认哪个工业资产表现出异常行为,他们可以上传故障部件的图像,以确认根据其技术规格和操作条件,是否存在物理问题。
  2. 用户可以使用 从这些图像中提取文本文档数据。
  3. 提取的文本数据包括在 Amazon Bedrock Claude v2 模型的提示中,使模型能够生成故障部件的 200 字摘要。用户可利用此信息对部件进行进一步检查。

用例 3:根因诊断

我们的根因诊断用例包含以下步骤:

  1. 用户获取与故障资产相关的各种文档格式的企业数据(PDF、TXT 等),并将其上传到 S3 桶。
  2. 使用 Titan 文本嵌入模型和默认的 OpenSearch Service 向量存储,在 Amazon Bedrock 中生成这些文件的知识库。
  3. 用户提出与故障设备的根因诊断相关的问题。答案通过 Amazon Bedrock 知识库使用 RAG 方法生成。

前提条件

要遵循本文,您应满足以下前提条件:

  • 您需要拥有一个 AWS 账户,并且是一个具有管理权限的 (IAM)角色,以管理作为解决方案一部分创建的资源。更多细节,请参见 。
  • 本教程需要在 Linux、Mac 或 Windows 子系统的 bash 终端上安装 Python 3.9 或更高版本,并拥有一个 AWS 账户。我们还建议使用 (Amazon EC2)实例(Ubuntu Server 22.04 LTS)。
  • 【安装或更新】(https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) (AWS CLI),可在您的 PC 或 EC2 实例上进行安装。
  • Amazon Bedrock 模型。

部署解决方案基础架构

要设置您的解决方案资源,请按照以下步骤操作:

  1. 部署 模板 ,该模板创建了一个 OpenSearch Service 集合和索引、 笔记本实例及 S3 桶。您可以将此 AWS CloudFormation 堆栈命名为:genai-sagemaker。
  2. 在 JupyterLab 中打开 SageMaker 笔记本实例。您将发现该实例上已下载以下 :。
  3. 从以下目录运行笔记本: 。此笔记本将使用 SageMaker 笔记本加载 OpenSearch Service 索引,以保存来自 的键值对。
  4. 将数据文件夹 中的文档上传到 CloudFormation 堆栈输出中的 S3 桶。

接下来,您将为 Amazon S3 中的文档创建知识库。

  1. 在 Amazon Bedrock 控制台中,选择导航面板中的 知识库 。
  2. 选择 创建知识库 。
  3. 对于 知识库名称 ,输入名称。
  4. 对于 运行权限角色 ,选择 创建并使用新服务角色 。
  5. 对于 数据源名称 ,输入数据源的名称。
  6. 对于 S3 URI ,输入您上传的根因文档的 S3 路径。
  7. 选择 下一步 。

Titan 嵌入模型将自动被选中。

  1. 选择 快速创建新的向量存储 。
  2. 检查您的设置并通过选择 创建知识库 来创建知识库。
  3. 知识库创建成功后,选择 同步 将 S3 桶与知识库同步。
  4. 设置好知识库后,您可以通过询问类似“我的执行器移动缓慢,可能是什么问题?”的问题来测试 RAG 方法进行根因诊断。

下一步是在 PC 或 EC2 实例(Ubuntu Server 22.04 LTS)上部署所需库包的应用。

  1. 在本地 PC 上 ,与 AWS CLI 一起使用。为简单起见,您可以使用和部署 CloudFormation 堆栈时相同的管理角色。如果您正在使用 Amazon EC2,请 。
  2. 克隆 :

git clone https://github.com/aws-samples/unlocking-the-potential-of- generative-ai-in-industrial-operations

  1. 更改目录为 unlocking-the-potential-of-generative-ai-in-industrial-operations/src,并在此文件夹中运行 setup.sh 脚本来安装所需的包,包括 LangChain 和 PandasAI:

cd unlocking-the-potential-of-generative-ai-in-industrial-operations/srcchmod +x ./setup.sh ./setup.sh

  1. 使用以下命令运行 Streamlit 应用:

source monitron-genai/bin/activate python3 -m streamlit run app_bedrock.py <REPLACE WITH YOUR BEDROCK KNOWLEDGEBASE ARN>

提供您从上一步在 Amazon Bedrock 中创建的 OpenSearch Service 集合 ARN。

与您的资产健康助手聊天

完成端到端的部署后,您可以通过 localhost:8501 访问应用,这将打开带有 Web 界面的浏览器窗口。如果您在 EC2 实例上部署了应用,请 。您可以在不同的选项卡中导航以处理不同的用例。

探索用例 1

要探索第一个用例,请选择 数据洞察和图表 。首先上传您的时间序列数据。如果您没有现有的时间序列数据文件,可以上传以下 其中包含匿名的 AmazonMonitron 项目数据。如果您已经有 Amazon Monitron 项目,请参阅 将您的 Amazon Monitron 数据流式传输至 AmazonS3,并使用您的数据与此应用。

上传完成后,输入查询以启动与数据的对话。左侧边栏提供多种示例问题供您参考。以下屏幕截图展示在输入像“告诉我每个地点的警告或警报的传感器唯一编号的数量?”(一个难度高的问题)或“对于显示温度信号为不健康的传感器,您能计算每个显示异常振动信号的传感器的天数持续时间吗?”(挑战性问题)的提问时生成的响应和 Python 代码。

![](https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2024/03/08/genai- 删除)

![](https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2024/03/08/genai- 删除)

如果您对答案感到满意,您可以将其标记为 有用 ,并将 NLQ 和 Claude 生成的 Python 代码保存在 OpenSearchService 索引中。

![](https://d2908q01

Leave a Reply

Required fields are marked *