199 lines
7.8 KiB
Markdown
199 lines
7.8 KiB
Markdown
---
|
||
title: AWS推出Amazon OpenSearch无服务器向量数据库,简化AI应用开发
|
||
description: 亚马逊云科技发布OpenSearch无服务器向量数据库服务,提供全托管、自动扩展的向量搜索能力,加速生成式AI和机器学习应用开发
|
||
category: database
|
||
date: 2024-06-10
|
||
tags: ['数据库', '向量搜索', '生成式AI', '无服务器', 'OpenSearch']
|
||
author: AWS数据库服务团队
|
||
image: /images/awsnews/opensearch-vectordb.jpg
|
||
views: 2035
|
||
trending: true
|
||
featured: true
|
||
---
|
||
|
||
# AWS推出Amazon OpenSearch无服务器向量数据库,简化AI应用开发
|
||
|
||
亚马逊云科技(AWS)今日宣布推出Amazon OpenSearch无服务器向量数据库服务,这是一项全托管的无服务器向量搜索解决方案,旨在简化生成式AI和机器学习应用程序的开发。该服务使开发者能够轻松存储、搜索和检索向量嵌入,无需管理底层基础设施。
|
||
|
||
## 向量数据库的关键作用
|
||
|
||
向量数据库在现代AI应用开发中扮演着关键角色:
|
||
|
||
- 提供高效存储和检索向量嵌入的能力
|
||
- 支持语义搜索和相似性匹配
|
||
- 为大型语言模型(LLMs)提供知识检索基础
|
||
- 实现RAG(检索增强生成)架构的核心组件
|
||
|
||
随着生成式AI应用的普及,向量数据库需求激增,但传统解决方案通常需要复杂的集群管理和性能调优。Amazon OpenSearch无服务器向量数据库消除了这些障碍,使团队能够专注于应用程序逻辑而非基础设施管理。
|
||
|
||
## 服务亮点与优势
|
||
|
||
Amazon OpenSearch无服务器向量数据库提供多项关键优势:
|
||
|
||
1. **零基础设施管理** - 完全托管服务,无需预置或管理服务器
|
||
2. **自动扩展** - 根据工作负载自动调整容量
|
||
3. **高性能** - 针对向量搜索优化的索引和查询性能
|
||
4. **成本效益** - 仅为实际使用的资源付费
|
||
5. **无缝集成** - 与AWS AI/ML服务生态系统集成
|
||
6. **企业级安全** - 内置加密、访问控制和审计功能
|
||
|
||
## 技术特性
|
||
|
||
该服务包含多项专为向量搜索优化的技术特性:
|
||
|
||
- **多种相似性算法** - 支持欧几里得距离、内积、余弦相似度等
|
||
- **高维向量支持** - 处理最多16,384维的向量嵌入
|
||
- **混合查询** - 结合向量搜索和传统文本搜索
|
||
- **KNN(k最近邻)和ANN(近似最近邻)算法**
|
||
- **过滤器和元数据支持** - 高级查询细化功能
|
||
- **多种访问方式** - REST API、SDK和SQL支持
|
||
|
||
## 应用场景
|
||
|
||
Amazon OpenSearch无服务器向量数据库适用于多种AI应用场景:
|
||
|
||
- **智能文档搜索** - 语义理解文档内容并提供相关搜索结果
|
||
- **知识管理系统** - 构建能理解查询意图的企业知识库
|
||
- **推荐系统** - 基于语义相似性提供个性化推荐
|
||
- **聊天机器人知识库** - 为AI助手提供上下文相关的回答
|
||
- **多模态搜索** - 文本、图像等跨模态数据的相似性搜索
|
||
- **欺诈检测** - 识别异常交易模式
|
||
|
||
## 客户案例:医疗信息检索
|
||
|
||
某领先医疗保健提供商使用Amazon OpenSearch无服务器向量数据库重新设计了其信息检索系统:
|
||
|
||
> "我们的医疗AI助手需要快速访问数百万份医学文献和临床指南。使用Amazon OpenSearch无服务器向量数据库后,我们不仅能提供更准确的医学信息检索,还将查询延迟减少了60%。最重要的是,我们的团队不再需要管理复杂的搜索基础设施,可以专注于改进医疗AI应用体验。"
|
||
> — 某医疗科技公司首席技术官
|
||
|
||
## 代码示例:向量搜索实现
|
||
|
||
以下是使用Python SDK与Amazon OpenSearch无服务器向量数据库交互的代码示例:
|
||
|
||
```python
|
||
import boto3
|
||
import numpy as np
|
||
from opensearchpy import OpenSearch, RequestsHttpConnection
|
||
from requests_aws4auth import AWS4Auth
|
||
|
||
# 连接到Amazon OpenSearch无服务器向量数据库
|
||
region = 'us-east-1'
|
||
service = 'aoss'
|
||
credentials = boto3.Session().get_credentials()
|
||
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key,
|
||
region, service, session_token=credentials.token)
|
||
|
||
host = 'your-collection-endpoint.us-east-1.aoss.amazonaws.com'
|
||
|
||
client = OpenSearch(
|
||
hosts = [{'host': host, 'port': 443}],
|
||
http_auth = awsauth,
|
||
use_ssl = True,
|
||
verify_certs = True,
|
||
connection_class = RequestsHttpConnection
|
||
)
|
||
|
||
# 创建向量索引
|
||
index_name = 'product-embeddings'
|
||
index_body = {
|
||
'settings': {
|
||
'index.knn': True
|
||
},
|
||
'mappings': {
|
||
'properties': {
|
||
'product_name': {'type': 'text'},
|
||
'description': {'type': 'text'},
|
||
'category': {'type': 'keyword'},
|
||
'price': {'type': 'float'},
|
||
'embedding': {
|
||
'type': 'knn_vector',
|
||
'dimension': 768,
|
||
'method': {
|
||
'name': 'hnsw',
|
||
'space_type': 'cosinesimil',
|
||
'engine': 'nmslib'
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
client.indices.create(index=index_name, body=index_body)
|
||
|
||
# 存储文档和向量嵌入
|
||
doc = {
|
||
'product_name': '高性能笔记本电脑',
|
||
'description': '最新一代处理器,16GB内存,512GB SSD存储',
|
||
'category': '电子产品',
|
||
'price': 1299.99,
|
||
'embedding': np.random.random(768).tolist() # 实际应用中应该是从嵌入模型获取的向量
|
||
}
|
||
|
||
client.index(index=index_name, body=doc, id='1')
|
||
|
||
# 执行向量搜索查询
|
||
query_vector = np.random.random(768).tolist() # 实际应用中是查询文本的向量表示
|
||
|
||
search_query = {
|
||
'size': 5,
|
||
'query': {
|
||
'knn': {
|
||
'embedding': {
|
||
'vector': query_vector,
|
||
'k': 5
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
response = client.search(index=index_name, body=search_query)
|
||
print(response['hits']['hits'])
|
||
```
|
||
|
||
## 与其他AWS服务集成
|
||
|
||
Amazon OpenSearch无服务器向量数据库与AWS生态系统无缝集成:
|
||
|
||
- **Amazon Bedrock** - 与基础模型服务协同工作
|
||
- **Amazon SageMaker** - 处理向量嵌入生成和模型训练
|
||
- **AWS Lambda** - 构建无服务器AI应用程序
|
||
- **Amazon Kendra** - 增强企业搜索功能
|
||
- **Amazon Comprehend** - 提取文本见解和实体
|
||
- **AWS Glue** - 数据提取和向量转换
|
||
|
||
## 定价模式
|
||
|
||
Amazon OpenSearch无服务器向量数据库采用真正的按使用量付费模式:
|
||
|
||
1. **OCU小时** - OpenSearch计算单元的使用时间
|
||
2. **存储成本** - 向量数据和索引存储量
|
||
3. **数据传输** - 进出服务的数据流量
|
||
|
||
无最低费用或预先承诺,使企业能够灵活扩展使用量。详细价格信息可在[Amazon OpenSearch Service定价页面](https://aws.amazon.com/opensearch-service/pricing/)查看。
|
||
|
||
## 可用区域
|
||
|
||
Amazon OpenSearch无服务器向量数据库现已在以下AWS区域推出:
|
||
|
||
- 美国东部(弗吉尼亚北部、俄亥俄)
|
||
- 美国西部(俄勒冈、加利福尼亚北部)
|
||
- 欧洲(爱尔兰、法兰克福、伦敦、巴黎)
|
||
- 亚太地区(东京、新加坡、悉尼)
|
||
|
||
更多区域将在未来几个月内陆续支持。
|
||
|
||
## 开始使用
|
||
|
||
开发者可以通过以下步骤开始使用Amazon OpenSearch无服务器向量数据库:
|
||
|
||
1. 登录AWS管理控制台
|
||
2. 导航至Amazon OpenSearch Service
|
||
3. 选择"创建无服务器集合"
|
||
4. 指定集合名称和向量索引配置
|
||
5. 使用AWS SDK或API开始存储和查询向量数据
|
||
|
||
AWS还提供了全面的[文档](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vector-search.html)和[示例应用程序](https://github.com/aws-samples/opensearch-serverless-vector-search),帮助开发者快速上手。
|
||
|
||
## 结论
|
||
|
||
Amazon OpenSearch无服务器向量数据库代表了向量搜索技术的重大进步,为企业构建生成式AI应用提供了一个可扩展、高性能且经济实惠的解决方案。通过消除基础设施管理的复杂性,该服务使开发团队能够更快地构建和部署创新的AI应用,加速组织的AI转型之旅。 |