数字出版商一直在寻找方法来简化和自动化其媒体工作流程以尽快生成和发布新内容,但没有预言质量。
添加图像以捕获文本的本质可以改善阅读体验。机器学习技术可以帮助您发现此类图像。 “惊人的形象是吸引观众注意并引起与故事的互动的最有效方法之一 - 但这也必须是有道理的。”
在此AWS样本项目中,您可以看到如何使用Amazon Titan Foundation Models快速理解一篇文章并找到最佳的图像。这次,您直接从图像中生成嵌入。
语义搜索的关键概念是嵌入。嵌入是某些输入(图像,文本或两者兼有)的数值表示。当您有许多向量时,您可以测量它们之间的距离,而距离接近的向量在语义上相似或相关。
亚马逊BedRock是一项全面管理的服务,可从领先的AI公司,包括AI21实验室,人类,众多,Meta,Meta,稳定性AI和Amazon,具有单个API以及一套广泛的功能,可帮助您简化生成的AI应用程序,同时维护隐私和安全性的同时,从而提供高效的AI公司,包括AI21实验室,拟人化,cohere,meta,稳定性AI和亚马逊的高性能基础模型(FMS),可供选择。
亚马逊泰坦(Amazon Titan)最近在其系列泰坦多模式嵌入式中添加了一个新的嵌入模型。该新模型可用于多模式搜索,推荐系统和其他下游应用程序。
多模型模型可以理解和分析多种模式的数据,例如文本,图像,视频和音频。最新的亚马逊泰坦模型可以接受文本,图像或两者兼而有之。这意味着您使用相同的模型生成图像和文本的嵌入,并使用这些嵌入来计算两者的相似程度。


以下步骤通过一系列动作,可以实现语义图像和名人搜索。
在此示例中,您看到了如何使用Amazon Rekognition,Amazon Claceers,Amazon Bedrock和OpenSearch Service从图像中提取元数据,然后使用ML技术使用名人和语义搜索自动发现它们。这在出版行业中尤为重要,在出版行业中,速度在快速获取新鲜内容和多个平台方面至关重要。
作为下一步,将解决方案部署在您的AWS帐户中,并上传您自己的一些图像,以测试语义搜索如何适合您。
Sam Cli
该解决方案使用SAM CLI进行部署。确保使用最新版本的SAM CLI
Docker
该解决方案使用SAM CLI选项在容器内构建,以避免对本地依赖性的需求。您将需要Docker。
节点
该解决方案的前端是一个React Web应用程序,可以使用节点在本地运行
NPM
在本地运行Web应用程序或构建远程部署所需的软件包的安装需要NPM。
基本模型访问
如果您想与亚马逊基地岩的型号进行互动,则需要在可用的亚马逊基岩的一个区域中要求访问基本型号。确保阅读和接受模型的最终用户许可协议或EULA。
| 模型 | 最大令牌输入 | 嵌入维度 | 1K输入令牌的价格 | 1K产出令牌的价格 |
|---|---|---|---|---|
| 亚马逊多模式嵌入 | 128 | 1,024(默认),384,256 | 基岩价格 | N/A。 |
| 泰坦文字 - 表达 | 8k | N/A。 | 基岩价格 |
您需要请求访问上述两个模型。
当我们总结工作流程中的文本时,我们可以在Titan Text -Express模型上指定最大输出令牌,这确保我们将少于128个令牌传递给嵌入模型。
多模式嵌入模型还具有2048x2048的最大图像尺寸大小,我们作为图像嵌入lambda函数的一部分进行处理。
笔记:
目前,该部署用于部署到美国 - EAST-1区域。请检查Amazon Bedrock区域可用性,并更新Samconfig.toml文件以反映您所需的区域。
我们建议使用AWS Cloud9部署。如果您想使用cloud9部署解决方案,则需要以下内容,然后再继续进行以下操作:
m5.large作为实例类型。Amazon Linux 2作为平台。您可以从命令行/终端运行这些命令,也可以使用AWS Cloud9。
git clone https://github.com/aws-samples/semantic-image-search-for-articles.git cd semantic-image-search-for-articles如果您使用Cloud9,请将实例的EBS量至少增加到50GB。为此,请从Cloud9终端运行以下命令:
bash ./scripts/cloud9-resize.sh 50
有关环境大小的更多详细信息,请参见文档。
查看此文件:samconfig.toml
在这里,您可以命名堆栈,然后选择要部署的区域。
region = "us-east-1"检查您选择的区域中是否可以使用AWS服务。
由于部署将部署Amazon Cloudfront,因此大约需要20分钟。
Cloud9生成STS令牌以进行部署,但是,这些凭据仅持续15分钟,因此令牌将在部署完成之前到期,因此您将无法直接从Cloud9中看到输出。
如何使用短期凭据进行身份验证您可以导出访问密钥令牌,确保它们持续至少30分钟或1800秒:
export AWS_ACCESS_KEY_ID= < PASTE_ACCESS_KEY >
export AWS_SECRET_ACCESS_KEY= < PASTE_SECRET_ACCESS_KEY >
export AWS_SESSION_TOKEN= < PASTE_SESSION_TOKEN >(如果令牌确实过期,则可以将部署放置完成,检查云形式中的进度,然后在下面重新运行部署脚本 - 由于Amazon CloudFront资源将已经存在,部署将快速完成)
通过以下命令实现解决方案的部署:
npm install && npm run deploy该命令将运行一系列脚本,例如sam build , sam deploy和其他一些脚本,以使用正确的变量来设置前端环境。

该身份由Amazon Cognito管理。您将需要创建一个新用户才能登录。
您可以从CloudFormation输出中找到USERPOOL ID,然后选择该用户池并在那里创建一个新用户以登录。

完成后,CLI输出将显示CloudFront URL能够查看Web应用程序的值,例如https://d123abc.cloudfront.net/-您也可以在CloudFormation Outputs中看到这一点。
Web应用程序允许用户将图像上传到S3,并通过OpenSearch进行索引,并发出查询OpenSearch,以返回与文章内容最相关的前10个图像。
为避免产生未来的费用,请删除资源。
sam delete ,或转到CloudFormation,选择您通过上述部署脚本部署的堆栈,然后删除堆栈。 
有关更多信息,请参见贡献。
该图书馆已获得MIT-0许可证的许可。请参阅许可证文件。