阿里云向量检索服务 | 全性能搜索方案

简介: 【1月更文挑战第13天】阿里云向量检索服务 | 全性能搜索方案

今天主要测评阿里云向量检索服务,测评地址:https://developer.aliyun.com/topic/dashvector

在测评开始之前,还是需要先了解一下这款云产品,那么问题来了,什么是向量检索服务?

什么是向量检索服务

这里节录一段官方关于向量检索服务的描述:【向量检索服务基于阿里云自研的向量引擎 Proxima 内核,提供具备水平拓展、全托管、云原生的高效向量检索服务。向量检索服务将强大的向量管理、查询等能力,通过简洁易用的 SDK/API 接口透出,方便在大模型知识库搭建、多模态 AI 搜索等多种应用场景上集成。】 向量检索服务产品首页:https://www.aliyun.com/product/ai/dashvector

其实,通过官方提供向量检索服务的定义还是不太理解什么是向量检索服务。毕竟官方的定义往往比较专业,专业带来的结果就是比较晦涩难懂。那么我在这里基于一个大家在日常生活中经常会用到的场景来解释一下。

拍照搜商品

拍照搜商品用官方的话语描述就是【电商智能搜索和偏好推荐场景】,怎么理解呢?在日常生活中你走在大街上,当你看到某个东西觉得不错,比如衣服、鞋子、手办等等,那么你是否会拿出手机,点开购物APP的拍照搜商品呢?那么这个时候你用到的就是【电商智能搜索】,而当你搜索完一件商品之后,不管是通过图片还是文字搜索,购物APP都会在首页或者搜索栏下面为你推荐相似的商品,这就是【偏好推荐场景】。到这里,你是不是大概理解了什么是向量检索服务呢?

为了更好的理解什么是【电商智能搜索和偏好推荐场景】,这里我查阅了官方的描述,还是可以理解的,节录如下:【在电商智能搜索和偏好推荐场景中,向量数据库可以实现基于向量相似度的搜索和推荐功能。例如一个电商平台中包含了各种商品的图像和描述信息,用户在搜索商品时,可以通过图像或者描述信息查询相关的商品,并且还希望能够实现推荐功能,自动向用户推荐可能感兴趣的商品。

用户只需要先将商品的图像和描述信息使用Embedding技术转换为向量表示,并将其存储到向量数据库中。当用户输入查询请求时,向量检索服务可以将其转换为向量表示,然后计算查询向量与向量数据库中所有商品向量的相似度,然后返回相似度最高的几个商品向量。另外,还可以基于用户的历史行为和偏好通过向量检索服务将用户的历史浏览记录和购买记录转化为向量表示,并在向量数据库中查询与该向量最相似以及相似度较高的商品向量,为用户推荐可能感兴趣的商品,提供更加智能和个性化的服务更加高效和优秀的性能与购买体验。】检索流程如下图

到这里,我想大家对于向量检索服务,一定都会有一个比较明确的认知了吧。

AI问答

当然,向量检索服务可不是只有拍照搜商品或者是文字搜商品这一个应用场景的哈,还有其他的应用场景。


随着大模型深度学习的发展,大模型需要利用向量来表示复杂的数据,向量数据库能够高效存储和检索这些高维向量数据,为大模型提供强大的数据支撑。另外,向量数据库可以通过关联真实世界的数据点,如实体、关系等,构建知识图谱,进而支持模型查询和验证语义信息,从而降低模型输出错误的概率。在大模型中,需要处理的数据量极大,传统的关系型数据库几乎无法满足性能需求。而向量数据库由于其内部优化和并行处理能力,可以高效地处理大规模数据集,提供快速的查询和算法执行速度。


这也就是向量检索服务的另一个应用场景【自然语言处理等AI问答系统场景】,下面节录一段这个应用场景的官方描述:【问答系统是属于自然语言处理领域的常见现实应用。典型的问答系统比如通义千问、ChatGPT、在线客户服务系统、QA聊天机器人等。例如在一个问答系统,其中包含了一些预定义的问题和对应的答案。用户希望能够根据输入的问题,自动匹配到最相似的预定义问题,并返回对应的答案。为了实现功能,首先可以通过向量检索服务将预定义的问题和答案转换为向量表示,并将其存储到向量数据库中。其次当用户输入问题时,向量检索服务可以将其转换为向量表示,并在向量数据库中查询与该向量最相似的问题向量。然后使用模型训练、问答推理、后期优化等步骤,实现类似通义千问、ChatGPT等的语言智能交互体系。】如图所示

除了这两个现在我们接触的比较多的应用场景之外,向量检索服务还可以用于【图库类网站多模态搜索场景】、【视频检索场景】等。总之,简单的理解就是,向量检索服务在一些场景上的应用相对于传统检索服务来说,检索效能有质的飞跃。下面来体验向量检索服务吧!

基于向量检索服务与TextEmbedding实现语义搜索

简单介绍一下这个场景,基于QQ 浏览器搜索标题语料库(QBQTC:QQ Browser Query Title Corpus)进行实时的文本语义搜索,查询最相似的相关标题。

在体验开始之前需要再介绍一下向量检索服务的核心点 Embedding。

什么是Embedding

通用文本向量模型会将一段文本变成一个向量,将文本变成向量的过程叫 Embedding

节录官方定义【Embedding是一个多维向量的表示数组,通常由一系列数字组成。Embedding可以用来表示任何数据,例如文本、音频、图片、视频等等,通过Embedding我们可以编码各种类型的非结构化数据,转化为具有语义信息的多维向量,并在这些向量上进行各种操作,例如相似度计算、聚类、分类和推荐等。】流程如图


简单的理解就像这样一个场景,输入文本:“衣服的质量杠杠的,很漂亮,不枉我等了这么久啊,喜欢,以后还来这里买”。python代码

importdashscopefromdashscopeimportTextEmbeddingdashscope.api_key= {YOURAPIKEY}
defembed_with_str():
resp=TextEmbedding.call(
model=TextEmbedding.Models.text_embedding_v1,
input='衣服的质量杠杠的,很漂亮,不枉我等了这么久啊,喜欢,以后还来这里买')
print(resp)
if__name__=='__main__':
embed_with_str()

输出向量结果

image.png

到这里对于向量检索服务,以及向量检索服务中常出现的名词也就解释清楚了,更多的向量检索服务相关内容可以去参考官方文档:向量检索服务

开通灵积模型服务

在进行基于向量检索服务与TextEmbedding实现语义搜索之前需要先开通灵积模型服务,进入控制台:https://dashscope.console.aliyun.com/overview?spm=a2c4g.11186623.0.0.31e0697ejMTOD9 点击【去开通】

勾选服务协议点击开通即可。然后点击【管理中心】-【API-KEY管理】,

image.png

点击【创建新的API-KEY】

image.png

点击复制可以获取API-KEY.

开通向量检索服务

打开向量检索服务控制台:https://dashvector.console.aliyun.com/cn-hangzhou/overview

image.png

点击【创建新的API-KEY】,点击复制,

image.png

回到向量检索服务首页,点击【创建Cluster】

image.png

在打开的页面选择【免费试用】,输入Cluster名称

image.png

勾选服务协议,点击【立即开通】完成Cluster的创建

image.png

创建完成Cluster之后回到列表页点击Cluster名称进入详情页复制endpoint地址

image.png

安装Python

需要下载Python3.7及以上版本,下载地址:https://www.python.org/downloads/windows/

image.png

官方网址下载的比较慢,可以直接使用我下载的python

链接:https://pan.baidu.com/s/1vPuGI33mfBOWeEfAWvX0ig?pwd=hk16

提取码:hk16

image.png

安装步骤这里不再详细说明,默认安装操作即可,安装步骤参考文档:https://docs.python.org/zh-cn/3.11/using/windows.html#installation-steps如果选择自定义安装,默认复选框都全部勾选即可。安装完成后进行后面的步骤。

安装环境

python3.11安装成功之后,打开windows cmd窗口,执行如下命令安装环境

pip3installdashvectordashscope

执行结果如图

image.png

安装过程出现可能会出现error,报错信息

ERROR: Exception:
Traceback (mostrecentcalllast):
File"E:\Python311\Lib\site-packages\pip\_vendor\urllib3\response.py", line437, in_error_catcheryieldFile"E:\Python311\Lib\site-packages\pip\_vendor\urllib3\response.py", line560, inreaddata=self._fp_read(amt) ifnotfp_closedelseb""^^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_vendor\urllib3\response.py", line526, in_fp_readreturnself._fp.read(amt) ifamtisnotNoneelseself._fp.read()
^^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_vendor\cachecontrol\filewrapper.py", line90, inreaddata=self.__fp.read(amt)
^^^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\http\client.py", line466, inreads=self.fp.read(amt)
^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\socket.py", line706, inreadintoreturnself._sock.recv_into(b)
^^^^^^^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\ssl.py", line1278, inrecv_intoreturnself.read(nbytes, buffer)
^^^^^^^^^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\ssl.py", line1134, inreadreturnself._sslobj.read(len, buffer)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^TimeoutError: ThereadoperationtimedoutDuringhandlingoftheaboveexception, anotherexceptionoccurred:
Traceback (mostrecentcalllast):
File"E:\Python311\Lib\site-packages\pip\_internal\cli\base_command.py", line160, inexc_logging_wrapperstatus=run_func(*args)
^^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_internal\cli\req_command.py", line247, inwrapperreturnfunc(self, options, args)
^^^^^^^^^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_internal\commands\install.py", line400, inrunrequirement_set=resolver.resolve(
^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_internal\resolution\resolvelib\resolver.py", line92, inresolveresult=self._result=resolver.resolve(
^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line481, inresolvestate=resolution.resolve(requirements, max_rounds=max_rounds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line348, inresolveself._add_to_criteria(self.state.criteria, r, parent=None)
File"E:\Python311\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line172, in_add_to_criteriaifnotcriterion.candidates:
File"E:\Python311\Lib\site-packages\pip\_vendor\resolvelib\structs.py", line151, in__bool__returnbool(self._sequence)
^^^^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line155, in__bool__returnany(self)
^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line143, in<genexpr>return (cforciniteratorifid(c) notinself._incompatible_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line47, in_iter_builtcandidate=func()
^^^^^^File"E:\Python311\Lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line206, in_make_candidate_from_linkself._link_candidate_cache[link] =LinkCandidate(
^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line297, in__init__super().__init__(
File"E:\Python311\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line162, in__init__self.dist=self._prepare()
^^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line231, in_preparedist=self._prepare_distribution()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line308, in_prepare_distributionreturnpreparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_internal\operations\prepare.py", line491, inprepare_linked_requirementreturnself._prepare_linked_requirement(req, parallel_builds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_internal\operations\prepare.py", line536, in_prepare_linked_requirementlocal_file=unpack_url(
^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_internal\operations\prepare.py", line166, inunpack_urlfile=get_http_url(
^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_internal\operations\prepare.py", line107, inget_http_urlfrom_path, content_type=download(link, temp_dir.path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_internal\network\download.py", line147, in__call__forchunkinchunks:
File"E:\Python311\Lib\site-packages\pip\_internal\cli\progress_bars.py", line53, in_rich_progress_barforchunkiniterable:
File"E:\Python311\Lib\site-packages\pip\_internal\network\utils.py", line63, inresponse_chunksforchunkinresponse.raw.stream(
File"E:\Python311\Lib\site-packages\pip\_vendor\urllib3\response.py", line621, instreamdata=self.read(amt=amt, decode_content=decode_content)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"E:\Python311\Lib\site-packages\pip\_vendor\urllib3\response.py", line559, inreadwithself._error_catcher():
File"E:\Python311\Lib\contextlib.py", line155, in__exit__self.gen.throw(typ, value, traceback)
File"E:\Python311\Lib\site-packages\pip\_vendor\urllib3\response.py", line442, in_error_catcherraiseReadTimeoutError(self._pool, None, "Read timed out.")
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Readtimedout.

按照报错后给出的提示执行命令

image.png

如果执行pip 升级命令之后还是不行的话,可能是你的网络太差了,建议等待网络比较好的时候尝试。这里透露一下,我的网络可能不好,这一步升级操作尝试了有30分钟。升级成功后如图

image.png

升级成功之后再执行安装环境命令

pip3installdashvectordashscope

还是会有报错的可能,那就只能一直尝试了。

20240130补充,在当天我尝试了大概几个小时之后一直没有成功,后来有一天早上再次尝试,终于成功了,安装环境命令成功情况如图

image.png

准备数据

20240130补充,在执行准备数据命令之前需要先安装git工具

安装Git

git工具下载地址:https://git-scm.com/download/win 如果没有安装git工具,执行git命令会报如下提示

image.png

选择需要下载的git工具版本

image.png

Git下载完成之后的安装操作可以参考我的博文:https://developer.aliyun.com/article/1431354

Git安装成功后打开【Git CMD】再次执行如下命令获取数据

image.png

网络不好的需要多次尝试的

20240201补充,多次尝试之后最终成功如图

image.png

gitclonehttps://github.com/CLUEbenchmark/QBQTC.gitwc-lQBQTC/dataset/train.json

打开Git Bash窗口,输入命令wc -l命令统计行数

image.png

通过cat命令查看 数据集中的训练集(train.json)格式如图

image.png

从这个数据集中提取title,方便后续进行embedding并构建检索服务,python代码如下

importjsondefprepare_data(path, size):
withopen(path, 'r', encoding='utf-8') asf:
batch_docs= []
forlineinf:
batch_docs.append(json.loads(line.strip()))
iflen(batch_docs) ==size:
yieldbatch_docs[:]
batch_docs.clear()
ifbatch_docs:
yieldbatch_docs

20240201补充,保存文件内容到python安装目录为001.py

image.png

在python安装目录执行001.py

image.png

点击在【此处打开Powershell窗口】,执行001.py文件

image.png

通过 DashScope 生成 Embedding 向量

节录官方文档描述:【DashScope灵积模型服务通过标准的API提供了多种模型服务。其中支持文本Embedding的模型中文名为通用文本向量,英文名为text-embedding-v1。我们可以方便的通过DashScope API调用来获得一段输入文本的embedding向量】,python代码如下

importdashscopefromdashscopeimportTextEmbeddingdashscope.api_key='{your-dashscope-api-key}'defgenerate_embeddings(text):
rsp=TextEmbedding.call(model=TextEmbedding.Models.text_embedding_v1,
input=text)
embeddings= [record['embedding'] forrecordinrsp.output['embeddings']]
returnembeddingsifisinstance(text, list) elseembeddings[0]
# 查看下embedding向量的维数,后面使用 DashVector 检索服务时会用到,目前是1536print(len(generate_embeddings('hello')))

其中,your-dashscope-api-key 即是我们刚才开通灵积模型服务后创建的API-KEY。

将上述python代码保存为002.py文件

image.png

替换其中的your-dashscope-api-key为

image.png

然后执行002.py文件,执行完成如图

image.png

通过 DashVector 构建检索:向量入库

节录官方文档描述:【DashVector 向量检索服务上的数据以集合(Collection)为单位存储,写入向量之前,我们首先需要先创建一个集合来管理数据集。创建集合的时候,需要指定向量维度,这里的每一个输入文本经过DashScope上的text_embedding_v1模型产生的向量,维度统一均为1536。】python代码如下

fromdashvectorimportClient, Doc# 初始化 DashVector clientclient=Client(
api_key='{your-dashvector-api-key}',
endpoint='{your-dashvector-cluster-endpoint}')
# 指定集合名称和向量维度rsp=client.create('sample', 1536)
assertrspcollection=client.get('sample')
assertcollectionbatch_size=10fordocsinlist(prepare_data('QBQTC/dataset/train.json', batch_size)):
# 批量 embeddingembeddings=generate_embeddings([doc['title'] fordocindocs])
# 批量写入数据rsp=collection.insert(
        [
Doc(id=str(doc['id']), vector=embedding, fields={"title": doc['title']}) 
fordoc, embeddinginzip(docs, embeddings)
        ]
    )
assertrsp

其中,your-dashvector-api-key 和 your-dashvector-cluster-endpoint 是向量检索服务创建的。

将上述python代码保存为003.py文件

image.png

其中,your-dashvector-api-key 和 your-dashvector-cluster-endpoint 替换为

image.png

image.png

通过python命令执行003.py文件

语义检索:向量查询

在训练数据集里的title内容都写到DashVector服务上的集合里后,就可以进行快速的向量检索,实现“语义搜索”的能力,基于上面的python代码继续添加如下代码

# 基于向量检索的语义搜索rsp=collection.query(generate_embeddings('应届生 招聘'), output_fields=['title'])
fordocinrsp.output:
print(f"id: {doc.id}, title: {doc.fields['title']}, score: {doc.score}")

到这里整个测评操作就算完成了

操作体验

小建议1

首次操作向量检索服务,整体上操作参考的是官方文档上面进行的,按照文档操作下来整体比较流畅,只是在开通服务时少看了开通向量检索服务获取API-KEY

image.png

导致后续又回头重新看了一遍文档,这里希望文档可以着重标识一下,因为最终都是获取API-KEY,所以很容易就会产生第一个开通后获取API-KEY就可以了的误解。

另外就是在上述执行命令时,一些可能的报错情况的处理,文档中没有太多的提及,文档不适合python小白,需要有一定的python操作基础才可以。

建议是否可以提供在线的python3环境方便体验向量检索服务的特性呢?

小建议2

这次体验下来,向量检索服务在整体的性能、易用性、可拓展性等方面都比较出色,检索效率很高。公司业务的话,关于按图搜索商品以及按文本搜索商品场景,现在还是比较常用的,因此接入向量检索服务的话,相信检索效率一定会倍数级提升。但是这里有一点就是,在导入数据集以及构建检索-向量入库的操作都需要通过python操作,虽然有python代码,但是还是有一定的操作成本的。关于这一方面是否可以提供控制台按钮操作或者说是通过导入数据的形式,向量检索服务内部通过python代码将导入的数据自动化构建检索-向量入库,最后提供向量查询呢

小建议3

由于一些图片内容或者商品文本内容在其他云服务器或者是云存储空间,希望可以提供将其他云存储空间图片转换成向量检索服务向量数据的一键式操作方案,或者是其他简便操作,毕竟对于使用方来说,如何生成向量数据并不是重点关心的,使用方主要关注的是如何快速准确的返回检索到的商品数据给用户。就像PolarDB提出的让开发者可以像搭积木一样使用数据库一样,就是说开发者并不关注数据库内部的向量数据转化,而是只关心向量检索服务能否快速准确返回检索结果。

相关实践学习
使用CLup和iSCSI共享盘快速体验PolarDB for PostgtreSQL
在Clup云管控平台中快速体验创建与管理在iSCSI共享盘上的PolarDB for PostgtreSQL。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
1月前
|
SQL 存储 JSON
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
亲爱的社区小伙伴们,Apache Doris 2.1.0 版本已于 2024 年 3 月 8 日正式发布,新版本开箱盲测性能大幅优化,在复杂查询性能方面提升100%,新增Arrow Flight接口加速数据读取千倍,支持半结构化数据类型与分析函数。异步多表物化视图优化查询并助力仓库分层建模。引入自增列、自动分区等存储优化,提升实时写入效率。Workload Group 资源隔离强化及运行时监控功能升级,保障多负载场景下的稳定性。新版本已经上线,欢迎大家下载使用!
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
|
30天前
|
存储 弹性计算 关系型数据库
阿里云服务器ESSD云盘性能等级PL0、PL1、PL2、PL3区别,云盘性能级别PL知识点参考
在我们选择阿里云服务器系统盘和数据盘时,如果是选择ESSD云盘,还需要选择云盘的云盘性能级别PL,PL性能级别有PL3、PL2、PL1、PL0四个性能级别的云盘规格,如果是通过阿里云的活动来购买云服务器的话,由于系统盘默认一般为20G或40G容量,可选的PL性能级别通常只有PL0(单盘IOPS性能上限1万)和PL1(单盘IOPS性能上限5万)可选择,有的用户肯能并不清楚ESSD云盘的性能等级之间有何区别,单盘IOPS性能指的是什么,本文为大家介绍一下ESSD云盘的云盘性能级别PL3、PL2、PL1、PL0相关知识点。
阿里云服务器ESSD云盘性能等级PL0、PL1、PL2、PL3区别,云盘性能级别PL知识点参考
|
1月前
|
存储 弹性计算 数据挖掘
阿里云4核8G云服务器价格多少钱?2024年阿里云4核8G云服务器价格及性能测评参考
2024年,阿里云针对4核8G配置的云服务器提供了多种实例规格,包括经济型e实例、通用算力型u1、计算型c7等。这些不同实例规格的服务器在性能参数和费用上都有所不同,以满足不同用户的需求。其中,通用算力型u1实例的4核8G云服务器在价格上表现出色。新用户专享活动价仅需955.58元一年,折合每月仅需80元。这一价格相较于同类产品来说,性价比极高。同时,该服务器配备了高性能的ESSD云盘,能够确保用户在存储操作系统、应用程序和数据时获得最佳体验。
117 0
|
25天前
|
弹性计算 小程序 开发者
阿里云服务器性能测评:25M带宽阿里云云服务器支持多少人访问?
在深入探讨25M带宽云服务器的性能时,我们首先要明确一个核心概念:带宽与服务器能够支持的同时访问量之间存在着直接的关联。那么,大家可能会好奇,带宽为25M的云服务器究竟能够支持多少用户同时访问呢?
118 0
|
29天前
|
存储 人工智能 安全
阿里云第八代云服务器实例通用型g8i实例性能和适用场景介绍
随着云计算技术的不断演进,阿里云作为国内领先的云服务提供商,持续推出创新的云服务器实例以满足不同用户的需求。近日,阿里云宣布其第八代云服务器ECS g8i实例已经完成全新升级。g8i实例采用CIPU+飞天技术架构,并搭载最新的Intel 第五代至强可扩展处理器(代号EMR),不仅性能得到大幅提升,同时还拥有AMX加持的AI能力增强,以及全球范围内率先支持的TDX机密虚拟机能力。这些特性使得g8i实例在AI增强和全面安全防护两大方面表现出色,尤其适用于在线音视频及AI相关应用。
阿里云第八代云服务器实例通用型g8i实例性能和适用场景介绍
|
1月前
|
弹性计算 算法 应用服务中间件
倚天使用|Nginx性能高27%,性价比1.5倍,基于阿里云倚天ECS的Web server实践
倚天710构建的ECS产品,基于云原生独立物理核、大cache,结合CIPU新架构,倚天ECS在Nginx场景下,具备强大的性能优势。相对典型x86,Http长连接场景性能收益27%,开启gzip压缩时性能收益达到74%。 同时阿里云G8y实例售价比G7实例低23%,是Web Server最佳选择。
|
1月前
|
弹性计算 NoSQL 测试技术
倚天使用|Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。
137498 3
|
1月前
|
机器学习/深度学习 弹性计算 数据库
阿里云2核2G配置服务器价格多少钱?性能如何?
随着云计算技术的日益成熟,越来越多的企业和个人开始选择云服务器来满足其业务需求。阿里云,作为国内领先的云服务提供商,其2核2G配置的云服务器一直备受关注。那么,2024年这款服务器的价格是多少呢?答案是——惊喜连连!
417 0
|
1月前
|
弹性计算 缓存 数据库
2024年3月阿里云2核4G服务器租用优惠价格,附性能参数表
2024年3月阿里云2核4G服务器租用优惠价格,附性能参数表,2核4G配置1个月多少钱?2核4G服务器30元3个月、轻量应用服务器2核4G4M带宽165元一年、企业用户2核4G5M带宽199元一年。可以在阿里云百科查看当前最新2核4G服务器精准报价、优惠券和活动信息
|
1月前
|
弹性计算 缓存 数据库
阿里云服务器2核4G多少钱?性能如何?
阿里云服务器2核4G多少钱?性能如何?2核4G配置1个月多少钱?2核4G服务器30元3个月、轻量应用服务器2核4G4M带宽165元一年、企业用户2核4G5M带宽199元一年