使用生成式 AI 和 Amazon Kendra 实现企业规模的图像字幕创建和搜索

news2024/11/27 13:46:55

Amazon Kendra 是一个由机器学习(ML)驱动的智能搜索服务。Amazon Kendra 重新构想了您的网站和应用程序的搜索功能,以便您的员工和客户可以轻松地找到散布在您组织内多个位置和内容存储库中的内容。

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库!

Amazon Kendra 支持各种文档格式,例如 Microsoft Word、PDF 和来自各种数据源的文本。在本文中,我们重点介绍通过显示的内容使图像可搜索的 Amazon Kendra 文档支持的扩展。图像通常可以使用补充的元数据(例如关键词)来搜索。但是,为成千上万的图像添加详细元数据需要大量的手动工作。生成式 AI (GenAI) 可以帮助自动生成元数据。通过生成文字字幕,GenAI 字幕预测为图像提供了描述性的元数据。然后,在文档摄入过程中,可以使用生成的元数据来丰富 Amazon Kendra 索引,从而无需任何手动工作即可搜索图像。

Amazon Kendra 是一个由机器学习(ML)驱动的智能搜索服务。Amazon Kendra 重新构想了您的网站和应用程序的搜索功能,以便您的员工和客户可以轻松地找到散布在您组织内多个位置和内容存储库中的内容。

Amazon Kendra 支持各种文档格式,例如 Microsoft Word、PDF 和来自各种数据源的文本。在本文中,我们重点介绍通过显示的内容使图像可搜索的 Amazon Kendra 文档支持的扩展。图像通常可以使用补充的元数据(例如关键词)来搜索。但是,为成千上万的图像添加详细元数据需要大量的手动工作。生成式 AI (GenAI) 可以帮助自动生成元数据。通过生成文字字幕,GenAI 字幕预测为图像提供了描述性的元数据。然后,在文档摄入过程中,可以使用生成的元数据来丰富 Amazon Kendra 索引,从而无需任何手动工作即可搜索图像。

例如,在对图像进行文档摄入过程中,可以使用 GenAI 模型为以下图像生成“一只狗躺在伞下的地面上”的文本描述。

7-1.ML-14376-intro-dog.png

对象识别模型仍然可以检测到“狗”和“伞”等关键词,但是 GenAI 模型通过识别狗躺在伞下,提供了对图像中所表示内容的更深入的理解。这有助于我们在图像搜索过程中构建更细化的搜索。文本描述作为自定义文档丰富(CDE)通过自动方式添加到 Amazon Kendra 搜索索引中。然后,搜索“狗”或“伞”的用户将能够找到该图像,如下面的截图所示。

7-2. ML-14376-kendra-search.png

在本文中,我们展示了如何在 Amazon Kendra 中使用 CDE 和在 Amazon SageMaker 上部署的 GenAI 模型。我们使用简单的示例演示 CDE,并提供分步指南,以便您可以在自己的亚马逊云科技账户中的 Amazon Kendra 索引中体验 CDE。它允许用户通过自然语言查询快速轻松地找到所需的图像,而无需手动标记或分类。该解决方案也可以根据不同应用程序和行业的需求进行定制和扩展。

使用 GenAI 进行图像字幕

使用 GenAI 对图像进行描述涉及使用 ML 算法生成图像的文本描述。该过程也称为图像字幕,它处于计算机视觉和自然语言处理(NLP)的交叉点。它在多模态数据的领域有应用,例如电子商务,其中数据包含文本形式的元数据以及图像,或者在医疗保健领域,数据可以包含 MRI 或 CT 扫描以及医生的笔记和诊断,只举几个用例。

GenAI 模型学习识别图像中的对象和特征,然后用自然语言生成对这些对象和特征的描述。最先进的模型使用编码器-解码器架构,其中图像信息被编码在神经网络的中间层,并解码为文本描述。这些可以被视为两个不同的阶段:从图像中提取特征和生成文本字幕。在特征提取阶段(编码器),GenAI 模型处理图像以提取相关的视觉特征,例如对象形状、颜色和纹理。在字幕生成阶段(解码器),模型基于提取的视觉特征生成图像的自然语言描述。

GenAI 模型通常在大量数据上进行训练,这使它们适合各种任务,而无需额外训练。通过少量学习也可以轻松地适应自定义数据集和新领域。预训练方法允许轻松地使用最先进的语言和图像模型来训练多模态应用程序。这些预训练方法还允许您根据数据选择最佳的视觉模型和语言模型作为图像字幕模型。

生成的图像描述的质量取决于训练数据的质量和数量、GenAI 模型的架构以及特征提取和字幕生成算法的质量。尽管使用 GenAI 进行图像描述是一个活跃的研究领域,但它在广泛的应用中显示出了非常好的结果,例如图像搜索、视觉叙事和视力障碍人士的辅助功能。

用例

GenAI 图像字幕在以下用例中非常有用:

  • 电子商务 - 图像和文本同时出现的常见行业用例是零售业。特别是电子商务存储了大量的数据作为产品图像以及文本描述。文本描述或元数据对于根据搜索查询显示最佳产品非常重要。此外,随着电商网站从第三方供应商获得数据的趋势,产品描述通常不完整,需要大量的人工小时数和由于在元数据列中标记正确信息而产生的巨大开销。基于 GenAI 的图像字幕特别适合自动化这一繁琐的过程。在自定义时尚数据(如时尚图像以及描述时尚产品属性的文本)上微调模型可以生成元数据,从而改善用户的搜索体验。

  • 营销 - 图像搜索的另一个用例是数字资产管理。营销公司存储大量需要集中化、易于搜索且可扩展的数字数据,这需要数据目录。一个中心化的数据湖具有信息丰富的数据目录,可以减少重复工作并使创意内容更广泛地共享,在团队之间保持一致性。对于广泛用于支持社交媒体内容生成的图形设计平台或企业环境中的演示文稿而言,更快的搜索可以通过呈现用户希望查找的图像来改善用户体验,并使用户能够使用自然语言查询进行搜索。

  • 制造业 - 制造业存储大量图像数据,如组件、建筑物、硬件和设备的架构蓝图。能够搜索这些数据使产品团队能够轻松地从已经存在的起点重新创建设计,从而消除了大量设计开销,加速了设计生成过程。

  • 医疗保健 - 医生和医学研究人员可以整理和搜索MRI和CT扫描、标本样本、疾病的图像(如皮疹和畸形)以及医生的笔记、诊断和临床试验细节。

  • 元宇宙或增强现实 - 广告商品是关于创造一个用户可以想象和认同的故事。随着人工智能驱动的工具和分析,比以往任何时候都更容易构建不仅一个故事,而是定制的故事,以吸引每个用户独特的品味和敏感性。这是图像到文本模型可以成为游戏规则的地方。视觉叙事可以帮助创建角色、将其调整到不同的样式,并为其添加字幕。它也可以用来驱动元宇宙或增强现实以及沉浸式内容(包括视频游戏)中的刺激体验。图像搜索使开发人员、设计师和团队能够使用自然语言查询搜索他们的内容,从而在各种团队之间保持内容的一致性。

  • 视力障碍者数字内容辅助功能 - 这主要是通过诸如屏幕阅读器、盲文系统(允许触觉阅读和书写)和特殊键盘(用于浏览网站和互联网上的应用程序)等辅助技术实现的。但是,图像需要以文本内容进行交付,然后以语音的形式进行交流。使用GenAI算法进行图像字幕是重新设计互联网、使其更具包容性的关键部分,为每个人提供访问、理解和交互在线内容的机会。

模型细节和用于自定义数据集的模型微调

在此解决方案中,我们利用了 vit-gpt2-image-captioning 模型,该模型可从 Hugging Face 获得,许可证为 Apache 2.0,无需进行进一步微调。Vit 是用于图像数据的基础模型,GPT-2 是用于语言的基础模型。两者的多模态组合提供了图像字幕的功能。Hugging Face 托管最先进的图像字幕模型,可以在几次点击中在亚马逊云科技中进行部署,并提供简单的部署推理端点。尽管我们可以直接使用预训练模型,但我们也可以自定义模型以适应特定领域的数据集、更多数据类型(如视频或空间数据)以及独特的用例。有几个 GenAI 模型,其中一些模型在某些数据集上表现较好,或者您的团队可能已经在使用视觉和语言模型。该解决方案提供了通过直接替换我们使用的模型来选择最佳执行视觉和语言模型作为图像字幕模型的灵活性。

对于定制到独特行业应用的模型,亚马逊云科技上的 Hugging Face 开源模型提供了几种可能性。可以对预训练模型进行测试以获得特定数据集,或对标记数据的样本进行训练以对其进行微调。新的研究方法还允许高效地组合任何视觉和语言模型,并在您的数据集上对其进行训练。然后,可以在 SageMaker 中部署这个新训练的模型进行本文介绍的图像字幕。

定制图像搜索的一个示例是企业资源计划(ERP)。在 ERP 中,从物流或供应链管理的不同阶段收集的图像数据可能包括税收收据、供应商订单、工资单等,需要自动分类以供组织内不同团队查阅。另一个示例是使用医疗扫描和医生诊断来预测新医学图像以进行自动分类。视觉模型从 MRI、CT 或 X射线图像中提取特征,文本模型使用医疗诊断对其进行字幕。

解决方案概述

下图显示了具有 GenAI 和 Amazon Kendra 的图像搜索体系结构。

7-3. ML-14376-architecture.png

我们从 Amazon Simple Storage Service (Amazon S3) 中摄入图像到 Amazon Kendra。在摄入 Amazon Kendra 期间,调用托管在 SageMaker 上的 GenAI 模型以生成图像描述。此外,通过 Amazon Textract 提取图像中可见的文本。图像描述和提取的文本存储为元数据,可用于 Amazon Kendra 搜索索引。摄入后,可以通过 Amazon Kendra 搜索控制台、API 或 SDK 搜索图像。

我们使用 Amazon Kendra 中的 CDE 高级操作在图像摄入步骤期间调用 GenAI 模型和 Amazon Textract。但是,我们可以在更广泛的用例中使用 CDE。使用 CDE,您可以在将文档摄入 Amazon Kendra 时创建、修改或删除文档属性和内容。这意味着您可以根据需要操作和摄入数据。这可以通过在摄入期间调用摄入前后 Amazon Lambda 函数来实现,这允许进行数据丰富或修改。例如,在摄入医疗文本数据时,我们可以使用 Amazon Medical Comprehend 将 ML 生成的洞察力添加到搜索元数据中。

您可以通过以下步骤使用我们的解决方案通过 Amazon Kendra 搜索图像:

  1. 将图像上传到图像存储库,如 S3 存储桶。

  2. 然后,Amazon Kendra 会索引图像存储库,这是一个可用于搜索结构化和非结构化数据的搜索引擎。在索引过程中,将调用 GenAI 模型和 Amazon Textract 来生成图像元数据。您可以手动触发索引或按预定义的计划触发索引。

  3. 然后,您可以使用自然语言查询(例如“查找红玫瑰的图像”或“展示狗在公园里玩的图片”)通过 Amazon Kendra 控制台、SDK 或 API 搜索图像。这些查询由 Amazon Kendra 处理,Amazon Kendra 使用 ML 算法理解查询背后的含义,并从索引的存储库中检索相关图像。

  4. 搜索结果以及相应的文本描述将呈现给您,使您可以快速轻松地找到所需的图像。

前提条件

您必须具备以下先决条件:

  • 一个亚马逊云科技账户

  • 通过 Amazon CloudFormation 提供和调用以下服务的权限:Amazon S3、Amazon Kendra、Lambda 和 Amazon Textract。

成本估算

部署此解决方案作为概念验证的成本预计如下表所示。这就是我们使用 Amazon Kendra 开发者版的原因,不建议用于生产工作负载,但为开发人员提供了低成本选项。我们假设 Amazon Kendra 的搜索功能在20个工作日内每天用于3个小时,因此计算与60个月活跃小时相关的成本。

服务时间消耗每月成本估计
Amazon S3存储10 GB数据,包括数据传输2.30 美元
Amazon Kendra开发者版,每月60小时使用67.90 美元
Amazon Textract对10,000张图像进行100%的文档文本检测15.00 美元
Amazon SageMaker每个模型在一个端点上部署实时推理,使用 ml.g4dn.xlarge,每天3小时,持续 20 天44.00 美元
..129.2 美元

使用 Amazon CloudFormation 部署资源

CloudFormation 堆栈部署以下资源:

  • 从 Hugging Face 中心下载图像字幕模型的 Lambda 函数,随后构建模型资产
  • 将推理代码和压缩的模型工件填充到目标 S3 存储桶的 Lambda 函数
  • 用于存储压缩模型工件和推理代码的 S3 存储桶
  • 用于存储上传的图像和 Amazon Kendra 文档的 S3 存储桶
  • 用于搜索生成的图像字幕的 Amazon Kendra 索引
  • SageMaker 实时推理端点,用于部署来自 Hugging Face 的图像字幕模型
  • 在按需丰富 Amazon Kendra 索引时触发的 Lambda 函数。它调用 Amazon Textract 和 SageMaker 实时推理端点。

此外,Amazon CloudFormation 还部署了在自定义资源 Lambda 函数中运行所需的所有 Amazon Identity and Access Management(IAM) 角色和策略、VPC 以及子网、安全组和互联网网关。

请完成以下步骤以预配资源:

  1. 单击启动堆栈us-east-1区域启动CloudFormation模板:

https://us-east-1.console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=kendra-genai-image-search&templateURL=https://aws-blogs-artifacts-public.s3.amazonaws.com/artifacts/ML-14376/kendra-genai-image-search.yaml?trk=cndc-detail

2. 单击下一步

3. 在指定堆栈详细信息页面上,将模板URL和参数文件S3 URI保留为默认值,然后单击下一步

4. 在后续页面上继续单击下一步

5. 单击创建堆栈以部署堆栈。

监控堆栈的状态。当状态显示为CREATE_COMPLETE时,部署完成。

摄入和搜索示例图像

请完成以下步骤以摄入和搜索图像:

  1. 在Amazon S3控制台上,在us-east-1 Region的kendra-image-search-stack-imagecaptions S3 bucket中创建一个名为images的文件夹。

  2. 上传以下图像到images文件夹。

7-4-1ML-14376-beach-300x201.png

7-5.ML-14376-birthday-dog-300x200.png

7-6.ML-14376-dog-300x201.png

7-7.ML-14376-newsletter-300x199.png

3. 导航到us-east-1区域的 Amazon Kendra 控制台。

4. 在导航窗格中,选择索引,然后选择您的索引(kendra-index)。

5. 选择数据源,然后选择 generated_image_captions

6. 选择立即同步

在继续下一步之前,请等待同步完成。

7. 在导航窗格中,选择索引,然后选择kendra-index

8.导航到搜索控制台。

9.尝试以下查询,可以单独使用也可以组合使用:“dog”、“umbrella”和“newsletter”,了解 Amazon Kendra 对哪些图像进行了高排名。

随意测试适合上传图像的自己的查询。

清理

要取消预配所有资源,请完成以下步骤:

  1. 在 Amazon CloudFormation 控制台上,选择导航窗格中的堆栈

  2. 选择堆栈 kendra-genai-image-search 并选择删除

等待堆栈状态更改为 DELETE_COMPLETE

结论

在本文中,我们看到了 Amazon Kendra 和 GenAI 如何结合来自动为图像创建有意义的元数据。最先进的 GenAI 模型非常适合根据图像内容生成文本字幕。这在医疗保健和生命科学、零售和电子商务、数字资产平台和媒体等行业都有广泛的用例。图像字幕对于建立更具包容性的数字世界和重新设计互联网、元宇宙和沉浸式技术以适应视力障碍人群的需求也至关重要。

通过字幕启用的图像搜索使这些应用程序的数字内容无需人工工作即可轻松搜索,并消除了重复工作。我们提供的CloudFormation 模板使得部署此解决方案以通过 Amazon Kendra 启用图像搜索变得简单直观。将图像存储在 Amazon S3 中并使用 GenAI 创建图像的文本描述的简单体系结构可以与 Amazon Kendra 中的 CDE 一起使用以提供此解决方案。

这只是 GenAI 与 Amazon Kendra 的一个应用。要深入了解如何使用 GenAI 与 Amazon Kendra 构建应用程序,请参阅使用 Amazon Kendra、LangChain 和大型语言模型快速构建高精度的生成式 AI 企业数据应用程序。对于构建和扩展 GenAI 应用程序,我们建议查看 Amazon Bedrock。

文章来源:https://dev.amazoncloud.cn/column/article/64e5e3785cf856038494b8cf?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=CSDN

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/952526.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux启动黑屏卡住Logo登录界面无法进入系统的终极解决方式

Linux启动黑屏 卡住Logo登录界面无法进入系统的终极解决方式 "⮫适用于ubuntu系统⮨" 起因经过方法1--甲说方法2--乙说方法3--丙说方法4--丁说 结果中途误删ubuntu的etc文件如何恢复于是,我重装了系统,没想到有意外收获(中途还把新…

C语言每日一练-------Day(9)

本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字:字符个数统计 多数元素 投票法 💓博主csdn个人主页&#xf…

ITMS介绍

ITMS(Integrated Terminal Management System),终端综合管理系统。 主要用于家庭网关的设备注册,初始化自动配置,软件版本升级,远程故障诊断修复和设备监控等。它通过北向连接服开系统用于接收业务工单&am…

CorelDRAW快捷键大全

CorelDRAW是一款非常优秀且专业的平面设计软件,为用户多种强大的平面设计所需要用到的功能,帮助用户能够更好的进行设计,快速的达到自己想要的标准。下面小编就给大家分享一下CorelDRAW快捷键大全,有需要的小伙伴快来看一看吧。 …

Vue2023 面试归纳及复习

1. Vue 3中的Composition API(Hooks)是什么?它与Options API有何不同? 答:Composition API是Vue 3中引入的一种新的API风格, 用于组织和重用组件逻辑。它与Options API相比, 提供了更灵活和可…

SQL sever中库管理

目录 一、创建数据库 1.1库界面方式 1.2SQL命令方式 二、修改数据库 2.1库界面方式 2.2SQL命令方式 三、删除数据库 3.1库界面方式 3.2SQL命令方式 四、附加和分离数据库 4.1附加和分离数据库概述 4.2作用 4.3附加和分离数据库方法 4.4示例 一、创建数据库 1.1库…

Spring——Spring读取文件

文章目录 1.通过 value 读取比较简单的配置信息2.通过ConfigurationProperties读取并与 bean 绑定3.通过ConfigurationProperties读取并校验4. PropertySource 读取指定 properties 文件5.题外话:Spring加载配置文件的优先级 很多时候我们需要将一些常用的配置信息比如阿里云os…

protobuf生成golang和grpc代码踩坑记

错误提示:seems to be defined in "*.proto", which is not imported by "*proto". To use it here, please add the necessary import. 这个地方主要是因为包名的问题,假设user.proto文件被product.proto import了,则u…

《Python趣味工具》——文字RPG游戏的开发(附人生选择模拟器的详细讲解及其他多种RPG游戏的源码)

今天我们来学习如何制作一个文字RPG游戏 。 内容主要分为3个部分: part1. 文字游戏(MUD)的趣味历史 part2. 文字游戏的设计方法 part3. 文字游戏功能实现 文章目录 一、文字游戏(MUD)的趣味历史:1. 什么是MUD游戏:2. …

未找到System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid) 方法错误

记录此问题实际上是由于.netFrame框架配置太高引起的,一般常见于二次开发中,因为二次开发一般都是引用的com组件,在引用过程中后台代码调用了 Method not found: System.Type System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(Syste…

研发规范第十三讲:阿里 - 如何进行项目稳定性建设

研发规范第十三讲:阿里 - 如何进行项目稳定性建设 本文是研发规范第13讲,阿里巴巴高级技术专家云狄将结合自己多年的经验,从开发规范、开发流程、技术规划与管理三个角度出发,分享对技术TL这一角色的理解与思考,欢迎一…

2、QT的信号与槽

一、什么是信号与槽 一个对象发送一个信号出去,另外一个对象接收到该信号后,会触发相应的槽函数 二、信号与槽的语法 connect(信号的发送者,SIGNAL(信号名称),信号的接收者,SLOT(槽函数)); 1、写法: QT 4 的写法 connect(sende…

Python爬虫:一个爬取豆瓣电影人像的小案例

从谷歌浏览器的开发工具进入 选择图片右键点击检查 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1b38c2a942c441fb8cb545a28bb35015.png 翻页之后发现网址变化的只有start数值,每次变化值为30 Python代码 import requests from bs4 import BeautifulSou…

零基础安装pycuda

零基础安装pycuda 前言安装Visual Studio安装C/C环境添加环境变量 安装pycuda查看系统位数查看python版本下载whl文件 前言 最近开始学习基于python的cuda编程,记录一下pycuda的安装。 在安装pycuda之前,首先需要有NVIDIA的独立显卡并且要安装CUDA和CUD…

程序与进程

一、程序是怎么被执行的 1.在程序中,由引导代码去调用程序中得main函数,而这个过程由链接器完成,链接器将引导代码链接到我们的应用程序构成可执行文件。 2.程序运行需要通过操作系统的加载器来实现,加载器是操作系统中的程序&a…

【javascript实操记录】

功能描述: 1. 利用split()方法对测试数据进行解析:学科,日期 2. 将测试数据封装成对象数组的格式 3. 使用数组的sort()方法和Date对象,将测试数据按照日期从早到晚进行排序 4. 表格数据的静态填充 5. 距离最近考试的倒计时天…

使用 NestJS 和 Prisma 构建 REST API

NestJS是Node.js框架之一,它最近获得了很多开发人员的喜爱和牵引力。本文将教你如何使用NestJS,Prisma,PostgreSQL和Swagger构建后端REST API。 文章目录 介绍您将使用的技术 先决条件假定的知识开发环境 生成 NestJS 项目创建 PostgreSQL 实…

链路聚合原理

文章目录 一、定义二、功能三、负载分担四、分类五、常用命令 首先可以看下思维导图,以便更好的理解接下来的内容。 一、定义 在网络中,端口聚合是一种将连接到同一台交换机的多个物理端口捆绑在一起,形成一个逻辑端口的技术。通过端口聚合&…

数据结构--5.0.1图的存储结构

目录 一、邻接矩阵(无向图) 二、邻接矩阵(有向图) 三、邻接矩阵(网) 四、邻接表(无向图) 五、邻接表(有向图) ——图的存储结构相比较线性表与树来说就复…

AIGC全流程赋能:从剧本到宣发,影视内容全新呈现

“猕猴桃”视频平台在今日发布了2023年第二季度财报,首次公布引入AIGC辅助剧本评估。内部数据显示,AIGC帮助提升剧本评估、预算规划等效率超过90%。“猕猴桃”视频平台还通过AIGC技术实现对影视剧的剧情理解,从而改进搜索结果、推荐和用户互动…