亚马逊云科技产品测评』活动征文|通过使用Amazon Neptune来预测电影类型初体验

news2024/12/26 23:30:35

文章目录

    • 福利来袭
    • Amazon Neptune
      • 什么是图数据库
      • 为什么要使用图数据库
      • 什么是Amazon Neptune
      • Neptune 的特点
    • 快速入门
      • 环境搭建
        • notebook
      • 图神经网络快速构建
        • 加载数据
        • 配置端点
        • Gremlin 查询
        • 清理
    • 删除环境
        • S3 存储桶删除

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道

福利来袭

前几天有小伙伴在群里灵魂发问:双11到来之际,阿里云、华为云、腾讯云哪家云服务的价格优惠力度最大?看到这个问题,群友各抒己见,展开了激烈的讨论,最终得出结论:三家国内云服务厂商提供的产品差异不大,价格优惠也不相上下。

在这里插入图片描述

看到这里,我将目光默默的转向了国外的云服务厂商亚马逊云(AWS)。大家作为 IT 人应该都知道亚马逊云在全球云市场中的地位举足轻重。据2021年全球云计算IaaS市场报告显示,亚马逊云市场份额高达38.9%,而国内最牛的阿里云也仅占9.5%。

来到亚马逊云的官网,我发现亚马逊云科技提供了100余种产品免费套餐。其中,计算资源Amazon EC2首年12个月免费,750小时/月;存储资源 Amazon S3 首年12个月免费,5GB标准存储容量;数据库资源 Amazon RDS 首年12个月免费,750小时;Amazon Dynamo DB 25GB存储容量 永久免费。

在这里插入图片描述

至于 活动地址 嘛,双手奉上,赶快来白嫖呀!同时给大家奉上数据库免费试用链接及上手教程

在AWS帐号注册过程中值得注意的一点:填写信用卡或者借记卡卡号时,虽然网址中标记的是VISA或者mastercard,其实普通的信用卡也是可以的。

当然除了价格优势之外,亚马逊云科技的优势还体现在以下方面:

  • 亚马逊云科技负责云自身的安全合规,不仅保证底层云基础设施和云服务的安全和合规;还提供了超过280多项安全、合规和治理方面的服务与工具。
  • 亚马逊云科技有着覆盖全球的基础设施。
  • 亚马逊云科技拥有超过200大类的云服务,从广度和深度上都能满足数字化出海和出海数字化的技术需求。
  • 亚马逊云科技与全球超过10万家合作伙伴一起为出海企业提供从咨询、迁移到解决方案构建、到云上交付和运维的完整服务。
  • 在全球,亚马逊是多个领域的引领者,包括亚马逊电商、智能物流、智能语音助手、智慧零售以及设备等多个领域。

Amazon Neptune

在了解Amazon Neptune之前,我们先来了解一下“图数据库”的概念。

什么是图数据库

在这里插入图片描述

如上图所示,将结点的人物和箭头表示的关系构成的图进行存储和查询的数据库就被称为图数据库。图数据库强调数据之间的关联关系,它将数据间的联系视为和数据本身同等重要。

为什么要使用图数据库

在互联网飞速发展的今天,传统的关系型数据库在处理关系操作方面表现出疲软的态势,而图数据库通过存储数据与关系,能将访问数据结点和关系的操作提升至线性时间复杂度,甚至能在一秒内遍历百万级的关系边,性能显著。

我们可以利用图数据库以多种方式表示现实世界实体之间的相互关系,包括行为、所有权、亲属关系、购买选择、个人联系、家庭关系等。以下是截止2021年8月,DB-ENGINES中图数据库前二十位的排行榜名单,我们可以看到Amazon的Neptune排在第八位。接下来就让我们来了解下Amazon Neptune。

在这里插入图片描述

什么是Amazon Neptune

Amazon Neptune是一项快速、可靠且完全托管式的图数据库服务,可用来帮助我们轻松构建和运行适用于高度互连数据集的应用程序。Neptune的核心是一个专门打造的高性能图形数据库引擎,此引擎经过优化,可存储数十亿条关系并以数毫秒级延迟查询图形。

Neptune 的特点

  • Neptune 支持流行的图表查询语言 Apache TinkerPop W3C SPARQL GrimlinNeo4JOpenPher,可让我们构建查询,高效地浏览高度互连数据集。
  • Neptune具有高度可用性,带有只读副本, point-in-time Amazon S3 的持续备份以及跨可用区的复制。
  • Neptune 提供了数据安全功能,并支持加密静态数据和传输中的数据。
  • Neptune 是完全托管的,因此再也无需担心数据库管理任务,例如硬件预配置、软件修补、设置、配置或备份。

光说不练假把式,接下来就让我们操练起来吧!

快速入门

环境搭建

首先我们需要登录到AWS的控制台

在这里插入图片描述

在控制台顶上搜索cloudshell

在这里插入图片描述

打开cloudshell之后如果出现如下页面,需要切换一下节点,如图所示

在这里插入图片描述

然后我们就可以创建 S3 存储桶了

在这里插入图片描述

其中cheetah-qing为自己的桶名,需要自定义。

我发现该桶名不支持下划线“_”。

接着我们需要通过命令来创建“堆栈“,命令如下:

aws cloudformation create-stack --stack-name get-started-neptune-ml --template-url https://s3.amazonaws.com/ee-assets-prod-us-east-1/modules/4f0f18a83e6148e895b10d87d4d89068/v1/gcr-buildon-selfpace/gcr-buildon-neptune-ml-nested-stack.json --capabilities CAPABILITY_IAM --region us-east-1 --disable-rollback

在这里插入图片描述

执行完命令后,大约需要等待30分钟:此时后台会启动一系列的服务

我们可以通过在控制台顶上搜索cloudformation来查看堆栈是否创建完成,如果get-started-neptune-ml显示 CREATE_COMPLETE表示服务创建完成。

notebook

在搜索栏输入neptune,点击进入,导航栏选择“笔记本”,点击右侧的“查看笔记本文档”。

在这里插入图片描述

倘若没有 notebook,需确定地区是否选择正确,默认为美国东部,其次确认后台服务是否都启动完成。

图神经网络快速构建

我们可以根据上方打开的“ Amazon Neptune ML ”笔记来进行操作。在控制台输入命令来检查集群是否已正确配置可以运行 Neptune ML

在这里插入图片描述

开始试验之前先来张步骤图感受下

在这里插入图片描述

加载数据

我们使用 Bulk Loader来加载数据,其流程与将数据摄入Amazon Neptune完全相同。通过编写脚本可以实现自动执行从MovieLens网站下载数据,调整数据格式,并将数据载入Neptune的全过程。脚本如下:

s3_bucket_uri="s3://cheetah-qing"
# remove trailing slashes
s3_bucket_uri = s3_bucket_uri[:-1] if s3_bucket_uri.endswith('/') else s3_bucket_uri

cheetah-qing为我们刚才创建的桶名称

执行response = neptune_ml.prepare_movielens_data(s3_bucket_uri)命令即可下载 MovieLens 数据,并将其调整为可被 NeptuneBulk Loader 兼容的格式。

执行结果为

Completed Processing, data is ready for loading using the s3 url below:
s3://cheetah-qing/neptune-formatted/movielens-100k

操作完成后,执行%load -s {response} -f csv -p OVERSUBSCRIBE --run加载数据。

在这里插入图片描述

配置端点

执行命令来创建端点,并获取到推理端点的端点名称。

setup_node_classification=True
setup_node_regression=True
setup_link_prediction=True
setup_edge_classification=True
setup_edge_regression=True

endpoints=neptune_ml.setup_pretrained_endpoints(s3_bucket_uri, setup_node_classification, setup_node_regression, setup_link_prediction, setup_edge_classification, setup_edge_regression)

node_classification_endpoint=endpoints['node_classification_endpoint_name']['EndpointName']
node_regression_endpoint=endpoints['node_regression_endpoint_name']['EndpointName']
link_prediction_endpoint=endpoints['prediction_endpoint_name']['EndpointName']
edge_classification_endpoint=endpoints['edge_classification_endpoint_name']['EndpointName']
edge_regression_endpoint=endpoints['edge_regression_endpoint_name']['EndpointName']
Gremlin 查询

现在终于到了我们的电影类型预测环节了,我们一起来看看如何使用这些端点借助 Gremlin 查询进行推断。

在预测电影类型前,我们先执行

在这里插入图片描述

来验证图谱中,Forrest Gump 这个 moviegenre不包含任何 genre 值。

接下来我们修改这个查询,来预测 Apollo 13 的类型,开始之前先来设置一下:

  • 指定要在 Gremlin 查询中使用的推理端点:g.with("Neptune#ml.endpoint","<INSERT ENDPOINT NAME>")
  • 指定我们想要获取该属性的预测值:with("Neptune#ml.classification")

将这些内容结合在一起就可以得到下方的查询,该查询可通过我们的产品知识图谱预测电影 Forrest Gumpgenre。执行命令:

%%gremlin
g.with("Neptune#ml.endpoint","${node_classification_endpoint}").
  V().has('title', 'Forrest Gump (1994)').properties("genre").with("Neptune#ml.classification").value()

在这里插入图片描述

查看结果可知,预测结果似乎是正确的,Forrest 似乎被正确预测为 Drama 类型。

很多情况下,我们可能需要预测一个节点的多个类别。例如在我们的产品知识图谱中,一部电影很可能被归类为多个类型,我们可能需要预测所有这些类型。默认情况下,Neptune ML 会返回排名第一的结果,但我们可以使用 .with("Neptune#ml.limit",3) 配置选项指定希望返回的结果数量。一起看看针对Forrest Gump 返回的,排名前三的结果吧。

在这里插入图片描述

Neptune ML 返回的每个值都有一个与之关联的置信度分数,而无论预测结果的置信度如何,上述查询都会返回排名前三的结果。虽然该分数在查询时不可用,但它可用于筛选掉置信度较低的预测。

假设我们想要返回Forrest Gump预测的排名前三的类型,但前提是这些结果必须满足特定的置信度要求。为此,可以使用.with("Neptune#ml.threshold",0.2D)选项为查询添加筛选器,如下所示。

在这里插入图片描述

如上所示,目前我们只得到了 Drama 这个预测类型,因为这是唯一高于阈值的预测结果。

清理

我们已经使用Amazon Neptune来完成了预测电影类型的初体验,我们之前创建的 SageMaker 端点依然在运行并会按照标准费率产生费用。如果已完成 Neptune ML 的试用工作,希望避免产生这种重复性的成本,那么可以运行neptune_ml.delete_pretrained_endpoints(endpoints)来删除所创建的推断端点。

除了推断端点的成本外,我们之前使用的CloudFormation脚本也创建了多个额外资源。如果我们的全部操作均已完成,那么我们得删除 CloudFormation 栈,以避免产生重复的费用。

删除环境

为了防止之后的额外扣费,必须进行下面的删除环境操作,

在这里插入图片描述

S3 存储桶删除

选择 cloudshell,执行aws s3 rb s3://cheetah-qing --force删除 S3 存储桶

在这里插入图片描述

至此,我们的使用Amazon Neptune来完成预测电影类型的初体验就已经完成了,现在我们来总结一下它的优势:

  • Amazon Neptune 支持 Gremlin 和 SPARQL 的开放图谱 API,并为这些图形模型及其查询语言提供高性能。
  • Neptune 可在三个可用区内支持最多 15 个低延迟读取副本,从而扩展读取容量并每秒执行超过 10 万个图形查询。
  • Neptune 旨在提供超过 99.99% 的可用性。其存储系统具有容错能力并能自我修复,专为云而构建,可以跨三个可用区复制六个数据副本。
  • Amazon Neptune 为您的数据库提供多级安全保护,包括使用 Amazon VPC 进行网络隔离、支持终端节点访问的 IAM 身份验证、HTTPS 加密的客户端连接、使用您通过 AWS Key Management Service (KMS) 创建和控制的密钥对静态数据进行加密。
  • Neptune 会自动持续地监控您的数据库并将其备份到 Amazon S3.因此可实现精细的时间点恢复。

如果有问题或者有更好的体验方式,欢迎留言或私信阿Q呦,我们一起进步!

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

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

相关文章

jstat虚拟机统计信息监控工具

jstat虚拟机统计信息监控工具 1、jstat&#xff08;JVM Statistics Monitorning Tool&#xff09; 用于监控虚拟机各种运行状态信息的命令行工具。 它可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据&#xff0c;它是运行期定位虚拟机 性能问题…

Lenovo联想IdeaPad 15 ALC7(82R4)2022款笔记本原装出厂Windows11预装系统镜像

下载链接&#xff1a;https://pan.baidu.com/s/1Pr2G42Sz1LKzgF8OcEBkPQ?pwd5ms2 提取码&#xff1a;5ms2 系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;16G或以上的U盘 文件格式&#xff1a;…

centos7.9 postgresql 16.0 源码安装部署

postgresql 16.0 源码安装部署 环境准备 系统主机名IP地址centos7.9postgres192.168.200.56 软件准备 postgresql-16.0.tar.gz https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz依赖安装 yum -y install systemd-devel readline readline-devel zlib-devel…

探秘Python闭包与作用域

文章目录 闭包的定义与作用LEGB规则nonlocal与global关键字在Python的世界里,理解闭包(Closure)和作用域(Scope)是提升编程技巧和深度的一大步。这篇文章将带你深入了解闭包的神秘面纱,掌握LEGB规则,并使用nonlocal与global关键字来巧妙控制变量作用域。 闭包的定义与作…

MySQL中的刷脏机制详解

名词解释 脏页&#xff1a;当内存数据页跟磁盘数据页内容不一致的时候&#xff0c;我们称这个内存页为“脏页”。 干净页&#xff1a;内存数据写入到磁盘后&#xff0c;内存和磁盘上的数据页的内容就一致了&#xff0c;称为“干净页”。 LSN&#xff1a;称为日志的逻辑序列号(l…

万物社用户运营工具:无代码开发下的电商平台和CRM集成

简介&#xff1a;万物社与集简云的引领式连接 万物社&#xff0c;隶属于厦门头号云信息科技有限公司&#xff0c;是一家专注于互联网和相关服务的企业。在日常的业务运营中&#xff0c;万物社通过与集简云的无代码集成&#xff0c;实现了业务流程的自动化和智能化&#xff0c;…

学习笔记4——JVM运行时数据区梳理

学习笔记系列开头惯例发布一些寻亲消息 链接&#xff1a;https://baobeihuijia.com/bbhj/contents/3/192489.html 类装载器classLoader&#xff1a; 将本地的字节码文件.class 加载到内存方法区中成为元数据模板&#xff08;两个class对象是否为同一个类要求&#xff1a;完整…

对话句子互动创始人李佳芮 | AIGC结合私域运营影响不可估量

“ 创业最核心的就是耐心” 口述 | 李佳芮 整理 | 小白&云舒 出品&#xff5c;极新 极新请文心一言分析了私域流量运营和chatbot当下的发展背景&#xff0c;它给出了以下答案&#xff1a; 1. 移动设备普及和网络速度提升&#xff1a;随着智能手机和移动互联网的普及&…

UE5.3实现1秒12帧风格的动画抽帧效果

现今一些卡通风格游戏会刻意模仿早期动画1秒12帧的播放效果&#xff0c;以营造较强的风格化体验&#xff0c;博主在UE5中实现了一下&#xff08;左侧正常动画&#xff0c;右侧抽帧动画&#xff09;&#xff1a; 我们可以通过在UE中对导入设置进行一些修改&#xff0c;达到不改…

Android UI 开发·界面布局开发·案例分析

目录 ​编辑 1. 线性布局&#xff08;LinearLayout&#xff09; 2. 相对布局&#xff08;RelativeLayout&#xff09; 3. 表格布局&#xff08;TableLayout&#xff09; 4. 帧布局&#xff08;FrameLayout&#xff09; 5. 网格布局&#xff08;GridLayout&#xff0…

AI:68-基于深度学习的身份证号码识别

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

C语言编写一个程序采集招聘信息

因为在这里无法详细解释每行代码和步骤。但是&#xff0c;我可以给大家一个使用Python和requests库编写的简单爬虫程序的例子&#xff0c;它可以从网站上获取招聘信息。你可以根据这个例子&#xff0c;将其改写为使用C语言编写的爬虫程序。 import requests# 指定爬虫IP信息 pr…

二叉树的OJ题——C++

一、根据二叉树创建字符串 题目链接&#xff1a; 606. 根据二叉树创建字符串 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 前序遍历二叉树&#xff0c;并且将结果存入到一个string中&#xff0c;并且要使用括号去分割和表示每个节点和子树之间的关系&…

大漠插件(二、Qt使用插件时注意事项)

本章目的 在上篇已经注册完毕大漠&#xff0c;那么怎么使用大漠来制作脚本&#xff0c;我选择了我最熟悉的Qt来开发&#xff0c;毕竟只是小软件&#xff0c;用脚本或者c都差不了多少。本章就是开发途中的一些坑。 本人开发环境是 win11 64、Qt 5.15.2安装了5.10.0的msvc2015 32…

接口测试工具的实验,Postman、Swagger、knife4j(黑马头条)

一、Postman 最常用的接口测试软件&#xff0c;需要注意点&#xff1a;在进行post请求时&#xff0c;需要选择JSON形式发送 输入JSON字符串&#xff0c;比如&#xff1a; {"maxBehotTime": "2021-04-19 00:19:09","minBehotTime": "2021-…

支持存档的书签服务LinkWarden

什么是 LinkWarden &#xff1f; Linkwarden 是一个自托管、开源协作书签管理器&#xff0c;用于收集、组织和存档网页。目标是将您在网络上找到的有用网页和文章组织到一个地方&#xff0c;并且由于有用的网页可能会消失&#xff08;参见链接失效的必然性&#xff09;&#xf…

读者自荐的 4 个 GitHub 项目

本期推荐的 4 个开源项目&#xff0c;为读者在开源项目 Awesome-GitHub-Repo 的评论区自推的, 如果你开源了不错的项目&#xff0c;想让大家看到&#xff0c;也可以去 Awesome-GitHub-Repo 进行投稿。 本期推荐开源项目目录&#xff1a; 1. DB-GPT 2. 定制中国传统节日头像 3. …

闪客网盘系统源码,已测试对接腾讯COS及本地和支付(支持限速+按时收费+文件分享+可对接易支付)- 修复版

正文概述 资源入口 支持对文件下载限速 对接易支付 推广赚钱啥的功能 源码非常的好 支持腾讯cos 阿里云cos 本地储存 远程存储 源码仅支持服务器搭建 php7.2 伪静态thinkphp 运行目录public 导入数据库 修改config目录下的database.php数据库信息 后台地址&#xff1a; 域名/ad…

参考文献管理软件 EndNote 21 mac v21.2中文版特点和功能

EndNoter mac是一款参考文献管理软件&#xff0c;旨在帮助学术研究者、学生和专业人士有效地管理和引用参考文献。该软件提供了许多功能&#xff0c;使用户可以轻松地组织、搜索和引用各种类型的文献。 EndNoter mac软件特点和功能 1. 参考文献管理&#xff1a;EndNoter允许用户…

中小企业如何实现数字化转型发展?

数字化转型已成为企业未来发展的必然趋势&#xff0c;行业头部企业在此过程中持续投入自动化、信息化及数字化技术。虽然大多数系统投入不能仅基于短期投资回报率决策&#xff0c;且资源投入大见效慢、失败率也高&#xff0c;但数字化转型是不可逆转的过程&#xff0c;未来生存…